![實驗五優(yōu)先隊列式分支限界法解裝載問題_第1頁](http://file4.renrendoc.com/view/eaea6b7c3f8ab1c0c619f6d8154301fa/eaea6b7c3f8ab1c0c619f6d8154301fa1.gif)
![實驗五優(yōu)先隊列式分支限界法解裝載問題_第2頁](http://file4.renrendoc.com/view/eaea6b7c3f8ab1c0c619f6d8154301fa/eaea6b7c3f8ab1c0c619f6d8154301fa2.gif)
![實驗五優(yōu)先隊列式分支限界法解裝載問題_第3頁](http://file4.renrendoc.com/view/eaea6b7c3f8ab1c0c619f6d8154301fa/eaea6b7c3f8ab1c0c619f6d8154301fa3.gif)
![實驗五優(yōu)先隊列式分支限界法解裝載問題_第4頁](http://file4.renrendoc.com/view/eaea6b7c3f8ab1c0c619f6d8154301fa/eaea6b7c3f8ab1c0c619f6d8154301fa4.gif)
![實驗五優(yōu)先隊列式分支限界法解裝載問題_第5頁](http://file4.renrendoc.com/view/eaea6b7c3f8ab1c0c619f6d8154301fa/eaea6b7c3f8ab1c0c619f6d8154301fa5.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗五優(yōu)先隊列式分支限界法解裝載問題09電信實驗班I09660118徐振飛一、實驗題目實現(xiàn)書本P201所描述的優(yōu)先隊列式分支限界法解裝載問題二、實驗?zāi)康?)掌握并運用分支限界法基本思想2)運用優(yōu)先隊列式分支限界法實現(xiàn)裝載問題3)比較隊列式分支限界法和優(yōu)先隊列式分支限界法的優(yōu)缺點三、實驗內(nèi)容和原理(1)實驗內(nèi)容有一批共n個集裝箱要裝上2艘載重量分別為c1和c2的輪船,nwic1c2其中集裝箱i的重量為Wi,且i1,要求確定可否有一個合理的裝載方案可將這n個集裝箱裝上這2艘輪船。若是有,請給出方案。(2)實驗原理解裝載問題的優(yōu)先隊列式分支限界法用最大優(yōu)先隊列儲藏活結(jié)點表?;罱Y(jié)點x在優(yōu)先隊列中的優(yōu)先
2、級定義為從根結(jié)點到結(jié)點x的路徑所相應(yīng)的載重量再加上節(jié)余集裝箱的重量之和。優(yōu)先隊列中優(yōu)先級最大的活結(jié)點成為下一個擴展結(jié)點。優(yōu)先隊列中活結(jié)點x的優(yōu)先級為x.uweight。以結(jié)點x為根的子樹中所有結(jié)點相應(yīng)的路徑的載重量不超過x.uweight。子集樹中葉結(jié)點所相應(yīng)的載重量與其優(yōu)先級相同。因此在優(yōu)先隊列式分支限界法中,一旦有一個葉結(jié)點成為當前擴展結(jié)1點,則可以斷言該葉結(jié)點所相應(yīng)的解即為最優(yōu)解,此時停止算法。上述策略可以用兩種不相同方式來實現(xiàn)。第一種方式在結(jié)點優(yōu)先隊列的每一個活結(jié)點中保存從解空間樹的根結(jié)點到該活結(jié)點的路徑,在算法確定了達到最優(yōu)值的葉結(jié)點時,就在該葉結(jié)點處同時獲取相應(yīng)的最優(yōu)解。第二種方式
3、在算法的搜尋進度中保存當前已構(gòu)造出的部分解空間樹,在算法確定了達到最優(yōu)值的葉結(jié)點時,就可以在解空間樹中從該葉結(jié)點開始向根結(jié)點回溯,構(gòu)造出相應(yīng)的最優(yōu)解。在下面的算法中,采用第二種方式。四、源程序importjava.util.Comparator;importjava.util.Iterator;importjava.util.PriorityQueue;importjava.util.Scanner;publicclasstest5publicvoidaddLiveNode(PriorityQueueH,bbnodeE,intwt,booleanch,intlev)bbnodeb=newbbn
4、ode(E,ch);HeapNodeN=newHeapNode(b,wt,lev);H.add(N);publicintmaxLoading(intw,intc,intn,booleanbestx)PriorityQueueH=newPriorityQueue(1000,newcomp();/*生成最大堆*/intr=newintn+1;rn=0;for(intj=n-1;j0;j-)rj=rj+1+wj+1;inti=1;bbnodeE=newbbnode(null,false);intEw=0;while(i!=n+1)if(Ew+wi0;j-)bestxj=E.Lchild;E=E.pa
5、rent;returnEw;publicstaticvoidmain(Stringargs)System.out.println(請輸入物品總數(shù):);Scannersc1=newScanner(System.in);intn=sc1.nextInt();intw=newintn+1;System.out.println(請輸入物品重量:);Scannersc2=newScanner(System.in);for(inti=1;i=n;i+)wi=sc2.nextInt();System.out.println(請輸入箱子重量:);Scannersc3=newScanner(System.in)
6、;intc1=sc3.nextInt();intc2=sc3.nextInt();booleanbestx=newboolean100;test5t=newtest5();/辦理第一個箱子System.out.println(first:+t.maxLoading(w,c1,n,bestx);System.out.print(可裝重為:);intcount=0;for(inti=1;i=n;i+)if(bestxi)count+;System.out.print(wi+);/*輸出一個可行方案*/System.out.println();/*辦理第二個箱子*/intm=n-count;3int
7、ww=newintm+1;intk=1;for(inti=1;i=n;i+)if(!bestxi)wwk=wi;k+;bestxi=false;System.out.println();System.out.println(second:+t.maxLoading(ww,c2,m,bestx);System.out.print(可裝重為:);for(inti=1;i=m;i+)if(bestxi)System.out.print(wwi+);/*輸出一個可行方案*/*堆結(jié)點類*/classHeapNodebbnodeptr;intuweight;intlevel;publicHeapNode(
8、)publicHeapNode(bbnodeptr,intuweight,intlevel)this.ptr=ptr;this.uweight=uweight;this.level=level;publicStringtoString()return+this.uweight;classbbnodebbnodeparent;booleanLchild;publicbbnode(bbnodenode,booleanch)this.parent=node;this.Lchild=ch;/定義比較器類4classcompimplementsComparatorOverridepublicintcom
9、pare(HeapNodeo1,HeapNodeo2)intdif=o1.uweight-o2.uweight;if(dif0)return-1;elseif(dif=0)return0;elsereturn1;五、實驗結(jié)果和解析a.輸入格式說明:1)第一輸入物品總數(shù)量2)第二欄輸入所有物品重量3)第三欄輸入2個箱子的重量b.輸出格式說明:1)第一輸出first的字樣,后邊的數(shù)字表示第一個箱子所能裝載的最大重量,緊接著的一行輸出一種可以選擇裝載的方案2)Second字樣后邊的數(shù)字表示第二個箱子所能裝載的最大重量,緊接著的一行輸出一種可行方案5經(jīng)過解析,上述結(jié)果正確。六、實驗心得和領(lǐng)悟經(jīng)過實驗,
10、認識了分支限界法的基本思想。掌握了利用優(yōu)先隊列式分支限界法實現(xiàn)詳盡的裝載問題。由于本次實驗利用java.util包下的PriorityQueue代替算法中的最大堆,免去了編寫實現(xiàn)最大堆的程序代碼(但這其實不表示我不會編寫最大堆程序,在此次實驗中,最大堆的實現(xiàn)其實不是主要部分),因此本次實驗實現(xiàn)的相對順利。存在的問題及解析:在此例中最合理的裝載方法是第一個箱子裝載重量為:1050的6物品,第二個箱子裝載重量為2020的物品。解析:由于程序中先裝載第一個箱子,爾后再裝載第二個箱子;而分支限界法一旦擴展結(jié)點到達葉子結(jié)點時,程序便停止退出。因此在此例中當?shù)谝粋€箱子裝滿后(此時重量為102030的物品已被裝走),余下的
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物聯(lián)網(wǎng)時代的移動設(shè)備中嵌入式開發(fā)新機遇
- 環(huán)??萍荚谕苿泳G色能源發(fā)展中的作用
- 現(xiàn)代家庭教育與孩子未來職業(yè)規(guī)劃的聯(lián)動
- Unit 5 The colourful world Part C Reading time大單元整體說課稿表格式-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊001
- Unit 1 Wish you were here Integrated skills (1) 說課稿-2024-2025學(xué)年高中英語牛津譯林版(2020)選擇性必修第三冊
- 2023三年級英語下冊 Unit 10 Is he a farmer第2課時說課稿 湘少版
- Unit 4 History and Traditions Reading for Writing 說課稿-2024-2025學(xué)年高中英語人教版(2019)必修第二冊
- 2024年五年級語文下冊 第六單元 17 跳水說課稿 新人教版
- 《3 熱空氣和冷空氣》說課稿-2023-2024學(xué)年科學(xué)三年級上冊蘇教版
- 2025地質(zhì)災(zāi)害治理工程施工合同
- SLT824-2024 水利工程建設(shè)項目文件收集與歸檔規(guī)范
- 雙眼視異常處理方法-雙眼視異常的棱鏡處方(雙眼視檢查)
- 鍋爐本體安裝單位工程驗收表格
- 我國水體中抗生素的污染現(xiàn)狀、危害及防治建議
- 手術(shù)出血量的評估
- 報價單(產(chǎn)品報價單)
- 一種基于STM32的智能門鎖系統(tǒng)的設(shè)計-畢業(yè)論文
- 0-9任意四位數(shù)數(shù)位排列
- 隧道安全培訓(xùn)課件
- 小學(xué)勞動教育教研計劃
- 電子工程師年終總結(jié)
評論
0/150
提交評論