资源描述:
《实验4 运输问题求解的编程实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验4运输问题求解的编程实现成绩专业班级信息121学号201212030120姓名刘帅报告日期.实验类型:●验证性实验○综合性实验○设计性实验实验目的:熟练运输问题求解。实验内容:运输问题求解表上作业法2个(产销平衡、不平衡各一个)实验原理运用运输问题表上作业法求解,首先确定初始调运方案,然后计算空格的检验数,判定是否最优方案,如果不是,进行调整,然后再重复上述过程,直到求出最优解。实验步骤1要求上机实验前先编写出程序代码2编辑录入程序3调试程序并记录调试过程中出现的问题及修改程序的过程4经反复调试后,运行程序并验证程序运行是否正确。5记录运行时的输
2、入和输出。预习编写程序代码:实验报告:根据实验情况和结果撰写并递交实验报告。实验总结:参考程序function[metrX]=LP_transport(Cost,Sc,De)ifnargin~=3error('Theremustbe3arguments');end[nSnD]=size(Cost);nDi=length(De);nSi=length(Sc);ifnD~=nDierror('Unmatchedcolumnnumber');elseifnS~=nSierror('Unmatchedrownumber');endclearnDinSi;if
3、abs(sum(De)-sum(Sc))>1e-10disp('unbalancedtransportationproblemisnotsupported.');X=0;metr=0;return;endAeq=conv_constr_matrix(nS,nD);[XBflag]=northwest(Sc,De);metr=sum(sum(X.*Cost));while(1)[optflagentB]=IsOptimal(Bflag,Cost,Aeq);ifoptflagbreak;end[YBout]=cycle(X,entB(1),entB(2)
4、,Bflag);Bflag=Bout;X=Yendmetr=sum(sum(X.*Cost));function[optflagentB]=IsOptimal(Bflag,Cost,Aeq)[nSnD]=size(Cost);cnum=nS*nD;Bflaglst=reshape(Bflag',1,cnum);Clst=reshape(Cost',1,cnum);Aeq=Aeq(1:(end-1),:);B=Aeq(:,logical(Bflaglst));%BaseCb=Clst(logical(Bflaglst));nidx=find(~Bfla
5、glst);N=Aeq(:,nidx);Cn=Clst(nidx);U=Cb/B;R=Cn-U*N;NegFlag=R<0;ifsum(NegFlag)==0optflag=1;entB=[];elseoptflag=0;[tmptmpidx]=min(R);tmp=nidx(tmpidx);col=mod(tmp,nD);ifcol==0entB(1)=tmp/nD;entB(2)=nD;elseentB(1)=ceil(tmp/nD);entB(2)=col;endendfunctionAeq=conv_constr_matrix(nS,nD)c
6、num=nS*nD;Aeq=zeros(nS+nD,cnum);fork=1:nSAeq(k,((k-1)*nD+1):(k*nD))=1;endtmp=1:nD:cnum;fork=1:nDAeq((k+nS),(tmp+k-1))=1;end一所选例题:产销平衡课本169(5-4)产地销地B1B2B3B4产量A147389A229284A3941059销量4656运行程序及结果:>>Cost=[4738;2928;94105];>>Sc=[949]';>>De=[4656];>>LP_transport(Cost,Sc,De)X=20501003
7、0603ans=85最优解矩阵为:X。此时最小运费为85。二所选例题:产销不平衡课本185(5-27)例题需求地区化肥厂ⅠⅡⅢⅣ产量(万吨)A2613221760B1413191550C192023--60最低需求(万吨)最高需求(万吨)3050707003010不限>>De=[4060010;4080301000];>>Sc=[605060]';>>Cost=[26131217;14131915;1920231000];>>LP_transport(Cost,Sc,De)unbalancedtransportationproblemisnotsup
8、ported.不支持不平衡运输问题。ans=0需要改进为:假定生产厂D,将产销不平衡问题转化为产销平衡问题在