




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
拓?fù)渑判蚺c關(guān)鍵路徑第一頁,共五十八頁,2022年,8月28日有向無環(huán)圖:一個無環(huán)的有向圖,簡稱DAG圖。P179圖7.22、7.23DAG圖:
描述含有公共子式的表達(dá)式及工程或系統(tǒng)的進(jìn)行過程時的有效工具。活動:一個較大的工程被劃分成許多子工程,這些子工程被稱作活動。活動之間,存在某種約束,如:某些子工程的開始必須在另外一些子工程完成之后。關(guān)心問題: 1.工程能否順利進(jìn)行 2.估算整個工程完成所必須的最短時間 第二頁,共五十八頁,2022年,8月28日7.5有向無環(huán)圖及其應(yīng)用拓?fù)渑判騿栴}提出:學(xué)生選修課程問題頂點(diǎn)——表示課程有向弧——表示先決條件,若課程i是j的先決條件,則圖中有弧<i,j>學(xué)生應(yīng)按怎樣的順序?qū)W習(xí)這些課程,才能無矛盾、順利地完成學(xué)業(yè)——拓?fù)渑判?/p>
定義AOV網(wǎng)——用頂點(diǎn)表示活動,用弧表示活動間優(yōu)先關(guān)系的有向圖稱為頂點(diǎn)表示活動的網(wǎng)(ActivityOnVertexnetwork),簡稱AOV網(wǎng)若<vi,vj>是圖中有向邊,則vi是vj的直接前驅(qū);vj是vi的直接后繼AOV網(wǎng)中不允許有回路,這意味著某項(xiàng)活動以自己為先決條件第三頁,共五十八頁,2022年,8月28日拓?fù)渑判颉袮OV網(wǎng)絡(luò)中各頂點(diǎn)按照它們相互之間的優(yōu)先關(guān)系排列成一個線性序列的過程叫~檢測AOV網(wǎng)中是否存在環(huán)方法:對有向圖構(gòu)造其頂點(diǎn)的拓?fù)溆行蛐蛄校艟W(wǎng)中所有頂點(diǎn)都在它的拓?fù)溆行蛐蛄兄校瑒t該AOV網(wǎng)必定不存在環(huán)拓?fù)渑判虻姆椒ㄔ谟邢驁D中選一個沒有前驅(qū)的頂點(diǎn)且輸出之從圖中刪除該頂點(diǎn)和所有以它為尾的弧重復(fù)上述兩步,直至全部頂點(diǎn)均已輸出;或者當(dāng)圖中不存在無前驅(qū)的頂點(diǎn)為止第四頁,共五十八頁,2022年,8月28日例課程代號課程名稱先修棵C1C2C3C4C5C6C7C8C9C10C11C12無C1C1,C2C1C3,C4C11C3.C5C3,C6無C9C9C1,C9,C10程序設(shè)計(jì)基礎(chǔ)離散數(shù)學(xué)數(shù)據(jù)結(jié)構(gòu)匯編語言語言的設(shè)計(jì)和分析計(jì)算機(jī)原理編譯原理操作系統(tǒng)高等數(shù)學(xué)線性代數(shù)普通物理數(shù)值分析C1C2C3C4C5C6C7C8C9C10C11C12第五頁,共五十八頁,2022年,8月28日C1C2C3C4C5C6C7C8C9C10C11C12拓?fù)湫蛄校篊1--C2--C3--C4--C5--C7--C9--C10--C11--C6--C12--C8或:C9--C10--C11--C6--C1--C12--C4--C2--C3--C5--C7--C8一個AOV網(wǎng)的拓?fù)湫蛄胁皇俏ㄒ坏牡诹摚参迨隧摚?022年,8月28日C1C2C3C4C5C6C7C8C9C10C11C12第七頁,共五十八頁,2022年,8月28日C2C3C4C5C6C7C8C9C10C11C12拓?fù)湫蛄校篊1(1)C3C4C5C6C7C8C9C10C11C12拓?fù)湫蛄校篊1--C2(2)第八頁,共五十八頁,2022年,8月28日C4C5C6C7C8C9C10C11C12拓?fù)湫蛄校篊1--C2--C3(3)C5C6C7C8C9C10C11C12拓?fù)湫蛄校篊1--C2--C3--C4(4)第九頁,共五十八頁,2022年,8月28日C6C8C10C11C12拓?fù)湫蛄校篊1--C2--C3--C4--C5--C7--C9C6C8C11C12拓?fù)湫蛄校篊1--C2--C3--C4--C5--C7--C9--C10(8)C6C7C8C9C10C11C12拓?fù)湫蛄校篊1--C2--C3--C4--C5(5)C6C8C9C10C11C12拓?fù)湫蛄校篊1--C2--C3--C4--C5--C7(6)第十頁,共五十八頁,2022年,8月28日C6C8C12拓?fù)湫蛄校篊1--C2--C3--C4--C5--C7--C9--C10--C11(9)C8C12拓?fù)湫蛄校篊1--C2--C3--C4--C5--C7--C9--C10--C11--C6(10)C8拓?fù)湫蛄校篊1--C2--C3--C4--C5--C7--C9--C10--C11--C6--C12(11)拓?fù)湫蛄校篊1--C2--C3--C4--C5--C7--C9--C10--C11--C6--C12--C8(12)第十一頁,共五十八頁,2022年,8月28日算法實(shí)現(xiàn)以鄰接表作存儲結(jié)構(gòu)設(shè)置一個包含n個元素的一維數(shù)組indegree,保存AOV網(wǎng)中每個頂點(diǎn)的入度值。把鄰接表中所有入度為0的頂點(diǎn)進(jìn)棧棧非空時,輸出棧頂元素Vj并退棧;在鄰接表中查找Vj的直接后繼Vk,把Vk的入度減1,即indegree[k]-1;若Vk的入度為0則進(jìn)棧重復(fù)上述操作直至棧空為止。若棧空時輸出的頂點(diǎn)個數(shù)不是n,則有向圖有環(huán);否則,拓?fù)渑判蛲戤叺谑摚参迨隧摚?022年,8月28日32104算法描述例1234560122indegree
firstarc
5
5
4
3^^^
adjvex
nextarc3^
2
5^
2
40123456^top16toptop第十三頁,共五十八頁,2022年,8月28日0122indegree
first
5
5
4
3^^^
adjvex
next3^
2
5^
2
40123456^輸出序列:63210416toptop第十四頁,共五十八頁,2022年,8月28日0122indegree
first
5
5
4
3^^^
adjvex
next3^
2
5^
2
40123456^輸出序列:6321041topp第十五頁,共五十八頁,2022年,8月28日0122indegree
first
5
5
4
3^^^
adjvex
next2^
2
5^
2
40123456^輸出序列:6321041topp第十六頁,共五十八頁,2022年,8月28日0122indegree
first
5
5
4
3^^^
adjvex
next2^
2
5^
2
40123456^輸出序列:6321041topp第十七頁,共五十八頁,2022年,8月28日0112indegree
first
5
5
4
3^^^
adjvex
next2^
2
5^
2
40123456^輸出序列:6321041topp第十八頁,共五十八頁,2022年,8月28日0112indegree
first
5
5
4
3^^^
adjvex
next2^
2
5^
2
40123456^輸出序列:6321041topp=NULL第十九頁,共五十八頁,2022年,8月28日0112indegree
first
5
5
4
3^^^
adjvex
next2^
2
5^
2
40123456^輸出序列:61321041toptop第二十頁,共五十八頁,2022年,8月28日0112indegree
first
5
5
4
3^^^
adjvex
next2^
2
5^
2
40123456^輸出序列:6132104topp第二十一頁,共五十八頁,2022年,8月28日0102indegree
First
5
5
4
3^^^
adjvex
next2^
2
5^
2
40123456^輸出序列:6132104topp4第二十二頁,共五十八頁,2022年,8月28日0102indegree
first
5
5
4
3^^^
adjvex
next2^
2
5^
2
40123456^輸出序列:6132104p4top第二十三頁,共五十八頁,2022年,8月28日0102indegree
first
5
5
4
3^^^
adjvex
next2^
2
5^
2
40123456^輸出序列:6132104p4top第二十四頁,共五十八頁,2022年,8月28日0002indegree
first
5
5
4
3^^^
adjvex
next2^
2
5^
2
40123456^輸出序列:6132104p4top3第二十五頁,共五十八頁,2022年,8月28日0002indegree
first
5
5
4
3^^^
adjvex
next2^
2
5^
2
40123456^輸出序列:6132104p4top3第二十六頁,共五十八頁,2022年,8月28日0002indegree
first
5
5
4
3^^^
adjvex
next2^
2
5^
2
40123456^輸出序列:6132104p4top3第二十七頁,共五十八頁,2022年,8月28日0001indegree
first
5
5
4
3^^^
adjvex
next2^
2
5^
2
40123456^輸出序列:6132104p4top3第二十八頁,共五十八頁,2022年,8月28日0001indegree
first
5
5
4
3^^^
adjvex
next2^
2
5^
2
40123456^輸出序列:6132104p=NULL4top3第二十九頁,共五十八頁,2022年,8月28日0001indegree
first
5
5
4
3^^^
adjvex
next2^
2
5^
2
40123456^輸出序列:613321044top3第三十頁,共五十八頁,2022年,8月28日0001indegree
first
5
5
4
3^^^
adjvex
next2^
2
5^
2
40123456^輸出序列:613321044topp第三十一頁,共五十八頁,2022年,8月28日0001indegree
first
5
5
4
3^^^
adjvex
next1^
2
5^
2
40123456^輸出序列:613321044topp第三十二頁,共五十八頁,2022年,8月28日0001indegree
first
5
5
4
3^^^
adjvex
next1^
2
5^
2
40123456^輸出序列:613321044topp第三十三頁,共五十八頁,2022年,8月28日0000indegree
first
5
5
4
3^^^
adjvex
next1^
2
5^
2
40123456^輸出序列:613321044topp2第三十四頁,共五十八頁,2022年,8月28日0000indegree
first
5
5
4
3^^^
adjvex
next1^
2
5^
2
40123456^輸出序列:613321044topp2第三十五頁,共五十八頁,2022年,8月28日0000indegree
first
5
5
4
3^^^
adjvex
next1^
2
5^
2
40123456^輸出序列:613321044top2p=NULL第三十六頁,共五十八頁,2022年,8月28日0000indegree
first
5
5
4
3^^^
adjvex
next1^
2
5^
2
40123456^輸出序列:6132321044top2p=NULL第三十七頁,共五十八頁,2022年,8月28日0000indegree
first
5
5
4
3^^^
adjvex
next1^
2
5^
2
40123456^輸出序列:6132321044topp=NULL第三十八頁,共五十八頁,2022年,8月28日0000indegree
first
5
5
4
3^^^
adjvex
next1^
2
5^
2
40123456^輸出序列:61324321044top第三十九頁,共五十八頁,2022年,8月28日0000indegree
first
5
5
4
3^^^
adjvex
next1^
2
5^
2
40123456^輸出序列:6132432104topp第四十頁,共五十八頁,2022年,8月28日0000indegree
first
5
5
4
3^^^
adjvex
next0^
2
5^
2
40123456^輸出序列:6132432104topp5第四十一頁,共五十八頁,2022年,8月28日0000indegree
first
5
5
4
3^^^
adjvex
next0^
2
5^
2
40123456^輸出序列:6132432104topp=NULL5第四十二頁,共五十八頁,2022年,8月28日0000indegree
first
5
5
4
3^^^
adjvex
next0^
2
5^
2
40123456^輸出序列:61324532104top5第四十三頁,共五十八頁,2022年,8月28日0000indegree
first
5
5
4
3^^^
adjvex
next0^
2
5^
2
40123456^輸出序列:61324532104topp=NULL第四十四頁,共五十八頁,2022年,8月28日算法分析--算法7.12建鄰接表:T(n)=O(e)搜索入度為0的頂點(diǎn)的時間:T(n)=O(n)拓?fù)渑判颍篢(n)=O(n+e)第四十五頁,共五十八頁,2022年,8月28日關(guān)鍵路徑問題提出把工程計(jì)劃表示為有向圖,用頂點(diǎn)表示事件,弧表示活動;每個事件表示在它之前的活動已完成,在它之后的活動可以開始例設(shè)一個工程有11項(xiàng)活動,9個事件事件V1——表示整個工程開始事件V9——表示整個工程結(jié)束問題:(1)完成整項(xiàng)工程至少需要多少時間?(2)哪些活動是影響工程進(jìn)度的關(guān)鍵?987645321a1=6a2=4a3=5a4=1a5=1a6=2a7=9a8=7a9=4a10=2a11=4第四十六頁,共五十八頁,2022年,8月28日定義AOE網(wǎng)(ActivityOnEdge)——也叫邊表示活動的網(wǎng)。AOE網(wǎng)是一個帶權(quán)的有向無環(huán)圖,其中頂點(diǎn)表示事件,弧表示活動,權(quán)表示活動持續(xù)時間路徑長度——路徑上各活動持續(xù)時間之和關(guān)鍵路徑——路徑長度最長的路徑叫~Ve(j)——表示事件Vj的最早發(fā)生時間Vl(j)——表示事件Vj的最遲發(fā)生時間e(i)——表示活動ai的最早開始時間l(i)——表示活動ai的最遲開始時間l(i)-e(i)——表示完成活動ai的時間余量關(guān)鍵活動——關(guān)鍵路徑上的活動叫~,即l(i)=e(i)的活動第四十七頁,共五十八頁,2022年,8月28日問題分析如何找e(i)=l(i)的關(guān)鍵活動?設(shè)活動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)開始遞推第四十八頁,共五十八頁,2022年,8月28日求關(guān)鍵路徑步驟求Ve(i)求Vl(j)求e(i)求l(i)計(jì)算l(i)-e(i)987645321a2=4a3=5a5=1a6=2a9=4a1=6a4=1a7=9a8=7a10=2a11=4V1V2V3V4V5V6V7V8V9頂點(diǎn)VeVl0645771614180668710161418a1a2a3a4a5a6a7a8a9a10a11活動ell-e00002266046258377077071031616014140033第四十九頁,共五十八頁,2022年,8月28日算法實(shí)現(xiàn)以鄰接表作存儲結(jié)構(gòu)從源點(diǎn)V1出發(fā),令Ve[1]=0,按拓?fù)湫蛄星蟾黜旤c(diǎn)的Ve[i]從匯點(diǎn)Vn出發(fā),令Vl[n]=Ve[n],按逆拓?fù)湫蛄星笃溆喔黜旤c(diǎn)的Vl[i]根據(jù)各頂點(diǎn)的Ve和Vl值,計(jì)算每條弧的e[i]和l[i],找出e[i]=l[i]的關(guān)鍵活動第五十頁,共五十八頁,2022年,8月28日算法描述1-輸入頂點(diǎn)和弧信息,建立其鄰接表計(jì)算每個頂點(diǎn)的入度2-對其進(jìn)行拓?fù)渑判?.1-排序過程中求頂點(diǎn)的Ve[i]2.2-將得到的拓?fù)湫蛄羞M(jìn)棧3-按逆拓?fù)湫蛄星箜旤c(diǎn)的Vl[i]4-計(jì)算每條弧的e[i]和l[i],找出e[i]=l[i]的關(guān)鍵活動第五十一頁,共五十八頁,2022年,8月28日StatusTopologicalOrder(ALGraphG,Stack&T){//算法7.13//有向網(wǎng)G采用鄰接表存儲結(jié)構(gòu),求各頂點(diǎn)事件的最早發(fā)生時間ve(全局變量)。
//T為拓?fù)湫蛄卸c(diǎn)棧,S為零入度頂點(diǎn)棧。
//若G無回路,則用棧T返回G的一個拓?fù)湫蛄校液瘮?shù)值為OK,否則為ERROR。
StackS;intcount=0,k;charindegree[40];ArcNode*p;InitStack(S);FindInDegree(G,indegree);//對各頂點(diǎn)求入度indegree[0..vernum-1]for(intj=0;j<G.vexnum;++j)//建零入度頂點(diǎn)棧Sif(indegree[j]==0)Push(S,j);//入度為0者進(jìn)棧
InitStack(T);//建拓?fù)湫蛄许旤c(diǎn)棧Tcount=0;for(inti=0;i<G.vexnum;i++)ve[i]=0;//初始化
while(!StackEmpty(S)){Pop(S,j);Push(T,j);++count;//j號頂點(diǎn)入T棧并計(jì)數(shù)
for(p=G.vertices[j].firstarc;p;p=p->nextarc){k=p->adjvex;//對j號頂點(diǎn)的每個鄰接點(diǎn)的入度減1if(--indegree[k]==0)Push(S,k);//若入度減為0,則入棧
if(ve[j]+p->info>ve[k])ve[k]=ve[j]+p->info;}//for*(p->info)=dut(<j,k>)}//whileif(count<G.vexnum)returnERROR;//該有向網(wǎng)有回路
elsereturnOK;}//TopologicalOrder第五十二頁,共五十八頁,2022年,8月28日StatusCriticalPath(ALGraphG){//算法7.14,G為有向網(wǎng),輸出G的各項(xiàng)關(guān)鍵活動。StackT;inta,j,k,el,ee,dut;chartag;ArcNode*p;if(!TopologicalOrder(G,T))returnERROR;for(a=0;a<G.vexnum;a++)
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年專家點(diǎn)評:中國可變電阻器行業(yè)發(fā)展環(huán)境及投資策略報(bào)告
- 2025至2031年中國箱型交流金屬封閉開關(guān)設(shè)備行業(yè)投資前景及策略咨詢研究報(bào)告
- 甘肅省隴南市某中學(xué)2024年中考數(shù)學(xué)模擬試卷含解析
- 2025-2030年中國RTB廣告行業(yè)走勢預(yù)測及未來趨勢發(fā)展研究報(bào)告
- 2025年一般生產(chǎn)經(jīng)營單位安全培訓(xùn)考試試題1套
- 2025廠級安全培訓(xùn)考試試題(研優(yōu)卷)
- 2025新職工入場安全培訓(xùn)考試試題附參考答案【模擬題】
- 2024-2025承包商入廠安全培訓(xùn)考試試題答案打印
- 2025年新入職工安全培訓(xùn)考試試題答案打印
- 2024-2025崗前安全培訓(xùn)考試試題帶答案(預(yù)熱題)
- GB/T 18050-2000潛油電泵電纜試驗(yàn)方法
- GB 7793-2010中小學(xué)校教室采光和照明衛(wèi)生標(biāo)準(zhǔn)
- FZ/T 24011-2019羊絨機(jī)織圍巾、披肩
- 金螳螂企業(yè)管理課件
- 炊事機(jī)械安全操作規(guī)程
- 最新版教育心理學(xué)課件3-成就動機(jī)
- 離合器-汽車畢業(yè)設(shè)計(jì)-設(shè)計(jì)說明書
- 中國民間美術(shù)年畫-完整版PPT
- 2022年《趣味接力跑》教案
- 級配碎石旁站監(jiān)理記錄表.模板
- 國電南自PSL 641U線路保護(hù)測控裝置技術(shù)說明書V1.1
評論
0/150
提交評論