欢迎来到天天文库
浏览记录
ID:41884137
大小:503.67 KB
页数:41页
时间:2019-09-04
《floyd,dijkstra,模拟退火,蚁群效应等程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、matlab实现Floyd算法•9fn・1f;n4・12oo22fnn=size(a,1);D=a;fori二1:nforj二l:nR(i,j)=j;endendRfork二1:nfori=1:nforj=l:nifD(i,k)+D(k,j)2、;infinfinf13046;infinf92inf403;infinfinfinf9630]n二size(w,1);wl=w(l,:);fori=l:n1(i)二wl(i);z(i)二1;ends二[];s(l)=1;U二s(l);k二1;1zwhilekl(u)1(i)=z(i)二endendendendend1z11=1;fori=1:nforj二l:kif1=s(j)elsell(i)=ll(i);endll(i)=inf;endendlv=inf;f3、ori二1:nifll(i)4、一步:将物品体积按照从大到小排序fori=1:length(W)-1forj=i+1:lcngth(W)ifW(i)5、剩余体积最大的箱子ifW(i)U(maxk)maxx二U(j);maxx_k=j;endend%将物品放到这个箱子中ifW(i)6、maxxk)二二0state(V(i),maxx_k)二1;%状态发生变化U(maxx_k)=U(maxx_k)-W(i);%箱子的体积变化elsecontinue;%否则的话继续循环下一个物品endendend整数规划分支定界算法mallab通用源程序%整数规划分支定界算法matlab通用源程序%各参数的意义同matlab优化工具箱的线性规划函数1inprog%调用前,输入参数要化成matlab的标准形式[x,val]=kfz-f-3(n,f,a,b,aeq,beq,lb,ub)x=zeros(n,1);xl二zeros(n,1);ml=2;m2=l;[xl,vall7、]=linprog(f,a,b,aeq,beq,lb,ub);if(xl==0)x二xl;val二val1;clscif(round(xl)==xl)x=xl;val=vall;elseel二{0,a,b,aeq,beq,lb,ub,xl,vail);e(l,l)二{el};zl=0;zu=-vall;while(ziT二zl)forc二1:1:m2if(m广二2)if(cell2mat(e{ml-1,c}(1))==1)el={l,0,0};e(ml,c*2T)={el};e(ml,c*2)二{el};continue;end;end;
2、;infinfinf13046;infinf92inf403;infinfinfinf9630]n二size(w,1);wl=w(l,:);fori=l:n1(i)二wl(i);z(i)二1;ends二[];s(l)=1;U二s(l);k二1;1zwhilekl(u)1(i)=z(i)二endendendendend1z11=1;fori=1:nforj二l:kif1=s(j)elsell(i)=ll(i);endll(i)=inf;endendlv=inf;f
3、ori二1:nifll(i)4、一步:将物品体积按照从大到小排序fori=1:length(W)-1forj=i+1:lcngth(W)ifW(i)5、剩余体积最大的箱子ifW(i)U(maxk)maxx二U(j);maxx_k=j;endend%将物品放到这个箱子中ifW(i)6、maxxk)二二0state(V(i),maxx_k)二1;%状态发生变化U(maxx_k)=U(maxx_k)-W(i);%箱子的体积变化elsecontinue;%否则的话继续循环下一个物品endendend整数规划分支定界算法mallab通用源程序%整数规划分支定界算法matlab通用源程序%各参数的意义同matlab优化工具箱的线性规划函数1inprog%调用前,输入参数要化成matlab的标准形式[x,val]=kfz-f-3(n,f,a,b,aeq,beq,lb,ub)x=zeros(n,1);xl二zeros(n,1);ml=2;m2=l;[xl,vall7、]=linprog(f,a,b,aeq,beq,lb,ub);if(xl==0)x二xl;val二val1;clscif(round(xl)==xl)x=xl;val=vall;elseel二{0,a,b,aeq,beq,lb,ub,xl,vail);e(l,l)二{el};zl=0;zu=-vall;while(ziT二zl)forc二1:1:m2if(m广二2)if(cell2mat(e{ml-1,c}(1))==1)el={l,0,0};e(ml,c*2T)={el};e(ml,c*2)二{el};continue;end;end;
4、一步:将物品体积按照从大到小排序fori=1:length(W)-1forj=i+1:lcngth(W)ifW(i)5、剩余体积最大的箱子ifW(i)U(maxk)maxx二U(j);maxx_k=j;endend%将物品放到这个箱子中ifW(i)6、maxxk)二二0state(V(i),maxx_k)二1;%状态发生变化U(maxx_k)=U(maxx_k)-W(i);%箱子的体积变化elsecontinue;%否则的话继续循环下一个物品endendend整数规划分支定界算法mallab通用源程序%整数规划分支定界算法matlab通用源程序%各参数的意义同matlab优化工具箱的线性规划函数1inprog%调用前,输入参数要化成matlab的标准形式[x,val]=kfz-f-3(n,f,a,b,aeq,beq,lb,ub)x=zeros(n,1);xl二zeros(n,1);ml=2;m2=l;[xl,vall7、]=linprog(f,a,b,aeq,beq,lb,ub);if(xl==0)x二xl;val二val1;clscif(round(xl)==xl)x=xl;val=vall;elseel二{0,a,b,aeq,beq,lb,ub,xl,vail);e(l,l)二{el};zl=0;zu=-vall;while(ziT二zl)forc二1:1:m2if(m广二2)if(cell2mat(e{ml-1,c}(1))==1)el={l,0,0};e(ml,c*2T)={el};e(ml,c*2)二{el};continue;end;end;
5、剩余体积最大的箱子ifW(i)U(maxk)maxx二U(j);maxx_k=j;endend%将物品放到这个箱子中ifW(i)
6、maxxk)二二0state(V(i),maxx_k)二1;%状态发生变化U(maxx_k)=U(maxx_k)-W(i);%箱子的体积变化elsecontinue;%否则的话继续循环下一个物品endendend整数规划分支定界算法mallab通用源程序%整数规划分支定界算法matlab通用源程序%各参数的意义同matlab优化工具箱的线性规划函数1inprog%调用前,输入参数要化成matlab的标准形式[x,val]=kfz-f-3(n,f,a,b,aeq,beq,lb,ub)x=zeros(n,1);xl二zeros(n,1);ml=2;m2=l;[xl,vall
7、]=linprog(f,a,b,aeq,beq,lb,ub);if(xl==0)x二xl;val二val1;clscif(round(xl)==xl)x=xl;val=vall;elseel二{0,a,b,aeq,beq,lb,ub,xl,vail);e(l,l)二{el};zl=0;zu=-vall;while(ziT二zl)forc二1:1:m2if(m广二2)if(cell2mat(e{ml-1,c}(1))==1)el={l,0,0};e(ml,c*2T)={el};e(ml,c*2)二{el};continue;end;end;
此文档下载收益归作者所有