LINGO软件及其应用.docx

上传人:b****5 文档编号:7380124 上传时间:2023-05-11 格式:DOCX 页数:13 大小:55.32KB
下载 相关 举报
LINGO软件及其应用.docx_第1页
第1页 / 共13页
LINGO软件及其应用.docx_第2页
第2页 / 共13页
LINGO软件及其应用.docx_第3页
第3页 / 共13页
LINGO软件及其应用.docx_第4页
第4页 / 共13页
LINGO软件及其应用.docx_第5页
第5页 / 共13页
LINGO软件及其应用.docx_第6页
第6页 / 共13页
LINGO软件及其应用.docx_第7页
第7页 / 共13页
LINGO软件及其应用.docx_第8页
第8页 / 共13页
LINGO软件及其应用.docx_第9页
第9页 / 共13页
LINGO软件及其应用.docx_第10页
第10页 / 共13页
LINGO软件及其应用.docx_第11页
第11页 / 共13页
LINGO软件及其应用.docx_第12页
第12页 / 共13页
LINGO软件及其应用.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

LINGO软件及其应用.docx

《LINGO软件及其应用.docx》由会员分享,可在线阅读,更多相关《LINGO软件及其应用.docx(13页珍藏版)》请在冰点文库上搜索。

LINGO软件及其应用.docx

LINGO软件及其应用

LINGO软件及其应用

LINGO软件及其应用

一、求解线性规划

例题1:

目标函数:

maxz=2x1+3x2

约束条件:

x1+2x2<=8

4x1<=17

4x2<=13

x1,x2>=0

输入语句:

model:

max=2*x1+3*x2;

x1+2*x2<8;

4*x1<17;

4*x2<13;

end

说明:

1)问题模型由MODEL:

命令开始,END结束,对简单模型可以省略。

2)目标函数必须由“min=”或“max=”开头。

3)分号是LINGO的分隔符。

LINGO中的每一行都以分号结束,如果缺少,模型将无法求解。

若一个命令或语句一行写不下,可以分多行写,但是,最后结束命令时,一定别忘了打个分号“;”,一行内也可写多个命令,只要每个用分号分开即可。

4)语句中乘号(*)不能省略,支持()的输入。

5)LINGO中<与<=均代表<=,>与>=也均代表>=。

6)LINGO中的注解必须用感叹号“!

”开始,用分号结束。

在感叹号和分号之间的所有内容都将被LINGO忽略。

注释可以占据多行,也可以插入LINGO表达式之中。

7)LINGO的命令从来不区分大小写,当你在LINGO中定义变量时,每个变量都要以26个字母开始,后面可跟数字或者下划线,最多可以是32个字符。

8)软件默认决策变量是非负的。

如果需要一个变量取负数、整数或一定范

间用12小时加工成3公斤A1,或者在乙车间用8小时加工成4公斤A2。

根据市场需求,生产的A1,A2全部能售出,且每公斤A1获利24元,每公斤A2获利16元。

现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间480小时,并且甲车间每天至多能加工100公斤A1,乙车间的加工能力没有限制。

试为该厂制订一个生产计划,使每天获利最大,并进一步讨论以下3个附加问题:

1)若用35元可以买到1桶牛奶,应否作这项投资?

若投资,每天最多购买多少桶牛奶?

2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元?

3)由于市场需求变化,每公斤A1的获利增加到30元,应否改变生产计划?

模型代码如下:

max=72*x1+64*x2;

x1+x2<=50;

12*x1+8*x2<=480;

3*x1<=100;

求解这个模型并做灵敏性分析,结果如下。

Globaloptimalsolutionfoundatiteration:

0

Objectivevalue:

3360.000

 

VariableValueReducedCost

X120.000000.000000

X230.000000.000000

RowSlackorSurplusDualPrice

13360.0001.000000

20.00000048.00000

30.0000002.000000

440.000000.000000

 

Rangesinwhichthebasisisunchanged:

ObjectiveCoefficientRanges

CurrentAllowableAllowable

VariableCoefficientIncreaseDecrease

X172.0000024.000008.000000

X264.000008.00000016.00000

RighthandSideRanges

RowCurrentAllowableAllowable

RHSIncreaseDecrease

250.0000010.000006.666667

3480.000053.3333380.00000

4100.0000INFINITY40.00000

结果告诉我们:

这个线性规划的最优解为x1=20,x2=30,最优值为z=3360,即用20桶牛奶生产A1,30桶牛奶生产A2,可获最大利润3360元。

输出中除了告诉我们问题的最优解和最优值以外,还有许多对分析结果有用的信息,下面结合题目中提出的3个附加问题给予说明。

3个约束条件的右端不妨看作3种“资源”:

原料、劳动时间、车间甲的加工能力。

输出中SlackorSurplus给出这3种资源在最优解下是否有剩余:

原料、劳动时间的剩余均为零,车间甲尚余40(公斤)加工能力。

目标函数可以看作“效益”,成为紧约束的“资源”一旦增加,“效益”必然跟着增长。

输出中DUALPRICES给出这3种资源在最优解下“资源”增加1个单位时“效益”的增量:

原料增加1个单位(1桶牛奶)时利润增长48(元),劳动时间增加1个单位(1小时)时利润增长2(元),而增加非紧约束车间甲的能力显然不会使利润增长。

这里,“效益”的增量可以看作“资源”的潜在价值,经济学上称为影子价格,即1桶牛奶的影子价格为48元,1小时劳动的影子价格为2元,车间甲的影子价格为零。

读者可以用直接求解的办法验证上面的结论,即将输入文件中原料约束milk)右端的50改为51,看看得到的最优值(利润)是否恰好增长48(元)。

用影子价格的概念很容易回答附加问题1):

用35元可以买到1桶牛奶,低于1桶牛奶的影子价格48,当然应该作这项投资。

回答附加问题2):

聘用临时工人以增加劳动时间,付给的工资低于劳动时间的影子价格才可以增加利润,所以工资最多是每小时2元。

目标函数的系数发生变化时(假定约束条件不变),最优解和最优值会改变吗?

这个问题不能简单地回答。

上面输出给出了最优基不变条件下目标函数系数的允许变化范围:

x1的系数为(72-8,72+24)=(64,96);x2的系数为(64-16,64+8)=(48,72)。

注意:

x1系数的允许范围需要x2系数64不变,反之亦然。

由于目标函数的费用系数变化并不影响约束条件,因此此时最优基不变可以保证最优解也不变,但最优值变化。

用这个结果很容易回答附加问题3):

若每公斤A1的获利增加到30元,则x1系数变为30×3=90,在允许范围内,所以不应改变生产计划,但最优值变为90×20+64×30=3720。

下面对“资源”的影子价格作进一步的分析。

影子价格的作用(即在最优解下“资源”增加1个单位时“效益”的增量)是有限制的。

每增加1桶牛奶利润增长48元(影子价格),但是,上9

面输出的CURRENTRHS的ALLOWABLEINCREASE和ALLOWABLEDECREASE给出了影子价格有意义条件下约束右端的限制范围:

milk)原料最多增加10(桶牛奶),time)劳动时间最多增加53(小时)。

现在可以回答附加问题1)的第2问:

虽然应该批准用35元买1桶牛奶的投资,但每天最多购买10桶牛奶。

顺便地说,可以用低于每小时2元的工资聘用临时工人以增加劳动时间,但最多增加53.3333小时。

需要注意的是:

灵敏性分析给出的只是最优基保持不变的充分条件,而不一定是必要条件。

比如对于上面的问题,“原料最多增加10(桶牛奶)”的含义只能是“原料增加10(桶牛奶)”时最优基保持不变,所以影子价格有意义,即利润的增加大于牛奶的投资。

反过来,原料增加超过10(桶牛奶),影子价格是否一定没有意义?

最优基是否一定改变?

一般来说,这是不能从灵敏性分析报告中直接得到的。

此时,应该重新用新数据求解规划模型,才能做出判断。

所以,从正常理解的角度来看,我们上面回答“原料最多增加10(桶牛奶)”并不是完全科学的。

例3使用LINGO软件计算6个发点8个收点的最小费用运输问题。

产销单位运价如下表。

位销地

产地

B1

B2

B3

B4

B5

B6

B7

B8

产量

A1

6

2

6

7

4

2

5

9

60

A2

4

9

5

3

8

5

8

2

55

A3

5

2

1

9

7

4

3

3

51

A4

7

6

7

3

9

2

7

1

43

A5

2

3

9

5

7

2

6

5

41

A6

5

5

2

2

8

1

4

3

52

销量

35

37

22

32

41

32

43

38

 

使用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=605551434152;

demand=3537223241324338;

cost=62674295

49538582

52197433

76739271

23957265

55228143;

enddata

end

Globaloptimalsolutionfound.

Objectivevalue:

664.0000

Totalsolveriterations:

15

 

VariableValueReducedCost

CAPACITY(WH1)60.000000.000000

CAPACITY(WH2)55.000000.000000

CAPACITY(WH3)51.000000.000000

CAPACITY(WH4)43.000000.000000

CAPACITY(WH5)41.000000.000000

CAPACITY(WH6)52.000000.000000

DEMAND(V1)35.000000.000000

DEMAND(V2)37.000000.000000

DEMAND(V3)22.000000.000000

DEMAND(V4)32.000000.000000

DEMAND(V5)41.000000.000000

DEMAND(V6)32.000000.000000

DEMAND(V7)43.000000.000000

DEMAND(V8)38.000000.000000

COST(WH1,V1)6.0000000.000000

COST(WH1,V2)2.0000000.000000

COST(WH1,V3)6.0000000.000000

COST(WH1,V4)7.0000000.000000

COST(WH1,V5)4.0000000.000000

COST(WH1,V6)2.0000000.000000

COST(WH1,V7)9.0000000.000000

COST(WH1,V8)5.0000000.000000

COST(WH2,V1)4.0000000.000000

COST(WH2,V2)9.0000000.000000

COST(WH2,V3)5.0000000.000000

COST(WH2,V4)3.0000000.000000

COST(WH2,V5)8.0000000.000000

COST(WH2,V6)5.0000000.000000

COST(WH2,V7)8.0000000.000000

COST(WH2,V8)2.0000000.000000

COST(WH3,V1)5.0000000.000000

COST(WH3,V2)2.0000000.000000

COST(WH3,V3)1.0000000.000000

COST(WH3,V4)9.0000000.000000

COST(WH3,V5)7.0000000.000000

COST(WH3,V6)4.0000000.000000

COST(WH3,V7)3.0000000.000000

COST(WH3,V8)3.0000000.000000

COST(WH4,V1)7.0000000.000000

COST(WH4,V2)6.0000000.000000

COST(WH4,V3)7.0000000.000000

COST(WH4,V4)3.0000000.000000

COST(WH4,V5)9.0000000.000000

COST(WH4,V6)2.0000000.000000

COST(WH4,V7)7.0000000.000000

COST(WH4,V8)1.0000000.000000

COST(WH5,V1)2.0000000.000000

COST(WH5,V2)3.0000000.000000

COST(WH5,V3)9.0000000.000000

COST(WH5,V4)5.0000000.000000

COST(WH5,V5)7.0000000.000000

COST(WH5,V6)2.0000000.000000

COST(WH5,V7)6.0000000.000000

COST(WH5,V8)5.0000000.000000

COST(WH6,V1)5.0000000.000000

COST(WH6,V2)5.0000000.000000

COST(WH6,V3)2.0000000.000000

COST(WH6,V4)2.0000000.000000

COST(WH6,V5)8.0000000.000000

COST(WH6,V6)1.0000000.000000

COST(WH6,V7)4.0000000.000000

COST(WH6,V8)3.0000000.000000

VOLUME(WH1,V1)0.0000005.000000

VOLUME(WH1,V2)19.000000.000000

VOLUME(WH1,V3)0.0000005.000000

VOLUME(WH1,V4)0.0000007.000000

VOLUME(WH1,V5)41.000000.000000

VOLUME(WH1,V6)0.0000002.000000

VOLUME(WH1,V7)0.0000006.000000

VOLUME(WH1,V8)0.0000006.000000

VOLUME(WH2,V1)1.0000000.000000

VOLUME(WH2,V2)0.0000004.000000

VOLUME(WH2,V3)0.0000001.000000

VOLUME(WH2,V4)32.000000.000000

VOLUME(WH2,V5)0.0000001.000000

VOLUME(WH2,V6)0.0000002.000000

VOLUME(WH2,V7)0.0000002.000000

VOLUME(WH2,V8)0.0000000.000000

VOLUME(WH3,V1)0.0000004.000000

VOLUME(WH3,V2)11.000000.000000

VOLUME(WH3,V3)0.0000000.000000

VOLUME(WH3,V4)0.0000009.000000

VOLUME(WH3,V5)0.0000003.000000

VOLUME(WH3,V6)0.0000004.000000

VOLUME(WH3,V7)40.000000.000000

VOLUME(WH3,V8)0.0000004.000000

VOLUME(WH4,V1)0.0000004.000000

VOLUME(WH4,V2)0.0000002.000000

VOLUME(WH4,V3)0.0000004.000000

VOLUME(WH4,V4)0.0000001.000000

VOLUME(WH4,V5)0.0000003.000000

VOLUME(WH4,V6)5.0000000.000000

VOLUME(WH4,V7)0.0000002.000000

VOLUME(WH4,V8)38.000000.000000

VOLUME(WH5,V1)34.000000.000000

VOLUME(WH5,V2)7.0000000.000000

VOLUME(WH5,V3)0.0000007.000000

VOLUME(WH5,V4)0.0000004.000000

VOLUME(WH5,V5)0.0000002.000000

VOLUME(WH5,V6)0.0000001.000000

VOLUME(WH5,V7)0.0000002.000000

VOLUME(WH5,V8)0.0000005.000000

VOLUME(WH6,V1)0.0000003.000000

VOLUME(WH6,V2)0.0000002.000000

VOLUME(WH6,V3)22.000000.000000

VOLUME(WH6,V4)0.0000001.000000

VOLUME(WH6,V5)0.0000003.000000

VOLUME(WH6,V6)27.000000.000000

VOLUME(WH6,V7)3.0000000.000000

VOLUME(WH6,V8)0.0000003.000000

RowSlackorSurplusDualPrice

1664.0000-1.000000

20.000000-4.000000

30.000000-5.000000

40.000000-4.000000

50.000000-3.000000

60.000000-7.000000

70.000000-3.000000

80.000000-6.000000

90.000000-2.000000

100.0000003.000000

1122.000000.000000

120.0000003.000000

130.0000001.000000

140.0000002.000000

150.0000002.000000

 

二、求解非线性规划

举例1

目标函数:

minf(x)=(x1-1)^2+(x2-2)^2

约束条件:

x2-x1=1

x1+x2<=2

x1>=0,x2>=0

输入语句:

model:

min=(x1-1)^2+(x2-2)^2;

x2-x1=1;

x1+x2<=2;

end

输出结果:

Localoptimalsolutionfound.

Objectivevalue:

0.5000000

Extendedsolversteps:

5

Totalsolveriterations:

20

 

VariableValueReducedCost

X10.50000000.000000

X21.5000000.000000

RowSlackorSurplusDualPrice

10.5000000-1.000000

20.0000000.000000

30.0000001.000000

即可得到最优值0.5。

最优决策变量取值X1=0.5,X2=1.5,及灵敏度分析。

举例2规划问题

目标函数:

minz=2(0.05(x1*x2+x1*x3)+0.01x2*x3)

约束条件:

2(x1*x3+x2*x3+x1*x2)>=888

x1*x2*x3>=1512

x3/x2<=0.718

x3/x2>=0.518

x1*x2<=252

1.5

输入语句:

model:

min=2*(0.05*(x1*x2+x1*x3)+0.01*x2*x3);

@bnd(1.5,x1,10.5);@free(x2);@gin(x3);

2(x1*x3+x2*x3+x1*x2)>=888;

x1*x2*x3>=1512;

x3/x2<=0.718;

x3/x2>=0.518;

x1*x2<=252;

end

输出结果:

Localoptimalsolutionfound.

Objectivevalue:

23.33023

Extendedsolversteps:

3

Totalsolveriterations:

73

 

VariableValueReducedCost

X13.7564580.000000

X223.676870.000000

X317.000000.4824598E-01

RowSlackorSurplusDualPrice

123.33023-1.000000

2222.61560.000000

30.000000-0.1010588E-01

4-0.2493336E-062.317774

50.20000020.000000

6163.05880.000000

最优目标值为23.33023,具体分析略。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2