当前位置:文档之家› 运筹学实验报告

运筹学实验报告

实验1 单纯形法求解线性规划成绩实验类型:●验证性实验○综合性实验○设计性实验实验目的:进一步熟练掌握单纯形法求解线性规划。

实验内容:单纯形法求解线性规划4个实验原理线性规划单纯形法(线性规划解有四种情形,唯一最优解,无穷多个最解,无界解,无可行解)实验步骤1 要求上机实验前先编写出程序代码2 编辑录入程序3 调试程序并记录调试过程中出现的问题及修改程序的过程4 经反复调试后,运行程序并验证程序运行是否正确。

5 记录运行时的输入和输出。

预习编写程序代码:实验报告:根据实验情况和结果撰写并递交实验报告。

参考程序:function [xx,b,fm,sgma,AA,flg]=myprgmh(m1,m,n,A,b,c)% 单纯形法求解性规划函数。

默认标准型人工变量在最前、剩余变量在后构成基本量;% m1 人工变量的个数;m 基变量的个数; n 所有变量的个数;% A 约束方程的系数矩阵;% b 约束方程右端列向量;输出 b 基变量的值;% c 目标函数的系数。

cb 基变量的系数% 输出 xx 为基变量的下标;% fm 输出目标函数的值;% flg 表示解得四种情况;B0=A(:,1:m); % B0 初始可行基矩阵(单位矩阵);cb=c(:,1:m);xx=1:m; % xx 变量的下标;sgma=c-(cb*B0)*A; % sgma 检验数;h=-1;sta=ones(m,1);for i=1:nif sgma(i)>0h=1;endendvv=0;[msg,mk]=max(sgma);for i=1:mif A(i,mk)>0sta(i)=b(i)/A(i,mk);elsesta(i)=10000;endend[mst,mr]=min(sta);if mst==10000flg='unbounded solution';fm=inf;xx=[];b=[];h=-1;vv=1;AA=[];elsezy=A(mr,mk)for i=1:mif i==mrfor j=1:nA(i,j)=A(i,j)/zy;endb(i)=b(i)/zy;elseendendfor i=1:mif i~=mramk=A(i,mk);b(i)=b(i)-amk*b(mr);for j=1:nA(i,j)=A(i,j)-amk*A(mr,j); endelseendA;B1=A(:,1:m); % B1 新基的逆矩阵;cb(mr)=c(mk);xx(mr)=mk;sgma=c-cb*A;for i=1:nif sgma(i)>0h=1;endendendcbbfm=sum(cb*b);if (h==-1)&(vv~=1)vv=0;for i=1:mif xx(i)<=m1vv=vv+2;endendif vv>=2;flg='nofeasibel';xx=[];fm=[];b=[];vv=1;AA=[];endif vv~=1AA=A;ss=size(find(sgma))ww=ss(2)if ww==n-mflg='There is only one solution';elseflg='There are many solutions';endendendendendend一. 唯一最优解。

12max 3z x x =+12122125105014,0x x x x x x x +≤⎧⎪+≥⎪⎨≤⎪⎪≥⎩ >> [xx,b,fm,sgma,AA,flg]=myprgmh(m1,m,n,A,b,c)Zy=1cb = 0 3 0b =4013zy =1cb =0 3 0b =1043zy =5cb =1 3 0b = 245ss =1 2ww =2xx =4 5 2b = 245fm =14sgma =-0.2000 0 -1.0000 0 0AA =0.2000 0 -2.0000 1.0000 00 0 1.0000 0 1.00000.2000 1.0000 -1.0000 0 0flg =There is only one solution二. 无界解。

1231231323123max 2262220,,0z x x x x x x x x x x x x x =-+++≥⎧⎪-+≥⎪⎨-≥⎪⎪≥⎩>> A=[-1 0 0 1 1 1;0 -1 0 -2 0 1;0 0 -1 0 2 -1];b=[6 2 0]';m1=0;m=3;n=6;c=[0 0 0 2 -1 2]c =0 0 0 2 -1 2>> [xx,b,fm,sgma,AA,flg]=myprgmh(m1,m,n,A,b,c)zy =1cb = 2 0 0b = 614xx =[]b =[]fm =Infsgma =2 0 0 0 -3 0AA =[]flg =unbounded solution三. 无穷多最优解。

121212123max 248416412,,0z x x x x x x x x x =+⎧+≤⎪≤⎪⎨≤⎪⎪≥⎩>> A=[1 0 0 1 2;0 1 0 4 0;0 0 1 0 4];b=[8 16 12]';c=[0 0 0 2 4];m1=0;m=3;n=5 n =5>> [xx,b,fm,sgma,AA,flg]=myprgmh(m1,m,n,A,b,c)zy =4cb =0 0 4b =2163zy =1b =2 0 4b = 283ss =1 1ww =1xx =4 2 5b = 283fm =16sgma =-2 0 0 0 0AA = 1.0000 0 -0.5000 1.0000 0-4.0000 1.0000 2.0000 0 00 0 0.2500 0 1.0000flg =There are many solutions四.无可行解。

>> A=[1 0 1 -1 -1 0;0 1 -3 1 0 -1];>> b=[0;3];>> c=[-100 -100 1 1 0 0];>> [xx,b,fm,sgma,AA,flg]=myprgmh(2,2,6,A,b,c)xx = []B= []fm =[]sgma =0 -1 -196 0 -100 -99AA =[]flg =nofeasibel实验二、线性规划的灵敏性分析(一)实验目的1. 线性规划求解的单纯形法的灵敏度分析的编程实现2.掌握使用matlab、Lingo、Excel的规划求解功能求解,并利用“敏感性报告”进行分析。

(二)实验内容P45 1.6 (1)-(4)解的灵敏度分析P45 1.6 (1)max=2*x1+3*x2+4*x3;x1+x2+x3<5;x1-2*x2+5*x3<10;2*x1+3*x2-3*x3<6;计算结果Global optimal solution found.Objective value: 17.85714Total solver iterations: 0Variable Value Reduced CostX1 0.000000 1.428571X2 2.142857 0.000000X3 2.857143 0.000000Row Slack or Surplus Dual Price1 17.85714 1.0000002 0.000000 3.2857143 0.000000 0.14285714 8.142857 0.000000灵敏度分析Ranges in which the basis is unchanged:Objective Coefficient RangesCurrent Allowable Allowable Variable Coefficient Increase Decrease X1 2.000000 1.428571 INFINITY X2 3.000000 1.000000 2.500000 X3 4.000000 INFINITY 1.000000Righthand Side RangesRow Current Allowable Allowable RHS Increase Decrease 2 5.000000 6.333333 3.000000 3 10.00000 15.00000 9.500000 4 6.000000 INFINITY 8.142857分析结果:最优值是17.85714,此时x1=0,x2=2.142857,x3=2.857143x1=2.0时,x1在[2.0-∞,2.0+1.428571]=[-∞,3.142857]内变化时,最优值不变; x2=3.0时,x2在[3.0-2.5,3.0+1.0]=[0.5,4]内变化时,最优值不变;x3=4.0时,x3在[3.0-1.0,3.0+∞]=[2,∞]内变化时,最优值不变;其他可类似理解。

实验三、运输问题(一)实验目的1. 运输问题求解的编程实现2.掌握使用matlab 、Lingo 、Excel 的求解功能求解运输问题,并对结果进行分析。

(二)实验内容教师自拟。

P97 3.3, 或 3.5⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧≤++≤++≤++≤++≤+++≤+++≤+++;3500;3000;2000;1500;5000;2500;2500128411731062951121110987654321x x x x x x x x x x x x x x x x x x x x x x x x ..t s程序:model:sets:chengshi/1..3/:a;fuzhuang/1..4/:b;link(chengshi,fuzhuang):c,x;endsetsdata:a=2500 2500 5000;b=1500 2000 3000 3500;c=10 5 6 78 2 7 69 3 4 8;enddatamax=@sum(link(i,j):x(i,j)*c(i,j));@for(fuzhuang(j):@sum(chengshi(i):x(i,j))<=b(j););@for(chengshi(i):@sum(fuzhuang(j):x(i,j))<=a(i););endGlobal optimal solution found.Objective value: 72000.00Total solver iterations: 7X( 1, 2) 2000.000 0.000000X( 1, 3) 500.0000 0.000000X( 2, 3) 2500.000 0.000000X( 3, 1) 1500.000 0.000000X( 3, 4) 3500.000 0.000000实验四、整数规划(一)实验目的1. 整数规划求解的分支定界法的编程实现2.掌握使用matlab、Lingo、Excel的求解功能求解整数规划问题,并对结果进行分析。

相关主题