這基本上與道路可能的最小量的連接n個目標的問題。連接一組頂點到最佳加權圖
的輸入是一組頂點(A,B,...,N)
兩個頂點之間的邊的權重很容易計算(例子中的兩個頂點之間的距離笛卡爾)
我想要一個給定一組頂點在歐幾里德空間中的算法,返回一組邊,這些邊將構成一個連通圖並且其邊的總權重儘可能小。
在曲線圖的語言,這是一個連通圖的最小生成樹。
用蠻力我會:
- 定義的所有頂點之間的所有可能的邊緣 - 說你有n個 頂點,那麼你有N(N-1)完全圖 /2的邊緣
- 可能的邊緣可以打開或關閉(2個狀態)
- 通過所有可能的邊緣開啓/關閉 組合:2 ^(n(n-1)/ 2)!
- 忽略所有那些不連接 圖
- 從剩餘組合,發現其的 邊緣的權重之和最小的所有
我明白這一個是一個NP-Hard問題。但是,對於我的應用來說,我會最多有11個頂點。我希望能夠在典型的現代智能手機上解決這個問題,或者至少在小型服務器上解決這個問題。
作爲第二個變型中,我想以獲得相同的目標,與每個頂點被連接到最多一個其他頂點的限制。基本上可以從任何點開始獲取單個曲線,並在任何其他點完成,只要連接圖即可。沒有必要回到你開始的地方。 在圖形語言中,這是開放的歐幾里德旅行推銷員問題。
一些僞算法將是非常有益的。
什麼是開放euklidian茶匙?你的意思是最小的哈密爾頓路徑嗎?(http://en.wikipedia.org/wiki/Hamiltonian_path) – Bytemain
@Phpdna開放的含義不是一個循環。歐幾里德在2d空間中的含義。請參閱http://en.wikipedia.org/wiki/Travelling_salesman_problem#Euclidean_TSP – Patrick
是的,我知道。我給你看了一個求解器。但這不是最小的哈密爾頓路徑嗎? Minium是路徑的長度。 – Bytemain