lingo实例很有用练习1、2从中选线性规划案例1

lingo实例很有用练习1、2从中选线性规划案例1
lingo实例很有用练习1、2从中选线性规划案例1

1. 人力资源分配问题

设司机和乘务人员分别在各时间段开始时上班,并连续工作8小时,问该公交线路应怎样安排司机和乘务人员,既能满足工作需要,又使配备司机和乘务人员的人数最少?

解:设x i 表示第i班次时开始上班的司机和乘务人员数,

这样我们建立如下的数学模型。

目标函数:Min x1 + x2 + x3 + x4 + x5 + x6

约束条件:s.t. x1 + x6 ≥60

x1 + x2 ≥70

x2 + x3 ≥60

x3 + x4 ≥50

x4 + x5 ≥20

x5 + x6 ≥30

x1,x2,x3,x4,x5,x6 ≥0

运用lingo求解:

Min=x1 + x2 + x3 + x4 + x5 + x6;

x1 + x6 >=60;

x1 + x2>= 70;

x2 + x3>= 60;

x3 + x4>=50;

x4 + x5>= 20;

x5 + x6>=30;

Objective value: 150.0000

ariable Value Reduced Cost X1 60.00000 0.000000

X2 10.00000 0.000000

X3 50.00000 0.000000

X4 0.000000 0.000000

X5 30.00000 0.000000

X6 0.000000 0.000000

也可以是

Global optimal solution found.

Objective value: 150.0000

Total solver iterations: 6

Variable Value Reduced Cost

X1 40.00000 0.000000

X2 30.00000 0.000000

X3 30.00000 0.000000

X4 20.00000 0.000000

X5 0.000000 0.000000

X6 30.00000 0.000000

Row Slack or Surplus Dual Price

1 150.0000 -1.000000

2 10.00000 0.000000

3 0.000000 -1.000000

4 0.000000 0.000000

5 0.000000 -1.000000

6 0.000000 0.000000

7 0.000000 -1.000000

例2.一家中型的百货商场,它对售货员的需求经过统计分析如下表所示。为了保证售货人员充分休息,售货人员每周工作5天,休息两天,并要求休息的两天是连续的。问应该如何安排售货人员的作息,既满足工作需要,又使配备的售货人员的人数最少?

解:设x i ( i = 1,2,…,7)表示星期一至日开始休息的人数,这样我们建立如下的数学模型。

目标函数:Min x1 + x2 + x3 + x4 + x5 + x6 + x7

约束条件:s.t. x1 + x2 + x3 + x4 + x5 ≥28

x2 + x3 + x4 + x5 + x6 ≥15

x3 + x4 + x5 + x6 + x7 ≥24

x4 + x5 + x6 + x7 + x1 ≥25

x5 + x6 + x7 + x1 + x2 ≥19

x6 + x7 + x1 + x2 + x3 ≥31

x7 + x1 + x2 + x3 + x4 ≥28

x1,x2,x3,x4,x5,x6,x7 ≥0

lingo求解

Min = x1 + x2 + x3 + x4 + x5 + x6 + x7;

x1 + x2 + x3 + x4 + x5 >= 28;

x2 + x3 + x4 + x5 + x6 >=15;

x3 + x4 + x5 + x6 + x7 >= 24;

x4 + x5 + x6 + x7 + x1 >= 25;

x5 + x6 + x7 + x1 + x2 >= 19;

x6 + x7 + x1 + x2 + x3 >= 31;

x7 + x1 + x2 + x3 + x4 >= 28;

Objective value: 36.00000

Variable Value Reduced Cost X1 12.00000 0.000000

X2 0.000000 0.3333333 X3 11.00000 0.000000

X4 5.000000 0.000000

X5 0.000000 0.000000

X6 8.000000 0.000000

X7 0.000000 0.000000

例3. 某储蓄所每天的营业时间为上午9:00到下午17:00,根据经验,每天不同时间段所需要的服务员的数量为:

储蓄所可以雇佣全时和半时两类服务员。全时服务员每天报酬为100元,从上午9:00到下午17:00工作,但中午12:00到下午14:00之间必须安排1小时的午餐时间;储蓄所每天可以雇佣不超过3名的半时服务员,每个半时服务员必须连续工作4小时,报酬为40元。问:

1) 储蓄所应该如何雇佣全时和半时两类服务员?

2) 如果不能雇佣半时服务员,每天至少增加多少经费?

3) 如果雇佣半时服务员的数量没有限制,每天可以减少多少经费?

解:设x1, x2分别表示12~13,13~14进行午餐的全时服务人员,

y1,y2,y3,y4,y5分别表示9~10,10~11,11~12,12~13,13~14开始工作的半时服务人员,则问题1的模型如下所示:

min=100*x1+100*x2+40*y1+40*y2+40*y3+40*y4+40*y5;

x1+x2+y1>4;

x1+x2+y1+y2>3;

x1+x2+y1+y2+y3>4;

x2+y1+y2+y3+y4>6;

x1+y2+y3+y4+y5>5;

x1+x2+y3+y4+y5>6;

x1+x2+y4+y5>8;

x1+x2+y5>8;

y1+y2+y3+y4+y5<3;

@gin(x1);@gin(x2);@gin(y1);@gin(y2);@gin(y3);@gin(y4);@gin(y5); Objective value: 820.0000

Variable Value Reduced Cost

X1 3.000000 100.0000

Y1 0.000000 40.00000 Y2 2.000000 40.00000 Y3 0.000000 40.00000 Y4 0.000000 40.00000 Y5 1.000000 40.00000

2)把y1+y2+y3+y4+y5<3;修改为y1+y2+y3+y4+y5=0;

min=100*x1+100*x2+40*y1+40*y2+40*y3+40*y4+40*y5;

x1+x2+y1>4;

x1+x2+y1+y2>3;

x1+x2+y1+y2+y3>4;

x2+y1+y2+y3+y4>6;

x1+y2+y3+y4+y5>5;

x1+x2+y3+y4+y5>6;

x1+x2+y4+y5>8;

x1+x2+y5>8;

y1+y2+y3+y4+y5=0;

@gin(x1);@gin(x2);@gin(y1);@gin(y2);@gin(y3);@gin(y4);@gin(y5); Objective value: 1100.000

Variable Value Reduced Cost X1 5.000000 0.000000 X2 6.000000 0.000000 Y1 0.000000 100.0000 Y2 0.000000 0.000000 Y3 0.000000 0.000000 Y4 0.000000 0.000000 Y5 0.000000 100.0000

3)把y1+y2+y3+y4+y5<3;去掉

min=100*x1+100*x2+40*y1+40*y2+40*y3+40*y4+40*y5;

x1+x2+y1>4;

x1+x2+y1+y2>3;

x1+x2+y1+y2+y3>4;

x2+y1+y2+y3+y4>6;

x1+y2+y3+y4+y5>5;

x1+x2+y3+y4+y5>6;

x1+x2+y4+y5>8;

x1+x2+y5>8;

@gin(x1);@gin(x2);@gin(y1);@gin(y2);@gin(y3);@gin(y4);@gin(y5);

运用lingo求解

Objective value: 560.0000

Variable Value Reduced Cost X1 0.000000 100.0000

Y1 6.000000 40.00000

Y2 0.000000 40.00000

Y3 0.000000 40.00000

Y4 0.000000 40.00000

Y5 8.000000 40.00000

2. 生产计划问题

例4.某公司面临一个是外包协作还是自行生产的问题。该公司生产甲、乙、丙三种产品,都需要经过铸造、机加工和装配三个车间。甲、乙两种产品的铸件可以外包协作,亦可以自行生产,但产品丙必须本厂铸造才能保证质量。数据如表。问:公司为了获得最大利润,甲、乙、丙三种产品各生产多少件?甲、乙两种产品的铸造中,由本公司铸造和由外包协作各应多少件?

解:设x1,x2,x3 分别为三道工序都由本公司加工的甲、乙、丙三种产品的件数,x4,x5 分别为由外协铸造再由本公司加工和装配的甲、乙两种产品的件数。

求x i 的利润:利润= 售价- 各成本之和

产品甲全部自制的利润=23-(3+2+3)=15

产品甲铸造外协,其余自制的利润=23-(5+2+3)=13

产品乙全部自制的利润=18-(5+1+2)=10

产品乙铸造外协,其余自制的利润=18-(6+1+2)=9

产品丙的利润=16-(4+3+2)=7

可得到x i (i = 1,2,3,4,5)的利润分别为15、10、7、13、9 元。

通过以上分析,可建立如下的数学模型:

目标函数:Max 15x1 + 10x2 + 7x3 + 13x4 + 9x5

约束条件:5x1 + 10x2 + 7x3 ≤8000

6x1 + 4x2 + 8x3 + 6x4 + 4x5 ≤12000

3x1 + 2x2 + 2x3 + 3x4 + 2x5 ≤10000

x1,x2,x3,x4,x5 ≥0

lingo求解

Objective value: 29400.00

Variable Value Reduced Cost X1 1600.000 0.000000

X2 0.000000 2.000000

X3 0.000000 13.10000

X5 600.0000 0.000000

例5.永久机械厂生产Ⅰ、Ⅱ、Ⅲ三种产品,均要经过A、B两道工序加工。设有两种规格的设备A1、A2能完成A 工序;有三种规格的设备B1、B2、B3能完成B 工序。Ⅰ可在A、B的任何规格的设备上加工;Ⅱ可在任意规格的A设备上加工,但对B工序,只能在B1设备上加工;Ⅲ只能在A2与B2设备上加工。数据如表。问:为使该厂获得最大利润,

解:设x ijk 表示第j 个工序在第k 种设备上加工的第i 种产品的数量。建立如下的数学模型:

s.t. 5x111 + 10x211 ≤6000 (设备A1 )

7x112 + 9x212 + 12x312 ≤10000 (设备A2 )

6x121 + 8x221 ≤4000 (设备B1 )

4x122 + 11x322 ≤7000 (设备B2 )

7x123 ≤4000 (设备B3 )

x111+ x112- x121- x122- x123 = 0 (Ⅰ产品在A、B工序加工的数量相等)

x211+ x212- x221 = 0 (Ⅱ产品在A、B工序加工的数量相等)x312 - x322 = 0 (Ⅲ产品在A、B工序加工的数量相等)

x ijk ≥0 , i = 1,2,3; j = 1,2; k = 1,2,3

目标函数为计算利润最大化,利润的计算公式为:

利润= [(销售单价- 原料单价)* 产品件数]之和-(每台时的设备费用*设备实际使用的总台时数)之和。

这样得到目标函数:

Max(1.25-0.25)(x111+x112)+(2-0.35)x221+(2.80-0.5)x312 –

300/6000(5x111+10x211)-321/10000(7x112+9x212+12x312)-

250/4000(6x121+8x221)-783/7000(4x122+11x322)-200/4000(7x123).

经整理可得:

Max0.75x111+0.7753x112+1.15x211+1.3611x212+1.9148x312-0.375x121-0.5x221-0.4475x122-1. 2304x322-0.35x123

运用lingo求解

Objective value: 1146.514

Variable Value Reduced Cost

X111 1200.000 0.000000

X112 230.0493 0.000000

X211 0.000000 0.3101897

X212 500.0000 0.000000

X312 324.1379 0.000000

X121 0.000000 0.2530095

X221 500.0000 0.000000

X122 858.6207 0.000000

X322 324.1379 0.000000

X123 571.4286 0.000000

近似有X111=1200,X112=230,X211=0,X212=500,X312=324, X121=0,X221=500 X122=859, X322=324,X123=571

Objective value: 1146.362

利用整数规划

Objective value: 1146.362

Variable Value Reduced Cost

X111 1200.000 -0.7500000

X112 230.0000 -0.7753000

X211 0.000000 -1.150000

X212 500.0000 -1.361100

X312 324.0000 -1.914800

X121 0.000000 0.3750000

X221 500.0000 0.5000000

X122 859.0000 0.4475000

X322 324.0000 1.230400

X123 571.0000 0.3500000

例6. 双层卷焊钢管是光明制造厂1990从意大利引进的主导民用产品,生产流程为:钢带镀

铜→镀铜带精剪→制管。产品广泛应用于汽车,机床,大型机械油气管制造。目前全国市场

占有率为15%,年利润为350万元。为广大市场占有率,进一步提高企业知名度,为下一步

上市做好准备,该厂1998年拟对双层卷焊钢管分厂实行资产经营,要求有关部门拿出一份经

营报告书,要求对以下几个问题做出明确分析:

(1)最大盈利能力。

(2)生产计划。

(3)因镀铜用钢带需从比利时进口,外商要求提前一年提供订货数量,并需用外汇支付。

分析如何确定钢带订货量,使外商供货,既能满足生产,又能尽量为工厂节约费用。

生产过程中各项经济指标如下:

(1)钢带镀铜:废品率为1%,废品回收扣除废品镀铜过程中各项生产费用后净收入为1000

元/t。职工工资实行计件工资,合格品675元/t,钢带8000元/t。

(2)镀铜带精剪:废品率为2%,废品回收扣除废品镀铜精剪过程中各项生产费用后净收入

为零。职工工资实行计件工资,合格品900元/t。

(3)制管:废品率:直径4.76为8%,直径6为8.5%,直径8为9%,直径12为10.5%,废品回收扣除废品镀铜,精剪,制管过程中各项生产费用后净收入为700元/t。职工工资实行计件工资,合格品900元/t。

售价情况:直径4.76: 16000元/t;

直径6: 16100元/t;

直径8: 16000元/t;

直径10: 16100元/t;

直径12: 16300元/t;

折旧:200万元。

生产费用:合格钢管1200元/t。

企业管理费:1000元/t。

特殊说明:

(1)钢带镀铜后镀膜很薄,镀铜带与钢带质量可近似认为一致。

(2)生产过程中废料很少,可忽略不计。

销售部门经过严密的市场分析后,结合明年的订货情况给厂长以下信息:

1998年共需我厂钢管2800t,其中直径4.76的不少于50%;

直径6的至少占10%,至多占30%;

直径8的有300t老主顾订货,必须予以满足;

直径10的订货历史上一直与直径6有联动关系,一般为直径6的一半;

直径12的属于冷门产品,一年必须有100t备货,但市场预测绝对不会突破200t。

解:设直径4.76、6、8、10 和12 的钢管的需求量分别是X1,X2,X3,X4,X5。

钢带的供给量为X0。则:

钢管销售收入Y1 为:

Y1=16000X1+16100X2+16000X3+16100X4+16300X5

废品回收收入Y2 为:

Y2=10X0+(0.087X1+0.093X2+0.099X3+0.117X5)×700

钢带成本C1 为:

C1=8000X0

职工工资C2 为:

C2=X0×0.99×675+X0×0.99×0.98×900+(X1+X2+X3+X4+X5)×900

则净利润Y0 为:

Y0=Y1+Y2-C1-C2-2000000-(X1+X2+X3+X4+X5)×2200(目标函数)

约束条件:

1.086957X1+1.092896X2+1.111111X3+X4+1.117318X5=X0×0.99×0.98

X1+X2+X3+X4+X5=2800

X1≥1400

840≥X2≥280

X3≥300

X4=X2/2

200≥X5≥100

X0,X1,X2,X3,X4,X5≥0

运用lingo求解:

Objective value: 4652764.

Variable Value Reduced Cost

Y0 4652764. 0.000000

Y1 0.4493000E+08 0.000000

Y2 188857.6 0.000000

C1 0.2497411E+08 0.000000

C2 7331981. 0.000000

X1 1400.000 0.000000

X2 666.6667 0.000000

X3 300.0000 0.000000

X4 333.3333 0.000000

X5 100.0000 0.000000

X0 3121.764 0.000000

3. 套裁下料问题

例7. 某钢管零售商从钢管厂进货,将钢管按照顾客的需求切割后售出. 从钢管厂进货时得到原料钢管都是19m长.

(1)现有一客户需要50根4m长,20根6m长和15根8m长的钢管,应如何下料最节省?(2)零售商如果采取的不同切割方式太多,将会导致生产过程的复杂化,从而增加生产和管理成本,所以该零售商规定采用不同切割模式不能超过3种. 此外,该客户除需要(1)中的3种钢管外,还需要10根5m的钢管,应如何下料最节省?

问题(1)的求解

首先,确定那些切割模式是可行的. 所谓一个切割模式,就是按照客户的需要在原料钢管上安排切割的一种组合. 例如,我们可以将19m长的钢管切割成3根4m长的钢管,余料为7m,或者将19m长的钢管切割成4m,6m和8m长的钢管个一根,余料为1m.

其次,应当确定哪些切割模式是合理的. 通常假设一个合理的切割模式的余料不应该大于或等于客户需要的钢管的最小尺寸. 例如,将19m长的钢管切割成3根4m长的钢管是可行的,但余料为7m,可以进一步将7m的余料切割成4m钢管(余料3m),或者将7m的余料切割成6m 钢管(余料为1m). 在这种合理性假设下,切割模式一共有7种,如表所示.

模型建立:

决策变量:用xi表示按照第i种模式(i=1,2,…,7)切割的原料钢管的根数

目标:以切割后余料总量最少为目标,则有

Min 3x1+x2+3x3+3x4+x5+x6+3x7

以切割原料钢管的总根数最少为目标,则有

Min x1+x2+x3+x4+x5+x6+x7

约束条件:

4x1+3x2+2x3+x4+x5≥50,

X2+2x4+x5+3x6≥20,

X3+x5+2x7≥15,

运用lingo求解

第一种目标:

Objective value: 26.66667

Variable Value Reduced Cost X1 0.000000 1.666667 X2 11.66667 0.000000 X3 0.000000 1.666667 X4 0.000000 2.666667 X5 15.00000 0.000000 X6 0.000000 1.000000 X7 0.000000 1.666667

第二种目标:

Objective value: 25.00000

Variable Value Reduced Cost X1 0.000000 0.000000 X2 15.00000 0.000000 X3 0.000000 0.000000 X4 0.000000 0.2500000 X5 5.000000 0.000000 X6 0.000000 0.2500000 X7 5.000000 0.000000

问题(2)求解

模型建立:由于不同的切割模式不超过3种,可以用xi表示按照第i种模式(i=1,2,3)切割的原料钢管的根数,显然它们应当是非负整数. 设所使用的第i种切割模式下每根原料钢管生产4m,5m,6m和8m长的钢管数量分别为r1i,r2i,r3i,r4i(非负整数).

决策目标:以切割原料钢管总根数最少为目标,即目标为

Min x1+x2+x3

约束条件:为满足客户的需求,应有

R11x1+r12x2+r13x3≥50,

R21x1+r22x2+r23x3≥10,

R31x1+r32x2+r33x3≥20,

R41x1+r42x2+r43x3≥15,

每一种切割模式必须可行,合理,所以每根钢管的成品量不能超过19m,也不能少于16m,则有16≤4 r11+5r21+6r31+8r41≤19,

16≤4 r12+5r22+6r32+8r42≤19,

16≤4 r13+5r23+6r33+8r43≤19.

运用lingo求解

Local optimal solution found.

Objective value: 28.00000

Variable Value Reduced Cost

X1 10.00000 0.000000

X2 10.00000 2.000000

X3 8.000000 1.000000

R11 3.000000 0.000000 R12 2.000000 0.000000 R13 0.000000 0.000000 R21 0.000000 0.000000 R22 1.000000 0.000000 R23 0.000000 0.000000 R31 1.000000 0.000000 R32 1.000000 0.000000 R33 0.000000 0.000000 R41 0.000000 0.000000 R42 0.000000 0.000000 R43 2.000000 0.000000 例8. 某公司采用一套冲压设备生产一种罐装饮料的易拉罐,这种易拉罐是用镀锡板冲压成的,为圆柱状,包括罐身、上盖和下底。罐身高10cm,上盖和下底的直径均为5cm。该公司使用两种不同规格的镀锡板原料,规格1的镀锡板为正方形,边长24cm;规格2的镀锡板为长方形,长32cm ,宽28cm;由于生产设备和生产工艺的限制,规格1的镀锡板只能按模式1、2、3冲压,规格2的镀锡板只能按模式4冲压(见图),使用模式1、2、3、4进行冲压所需时间分别为1.5秒、2秒、1秒和3秒

该公司每周工作40

小时,每周可供使用的规格1、2的镀锡板原料分别为5万张和2万张,目前每只易拉罐的利润为0.1元,原料余料损失为0.001元/cm2(如果周末有罐身、上盖或下底不能配套成易拉罐出售,也看成是余料损失)。公司应如何安排每周的生产?

问题分析:与钢管下料问题不同的是,这里的切割模式已经确定,只需要计算各种模式下的余料损失. 已知上盖与下底的直径d=5cm, 可得其面积为221/419.6S d cm π=≈, 周长为

15.7L d cm π=≈,于是模式一的余料损失为22122410222.6S S cm --≈。同理可以计算

其他模式下的余料损失,如表所示: 问题目标应是易拉罐的利润扣除原料余料损失后的净利润最大;约束条件除每周工作时间的原料数量外,还要考虑罐身和盖、底的配套组装 模型建立: 决策变量: 用xi 表示按第i 种模式冲压的次数(i=1,2,3,4) y1表示一周生产的易拉罐个数 y2表示不配套的罐身个数 y3表示不配套的盖(底)个数

决策目标(设每周生产的易拉罐全部售出): 净利润最大 净利润=利润-四种冲压模式的余料损失-不配套造成的原料损失 决策目标(设每周生产的易拉罐全部售出): maxZ=0.1y1-0.001(222.6x1 +183.3x2+261.8x3 +169.5x4 +157.1y2+19.6y3) 其中:

不配套罐身每个损失:2

105157.1cm π??≈

不配套盖(底)每个损失:22

2.519.6cm π?≈

约束条件:

时间约束:每周工作不超过40小时(144000秒) 1.5x1 +2x2 +x3 +3x4 ≤144000

原料数量约束:规格1、2镀锡板分别为5万张和2万张 x1 +x2 +x3 ≤50000; x4 ≤20000 配套约束:

一周生产的罐身个数= x1 +2x2 +4x4

一周生产的盖(底)个数= 10x1 +4x2 +16x3 +5x4 配套约束:

一周生产的易拉罐个数≤ min{x1 +2x2 +4x4, 0.5(10x1 +4x2 +16x3 +5x4)} 可以表示成两个线性约束 y1 ≤ x1 +2x2 +4x4 y1 ≤ 0.5(10x1 +4x2 +16x3 +5x4) 不配套罐身个数 y2= x1 +2x2 +4x4 -y1

不配套盖(底)个数 y3= 10x1 +4x2 +16x3 +5x4 -2y1

)6.191.1575.1698.2613.1836.222(001.01.0min 3243211y y x x x x y Z +++++-= ???

?????

????

?≥-++++=-++=++++≤++≤≤≤++≤+++且为整数0,,,,,251641042)516410(5.0422000050000

14400025.13

213211432131421243211

4

211432

14321y y y x x x y x x x x y y x x x y x x x x y x x x y x x x x x x x x 运用lingo 求解

Objective value: 4298.338 Variable Value Reduced Cost

Y1 160250.0 0.000000 X1 0.000000 0.5000000E-04 X2 40125.00 0.000000 X3 3750.000 0.000000 X4 20000.00 0.000000 Y2 0.000000 0.2233312 Y3 0.000000 0.3648437E-01

将决策变量扩大10000倍(相当于xi 以万次为单位,yi 以万件为单位). 此时,

20000

,50000,14400025.143214321≤≤++≤+++x x x x x x x x

修改为

运用lingo 求解

Objective value: 0.4298337

Variable Value Reduced Cost

Y1 16.02500 0.000000 X1 0.000000 0.5000000E-04 X2 4.012500 0.000000 X3 0.3750000 0.000000 X4 2.000000 0.000000 Y2 0.000000 0.2233312 Y3 0.000000 0.3648437E-01

4. 配料问题

例9.某工厂要用三种原料1、2、3混合调配出三种不同规格的产品甲、乙、丙,数据如表所示。问:该厂应如何安排生产,使利润收入为最大?

解:设 x ij 表示第 i 种(甲、乙、丙)产品中原料 j 的含量。这样我们建立数学模型时,要考虑:

对于甲: x 11,x 12,x 13; 对于乙: x 21,x 22,x 23; 对于丙: x 31,x 32,x 33; 对于原料1: x 11,x 21,x 31; 对于原料2: x 12,x 22,x 32; 对于原料3: x 13,x 23,x 33;

目标函数: 利润最大,利润 = 收入 - 原料支出 约束条件: 规格要求 4 个; 供应量限制 3 个。

? 利润=总收入-总成本=甲乙丙三种产品的销售单价*产品数量-甲乙丙使用的原料单

价*原料数量,故有

目标函数:

2

,5,4.1425.143214321≤≤++≤+++x x x x x x x x

Max 50(x11+x12+x13)+35(x21+x22+x23)+25(x31+x32+x33)-65(x11+x21+x31)-25(x12+x22+x32)-35(x13+x23+x33)

= -15x11+25x12+15x13-30x21+10x22-40x31-10x33

约束条件:

从第1个表中有:

x11≥0.5(x11+x12+x13)

x12≤0.25(x11+x12+x13)

x21≥0.25(x21+x22+x23)

x22≤0.5(x21+x22+x23

从第2个表中,生产甲乙丙的原材料不能超过原材料的供应限额,故有

(x11+x21+x31)≤100

(x12+x22+x32)≤100

(x13+x23+x33)≤60

通过整理,得到以下模型:

目标函数:Max z = -15x11+25x12+15x13-30x21+10x22-40x31-10x33

约束条件:

s.t. 0.5 x11-0.5 x12 -0.5 x13 ≥0 (原材料1不少于50%)

-0.25x11+0.75x12 -0.25x13 ≤0 (原材料2不超过25%)

0.75x21-0.25x22 -0.25x23 ≥0 (原材料1不少于25%)

-0.5 x21+0.5 x22 -0.5 x23 ≤0 (原材料2不超过50%)

x11+ x21 + x31 ≤100 (供应量限制)

x12+ x22 + x32 ≤100 (供应量限制)

x13+ x23 + x33 ≤60 (供应量限制)

x ij ≥0 , i = 1,2,3; j = 1,2,3

运用lingo求解

Objective value: 500.0000

Variable Value Reduced Cost X11 100.0000 0.000000

X12 50.00000 0.000000

X13 50.00000 0.000000

X21 0.000000 15.00000

X22 0.000000 0.000000

X31 0.000000 45.00000

X33 0.000000 10.00000

X23 0.000000 0.000000

X32 0.000000 0.000000

例10. 汽油混合问题。一种汽油的特性可用两种指标描述,用“辛烷数”来定量描述其点火特性,用“蒸汽压力”来定量描述其挥发性。某炼油厂有1、2、3、4种标准汽油,其特性和库存量列于表1中,将这四种标准汽油混合,可得到标号为1,2的两种飞机汽油,这两种汽油的性能指标及产量需求列于表2中。问应如何根据库存情况适量混合各种标准汽油,既满足飞机汽油的性能指标,又使2号汽油满足需求,并使得1号汽油产量最高?

解:设xij 为飞机汽油i 中所用标准汽油j 的数量(L)。

目标函数为飞机汽油1的总产量:11121314x x x x +++ 产量约束为飞机汽油2的产量:21222324250000x x x x +++≥

库存量约束为:

1121122213231424380000

265200408100130100

x x x x x x x x +≤+≤+≤+≤

由物理中的分压定律,1

n

j j

j pV p v

==

∑可得有关蒸汽压力的约束条件:(1号与2号汽油)

()

()

11121314212223242.85 1.42 4.27

18.49012.85 1.42 4.27

18.490

2x x x x x x x x -+-≥-+-≥ 注1:利用分压定律,有

2222211121314

11121314

7.111011.3810 5.691028.45109.9610x x x x x x x x -----?+?+?+?≤?+++

化简后有(1),同理可以得到(2)。 有关辛烷数的约束条件为:(1号与2号汽油)

111213142122232416.5 2.0 4.017.00(3)7.57.013.08.00(4)

x x x x x x x x +-+≥--+≥

注2:

11121314

11121314

107.5938710891x x x x x x x x +++≥+++,化简后有(3)

,同理可以得到(4)。 注:物理中的分压定律:设有一种混合气体由n 种气体组成,该混合气体的压强为p,所占总体积为V, 各组成成分的压强及其所占容积分别为12,,...,n p p p 及12,,...,n v v v ,则

1

n

j j j pV p v ==∑。

综上所述,得该问题的数学模型为:

11121314

21222324112112221323

14241112131421222324111213142122max

2500003800002652004081001301002.85 1.42 4.2718.4902.85 1.42 4.2718.49016.5241707.57x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x ++++++≥+≤+≤+≤+≤-+-≥-+-≥--+≥-2324

1380

0,(1,2;1,2,3,4)

ij x x x i j ?????

????

???

??-+≥?≥==?? 运用lingo 求解

Objective value: 933400.0

Variable Value Reduced Cost X11 264937.9 0.000000 X12 135702.1 0.000000 X13 408100.0 0.000000 X14 124660.0 0.000000 X21 115062.1 0.000000 X22 129497.9 0.000000 X23 0.000000 0.000000 X24 5440.011 0.000000

5. 投资问题

例11.某部门现有资金200万元,今后五年内考虑给以下的项目投资。已知:项目A :从第一年到第五年每年年初都可投资,当年末能收回本利110%;项目B :从第一年到第四年每年年初都可投资,次年末能收回本利125%,但规定每年最大投资额不能超过30万元;项目C :需在第三年年初投资,第五年末能收回本利140%,但规定最大投资额不能超过80万元;项目D :需在第二年年初投资,第五年末能收回本利155%,但规定最大投资额不能超过100万元。

据测定每万元每次投资的风险指数如右表:

问:a)应如何确定这些项目的每年投资额,使得第五年年末拥有资金的本利金额为最大?

b)应如何确定这些项目的每年投资额,使得第五年年末拥有资金的本利在330万元的基础上使得其投资总的风险系数为最小?

解:a)确定决策变量:连续投资问题

设x ij ( i = 1~5,j = 1~4)表示第i 年初投资于A(j=1)、B(j=2)、C(j=3)、D(j=4)项目的金额。这样我们建立如下的决策变量:

A x11 x21 x31 x41 x51

B x12 x22 x32 x42

C x33

D x24

2)约束条件:

第一年:A当年末可收回投资,故第一年年初应把全部资金投出去,于是x11+ x12 = 200;

第二年:B次年末才可收回投资,故第二年年初有资金1.1 x11,于是x21 + x22+ x24 = 1.1x11;

第三年:年初有资金1.1x21+ 1.25x12,于是x31 + x32+ x33 = 1.1x21+ 1.25x12;

第四年:年初有资金1.1x31+ 1.25x22,于是x41 + x42 = 1.1x31+ 1.25x22;

第五年:年初有资金1.1x41+ 1.25x32,于是x51 = 1.1x41+ 1.25x32;

B、C、D的投资限制:x i2 ≤30 ( i =1、2、3、4 ),x33 ≤80,x24 ≤100

3)目标函数及模型:

Max z = 1.1x51+ 1.25x42+ 1.4x33 + 1.55x24

s.t. x11+ x12 = 200

x21 + x22+ x24 = 1.1x11;

x31 + x32+ x33 = 1.1x21+ 1.25x12;

x41 + x42 = 1.1x31+ 1.25x22;

x51 = 1.1x41+ 1.25x32;

x i2 ≤30 ( i =1、2、3、4 ),x33 ≤80,x24 ≤100

x ij ≥0 ( i = 1、2、3、4、5;j = 1、2、3、4)

b)所设变量与问题a相同,目标函数为风险最小,有

Min f =x11+x21+x31+x41+x51+3(x12+x22+x32+x42)+4x33+5.5x24

在问题a的约束条件中加上“第五年末拥有资金本利在330万元”的条件,

于是模型如下:

Min f = (x11+x21+x31+x41+x51)+3(x12+x22+x32+x42)+4x33+5.5x24

s.t. x11+ x12 = 200

x21 + x22+ x24 = 1.1x11;

x31 + x32+ x33 = 1.1x21+ 1.25x12;

x41 + x42 = 1.1x31+ 1.25x22;

x51 = 1.1x41+ 1.25x32;

x i2 ≤30 ( i =1、2、3、4 ),x33 ≤80,x24 ≤100

1.1x51 + 1.25x42+ 1.4x33+ 1.55x24 ≥330

x ij ≥0 ( i = 1、2、3、4、5;j = 1、2、3、4)

问题(a)运用lingo 求解

Objective value: 341.3500

Variable Value Reduced Cost

X51 33.50000 0.000000

X42 30.00000 0.000000

X33 80.00000 0.000000

X24 100.0000 0.000000

X11 170.0000 0.000000

X12 30.00000 0.000000

X21 63.00000 0.000000

X22 24.00000 0.000000

X31 0.000000 0.4400000E-01

X32 26.80000 0.000000

X41 0.000000 0.000000

问题(b)运用lingo 求解

Objective value: 1300.000

Variable Value Reduced Cost X11 200.0000 0.000000

X21 192.3166 0.000000

X31 131.5483 0.000000

X41 144.7031 0.000000

X51 159.1735 0.000000

X12 0.000000 0.5000000

X22 0.000000 0.5000000

X32 0.000000 0.5000000

X42 0.000000 0.5000000

X33 80.00000 0.000000

X24 27.68335 0.000000 例12. 北方印染公司需要的技术工人分为初级,中级和高级三个层次。统计资料显示:培养出来的每个初级工每年可为公司增加产值1万元,每个中级工每年可为公司增加产值4万元,每个高级工每年可为公司增加产值5.5万元。

公司计划在今后的三年中拨出150万元作为职工培训费,其中,第一年投资55万元,第二年投资45万元,第三年投资50万元。

通过公司培养初级工,中级工和高级工的经历并经过咨询,预计培养一名初级工,在高中毕业后需要一年,费用为1000元;培养一名中级工,高中毕业后需要三年时间,第一年和第二年的费用为3000元,第三年的费用为1000元;培养一名高级工,高中毕业后也需要三年的时间,第一年的费用为3000元,第二年的费用为2000元,第三年的费用为4000元。

目前公司共有初级工226人,中级工560人,高级工496人。若通过提高目前技术工人的水平来增加中级工和高级工的人数,其培养时间和费用分别为:由初级工培养为中级工,需要一年时间,费用2800元;由初级工培养成高级工,第一年的费用为2000元,第二年的费用为3200元;由中级工培养为高级工需要一年,费用为3600元。

由于公司目前师资力量不足,教学环境有限,每年可培养的职工人数受到一定限制。根据目前的情况,每年在培的初级工不超过90人,在培的中级工不超过80人,在培的高级工不超过80人。

为了利用有限的职工培训费培养更多的技术工人,并为公司创造更大的经济效益,要确定直接由高中毕业生培养成初,中,高级技术工人各多少人,通过提高目前技术工人的水平来增加中级工和高级工人数的初级工和中级工分别为多少,才能使企业增加的产值最多。

解:变量的设置如下表所示,其中Xij 为第i 类培训方式在第j 年培训的人数:

1000X11+3000X21+3000X31+2800X41+2000X51+3600 X61≤550000;

第二年的成本TC2 为:

1000X12+3000X21+2000X31+2800X42+(3200 X51+2000X52)+3600X62≤450000;

第三年的成本TC3 为:

1000X13+1000X21+4000X31+2800X43+3200 X52+3600X63≤500000;

总成本TC= TC1 +TC2 +TC3≤1500000;

其他约束条件为:

X41 +X42 +X43+X51 +X52≤226;

X61+X62 +X63≤560;

X1j≤90 (j=1,2,3);

X21 +X41≤80;

X21 +X42≤80;

X21 +X43≤80;

数学建模:运用Lindolingo软件求解线性规划

数学建模:运用Lindolingo软件求解线性规划 1、实验内容: 对下面是实际问题建立相应的数学模型,并用数学软件包Lindo/lingo对模型进行求解。 某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.名今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论: 1)若投资0.8万元可增加原料1千克,问应否作这项投资. 2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划. 数学建模论文 运用lindo/lingo软件求解线性规划 运用lindo/lingo软件求解线性规划 一、摘要 本文要解决的问题是如何安排生产计划,即两种饮料各生产多少使获利最大。 首先,对问题进行重述明确题目的中心思想,做出合理的假设,对符号做简要的说明。 然后,对问题进行分析,根据题目的要求,建立合适的数学模型。 最后,运用lindo/lingo软件求出题目的解。 【关键词】最优解 lindo/lingo软件 第二、问题的重述 某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原

料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论: 1)若投资0.8万元可增加原料1千克,问应否作这项投资。 2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划。 第三、模型的基本假设 1、每一箱饮料消耗的人力、物力相同。 2、每个人的能力相等。 3、生产设备对生产没有影响。 第四、符号说明 1、x.....甲饮料 2、y.....乙饮料 3、z.....增加的原材料 第五、问题分析 根据题目要求:如何安排生产计划,即两种饮料各生产多少使获利最大,可知本题所求的是利润的最大值。我们可以先建立数学模型,然后用lindo/lingo软件包求解模型的最大值。 第六、模型的建立及求解根据题目建立如下3个模型: 模型1: max=0.1*x+0.09*y; 0.06*x+0.05*y<=60; 0.1*x+0.2*y<=150; x+y<=800; 结果:x=800;y=0;max=80 模型2:

Lingo与线性规划

Lingo 与线性规划 线性规划的标准形式是 1111111..0,1,2,,n n m mn n m i a x a x b s t a x a x b x i n +≤????+≤??≥= ? (1) 其中11n n z c x c x =++称为目标函数,自变量i x 称为决策变量,不等式组(1)称为约束条件. 满足不等式组(1)的所有1(,,)n x x 的集合称为可行域,在可行域里面使得z 取最小值 的**1(,,)n x x 称为最优解,最优解对应的函数值称为最优值。 求解优化模型的主要软件有Lingo 、Matlab 、Excel 等。其中Lingo 是一款专业求解优化模型的软件,有其他软件不可替代的方便功能。本文将简要介绍其在线性规划领域的应用。 一、基本规定 1、目标函数输入格式 max=函数解析式; 或者 min=函数解析式; 2、约束条件输入格式 利用:>、<、>=、<=等符号。但是>与>=没有区别。Lingo 软件默认所以自变量都大于等于0. 3、运算 加(+),减(-),乘(*),除(/),乘方(x^a),要注意乘号(*)不能省略。 4、变量名 不区分大小写字母,不超过32个字符,必须以字母开头。 5、标点符号 每个语句以分号“;”结束,感叹号“!”开始的是说明语句(说明语句也需要以分号“;”结束)。但是,model ,sets ,data 以“:”结尾。endsets ,enddata ,end 尾部不加任何符号。 6、命令不考虑先后次序 7、MODEL 语句 一般程序必须先输入MODEL :表示开始输入模型,以“END”结束。对简单的模型,这两个语句也可以省略。 8、改变变量的取值范围 @bin(变量名); 限制该变量为0或1. @bnd(a,变量名,b ); 限制该变量介于a,b 之间. @free(变量名); 允许该变量为负数. @gin(变量名); 限制该变量为整数. 例1 求目标函数1 223z x x =+的最小值,约束条件为 输入Lingo 程序: min = 2*x1 + 3*x2; x1 + x2 >= 350; x1 >= 100; 2*x1 + x2 <= 600; 有两种运行方式:

lingo解决线性规划问题的程序

Lingo12软件培训教案 Lingo 主要用于求解线性规划,整数规划,非线性规划,V10以上版本可编程。 例1 一个简单的线性规划问题 0 , 600 2 100 350 st. 3 2max >=<=+=<<=++=y x y x x y x y x z ! 源程序 max = 2*x+3*y; [st_1] x+y<350; [st_2] x<100; 2*x+y<600; !决策变量黙认为非负; <相当于<=; 大小写不区分 当规划问题的规模很大时,需要定义数组(或称为矩阵),以及下标集(set) 下面定义下标集和对应数组的三种方法,效果相同::r1 = r2 = r3, a = b = c. sets : r1/1..3/:a; r2 : b; r3 : c; link2(r1,r2): x; link3(r1,r2,r3): y; endsets data : ALPHA = ; a=11 12 13 ; r2 = 1..3; b = 11 12 13; c = 11 12 13; enddata

例2 运输问题 解: 设决策变量ij x = 第i 个发点到第j 个售点的运货量,i =1,2,…m; j =1,2,…n; 记为ij c =第i 个发点到第j 个售点的运输单价,i =1,2,…m; j =1,2,…n 记i s =第i 个发点的产量, i =1,2,…m; 记j d =第j 个售点的需求量, j =1,2,…n. 其中,m = 6; n = 8. 设目标函数为总成本,约束条件为(1)产量约束;(2)需求约束。 于是形成如下规划问题: n j m i x n j d x m i s x x c ij j n i ij i m j ij m i n j ij ij ,...,2,1,,...,2,1,0 ,...,2,1, ,...,2,1, st. z min 11 11==>=<==<==∑∑∑∑==== 把上述程序翻译成LINGO 语言,编制程序如下: ! 源程序

Lingo与线性规划

Ling o与线性规划 线性规划得标准形式就是 (1) 其中称为口标函数,自变量称为决策变量,不等式组(1)称为约束条件、 满足不等式组(1)得所有得集合称为可行域,在可行域里面使得Z取最小值得称为最优解,最优解对应得函数值称为最优值。 求解优化模型得主要软件有L i ng o、Ma t 1 a b> Ex c el等。其中Lingo 就是一款专业求解优化模型得软件,有其她软件不可替代得方便功能。本文将简要介绍其在线性规划领域得应用。 —、基本规定 1、目标函数输入格式 ma x二函数解析式;或者min二函数解析式; 2、约束条件输入格式 利用:>、V、〉=、〈二等符号。但就是>与>二没有区别。L ingo软件默认所以自变量都大于等于0、 3、运算 加(+),减(-),乘(*),除(/),乘方(x A a),要注意乘号(*)不能省略。 4、变量名 不区分大小写字母,不超过32个字符,必须以字母开头。 5、标点符号 每个语句以分号“;”结束,感叹号“!”开始得就是说明语句(说明语句也需要以分号";”结束)o但就是,mo d el, s e t s, data以":”结尾。endsets, e n ddata, e n d尾部不加任何符号。 6、命令不考虑先后次序 7、MODEL 语句

一般程序必须先输入MODEL:表示开始输入模型,以“END”结束。对简单 (1)

例1求目标函数得最小值,约束条件为 输入Ling o 程序: min = 2*x1 + 3*x2; x I + x2 >= 350?x1 >= 1 0 0;2A *X 1 + x2 <= 600; 有两种运行方式: 1、点击工具条上得按钮 即可。 2、点击菜单:LINGO —Solve 运行结果如下: 下面对其各个部分进行说明: Gl o bal o p tima 1 solution f oun d :表示已找到全局最优解。 Ob j e ctive value :表示最优值得大小。可见本题函数最小值8 00。 Rov Slack or Surplus Dual Price 1 800.0000 -1.000000 2 CLOOCICICICI -4?00 OOOCI 3 150.0CICICI O ?000000 4 CLOOCICICICI 1?000000 Global optimal solution found ? Objective value: 800.0000 Infeasibilities: 0 ? OOOCICICI Total solver iterations: 2 Variable 得模型,这两个语句也可以省略。 8、改变变量得取值范围 bin (变量名); bnd (a,变量名,b ); free (变量名); gin (变量名); 限制该变量为0或1、 限制该变量介于a, b 之间、 允许该变量为负数、 限制该变量为整数、 Value 250.0000 ?dodo Reduced Cost o ?000000 o ?000000

Lingo与线性规划

. Word 文档 Lingo 与线性规划 线性规划的标准形式是 11n n Min z c x c x =++L 1111111..0,1,2,,n n m mn n m i a x a x b s t a x a x b x i n +≤??? ? +≤??≥=?L M L L (1) 其中11n n z c x c x =++L 称为目标函数,自变量i x 称为决策变量,不等式组(1)称为约束条件. 满足不等式组(1)的所有1(,,)n x x L 的集合称为可行域,在可行域里面使得z 取最小值的**1 (,,)n x x L 称为最优解,最优解对应的函数值称为最优值。 求解优化模型的主要软件有Lingo 、Matlab 、Excel 等。其中Lingo 是一款专业求解优化模型的软件,有其他软件不可替代的方便功能。本文将简要介绍其在线性规划领域的应用。 一、基本规定 1、目标函数输入格式 max=函数解析式; 或者 min=函数解析式; 2、约束条件输入格式 利用:>、<、>=、<=等符号。但是>与>=没有区别。Lingo 软件默认所以自变量都大于等于0. 3、运算 加(+),减(-),乘(*),除(/),乘方(x^a),要注意乘号(*)不能省略。 4、变量名 不区分大小写字母,不超过32个字符,必须以字母开头。 5、标点符号 每个语句以分号“;”结束,感叹号“!”开始的是说明语句(说明语句也需要以分号“;”结束)。但是,model ,sets ,data 以“:”结尾。endsets ,enddata ,end 尾部不加任何符号。 6、命令不考虑先后次序 7、MODEL 语句 一般程序必须先输入MODEL :表示开始输入模型,以“END ”结束。对简单的模型,这两个语句也可以省略。 8、改变变量的取值范围 bin(变量名); 限制该变量为0或1. bnd(a,变量名,b ); 限制该变量介于a,b 之间. free(变量名); 允许该变量为负数. gin(变量名); 限制该变量为整数. 例1 求目标函数1223z x x =+的最小值,约束条件为

线性规划lingo实现示例

加工奶制品的生产计划 问题 品加工厂用牛奶生产1A ,2A 两种奶制品,1桶牛奶可以在设备甲用12小时加工成3公斤1A ,或者在设备乙上用8小时加工成4公斤2A 。根据市场需求,生产的1A ,2A 全部能售出,且每公斤1A 获利24元,每公斤2A 获利16元。现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间魏480小时,并且设备甲每天至多能加工100公斤1A ,设备乙的加工能力没有限制。试为该厂制订一个生产计划,使每天获利最大,并进一步讨论以下三个附加问题: 1) 若用35元可以买到1桶牛奶,应否作这项投资? 若投资,每天最多购买多少桶 牛奶? 2) 若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元? 3) 由于市场需求变化,每公斤1A 的获利增加到30元,应否改变生产计划? 问题分析 这个优化问题的目标是使每天的获利最大,要作的决策是生产计划,即每天用多少桶牛奶生产1A ,用多少桶牛奶生产2A ,决策受到3个条件的限制:原料(牛奶)供应、劳动时间、设备甲的工作能力。按照题目所给,将决策变量、目标函数和约束条件用数学符号及式子表示出来,就得到下面的模型。 基本模型 决策变量:设每天用1x 桶牛奶生产1A ,用2x 桶牛奶生产2A 。 目标函数:设每天获利Z 元。1x 桶牛奶可生产31x 公斤1A ,获利1324x ?,2x 桶牛奶可生产42x 公斤2A ,获利2416x ?,故Z=216472x x +. 约束条件 原料供应:生产1A ,2A 的原料(牛奶)总量不得超过每天的供应,即1x +2x ≤50桶; 劳动时间:生产1A ,2A 的总加工时间不得超过每天正式工人总的劳动时间,即121x +82x ≤480小时; 设备能力:1A 的产量不得超过设备甲每天的加工能力,即31x ≤100; 非负:1x ,2x 均不能为负值,即1x ≥0,2x ≥0。 综上可得 Max Z=216472x x + (1) s.t. 1x +2x ≤50 (2)

lingo解决线性规划问题(附程序)

北方民族大学第六届数学建模竞赛 竞赛论文 竞赛分组: 竞赛题目: 组员: 所在学院: 信息与计算科学学院制版

北方民族大学第六届数学建模竞赛承诺书 为保证竞赛的公平、公正,维护竞赛的严肃性,在竞赛期间,我们承诺遵守以下竞赛规定:只在本参赛队的三人之间进行问题的讨论,绝不与本参赛队外的其他人讨论与竞赛题目相关的任何问题,不抄袭、剽窃他人的成果,引用的参考文献在答卷中进行标注。 承诺人签名: 承诺人所在分组: 承诺人所在学院: 年月日

摘要 在工程技术、经济管理等诸多领域中,人们经常遇到的一类决策问题是:在一系列客观或主观限制条件下,寻求所要关注的某个或多个指标达到最大(或最小)的决策。例如,酒店客房分配,我们常常不能使得客房刚好满足顾客的要求,此时,客房是有限的,但是顾客需要的客房数已经超出酒店可提供的客房数目,我们就会选择一种客房分配方案,来使得酒店的收益获得最大的。 7天连锁酒店利用网络系统为常客户开设标准间和商务间两类客房的预定服务,酒店以一周(从星期一到星期日)为一个时段处理这项业务。现在收到一个会务组提出的一个一周的预定需求单,现要求我们依据题目所提供的信息,以酒店收入最大为目标,针对3种不同情况,制定相应的分配方案。 我们把这类决策问题通常归为最优化问题,解决问题的方案是,找到问题的决策变量,目标函数及约束条件。如果需要作出决策的变量较多时,我们就会首选LINGO软件来解决线性规划的问题。 关键词:最优分配、数学建模、线性规划、LINGO

目录 1.问题的重述 (4) 2.问题的分析 (4) 3.模型的假设 (5) 4.符号的约定 (6) 5.模型的建立与求解 (7) 5.1问题(1)的求解 (8) 5.2问题(2)的求解 (9) 5.3问题(3)的求解 (12) 5.4问题(4)的求解 (15) 6.模型的评价与改进 (15) 7.参考文献 (15) 8.附录 (16)

Lingo与线性规划

Lingo与线性规划 线性规划得标准形式就是 (1) 其中称为目标函数,自变量称为决策变量,不等式组(1)称为约束条件、 满足不等式组(1)得所有得集合称为可行域,在可行域里面使得z取最小值得称为最优解,最优解对应得函数值称为最优值。 求解优化模型得主要软件有Lingo、Matlab、Excel等。其中Lingo 就是一款专业求解优化模型得软件,有其她软件不可替代得方便功能。本文将简要介绍其在线性规划领域得应用。 一、基本规定 1、目标函数输入格式 max=函数解析式; 或者min=函数解析式; 2、约束条件输入格式 利用:>、<、>=、<=等符号。但就是>与>=没有区别。Lingo软件默认所以自变量都大于等于0、 3、运算 加(+),减(-),乘(*),除(/),乘方(x^a),要注意乘号(*)不能省略。 4、变量名 不区分大小写字母,不超过32个字符,必须以字母开头。 5、标点符号 每个语句以分号“;”结束,感叹号“!”开始得就是说明语句(说明语句也需要以分号“;”结束)。但就是,model,sets,data以“:”结尾。endsets,e nddata,end尾部不加任何符号。 6、命令不考虑先后次序 7、MODEL语句 一般程序必须先输入MODEL:表示开始输入模型,以“END”结束。对简单

得模型,这两个语句也可以省略。 8、改变变量得取值范围 bin(变量名); 限制该变量为0或1、 bnd(a,变量名,b);限制该变量介于a,b之间、free(变量名);允许该变量为负数、 gin(变量名);限制该变量为整数、 例1 求目标函数得最小值,约束条件为 输入Lingo程序: min=2*x1 +3*x2; x1+ x2 >=350;?x1 >=100;?2*x1 +x2 <=600; 有两种运行方式: 1、点击工具条上得按钮即可。 2、点击菜单:LINGO→Solve 运行结果如下: 下面对其各个部分进行说明: Global optimalsolution found:表示已找到全局最优解。 Objective value:表示最优值得大小。可见本题函数最小值800。 Infeasibilities:矛盾约束得数目。

用LINGO求解线性规划问题

实验1 用LINGO求解线性规划问题 LINGO使用简介 LINGO软件是美国的LINDO系统公司(Lindo System Inc)开发的一套用于求解最优化问题的软件包.LINGO除了能用于求解线性规划和二次规划外,还可以用于非线性规划求解以及一些线性和非线性方程(组)的求解.LINGO软件的最大特色在于它允许优化模型中的决策变量为整数,而且执行速度快.LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果,这里简单介绍LINGO的使用方法. LINGO可以求解线性规划、二次规划、非线性规划、整数规划、图论及网络优化和排队论模型中的最优化问题等. 一个LINGO程序一般会包含集合段、数据输入段、优化目标和约束段、初始段和数据预处理段等部分,每一部分有其独特的作用和语法规则,读者可以通过查阅相关的参考书或者LINGO的HELP文件详细了解,这里就不展开介绍了. LINGO的主要功能特色为:既能求解线性规划问题,也有较强的求解非线性规划问题的能力;输入模型简练直观;运算速度快、计算能力强;内置建模语言,提供几十个内部函数,从而能以较少语句,较直观的方式描述大规模的优化模型;将集合的概念引入编程语言,很容易将实际问题转换为LINGO模型;并且能方便地与Excel、数据库等其他软件交换数据. LINGO的语法规定: (1)求目标函数的最大值或最小值分别用MAX=…或MIN=…来表示; (2)每个语句必须以分号“;”结束,每行可以有许多语句,语句可以跨行; (3)变量名称必须以字母(A~Z)开头,由字母、数字(0~9)和下划线所组成,长度不超过32个字符,不区分大小写; (4)可以给语句加上标号,例如[OBJ] MAX=200*X1+300*X2; (5)以惊叹号“!”开头,以分号“;”结束的语句是注释语句; (6)如果对变量的取值范围没有作特殊说明,则默认所有决策变量都非负; (7)LINGO模型以语句“MODEL:”开头,以“END”结束,对于比较简单的模型,这两个语句可以省略. 实验目的 1.对于给定的实际应用问题,正确的建立线性规划问题数学模型,并用LINGO求解; 2.掌握灵敏度分析以及资源的影子价格的相关分析方法. 实验数据与内容 问题1.1某工厂在计划期内要安排生产A、B两种产品,已知生产单位产品所需设备台时及对甲、乙两种原材料的消耗,有关数据如表1.1.问:应如何安排生产计划,使工厂获利最大?

LINGO线性规划及其灵敏度分析

线性规划问题及灵敏度分析在LINGO软件中的实现 一、问题的提出: 某公司饲养实验用的动物以出售给动物研究所,已知这些动物的生长对饲料中3种营养成分(蛋白质、矿物质和维生素)特别敏感,每个动物每周至少需要蛋白质60g,矿物质3g,维生素8mg,该公司能买到5种不同的饲料,每种饲料1kg所含各种营养成分和成本如下表所示,如果每个小动物每周食用饲料不超过52kg,才能满足动物生长需要。 问题: 1.求使得总成本最低的饲料配方? 2.如果另一个动物研究对蛋白质的营养要求变为59单位,但是要求动物的价格比现在的价格便宜0.3元,问该养殖所值不值得接受? 3.由于市场因素的影响,X2的价格降为0.6元每千克,问是否要改变饲料配方? 二、建立线性规划数学模型 解答: (1)设需要饲料A1, A2, A3, A4分别为X1, X2, X3, X4kg,则建立线性规划数学模型如下: 目标函数:MinS=0.2X1+0.7X2+0.4X3+0.3X4+0.5X5 约束条件:0.3X1+2X2+X3+0.6X4+1.8X5>=60 0.1X1+0.05X2+0.02X3+0.2X4+0.05X5>=3 005X1+0.1X2+0.02X3+0.2X4+0.08X5>=8

X1+X2+X3+X4+X5<=52 X1, X2, X3, X4, X5>=0 三、在LINGO软件中的求解 在LINGO中输入下面的命令: Model: Min=0.2*x1+0.7*x2+0.4*x3+0.3*x4+0.5*x5; 0.3*x1+2*x2+x3+0.6*x4+1.8*x5>60; 0.1*x1+0.05*x2+0.02*x3+0.2*x4+0.05*x5>3; 0.05*x1+0.1*x2+0.02*x3+0.2*x4+0.08*x5>8; x1+x2+x3+x4+x5<52; end 操作:选菜单Lingo|Solve(或按Ctrl+S),或用鼠标点击“求解”按纽,如果模型有语法错误,则弹出一个标题为“LINGO Error Message”(错误信息)的窗口,指出在哪一行有怎样的错误,每一种错误都有一个编号(具体含义可查阅相关文献或LINGO的Help).改正错误以后再求解,如果语法通过,LINGO用内部所带的求解程序求出模型的解,然后弹出一个标题为“LINGO Solver Status”(求解状态)的窗口,其内容为变量个数、约束条件个数、优化状态、耗费内存、所花时间等信息,点击Close关闭窗口,屏幕上出现标题为“Solution Report”(解的报告)的信息窗口,显示优化计算(线性规划中换基迭代)的步数、优化后的目标函数值、列出各变量的计算结果. 输出结果如下: Global optimal solution found at iteration: 4 Objective value: 22.40000 Variable Value Reduced Cost X1 0.000000 0.7000000 X2 12.00000 0.000000 X3 0.000000 0.6166667 X4 30.00000 0.000000 X5 10.00000 0.000000

《数学建模》实验指导4Lingo求解线性规划问题

实验四:在Lingo 中利用集求解线性规划问题 学时:4学时 实验目的:掌握利用Lingo 中的集求解线性规划问题的方法。 实验内容: 6 8 ,,1 1 6 ,18 ,1 m in * 1,,8 1,,6 i j i j i j i j j i i j i j cost volum e volum e dem and j volum e capacity i ========∑ ∑∑∑ 使用LINGO 软件,编制程序如下: model : !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))=demand(J)); !产量约束; @for (warehouses(I): @sum (vendors(J): volume(I,J))<=capacity(I)); !这里是数据; data :

capacity=60 55 51 43 41 52; demand=35 37 22 32 41 32 43 38; cost=6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata end 回答问题:哪些产地增加产量可以减少运费,应增加哪个产地的产量可以减少的最多。 2.用Lingo中的集求解课本P107上的例1(混合泳接力队的选拔)。 使用LINGO软件,编制程序如下: model: sets: workers/w1..w5/; jobs/j1..j4/; links(workers,jobs): cost,volume; endsets min=@sum(links: cost*volume); @for(workers(I): @sum(jobs(J): volume(I,J))<=1); @for(jobs(J): @sum(workers(I): volume(I,J))=1); @for(links(i,j): @bin(volume(i,j))); data: cost= 66.8 57.2 78 70 67.4 75.6 66 67.8 74.2 71 87 66.4 84.6 69.6 83.8 58.6 53 59.4 57.2 62.4; enddata end

Lingo与线性规划

Lingo 与线性规划 线性规划的标准形式是 11n n Min z c x c x =++ 1111111..0,1,2,,n n m mn n m i a x a x b s t a x a x b x i n +≤????+≤??≥= ? (1) 其中11n n z c x c x =++称为目标函数,自变量i x 称为决策变量,不等式组(1)称为约 束条件. 满足不等式组(1)的所有1(,,)n x x 的集合称为可行域,在可行域里面使得z 取最小值的** 1(,,)n x x 称为最优解,最优解对应的函数值称为最优值。 求解优化模型的主要软件有Lingo 、Matlab 、Excel 等。其中Lingo 是一款专业求解优化模型的软件,有其他软件不可替代的方便功能。本文将简要介绍其在线性规划领域的应用。 一、基本规定 1、目标函数输入格式 max=函数解析式; 或者 min=函数解析式; 2、约束条件输入格式 利用:>、<、>=、<=等符号。但是>与>=没有区别。Lingo 软件默认所以自变量都大于等于0. 3、运算 加(+),减(-),乘(*),除(/),乘方(x^a),要注意乘号(*)不能省略。 4、变量名 不区分大小写字母,不超过32个字符,必须以字母开头。 5、标点符号 每个语句以分号“;”结束,感叹号“!”开始的是说明语句(说明语句也需要以分号“;”结束)。但是,model ,sets ,data 以“:”结尾。endsets ,enddata ,end 尾部不加任何符号。 6、命令不考虑先后次序 7、MODEL 语句 一般程序必须先输入MODEL :表示开始输入模型,以“END”结束。对简单的模型,这两个语句也可以省略。 8、改变变量的取值范围 @bin(变量名); 限制该变量为0或1. @bnd(a,变量名,b ); 限制该变量介于a,b 之间. @free(变量名); 允许该变量为负数. @gin(变量名); 限制该变量为整数. 例1 求目标函数1223z x x =+的最小值,约束条件为

线性规划lingo实现示例

加工 问题 品加工厂用牛奶生产1A ,2A 两种奶制品,1桶牛奶可以在设备甲用12小时加工成3公斤1A ,或者在设备乙上用8小时加工成4公斤2A 。根据市场需求,生产的1A ,2A 全部能售出,且每公斤1A 获利24元,每公斤2A 获利16元。现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间魏480小时,并且设备甲每天至多能加工100公斤1A ,设备乙的加工能力没有限制。试为该厂制订一个生产计划,使每天获利最大,并进一步讨论以下三个附加问题: 1) 若用35元可以买到1桶牛奶,应否作这项投资? 若投资,每天最多购买多少桶 牛奶? 2) 若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元? 3) 由于市场需求变化,每公斤1A 的获利增加到30元,应否改变生产计划? 问题分析 这个优化问题的目标是使每天的获利最大,要作的决策是生产计划,即每天用多少桶牛奶生产1A ,用多少桶牛奶生产2A ,决策受到3个条件的限制:原料(牛奶)供应、劳动时间、设备甲的工作能力。按照题目所给,将决策变量、目标函数和约束条件用数学符号及式子表示出来,就得到下面的模型。 基本模型 决策变量:设每天用1x 桶牛奶生产1A ,用2x 桶牛奶生产2A 。 目标函数:设每天获利Z 元。1x 桶牛奶可生产31x 公斤1A ,获利1324x ?,2x 桶牛奶可生产42x 公斤2A ,获利2416x ?,故Z=216472x x +. 约束条件 原料供应:生产1A ,2A 的原料(牛奶)总量不得超过每天的供应,即1x +2x ≤50桶; 劳动时间:生产1A ,2A 的总加工时间不得超过每天正式工人总的劳动时间,即121x +82x ≤480小时; 设备能力:1A 的产量不得超过设备甲每天的加工能力,即31x ≤100; 非负:1x ,2x 均不能为负值,即1x ≥0,2x ≥0。 综上可得 Max Z=216472x x + (1) s.t. 1x +2x ≤50 (2)

用LINGO求解线性规划地例子

附1:用LINGO求解线性规划的例子 一奶制品加工厂用牛奶生产A1、A2两种奶制品,1桶牛奶可以在设备甲上用12小时加工成3公斤A1,或者在设备乙上用8小时加工成4公斤A2。根据市场需求,生产的A1、A2能全部售出,且每公斤A1获利24元,每公斤A2获利16元。现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间为480小时,并且设备甲每天至多能加工100公斤A1,设备乙的加工能力没有限制。试为该厂制定一个生产计划,使每天获利最大,并进一步讨论以下3个附加问题: 1)若用35元可以购买到1桶牛奶,应否作这项投资?若投资,每天最多购买多少桶牛奶? 2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元? 3)由于市场需求变化,每公斤A1的获利增加到30元,应否改变生产计划? 数学模型:设每天用x1桶牛奶生产A1 ,用x2桶牛奶生产A2 目标函数:设每天获利为z元。x1桶牛奶可生产3x1公斤A1,获利24*3x1,x2桶牛奶可生产4*x2公斤A2,获利16*4x2,故z=72x1+64x2 约束条件: 原料供应:生产A1、A2的原料(牛奶)总量不超过每天的供应50桶,即 x1+x2≤50 劳动时间:生产A1、A2的总加工时间不超过每天正式工人总的劳动时间480小时,即 12x1+8x2≤480 设备能力:A1的产量不得超过设备甲每天的加工能力100小时,即 3x1≤100 非负约束:x1、x2均不能为负值,即x1≥0,x2≥0 综上所述可得 max z=72x1+64x2 s.t. x1+x2≤50 12x1+8x2≤480 3x1≤100 x1≥0,x2≥0 显然,目标函数和约束条件都是线性的,这是一个线性规划(LP),求出的最优解将给出使净利润最大的生产计划,要讨论的问题需要考虑参数的变化对最优解和影响,一般称为敏感性(或灵敏度)分析。 LINGO求解线性规划 用LINGO求解线性规划时,首先在LINGO软件的模型窗口输入一个LP模型,模型以MAX或MIN 开始,按线性规划问题的自然形式输入(见下面例子所示)。 以下解加工奶制品的生产计划问题: 由于LINGO中已假设所有的变量都是非负的,所以非负约束条件不必输入;LINGO也不区分变量中的大小写字符(实际上任何小写字符将被转换为大写字符);约束条件中的“〈=”及“〉=”可用“〈”及精彩文档

相关主题
相关文档
最新文档