实验目的和要求

实验目的和要求
实验目的和要求

一、实验目的和要求:

目的:本实验目的熟悉LINGO软件开发环境,了解并熟练掌握LINGO语言的数学模型的结构,掌握并应用LINGO语言来解决线性规划问题的能力,并了解灵敏度分析的含义。

要求:1、了解LINGO软件应用界面,熟悉使用菜单及工具条的功能;

2、使用LINGO完成例题验证;

3、使用LINGO完成线性规划问题与对偶线性规划问题求解,并分析解题结果;

二、实验内容:

1) 使用LINGO验证下列题目,并进行结果分析

MODEL:

SETS:

QUATERS/Q1,Q2,Q3,Q4/:TIME,DEM,RP,OP,INV;

ENDSETS

MIN=@SUM(QUATERS:400*RP+450*OP+20*INV);

@FOR(QUATERS(I):RP(I)<=40);

@FOR(QUATERS(I)|TIME(I)#GT#1:

INV(I)=INV(I-1)+RP(I)+OP(I)-DEM(I);

INV(1)=10+RP(1)+OP(1)-DEM(1);

DATA:

DEM=40,60,75,25;

TIME=1,2,3,4;

ENDDATA

END

2)使用LINGO验证下列题目,并进行结果分析

MODEL:

SETS:

DAYS/D1,D2,D3,D4,D5,D6,D7/:RQMT,START;

ENDSETS

MIN=@SUM(DAYS:START);

@FOR(DAYS(I):@SUM(DAYS(J)|

(J#GT#I+2#OR#(J#LE#I#AND#J#GT3I-5):

START(J))>RQMT(I););

DATA:

RQMT=17,13,15,19,14,16,11;

ENDDATA

END

3) 使用LINGO求解实验一两道题目,并进行结果分析

min z =4*x1+4*x2+x3

s.t. x1+x2+x3<=2

2*x1+x2<=3

2*x1+x2+3*x3>=3

x1,x2,x3>=0

4)max z=3*x1+x2

s.t. x1+x2>=3

2*x1+x2<=4

x1+x2=3

x1,x2>=0

5)使用LINGO求解实验一两道题目,并进行结果分析

max z=3*x1+2*x2

2*x1+3*x2<=14.5

4*x1+x2<=16.5

x1,x2>=0

x1,x2为整数

三、实验过程

1、源程序

MODEL:

SETS:

QUATERS/Q1,Q2,Q3,Q4/:TIME,DEM,RP,OP,INV;

ENDSETS

MIN=@SUM(QUATERS:400*RP+450*OP+20*INV);

@FOR(QUATERS(I):RP(I)<=40);

@FOR(QUATERS(I)|TIME(I)#GT#1:

INV(I)=INV(I-1)+RP(I)+OP(I)-DEM(I);

INV(1)=10+RP(1)+OP(1)-DEM(1););

DATA:

DEM=40,60,75,25;

TIME=1,2,3,4;

ENDDATA

END

运行结果

Global optimal solution found.

Objective value: 78450.00

Total solver iterations: 2

变量函数值目标函数减少量 TIME( Q1) 1.000000 0.000000 TIME( Q2) 2.000000 0.000000 TIME( Q3) 3.000000 0.000000 TIME( Q4) 4.000000 0.000000 DEM( Q1) 40.00000 0.000000 DEM( Q2) 60.00000 0.000000 DEM( Q3) 75.00000 0.000000 DEM( Q4) 25.00000 0.000000 RP( Q1) 40.00000 0.000000 RP( Q2) 40.00000 0.000000 RP( Q3) 40.00000 0.000000 RP( Q4) 25.00000 0.000000 OP( Q1) 0.000000 20.00000

OP( Q2) 10.00000 0.000000

OP( Q3) 35.00000 0.000000

OP( Q4) 0.000000 50.00000

INV( Q1) 10.00000 0.000000

INV( Q2) 0.000000 20.00000

INV( Q3) 0.000000 70.00000

INV( Q4) 0.000000 420.0000

行号松弛或剩余值对偶价格

1 78450.00 -1.000000

2 0.000000 30.00000

3 0.000000 50.00000

4 0.000000 50.00000

5 15.00000 0.000000

6 0.000000 450.0000

7 0.000000 0.000000

8 0.000000 450.0000

9 0.000000 430.0000

10 0.000000 400.0000

11 0.000000 0.000000

结果分析:经过两次迭代,已经找到全局最优解,得到最小值78450.00,此时

TIME(Q1)=1,TIME(Q2)=2,TIME(Q3)=3,TIME(Q4)=4,DEM(Q1)=40,DEM(Q2)=60,DEM (Q3)=75,DEM(Q4)=25,RP(Q1)=40,RP(Q2)=40,RP(Q3)=40,RP(Q4)=25,OP(Q1)=0,O P(Q2)=15,OP(Q3)=35,OP(Q4)=0,INV(Q1)=10,INV(Q2)=0,INV(Q3)=0,INV(Q4)=0

2、源程序

MODEL:

SETS:

DAYS/D1,D2,D3,D4,D5,D6,D7/:RQMT,START;

ENDSETS

MIN=@SUM(DAYS:START);

@FOR(DAYS(I):@SUM(DAYS(J)|

(J#GT#I+2)#OR#(J#LE#I#AND#J#GT#I-5):

START(J))>RQMT(I););

DATA:

RQMT=17,13,15,19,14,16,11;

ENDDATA

END

运行结果

Global optimal solution found.

Objective value: 22.33333

Total solver iterations: 11

变量函数值目标函数减少量

RQMT( D1) 17.00000 0.000000

RQMT( D2) 13.00000 0.000000

RQMT( D3) 15.00000 0.000000

RQMT( D4) 19.00000 0.000000

RQMT( D5) 14.00000 0.000000

RQMT( D6) 16.00000 0.000000

RQMT( D7) 11.00000 0.000000

START( D1) 6.000000 0.000000

START( D2) 5.333333 0.000000

START( D3) 0.000000 0.000000

START( D4) 7.333333 0.000000

START( D5) 0.000000 0.3333333

START( D6) 3.333333 0.000000

START( D7) 0.3333333 0.000000

行号松弛或剩余值对偶价格

1 22.33333 -1.000000

2 0.000000 -0.3333333

3 2.000000 0.000000

4 0.000000 -0.3333333

5 0.000000 -0.3333333

6 4.66666

7 0.000000

7 0.000000 -0.3333333

8 0.000000 0.000000

结果分析:经过11次迭代,已经找到全局最优解,最小值为22.33333,此时RQMT(D1)=17,RQMT(D2)=13,RQMT(D3)=15,RQMT(D4)=19,RQMT(D5)=14,RQMT(D6)= 16,RQMT(D7)=11,START(D1)=6,START(D2)=5.333333,START(D3)=0,START(D4)=7 .333333,START(D5)=0,START(D6)=3.333333,START(D7)=0.333333

3、源程序

MODEL:

MIN=4*X1+4*X2+X3;

X1+X2+X3<=2;

2*X1+X2<=3;

2*X1+X2+3*X3>=3;

X1>=0;

X2>=0;

X3>=0;

END

运行结果

Global optimal solution found.

Objective value: 1.000000

Total solver iterations: 1

变量函数值目标函数减少量

X1 0.000000 3.333333

X2 0.000000 3.666667

X3 1.000000 0.000000

行号松弛或剩余值对偶价格

1 1.000000 -1.000000

2 1.000000 0.000000

3 3.000000 0.000000

4 0.000000 -0.3333333

5 0.000000 0.000000

6 0.000000 0.000000

7 1.000000 0.000000

结果分析:经过一次迭代,已经找到全局最优解,最小值为1,此时x1=0,x2=0,x3=1 4、源程序

MODEL:

MAX=3*X1+X2;

X1+X2>=3;

2*X1+X2<=4;

X1+X2=3;

X1>=0;

X2>=0;

END

运行结果:

Global optimal solution found.

Objective value: 5.000000

Total solver iterations: 0

变量函数值目标函数减少量

X1 1.000000 0.000000

X2 2.000000 0.000000

行号松弛或剩余值对偶价格

1 5.000000 1.000000

2 0.000000 0.000000

3 0.000000 2.000000

4 0.000000 -1.000000

5 1.000000 0.000000

6 2.000000 0.000000

结果分析:已经找到全局最优解,函数最大值为5,此时x1=1,x2=2

5、源程序

MODEL:

MAX=3*X1+2*X2;

2*X1+3*X2<=14.5;

4*X1+X2<=16.5;

X1>=0;

X2>=0;

@GIN(X1);

@GIN(X2);

END

运行结果:

Global optimal solution found.

Objective value: 13.00000

Extended solver steps: 0

Total solver iterations: 3

变量函数值目标函数减少量

X1 3.000000 -3.000000

X2 2.000000 -2.000000

行号松弛或剩余值对偶价格

1 13.00000 1.000000

2 2.500000 0.000000

3 2.500000 0.000000

4 3.000000 0.000000

5 2.000000 0.000000

结果分析:经过三次迭代,已经得到全局最优解,函数最大值为13,此时x1=3,x2=2

四、思考题

1、LINGO软件主要能解决哪些问题?

主要用来解决将实际问题模型化后,在几条限制条件下,编程解决一些优化、规划问题,

诸如最短路线问题、最少费用问题、分配问题(指派问题)、最小生成树问题、二次分配问题,,得出局部或全局最优解,经常构造0—1变量,解决实际中的整数规划问题,,还可以做灵敏度分析等等...

2、使用LINGO编程与LINDO解决LP问题的区别?

LINDO是一种专门用于求解数学规划问题的软件包。由于LINDO执行速度很快、易于方便输入、求解和分析数学规划问题。LINDO主要用于解线性规划、非线性规划、二次规划和整数规划等问题。也可以用于一些非线性和线性方程组的求解以及代数方程求根等。LINDO中包含了一种建模语言和许多常用的数学函数(包括大量概论函数),可供使用者建立规划问题时调用。LINGO是在LINDO的基础上做的软件,除了解线性规划问题之外,还加了非线性的求解器,另外有集的概念,可以用集操作函数方便写模型可以更方便的处理复杂的问题。

3、说说对偶价格的含义?

当求目标函数的最大值时,增加的数量就是改进的数量,所以影子价格就等于对偶价格;当求目标函数的最小值时,改进的数量应该是减少的数量,所以影子价格即为负的对偶价格。

影子价格又称影子利率。

用线性规则方法计算出来的反映资源最优使用效果的价格。用微积分描述资源的影子价格,即当资源增加一个数量而得到目标函数新的最大值时,目标函数最大值的增量与资源的增量的比值,就是目标函数对约束条件(即资源)的一阶偏导数。用线性规划方法求解资源最优利用时,即在解决如何使有限资源的总产出最大的过程中,得出相应的极小值,其解就是对偶解,极小值作为对资源的经济评价,表现为影子价格。这种影子价格反映劳动产品、自然资源、劳动力的最优使用效果。另外一种影子价格用于效用与费用分析。广泛地被用于投资项目和进出口活动的经济评价。例如,把投资的影子价格理解为资本的边际生产率与社会贴现率的比值时,用来评价一笔钱用于投资还是用于消费的利亏;把外汇的影子价格理解为使市场供求均衡价格与官方到岸价格的比率,用来评价用外汇购买商品的利亏,使有限外汇进口值最大。因此,这种影子价格含有机会成本即替代比较的意思,一般人们称之为广义的影子价格。

实验体会:通过这次实验熟悉了LINGO软件开发环境,并掌握LINGO语言的数学模型的结构,知道它在企业与决策过程中的重要。熟悉了LINGO工作界面,也了解了LINDO与LINGO的异同性,以及求解过程的注意。在做完这格试验后,我了解到,我们可以借助lingo软件将一些生产问题,进行合理的数学建模并得出理论上的最优解,但同时要求我们考虑到建模范围内的方方面面,一旦没有考虑到一个约束条件的话,得出的结论会大相径庭。通过实验,我收获很多,要善于将理论与实际结合,合理运用计算机软件解决实际问题。

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