我有一個矩陣NxN其中matrice[i][j]
是在非方向圖中頂點i
和f
j之間的邊的代價。從完整圖計算最短路徑
我需要確定的是最短路徑,其中包含矩陣中的所有頂點 。
因此,對於輸入,如:
0 198 67 368
198 0 131 432
67 131 0 301
368 432 301 0
我需要嘗試更多鈔票的所有路徑,並在這種情況下:
0-->1-->2-->3-->0
是正確至極給人長度998
我如何能實現這個?
我有一個矩陣NxN其中matrice[i][j]
是在非方向圖中頂點i
和f
j之間的邊的代價。從完整圖計算最短路徑
我需要確定的是最短路徑,其中包含矩陣中的所有頂點 。
因此,對於輸入,如:
0 198 67 368
198 0 131 432
67 131 0 301
368 432 301 0
我需要嘗試更多鈔票的所有路徑,並在這種情況下:
0-->1-->2-->3-->0
是正確至極給人長度998
我如何能實現這個?
您正在描述被廣泛研究的Traveling Salesman Problem。
雖然有很多方法來近似解決方案 - 確切的解決方案確實需要指數運行時間,而蠻力是解決它的一個選項(在O (n!)
中)。
這個想法是產生所有可能的排列和評估每個 - 並找到最小值。例如
This question討論如何生成所有排列。相同的想法適用於您的問題。
可以進行一些可能的優化,例如branch & bound技術 - 或者使用智能DP解決方案。
非常感謝我沒有意識到我之前的問題已改變爲旅行商問題....我瞭解它如何可以是一維數組的donone,但我不能找出它的矩陣 – ziker
您正在描述旅行推銷員問題。這個問題到處都有很多資料。 – amit
關閉選民:爲什麼不是一個真正的問題?它是否有意義?模糊?過於寬泛?修辭? (不!它處理一些非常具體的問題,並詢問它是如何完成的) – amit