Lindo 和Lingo 数学软件的简单使用方法.docx

上传人:b****6 文档编号:4373624 上传时间:2022-12-01 格式:DOCX 页数:20 大小:110.70KB
下载 相关 举报
Lindo 和Lingo 数学软件的简单使用方法.docx_第1页
第1页 / 共20页
Lindo 和Lingo 数学软件的简单使用方法.docx_第2页
第2页 / 共20页
Lindo 和Lingo 数学软件的简单使用方法.docx_第3页
第3页 / 共20页
Lindo 和Lingo 数学软件的简单使用方法.docx_第4页
第4页 / 共20页
Lindo 和Lingo 数学软件的简单使用方法.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

Lindo 和Lingo 数学软件的简单使用方法.docx

《Lindo 和Lingo 数学软件的简单使用方法.docx》由会员分享,可在线阅读,更多相关《Lindo 和Lingo 数学软件的简单使用方法.docx(20页珍藏版)》请在冰豆网上搜索。

Lindo 和Lingo 数学软件的简单使用方法.docx

Lindo和Lingo数学软件的简单使用方法

Lindo和Lingo数学软件的简单使用方法

一、Lindo

最新版本:

6.1版(注册版)

限制:

4000个约束、8000个变量、800个整型变量

功能:

可以求解线性规划、整数规划、混合整数规划、二次规划、目标规划。

我们主要用它来求解整数规划或混合整数规划。

特点:

执行速度非常快

例1:

求解整数规划问题

解:

在lindo的运行窗口中输入

max5x1+8x2

st

x1+x2<6

5x1+9x2<45

end

gin2

然后按Solve菜单或快捷键得运行结果。

OBJECTIVEFUNCTIONVALUE(目标函数最优值)

1)40.00000

VARIABLEVALUEREDUCEDCOST(变量增加1时目标函数改变量)

X10.000000-5.000000

X25.000000-8.000000

ROWSLACKORSURPLUSDUALPRICES

(行)(松弛变量值)(对偶价格,表示约束右边常数增加1时目标函数改变量))

2)1.0000000.000000

3)0.0000000.000000

RANGESINWHICHTHEBASISISUNCHANGED(灵敏度分析)

OBJCOEFFICIENTRANGES(目标函数中变量的系数的变动范围,在此范围内最优解不变)

VARIABLECURRENTALLOWABLEALLOWABLE

COEF(当前系数)INCREASE(增加量)DECREASE(减少量)

X15.0000000.000000INFINITY

X28.0000000.000000INFINITY

RIGHTHANDSIDERANGES(约束条件右边常数的变化范围,在此范围内最优基不变)

ROWCURRENTALLOWABLEALLOWABLE

RHS(当前系数)INCREASE(增加量)DECREASE(减少量)

26.000000INFINITY1.000000(第一个约束)

345.000000INFINITY0.000000(第二个约束)

注意:

1.软件中已经假设所以的变量是非负的,所以非负约束不必输入;

2.可以用FREE变量来取消变量的非负限制;

3.不区分大小写;

4.约束条件“<=”、“>=”可以用“<”、“>”代替;

5.变量名不能超过8个字符;

6.变量与系数间可以有空格,但不能有任何运算符号(如*等);

7.不允许变量出现在一个约束条件的右端;

8.输入中不能有“()”和“,”;比如4(x1+x2)应写成4x1+4x2等;

9.在一个式中同一变量不能出现一次以上,比如2x1+3x2-x1应简化为x1+3x2;

10.int变量变量为0/1整数变量

gin变量变量为整数变量

ginn

intn模型中的前n个变量为0/1整数变量,关于变量的顺序可由输出结果查证!

整数变量申明须放在最后(即end后)

例2:

集合覆盖问题

设有一集合S={1,2,3,4,5},及S的一个子集簇P={{1,2},{1,3,5},{2,4,5},{3},{1},{4,5}},假设选择P中各个元素的费用为1、1.5、1.5、0.8、0.8、1,试从P中选一些元素使之覆盖S且所选元素费用之和最小。

解:

,i=1,2,3,4,5,6

得0-1规划模型:

在Lindo中输入

minx1+1.5x2+1.5x3+0.8x4+0.8x5+x6

st

x1+x2+x5>1

x1+x3>1

x2+x4>1

x3+x6>1

x2+x3+x6>1

end

int6

然后按Solve菜单或快捷键得运行结果。

OBJECTIVEFUNCTIONVALUE

1)2.800000

VARIABLEVALUEREDUCEDCOST

X11.0000001.000000

X20.0000001.500000

X30.0000001.500000

X41.0000000.800000

X50.0000000.800000

X61.0000001.000000

例3:

混合整数规划问题

某厂有3种矿石资源甲、乙、丙,可以用来生产4种不同的产品A1,A2,A3,A4,其单位消耗、利润、固定成本(不生产则不需要)等数据如下,问应如何安排生产?

产品

需要资源

A1

A2

A3

A4

资源总量

8

7

6

5

1000

5

3

5

5

800

2

5

4

5

600

单位利润

250

235

210

190

固定成本

2000

1500

1200

900

解:

用xi表示生产Ai的数量(i=1,2,3,4),

yi=1表示要生产Ai,=0表示不生产Ai(i=1,2,3,4)

则得模型:

M表示一个充分大的正常数;

程序:

max250x1+235x2+210x3+190x4-2000y1-1500y2-1200y3-900y4

st

8x1+7x2+6x3+5x4<1000

5x1+3x2+5x3+5x4<800

2x1+5x2+4x3+5x4<600

x1-9999y1<0

x2-9999y2<0

x3-9999y3<0

x4-9999y4<0

end

inty1

inty2

inty3

inty4

运行结果:

OBJECTIVEFUNCTIONVALUE

1)31500.00

VARIABLEVALUEREDUCEDCOST

Y11.0000002000.000000

Y20.0000001500.000000

Y30.0000001200.000000

Y41.000000900.000000

X166.6666640.000000

X20.00000013.000000

X30.0000000.000000

X493.3333360.000000

(答案:

最大利润31500产品数量A1=200/3A2=0A3=0A4=280/3)

例4:

帆船生产问题

一公司每个季度能正常生产40条帆船,生产费用为每条400美元;已知某年四个季度帆船的需求量是40,60,75,25(每个季度末交货),为此需加班,加班生产每条帆船的费用为450美元,多余生产的帆船每季度的库存费用为20美元,另生产开始前有10条船,问如何安排可使总费用最小?

解:

记ri表示第i季度的正常生产帆船数量;(i=1,2,3,4)

记pi表示第i季度的加班生产帆船数量;(i=1,2,3,4)

记vi表示第i季度的库存量;(i=1,2,3,4)

得模型:

ri,pi,vi为整数;

程序:

min400r1+400r2+400r3+400r4+

450p1+450p2+450p3+450p4+

20v1+20v2+20v3+20v4

st

r1<40

r2<40

r3<40

r4<40

v1=10

v1+r1+p1-v2=40

v2+r2+p2-v3=60

v3+r3+p3-v4=75

v4+r4+p4=25

end

gin12

结果:

OBJECTIVEFUNCTIONVALUE

1)78650.00

VARIABLEVALUEREDUCEDCOST

R140.000000400.000000

R240.000000400.000000

R340.000000400.000000

R425.000000400.000000

P10.000000450.000000

P210.000000450.000000

P335.000000450.000000

P40.000000450.000000

V110.00000020.000000

V210.00000020.000000

V30.00000020.000000

V40.00000020.000000

例5.资金分配问题

假定有一笔资金b=100万元,现有7个投资项目,各项目的投资额和收益如下表:

项目

1

2

3

4

5

6

7

投资额a万

10

14

19

21

28

32

40

收益c万

3

4

5

6

7

9

13

问如何分配使收益最大?

解:

模型为

Lindo程序为:

max3x1+4x2+5x3+6x4+7x5+9x6+13x7

st

10x1+14x2+19x3+21x4+28x5+32x6+40x7<100

end

int7

参考答案:

投资项目1、2、6、7,最大收益29)

例6.用LINDO解目标规划

通过求解目标规划问题的有效算法——序贯式算法可将目标规划分解成计算二个线性规划。

先求第一个目标函数的最优值

mind1_+d1

ST

x1-10x2+d1_-d1=50

3x1+5x2+d2_-d2=20

end

(求得d1_+d1的最优值为0)

然后再求第二个目标函数的最优值,注意要把第一个目标函数的最优值d1_+d1=0作为一个约束条件。

min2d2+d3

ST

x1-10x2+d1_-d1=50

3x1+5x2+d2_-d2=20

8x1+6x2+d3_-d3=100

d1_+d1=0

end

即可算得第二级最优值2d2+d3=560

练习1:

平板车装货问题(美国1988年数学建模竞赛B题)

答案:

最大装载厚度2039.4厘米。

程序:

x1~x7分别为第1辆平板车上7种货物的装载数,x8~x14为第2辆车

max48.7x1+48.7x8+52.0x2+52x9+61.3x3+61.3x10+72.0x4+72x11+48.7x5+48.7x12+52.0x6+52x13+64.0x7+64x14

st

48.7x1+52.0x2+61.3x3+72.0x4+48.7x5+52.0x6+64.0x7<1020

48.7x8+52.0x9+61.3x10+72.0x11+48.7x12+52.0x13+64.0x14<1020

2000x1+3000x2+1000x3+500x4+4000x5+2000x6+1000x7<40000

2000x8+3000x9+1000x10+500x11+4000x12+2000x13+1000x14<40000

48.7x5+48.7x12+52.0x6+52x13+64.0x7+64x14<302.7

x1+x8<8

x2+x9<7

x3+x10<9

x4+x11<6

x5+x12<6

x6+x13<4

x7+x14<8

end

gin14

答案:

OBJECTIVEFUNCTIONVALUE

1)2039.400

VARIABLEVALUEREDUCEDCOST

X12.000000-48.700001

X86.000000-48.700001

X25.000000-52.000000

X92.000000-52.000000

X30.000000-61.299999

X109.000000-61.299999

X45.000000-72.000000

X111.000000-72.000000

X53.000000-48.700001

X120.000000-48.700001

X63.000000-52.000000

X130.000000-52.000000

X70.000000-64.000000

X140.000000-64.000000

二、Lingo

最新版本:

8.0版(解密版)

限制:

约束条件、变量、整数变量均无限制

功能:

可以求解非线性规划。

也可以做线性规划、整数规划,可以完全代替Lindo)

特点:

运算速度快,允许使用集合来描述大规模的优化问题;

例1:

求解非线性规划

程序:

model:

模型输入开始

min=3*x^2+y^2-x*y+0.4*y;目标函数必须以’min=’或‘max=’开始

1.2*x+0.9*y>1.1;每条语句必须以;结尾

x+y=1;

y<0.7;

end模型输入结束

运行结果:

Localoptimalsolutionfoundatiteration:

12(局部最优解)

Objectivevalue:

1.355556

VariableValueReducedCost

X0.66666670.000000

Y0.33333330.000000

注意:

1.运算符不能省略,比如要输入4x2,应表示为4*x^2 ;

2.变量已经假定非负;

3.变量可以出现在约束条件的右边;

4.数学内部函数:

以@打头

@ABS(x)@COS(x)@EXP(x)@LOG(x)@SIGN(x)

@SIN(x)@SMAX(x1,x2,x3,…,xn)@SMIN(…)@TAN(x)

@FLOOR(x)最接近x的整数

5.变量定界函数

@BND(L,x,U)限制x的范围L<=x<=U

@BIN(x)x为0或1

@FREE(x)取消对x的限制

@GIN(x)x为整数

给变量定界时须在模型输入结束之前,这与lindo是不同的;

6.概率函数

@PSN(x)正态分布的分布函数等14个函数,可通过帮助查询使用方法。

例2:

挂轮问题

求4个整数20到100的整数a,b,c,d使得

最小。

解:

model:

min=@ABS(z)+1;

z=3.141592653589793238462643-x*y/(u*v);

@BND(20,x,100);

@BND(20,y,100);

@BND(20,u,100);

@BND(20,v,100);

@GIN(x);

@GIN(y);

@GIN(u);

@GIN(v);

end

结果:

Localoptimalsolutionfoundatiteration:

72952(局部最优解)

Objectivevalue:

0.5826206E-04

VariableValueReducedCost

Z0.5826206E-040.000000

X95.00000-0.3306879E-01

Y25.00000-0.1256614

U28.000000.1121977

V27.000000.1163532

华罗庚书中给出的最好的结果是:

x=51,y=77,u=50,v=25

例3.选址问题

设某城市有某种物品的10个需求点,第i个需求点Pi的坐标为(ai,bi),道路网与坐标轴平行,彼此正交。

现打算建一个该物品的供应中心,且由于受到城市某些条件的限制,该供应中心只能设在x界于[5,10],y界于[5.10]的范围之内。

问该中心应建在何处为好?

P点的坐标为:

ai

1

4

3

5

9

12

6

20

17

8

bi

2

10

8

18

1

4

5

10

8

9

建立数学模型:

设供应中心的位置为(x,y),要求它到最远需求点的距离尽可能小,此处采用沿道路行走计算距离,可知每个用户点Pi到该中心的距离为|x-ai|+|y-bi|,于是有:

,则原模型可化为:

输入程序:

model:

min=z;

@ABS(x-1)+@ABS(y-2)

@ABS(x-4)+@ABS(y-10)

@ABS(x-3)+@ABS(y-8)

@ABS(x-5)+@ABS(y-18)

@ABS(x-9)+@ABS(y-1)

@ABS(x-12)+@ABS(y-4)

@ABS(x-16)+@ABS(y-5)

@ABS(x-20)+@ABS(y-10)

@ABS(x-17)+@ABS(y-8)

@ABS(x-8)+@ABS(y-9)

@BND(5,x,10);

@BND(5,y,10);

end

结果:

Globaloptimalsolutionfoundatiteration:

47(全局最优解)

Objectivevalue:

13.50000

VariableValueReducedCost

Z13.500000.000000

X7.0000000.000000

Y9.5000000.000000

三、用Lingo描述大规模数学规划

当约束和数据较多时采用的输入方法,可分为四个部分,具体格式如下:

model:

1.集合部分;

SETS:

集合名/1..n/:

属性1,属性2,…

ENDSETS

2.目标函数与约束部分;

3.数据部分;(:

变量=?

表示在运行时输入变量值,只用于单个变量)

DATA:

……

ENDDATA

4.初始化部分;(若不需要初值,则此部分可省略)

INIT:

……

ENDINIT

end

集合定义格式有两种:

setname/memberlist(or1..n)/:

attribute,attribute,…用集合定义一维变量

setname(set1,set2,…):

attribute,attribute,…用集合定义多维变量

一个集合只需要给出维数(memberlist,用1..n表示或其它文字符号表示或用集合表示),后接具有该维数的变量(attribute)。

描述大规模规划所需要的集合函数主要有4个:

@FOR(集合名:

约束表达式)对集合的每个元素独立按约束表达式生成约束

@MAX(集合名:

表达式)返回按表达式计算集合中每个元素的最大值

@MIN(集合名:

表达式)返回最小值

@SUM(集合名:

表达式)返回和

集合名后可接逻辑表达式,格式为:

@函数(集合|逻辑表达式:

表达式)

逻辑运算符:

逻辑运算符

#AND#

#OR#

#NOT#

意义

关系运算符:

关系运算符

#EQ#

#NE#

#GT#

#GE#

#LT#

#LE#

意义

等于

不等于

大于

大于等于

小于

小于等于

例1.1995年全国大学生数学建模竞赛A题飞行管理问题

其数学模型为:

这里

为六架飞机调整的飞行角度,

为常数。

使用集合描述的程序:

model:

sets:

S/1..6/:

z;

SS(S,S):

a,b;

endsets

min=@Sum(S:

@Abs(z));

@For(S(i):

@BND(-30,z(i),30));

@For(SS(i,j)|i#NE#j:

@Abs(b(i,j)+0.5*z(i)+0.5*z(j))>a(i,j));

data:

a=

0.005.3932.235.0920.962.23

5.390.004.806.615.813.82

32.234.800.004.3622.832.13

5.096.614.360.004.542.99

20.965.8122.834.540.002.31

2.233.822.132.992.310.00;

b=

0.00109.26-128.2524.18173.0714.47

109.260.00-88.87-42.24-92.309.00

-128.25-88.870.0012.48-58.790.31

24.18-42.2412.480.005.97-3.53

173.07-92.30-58.795.870.001.91

14.479.000.31-3.531.910.00;

enddata

end

结果:

Globaloptimalsolutionfoundatiteration:

61(全局最优解)

Objectivevalue:

3.640000

VariableValueReducedCost

Z

(1)0.0000000.000000

Z

(2)0.0000000.000000

Z(3)2.5600000.000000

Z(4)0.0000000.000000

Z(5)0.0000000.000000

Z(6)1.0800000.000000

例2.仓库与客户物资分配供应问题

某地区拟在10个地点建立仓库以存放某种物资,用于供应20个客户,已知下列数据:

(1)建立仓库的固定费用(单位:

万元)

仓库

仓库1

仓库2

仓库3

仓库4

仓库5

仓库6

仓库7

仓库8

仓库9

仓库10

固定费用

2

3

4

2

3

4

2

3

4

5

(2)某仓库供应某客户全部需求量时的运费(单位:

万元)

仓库1

仓库2

仓库3

仓库4

仓库5

仓库6

仓库7

仓库8

仓库9

仓库10

客1

9

10

2

6

7

15

15

1

18

6

客2

14

16

10

4

10

18

14

1

16

7

客3

6

9

2

1

20

14

20

5

20

17

客4

15

12

18

9

17

18

12

2

18

4

客5

6

8

4

3

7

11

6

2

5

12

客6

19

14

19

3

9

4

15

5

20

4

客7

11

4

8

5

13

20

20

16

8

19

客8

19

20

13

15

16

20

3

8

6

4

客9

4

9

15

6

9

13

1

7

17

13

客10

5

13

9

10

15

1

16

7

20

16

客11

3

2

4

9

13

10

6

12

9

7

客12

6

17

8

13

10

19

6

9

19

6

客13

4

18

16

6

12

6

6

5

1

1

客14

10

19

2

4

12

4

20

12

10

14

客15

12

15

15

8

4

12

3

6

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

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1