实验三整数规划

2018-12-17 15:16

实验三整数规划

(一) 实验目的:运用Excel和LINGO软件求解整数规划(纯整数、混合整数)、0-1规划 (二) 内容及要求:求解习题3-1、3-5 (三) 实验报告:

3-1. 某厂拟在A,B,C,D,E五个城市建立若干配送中心数据如下表,求解何种选址方案能让总利润最大? 资源 城市 应投资金/ 百万元 4 6 12 0 1 20 应投人力/ 人次 5 4 12 3 0 15 应投设备/套 1 1 1 0 0 2 利润/ 10万元 4.5 3.8 9.5 -2 -1.5 A B C D E 资源限制 解:数学模型为:

maxz = 4.5X1 + 3.8X2 + 9.5X3 – 2X4 - 1.5X5

4X1 + 6X2 + 12X3 + 0X4 + 1X5 <= 20 5X1 + 4X2 + 12X3 + 3X4 + 0X5 <= 15 1X1 + 1X2 + 1X3 + 0X4 + 0X5 <= 2 X1 , X2 , X3, X4 ,X5 = 0或1

LINGO模型为:

!习题3-1;

max=4.5*x1+3.8*x2+9.5*x3-2*x4-1.5*x5; 4*x1+6*x2+12*x3+0*x4+1*x5<=20; 5*x1+4*x2+12*x3+3*x4+0*x5<=15; 1*x1+1*x2+1*x3<=2; @bin(x1); @bin(x2); @bin(x3); @bin(x4); @bin(x5);

单击求解按钮,得到规划求解报告如下:

结果分析:

厂方在城市C选址建立配送中心能使总利润最大,最大总利润为9.5万元。

3-5.安排4个人做4项不同的工,每个人完成工作所需要的时间如表3-14所示。

表3-14 习题3-5数据

时 间 人 甲 乙 丙 丁 工 作 /d A 20 18 26 17 B 19 24 16 20 C 20 27 15 24 D 28 20 18 19 (1) 应如何指派,可使总的时间最少?

(2) 如果表中的数据为创造的效益,应如何指派,使总效益最大? (3) 如果表中增加一个人(一行),完成A,B,C,D工作的时间分别为16d,17d,20d,21d,

这时应如何指派,使总时间最少?

解:

(1) 用LINGO求解,模型代码如下:

model:

!4个工人,4个工作的指派问题; sets:

person/1..4/; job/1..4/;

assign(person,job):c,x; endsets

!目标函数;

min=@sum(assign:c*x); !需求约束;

@for(person(i):

@sum(job(j):x(i,j))=1); @for(job(j):

@sum(person(i):x(i,j))=1); !这里是数据; data:

c=20 19 20 28 18 24 27 20 26 16 15 18 17 20 24 19; enddata end

单击求解按钮,得到规划求解报告如下:(只截取了能用到的一部分)

X( 1, 1) 0.000000 2.000000

X( 1, 2) 1.000000 0.000000 X( 1, 3) 0.000000 2.000000 X( 1, 4) 0.000000 8.000000 X( 2, 1) 0.000000 0.000000 X( 2, 2) 0.000000 5.000000 X( 2, 3) 0.000000 9.000000 X( 2, 4) 1.000000 0.000000 X( 3, 1) 0.000000 11.00000 X( 3, 2) 0.000000 0.000000 X( 3, 3) 1.000000 0.000000 X( 3, 4) 0.000000 1.000000 X( 4, 1) 1.000000 0.000000 X( 4, 2) 0.000000 2.000000 X( 4, 3) 0.000000 7.000000 X( 4, 4) 0.000000 0.000000

从上述求解报告可知,最优指派方案应为:甲→B,乙→A,丙→C,丁→D,最少总时间为19+18+15+19=71;

(2) 要使总效益最大,即求最大化问题,此时LINGO模型的代码变为:

model:

!4个工人,4个工作的指派问题; sets:

person/1..4/; job/1..4/;

assign(person,job):c,x; endsets

!目标函数;

max=@sum(assign:c*x); !需求约束;

@for(person(i):

@sum(job(j):x(i,j))=1); @for(job(j):

@sum(person(i):x(i,j))=1); !这里是数据; data:

c=20 19 20 28 18 24 27 20 26 16 15 18 17 20 24 19; enddata end

同样单击求解按钮,得到规划求解报告如下:(只截取了能用到的一部分)

X( 1, 1) 0.000000 8.000000 X( 1, 2) 0.000000 6.000000

X( 1, 3) 0.000000 8.000000 X( 1, 4) 1.000000 0.000000 X( 2, 1) 0.000000 9.000000 X( 2, 2) 1.000000 0.000000 X( 2, 3) 0.000000 0.000000 X( 2, 4) 0.000000 7.000000 X( 3, 1) 1.000000 0.000000 X( 3, 2) 0.000000 7.000000 X( 3, 3) 0.000000 11.00000 X( 3, 4) 0.000000 8.000000 X( 4, 1) 0.000000 7.000000 X( 4, 2) 0.000000 1.000000 X( 4, 3) 1.000000 0.000000 X( 4, 4) 0.000000 5.000000

从上述求解报告可知,最优指派方案应为:甲→D,乙→B,丙→A,丁→C,最大总效益为28+24+26+24=102;

(3) 如果表中增加一个人,那么指派问题变为5个工人4个工作的指派问题,可以增

加一列虚拟工作使得模型可解,此时LINGO模型的代码变为:

model:

!5个工人,4个工作的指派问题; sets:

person/1..5/; job/1..5/;

assign(person,job):c,x; endsets

!目标函数;

min=@sum(assign:c*x); !需求约束;

@for(person(i):

@sum(job(j):x(i,j))=1); @for(job(j):

@sum(person(i):x(i,j))=1); !这里是数据; data:

c=20 19 20 28 28 18 24 27 20 28 26 16 15 18 28 17 20 24 19 28 16 17 20 21 28; enddata

end

单击求解按钮后,得到规划求解报告如下:(只截取了能用到的一部分)

X( 1, 1) 0.000000 2.000000

X( 1, 2) 0.000000 0.000000 X( 1, 3) 0.000000 2.000000 X( 1, 4) 0.000000 8.000000 X( 1, 5) 1.000000 0.000000 X( 2, 1) 0.000000 0.000000 X( 2, 2) 0.000000 5.000000 X( 2, 3) 0.000000 9.000000 X( 2, 4) 1.000000 0.000000 X( 2, 5) 0.000000 0.000000 X( 3, 1) 0.000000 11.00000 X( 3, 2) 0.000000 0.000000 X( 3, 3) 1.000000 0.000000 X( 3, 4) 0.000000 1.000000 X( 3, 5) 0.000000 3.000000 X( 4, 1) 1.000000 0.000000 X( 4, 2) 0.000000 2.000000 X( 4, 3) 0.000000 7.000000 X( 4, 4) 0.000000 0.000000 X( 4, 5) 0.000000 1.000000 X( 5, 1) 0.000000 0.000000 X( 5, 2) 1.000000 0.000000 X( 5, 3) 0.000000 4.000000 X( 5, 4) 0.000000 3.000000 X( 5, 5) 0.000000 2.000000

由上述报告可知,最优指派方案为:甲不分配,乙→D,丙→C,丁→A,戊→B,此时最少总时间为20+15+17+17=69。


实验三整数规划.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:九年级语文下册第2单元6蒲柳人家学案无答案新版新人教版20

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: