版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系我們

[科普中國]-分枝定界

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識科普陣地
收藏

分枝界限法是由三棲學(xué)者查理德·卡普(Richard M.Karp)在20世紀60年代發(fā)明,成功求解含有65個城市的旅行商問題,創(chuàng)當時的記錄?!胺种缦薹ā卑褑栴}的可行解展開如樹的分枝,再經(jīng)由各個分枝中尋找最佳解。

簡介分枝界限法是由三棲學(xué)者查理德·卡普(Richard M.Karp)在20世紀60年代發(fā)明,成功求解含有65個城市的旅行商問題,創(chuàng)當時的記錄。“分枝界限法”把問題的可行解展開如樹的分枝,再經(jīng)由各個分枝中尋找最佳解。

分枝界限法也能夠使用在混合整數(shù)規(guī)劃問題上,其為一種系統(tǒng)化的解法,以一般線性規(guī)劃之單形法解得最佳解后,將非整數(shù)值之決策變量分割成為最接近的兩個整數(shù),分列條件,加入原問題中,形成兩個子問題(或分枝)分別求解,如此便可求得目標函數(shù)值的上限(上界)或下限(下界),從其中尋得最佳解。1

基本思想1、基本思想

分枝定界法是一個用途十分廣泛的算法,運用這種算法的技巧性很強,不同類型的問題解法也各不相同。分支定界法的基本思想是對有約束條件的最優(yōu)化問題的所有可行解(數(shù)目有限)空間進行搜索。該算法在具體執(zhí)行時,把全部可行的解空間不斷分割為越來越小的子集(稱為分支),并為每個子集內(nèi)的解的值計算一個下界或上界(稱為定界)。在每次分支后,對凡是界限超出已知可行解值那些子集不再做進一步分支。這樣,解的許多子集(即搜索樹上的許多結(jié)點)就可以不予考慮了,從而縮小了搜索范圍。這一過程一直進行到找出可行解為止,該可行解的值不大于任何子集的界限。因此這種算法一般可以求得最優(yōu)解。

將問題分枝為子問題并對這些子問題定界的步驟稱為分枝定界法。

2、分枝節(jié)點的選擇

對搜索樹上的某些點必須作出分枝決策,即凡是界限小于迄今為止所有可行解最小下界的任何子集(節(jié)點),都有可能作為分枝的選擇對象(對求最小值問題而言)。怎樣選擇搜索樹上的節(jié)點作為下次分枝的節(jié)點呢?有兩個原則:

1)從最小下界分枝(隊列式FIFO分枝限界法):每次算完界限后,把搜索樹上當前所有葉節(jié)點的界限進行比較。找出限界最小的節(jié)點,此結(jié)點即為下次分枝的結(jié)點。

優(yōu)點:檢查子問題較少,能較快地求得最佳解;

缺點:要存儲很多葉節(jié)點的界限及對應(yīng)的耗費矩陣,花費很多內(nèi)存空間。

2)從最新產(chǎn)生的最小下界分枝(優(yōu)先隊列式分枝限界法):從最新產(chǎn)生的各子集中選擇具有最小的下界的結(jié)點進行分枝。

優(yōu)點:節(jié)省了空間; 缺點:需要較多的分枝運算,耗費的時間較多。這兩個原則更進一步說明了,在算法設(shè)計中的時空轉(zhuǎn)換概念。分枝定界法已經(jīng)成功地應(yīng)用于求解整數(shù)規(guī)劃問題、生產(chǎn)進度表問題、貨郎擔問題、選址問題、背包問題以及可行解的數(shù)目為有限的許多其它問題。對于不同的問題,分枝與界限的步驟和內(nèi)容可能不同,但基本原理是一樣的。1

步驟分枝界限法是組合優(yōu)化問題的有效求解方法,其步驟如下所述:

步驟一:如果問題的目標為最小化,則設(shè)定目前最優(yōu)解的值Z=∞

步驟二:根據(jù)分枝法則(Branching rule),從尚未被洞悉(Fathomed)節(jié)點(局部解)中選擇一個節(jié)點,并在此節(jié)點的下一階層中分為幾個新的節(jié)點。

步驟三:計算每一個新分枝出來的節(jié)點的下限值(Lower bound,LB)

步驟四:對每一節(jié)點進行洞悉條件測試,若節(jié)點滿足以下任意一個條件,則此節(jié)點可洞悉而不再被考慮:

此節(jié)點的下限值大于等于Z值。

已找到在此節(jié)點中,具最小下限值的可行解;若此條件成立,則需比較此可行解與Z值,若前者較小,則需更新Z值,以此為可行解的值。

此節(jié)點不可能包含可行解。

步驟五:判斷是否仍有尚未被洞悉的節(jié)點,如果有,則進行步驟二,如果已無尚未被洞悉的節(jié)點,則演算停止,并得到最優(yōu)解。

Kolen等曾利用此方法求解含時間窗約束的車輛巡回問題,其實驗的節(jié)點數(shù)范圍為6-15。當節(jié)點數(shù)為6時,計算機演算所花費的時間大約1分鐘(計算機型為VAZ11/785),當節(jié)點數(shù)擴大至12時,計算機有內(nèi)存不足的現(xiàn)象產(chǎn)生,所以分枝定界法比較適用于求解小型問題。Held和Karp指出分枝定界法的求解效率,與其界限設(shè)定的寬緊有極大的關(guān)系。1

本詞條內(nèi)容貢獻者為:

何星 - 副教授 - 上海交通大學(xué)