[英]Can Dijkstra's algorithm be applicable to the Travelling Salesman Problem?
這是一般查詢。 Dijkstra 的算法能夠找到每個節點之間的最短距離,而 TSP 問題說通過以最短路徑至少遍歷每個節點一次來在同一節點上開始和結束。 有什么辦法可以使用 Dijkstra 的算法方法解決它,因為我無法使用動態編程來實現復雜的方法?
可以使用 Dijkstra 的算法,但它沒有幫助(很多)。 首先,您需要看到您“需要使用”來找到解決方案的圖形不是輸入圖形G=<V,E>
而是從輸入圖形派生的圖形。 可以是Gd=<Vd,Ed>
其中Vd
是V
的有序子集, Ed
是來自Vd
一對,其中邊為 '([v1,..,vn],[v1,..,vn,vm] ) 在Ed
存在如果(vn,vm)\\in E
。 現在Gd
邊的成本對應於G
的成本。 當一個節點包含來自G
所有節點時,它就是一個目標狀態
蠻力深度/Bredth/迭代會起作用。 迪傑斯特拉怎么樣。 你需要有
一致的啟發式,其估計值始終小於或等於從任何相鄰頂點到目標的估計距離,加上到達該鄰居的步驟成本。
顯然,常量零就是這樣一種啟發式方法。 你能得到更好的啟發式方法嗎? 並不是真的由於 TSP 的 NP 性質。 有趣的是,在現實世界中的問題中,您有時會發現不一致的啟發式方法,但仍然可以產生良好的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.