![單源最短路徑問(wèn)題_第1頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-10/12/cc5e705a-4ea3-4424-9c15-d0d9acf855f8/cc5e705a-4ea3-4424-9c15-d0d9acf855f81.gif)
![單源最短路徑問(wèn)題_第2頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-10/12/cc5e705a-4ea3-4424-9c15-d0d9acf855f8/cc5e705a-4ea3-4424-9c15-d0d9acf855f82.gif)
![單源最短路徑問(wèn)題_第3頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-10/12/cc5e705a-4ea3-4424-9c15-d0d9acf855f8/cc5e705a-4ea3-4424-9c15-d0d9acf855f83.gif)
![單源最短路徑問(wèn)題_第4頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-10/12/cc5e705a-4ea3-4424-9c15-d0d9acf855f8/cc5e705a-4ea3-4424-9c15-d0d9acf855f84.gif)
![單源最短路徑問(wèn)題_第5頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-10/12/cc5e705a-4ea3-4424-9c15-d0d9acf855f8/cc5e705a-4ea3-4424-9c15-d0d9acf855f85.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)四 單源最短路徑問(wèn)題一、實(shí)驗(yàn)?zāi)康模?、 理解分支限界法的剪枝搜索策略;2、 掌握分支限界法的算法柜架;3、 掌握分支限界法的算法步驟;4、 通過(guò)應(yīng)用范例學(xué)習(xí)動(dòng)態(tài)規(guī)劃算法的設(shè)計(jì)技巧與策略;二、 實(shí)驗(yàn)內(nèi)容及要求:1、使用分支限界法解決單源最短路徑問(wèn)題。2、通過(guò)上機(jī)實(shí)驗(yàn)進(jìn)行算法實(shí)現(xiàn)。3、保存和打印出程序的運(yùn)行結(jié)果,并結(jié)合程序進(jìn)行分析,上交實(shí)驗(yàn)報(bào)告。三、實(shí)驗(yàn)原理:分支限界法的基本思想:1、分支限界法與回溯法的不同:1)求解目標(biāo):回溯法的求解目標(biāo)是找出解空間樹(shù)中滿足約束條件的所有解,而分支限界法的求解目標(biāo)則是找出滿足約束條件的一個(gè)解,或是在滿足約束條件的解中找出在某種意義下的最優(yōu)解。2)搜索方式的不
2、同:回溯法以深度優(yōu)先的方式搜索解空間樹(shù),而分支限界法則以廣度優(yōu)先或以最小耗費(fèi)優(yōu)先的方式搜索解空間樹(shù)。 2、分支限界法基本思想:分支限界法常以廣度優(yōu)先或以最小耗費(fèi)(最大效益)優(yōu)先的方式搜索問(wèn)題的解空間樹(shù)。在分支限界法中,每一個(gè)活結(jié)點(diǎn)只有一次機(jī)會(huì)成為擴(kuò)展結(jié)點(diǎn)?;罱Y(jié)點(diǎn)一旦成為擴(kuò)展結(jié)點(diǎn),就一次性產(chǎn)生其所有兒子結(jié)點(diǎn)。在這些兒子結(jié)點(diǎn)中,導(dǎo)致不可行解或?qū)е路亲顑?yōu)解的兒子結(jié)點(diǎn)被舍棄,其余兒子結(jié)點(diǎn)被加入活結(jié)點(diǎn)表中。 此后,從活結(jié)點(diǎn)表中取下一結(jié)點(diǎn)成為當(dāng)前擴(kuò)展結(jié)點(diǎn),并重復(fù)上述結(jié)點(diǎn)擴(kuò)展過(guò)程。這個(gè)過(guò)程一直持續(xù)到找到所需的解或活結(jié)點(diǎn)表為空時(shí)為止。 3、常見(jiàn)的兩種分支限界法:1)隊(duì)列式(FIFO)分支限界法 按照隊(duì)列先進(jìn)先
3、出(FIFO)原則選取下一個(gè)節(jié)點(diǎn)為擴(kuò)展節(jié)點(diǎn)。 2)優(yōu)先隊(duì)列式分支限界法 按照優(yōu)先隊(duì)列中規(guī)定的優(yōu)先級(jí)選取優(yōu)先級(jí)最高的節(jié)點(diǎn)成為當(dāng)前擴(kuò)展節(jié)點(diǎn)。四、程序代碼#include using namespace std;int matrix100100; / 鄰接矩陣bool visited100; / 標(biāo)記數(shù)組int dist100; / 源點(diǎn)到頂點(diǎn)i的最短距離int path100; / 記錄最短路的路徑int source; / 源點(diǎn)int vertex_num; / 頂點(diǎn)數(shù)int edge_num; / 邊數(shù)int destination;/ 終結(jié)點(diǎn) void Dijkstra(int source
4、)memset(visited, 0, sizeof(visited); / 初始化標(biāo)記數(shù)組visitedsource = true;for (int i = 0; i vertex_num; i+)disti = matrixsourcei;pathi = source;int min_cost; / 權(quán)值最小int min_cost_index; / 權(quán)值最小的下標(biāo)for (int i = 1; i vertex_num; i+) / 找到源點(diǎn)到另外 vertex_num-1 個(gè)點(diǎn)的最短路徑min_cost = INT_MAX;for (int j = 0; j vertex_num; j
5、+)if (visitedj = false & distj min_cost) / 找到權(quán)值最小min_cost = distj;min_cost_index = j;visitedmin_cost_index = true; / 該點(diǎn)已找到,進(jìn)行標(biāo)記for (int j = 0; j vertex_num; j+) / 更新 dist 數(shù)組if (visitedj = false &matrixmin_cost_indexj != INT_MAX & / 確保兩點(diǎn)之間有邊matrixmin_cost_indexj + min_cost distj)distj = matrixmin_cos
6、t_indexj + min_cost;pathj = min_cost_index;int main()cout 請(qǐng)輸入圖的頂點(diǎn)數(shù)( vertex_num;cout edge_num;for (int i = 0; i vertex_num; i+)for (int j = 0; j vertex_num; j+)matrixij = (i != j) ? INT_MAX : 0; / 初始化 matrix 數(shù)組cout 請(qǐng)輸入邊的信息:n;int u, v, w;for (int i = 0; i edge_num; i+)cout 請(qǐng)輸入第 i + 1 u v w;matrixuv =
7、matrixvu = w;cout 請(qǐng)輸入源點(diǎn)( vertex_num source;Dijkstra(source);cout 請(qǐng)輸入終結(jié)點(diǎn)( vertex_num destination;cout source 到 destination 最短距離是: distdestination ,路徑是: destination;int t = pathdestination;while (t != source)cout - t;t = patht;cout - source endl;return 0;五、結(jié)果運(yùn)行與分析本例用使迪杰斯特拉算法來(lái)求單源最短路徑,也即采用優(yōu)先隊(duì)列式分支限界法,按照優(yōu)先隊(duì)列中規(guī)定的優(yōu)先級(jí)選取優(yōu)先級(jí)最高的節(jié)點(diǎn)成為當(dāng)前擴(kuò)展節(jié)點(diǎn)。選定源節(jié)點(diǎn)后,從源節(jié)點(diǎn)開(kāi)始擴(kuò)展,并將其子節(jié)點(diǎn)按路徑長(zhǎng)度大小依次存于棧中,每次從棧頂彈出節(jié)點(diǎn)作為擴(kuò)展節(jié)點(diǎn),利用限界來(lái)剪去相應(yīng)的節(jié)點(diǎn)。6、 心得與體會(huì)通過(guò)這次實(shí)驗(yàn),對(duì)迪杰斯
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國(guó)陶瓷結(jié)合劑CBN砂輪行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球LED體育計(jì)分板行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球垂直層流潔凈工作臺(tái)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)大學(xué)規(guī)劃App行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)無(wú)機(jī)助焊劑行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 《Java程序設(shè)計(jì)教程 (任務(wù)驅(qū)動(dòng)式)》全套教學(xué)課件
- 2025-2030全球絲束浸漬機(jī)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)技術(shù)技能評(píng)估平臺(tái)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)航空自動(dòng)駕駛儀行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)儲(chǔ)罐除銹機(jī)器人行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年度高端商務(wù)車輛聘用司機(jī)勞動(dòng)合同模板(專業(yè)版)4篇
- GB/T 45107-2024表土剝離及其再利用技術(shù)要求
- 2025長(zhǎng)江航道工程局招聘101人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年黑龍江哈爾濱市面向社會(huì)招聘社區(qū)工作者1598人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 執(zhí)行總經(jīng)理崗位職責(zé)
- 《妊娠期惡心嘔吐及妊娠劇吐管理指南(2024年)》解讀
- 《黑神話:悟空》跨文化傳播策略與路徑研究
- 《古希臘文明》課件
- 居家養(yǎng)老上門(mén)服務(wù)投標(biāo)文件
- 長(zhǎng)沙市公安局交通警察支隊(duì)招聘普通雇員筆試真題2023
- 2025年高考語(yǔ)文作文滿分范文6篇
評(píng)論
0/150
提交評(píng)論