1、运筹学实验报告软件的使用习题代码运 筹 学实 验 报 告姓 名: 学 号: 班 级: 相关问题说明:一、实验性质和教学目的本实验是运筹学课内安排的上机操作实验。目的在于了解、熟悉计算机Lingo软件在运筹学模型求解中的作用,激发学习兴趣,提高学习效果,增强自身的动手能力,提高实际应用能力。二、实验基本要求要求学生:1. 实验前认真做好理论准备,仔细阅读实验指导书;2. 遵从教师指导,认真完成实验任务,按时按质提交实验报告。三、主要参考资料1LINGO软件2. 及其在环境系统优化中的应用,天津大学出版社,20053. 优化建模与LINDO/LINGO软件,清华大学出版社,20054运筹学编写组主
2、编,运筹学(修订版),清华大学出版社,19905蓝伯雄主编,管理数学(下)运筹学,清华大学出版社,1997 6胡运权主编,运筹学习题集(修订版),清华大学出版社,1995 7胡运权主编,运筹学教程(第二版),清华大学出版社,2003实验内容1、线性规划问题:(1) 给出原始代码;(2) 计算结果(包括灵敏度分析,求解结果粘贴);(3) 回答下列问题(手写):a) 最优解及最优目标函数值是多少;b) 资源的对偶价格各为多少,并说明对偶价格的含义;c) 为了使目标函数值增加最多,让你选择一个约束条件,将它的常数项增加一个单位,你将选择哪一个约束条件这时目标函数值将是多少d) 对x2的目标函数系数进
3、行灵敏度分析;e) 对第2个约束的约束右端项进行灵敏度分析;f ) 结合本题的结果解释“Reduced Cost”的含义。对偶价格就是说 约束方程右端变量增加1对目标函数值的影响答案:(1)代码max =8*x1+6*x2;9*x1+8*x2=12;7*x1+11*x2=24;9*x1+11*x2=0;x2=0;(2)计算结果Global optimal solution found. Objective value: Total solver iterations: 2 Variable Value Reduced Cost X1 X2 Row Slack or Surplus Dual P
4、rice 1 2 3 4 5 6 Ranges in which the basis is unchanged: Objective Coefficient Ranges Current Allowable Allowable Variable Coefficient Increase Decrease X1 INFINITY X2 INFINITY Righthand Side Ranges Row Current Allowable Allowable RHS Increase Decrease 2 3 INFINITY 4 INFINITY 5 INFINITY 6 INFINITY(3
5、)a)b)c)d)e)f) 2、运输问题:已知6个发点8个收点的最小费用运输问题。产销量及单位运价如下表。销地 cij产地B1B2B3B4B5B6B7B8产量A16297425955A24553853247A35213748342A47679927152A52365726541A65922814332销量6055514341524338(1) 给出原始代码;(2) 计算结果(决策变量求解结果粘贴) Min Z = Cij Xij Xij =bj (j=1.8) 销量约束 Xij = ai (i=1.6) 产量约束 Xij 0(i=1.6;j=1.8) 代码:model:!6发点8 model:
6、!6发点8收点运输问题;sets: warehouses/wh1.wh6/: capacity; vendors/v1.v8/: demand; links(warehouses,vendors): cost, volume;endsets min=sum(links: cost*volume); !目标函数; for(vendors(J): sum(warehouses(I): volume(I,J)= required(J);end结果Global optimal solution found. Objective value: Total solver iterations: 3 Var
7、iable Value Reduced Cost REQUIRED( X1) REQUIRED( X2) REQUIRED( X3) REQUIRED( X4) REQUIRED( X5) REQUIRED( X6) REQUIRED( X7) REQUIRED( X8) START( X1) START( X2) START( X3) START( X4) START( X5) START( X6) START( X7) START( X8) Row Slack or Surplus Dual Price 1 2 3 4 5 6 7 8 9 4、指派问题:已知如下效率矩阵,求极大化指派问题。
8、B1B2B3B4B5A14871512A279171410A3691287A46714610A56912106(1) 给出原始代码;(2) 计算结果(决策变量求解结果粘贴) model: !5个工人,5个工作的分配问题;sets: workers/w1.w5/; jobs/j1.j5/; links(workers,jobs): cost,volume;endsets !目标函数; min=sum(links: cost*volume); !每个工人只能有一份工作; for(workers(I): sum(jobs(J): volume(I,J)=1; ); !每份工作只能有一个工人; for
9、(jobs(J): sum(workers(I): volume(I,J)=1; );data: cost= 4 8 7 15 12 7 9 17 14 10 6 9 12 8 7 6 7 14 6 10 6 9 12 10 6;enddataend答案 Global optimal solution found. Objective value: Total solver iterations: 10 Variable Value Reduced Cost COST( W1, J1) COST( W1, J2) COST( W1, J3) COST( W1, J4) COST( W1, J5
10、) COST( W2, J1) COST( W2, J2) COST( W2, J3) COST( W2, J4) COST( W2, J5) COST( W3, J1) COST( W3, J2) COST( W3, J3) COST( W3, J4) COST( W3, J5) COST( W4, J1) COST( W4, J2) COST( W4, J3) COST( W4, J4) COST( W4, J5) COST( W5, J1) COST( W5, J2) COST( W5, J3) COST( W5, J4) COST( W5, J5) VOLUME( W1, J1) VO
11、LUME( W1, J2) VOLUME( W1, J3) VOLUME( W1, J4) VOLUME( W1, J5) VOLUME( W2, J1) VOLUME( W2, J2) VOLUME( W2, J3) VOLUME( W2, J4) VOLUME( W2, J5) VOLUME( W3, J1) VOLUME( W3, J2) VOLUME( W3, J3) VOLUME( W3, J4) VOLUME( W3, J5) VOLUME( W4, J1) VOLUME( W4, J2) VOLUME( W4, J3) VOLUME( W4, J4) VOLUME( W4, J5
12、) VOLUME( W5, J1) VOLUME( W5, J2) VOLUME( W5, J3) VOLUME( W5, J4) VOLUME( W5, J5) Row Slack or Surplus Dual Price 1 2 3 4 5 6 7 8 9 10 11 5、一维资源分配问题:某工业部门根据国家计划的安排,拟将某种高效率的设备五台,分配给所属的甲、乙、丙三个工厂,各工厂若获得这种设备之后,可以为国家提供的盈利如下表所示。问:这五台设备如何分配给各工厂,才能使国家得到的盈利最大。 工厂设备台数甲a乙 b丙 c0000155421515263404040480604559070
13、50(1) 给出原始代码;(2) 计算结果(决策变量求解结果粘贴) 代码sets:R/1.6/:z;L/1.3/;c(R,L):x,y;endsetsdata:X=0 0 0 5 5 4 15 15 26 40 40 40 80 60 45 90 70 50;z=0 1 2 3 4 5;enddatamax=sum(c(i,j):X(i,j)*y(i,j);for(l(i):sum(c(j,k)|k#eq# 1:y(j,k)=1);sum(c(i,j):y(i,j)*z(i)=5;for(c(i,j):B in(y(i,j);end答案Global optimal solution found
14、. Objective value: Extended solver steps: 0 Total solver iterations: 0 Variable Value Reduced Cost Z( 1) Z( 2) Z( 3) Z( 4) Z( 5) Z( 6) X( 1, 1) X( 1, 2) X( 1, 3) X( 2, 1) X( 2, 2) X( 2, 3) X( 3, 1) X( 3, 2) X( 3, 3) X( 4, 1) X( 4, 2) X( 4, 3) X( 5, 1) X( 5, 2) X( 5, 3) X( 6, 1) X( 6, 2) X( 6, 3) Y(
15、1, 1) Y( 1, 2) Y( 1, 3) Y( 2, 1) Y( 2, 2) Y( 2, 3) Y( 3, 1) Y( 3, 2) Y( 3, 3) Y( 4, 1) Y( 4, 2) Y( 4, 3) Y( 5, 1) Y( 5, 2) Y( 5, 3) Y( 6, 1) Y( 6, 2) Y( 6, 3) Row Slack or Surplus Dual Price 1 2 3 4 5 6、最短路问题:求从V1至V10的最短路。l1,2=6, l1,3=5, l2,4=3, l2,5=6, l2,6=9, l3,4=7, l3,5=5, l3,6=11, l4,7=9, l4,8=
16、1, l5,7=8, l5,8=7, l5,9=5, l6,8=4, l6,9=10, l7,10=5, l8,10=7, l9,10=9(li,j表示Vi到Vj之间的权重)(1) 给出原始代码;(2) 计算结果(决策变量求解结果粘贴) !最短路问题;model:data: n=10;enddatasets: cities/1.n/: F; !10个城市; roads(cities,cities)/ 1,2 1,3 2,4 2,5 2,6 3,4 3,5 3,6 4,7 4,8 5,7 5,8 5,9 6,8 6,9 7,10 8,10 9,10 /: D, P;endsetsdata: D=
17、 6 5 3 6 9 7 5 11 9 1 8 7 5 4 10 5 7 9;enddata F(n)=0; for(cities(i) | i #lt# n: F(i)=min(roads(i,j): D(i,j)+F(j); ); !显然,如果P(i,j)=1,则点i到点n的最短路径的第一步是i - j,否则就不是。 由此,我们就可方便的确定出最短路径; for(roads(i,j): P(i,j)=if(F(i) #eq# D(i,j)+F(j),1,0) );end答案Feasible solution found. Total solver iterations: 0 Variable Value N F( 1) F( 2) F( 3) F( 4) F( 5) F( 6) F( 7) F( 8) F( 9) F( 10) D( 1, 2) D( 1, 3) D( 2, 4) D( 2, 5) D( 2, 6) D( 3, 4) D( 3, 5) D( 3, 6) D( 4, 7) D( 4, 8) D( 5, 7) D( 5, 8) D( 5, 9) D( 6, 8) D( 6, 9) D( 7, 10) D( 8, 10) D( 9, 10) P( 1, 2) P( 1, 3) P( 2, 4) P( 2, 5) P