通过四维数据寻路 [英] Pathfinding through four dimensional data
问题描述
问题是找到飞机通过四向风的最佳路线(风在不同高度,并且随行进而变化(预测风模型))。
The problem is finding an optimal route for a plane through four dimensional winds (winds at differing heights and that change as you travel (predicative wind model)).
我使用了传统的A *搜索算法,并对其进行了破解,以使其能够在3维和风矢量下正常工作。
I've used the traditional A* search algorithm and hacked it to get it to work in 3 dimensions and with wind vectors.
在很多情况下都可以使用,但是非常慢(我正在处理大量数据节点),并且在某些极端情况下不起作用。
It works in a lot the cases but is extremely slow (im dealing with huge amounts of data nodes) and doesnt work for some edge cases.
我觉得我已经很好地工作了,但是感觉
I feel like I've got it working "well" but its feels very hacked together.
是否存在一种更好的,更有效的路径来查找像这样的数据(可能是遗传算法或神经网络),或者甚至我还没有考虑过?也许流体动力学?我不知道吗?
Is there a better more efficient way for path finding through data like this (maybe a genetic algorithm or neural network), or something I havent even considered? Maybe fluid dynamics? I dont know?
编辑:更多详细信息。
数据是风向(方向,大小)。
数据在25个不同的海拔高度上的间距为15x15公里。
Data is wind vectors (direction, magnitude). Data is spaced 15x15km at 25 different elevation levels.
通过不总是有效,我的意思是它将为飞机选择一条愚蠢的路径,因为路径重量与另一条路径相同。
By "doesnt always work" I mean it will pick a stupid path for an aircraft because the path weight is the same as another path. Its fine for path finding but sub-optimal for a plane.
对于每个节点更改,我都会考虑很多因素:
I take many things into account for each node change:
- 下降时的升高成本。
- 风阻力。
- 忽略阻力过高的节点
- 对角塔夫鱼与直头等的成本。
- Cost of elevation over descending.
- Wind resistance.
- Ignoring nodes with too high of a resistance.
- Cost of diagonal tavel vs straight etc.
我使用欧氏距离作为启发式算法或H值。
我对体重或G值(上面的列表)使用了多种因素。
I use euclidean distance as my heuristic or H value. I use various factors for my weight or G value (the list above).
谢谢!
推荐答案
通过使用加权的A * 。
加权的A * [或A *ε],期望找到比A *更快的路径,但是路径并不是最佳的[但是,它为您提供了最佳的界限,作为ε/重量的参数]。
Weighted A* [or A* epsilon], is expected to find a path faster then A*, but the path won't be optimal [However, it gives you a bound on its optimality, as a paremeter of your epsilon/weight].
这篇关于通过四维数据寻路的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!