旅行商問題
1.什么是旅行商問題
旅行商問題(Traveling Saleman Problem,TSP)是VRP的特例,由于Gaery[1]已證明TSP問題是NP難題,因此,VRP也屬于NP難題。
旅行商問題(TSP)又譯為旅行推銷員問題、貨郎擔(dān)問題,簡(jiǎn)稱為TSP問題,是最基本的路線問題,該問題是在尋求單一旅行者由起點(diǎn)出發(fā),通過所有給定的需求點(diǎn)之后,最后再回到原點(diǎn)的最小路徑成本。最早的旅行商問題的數(shù)學(xué)規(guī)劃是由Dantzig(1959)等人提出[2]。
TSP問題在物流中的描述是對(duì)應(yīng)一個(gè)物流配送公司,欲將n個(gè)客戶的訂貨沿最短路線全部送到。如何確定最短路線。
TSP問題最簡(jiǎn)單的求解方法是枚舉法。它的解是多維的、多局部極值的、趨于無窮大的復(fù)雜解的空間,搜索空間是n個(gè)點(diǎn)的所有排列的集合,大小為(n-1)??梢孕蜗蟮匕呀饪臻g看成是一個(gè)無窮大的丘陵地帶,各山峰或山谷的高度即是問題的極值。求解TSP,則是在此不能窮盡的丘陵地帶中攀登以達(dá)到山頂或谷底的過程。
2.旅行商問題的歷史
旅行商問題字面上的理解是:有一個(gè)推銷員,要到n個(gè)城市推銷商品,他要找出一個(gè)包含所有n個(gè)城市的具有最短路程的環(huán)路。
TSP的歷史很久,最早的描述是1759年歐拉研究的騎士周游問題,即對(duì)于國(guó)際象棋棋盤中的64個(gè)方格,走訪64個(gè)方格一次且僅一次,并且最終返回到起始點(diǎn)。
TSP由美國(guó)RAND公司于1948年引入,該公司的聲譽(yù)以及線性規(guī)劃這一新方法的出現(xiàn)使得TSP成為一個(gè)知名且流行的問題。
3.旅行商問題的解法[2]
旅行推銷員的問題,我們稱之為巡行(Tour),此種問題屬于NP-Complete的問題,所以旅行商問題大多集中在啟發(fā)式解法。Bodin(1983)等人將旅行推銷員問題的啟發(fā)式解法分成三種:
1、途程建構(gòu)法(Tour Construction Procedures)
從距離矩陣中產(chǎn)生一個(gè)近似最佳解的途徑,有以下幾種解法:
1)最近鄰點(diǎn)法(Nearest Neighbor Procedure):一開始以尋找離場(chǎng)站最近的需求點(diǎn)為起始路線的第一個(gè)顧客,此后尋找離最后加入路線的顧客最近的需求點(diǎn),直到最后。
2)節(jié)省法(Clark and Wright Saving):以服務(wù)每一個(gè)節(jié)點(diǎn)為起始解,根據(jù)三角不等式兩邊之和大于第三邊之性質(zhì),其起始狀況為每服務(wù)一個(gè)顧客后便回場(chǎng)站,而后計(jì)算路線間合并節(jié)省量,將節(jié)省量以降序排序而依次合并路線,直到最后。
3)插入法(Insertion procedures):如最近插入法、最省插入法、隨意插入法、最遠(yuǎn)插入法、最大角度插入法等。
2、途程改善法(Tour Improvement Procedure)
先給定一個(gè)可行途程,然后進(jìn)行改善,一直到不能改善為止。有以下幾種解法:
1)K-Opt(2/3 Opt):把尚未加入路徑的K條節(jié)線暫時(shí)取代目前路徑中K條節(jié)線,并計(jì)算其成本(或距離),如果成本降低(距離減少),則取代之,直到無法改善為止,K通常為2或3。
2)Or-Opt:在相同路徑上相鄰的需求點(diǎn),將之和本身或其它路徑交換且仍保持路徑方向性,并計(jì)算其成本(或距離),如果成本降低(距離減少),則取代之,直到無法改善為止。
3、合成啟發(fā)法(Composite Procedure)
先由途程建構(gòu)法產(chǎn)生起始途程,然后再使用途程改善法去尋求最佳解,又稱為兩段解法(two phase method)。有以下幾種解法:
1)起始解求解+2-Opt:以途程建構(gòu)法建立一個(gè)起始的解,再用2-Opt的方式改善途程,直到不能改善為止。
2)起始解求解+3-Opt:以途程建構(gòu)法建立一個(gè)起始的解,再用3-Opt的方式改善途程,直到不能改善為止。