Lindo 和Lingo 数学软件的简单使用方法.docx
- 文档编号:4373624
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:20
- 大小:110.70KB
Lindo 和Lingo 数学软件的简单使用方法.docx
《Lindo 和Lingo 数学软件的简单使用方法.docx》由会员分享,可在线阅读,更多相关《Lindo 和Lingo 数学软件的简单使用方法.docx(20页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Lindo 和Lingo 数学软件的简单使用方法 Lingo 数学 软件 简单 使用方法