LINGO基本用法.docx
- 文档编号:26556350
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:16
- 大小:333.32KB
LINGO基本用法.docx
《LINGO基本用法.docx》由会员分享,可在线阅读,更多相关《LINGO基本用法.docx(16页珍藏版)》请在冰豆网上搜索。
LINGO基本用法
LINGO基本用法
1、概况1
2、LINGO的基本用法1
3、用LINGO编程语言建立模型2
4、建立LINGO/LINDO优化模型需要注意的几个基本问题3
5、对求解结果的分析3
LINGO基本用法
LINGO是专门用来求解各种规划问题的软件包,其功能十分强大,是求解优化模型的最佳选择。
1、概况
LINGO是美国LINDO系统公司开发的求解数学规划系列软件中的一个,它的主要功能是求解大型线性、非线性和整数规划问题,LINGO分为Demo、SolveSuite、Super、Hyper、Industrial、Extended等六种不同版本。
只有Demo版是免费的。
LINGO的不同版本对模型的变量总数,非线性变量的数目,整形变量数目和约束条件的数量作出了不同的限制。
LINGO的主要功能:
(1)既能求解线性规划问题,也有较强的求解非线性规划问题的能力;
(2)输入模型简练直观
(3)运行速度快,计算能力强
(4)内置建模语言,提供几十个内部函数,从而能以较少语句,较直观的方式描述较大规模的优化模型
(5)将集合的概念引入编程语言,很容易将实际问题转换为LINGO模型
(6)能方便地与Excel,数据库等其他软件交换数据
2、LINGO的基本用法
通常一个优化模型由下列三部分所组成:
(1)目标函数:
一般表示成求某个数学表达式的最大值或最小值。
(2)决策变量:
目标函数值取决于哪些变量
(3)约束条件:
对变量附加一些条件限制(通常用等式或不等式表示)
注:
LINGO默认所有决策变量都非负,因而变量非负条件可以不必输入。
LINGO的语法规定:
(1)求目标函数的最大值或最小值分别用MAX=…或MIN=…来表示;
(2)每个语句必须以分号";"结束,每行可以有多个语句,语句可以跨行;
(3)变量名称必须以字母(A~Z)开头,由字母,数字(0~9)和下划线所组成,长度不超过32个字符,不区分大小写;
(4)可以给语句加上标号,例如[OBJ]MAX=20*X1+300*X2;
(5)以!
开头,以;号结束的语句是注释语句;
(6)如果对变量的取值范围没有作特殊说明,则默认所有决策变量都非负;
(7)LINGO模型以语句“MODEL:
”开头,以“END”结束,对于比较简单的模型,这两个语句可以省略。
模型窗口,错误信息窗口,求解状态窗口,解的报告窗口。
3、用LINGO编程语言建立模型
LINGO模型的基本组成:
(1)集合定义部分:
集合的名称,集合内的成员(组成集合的个体,元素),集合的属性(可以看成是与集合有关的变量或常量)
sets:
gd/1..6/:
x,y,d;
lch/A,B/:
px,py,e;
links(gd,lch):
c;
endsets
gd是定义的工地集合,成员6个,x,y,d分别是该集合的属性,每个属性可看作一个一维数组(6个分量),分别表示6个工地的x,y位置坐标,6个工地每天的水泥日用量。
LINKS定义衍生集合(派生集合)
links(gd,lch):
c;定义了一个表示运输关系(线路)的集合,该集合以初始集合gd和lch为基础,称为衍生集合。
c是该衍生集合的一个属性,表示某个料场到某个工地之间的运输量,可理解为一个二维数组。
衍生集合的定义语句有如下要素组成:
集合的名称,对应的初始集合,集合的成员(可以省略不写明),集合的属性(可以没有)。
定义衍生集合时可以用罗列的方式将衍生集合的成员一一列出来,如果省略不写,则默认衍生集合的成员取它所对应初始集合的所有可能的组合。
上述衍生集合的成员共12个。
(2)数据初始化(数据段)
data:
x=1.258.750.55.7537.25;
y=1.250.754.7556.57.75;
d=3,5,4,7,6,11;
px=5,2;py=1,7;
e=20,20;
enddata
给定义的所有集合的已知属性赋初值,衍生集合的未知属性C是决策变量(12个成员),是待求未知数。
(3)目标函数和约束条件
minz=
min=@sum(links(i,j):
c(i,j)*((px(j)-x(i))^2+(py(j)-y(i))^2)^(1/2));
@for(gd(i):
@sum(lch(j):
c(i,j))=d(i));
@for(lch(j):
@sum(gd(i):
c(i,j))<=e(j));
•@for(s:
e)该函数常用在约束条件中,表示对集合s中的每个成员都生成一个约束条件表达式,表达式的具体形式由参数e描述.
•@sum(s:
e)对集合s中的每个成员,分别得到表达式e的值,然后返回所有这些值的和.
4、建立LINGO/LINDO优化模型需要注意的几个基本问题
(1)尽量使用实数优化模型,尽量减少整数约束和整数变量的个数
(2)尽量使用光滑优化模型,尽量避免使用非光滑函数
(3)尽量使用线性优化模型,尽量减少非线性约束和非线性变量的个数
(4)合理设定变量的上下界,尽可能给出变量的初始值
(5)模型中使用的单位的数量级要适当
5、对求解结果的分析
线性规划问题的求解结果
Globaloptimalsolutionfound.
Objectivevalue:
136.2275
Totalsolveriterations:
1
VariableValueReducedCost
X
(1)1.2500000.000000
X
(2)8.7500000.000000
X(3)0.50000000.000000
X(4)5.7500000.000000
X(5)3.0000000.000000
X(6)7.2500000.000000
Y
(1)1.2500000.000000
Y
(2)0.75000000.000000
Y(3)4.7500000.000000
Y(4)5.0000000.000000
Y(5)6.5000000.000000
Y(6)7.7500000.000000
D
(1)3.0000000.000000
D
(2)5.0000000.000000
D(3)4.0000000.000000
D(4)7.0000000.000000
D(5)6.0000000.000000
D(6)11.000000.000000
PX(A)5.0000000.000000
PX(B)2.0000000.000000
PY(A)1.0000000.000000
PY(B)7.0000000.000000
E(A)20.000000.000000
E(B)20.000000.000000
C(1,A)3.0000000.000000
C(1,B)0.0000003.852207
C(2,A)5.0000000.000000
C(2,B)0.0000007.252685
C(3,A)0.0000001.341700
C(3,B)4.0000000.000000
C(4,A)7.0000000.000000
C(4,B)0.0000001.992119
C(5,A)0.0000002.922492
C(5,B)6.0000000.000000
C(6,A)1.0000000.000000
C(6,B)10.000000.000000
RowSlackorSurplusDualPrice
1136.2275-1.000000
20.000000-3.758324
30.000000-3.758324
40.000000-4.515987
50.000000-4.069705
60.000000-2.929858
70.000000-7.115125
84.0000000.000000
90.0000001.811824
说明:
(1)决策变量中取0值的为非基变量,取非0值的为基变量;(例如C(1,A),C(1,B))
注意:
算法求解过程中非基变量的取值一定是0.
(2)非基变量的ReducedCost值表示该变量值增加一个单位时目标函数改变量(本例为增加量,max型问题对应减少量)。
(3)ROW2-9对应于8个约束条件(d
(1),…,d(6),e(A),e(B)),若SlackorSurplus值为0表示该约束条件取等号,称之为紧约束。
ROW8的SlackorSurplus值为4,表示e(A)约束条件未取等号,有4个单位的余额,该约束为非紧约束。
(4)ROW2的SlackorSurplus值为0,DualPrice(对偶价格,影子价格)为-3.758324,表示约束条件C(1,A)+C(1,B)=d
(1),即最优值3+0=3(取等号),当约束条件变为C(1,A)+C(1,B)=d
(1)-1时,即工地1的水泥日用量降低1个单位(吨),目标函数值将进一步减少为=(136.2275-3.758324)(吨千米)。
(5)对于非紧约束,DualPrice(对偶价格)为0,表示对应约束条件中不等式右端项的微小扰动不影响目标函数。
例如:
ROW8的C(1,A)+C(2,A)+C(3,A)+C(4,A)+C(5,A)+C(6,A)<=e(A).
非线性规划问题的求解结果
Localoptimalsolutionfound.
Objectivevalue:
85.26604
Totalsolveriterations:
75
VariableValueReducedCost
X
(1)1.2500000.000000
X
(2)8.7500000.000000
X(3)0.50000000.000000
X(4)5.7500000.000000
X(5)3.0000000.000000
X(6)7.2500000.000000
Y
(1)1.2500000.000000
Y
(2)0.75000000.000000
Y(3)4.7500000.000000
Y(4)5.0000000.000000
Y(5)6.5000000.000000
Y(6)7.7500000.000000
D
(1)3.0000000.000000
D
(2)5.0000000.000000
D(3)4.0000000.000000
D(4)7.0000000.000000
D(5)6.0000000.000000
D(6)11.000000.000000
PX(A)3.2548830.000000
PX(B)7.2500000.8084079E-07
PY(A)5.6523320.000000
PY(B)7.7500000.2675276E-06
E(A)20.000000.000000
E(B)20.000000.000000
C(1,A)3.0000000.000000
C(1,B)0.0000003.455031
C(2,A)0.0000000.7586448
C(2,B)5.0000000.000000
C(3,A)4.0000000.000000
C(3,B)0.0000003.934241
C(4,A)7.0000000.000000
C(4,B)0.0000000.000000
C(5,A)6.0000000.000000
C(5,B)0.0000002.991344
C(6,A)0.0000005.065845
C(6,B)11.000000.000000
RowSlackorSurplusDualPrice
185.26604-1.000000
20.000000-5.390872
30.000000-7.158911
40.000000-3.452402
50.000000-3.132491
60.000000-1.438667
70.0000000.000000
80.0000000.5535090
94.0000000.000000
线性规划问题灵敏性分析结果
Rangesinwhichthebasisisunchanged:
ObjectiveCoefficientRanges
CurrentAllowableAllowable
VariableCoefficientIncreaseDecrease
C(1,A)3.7583243.852207INFINITY
C(1,B)5.798707INFINITY3.852207
C(2,A)3.7583247.252685INFINITY
C(2,B)9.199185INFINITY7.252685
C(3,A)5.857687INFINITY1.341700
C(3,B)2.7041631.341700INFINITY
C(4,A)4.0697051.992119INFINITY
C(4,B)4.250000INFINITY1.992119
C(5,A)5.852350INFINITY2.922492
C(5,B)1.1180342.922492INFINITY
C(6,A)7.1151251.3417001.811824
C(6,B)5.3033011.8118241.341700
RighthandSideRanges
RowCurrentAllowableAllowable
RHSIncreaseDecrease
23.0000004.0000003.000000
35.0000004.0000005.000000
44.0000004.0000001.000000
57.0000004.0000007.000000
66.0000004.0000001.000000
711.000004.0000001.000000
820.00000INFINITY4.000000
920.000001.0000004.000000
说明:
模型的灵敏性分析作用:
给出“RANGESINWHICHTHEBASISISUNCHANGED",即研究当目标函数的系数和约束右端项在什么范围变化(此时假定其他系数保持不变)时,最优基保持不变。
灵敏性分析报告包括:
(1)最优基保持不变(此时约束没有变化,所以最优解保持不变,但最优值会变化)的情况下,目标函数的系数的变化范围;例如:
C(1,A)前的系数在[-INFINITY,3.758324+3.852207]范围变化时,最优基保持不变。
(2)在影子价格和缩减成本系数都不变的前提下,约束条件右边的常数的变化范围。
例如:
第一个约束条件右端项在[0,3.0+4.0]范围变化时,最优基保持不变(此时最优解不能保持不变).只有最优基保持不变,影子价格和缩减成本系数才有意义。
约束条件即第一个工地的水泥用量最多增加4吨,否则整个运输方案将重新调整。
通过灵敏性分析,可以进一步确定当目标函数的系数和约束条件右端项发生小的变化时,最优解,最优值如何变化。
非线性规划问题灵敏性分析结果
Rangesinwhichthebasisisunchanged:
ObjectiveCoefficientRanges
CurrentAllowableAllowable
VariableCoefficientIncreaseDecrease
PX(A)NONLINEAR0.00.0
PX(B)NONLINEAR0.00.0
PY(A)NONLINEAR0.00.0
PY(B)NONLINEAR0.00.0
C(1,A)NONLINEAR0.0INFINITY
C(1,B)NONLINEARINFINITY0.0
C(2,A)NONLINEARINFINITY0.0
C(2,B)NONLINEAR0.0INFINITY
C(3,A)NONLINEAR0.0INFINITY
C(3,B)NONLINEARINFINITY0.0
C(4,A)NONLINEAR0.0INFINITY
C(4,B)NONLINEARINFINITY0.0
C(5,A)NONLINEAR0.0INFINITY
C(5,B)NONLINEARINFINITY0.0
C(6,A)NONLINEARINFINITY0.0
C(6,B)NONLINEAR0.0INFINITY
RighthandSideRanges
RowCurrentAllowableAllowable
RHSIncreaseDecrease
23.0000000.00.0
35.0000000.00.0
44.0000000.00.0
57.0000000.00.0
66.0000000.00.0
711.000000.00.0
820.00000INFINITY0.0
920.00000INFINITY4.000000
附:
LINGO中常用的运算符和函数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LINGO 基本 用法