實驗六_分支限界法

實驗六_分支限界法

ID:9338773

大?。?4.00 KB

頁數:14頁

時間:2018-04-28

實驗六_分支限界法_第1頁
實驗六_分支限界法_第2頁
實驗六_分支限界法_第3頁
實驗六_分支限界法_第4頁
實驗六_分支限界法_第5頁
資源描述:

《實驗六_分支限界法》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫

1、算法分析與設計實驗報告          學號姓名班級上課地點教師上課時間實驗六分支限界法1.實驗目的1.1掌握分支限界法的設計思想;1.2理解分支限界法的剪枝搜索策略;1.3掌握分支限界法的算法框架;1.4學會利用分支限界法解決實際問題。2.實驗環(huán)境2.1Eclipse2.2WindowXP3.實驗內容3.1裝載問題3.2旅行售貨員問題4.教師批改意見簽字:日期:成績14實驗報告細表1裝載問題1.1算法設計思想解裝載問題的優(yōu)先隊列式分支限界法用最大優(yōu)先隊列存儲活結點表?;罱Y點x在優(yōu)先隊列中的優(yōu)先級定義為從根結點到結點x的路徑所相應的載

2、重量再加上剩余集裝箱的重量之和。優(yōu)先隊列中優(yōu)先級最大的活結點成為下一個擴展結點。以結點x為根的子樹中所有結點相應的路徑的載重量不超過它的優(yōu)先級。子集樹中葉結點所相應的載重量與其優(yōu)先級相同。在優(yōu)先隊列式分支限界法中,一旦有一個葉結點成為當前擴展結點,則可以斷言該葉結點所相應的解即為最優(yōu)解。此時可終止算法。1.2程序源碼packagelab06;importjava.util.Comparator;importjava.util.PriorityQueue;importjava.util.Scanner;importlab06.FIFOBB

3、Loading.HeapNode;publicclassFIFOBBLoading{staticintn;//貨物數量staticintc1;//第一艘船的載重量staticintc2;//第二艘船的載重量staticint[]w;//貨物重量的數組staticintbestw;//當前最優(yōu)載重量staticboolean[]bestx;//當前最最優(yōu)解staticScannerscan=newScanner(System.in);publicstaticvoidmain(String[]args){//輸入貨物數量System.out

4、.print("請輸入貨物數量:n=");n=inputN();bestx=newboolean[n+1];//輸入第一艘船的載重量System.out.print("請輸入第一艘船的載重量:c1=");c1=inputC1();//輸入第二艘船的載重量System.out.print("請輸入第二艘船的載重量:c2=");c2=inputC2();14//輸入各個貨物的重量System.out.println("請輸入各個貨物的重量:");w=inputW();System.out.println("第一艘船可載重:"+maxLoad

5、ing(w,c1,n,bestx));intcount=0;System.out.print("第一艘船裝載的貨物為:");for(inti=1;i<=n;i++)if(bestx[i]){System.out.print(w[i]+"");count++;bestx[i]=false;}System.out.println();if(n-count!=0){System.out.println("第二艘船可載重:"+maxLoading(w,c2,n-count,bestx));System.out.print("第二艘船裝載的貨物為

6、:");for(inti=1;i<=n-count;i++)if(bestx[i])System.out.print(w[i]+"");}elseSystem.out.println("只需第一艘船便能裝載完所有貨物");}//輸入貨物數量privatestaticintinputN(){n=scan.nextInt();if(n<=0){System.out.println("貨物數量有誤,請重新輸入!");System.out.print("n=");n=scan.nextInt();inputN();}returnn;}//輸入第

7、一艘船的載重量privatestaticintinputC1()14{c1=scan.nextInt();if(c1<=0){System.out.println("第一艘船的載重量輸入有誤,請重新輸入!");System.out.print("c1=");c1=scan.nextInt();inputC1();}returnc1;}//輸入第二艘船的載重量privatestaticintinputC2(){c2=scan.nextInt();if(c2<=0){System.out.println("第二艘船的載重量輸入有誤,請重新輸

8、入!");System.out.print("c2=");c2=scan.nextInt();inputC2();}returnc2;}//輸入第一艘船的載重量privatestaticint[]input

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。