資源描述:
《圖論習(xí)題及答案.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、作業(yè)解答練習(xí)題2利用matlab編程FFD算法完成下題:設(shè)有6種物品,它們的體積分別為:60、45、35、20、20和20單位體積,箱子的容積為100個(gè)單位體積。解答一:function[num,s]=BinPackingFFD(w,capacity)%一維裝箱問(wèn)題的FFD(降序首次適應(yīng))算法求解:先將物體按長(zhǎng)度從大到小排序,%然后按FF算法對(duì)物體裝箱%輸入?yún)?shù)w為物品體積,capacity為箱子容量%輸出參數(shù)num為所用箱子個(gè)數(shù),s為元胞數(shù)組,表示裝箱方案,s{i}為第i個(gè)箱子所裝%物品體積數(shù)組%例w=[60,45,35,20,20,20];capacity=100;%
2、num=3,s={[1,3],[2,4,5],6};w=sort(w,'descend');n=length(w);s=cell(1,n);bin=capacity*ones(1,n);num=1;fori=1:nforj=1:num+1ifw(i)3、t=1;x=zeros(n,n);V_Left=100;fori=1:nifv(i)>=max(V_Left)box_count=box_count+1;x(i,box_count)=1;V_Left=[V_LeftV-v(i)];elsej=1;while(v(i)>V_Left(j))j=j+1;endx(i,j)=1;V_Left(j)=V_Left(j)-v(i);endtemp=find(x(i,:)==1);fprintf('第%d個(gè)物品放在第%d個(gè)容器',i,temp)endoutput: 第1個(gè)物品放在第1個(gè)容器第2個(gè)物品放在第2個(gè)容器第3個(gè)物品放在第
4、1個(gè)容器第4個(gè)物品放在第2個(gè)容器第5個(gè)物品放在第2個(gè)容器第6個(gè)物品放在第3個(gè)容器解答三:functionbox_count=FFD(x)%降序首次適應(yīng)算法v=100;x=fliplr(sort(x));%v=input('請(qǐng)輸入箱子的容積:');n=length(x);I=ones(n);E=zeros(1,n);box=v*I;box_count=0;fori=1:nj=1;while(j<=box_count)ifx(i)>box(j)j=j+1;continue;elsebox(j)=box(j)-x(i);E(i)=j;break;endendifj>box_co
5、untbox_count=box_count+1;box(box_count)=box(box_count)-x(i);E(i)=j;endenddisp(E);在命令窗口輸入:>>x=[60,45,35,20,20,20];>>FFD(x)121223ans=3練習(xí)題5“超市大贏家”提供了50種商品作為獎(jiǎng)品供中獎(jiǎng)?lì)櫩瓦x擇,車的容量為1000dm3,獎(jiǎng)品i占用的空間為widm3,價(jià)值為vi元,具體的數(shù)據(jù)如下:vi={220,208,198,192,180,180,165,162,160,158,155,130,125,122,120,118,115,110,105,101
6、,100,100,98,96,95,90,88,82,80,77,75,73,72,70,69,66,65,63,60,58,56,50,30,20,15,10,8,5,3,1}wi={80,82,85,70,72,70,66,50,55,25,50,55,40,48,50,32,22,60,30,32,40,38,35,32,25,28,30,22,50,30,45,30,60,50,20,65,20,25,30,10,20,25,15,10,10,10,4,4,2,1}。問(wèn)如何裝車才能總價(jià)值最大。解答:clear;clc;v=[220,208,198,192,180,
7、180,165,162,160,158,155,130,125,122,120,118,115,110,105,101,100,100,98,96,95,90,88,82,80,77,75,73,72,70,69,66,65,63,60,58,56,50,30,20,15,10,8,5,3,1];w=[80,82,85,70,72,70,66,50,55,25,50,55,40,48,50,32,22,60,30,32,40,38,35,32,25,28,30,22,50,30,45,30,60,50,20,65,20,25,