LINGO软件求解优化问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
x 2 y 2 z 30
3 x y 2 z 20
40
2x
y
10
z
50
x , y , z 0
• 2、求解非线性规划
m inf(x24y)2(12x)2
三、Lingo运算符和函数
1、运算符及其优先级
算术运算符 +-*/^
关系运算符 <(=) = >(=)
三、Lingo基本语法
1、定义了目标函数为MIN=.. MAX=.. 2、以一个分号“;”结尾
——除SETS, ENDSETS, DATA , ENDDATA, END之外 3、可以放在约束条件的右端,同时数字也可 放在约束条件的左端。 4、假定各变量非负。 5、注释:“!”
6、<、>为≤、≥
例1:加工奶制品的生产计 划
使用绝对值、符号函数、多个变量求最大/最小值、四舍 五入、取整函数等 • 尽量使用线性模型,减少非线性约束和非线性变量的个数 如x/y <5 改为x<5y • 合理设定变量上下界,尽可能给出变量初始值 • 模型中使用的参数数量级要适当
– 如小于103
练习
• 1、求解线性规划
min( 2 x 3 y 5 z )
SAS软件优化功能 其他
连续优化
离散:整数规划 IP: ILP PIP 0-1
线性规划 LP
二次规划 QP
非线性规划 NLP
LINDO
LINGO
优势:模型表述简单 求解引擎强大
数学规划模型
• 决策变量 x =(x1, x2, …, xn ) • 目标函数 Min Z = f (x)
• 约束条件 s.t x A ( Rn )
5、Options 7个选 项卡
• 可设置80-90个控制参数
❖ Interface界面 ❖General Solver通用求解
❖Linear Solver线性求解 ❖Nonlinear Solver非线性求解 ❖Integer Pre-Solver整数预处理
❖Integer Solver整数求解 ❖Global Solver全局最优求解
Help|Contents (F1) 在线帮助
File|Save (F4) 保存文件
Edit|Paste (Ctrl+V) 粘贴
Edit | Go To Line (Ctrl+T) 定位某行
LINGO|Picture (Ctrl 平铺窗口
File|New (F2) 新建文件
1桶 牛奶 或
12小时 8小时
3公斤A1 4公斤A2
获利24元/公斤 获利16元/公斤
每天:
50桶牛奶 时间480小 至多加工100公斤
时
A1
•制订生产计划,使每天获利最大
建模时需要注意的几个基本问题
1、尽量使用实数优化,减少整数约束和整数变量 2、尽量使用光滑优化,减少非光滑约束的个数
如:尽量少使用绝对值、符号函数、多个变量求 最大/最小值、四舍五入、取整函数等 3、尽量使用线性模型,减少非线性约束和非线性变 量的个数 (如x/y <5 改为x<5y) 4、合理设定变量上下界,尽可能给出变量初始值 5、模型中使用的参数数量级要适当 (如小于103)
0.000000
X2
30.00000
0.000000
Row Slack or Surplus Dual Price
end
1
3360.000
1.000000
三 原料无剩余 2
0.000000
48.00000
种 时间无剩余 3
0.000000
2.000000
资 源
加工能力剩余40
4
40.00000
0.000000
Info
• Edit
– Paste – Paste Special … – Match Parenthesis – Paste Function – Select Font – Insert New Object – Links – Object Properties
❖ LINGO LOOK Generate Picture File Generate Options
LINGO
数学规划软件
主讲:张森
LINGO软件
LINGO是用来求解线性和非线性优化问题的 简易工具。LINGO内置了一种建立最优化模
型的语言,可以简便地表达大规模问题, LINGO高效的求解器可快速求解并分析结果。
一、数学软件LINDO
LINGO——数学规划 软件
• 优化
MATLAB优化工具箱 EXCEL软件优化功能
小 汐 借 着 自 己最后 的一点 气息想 让林梓 维靠自 己更近 一点。 吓傻的 林梓维 正准备 靠 过 去 时 , 程韵从 车里跳 出来, 拉开了 林梓维 ,怒吼 道:“ 八婆, 要死赶 紧死, 别 碰我男 人!” 路旁的 观众, 吓得木 木地定 在那里 ,夏小 汐眼里 最后的 一丝光 芒,
• 望向林梓维,充满了绝望…… 警车和救护车在夏小汐死后片刻才刚来,程韵
被 带 入 警 局 ,但夏 小汐却 连上救 护车的 机会都 没有。 ..... “ 你 说 到 底是怎
样 激 烈 的 争 端,非 得要用 杀戮才 能解决 ?” 被 抓 进 警局 的瞬间 ,程韵 一下子 蒙 了 , 她 也 不知道 自己为 什么要 故意把 车驶向 夏小汐 ,她甚 至不知 道为什 么自己 为 什 么 开 始 撞向她 时她还 要故意 提速, 警官也 很是诧 异,怎 么就有 人能那 么大胆 在 光 天 化 日 之下故 意开车 撞人。 “ 你 为 什 么要开 车撞她 ?”警 官竖起 他的八
模 型
1桶 牛奶 或
12小时 8小时
3公斤A1 4公斤A2
获利24元/公斤 获利16元/公斤
每天 50桶牛奶 时间480小时 至多加工100公斤A1
决策变量 目标函数
x1桶牛奶生产A1 x2桶牛奶生产A2
获利 24×3x1
获利 16×4 x2
每天获利
Ma zx7x2 16x4 2
约束条件
原料供应 劳动时间 加工能力 非负约束
字 眉 严 肃 地 问程韵 。 “ 因 为 我 恨她 。”程 韵答得 时候很 自然, 丝毫没 有
界面
主窗口
状态栏
模型窗口 Model Window
当前光标 位置
当前时间
2、LINGO的工具 栏
File|Open (F3) 打开文件
File|Print (F7) 打印文件
Edit|Copy (Ctrl+C) 复制
Edit|Cut (Ctrl+X) 剪切
Edit|Redo (Ctrl+Y) 恢复操作
LINGO|Solve (Ctrl+S)
• 求解模型
Window|Send to Back (Ctrl+B) 窗口后置
上下文相 关的帮助
3、LINGO的菜单 栏
• File
– Export File… – User Database
Row Slack or Surplus Dual Price
1
3360.000
1.000000
2
0.000000
48.00000
3
0.000000
2.000000
4
40.00000
0.000000
reduced cost值表 示当该非基变量 增加一个单位时 (其他非基变量 保持不变)目标 函数减少的量(对 max型问题)
运行状 态
扩展 的求 解器 (求解 程序) 状态 框
使用的特殊求解程序 : B-and-B (分枝定界算法) Global (全局最优求解程序) Multistart(用多个初始点求解的程序)
目前为止找到的可行 解的最佳目标函数值
有效步数
目标函数值的界
特殊求解程序当前运行步数: 分枝数(对B-and-B程序); 子问题数(对Global程序); 初始点数(对Multistart程序)
x1 x2 50
12x18x2 480
3x1 100
x1,x2 0
求 解
M a x z 7 2 x1 6 4 x2 s .t
x1 x2 5 0
1
2
x1
8 3
x2 x1
480 100
x 1 , x 2 0
max=72*x1+64*x2; x1+x2<50; 12 * x1+8 * x2<480; 3 * x1<=100;
– 等式或不等式
数学规划
• 求解
– 线性:单纯形法 – 非线性:……
• LINGO专业软件
线性规划 整数规划 0-1规划
非线性规划 连续规划
二、Lingo的菜单及对话框
1、LINGO的界面
血 泊 里 , 从车 里收音 机里传 来宇桐 非的《 七月七 日记》 :“每 一次想 起都让 我 无 法 呼 吸 ,总是 会翻开 七月七 里的日 记,给 了我浪 漫开始 遗憾的 结局, 像流星 划 过的美 丽 ......” 林 梓维跪 在夏小 汐的身 边,看 着夏小 汐的泪 滴在了 自己掌 心。 说 不 出 的 疼 痛,说 不出的 悔恨, 说不出 的愧疚 …… “ 林 梓 维, 靠过来 。”夏
Edit|Find (Ctrl+F) 查找
Edit|Undo
(Ctrl+Z) 取消操作
Edit|Match Parenthesis
(Ctrl+P) 匹配括号
LINGO|Options (Ctrl+I) 选项设置
LINGO|Solution (Alt+O)显示解答
Window|Close All (Alt+X) 关闭所有窗口
3
0.000000
2.000000
4
40.00000
0.000000
• 20桶牛奶生产A1 • 30桶生产A2 • 利润3360元
结果
Objective value:
3360.000
Variable Value
Reduced Cost
X1
20.00000
0.000000
X2
30.00000
0.000000
4、LINGO的运行状态窗 口
Variables(变量数量): 变量总数(Total)、 非线性变量数(Nonlinear)、 整数变量数(Integer)。
Constraints(约束数量): 约束总数(Total)、 非线性约束个数(Nonlinear)。
Nonzeros(非零系数数量): 总数(Total)、 非线性项系数个数(Nonlinear)
解的目标函数值
当前解的状态 : "Global
Optimum", "Local Optimum", "Feasible", "Infeasible“(不可行), "Unbounded“(无界), "Interrupted“(中断), "Undetermined“(未确定)
目前为止的 迭代次数
当前约束不满足的总量(不是不 满足的约束的个数):实数(即使 该值=0,当前解也可能不可行, 因为这个量中没有考虑用上下界 命令形式给出的约束)
结果
Objective value:
3360.000
Variable Value
Reduced Cost
X1
20.00000
0.000000
X2
30.00000
0.000000
Row Slack or Surplus Dual Price
1
3360.000
1.000000
2
0.000000
48.00000
Generator Memory Used (K) (内存使用 量)
• Elapsed Runtime (hh:mm:ss) (求解花费的时间)
运行状 态
求解 器(求 解程 序)状 态框
当前模型的类型 :LP,QP,ILP,IQP,PILP, PIQP,NLP,INLP,PINLP (以I开头表示 IP,以PI开头表示PIP)
“资源” 剩余为零的约束为紧约束(有效约束)
结果解
释
Objective value:
3360.000
Variable Value Reduced Cost
X1
20.00000
0.000000
X2
30.00000
0.000000
最优解下“资源”增 加1单位时“效益”的
增量
Row Slack or Surplus Dual Price
1
3360.000
1.000000
影子价格
2
0.000000
48.00000 原料增1单位, 利润增48
3
0.000000
2.000000 时间加1单位, 利润增2
4
40.00000
0.000000 能力增减不影响利润
建模时需要注意的几个基本问题
• 尽量使用实数优化,减少整数约束和整数变量 • 尽量使用光滑优化,减少非光滑约束的个数 如:尽量少
也可理解为:
为了使该非基变 量变成基变量, 目标函数中对应 系数应增加的量
结果解
释
max 72x1+64x2 st 2)x1+x2<50 3)12x1+8x2<480 4)3x1<100
Objective value:
3360.000
Variable Value Reduced Cost
X1
20.00000