Lingo的基本使用方法

上传人:资****亨 文档编号:133595500 上传时间:2020-05-28 格式:PPT 页数:150 大小:1.67MB
返回 下载 相关 举报
Lingo的基本使用方法_第1页
第1页 / 共150页
Lingo的基本使用方法_第2页
第2页 / 共150页
Lingo的基本使用方法_第3页
第3页 / 共150页
Lingo的基本使用方法_第4页
第4页 / 共150页
Lingo的基本使用方法_第5页
第5页 / 共150页
点击查看更多>>
资源描述

《Lingo的基本使用方法》由会员分享,可在线阅读,更多相关《Lingo的基本使用方法(150页珍藏版)》请在金锄头文库上搜索。

1、 LINGO软件的基本使用方法 LINGO软件的功能与特点 LINGO模型的功能 集成了线性 非线性 连续 整数 优化功能具有多点搜索 全局优化功能提供了灵活的编程语言 矩阵生成器 可方便地输入模型提供与其他数据文件的接口提供与其他编程语言的接口LINDOAPI可用于自主开发运行速度较快 最优化是工程技术 经济管理 科学研究 社会生活中经常遇到的问题 如 优化模型和算法的重要意义 结构设计 资源分配 生产计划 运输方案 解决优化问题的手段 经验积累 主观判断 作试验 比优劣 建立数学模型 求解最优策略 最优化 在一定条件下 寻求使目标最大 小 的决策 LPQPNLPIP全局优化 选 ILPIQ

2、PINLP LINGO软件的求解过程 LINGO预处理程序 线性优化求解程序 非线性优化求解程序 分枝定界管理程序 1 确定常数2 识别类型 1 单纯形算法2 内点算法 选 1 顺序线性规划法 SLP 2 广义既约梯度法 GRG 选 3 多点搜索 Multistart 选 建模时需要注意的几个基本问题 1 尽量使用实数优化 减少整数约束和整数变量2 尽量使用光滑优化 减少非光滑约束的个数如 尽量少使用绝对值 符号函数 多个变量求最大 最小值 四舍五入 取整函数等3 尽量使用线性模型 减少非线性约束和非线性变量的个数 如x y 5改为x 5y 4 合理设定变量上下界 尽可能给出变量初始值5 模型

3、中使用的参数数量级要适当 如小于103 内容提要 LINGO入门2 在LINGO中使用集合3 运算符和函数4 LINGO的主要菜单命令5 LINGO命令窗口6 习题 1 LINGO入门 LINGO入门2 在LINGO中使用集合3 运算符和函数4 LINGO的主要菜单命令5 LINGO命令窗口6 习题 LINGO软件的主要特色 两种命令模式 Windows模式 通过下拉式菜单命令驱动LINGO运行 多数菜单命令有快捷键 常用的菜单命令有快捷按钮 图形界面 使用方便 命令行模式 仅在命令窗口 CommandWindow 下操作 通过输入行命令驱动LINGO运行 这里主要介绍这种模式 LINGO11

4、 0功能增强 性能稳定 解答结果可靠 LINGO软件主要具有两大优点 内置建模语言 允许以简练 直观的方式描述较大规模的优化问题 所需的数据可以以一定格式保存在独立的文件中 可用于求解经典的数学规划问题 包括非线性整数规划问题 LINGO的界面 LINGO软件的主窗口 用户界面 所有其他窗口都在这个窗口之内 模型窗口 ModelWindow 用于输入LINGO优化模型 即LINGO程序 状态行 最左边显示 Ready 表示 准备就绪 当前时间 当前光标的位置 一个简单的LINGO程序 例1直接用LINGO来解如下二次规划问题 输入窗口如下 程序语句输入的备注 LINGO总是根据 MAX 或 M

5、IN 寻找目标函数 而除注释语句和TITLE语句外的其他语句都是约束条件 因此语句的顺序并不重要 限定变量取整数值的语句为 GIN X1 和 GIN X2 不可以写成 GIN 2 否则LINGO将把这个模型看成没有整数变量 LINGO中函数一律需要以 开头 其中整型变量函数 BIN GIN 和上下界限定函数 FREE SUB SLB 与LINDO中的命令类似 而且0 1变量函数是 BIN函数 输出结果 运行菜单命令 LINGO Solve 最优整数解X 35 65 最大利润 11077 5 输出结果备注 通过菜单 WINDOW StatusWindow 看到状态窗口 可看到最佳目标值 Best

6、Obj 与问题的上界 ObjBound 已经是一样的 当前解的最大利润与这两个值非常接近 是计算误差引起的 如果采用全局最优求解程序 后面介绍 可以验证它就是全局最优解 LINGO是将它作为PINLP 纯整数非线性规划 来求解 因此找到的是局部最优解 运行状态窗口 Variables 变量数量 变量总数 Total 非线性变量数 Nonlinear 整数变量数 Integer Constraints 约束数量 约束总数 Total 非线性约束个数 Nonlinear Nonzeros 非零系数数量 总数 Total 非线性项系数个数 Nonlinear GeneratorMemoryUsed

7、K 内存使用量 ElapsedRuntime hh mm ss 求解花费的时间 运行状态窗口 求解器 求解程序 状态框 当前模型的类型 LP QP ILP IQP PILP PIQP NLP INLP PINLP 以I开头表示IP 以PI开头表示PIP 当前解的状态 GlobalOptimum LocalOptimum Feasible Infeasible 不可行 Unbounded 无界 Interrupted 中断 Undetermined 未确定 解的目标函数值 当前约束不满足的总量 不是不满足的约束的个数 实数 即使该值 0 当前解也可能不可行 因为这个量中没有考虑用上下界命令形式给

8、出的约束 目前为止的迭代次数 运行状态窗口 扩展的求解器 求解程序 状态框 使用的特殊求解程序 B and B 分枝定界算法 Global 全局最优求解程序 Multistart 用多个初始点求解的程序 目前为止找到的可行解的最佳目标函数值 目标函数值的界 特殊求解程序当前运行步数 分枝数 对B and B程序 子问题数 对Global程序 初始点数 对Multistart程序 有效步数 注 凡是可以从一个约束直接解出变量取值时 这个变量就不认为是决策变量而是固定变量 不列入统计中 只含有固定变量的约束也不列入约束统计中 运行状态窗口 一个简单的LINGO程序 LINGO的基本用法的几点注意事

9、项 LINGO中不区分大小写字母 变量和行名可以超过8个字符 但不能超过32个字符 且必须以字母开头 用LINGO解优化模型时已假定所有变量非负 除非用限定变量取值范围的函数 free或 sub或 slb另行说明 变量可以放在约束条件的右端 同时数字也可放在约束条件的左端 但为了提高LINGO求解时的效率 应尽可能采用线性表达式定义目标和约束 如果可能的话 语句是组成LINGO模型的基本单位 每个语句都以分号结尾 编写程序时应注意模型的可读性 例如 一行只写一个语句 按照语句之间的嵌套关系对语句安排适当的缩进 增强层次感 以感叹号开始的是说明语句 说明语句也需要以分号结束 LINGO的文件类型

10、 LG4 LINGO格式的模型文件 保存了模型窗口中所能够看到的所有文本和其他对象及其格式信息 LNG 文本格式的模型文件 不保存模型中的格式信息 如字体 颜色 嵌入对象等 LDT LINGO数据文件 LTF LINGO命令脚本文件 LGR LINGO报告文件 LTX LINDO格式的模型文件 MPS 表示MPS 数学规划系统 格式的模型文件 除 LG4 文件外 另外几种格式的文件都是普通的文本文件 可以用任何文本编辑器打开和编辑 2 在LINGO中使用集合 LINGO入门2 在LINGO中使用集合3 运算符和函数4 LINGO的主要菜单命令5 LINGO命令窗口6 习题 集合的基本用法和LI

11、NGO模型的基本要素 理解LINGO建模语言最重要的是理解集合 Set 及其属性 Attribute 的概念 例2SAILCO公司需要决定下四个季度的帆船生产量 下四个季度的帆船需求量分别是40条 60条 75条 25条 这些需求必须按时满足 每个季度正常的生产能力是40条帆船 每条船的生产费用为400美元 如果加班生产 每条船的生产费用为450美元 每个季度末 每条船的库存费用为20美元 假定生产提前期为0 初始库存为10条船 如何安排生产可使总费用最小 用DEM RP OP INV分别表示需求量 正常生产的产量 加班生产的产量 库存量 则DEM RP OP INV对每个季度都应该有一个对应

12、的值 也就说他们都应该是一个由4个元素组成的数组 其中DEM是已知的 而RP OP INV是未知数 问题的模型 可以看出是LP模型 目标函数是所有费用的和 约束条件主要有两个 1 能力限制 2 产品数量的平衡方程 加上变量的非负约束 注 LINGO中没有数组 只能对每个季度分别定义变量 如正常产量就要有RP1 RP2 RP3 RP44个变量等 写起来就比较麻烦 尤其是更多 如1000个季度 的时候 记四个季度组成的集合QUARTERS 1 2 3 4 它们就是上面数组的下标集合 而数组DEM RP OP INV对集合QUARTERS中的每个元素1 2 3 4分别对应于一个值 LINGO正是充分

13、利用了这种数组及其下标的关系 引入了 集合 及其 属性 的概念 把QUARTERS 1 2 3 4 称为集合 把DEM RP OP INV称为该集合的属性 即定义在该集合上的属性 集合及其属性 集合元素及集合的属性确定的所有变量 LINGO中定义集合及其属性 LP模型在LINGO中的一个典型输入方式 以 MODEL 开始 以 END 结束 给出优化目标和约束 目标函数的定义方式 SUM 集合 下标 关于集合的属性的表达式 对语句中冒号 后面的表达式 按照 前面的集合指定的下标 元素 进行求和 本例中目标函数也可以等价地写成 SUM QUARTERS i 400 RP i 450 OP i 20

14、 INV i SUM 相当于求和符号 QUARTERS i 相当于 iQUARTERS 的含义 由于本例中目标函数对集合QUARTERS的所有元素 下标 都要求和 所以可以将下标i省去 约束的定义方式 循环函数 FOR 集合 下标 关于集合的属性的约束关系式 对冒号 前面的集合的每个元素 下标 冒号 后面的约束关系式都要成立 本例中 每个季度正常的生产能力是40条帆船 这正是语句 FOR QUARTERS I RP I 40 的含义 由于对所有元素 下标I 约束的形式是一样的 所以也可以像上面定义目标函数时一样 将下标i省去 这个语句可以简化成 FOR QUARTERS RP 40 本例中 对

15、于产品数量的平衡方程 由于下标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 是逻辑运算符号 意思是 大于 GreaterThan的字首字母

16、缩写 约束的定义方式 问题的求解 运行菜单命令 LINGO Solve 最小成本 78450 注 由于输入中没有给出行名 所以行名是系统自动按照行号1 9生成的 选择菜单命令 LINGO Generate Displymodel Ctrl G 可以得到展开形式的模型 如图 可以看到完整的模型 也能确定行号 行号放在方括号 中 且数字前面带有下划线 最好在输入模型时用户主动设定约束的行名 即约束名 使程序清晰些 单一约束的行名设置方法就是将行名放在方括号 中 置于约束之前 后面将结合具体例子介绍在使用集合的情况下如何设置行名 小结 LINGO模型最基本的组成要素 一般来说 LINGO中建立的优化模型可以由五个部分组成 或称为五 段 SECTION 1 集合段 SETS 以 SETS 开始 ENDSETS 结束 定义必要的集合变量 SET 及其元素 MEMBER 含义类似于数组的下标 和属性 ATTRIBUTE 含义类似于数组 如上例中定义了集合quarters 含义是季节 它包含四个元素即四个季节指标 1 2 3 4 每个季节都有需求 DEM 正常生产量 RP 加班生产量 OP 库存量

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号