问题是找到一架通过四维风的飞机的最佳路线(不同高度的风和随着行程而变化的风(预测风模型))。
我使用了传统的A *搜索算法并将其破解,使其在3维和风矢量下工作。
它可以在很多情况下工作但速度非常慢(即时处理大量数据节点)并且对某些边缘情况不起作用。
我觉得我已经“很好”地工作了,但它感觉非常黑了。
通过这样的数据(可能是遗传算法或神经网络)或者我甚至没有考虑过的东西,是否有更好的方法来寻找路径?也许流体动力学?我不知道?
编辑:进一步的细节。
数据是风向量(方向,幅度)。 数据在25个不同的高度水平上间隔15x15km。
通过“并不总是工作”我的意思是它会为飞机选择一条愚蠢的路径,因为路径权重与另一条路径相同。它很适合寻找路径,但对于飞机来说是次优的。
我为每个节点更改考虑了很多因素:
我使用欧氏距离作为我的启发式或H值。 我使用各种因素来衡量我的体重或G值(上面的清单)。
谢谢!
答案 0 :(得分:1)
A *并未被宣传为最快的搜索算法;它确实保证了它找到的第一个解决方案是最好的(假设你提供了一个可接受的启发式算法)。如果你的某些案例没有工作,那么你实施的某些方面就有问题(可能是A *的机制,也许是特定领域的东西;如果你没有提供任何细节,不能说更多)。
如果速度太慢,您可能需要重新考虑正在使用的启发式方法。
如果您不需要最佳解决方案,那么其他一些技术可能更合适。再说一次,鉴于你提供的问题很少,很难说更多。
答案 1 :(得分:1)
使用weighted A*可以随时取消时间优化。
加权A * [或A * epsilon],预计会找到比A *更快的路径,但路径不会是最佳的[但是,它会给你一个最佳性的界限,作为你的epsilon的一个参数/重量]。
答案 2 :(得分:0)
您计划离线还是在线?
通常对于这些问题,在实际飞过它们之前,你不知道风是什么。如果这确实是一个在线问题,您可能需要考虑尝试构建近乎最优的策略。在这个领域已经进行了大量的研究,其中最好的是John Wharington的“通过强化学习自主控制飙升飞机”。