优化模型与LINDOLINGO优化软件.ppt
合集下载
优化模型与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(约束不满足总量) •到目前为止的迭代次数 •扩展的求解器状态框
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(约束不满足总量) •到目前为止的迭代次数 •扩展的求解器状态框
(方案)Lingo的基本使用方法.ppt
最新.课件
2
优化模型和算法的重要意义
最优化: 在一定条件下,寻求使目标最大(小)的决策
最优化是工程技术、经济管理、科学研究、社会生活中 经常遇到的问题, 如:
结构设计 资源分配
生产计划
运输方案
解决优化问题的手段
经验积累,主观判断
作试验,比优劣
建立数学模型,求解最最新优.课策件 略
3
1. 确定常数 2. 识别类型
LINGO软件的求解过程
LINGO预处理程序 LP QP NLP IP 全局优化(选)
分枝定界管理程序 ILP IQP INLP
线性优化求解程序
非线性优化求解程序
1. 单纯形算法 2. 内点算法(选)
1、顺序线性规划法(SLP) 2、广义既约梯度法(GRG) (选) 3、多点搜索(Multistart) (选)
最新.课件
12
输出结果: 运行菜单命令“LINGO|Solve” 最大利润=11077.5
最优整数解 X=(35,65)
最新.课件
13Leabharlann 输出结果备注:LINGO是将它作为PINLP(纯整数非线性规划)来求解,因此找到 的是局部最优解。
通过菜单 “WINDOW| Status Window”看到状态窗 口,可看到最佳目标值 “Best Obj”与问题的上界 “Obj Bound”已经是一样的 ,当前解的最大利润与这两
最新.课件
8
LINGO 11.0功能增强,性能稳定,解答结果可靠。LINGO 软 件主要具有两大优点:
可用于求解经典的数学规划问题,包括非线性整数规划问题;
内置建模语言,允许以简练、直观的方式描述较大规模的优化 问题,所需的数据可以以一定格式保存在独立的文件中。
优化建模与LINGO第05章
(22)
(2)~(10),(18)~(22)也构成一个混合整数线性规 划模型,可以用LINDO求解。不过,我们还是将它输入 LINGO软件,因为其扩展性更好(即当分段函数的分段数 更多时,只需要对下面程序作很小的改动)。输入的 LINGO模型如下:
输入的LINGO模型如下:
优化建模
Model: SETS: Points/1..4/: b, c, y, z;! 端点数为4,即分段数为3; ENDSETS DATA: b=0 500 1000 1500; c=0 5000 9000 12000; y=,,,0; ! 增加的虚拟变量y(4)=0; ENDDATA
此时x和c(x)可以统一地表示为
优化建模
x z 1 b 1 z 2 b 2 z 3 b 3 z 4 b 4 5z 2 0 10 z 0 3 1 0 z 5 40 00
c ( x ) z 1 c ( b 1 ) z 2 c ( b 2 ) z 3 c ( b 3 ) z 4 c ( b 4 ) 5z 2 0 9 0 z 3 0 1 0 0 z 2 4
Model: Max= 4.8*x11 + 4.8*x21 + 5.6*x12 + 5.6*x22 - 10*x1 - 8*x2 - 6*x3; x11+x12 < x + 500; x21+x22 < 1000; 0.5*x11 - 0.5*x21 > 0; 0.4*x12 - 0.6*x22 > 0; x=x1+x2+x3; (x1 - 500) * x2=0; (x2 - 500) * x3=0; bnd(0,x1, 500); bnd(0,x2, 500); bnd(0,x3,500); end
(2)~(10),(18)~(22)也构成一个混合整数线性规 划模型,可以用LINDO求解。不过,我们还是将它输入 LINGO软件,因为其扩展性更好(即当分段函数的分段数 更多时,只需要对下面程序作很小的改动)。输入的 LINGO模型如下:
输入的LINGO模型如下:
优化建模
Model: SETS: Points/1..4/: b, c, y, z;! 端点数为4,即分段数为3; ENDSETS DATA: b=0 500 1000 1500; c=0 5000 9000 12000; y=,,,0; ! 增加的虚拟变量y(4)=0; ENDDATA
此时x和c(x)可以统一地表示为
优化建模
x z 1 b 1 z 2 b 2 z 3 b 3 z 4 b 4 5z 2 0 10 z 0 3 1 0 z 5 40 00
c ( x ) z 1 c ( b 1 ) z 2 c ( b 2 ) z 3 c ( b 3 ) z 4 c ( b 4 ) 5z 2 0 9 0 z 3 0 1 0 0 z 2 4
Model: Max= 4.8*x11 + 4.8*x21 + 5.6*x12 + 5.6*x22 - 10*x1 - 8*x2 - 6*x3; x11+x12 < x + 500; x21+x22 < 1000; 0.5*x11 - 0.5*x21 > 0; 0.4*x12 - 0.6*x22 > 0; x=x1+x2+x3; (x1 - 500) * x2=0; (x2 - 500) * x3=0; bnd(0,x1, 500); bnd(0,x2, 500); bnd(0,x3,500); end
lingo介绍.ppt
Lingo 解决办法:MIN = @SUM( LINKS(I,J): COST(I,J) * VOLUME(I,J));
约束条件复杂的情况
数学表述:
Σi VOLUMEij = DEMANDj, for all j in VENDORS
Lingo表述:
@FOR( VENDORS( J): @SUM( WAREHOUSES( I): VOLUME( I, J)) = DEMAND( J));
@FOR( DAYS( I): @GIN( START( I)));
DATA: REQUIRED = 20 12 18 16 19 14 12;
ENDDATA
MIN = @SUM( DAYS( I): START( I));
@FOR( DAYS( J): @SUM( DAYS( I) | I #LE# 5: START( @WRAP( J - I + 1, 7))) >= REQUIRED( J)
DATA: X = 1 2 3; Y = 4 5 6;
ENDDATA
Looping Function
@FOR The most powerful of the set looping functions, @FOR is used to generate constraints over members of a set.
Some Example
SETS:
DAYS / MON TUE WED THU FRI SAT SUN/: REQUIRED, START; ENDSETS
DATA: REQUIRED = 20 16 13 16 19 14 12;
ENDDATA
MIN = @SUM( DAYS( I): START( I));
约束条件复杂的情况
数学表述:
Σi VOLUMEij = DEMANDj, for all j in VENDORS
Lingo表述:
@FOR( VENDORS( J): @SUM( WAREHOUSES( I): VOLUME( I, J)) = DEMAND( J));
@FOR( DAYS( I): @GIN( START( I)));
DATA: REQUIRED = 20 12 18 16 19 14 12;
ENDDATA
MIN = @SUM( DAYS( I): START( I));
@FOR( DAYS( J): @SUM( DAYS( I) | I #LE# 5: START( @WRAP( J - I + 1, 7))) >= REQUIRED( J)
DATA: X = 1 2 3; Y = 4 5 6;
ENDDATA
Looping Function
@FOR The most powerful of the set looping functions, @FOR is used to generate constraints over members of a set.
Some Example
SETS:
DAYS / MON TUE WED THU FRI SAT SUN/: REQUIRED, START; ENDSETS
DATA: REQUIRED = 20 16 13 16 19 14 12;
ENDDATA
MIN = @SUM( DAYS( I): START( I));
Lingo教程PPT优秀课件
演示(试用)版、学生版、高级版、超级版、工业版、扩展版…
求解问题规模和选件不同
2
LINDO和LINGO软件能求解的优化模型
连续优化
优化模型 整数规划(IP)
线性规划 二次规划 非线性规划
(LP)
(QP)
(NLP)
LINDO
LINGO
3
LINDO/LINGO软件的求解过程
1. 确定常数 2. 识别类型
5
需要掌握的几个重要方面
LINGO: 掌握集合(SETS)的应用; 正确阅读求解报告; 正确理解求解状态窗口; 学会设置基本的求解选项(OPTIONS) ; 掌握与外部文件的基本接口方法
6
文件类型描述
• .lg4 LINGO格式的模型文件 二进制格式文件 • .lng 文本格式的模型文件(不保存字体、颜色、
11
例1.1 如何在LINGO中求解如下的LP问题:
min 2 x 1 3 x 2 s .t.
x 1 x 2 350
x1
100
2 x 1 x 2 600
x1, x2 0
在模型窗口中输入如下代码: min=2*x1+3*x2; x1+x2>=350; x1>=100; 2*x1+x2<=600;
LINGO软件简介
• LINGO模型的优点
• 提供了灵活的编程语言(矩阵生成器)
• LINGO模型的构成:5个段
• 目标与约束段 • 集合段(SETS ENDSETS) • 数据段(DATA ENDDATA) • 初始段(INIT ENDINIT) • 计算段(CALC ENDCALC) - LINGO9.0
嵌入对象) • .ldt LINGO数据文件 • .ltf LINGO命令脚本文件 • .lgr LINGO报告文件 • .ltx LINDO格式的模型文件 • .mps 数学规划系统格式的模型文件
优化模型与Lingo Lindo软件
Lingo/Lindo软件介绍
---Lingo
对前面的线性规划模型,编写Lingo程序如下:
点击图标
运行,屏幕上显示运行状态窗口如下:
对于Lingo运行状态窗口, 我们给于以下解释:
变量数目:变量总数 (Total)、非线型变量 数(Nonlinear)、整数 变量数(Integer) 约束变量:约束总数 ( Total )、非线性约束 个数(Nonlinear) 非线性系数数量:总数 ( Total )、非线性项的 系数个数(Nonlinear) 内存使用量:单位为千字节
① 除具备Lindo的全部功能外,还可以用于求解非线性规划问题;
② Lingo包含了内置的建模语言,允许以简练、直观的方式描述较大规 模的优化问题,模型中所需的数据可以以一定的格式保存在独立的 文件中。
事实上,Lindo公司目前已经将Lindo软件从其产品目 录中删除,而将Lindo软件的所有功能都在Lingo中得到了 支持,所以在不久的将来总有一天人们会废弃Lindo软件不 再使用,但Lingo的生命力应该还是很顽强的!
Infeasibility 约束不满足的量;0表示这个解是可行的 Objective 显示当前解的目标函数值 Best IP 显示整数规划当前解的最佳标函数值:N/A 表示无答案或无意义 显示分支定界算法已经计算的分支数: N/A 表示无答案或无意义
IP Bound 显示整数规划的界 Branches
Lingo/Lindo软件介绍
这套软件包由美国芝加哥大学的Linus Scharge教
授于1980年前后开发,专门用于求解最优化问题,后 经不断完善和扩充,并成立LINDO公司进行商业化运 作,取得了巨大的成功。全球《财富》杂志500强的企 业中,一半以上使用该公司产品,其中前25强企业中 有23家使用该产品。 该软件包功能强大,版本也很多,而我们 使用的只 是演示版(试用版),演示版与正式版功能基本上是 类似的,只是能够求解问题的规模受到限制,总变量数 不超过30个,这在我们目前的使用过程中,基本上是 足够。
LINGO课件
LINGO模型 LINGO模型 — 例:选址问题
某公司有6个建筑工地,位置坐标为 单位: 某公司有 个建筑工地,位置坐标为(ai, bi) (单位:公里 个建筑工地 单位 公里), 单位: 水泥日用量d 单位 水泥日用量 i (单位:吨)
i a b d 1 1 .2 5 1 .2 5 3 2 8 .7 5 0 .7 5 5 3 0 .5 4 .7 5 4 4 5 .7 5 5 7 5 3 6 .5 6 6 7 .2 5 7 .7 5 11
集是一群相联系的对象,这些对象也称为集的成员。 集是一群相联系的对象,这些对象也称为集的成员。一个集可能 是一系列产品、卡车或雇员。 是一系列产品、卡车或雇员。每个集成员可能有一个或多个与之 有关联的特征,我们把这些特征称为属性。属性值可以预先给定, 有关联的特征,我们把这些特征称为属性。属性值可以预先给定, 也可以是未知的,有待于LINGO求解。例如,产品集中的每个产 求解。 也可以是未知的,有待于 求解 例如, 品可以有一个价格属性; 品可以有一个价格属性;雇员集中的每位雇员可以有一个薪水属 也可以有一个生日属性等等。 性,也可以有一个生日属性等等。
•对实际问题建模的时候,总会遇到一群或多群相联系 对实际问题建模的时候, 对实际问题建模的时候 的对象,比如工厂、消费者群体、交通工具和雇工等等。 的对象,比如工厂、消费者群体、交通工具和雇工等等。 LINGO允许把这些相联系的对象聚合成集(sets)。 允许把这些相联系的对象聚合成集( 允许把这些相联系的对象聚合成集 )。
LINGO优化软件 优化软件 学习课件
LINGO软件简介 软件简介
LINGO模型的优点 模型的优点
•包含了 包含了LINDO的全部功能 包含了 的全部功能 •提供了灵活的编程语言(矩阵生成器) 提供了灵活的编程语言( 提供了灵活的编程语言 矩阵生成器)
优化问题与LINGO软件1 PPT
距离 粮站
粮库
B1 B2 B3
A1
12 24 8
A2
30 12 24
解:设A1,A2调运到三个粮站的大米分别为x1, x2, x3, x4, x5, x6吨。
题设量可总到下表:
粮距库离及运量粮站 B1
B2
B3
库 存 量
A1
12
24
8
x1 x2 x3 4
A2
30
12
24
x4 x5 x6 8
需要量
245
【例4】 选址问题
某公司拟定在,汉 在口 武 ,汉昌阳建立专,拟 卖议 店中
有7个地址 :中商 (A1),亚贸 (A2),司门(口 A3),武广 (A4),步 行街 (A5),二十一世 (A6纪 ),汉商 (A7),并规定 :武昌至2多 个,汉 口 汉 阳1至 个,少 若 选 Ai ,投 资 bi元,每 年 可 获 ci元 利 , 总投资不b超 元,过 问如何选择地址的使年公利司润?最大
ci为 单 位 成 本 ,
4
3
j
j
mifn e c j x j j1
xi di
j 1 i1
i 1
j1
生4个产月成总本
j
j
xi di
i1
i 1
第共jj+31个个1月,月2的,3的库库存存费量 费
s.t.
0
xi
4
4
xi di
i1
i1
100且为正
整
数i
4到个本月月总总生生产产量量等 大于于等总于销销售售量量
100
【例6】阶段生产问题
某公司生产某产品,最大生产能力为100单位,每单位 存储费2元,预定的销售量与单位成本如下:
lingo入门-PPT课件
x11+x12+x13+x14=16; x21+x22+x23+x24=10; x31+x32+x33+x34=22; x11+x21+x31=8; x12+x22+x32=14; x13+x23+x33=12; x14+x24+x34=14;
Global optimal solution found at iteration:
y 1 ,y 1 ',y 2,y 2',y 3,y 3' 0
(3)min max(x1,x2,x3);
s.t.xx11
x2 x3 10, 3x2 2x3 12.
最高分越低越好!!
解 令 yma1x ,x2(,xx3),则此约束的充分条件是
yx 1 ,yx 2,yx 3 .
2、Lindo/Lingo软件内部有以下4个求解程序用于求解 不同类型的优化模型
(1)直接求解器(Direct Solver);
(2)线性优化求解程序(Linear Solver);
(3)非线性优化求解程序(Nonlinear Solver);
(4)分支定界管理程序(Branch and Bound Manager)。
6
Objective value:
244.0000
Variable X11 X12 X13 X14 X21 X22 X23 X24 X31 X32 X33 X34
Value 4.000000 0.000000 12.00000 0.000000 4.000000 0.000000 0.000000 6.000000 0.000000 14.00000 0.000000 8.000000
Global optimal solution found at iteration:
y 1 ,y 1 ',y 2,y 2',y 3,y 3' 0
(3)min max(x1,x2,x3);
s.t.xx11
x2 x3 10, 3x2 2x3 12.
最高分越低越好!!
解 令 yma1x ,x2(,xx3),则此约束的充分条件是
yx 1 ,yx 2,yx 3 .
2、Lindo/Lingo软件内部有以下4个求解程序用于求解 不同类型的优化模型
(1)直接求解器(Direct Solver);
(2)线性优化求解程序(Linear Solver);
(3)非线性优化求解程序(Nonlinear Solver);
(4)分支定界管理程序(Branch and Bound Manager)。
6
Objective value:
244.0000
Variable X11 X12 X13 X14 X21 X22 X23 X24 X31 X32 X33 X34
Value 4.000000 0.000000 12.00000 0.000000 4.000000 0.000000 0.000000 6.000000 0.000000 14.00000 0.000000 8.000000
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例如: “sub x1 10”的作用等价于“x1<=10”
但用“SUB”和“SLB”表示的上下界约束不计入模 型的约束,也不能给出其松紧判断和敏感性分析。
14. “END”后对0-1变量说明:INT n 或 INT name
15. “END”后对整数变量说明:GIN n 或 GIN name
LINGO软件简介
10. 表达式中不接受括号“( )”和逗号“,”等任何符号, 例: 400(X1+X2)需写为400X1+400X2
11. 表达式应化简,如2X1+3X2- 4X1应写成 -2X1+3X2
12. 缺省假定所有变量非负;可在模型的“END”语句 后用“FREE name”将变量name的非负假定取消
13. 可在 “END”后用“SUB” 或“SLB” 设定变量上 下界
(V6.1)
LINGO: Linear INteractive General OptimizNDO Application Programming Interface (V2.0)
What’s Best!: (SpreadSheet e.g. EXCEL)
[: attribute_list];
束 7. 行中注有“!”符号的后面部分为注释。如:
! It’s Comment. 8. 在模型的任何地方都可以用“TITLE” 对模型命名
(最多72个字符),如:
TITLE This Model is only an Example
使用LINDO的一些注意事项
9. 变量不能出现在一个约束条件的右端
s.t. gi (x) 0, i 1,2, m
x~决策变量
f(x)~目标函数 gi(x)0~约束条件
数学规划
线性规划(LP) 二次规划(QP) 非线性规划(NLP)
0-1整数规划 一般整数规划
纯整数规划(PIP) 混合整数规划(MIP)
连续规划
整数规划(IP)
LINDO 公司软件产品简要介绍
LINDO/LINGO预处理程序 LP QP NLP IP 全局优化(选)
分枝定界管理程序
ILP IQP INLP
线性优化求解程序 非线性优化求解程序
1. 单纯形算法 2. 内点算法(选)
1、顺序线性规划法(SLP) 2、广义既约梯度法(GRG) (选) 3、多点搜索(Multistart) (选)
(V7.0)
演示(试用)版、学生版、高级版、超级版、工业版、 扩展版… (求解问题规模和选件不同)
LINDO和LINGO软件能求解的优化模 型
优化模型
连续优化
整数规划(IP)
线性规划 二次规划
(LP)
(QP)
LINDO
非线性规划 (NLP)
LINGO
LINDO/LINGO软件的求解过程
1. 确定常数 2. 识别类型
目标函数 约束条件
Max z 72 x1 64 x2 线性
x1 x2 50
12 x1 8x2 480
3x1 100
规划 模型 (LP)
x1, x2 0
LINDO 6.1
模型求解
软件实现
max 72x1+64x2 st 2)x1+x2<50
3)12x1+8x2<480
X2
30.000000
0.000000
ROW SLACK OR SURPLUS DUAL PRICES
2)
0.000000
48.000000
3)
0.000000
2.000000
4) 40.000000
0.000000
NO. ITERATIONS= 2
建模时需要注意的几个基本问题
1、尽量使用实数优化,减少整数约束和整数变量 2、尽量使用光滑优化,减少非光滑约束的个数
美国芝加哥(Chicago)大学的Linus Schrage教授于1980 年前后开发, 后来成立 LINDO系统公司(LINDO Systems Inc.), 网址:
LINDO: Linear INteractive and Discrete Optimizer
LINGO模型的优点
•包含了LINDO的全部功能 •提供了灵活的编程语言(矩阵生成器)
LINGO模型的构成:4个段
•目标与约束段 • 集合段(SETS ENDSETS) • 数据段(DATA ENDDATA) •初始段(INIT ENDINIT)
集合的类型
setname(parent_set_list) [/member_list/]
4)3x1<100
end
模型求解
max 72x1+64x2 st 2)x1+x2<50 3)12x1+8x2<480 4)3x1<100 end
OBJECTIVE FUNCTION VALUE
1)
3360.000
VARIABLE VALUE REDUCED COST
X1
20.000000
0.000000
2、LINGO: 掌握集合(SETS)的应用; 正确阅读求解报告; 正确理解求解状态窗口; 学会设置基本的求解选项(OPTIONS) ; 掌握与外部文件的基本接口方法
使用LINDO的一些注意事项
1. “>”(或“<”)号与“>=”(或“<=”)功能相同 2. 变量与系数间可有空格(甚至回车), 但无运算符 3. 变量名以字母开头,不能超过8个字符 4. 变量名不区分大小写(包括LINDO中的关键字) 5. 目标函数所在行是第一行,第二行起为约束条件 6. 行号(行名)自动产生或人为定义。行名以“)”结
如:尽量少使用绝对值、符号函数、多个变量求 最大/最小值、四舍五入、取整函数等 3、尽量使用线性模型,减少非线性约束和非线性变 量的个数 (如x/y <5 改为x<5y) 4、合理设定变量上下界,尽可能给出变量初始值 5、模型中使用的参数数量级要适当 (如小于103)
需要掌握的几个重要方面
1、LINDO: 正确阅读求解报告(尤其要掌握敏感性分析)
优化模型与LINDO/LINGO优化软件
简要提纲
• 优化模型简介 • LINDO公司的主要软件产品及功能简介 • LINDO软件的使用简介 • LINGO软件的使用简介 • 建模与求解实例(结合软件使用)
优化模型
实际问题中 Min(或Max) z f (x), x (x1, xn)T
的优化模型
但用“SUB”和“SLB”表示的上下界约束不计入模 型的约束,也不能给出其松紧判断和敏感性分析。
14. “END”后对0-1变量说明:INT n 或 INT name
15. “END”后对整数变量说明:GIN n 或 GIN name
LINGO软件简介
10. 表达式中不接受括号“( )”和逗号“,”等任何符号, 例: 400(X1+X2)需写为400X1+400X2
11. 表达式应化简,如2X1+3X2- 4X1应写成 -2X1+3X2
12. 缺省假定所有变量非负;可在模型的“END”语句 后用“FREE name”将变量name的非负假定取消
13. 可在 “END”后用“SUB” 或“SLB” 设定变量上 下界
(V6.1)
LINGO: Linear INteractive General OptimizNDO Application Programming Interface (V2.0)
What’s Best!: (SpreadSheet e.g. EXCEL)
[: attribute_list];
束 7. 行中注有“!”符号的后面部分为注释。如:
! It’s Comment. 8. 在模型的任何地方都可以用“TITLE” 对模型命名
(最多72个字符),如:
TITLE This Model is only an Example
使用LINDO的一些注意事项
9. 变量不能出现在一个约束条件的右端
s.t. gi (x) 0, i 1,2, m
x~决策变量
f(x)~目标函数 gi(x)0~约束条件
数学规划
线性规划(LP) 二次规划(QP) 非线性规划(NLP)
0-1整数规划 一般整数规划
纯整数规划(PIP) 混合整数规划(MIP)
连续规划
整数规划(IP)
LINDO 公司软件产品简要介绍
LINDO/LINGO预处理程序 LP QP NLP IP 全局优化(选)
分枝定界管理程序
ILP IQP INLP
线性优化求解程序 非线性优化求解程序
1. 单纯形算法 2. 内点算法(选)
1、顺序线性规划法(SLP) 2、广义既约梯度法(GRG) (选) 3、多点搜索(Multistart) (选)
(V7.0)
演示(试用)版、学生版、高级版、超级版、工业版、 扩展版… (求解问题规模和选件不同)
LINDO和LINGO软件能求解的优化模 型
优化模型
连续优化
整数规划(IP)
线性规划 二次规划
(LP)
(QP)
LINDO
非线性规划 (NLP)
LINGO
LINDO/LINGO软件的求解过程
1. 确定常数 2. 识别类型
目标函数 约束条件
Max z 72 x1 64 x2 线性
x1 x2 50
12 x1 8x2 480
3x1 100
规划 模型 (LP)
x1, x2 0
LINDO 6.1
模型求解
软件实现
max 72x1+64x2 st 2)x1+x2<50
3)12x1+8x2<480
X2
30.000000
0.000000
ROW SLACK OR SURPLUS DUAL PRICES
2)
0.000000
48.000000
3)
0.000000
2.000000
4) 40.000000
0.000000
NO. ITERATIONS= 2
建模时需要注意的几个基本问题
1、尽量使用实数优化,减少整数约束和整数变量 2、尽量使用光滑优化,减少非光滑约束的个数
美国芝加哥(Chicago)大学的Linus Schrage教授于1980 年前后开发, 后来成立 LINDO系统公司(LINDO Systems Inc.), 网址:
LINDO: Linear INteractive and Discrete Optimizer
LINGO模型的优点
•包含了LINDO的全部功能 •提供了灵活的编程语言(矩阵生成器)
LINGO模型的构成:4个段
•目标与约束段 • 集合段(SETS ENDSETS) • 数据段(DATA ENDDATA) •初始段(INIT ENDINIT)
集合的类型
setname(parent_set_list) [/member_list/]
4)3x1<100
end
模型求解
max 72x1+64x2 st 2)x1+x2<50 3)12x1+8x2<480 4)3x1<100 end
OBJECTIVE FUNCTION VALUE
1)
3360.000
VARIABLE VALUE REDUCED COST
X1
20.000000
0.000000
2、LINGO: 掌握集合(SETS)的应用; 正确阅读求解报告; 正确理解求解状态窗口; 学会设置基本的求解选项(OPTIONS) ; 掌握与外部文件的基本接口方法
使用LINDO的一些注意事项
1. “>”(或“<”)号与“>=”(或“<=”)功能相同 2. 变量与系数间可有空格(甚至回车), 但无运算符 3. 变量名以字母开头,不能超过8个字符 4. 变量名不区分大小写(包括LINDO中的关键字) 5. 目标函数所在行是第一行,第二行起为约束条件 6. 行号(行名)自动产生或人为定义。行名以“)”结
如:尽量少使用绝对值、符号函数、多个变量求 最大/最小值、四舍五入、取整函数等 3、尽量使用线性模型,减少非线性约束和非线性变 量的个数 (如x/y <5 改为x<5y) 4、合理设定变量上下界,尽可能给出变量初始值 5、模型中使用的参数数量级要适当 (如小于103)
需要掌握的几个重要方面
1、LINDO: 正确阅读求解报告(尤其要掌握敏感性分析)
优化模型与LINDO/LINGO优化软件
简要提纲
• 优化模型简介 • LINDO公司的主要软件产品及功能简介 • LINDO软件的使用简介 • LINGO软件的使用简介 • 建模与求解实例(结合软件使用)
优化模型
实际问题中 Min(或Max) z f (x), x (x1, xn)T
的优化模型