我有能力使用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