我有能力使用A *计算起点和终点之间的最佳路线。现在,我在我的起点和终点之间加入了一个航点,通过将A *应用于我所有点的排列中。将航点添加到A *图搜索
实施例:
我想从点1至点4中。另外,我要通过点2和3
余计算的(1,2,3,4的排列):
1 2 3 4
1 2 4 3
1 3 2 4
1 3 4 2
1 4 2 3
1 4 3 2
2 1 3 4
2 1 4 3
2 3 1 4
2 3 4 1
2 4 1 3
2 4 3 1
3 1 2 4
3 1 4 2
3 2 1 4
3 2 4 1
3 4 1 2
3 4 2 1
4 1 2 3
4 1 3 2
4 2 1 3
4 2 3 1
4 3 1 2
4 3 2 1
然后,对于每个排列,我计算A *路径从第一到第二,然后将其附加到路径从第二到第三,那么第三到第四。
当我对每个排列进行计算时,我按距离排序路线并返回最短路线。
显然,这工作,但涉及到很多计算的,当我有6个航点完全倒塌(8项排列为40320 :-))
有没有更好的方式来做到这一点?
为什么包含不以1开始并以4结尾的路径?而且,如果您有足够的理由这么做,如果您的地形是向前一个方向的成本与向后的成本相同,则不必计算反向路径(1234和4321) – 2010-06-18 20:30:58
您只需要排列你必须经过的点。在你的情况下,你只需要尝试1→2→3→4→1→3→2→4。 – IVlad 2010-06-18 20:36:11