2018年數學建模國賽B題

我們把問題分解,最終轉化爲求解路徑規劃問題——廣義旅行商問題

針對廣義旅行商問題這種NP難題,沒有很好的可以求解出精確解的方法,比較常用的就是改良圈算法、動態規劃和啓發式求解算法。其中啓發式求解算法主要有遺傳算法,蟻羣算法,模擬退火算法、禁忌搜索算法等。

而本問題不是一個完全的TSP問題,因爲不要求最後回到起點,但是依然可以使用啓發式算法求解本問題,在此我們選擇模擬退火算法求解,內循環是時齊算法的模擬退火,設置參數如下:

初始化溫度:T0=-(max(StartPath)-min(StartPath))/log(0.9)

溫度下限:Tf=0.001

溫度下降梯度:0.8

馬氏鏈長度:100*CityNum

但是由於本問題是一個城市數量隨時間變化的問題,不同於傳統的城市數目固定,每一次路徑選擇的時候,可能會有新的城市點出現並影響你的決定,所以爲了考慮新出現的點對於當前路徑的影響,可以採取策略貪心——即每次將新點加入圖中,重新規劃路徑。

對於有多道工序的問題,我們採取最大權匹配(採用KM算法求解)解決工序的先後問題,然後將匹配後的兩個點視作一個點,構建一個有向圖進行路徑規劃。

完整代碼百度雲盤下載鏈接:

鏈接:https://pan.baidu.com/s/1fZCxOUsu-TE4G5PJo46hAQ 密碼:fqec

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章