1
我目前的想法是: 從0開始,並將其與最近的點連接起來。對於所有剩餘的節點,將其插入所有可能的位置並保持成本最低的配置。旅行推銷員啓發式
所以我開始與點0最接近的節點指向0是點1
所以我現在有0-> 1 - > 0
對於點2(以及所有剩餘的節點)我將檢查在新的節點可能是所有可能性:
- > 0 - > 1 - > 2
0 - > - > 1 - > 0
0 - > 1-> 2 - > 0
在這裏,我發現
0 - > 1 - > 2 - > 0具有至少總歐氏距離,從而是配置我會繼續。
我將繼續爲我的其餘節點使用此邏輯。
有沒有一種簡單的方法來實現這個在c + +?我目前的想法可能是鏈接列表將是一個好主意,但我希望能夠使用載體,如果可能的話。有沒有人有任何提示如何解決這個問題?
不是在我的PC上試驗一個完整的答案,但你可能需要'std :: reduce'(C++ 17)或'std :: accumulate'使用一個計算點之間距離的函數作爲' BinaryOperator'」。使用'std :: vector>'來存儲您的路徑。 –
謝謝我會圍繞傑克進行實驗 – MMM