优化建模与LINDOLINGO软件的介绍(精)

合集下载

lindo 与Lingo入门

lindo 与Lingo入门

优化建模
在LINGO中使用LINDO模型
LINGO的界面
• LINGO软件的主窗口(用 户界面),所有其他窗口 都在这个窗口之内。
• 当前光标 的位置 • 模型窗口(Model Window),用于输入 LINGO优化模型(即 LINGO程序)。
• 状态行(最左边显 示“Ready”,表示 “准备就绪”)
即证券A,C,E分别投资2.182百万元,7.364 百万元,0.454百万元,最大税后收益为0.298 百万元. (2)由(1)的结果中影子价格可知,若资金增加 100万元,收益可增加0.0298百万元.大于 2.75%的利率借到100万元资金的利息,所以 应借贷.投资方案需将上面模型第2个约束右 端改为11,求解得到:证券A,C,E分别投资2.40 百万元,8.10百万元,0.50百万元,最大税后收 益为0.3007百万元.
除“LG4”文件外, 另外几种格式的文件 都是普通的文本文件, 可以用任何文本编辑 器打开和编辑。
•.MPS:示MPS(数学规划系统)格式的模型文件。
优化建模
在LINGO中使用LINDO模型
在LINGO中可以直接使用LINDO语法编写的优化模型(即优化程序)。 作为一个最简单的例子,在名为EXAM0201.LTX的模型文件中保存了一个 LINDO模型,我们现在看看如何用LINGO把它打开。
选择菜单命令 “File|Open(F3)”, 可以看到 “打开文 件”对话框。 (如 图)

优化建模
在LINGO中使用LINDO模型

打开“EXAM0201.LTX”文件 (如下图)
选择“LINGO|Solve (Ctrl+S)”来运行这 个程序(运行状态窗口 如右图)

Lingo软件介绍.ppt

Lingo软件介绍.ppt

s.t. x1 x2 100
2
x1 2x2
3
x1, x2 0 为整数
4
输入窗口如下:
2019/10/28
程序语句输入的备注:
•LINGO总是根据“MAX=”或“MIN=”寻找目标函数, 而除注释语句和TITLE语句外的其他语句都是约束条 件,因此语句的顺序并不重要 。
•限定变量取整数值的语句为“@GIN(X1)”和 “@GIN(X2)”,不可以写成“@GIN(2)”,否则 LINGO将把这个模型看成没有整数变量。
2019/10/28
约束的定义方式
本例中,对于产品数量的平衡方程,由于下标i=1时的 约束关系式与i=2,3,4时有所区别,所以不能省略下 标“i”。实际上,i=1时要用到变量INV(0),但定义 的属性变量中INV不包含INV(0)(INV(0)=10是一个已 知的)。 为了区别i=1和i=2,3,4,把i=1时的约束关系式单独写 出,即“INV(1)=10+RP(1)+OP(1)-DEM(1);” ; 而对i=2,3,4对应的约束,对下标集合的元素(下标i) 增加了一个逻辑关系式“i#GT#1”(这个限制条件与集 合之间有一个竖线“|”分开,称为过滤条件)。 限制条件“i#GT#1”是一个逻辑表达式,意思就是i>1; “#GT#”是逻辑运算符号,意思是“大于(Greater T20h19a/1n0/的28 字首字母缩写)” 。
例 SAILCO公司需要决定下四个季度的帆船生产量。下四个季度 的帆船需求量分别是40条,60条,75条,25条,这些需求必须按 时满足。每个季度正常的生产能力是40条帆船,每条船的生产费 用为400美元。如果加班生产,每条船的生产费用为450美元。每 个季度末,每条船的库存费用为20美元。假定生产提前期为0, 初始库存为10条船。如何安排生产可使总费用最小?

优化模型与LINGO优化软件

优化模型与LINGO优化软件
资 源 单位产品资源消耗量 甲 A B C 单位产品利润 2 4 0 2 乙 2 0 5 3 12 16 15 资源拥有量
m ax z 2 x1 3 x 2 s .t . 2 x1 2 x 2 1 2 4x 16 1 5 x2 15 x1 , x 2 0
状态窗口说明(例1)
•Constraints(约束数量) •Nonzeros(非零系数数量) •内存使用量 •求解花费的时间
全局最优解 求解步骤数
3、报告 窗口说明 (例1)
最优解 变量的检验数 松弛或剩余变量的值 对偶价格的值
单纯形法计算步骤框图(目标函数求max)
至少存在一个元素ais>0
LINGO的窗口介绍
LINGO的主窗口 LINGO模型窗口 LINGO状态窗口 LINGO报告窗口

例1的运算 结果: 主 窗 口 模型窗口 报告窗口 状态窗口
1、主窗口与 模型窗口说明
定 位 某 行
模 型 求 解
模 型 图 示
查 找
匹 配 括 号
显 示 解 答
选 项 设 置
2、状态窗口说明(例1)
③ LINGO中的语句顺序是不重要的,因为LINGO总 是根据“Max=”或“Min=”语句寻找目标函数,其它 语句都是约束条件. ④ LINGO 程序中不区分大小写字母 .( 实际上任何 小写字符将被转换为大写字符) ⑤ LINGO中的变量必须以字母开头,且最多不能超 过32个字符. ⑥ 在LINGO中,以@开头的都是函数的调用. ⑦ LINGO已假定所有变量非负, 可用限定变量取值 范围的函数 @BIN 、 @GIN 、 @FREE 、 @BND 改 变变量的非负假定.
•求解器状态框 •模型的类型 •解的状态 •Objective(解的目标函数值) •Infeasibility(约束不满足总量) •到目前为止的迭代次数 •扩展的求解器状态框

LINDO与LINGO软件介绍

LINDO与LINGO软件介绍
15
查看模型的统计信息, 用Reports/statistics查看模型的统计信息, 查看模型的统计信息
第一行:模型有 行 约束4行),2个变量 个变量, 个整数变量 个整数变量( 个 变量 变量), 第一行:模型有5行(约束 行), 个变量,0个整数变量(0个0-1变量), 不是二次规划. 不是二次规划 第二行:非零系数10个 约束中非零系数6个 其中 个为1或 , 其中5个为 第二行:非零系数 个,约束中非零系数 个(其中 个为 或-1),模型密度 密度=非零系数 行数* 变量数+ 为0.667(密度 非零系数 行数*(变量数+1)]) . 密度 非零系数/[行数 变量数 第三行的意思:按绝对值看,系数最小、最大分别为1和 第三行的意思:按绝对值看,系数最小、最大分别为 和8. 第四行的意思:模型目标为极大化;小于等于、等于、 第四行的意思:模型目标为极大化;小于等于、等于、大于等于约束分别有 广义上界约束(GUBS)不超过 个;变量上界约束 不超过2个 变量上界约束(VUBS)不 2、0、2个;广义上界约束 不超过 不 少于0 所谓GUBS,是指一组不含有相同变量的约束;所谓 少于0个。所谓 ,是指一组不含有相同变量的约束;所谓VUBS,是 , 指一个蕴涵变量上界的约束,如从约束X1+X2-X3=0可以看出,若X3=0,则 可以看出, 指一个蕴涵变量上界的约束,如从约束 可以看出 , X1=0,X2=0(因为有非负限制),因此 ),因此 是一个VUBS约束。 约束。 , (因为有非负限制),因此X1+X2-X3=0是一个 是一个 约束 第五行的意思:只含1个变量的约束个数=0 冗余的列数=0 第五行的意思:只含1个变量的约束个数 0个;冗余的列数 0个

版本信息,可以通过 查询.我们还 版本信息,可以通过help/about查询 我们还 查询 可以查到允许的变量个数、约束个数、 可以查到允许的变量个数、约束个数、整数 变量个数、非零系数个数等. 变量个数、非零系数个数等

优化模型与lindo软件

优化模型与lindo软件

使用LINDO的一些注意事项
“>”(或“<”)号与“>=”(或“<=”)功能相同 变量与系数间可有空格(甚至回车), 但无运算符 变量名以字母开头,不能超过8个字符 变量名不区分大小写(包括LINDO中的关键字) 目标函数所在行是第一行,第二行起为约束条件 行号(行名)自动产生或人为定义。行名以“)”结 束 7. 行中注有“!”符号的后面部分为注释。如: ! It’s Comment. 8. 在模型的任何地方都可以用“TITLE” 对模型命名 (最多72个字符),如: TITLE This Model is only an Example 1. 2. 3. 4. 5. 6.
但是当问题的规模扩大时,前面的方法 显得非常不方便甚至是致命的。主要的原 因是所含的变量和约束个数太多。另一方 面,规划问题本身很有规律,所以我们希 望使用循环来实现。引入如下的两个数组 (或者向量), C=(c1,c2,…,cn), X=(x1,x2,…,xn), b=(b1,b2,…,bm),
LINGO模型 — 例:选址问题
某公司有6个建筑工地,位置坐标为(ai, bi) (单位:公里), 水泥日用量di (单位:吨)
i a b d 1 1.25 1.25 3 2 8.75 0.75 5 3 0.5 4.75 4 4 5.75 5 7 5 3 6.5 6 6 7.25 7.75 11
假设:料场 和工地之间 有直线道路
• Preprocess:预处理(生成割平面); • Preferred Branch:优先的分枝方式:
“Default”(缺省方式)、 “Up”(向上取整优先)、 “Down”(向下取整优先);
• IP Optimality Tol:IP最优值允许的误 差上限(一个百分数,如5%即0.05); • IP Objective Hurdle:IP目标函数的篱 笆值,即只寻找比这个值更优最优解 (如当知道当前模型的某个整数可行解 时,就可以设置这个值); • IP Var Fixing Tol:固定一个整数变量 取值所依据的一个上限(如果一个整数 变量的判别数(REDUCED COST)的 值很大,超过该上限,则以后求解中把 该整数变量固定下来)。

优化建模入门与LINGOLINDO简介

优化建模入门与LINGOLINDO简介

优化建模
整数规划问题对应的松弛问题
取消整数规划中决策变量为整数的限制(松弛),对 应的连续优化问题称为原问题的松弛问题 整数规划问题 最优解
最优解 凸多边形的某个顶点
求解LP的基本思想
凸多面体的某个顶点
思路:从可行域的某一顶点开始,只需在有限多个 顶点中一个一个找下去,一定能得到最优解。
LP的通常解法是单纯形法(G. B. Dantzig, 1947)
优化建模
LP其他算法
内点算法(Interior point method)
• 20世纪80年代人们提出的一类新的算法——内点算法 • 也是迭代法,但不再从可行域的一个顶点转换到另一个 顶点,而是直接从可行域的内部逼近最优解。
f ( x)
优化建模
s.t.
hi ( x) 0, i 1,...,m g j ( x) 0, j 1,...,l
整数规划问题的分类
• 整数线性规划(ILP) 目标和约束均为线性函数 • 整数非线性规划(NLP) 目标或约束中存在非线性函数 • 纯(全)整数规划(PIP) 决策变量均为整数 • 混合整数规划(MIP) 决策变量有整数,也有实数 • 0-1规划 决策变量只取0或1
决策变量:周一至周日每天(新)聘用人数 x1, x2,x7 目标函数:7天(新)聘用人数之和 约束条件:周一至周日每天需要人数
设系统已进入稳态(不是开始的几周) 连续工作5天 周一工作的应是(上)周四至周一聘用的 x4 x5 x6 x7 x1 50
min s.t. z x1 x2 x3 x4 x5 x6 x7 x1 x4 x5 x6 x7 50
优化建模
优化问题的一般形式
优化问题三要素:决策变量;目标函数;约束条件 目标函数 约 束 条 件

数学建模优化模型与Lingo Lindo软件



表二 :5名队员4中泳姿百米平均成绩
队员





蝶泳 66.8 57.2
78
70
67.4
仰泳 75.6
66
67.8
74.2
71
蛙泳
87
66.4 84.6
69.6
83.8
自由泳 58.6
53
59.4
57.2
62.4
线 性 规
·划
模 型
决策变量:引入0-1变量xij 若选择队员 i 参加泳姿 j
例-1 某服务部门一周中每天需要不同数目的
雇员:周一到周四每天至少需要50人,周五
需要80人,周六和周日需要90人。现规定应
聘者需连续工作5天,试确定聘用方案,即周
线
一到周日每天聘用多少人,是5在满足需要的 前况下聘用总人数最少?

优化模型

决策变量:记周一到周日每天聘用的人数分别为X1,

X2,X3,X4,X5,X6 ,X7,这就是问题的决策变量。
的比赛,记 xij=1,否则记 xij=0.这就是问题的决策变量, 共20个。
目标函数:当队员队员 i 入选泳姿 j 的比赛时,
cij xij表示他的成绩,否则cij xij=0。于是接力队的成绩
可以表示为:
45
f
cij xij
j1 i1
约束条件:根据组成接力队的要求, xij 应该满足下面
方案。显然这不是解决问题的最好方法,随着问题
线
规模的变大,穷举法的计算量是无法接受的。

可以用0-1变量表示一个队员是否入选接力队, 从而建立这个问题的0-1规划模型.

优化建模与LINDOLINGO软件介绍59页

13
运行结果如下:
演示
Local optimal solution found at iteration:
73
Objective value:
-1.000000
Variable
Value
X1 0.9999995
X2 0.9999992
Reduced Cost 0.000000 0.000000
Row Slack or Surplus Dual Price
DEMO 8
运行结果如下:
演示
Global optimal solution found at iteration:
2
Objective value:
18.33333
Variable X1 X2 X3 X4
Value 8.333333 0.000000 0.000000 1.666667
Reduced Cost 0.000000 0.6666667 4.333333 0.000000
x — 决策变量
f(x) — 目标函数 gi(x) ,hj(x) — 约束条件
2
优化模型分类
线性规划(LP)
非线性规划(NLP)
二次规划(QP)
连续规划 离散规划
0-1 整数规划(ZOP) 纯整数规划(PIP)
混合整数规划(MIP)
当然还有其它规划,如: 随机规划,模糊规划 ,不确定规划, 半定 规划 等等!
11
运行结果如下:
Global optimal solution found at iteration:
Objective value:
11.00000
演示 0
Variable
Value

LINGO软件介绍


例:邮局一周中每天需要不同数目的雇员,设周一 至少20人,周二至少16人,13,16,19,14,12人,又 规定应聘者需连续工作5天,问邮局每天聘多少雇 员才能既满足需求,又使聘用总人数最少。 min =s1+s2+s3+s4+s5+s6+s7; s1+s4+s5+s6+s7>=20; !周1雇员数; s1+s2+s5+s6+s7>=16; !周2雇员数; s1+s2+s3+s6+s7>=13; !周3雇员数; s1+s2+s3+s4+s7>=16; !周4雇员数; s1+s2+s3+s4+s5>=19; !周5雇员数; s2+s3+s4+s5+s6>=14; !周6雇员数; s3+s4+s5+s6+s7>=12; !周7雇员数;
五个基本的组成部分: 1.变量定义; 2.数据输入; 3.目标函数; 4.约束; 5.变量取值范围。
结束。 (1) 每条语句后必须使用分号“;”结束。问题 ) 每条语句后必须使用分号“ 模型必须由MODEL命令开始,END结束。 命令开始, 结束。 模型必须由 命令开始 结束 命令来作为输入问题模型的开始, (2) 用MODEL命令来作为输入问题模型的开始, ) 命令来作为输入问题模型的开始 格式为MODEL:statement (语句)。 语句)。 格式为 : (3) 目标函数必须由“min =”或“max =”开头。 开头。 ) 目标函数必须由“ 或 开头 (4) 数字与变量之间 变量与变量之间要使用运 ) 数字与变量之间,变量与变量之间要使用运 算符。 如 号等 号等) 算符。(如*号等

数学建模软件LinDoLinGo的简介(修改)


X——表示变量X可取任意实数值。 GIN X——表示变量X只取非负整数值。 INT X——表示变量X只能取0或1。 SLB X value——表示变量X以value为下界。 SUB X value——表示变量X以value为上界。 FREE m——表示问题的前m个变量为自由变量 GIN m——表示问题前m个变量为非负整数值 INT m——表示问题前m个变量为0-1变量。
LINGO 示例
查看简单例子
LINHGO程序
Lindo模型到Lingo模型的转换
“ST”在Lingo模型中不再需要,所以删除了; 在每个系数与变量之间增加了运算符“*”;
将目标函数的表示方式从“MAX”变成“MAX=”;
每行(目标、约束和说明语句)后面均增加了一
个分号“;”; 约束的名字被放ngo中模型以“Model:”开始,以“END”结束。 对简单模型,这两个语句也可以省略。
LINDO/LINGO软件 使用简介
LinDo/LinGo简介
LINDO(Linear Interactive and Discrete Optimizer),即“交互式的线性和离散优化求解 器”,可以用来求解线性规划(LP)和二次规划 (QP); LINGO(Linear Interactive and General Optimizer),即“交互式的线性和通用优化求解 器”,除了用来求解线性规划(LP)、二次规划 (QP)和非线性规划,还可用于线性和非线性方程 组的求解。 最大的特色:允许决策变量是整数(即整数规划,包 括0-1规划)。
Lindo求解整数规划
Lindo求解整数规划程序
LP OPTIMUM FOUND AT STEP 2 OBJECTIVE VALUE = 998.811951
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

lifengbing
2007-4-16
2
优化模型简介
优化模型的一般形式如下:
Max(或 Min) z=f(x) , x=(x1, x2 , … , xn)T s.t. gi(x)<=0, i= 1, 2, …, m hj(x)=0, j= m, m+1, …, n
x — 决策变量
f(x) — 目标函数 gi(x) ,hj(x) — 约束条件
Slack or Surplus Dual Price
11.00000
1.000000
1.000000
0.000000
1.000000
0.000000
lifengbing
2007-4-16
13
例4
min
f

3 2
x12

1 2
x22

x1 x2

2 x1
model: !this is an uncontrained optimal problem; min=3/2*x1^2+1/2*x2^2-x1*x2-2*x1; @free(x1); @free(x2); end
lifengbing
2007-4-16
14
运行结果如下:
演示
Local optimal solution found at iteration:
73
Objective value:
-1.000000
Variable
Value
X1 0.9999995
X2 0.9999992
lifengbing
2007-4-16
3
优化模型分类
线性规划(LP)
非线性规划(NLP)
二次规划(QP)
连续规划 离散规划
0-1 整数规划(ZOP) 纯整数规划(PIP)
混合整数规划(MIP)
当然还有其它规划,如: 随机规划,模糊规划 ,不确定规划, 半定 规划 等等!
lifengbing
2007-4-16
lifengbing
2007-4-16
7
需要掌握的几个重要方面
掌握集合(SETS)的应用; 正确阅读求解报告(尤其要掌握敏感性分析) 正确理解求解状态窗口; 学会设置基本的求解选项(OPTIONS) ; 掌握与外部文件的基本接口方法
lifengbing
2007-4-16
8
LINGO建模与求解实例
例1
max f 2x1 3x2 2x3 x4
s.t
.

x1 2x2 3x3 x1 x2 2x3
2 x4 x4
5 10

xi 0 i 1, 2, 3, 4
model: max=2*x1-3*x2-2*x3+x4; x1-2*x2-3*x3-2*x4=5; x1-x2+2*x3+x4=10; End
Reduced Cost 0.000000 0.6666667 4.333333 0.000000
Row 1 2 3
Slack or Surplus Dual Price
18.33333
1.000000
0.000000
0.3333333
0.000000
1.666667
2007-4-16
10
看完例1后,能解下面这个问题吗?
x1 , x2 Z
model: !this is an integer programming problem; max=4*x1+3*x2; 4*x1+x2<=10; 2*x1+3*x2<=8; @gin(x1); @gin(x2); end
ห้องสมุดไป่ตู้
lifengbing
2007-4-16
12
4
优化问题与LINGO/LINDO软件
连续优化
优化模型 整数规划(IP)
lifengbing
线性规划 二次规划
(LP)
(QP)
LINDO
2007-4-16
非线性规划 (NLP)
LINGO
5
LINDO/LINGO软件的求解过程
1. 确定常数 2. 识别类型
LINDO/LINGO预处理程序 LP QP NLP IP 全局优化(选)
例2
min f x1
2x1 3x2 7
s.t.

2x1 3x2 4x1 x2
6 4
x1 0, x2 0 演示
lifengbing
2007-4-16
11
例3
max f 4 x1 3 x2
s.t
.

4 2
x1 x1

x2 10 3x2 8
分枝定界管理程序
ILP IQP INLP
线性优化求解程序 非线性优化求解程序
1. 单纯形算法 2. 内点算法(选)
lifengbing
1、顺序线性规划法(SLP) 2、广义既约梯度法(GRG) (选) 3、多点搜索(Multistart) (选)
2007-4-16
6
编写Lingo模型时要注意的几个基本问题
优化建模与 LINDO/LINGO软件介绍
单位: 桂林电子科技大学 数学与计算 科学学院
制作人: 李丰兵
Lfb_guidian@
lifengbing
2007-4-16
1
简要提纲
• 优化模型简介 •优化问题与LINGO/LINDO软件 •LINGO建模与求解实例(结合软件介绍) •LINGO软件语法简介 •LINGO建模注意事项
1、尽量使用实数优化,减少整数约束和整数变量 2、尽量使用光滑优化,减少非光滑约束的个数
如:尽量少使用绝对值、符号函数、多个变量求最大/最小 值、四舍五入、取整函数等 3、尽量使用线性模型,减少非线性约束和非线性变量的个数 (如x/y <5 改为x<5y) 4、合理设定变量上下界,尽可能给出变量初始值 5、模型中使用的参数数量级要适当 (如小于103)
lifengbing
2007-4-16
DEMO 9
运行结果如下:
演示
Global optimal solution found at iteration:
2
Objective value:
18.33333
lifengbing
Variable X1 X2 X3 X4
Value 8.333333 0.000000 0.000000 1.666667
运行结果如下:
Global optimal solution found at iteration:
Objective value:
11.00000
演示 0
Variable
Value
X1 2.000000
X2 1.000000
Reduced Cost -4.000000 -3.000000
Row 1 2 3
相关文档
最新文档