TSP問題之回溯法 cpp實現
阿新 • • 發佈:2019-02-08
回溯法很簡單,但是時間太長了,我在程式中使用了tsplib的ulysses16,十六個城市
目前找到的最優解為
best current: 59.9963
0 14 12 10 8 9 13 4 5 6 11 15 1 2 3 7
比給出的參考標準要好不少
但是比標準資料更好的情況幾乎不可能發生
也許是我求距離錯了,因為這個case中有負的座標值,看看再說吧
standard path:
0 13 12 11 6 5 14 4 10 8 9 15 2 1 3 7
length of standard path:
79.6844
找到這個解後一個多小時內沒有更優解
我實在沒有耐心執行下去了
於是想儲存執行引數,在下次執行時載入引數繼續執行
在寫了之後,卻發現行不通,程式使用了遞迴呼叫,要儲存引數,就要儲存所有深度的引數,而我只儲存了最後一層
要真正實現這個功能,就得用較大篇幅寫儲存引數了
我沒去寫
如果哪位仁兄完整運行了本程式,勞駕把最優解貼上來
程式中居然使用了ms級的計時器,這也太無聊了
不如直接看一下表,以小時為單位得了
完整的程式在這兒下載
程式寫的比較亂
歡迎批評、建議和討論