数学建模软件之lingo软件课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
➢ Lingo最大特色在于可以允许决策变量是整数,而 且执行速度很快;Lingo实际上还是一种建模语言, 即使对优化方面的专业知识了解不多的同学,也 能方便的进行输入、求解,并能快速的得到复杂 优化问题的高质量的解。
LINGO的基本用法
1. LINGO的主要功能特色: (1) 既能求解线性规划问题,也有较强的求解非线性规划 问题的能力; (2) 输入模型简练直观; (3) 运行速度快,计算能力强; (4) 内置建模语言,提供几十个内部函数,从而能以较少 语句,较直观的方式描述较大规模的优化模型; (5) 将集合的概念引入编程语言,很容易将实际问题转换 为LINGO模型; (6) 能方便地与Excel、数据库等其他软件交换数据;
返回值 返回X的绝对值 返回X的正弦值 返回X的余弦值 返回X的正切值 返回X的自然对数值 返回eX的值(e为自然常数,e=2.7182818……) 返回X的符号值 返回这一系列数中的最大值 返回这一系列数中的最小值 返回X的整数部分(向最靠近0的方向取整) 返回X的gamma函数的自然对数值 返回X除以Y的余数(X和Y都是整数) 返回指数XY的值(该函数可用X^Y代替) 返回X的平方值(该函数可用X^2代替) 返回X的正的平方根(该函数可用X^(1/2)代替)
Lingo状态窗口中关于求解器各项的含义
域名
含义
可能显示的值
Model Class
当前模型类型
LP、QP、ILP、IQP、PILP、PIQP、NLP、INLP、 PINLP
Global Optimum、Local Optimum、Feasible、
State
当前解的状态 Infeasible(不可行)、Unbounded(无界)、
注: ①最优解中变量的相差值自动取零. ②约束条件中, 对于“<=”不等式, 称之为松弛 (Slack). 对于“>=”不等式, 称之为剩余 (Surplus). 不等式左右两边值相等时, 松弛 和剩余的值为0; 如果约束条件无法满足, 则松弛和剩余的值为负. 含义: 如果y增加1, 能使目标函数值增加1.25.
➢ 该软件包功能强大,版本也很多,而我们使用的 只是演示版(试用版),演示版与正式版功能基 本上是 类似的,只是能够求解问题的规模受到限 制,总变量数不超过30个,这在我们目前的使用 过程中,基本上是足够。
➢ Lingo是英文Linear Interactive and General Optimizer字首的缩写,即“交互式的线性和通用 优化求解器”,它可以用来求解线性规划(LP) 和二次规划(QP),还可以用来求解非线性规划。
B-and-B(分支定界法) Global(全局最优求解程序) Multistart(用多个初始点求解的程序)
Best Obj
到目前为止找到的可 行解最佳目标函数
Steps
特殊求解程序当前运 行步数
Active
有效步数
实数
非负实数 非负实数
Lingo软件介绍
➢关闭求解状态窗口,得到结果如下:
▽
LINGO求解报告:
➢ 算术运算符 ➢ 逻辑运算符 ➢ 关系运算符
➢ 乘方 ^ ➢乘 * ➢除 / ➢加 + ➢减 -
算术运算符
!!注意:LINGO唯一的一元算术运算符是取反 函数“﹣”,且其处于最高优先级。
逻辑运算符
分类
运算符
作用
#EQ#
两个运算对象相等时为真,否则 为假
#NE#
两个运算对象不相等时为真,否 则为假
Lingo在数学建模中的运用<二>
客户需求
原料钢管:每根19米
4米50根
6米20根
8米15根
问题: 如何下料最节省 ? 节省的标准是什么?
按照客户需要在一根原料钢管上安排切割的一种组合。
4米1根 6米1根
8米1根
余料1米
4米1根 6米1根
6米1根
余料3米
8米1根
8米1根
余料3米
合理切割模式的余料应小于客户需要钢管的最小尺寸
合理切割模式
模式
4米钢管根数
6米钢管根数
8米钢管根数
余料(米)
1
4
0
0
3
2
3
1
0
1
3
2
0
1
3
4
1
2
0
3
5
1
1
1
1
6
0
3
0
1
7
0
0
2
3
为满足客户需要,按照哪些种合理模式,每种模式
切割多少根原料钢管,最为节省?
两种 标准
1. 原料钢管剩余总余量最小 2. 所用原料钢管总根数最少
决策变量
xi ~按第i 种模式切割的原料钢管根数(i=1,2,…7)
LINGO初级应用
引例(产品组合问题)
某公司现有三条生产线来生产两种新产品,问如 何生产可以让公司每周利润最大?
生产线
1 2 3 每批产品利润
生产每批产品所需时间 产品一 产品二
1
0
0
2
3
2
3
5
生产线每周可 利用时间
4 12 18
线性规划模型
设x1, x2分别为产品一和产品二的产量
X2
max z 3x1 5x2
Lingo软件介绍
➢关于Lingo的基本用法的几点注意事项:
① 程序以“model:”开始,以“end”结束; ② Lingo中变量不区分大小写,变量名可以超过8个,不能超过
32个,需以字母开头; ③ 用Lingo解优化模型Байду номын сангаас已假定所有变量非负(除非用限定变量
范围的函数@free或@bnd另行说明); ④ 变量可以放在约束条件右端,同时数字也可以放在约束条件左
以表示成:A B
这里 是一个小的正数,它的值依赖于模型中A小于B多 少才算不等.
运算符的优先级
优先级 运算符 最高 #NOT# —(负号)
^ */ + —(减法) #EQ# #NE# #GT# #GE# #LT# #LE# #AND# #OR# 最低 <(=) = >(=)
LINGO在数学建模中的运用<一>
Lingo软件求解的优化模型类型见下图:
优化模型
连续模型
整数模型
线性规划
二次规划
非线性规划
Lingo软件介绍
➢解决一个简单的线性规划(LP)问题
Max 5x 2 y; 4x 2 y 10
s.t. 6x 7 y 12
点击图标 运行,屏幕上显示运行状态窗口如下:
对于LINGO运行状态窗口,我 们给于以下解释:
Lingo软件介绍
➢变量定界函数对变量的取值范围附加限制,共有以 下四种:
变 @BND(L,X,U):限制L < = X < = U.
量 定
@BIN(X):限制X为0或1。
界 @FREE(X) :取消对X的符号限制(即可取
函 数
负数,0或正数).
@GIN(X):限制X为整数.
LINGO中的基本运算符
Interrupted(中断)、undetermined(未确定)
Objective
当前解的目标函 数值
实数
Infeasibility
当前约束不满足 的量
实数
Iterations
目前为止迭代的 次数
非负实数
域名
Lingo状态窗口中关于扩展的求解器各项的含义
含义
可能显示的值
Solver Type 使用的特殊求解程序
x3 x5 2x7 15
xi 为整数
最优解:x2=15, x5=5, x7=5, 其余为0;
最优值:25。
按模式2切割15根, 与目标1的结果“共切割
按模式5切割5根, 27根,余料27米” 相比
按模式7切割5根, 共25根,余料35米
虽余料增加8米,但减少了2根
当余料没有用处时,通常以总根数最少为目标 程序
x3 x5 2x7 15
整数约束: xi 为整数 最优解:x2=12, x5=15,
其余为0; 最优值:27
按模式2切割12根,按模式5切割15根,余料27米 程序
目标2(总根数)
Min Z2 x1 x2 x3 x4 x5 x6 x7
约束条 件不变
4x1 3x2 2x3 x4 x5 50 x2 2x4 x5 3x6 20
x1 4
S .T .
2x2 12 3x1 2x2 18
x1 0, x2 0
0
x1
LINGO简介
➢ 这套软件包由美国芝加哥大学的Linus Scharge教 授于1980年前后开发,专门用于求解最优化问题, 后经不断完善和扩充,并成立LINDO公司进行商 业化运作,取得了巨大的成功。全球《财富》杂 志500强的企业中,一半以上使用该公司产品, 其中前25强企业中有23家使用该产品。
边; ⑤ Lingo模型语句由一系列语句组成,每一个语句都必须以“;”
结尾; ⑥ Lingo中以“!”开始的是说明语句,说明语句也以“ ;” 结束,
可跨多行。 ⑦ 变量与系数间应有运算符“*”; ⑧ 表达式中不接受括号“()”和逗号“,”等任何符号;
基本数学函数
函数名 @ABS(X) @SIN(X) @COS(X) @TAN(X) @LOG(X) @EXP(X) @SIGN(X) @SMAX(X1,X2,…,Xn) @SMIN(X1,X2,…,Xn) @FLOOR(X) @LGM(X) @MOD(X,Y) @POW(X,Y) @SQR(X) @SQRT(X)
运算对象是两个数
#GT# #GE#
左边大于右边时为真,否则为假
左边大于或等于右边时为真,否 则为假
#LT#
左边小于右边时为真,否则为假
#LE#
左边小于或等于右边时为真,否 则为假
#NOT#
单目运算符,表示对运算对象取 反(即真变假,假变真)
预算对象是逻辑值或逻 辑表达式
#AND#
两个运算对象都真时为真,否则 为假
目标1(总余量) Min Z1 3x1 x2 3x3 3x4 x5 x6 3x7
模 4米 6米 8米 余 式 根数 根数 根数 料
14
0
03
23
1
01
32
0
13
41
2
03
51
1
11
60
3
01
70
0
23
需 50 20 15 求
约束 满足需求
4x1 3x2 2x3 x4 x5 50 x2 2x4 x5 3x6 20
汽车厂生产三种类型的汽车,已知各类型每辆车对钢材、劳动时间的需求, 利润及工厂每月的现有量。制订月生产计划,使工厂的利润最大。
钢材(吨) 劳动时间(小时)
利润(万元)
小型 1.5 280 2
中型 3
250 3
大型 5
400 4
现有量 600
60000
设工厂利润为S,生产小型汽车X1辆,中型汽车X2, 大型汽车X3辆。则Lingo程序如下: Model: max=2*X1+3*X2+4*X3; 1.5*x1+3*X2+5*X3<=600; 280*x1+250*X2+400*X3<=60000; @gin(X1); @gin(X2); @gin(X3); end
变量数目:变量总 数(Total)、非线型 变量数(Nonlinear)、 整数变量数(Integer) 约束变量:约束总数 ( Total )、非线性约 束个数(Nonlinear) 非线性系数数量:总数 ( Total )、非线性项的 系数个数(Nonlinear)
内存使用量:单位为千 字节
求解花费时间:显 示格式“时:分:秒:”
#OR#
两个运算对象都假时为假,否则 为真
逻辑运算符优先级别:#NOT#最高, #AND#和#OR#最低
关系运算符
关系运算符通常用在条件表达式中,用来指定约束条件表 达式左边与右边必须满足的关系. 有以下三种:
= <= >= 注:①LINGO没有单独的“<”和“>”关系,如果出现了单 个
②“如<”果和需“要>”严,格L小IN(GO大认)为于是关省系略,了如“A=严”格. 小于B,可
LINGO的基本用法
1. LINGO的主要功能特色: (1) 既能求解线性规划问题,也有较强的求解非线性规划 问题的能力; (2) 输入模型简练直观; (3) 运行速度快,计算能力强; (4) 内置建模语言,提供几十个内部函数,从而能以较少 语句,较直观的方式描述较大规模的优化模型; (5) 将集合的概念引入编程语言,很容易将实际问题转换 为LINGO模型; (6) 能方便地与Excel、数据库等其他软件交换数据;
返回值 返回X的绝对值 返回X的正弦值 返回X的余弦值 返回X的正切值 返回X的自然对数值 返回eX的值(e为自然常数,e=2.7182818……) 返回X的符号值 返回这一系列数中的最大值 返回这一系列数中的最小值 返回X的整数部分(向最靠近0的方向取整) 返回X的gamma函数的自然对数值 返回X除以Y的余数(X和Y都是整数) 返回指数XY的值(该函数可用X^Y代替) 返回X的平方值(该函数可用X^2代替) 返回X的正的平方根(该函数可用X^(1/2)代替)
Lingo状态窗口中关于求解器各项的含义
域名
含义
可能显示的值
Model Class
当前模型类型
LP、QP、ILP、IQP、PILP、PIQP、NLP、INLP、 PINLP
Global Optimum、Local Optimum、Feasible、
State
当前解的状态 Infeasible(不可行)、Unbounded(无界)、
注: ①最优解中变量的相差值自动取零. ②约束条件中, 对于“<=”不等式, 称之为松弛 (Slack). 对于“>=”不等式, 称之为剩余 (Surplus). 不等式左右两边值相等时, 松弛 和剩余的值为0; 如果约束条件无法满足, 则松弛和剩余的值为负. 含义: 如果y增加1, 能使目标函数值增加1.25.
➢ 该软件包功能强大,版本也很多,而我们使用的 只是演示版(试用版),演示版与正式版功能基 本上是 类似的,只是能够求解问题的规模受到限 制,总变量数不超过30个,这在我们目前的使用 过程中,基本上是足够。
➢ Lingo是英文Linear Interactive and General Optimizer字首的缩写,即“交互式的线性和通用 优化求解器”,它可以用来求解线性规划(LP) 和二次规划(QP),还可以用来求解非线性规划。
B-and-B(分支定界法) Global(全局最优求解程序) Multistart(用多个初始点求解的程序)
Best Obj
到目前为止找到的可 行解最佳目标函数
Steps
特殊求解程序当前运 行步数
Active
有效步数
实数
非负实数 非负实数
Lingo软件介绍
➢关闭求解状态窗口,得到结果如下:
▽
LINGO求解报告:
➢ 算术运算符 ➢ 逻辑运算符 ➢ 关系运算符
➢ 乘方 ^ ➢乘 * ➢除 / ➢加 + ➢减 -
算术运算符
!!注意:LINGO唯一的一元算术运算符是取反 函数“﹣”,且其处于最高优先级。
逻辑运算符
分类
运算符
作用
#EQ#
两个运算对象相等时为真,否则 为假
#NE#
两个运算对象不相等时为真,否 则为假
Lingo在数学建模中的运用<二>
客户需求
原料钢管:每根19米
4米50根
6米20根
8米15根
问题: 如何下料最节省 ? 节省的标准是什么?
按照客户需要在一根原料钢管上安排切割的一种组合。
4米1根 6米1根
8米1根
余料1米
4米1根 6米1根
6米1根
余料3米
8米1根
8米1根
余料3米
合理切割模式的余料应小于客户需要钢管的最小尺寸
合理切割模式
模式
4米钢管根数
6米钢管根数
8米钢管根数
余料(米)
1
4
0
0
3
2
3
1
0
1
3
2
0
1
3
4
1
2
0
3
5
1
1
1
1
6
0
3
0
1
7
0
0
2
3
为满足客户需要,按照哪些种合理模式,每种模式
切割多少根原料钢管,最为节省?
两种 标准
1. 原料钢管剩余总余量最小 2. 所用原料钢管总根数最少
决策变量
xi ~按第i 种模式切割的原料钢管根数(i=1,2,…7)
LINGO初级应用
引例(产品组合问题)
某公司现有三条生产线来生产两种新产品,问如 何生产可以让公司每周利润最大?
生产线
1 2 3 每批产品利润
生产每批产品所需时间 产品一 产品二
1
0
0
2
3
2
3
5
生产线每周可 利用时间
4 12 18
线性规划模型
设x1, x2分别为产品一和产品二的产量
X2
max z 3x1 5x2
Lingo软件介绍
➢关于Lingo的基本用法的几点注意事项:
① 程序以“model:”开始,以“end”结束; ② Lingo中变量不区分大小写,变量名可以超过8个,不能超过
32个,需以字母开头; ③ 用Lingo解优化模型Байду номын сангаас已假定所有变量非负(除非用限定变量
范围的函数@free或@bnd另行说明); ④ 变量可以放在约束条件右端,同时数字也可以放在约束条件左
以表示成:A B
这里 是一个小的正数,它的值依赖于模型中A小于B多 少才算不等.
运算符的优先级
优先级 运算符 最高 #NOT# —(负号)
^ */ + —(减法) #EQ# #NE# #GT# #GE# #LT# #LE# #AND# #OR# 最低 <(=) = >(=)
LINGO在数学建模中的运用<一>
Lingo软件求解的优化模型类型见下图:
优化模型
连续模型
整数模型
线性规划
二次规划
非线性规划
Lingo软件介绍
➢解决一个简单的线性规划(LP)问题
Max 5x 2 y; 4x 2 y 10
s.t. 6x 7 y 12
点击图标 运行,屏幕上显示运行状态窗口如下:
对于LINGO运行状态窗口,我 们给于以下解释:
Lingo软件介绍
➢变量定界函数对变量的取值范围附加限制,共有以 下四种:
变 @BND(L,X,U):限制L < = X < = U.
量 定
@BIN(X):限制X为0或1。
界 @FREE(X) :取消对X的符号限制(即可取
函 数
负数,0或正数).
@GIN(X):限制X为整数.
LINGO中的基本运算符
Interrupted(中断)、undetermined(未确定)
Objective
当前解的目标函 数值
实数
Infeasibility
当前约束不满足 的量
实数
Iterations
目前为止迭代的 次数
非负实数
域名
Lingo状态窗口中关于扩展的求解器各项的含义
含义
可能显示的值
Solver Type 使用的特殊求解程序
x3 x5 2x7 15
xi 为整数
最优解:x2=15, x5=5, x7=5, 其余为0;
最优值:25。
按模式2切割15根, 与目标1的结果“共切割
按模式5切割5根, 27根,余料27米” 相比
按模式7切割5根, 共25根,余料35米
虽余料增加8米,但减少了2根
当余料没有用处时,通常以总根数最少为目标 程序
x3 x5 2x7 15
整数约束: xi 为整数 最优解:x2=12, x5=15,
其余为0; 最优值:27
按模式2切割12根,按模式5切割15根,余料27米 程序
目标2(总根数)
Min Z2 x1 x2 x3 x4 x5 x6 x7
约束条 件不变
4x1 3x2 2x3 x4 x5 50 x2 2x4 x5 3x6 20
x1 4
S .T .
2x2 12 3x1 2x2 18
x1 0, x2 0
0
x1
LINGO简介
➢ 这套软件包由美国芝加哥大学的Linus Scharge教 授于1980年前后开发,专门用于求解最优化问题, 后经不断完善和扩充,并成立LINDO公司进行商 业化运作,取得了巨大的成功。全球《财富》杂 志500强的企业中,一半以上使用该公司产品, 其中前25强企业中有23家使用该产品。
边; ⑤ Lingo模型语句由一系列语句组成,每一个语句都必须以“;”
结尾; ⑥ Lingo中以“!”开始的是说明语句,说明语句也以“ ;” 结束,
可跨多行。 ⑦ 变量与系数间应有运算符“*”; ⑧ 表达式中不接受括号“()”和逗号“,”等任何符号;
基本数学函数
函数名 @ABS(X) @SIN(X) @COS(X) @TAN(X) @LOG(X) @EXP(X) @SIGN(X) @SMAX(X1,X2,…,Xn) @SMIN(X1,X2,…,Xn) @FLOOR(X) @LGM(X) @MOD(X,Y) @POW(X,Y) @SQR(X) @SQRT(X)
运算对象是两个数
#GT# #GE#
左边大于右边时为真,否则为假
左边大于或等于右边时为真,否 则为假
#LT#
左边小于右边时为真,否则为假
#LE#
左边小于或等于右边时为真,否 则为假
#NOT#
单目运算符,表示对运算对象取 反(即真变假,假变真)
预算对象是逻辑值或逻 辑表达式
#AND#
两个运算对象都真时为真,否则 为假
目标1(总余量) Min Z1 3x1 x2 3x3 3x4 x5 x6 3x7
模 4米 6米 8米 余 式 根数 根数 根数 料
14
0
03
23
1
01
32
0
13
41
2
03
51
1
11
60
3
01
70
0
23
需 50 20 15 求
约束 满足需求
4x1 3x2 2x3 x4 x5 50 x2 2x4 x5 3x6 20
汽车厂生产三种类型的汽车,已知各类型每辆车对钢材、劳动时间的需求, 利润及工厂每月的现有量。制订月生产计划,使工厂的利润最大。
钢材(吨) 劳动时间(小时)
利润(万元)
小型 1.5 280 2
中型 3
250 3
大型 5
400 4
现有量 600
60000
设工厂利润为S,生产小型汽车X1辆,中型汽车X2, 大型汽车X3辆。则Lingo程序如下: Model: max=2*X1+3*X2+4*X3; 1.5*x1+3*X2+5*X3<=600; 280*x1+250*X2+400*X3<=60000; @gin(X1); @gin(X2); @gin(X3); end
变量数目:变量总 数(Total)、非线型 变量数(Nonlinear)、 整数变量数(Integer) 约束变量:约束总数 ( Total )、非线性约 束个数(Nonlinear) 非线性系数数量:总数 ( Total )、非线性项的 系数个数(Nonlinear)
内存使用量:单位为千 字节
求解花费时间:显 示格式“时:分:秒:”
#OR#
两个运算对象都假时为假,否则 为真
逻辑运算符优先级别:#NOT#最高, #AND#和#OR#最低
关系运算符
关系运算符通常用在条件表达式中,用来指定约束条件表 达式左边与右边必须满足的关系. 有以下三种:
= <= >= 注:①LINGO没有单独的“<”和“>”关系,如果出现了单 个
②“如<”果和需“要>”严,格L小IN(GO大认)为于是关省系略,了如“A=严”格. 小于B,可