![數(shù)據(jù)結構第七講(4)最短路徑_第1頁](http://file4.renrendoc.com/view/c8d371a1e78f023cc3408bf45d51d953/c8d371a1e78f023cc3408bf45d51d9531.gif)
![數(shù)據(jù)結構第七講(4)最短路徑_第2頁](http://file4.renrendoc.com/view/c8d371a1e78f023cc3408bf45d51d953/c8d371a1e78f023cc3408bf45d51d9532.gif)
![數(shù)據(jù)結構第七講(4)最短路徑_第3頁](http://file4.renrendoc.com/view/c8d371a1e78f023cc3408bf45d51d953/c8d371a1e78f023cc3408bf45d51d9533.gif)
![數(shù)據(jù)結構第七講(4)最短路徑_第4頁](http://file4.renrendoc.com/view/c8d371a1e78f023cc3408bf45d51d953/c8d371a1e78f023cc3408bf45d51d9534.gif)
![數(shù)據(jù)結構第七講(4)最短路徑_第5頁](http://file4.renrendoc.com/view/c8d371a1e78f023cc3408bf45d51d953/c8d371a1e78f023cc3408bf45d51d9535.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
7.6關鍵路徑問題提出把工程計劃表示為有向圖,用頂點表示事件,弧表示活動;每個事件表示在它之前的活動已完成,在它之后的活動可以開始例設一個工程有11項活動,9個事件事件V1——表示整個工程開始事件V9——表示整個工程結束問題:(1)完成整項工程至少需要多少時間?(2)哪些活動是影響工程進度的關鍵?987645321a1=6a2=4a3=5a4=1a5=1a6=2a7=9a8=7a9=4a10=2a11=4定義AOE網(wǎng)(ActivityOnEdge)——也叫邊表示活動的網(wǎng)。AOE網(wǎng)是一個帶權的有向無環(huán)圖,其中頂點表示事件,弧表示活動,權表示活動持續(xù)時間路徑長度——路徑上各活動持續(xù)時間之和關鍵路徑——路徑長度最長的路徑叫~Ve(j)——表示事件Vj的最早發(fā)生時間Vl(j)——表示事件Vj的最遲發(fā)生時間e(i)——表示活動ai的最早開始時間l(i)——表示活動ai的最遲開始時間l(i)-e(i)——表示完成活動ai的時間余量關鍵活動——關鍵路徑上的活動叫~,即l(i)=e(i)的活動問題分析如何找e(i)=l(i)的關鍵活動?設活動ai用弧<j,k>表示,其持續(xù)時間記為:dut(<j,k>)則有:(1)e(i)=Ve(j)(2)l(i)=Vl(k)-dut(<j,k>)jkai如何求Ve(j)和Vl(j)?(1)從Ve(1)=0開始向前遞推(2)從Vl(n)=Ve(n)開始向后遞推求關鍵路徑步驟求Ve(i)求Vl(j)求e(i)求l(i)計算l(i)-e(i)987645321a2=4a3=5a5=1a6=2a9=4a1=6a4=1a7=9a8=7a10=2a11=4V1V2V3V4V5V6V7V8V9頂點VeVl0645771614180668710161418a1a2a3a4a5a6a7a8a9a10a11活動ell-e000022660462583770770710316160141400337.7最短路徑問題提出用帶權的有向圖表示一個交通運輸網(wǎng),圖中:頂點——表示城市邊——表示城市間的交通聯(lián)系權——表示此線路的長度或沿此線路運輸所花的時間或費用等問題:從某頂點出發(fā),沿圖的邊到達另一頂點所經(jīng)過的路徑中,各邊上權值之和最小的一條路徑——最短路徑從某個源點到其余各頂點的最短路徑51643208562301371732913長度最短路徑<V0,V1><V0,V2><V0,V2,V3><V0,V2,V3,V4><V0,V2,V3,V4,V5><V0,V1,V6>813192120迪杰斯特拉(Dijkstra)算法思想按路徑長度遞增次序產(chǎn)生最短路徑算法:把V分成兩組:(1)S:已求出最短路徑的頂點的集合(2)V-S=T:尚未確定最短路徑的頂點集合將T中頂點按最短路徑遞增的次序加入到S中,保證:(1)從源點V0到S中各頂點的最短路徑長度都不大于從V0到T中任何頂點的最短路徑長度(2)每個頂點對應一個距離值
S中頂點:從V0到此頂點的最短路徑長度
T中頂點:從V0到此頂點的只包括S中頂點作中間頂點的最短路徑長度依據(jù):可以證明V0到T中頂點Vk的最短路徑,或是從V0到Vk的直接路徑的權值;或是從V0經(jīng)S中頂點到Vk的路徑權值之和(反證法可證)Dijkstra算法可描述如下:
初始化:S←{v0};
dist[j]←Edge[0][j],j=1,2,…,n-1;
//n為圖中頂點個數(shù)1、求出最短路徑的長度:
dist[k]←min{dist[i]},i
V-S;S←S
U{k
};2、
修改:
dist[i]←min{dist[i],dist[k]+Edge[k][i]},
對于每一個i
V-S;3、
判斷:若S=V,則算法結束,否則轉1。計算從單個頂點到其它各個頂點的最短路徑ShortestPath(
constint
n,
constint
v){
for(
inti=0;
i<n;
i++)
{
dist[i]=Edge[v][i];
//dist數(shù)組初始化
S[i]=0;
if(i!=v
&&
dist[i]<MAXINT)path[i]=v;
else
path[i]=-1; //path數(shù)組初始化
}
S[v]=1;
dist[v]=0; //頂點v加入頂點集合
//選擇當前不在集合S中具有最短路徑的頂點u
for(i=0;
i<n-1;
i++){
int
min=MAXINT;
int
u=v;
for(
int
j=0;
j<n;
j++)
if(!S[j]&&
dist[j]<min)
{
u=j;
min=
dist[j];
}
S[u]=1;
//將頂點u加入集合S
for(
int
w=0;
w<n;
w++)//修改
if(!S[w]&&
Edge[u][w]<MAXINT&&
dist[u]+Edge[u][w]<
dist[w]){
dist[w]=
dist[u]+Edge[u][w];
path[w]=u;
}
}}
13<V0,V1>8<V0,V2>30<V0,V4>32<V0,V6>V2:8<V0,V2>13<V0,V1>-------13<V0,V2,V3>30<V0,V4>32<V0,V6>V1:13<V0,V1>--------------13<V0,V2,V3>30<V0,V4>22<V0,V1,V5>20<V0,V1,V6>V3:13<V0,V2,V3>---------------------19<V0,V2,V3,V4>22<V0,V1,V5>20<V0,V1,V6>V4:19<V0,V2,V3,V4>終點從V0到各終點的最短路徑及其長度V1V2V3V4V5V6Vj--------------------------------21<V0,V2,V3,V4,V5>20<V0,V1,V6>V6:20<V0,V1,V6>516432085623013717329每一對頂點之間的最短路徑方法一:每次以一個頂點為源點,重復執(zhí)行Dijkstra算法n次——T(n)=O(n3)方法二:弗洛伊德(Floyd)算法算法思想:逐個頂點試探法求最短路徑步驟初始時設置一個n階方陣,令其對角線元素為0,若存在弧<Vi,Vj>,則對應元素為權值;否則為逐步試著在原直接路徑中增加中間頂點,若加入中間點后路徑變短,則修改之;否則,維持原值所有頂點試探完畢,算法結束對于每一對頂點u和v,看看是否存在一個頂點w使得從u到w再到v比己知的路徑更短。如果是更新它。不可思議的是,只要按排適當,就能得到結果。//dist(i,j)為從節(jié)點i到節(jié)點j的最短距離Fori←1tondoForj←1tondodist(i,j)=weight(i,j)Fork←1tondo//k為“中間節(jié)點”
if(dist(i,k)+dist(k,j)<dist(i,j))then//是否是更短的路徑?
dist(i,j)=dist(i,k)+dist(k,j)例ACB264311041160230初始:路徑:ABACBABCCA046602370加入V2:路徑:ABA
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年其他計算機信息服務合作協(xié)議書
- 2025年聚氧乙烯醚合作協(xié)議書
- 2025年谷胱甘肽及酵母提取物合作協(xié)議書
- 2025年中外合資經(jīng)營員工企業(yè)勞動合同(2篇)
- 2025年中學一年級班主任工作小結模版(三篇)
- 2025年二手房出租合同簡單版(2篇)
- 2025年個人租房合租協(xié)議(2篇)
- 2025年個人承租房屋協(xié)議范文(2篇)
- 2025年代理商項目合作協(xié)議范文(2篇)
- 2025年交通事故賠償諒解協(xié)議(2篇)
- 二零二五版財務顧問保密與工作內(nèi)容協(xié)議3篇
- 2025-2030年中國干混砂漿行業(yè)運行狀況及發(fā)展趨勢預測報告
- 2025年度部隊食堂食材采購與質量追溯服務合同3篇
- 2025江蘇鹽城市交通投資建設控股集團限公司招聘19人高頻重點提升(共500題)附帶答案詳解
- 新人教版一年級下冊數(shù)學教案集體備課
- 2024托管班二人合伙的協(xié)議書
- 《輸電線路金具識別》課件
- 2023-2024學年浙江省金華市武義縣七年級(上)期末英語試卷
- 任務型閱讀 -2024年浙江中考英語試題專項復習(解析版)
- 繪本 課件教學課件
- 大型央國企信創(chuàng)化與數(shù)字化轉型規(guī)劃實施方案
評論
0/150
提交評論