版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
算法設(shè)計與分析
分支限界法
分支限界法:?
?分支限界法
?與回溯法類似,都是在問題的解空間樹上搜索問題
解的算法;
?求解目標(biāo):找出滿足約束條件的解
?可行解或最優(yōu)解
?搜索策略_
根據(jù)限界函數(shù)值,剔除那些導(dǎo)致不可行解或非曼優(yōu)解的
子結(jié)點,使搜索過程僅限制在剩余的分支內(nèi)進行;
提綱
?分支限界法的基本思想
?實例分析
?本章小結(jié)
提綱
?分支限界法的基本思想
?實例分析
?本章小結(jié)
分支限界法Vs回溯法
分支限界法的主要分類
實例說明
分支限界法Vs回溯法
分支限界法的主要分類
實例說明
分支限界法Vs回溯法::
?相同點:
?兩者在進行問題求解前,都需要完成解空間的定義
和組織;
?都是通過在解空間搜索來尋找問題的解;
分支限界法Vs回溯法
?不同點:
?搜索方式
回溯法:深度優(yōu)先;
分支限界法:廣度優(yōu)先;
?搜索策略
回溯法:根據(jù)剪枝函數(shù),選擇下一個擴展接點并按深度優(yōu)先
方式進行搜索;
分支限界法:在擴展結(jié)點處,先產(chǎn)生其所有的子結(jié)點(分
支),然后根據(jù)限界函數(shù),確定哪些子結(jié)點將導(dǎo)致不可行解
或非最優(yōu)解,將這些子結(jié)點剔除,用剩下的子結(jié)點構(gòu)造當(dāng)前
的活結(jié)點表,然后從該表中取一個結(jié)點作為當(dāng)前擴展結(jié)點,
并重復(fù)上述過程;
分支限界法Vs回溯法
分支限界法的主要分類
實例說明
分支限界法的主要分類
?分支限界法的主要分類
?根據(jù)從活結(jié)點表中選擇下一個擴展結(jié)點的方式
?隊列式FIFO分支限界法
優(yōu)先隊列式分支限界法
隊列式FIFO分支限界法
?隊列式FIFO分支限界法
?算法思想:將活結(jié)點表組織成一個隊列,并按
隊列的先進先出FIFO原則選取下一個結(jié)點作為
當(dāng)前擴展結(jié)點;
優(yōu)先隊列式分支限界法::
?優(yōu)先隊列式分支限界法
?算法思想:將活結(jié)點表組織成一個優(yōu)先隊列,并按
優(yōu)先隊列中規(guī)定的結(jié)點優(yōu)先級,選取剩余隊列中優(yōu)
先級最高的下一個結(jié)點作為當(dāng)前擴展結(jié)點;
分支限界法Vs回溯法
分支限界法的主要分類
實例說明
實例說明
?實例說明
?0-1背包問題
?TSP問題
實例說明
?實例說明
?0」背包問題
?TSP問題
實例說明——0?1背包問題
?n=3的0」背包問題
?w=[16,15,15]
?p=[45,25,25]
?c=30
解空間為:
{(0,0,0),(0,1,0),(0,0,1),(1,0,0),(0,1,1),(1,0,1),(1,1,0),(1,1,1)}
活結(jié)點&當(dāng)前
擴展結(jié)點
活結(jié)點
死結(jié)點
n=3的0」背包問題的解空間樹
利用隊列式FIFO分支限界法
利用優(yōu)先隊列式分支限界法
???
活結(jié)點隊列
(初始為空)活結(jié)點隊列
兩個子結(jié)點,但D是不可行結(jié)
A將結(jié)點加入到活結(jié)
點(因為超過背包容量),所■E
以將D舍去。E是可行結(jié)點。點隊列中
活結(jié)點隊列活結(jié)點隊列
-Cc)00—CE)Cc)
—國
兩個子結(jié)點
:尸點。F.、G都是可
iz3</1
?f(G>將結(jié)點F、G
1Ho1X。按從左到右
/V.JZ的順序加入
9W09(2)到活結(jié)點隊
?o??c列中
活結(jié)點隊列活結(jié)點隊列
??01」->000-?
兩個子結(jié)點都是葉結(jié)點,其
中J是不可行解,而K是可行
解(價值為45)
0
活結(jié)點隊列活結(jié)點隊列
-BCD00
兩個子結(jié)點都是葉結(jié)點,而
且都分別對應(yīng)一個可行解,
其中L對應(yīng)的解的價值50,
而M對應(yīng)的解的價值25
A/I
1
活結(jié)點隊列
最優(yōu)解為::?:'
???1
(0,1,1),對應(yīng)的價值為50
o兩個子結(jié)點都是葉結(jié)點,而
、且都分別對應(yīng)一個可行解,
其中N對應(yīng)的解的價值25,
而。對應(yīng)的解的價值0
活結(jié)點隊列活結(jié)點隊列
利用隊列式FIFO分支限界法
利用優(yōu)先隊列式分支限界法
當(dāng)前唯一的活結(jié)點,也
是當(dāng)前的擴展結(jié)點
A
0兩個可行的子結(jié)點,由于結(jié)點
B獲得的當(dāng)前價值為40,而結(jié)
點C的當(dāng)前價值為0。
BC
00
將B、C放入極
DEG大堆,而且結(jié)點
10000B是當(dāng)前堆中的
取大兀素。
HMNO
極大堆
C極大堆
(初始為空)
兩個子結(jié)點,但D是不可行結(jié)
點(因為超過背包容量),所
以將D舍去。E是可行結(jié)點。
0
L忘我價值為40,大于結(jié)點
(C)(的價值,所以成為當(dāng)前堆)
中的最大元素J
兩個子結(jié)點都是葉結(jié)點,其
中J是不可行解,而K是可行
解(價值為45)
0
0兩個子結(jié)點F、G都是可
、行結(jié)點。F的價值為25,
而G的價值為0。
/1
Pf"(GVZ將結(jié)點F、G加入
Ko1ZXo到極大堆中,結(jié)
XX'點F成為當(dāng)前堆中
(M)(N)(。)的最大元素。
極大堆
0兩個子結(jié)點F、G都是可行結(jié)
點,都是可行解。L的價值
c為50,而G的價值為25。
1
F
>0
M
極大堆
最優(yōu)解為:
(0,1,1),對應(yīng)的價值為50
、兩個子結(jié)點N、。都是
可行結(jié)點,都是可行
,Vx解。N的價值為25,而
O的價值為0。
"M/
(M^<O5
極大堆
實例說明
?實例說明
?0-1背包問題
?TSP問題
實例說明——TSP問題
4頂點的無向帶權(quán)圖
n=4的TSP問題的解空間樹(排列樹)
利用隊列式FIFO分支限界法
利用優(yōu)先隊列式分支限界法
活結(jié)點隊列
(初始為空)活結(jié)點隊列
A
兩個可行的子結(jié)點,按從左1
到右的順序?qū)⑦@兩個子結(jié)點
加入活結(jié)點隊列。4
活結(jié)點隊列活結(jié)點隊列
A
兩個可行的子結(jié)點,按從左1
到右的順序?qū)⑦@兩個子結(jié)點
加入活結(jié)點隊列。/4
/3
活結(jié)點隊列活結(jié)點隊列
^TTFTTE
\兩個可行的子結(jié)點,按從
CIDL/左到右的順序?qū)⑦@兩個子
及二結(jié)點加入活結(jié)點隊列。
活結(jié)點隊列活結(jié)點隊列
當(dāng)前擴展結(jié)點的子結(jié)
點是葉結(jié)點,表明找
B
到一條TSP回路,費4
用為59。3
CD
242當(dāng)前最優(yōu)解為12341
HIJ費用:59
423
NP
活結(jié)點隊列活結(jié)點隊列
當(dāng)前擴展結(jié)點的子結(jié)
4
E
42;當(dāng)前最優(yōu)解為12341
Q費用:59
IJ
23
P
活結(jié)點隊列
A
當(dāng)前擴展結(jié)點的子結(jié)1
點是葉結(jié)點,表明找
到一條TSP回路,費4
用為25。3?
C,DE
34742;當(dāng)前最優(yōu)解為13241
Q費用:
HIJ25
\423
P
活結(jié)點隊列活結(jié)點隊列
A
1由于從根結(jié)點到當(dāng)前結(jié)
點的費用〉當(dāng)前最優(yōu)費
4用,所以結(jié)點I被舍棄。
4黑42;當(dāng)前最優(yōu)解為13241
Q費用:25
HIJ
423
活結(jié)點隊列
A
由于從根結(jié)點到當(dāng)前結(jié)
點的費用>當(dāng)前最優(yōu)費用,*
4所以結(jié)點5被舍棄。
4黑42\3/當(dāng)前最優(yōu)解為13241
HIJ費用:25
423
活結(jié)點隊列活結(jié)點隊列
利用隊列式FIFO分支限界法
利用優(yōu)先隊列式分支限界法
1當(dāng)前擴展結(jié)點
B
4一三個可行的子結(jié)點,被加入到
3三:,極小堆中。由于E是當(dāng)前堆中
CDE具有最小費用的結(jié)點(費用為
424234),所以處于堆頂,向下依次
是D和C。
GHIJK
434232
LMIN
極小堆極小堆
C
CID兩個可行的子結(jié)點,被加
入到極小堆中。其中J的
費用為14,K的費用為24。
——D在當(dāng)前堆中費用最
小,所以處于堆頂
極小堆
兩個可行的子結(jié)點,被加
入到極小堆中。其中H的
費用為11,K的費用為26。
——H在當(dāng)前堆中費用最
小,所以處于堆頂
極小堆
A
當(dāng)前擴展結(jié)點的子結(jié)1
點是葉結(jié)點,表明找
到一條TSP回路,費4
用為25。3i
CZDE
34黑當(dāng)前最優(yōu)解為13241
H費用:25
\4
極小堆
A
4
4黑42最優(yōu)解為13241
HIJ費用:25
423
極小堆
以此類推
提綱
?分支限界法的基本思想
?實例分析
?本章小結(jié)
實例分析
?單源最短路徑問題1
?裝載問題,
?布線問題J
?0-1背包問題
?最大團問題
?TSP問題
?電路板排列問題
?批處理作業(yè)調(diào)度,
單源最短路徑
算法思想
?算法思想
?采用優(yōu)先隊列式分支限界法
以當(dāng)前結(jié)點所對應(yīng)的路徑長度為參考標(biāo)準(zhǔn)(路徑長度越短,
優(yōu)先級越高)
?限界函數(shù)設(shè)計
利用已經(jīng)獲得的當(dāng)前最短路徑長度Lmin為基準(zhǔn),對那些
結(jié)點所對應(yīng)路徑長度大于Lmin的情況,剪去以該結(jié)點為
根的子樹;
利用結(jié)點間的控制關(guān)系進行剪枝
?對于通過不同路徑到達同一頂點的兩條路徑,路徑長度短的結(jié)
點(控制結(jié)點)控制路徑長度長的結(jié)點(被控制結(jié)點)
分將被控制結(jié)點所對應(yīng)的子樹剪去
實例分析
找從頂點“1”到
頂點“5”的最短
路徑
一個帶權(quán)有向圖
一個帶權(quán)有向圖有向圖G的單源最短路
徑問題的解空間樹
A、B是兩個可行的子結(jié)點,被加入
到極小堆中。由于A是當(dāng)前堆中具
有最小路徑長度的結(jié)點(路徑長度
為10),所以處于堆頂。
C為葉結(jié)點,表示得到一條從“1”
到“5”的路徑,路徑長度為100
極小堆極小堆
,一個可行的子結(jié)點,被加入到
極小堆中。由于D結(jié)點所對應(yīng)
路徑長度為60,所以被加入到
B結(jié)點之后,B是當(dāng)前堆中具有
最小路徑長度的結(jié)點(路徑長
度為30),處于堆頂
極小堆
E為可行的子結(jié)點,被加入到極小堆??
中。由于E結(jié)點所對應(yīng)路徑長度為50
/,'(小于D結(jié)點所對應(yīng)的路徑長度),
'而且D、E在圖G中對應(yīng)同一個頂點3
分結(jié)點D被結(jié)點E控制,剪去以D結(jié)
點為根的子樹;
F結(jié)點為葉結(jié)點,且對應(yīng)的
從“1“到”5”的路徑長度為90,小于
已知的最短路徑長度
少用該路徑最為當(dāng)前已知的最優(yōu)解
因此,當(dāng)前極小堆中只剩下E
極小堆
到達葉結(jié)點處,由于H結(jié)點所對應(yīng)
路徑長度為60(小于F結(jié)點所對應(yīng)
的路徑長度)
少用該路徑取代已知的最短路徑,
作為當(dāng)前已知的最優(yōu)解
極小堆極小堆
最優(yōu)解
一個帶權(quán)有向圖有向圖G的單源最短路
徑問題的解空間樹
裝載問題
問題描述
裝載問題
有一批共n個集裝箱要裝上兩艘載重量分別為C1和。2的船,
n
其中集裝箱,的重量為明,且?的。+。
II12
Z=1
現(xiàn)要求確定是否有一個合理的裝載方案,可將這〃個集裝箱
裝上這兩艘輪船。如果有請給出裝載方案。
裝載問題是NP難問題。
求解出發(fā)點
?容易證明,如果一個給定的裝載問題有解,
則采用以下策略可以得到最優(yōu)裝載方案:
1.首先將第一艘船盡可能裝滿;
等價于選取全體集裝箱的一個子集,使該子集中集裝
箱重量之和最接近C1
2.將剩余的集裝箱裝上第二艘船;
算法思想
?算法思想
?解空間樹
?子集樹
?分支限界法
?隊列式
優(yōu)先隊列式
隊列式
?隊列式
?算法實現(xiàn):檢查當(dāng)前結(jié)點的深度
?i=n
?表示當(dāng)前活結(jié)點為葉結(jié)點,不需要加入到活結(jié)點隊列中,只要
檢查該結(jié)點表示的可行解是否優(yōu)于當(dāng)前最優(yōu)解,并適時更新當(dāng)
前最優(yōu)解
i<n
■表示當(dāng)前結(jié)點為內(nèi)部結(jié)點,應(yīng)加入到活結(jié)點隊列中
限界函數(shù)設(shè)計:
?限界函數(shù)
?是否超過船的負(fù)荷限制
?根據(jù)當(dāng)前已知的最優(yōu)解bestw來進行剪枝
?當(dāng)前擴展結(jié)點所對應(yīng)的重量ew;
?剩余集裝箱的重量r;
如果ew+rv=bestw,則進行剪枝(剪去右子樹,因
為右子樹為0,表示下一個集裝箱沒有被選中)
——提早更新bestw(在每次進入左子樹時更新)
優(yōu)先隊列式
?優(yōu)先隊列式
?思路:根據(jù)活結(jié)點X在優(yōu)先隊列中的優(yōu)先級
?優(yōu)先級定義
從根結(jié)點到結(jié)點x的路徑所對應(yīng)的載重量+剩余集裝箱的重量
?優(yōu)先隊列中優(yōu)先級最大的活結(jié)點成為下一個擴展結(jié)點
一旦有一個葉結(jié)點成為當(dāng)前擴展結(jié)點,則該葉結(jié)點所對應(yīng)
的解就是最優(yōu)解
優(yōu)先級策略的實現(xiàn)方式
?優(yōu)先級策略的實現(xiàn)方式
?第一種,在結(jié)點優(yōu)先隊列的每一個活結(jié)點中保存從
解空間樹的根結(jié)點到該結(jié)點的路徑;
在到達最優(yōu)值的葉結(jié)點時,在該結(jié)點處同時得到相應(yīng)的
最優(yōu)解;
?第二種,在算法的搜索過程中保存當(dāng)前已構(gòu)造出的
部分解空間樹。
當(dāng)達到最優(yōu)值的葉結(jié)點時,可以在解空間樹中從該葉結(jié)
點開始向根結(jié)點回溯,從而構(gòu)造出最優(yōu)解。
?教材中所選用的方案
布線問題
布線問題
?布線問題
?問題描述:確定連接方
格a的中點到方格b的
中點的最短布線路徑。
布線時,電路只能沿直
線或直角布線X
其他線路不允許穿過已b
布線的方格
d
算法設(shè)計思想::
?算法設(shè)計思想
?解空間:圖
?搜索策略:隊列式分支限界法
從起始位置a開始,將其作為第一個擴展結(jié)點。與該擴
展結(jié)點相鄰并且可達的方格(有相鄰邊且未被標(biāo)記)作
為可行結(jié)點被加入到活動結(jié)點隊列中,并且將這些方格
標(biāo)記為1(即從起始方格a到這些方格的距離為1)。
然后,算法從活結(jié)點隊列中取出隊首結(jié)點作為下一個擴
展結(jié)點,并將與當(dāng)前擴展結(jié)點相鄰且可達的方格標(biāo)記為
2,并存入活結(jié)點隊列。
該過程一直持續(xù),直到算法搜索到目標(biāo)方格b或活結(jié)點
隊列為空時停止。
相鄰可達的概念
>滿足相鄰可達條件
―?不滿足相鄰可達條件
qoo
算法實現(xiàn)&復(fù)雜性分析
?算法實現(xiàn)
?參看教材216
?注意移動方向的設(shè)置以及布線長度的設(shè)置
?算法復(fù)雜性分析
?擴展每個結(jié)點需0(1)時間,算法共需耗時0(mn)。
構(gòu)造相應(yīng)的最短距離需要0(L)時間
-L是最短布線路徑長度
實際的電路布線問題
?實際的電路布線問題
?參看提供的參考文獻
從“…/算法分析/參考資料”處下載
批處理作業(yè)調(diào)度
問題描述
給定及個作業(yè)的集合/={4,4,每個作業(yè)人都有兩項任務(wù)
要分別在兩臺機器上完成。每個作業(yè)必須先在機器1上處理,
然后再由機器2處理。
作業(yè)《需要機器J的處理時間為/..,/=1,2,...,/I;7=1,2.
對于一個確定的作業(yè)調(diào)度,設(shè)廠,是作業(yè),在機器/上完成處理的時間,
n
則所有作業(yè)在機器2上完成處理的時間和/=Z
稱為該作業(yè)調(diào)度的完成時間和。
批處理作業(yè)調(diào)度問題要求對于給定的〃個作業(yè),制定最佳作業(yè)調(diào)度方案,
使其完成時間和達到最小。
對于批處理作業(yè)調(diào)度問題,可以證明存在最佳作業(yè)調(diào)度使得在機器1和
機器2上作業(yè)以相同次序完成。
舉例???
品機器1機器2
作業(yè)121
作業(yè)231
作業(yè)323
上述3個作業(yè)有6種不同的調(diào)度方案
1-2-3:19機器1完成的時間機器2完成印$間|
1-3-2:18?—最優(yōu)作業(yè)122+5:|
■■
2-1-3:20作業(yè)
1I32+2=44+3T17?
2-3-1:211作業(yè)24+3=77+七
3-1-2:19
11
3-2-1:21
13+7+8=18
算法設(shè)計思想
?
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 口腔解剖生理學(xué)-第十一章(面頸顱部局部解剖)
- 食品安全案例-課件案例十六-豆?jié){煮制不充分引起的食物中毒
- 小額個人貸款協(xié)議書范本
- 技術(shù)合同寫作指南:技術(shù)開發(fā)合同的主要條款撰寫
- 家庭聚會花卉布置協(xié)議
- 土地租賃期滿拆除協(xié)議
- 材料采購合同寫作技巧
- 裝修合同的主要內(nèi)容有哪些
- 標(biāo)準(zhǔn)住宅出租合同樣本
- 倉庫租賃合同書范本
- 運用PDCA循環(huán)提高全麻患者體溫檢測率
- 人教版五年級英語上冊知識歸納
- 2024年秋季新人教版八年級上冊物理課件 3.5跨學(xué)科實踐:探索廚房中的物態(tài)變化問題
- 外研版(2024)七年級上冊英語全冊教案教學(xué)設(shè)計
- 2024-2030年中國骨生長促進劑行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 從業(yè)人員誠實守信和無犯罪記錄承諾書模板
- YYT 0916.1-2014 醫(yī)用液體和氣體用小孔徑連接件 第1部分:要求
- 2024電化學(xué)儲能電站巡視檢查項目表
- 綠化種植補種合同范本
- 生物質(zhì)黑顆粒技術(shù)介紹材料A
- NBT11222-2023光伏組串I-V檢測及診斷技術(shù)規(guī)范
評論
0/150
提交評論