全国数学建模lingo实例讲解
Delta(线性化-6设置线性化的误差限(缺省值为10)。 的误差限) Allow Unrestricted Use of Primitive Set Member Names (允许无限制地使用基本集合的成员名) 选择该选项可以保持与LINGO4.0以前的版本兼容:即允许使用基本集合的成员名称直接作为该成员在该集合的索引值(LINGO4.0以后的版本要求使用@INDEX函数)。 Check for Duplicate Names in 选择该选项,LINGO将检查数据和模型中的名称是Data and Model(检查数据和模否重复使用,如基本集合的成员名是否与决策变型中的名称是否重复使用) 量名重复。 Use R/C format names for MPS 在MPS文件格式的输入输出中,将变量和行名转I/O (在MPS文件格式的输入输换为R/C格式 出中使用R/C格式的名称) (3)Linear Solver(线性求解器)选项卡 选项组 选项 含义 求解时的算法,有四种可能的设置: ·Solver Decides:LINGO自动选择算法 (缺省设置) ·Primal Simplex:原始单纯形法 ·Dual Simplex:对偶单纯形法 ·Barrier: 障碍法 (即内点法) Method 求解方法 Initial Linear Feasibility 控制线性模型中约束满足的初始误差限(缺省值-6Tol 初始线性可行性误差限 为3*10) Final Linear Feasibility 控制线性模型中约束满足的最后误差限(缺省值-7Tol. 最后线性可行性误差限 为10) 控制是否检查模型中的无关变量,从而降低模型的规模: Model Reduction ·Off:不检查 模型降维 ·On:检查 ·Solver Decides:LINGO自动决定(缺省设置) 有三种可能的设置: ·Solver Decides:LINGO自动决定(缺省设置) ·Partial:LINGO 对一部分可能的出基变量进行Primal Solver 尝试 原始单纯形法 ·Devex:用Steepest-Edge(最陡边)近似算法对所有可能的变量进行尝试,找到使目标值下降最多的出基变量 有三种可能的设置: ·Solver Decides:LINGO自动决定(缺省设置) Dual Solver·Dantzig:按最大下降比例法确定出基变量 对偶单纯形法 ·Steepest-Edge:最陡边策略,对所有可能的变量进行尝试,找到使目标值下降最多的出基变量 选择该选项,LINGO将尝试将一个大模型分解为26
Pricing Strategies 价格策略(决定出基变量的策略) Matrix Decomposition
全国数学建模lingo实例讲解
矩阵分解 Scale Model 模型尺度的改变 几个小模型求解;否则不尝试 选择该选项,LINGO检查模型中的数据是否平衡(数量级是否相差太大)并尝试改变尺度使模型平衡;否则不尝试 (4)Nonlinear Solver(非线性求解器)选项卡 选项组 选项 含义 Initial Nonlinear -3Feasibility Tol. 初始非线性控制模型中约束满足的初始误差限(缺省值为10) 可行性误差限 Final Nonlinear Feasibility -6控制模型中约束满足的最后误差限(缺省值为10) Tol. 最后非线性可行性误差限 Nonlinear Optimality Tol. 非线性规划的最优性误差限 当目标函数在当前解的梯度小于等于这个值以后,停止迭代(缺省值为2*10) -7Slow Progress Iteration 当目标函数在连续这么多次迭代没有显著改进以Limit缓慢改进的迭代次数的上后,停止迭代(缺省值为5) 限 Derivatives 导数 Numerical 数值法 Analytical 解析法 用有限差分法计算数值导数(缺省值) 用解析法计算导数(仅对只含有算术运算符的函数使用) Crash Initial 选择该选项, LINGO将用启发式方法生成初始解;Solution 否则不生成(缺省值) 生成初始解 Quadratic 选择该选项, LINGO将判别模型是否为二次规划,Recognition 若是则采用二次规划算法(包含在线性规划的内点识别二次规划 法中);否则不判别(缺省值) Selective Constraint Eval 有选择地检查约束 SLP Directions SLP方向 选择该选项, LINGO在每次迭代时只检查必须检查的约束(如果有些约束函数在某些区域没有定义,这样做会出现错误);否则,检查所有约束(缺省值) 选择该选项, LINGO在每次迭代时用SLP (Successive LP,逐次线性规划)方法寻找搜索方向(缺省值) Strategies 策略 选择该选项, LINGO在每次迭代时将对所有可能的Steepest Edge 变量进行尝试,找到使目标值下降最多的变量进行最陡边策略 迭代;缺省值为不使用最陡边策略 (5)Integer Pre-Solver(整数预处理求解器)选项卡 选项组 Heuristics 启发式方法 选项 Level Min Seconds 含义 控制采用启发式搜索的次数(缺省值为3,可能的值为0-100). 启发式方法的目的是从分枝节点的连续解出发,搜索一个好的整数解。 每个分枝节点使用启发式搜索的最小时间(秒) 27
全国数学建模lingo实例讲解
Probing Level 探测水平(级别) 控制采用探测(Probing)技术的级别(探测能够用于混合整数线性规划模型,收紧变量的上下界和约束的右端项的值)。可能的取值为: ·Solver Decides:LINGO自动决定(缺省设置) ·1-7:探测级别逐步升高。 控制在分枝定界树中,哪些节点需要增加割(平面),可能的取值为: ·Root Only:仅根节点增加割(平面) ·All Nodes:所有节点均增加割(平面) ·Solver Decides:LINGO自动决定(缺省设置) 控制生成的割(平面)的个数相对于原问题的约束个数的上限(比值),缺省值为0.75 为了寻找合适的割,最大迭代检查的次数。有两个参数: ·Root:对根节点的次数(缺省值为200) ·Tree:对其他节点的次数(缺省值为2) Application 应用节点 Constraint Cuts 约束的割(平面) Relative Limit 相对上限 Max Passes 最大迭代检查的次数 Types 类型 控制生成的割(平面)的策略,共有12种策略可供选择。 (如想了解细节,请参阅整数规划方面的专著) (6)Integer Solver(整数求解器)选项卡 整数预处理程序只用于整数线性规划模型(ILP模型),对连续规划和非线性模型无效。
选项组 选项 含义 控制分枝策略中优先对变量取整的方向,有三种选择: ·Both:LINGO自动决定(缺省设置) ·Up:向上取整优先 ·Down:向下取整优先 控制分枝策略中优先对哪些变量进行分枝,有两种选择: ·LINGO Decides:LINGO自动决定(缺省设置) ·Binary:二进制(0-1)变量优先 当变量与整数的绝对误差小于这个值时,该变量-6被认为是整数。缺省值为10 当变量与整数的相对误差小于这个值时,该变量-6被认为是整数。缺省值为8*10 当以前面的求解结果为基础,热启动求解程序时采用的算法,有四种可能的设置: ·LINGO Decides:LINGO自动选择算法(缺省设置) ·Primal Simplex:原始单纯形法 ·Dual Simplex:对偶单纯形法 ·Barrier: 障碍法 (即内点法) Direction Branching 分枝 Priority Absolute Integrality 绝对误差限 整性 Relative 相对误差限 LP Solver Warm Start LP求解程序 热启动 28
全国数学建模lingo实例讲解
Cold Start 冷启动 Absolute 目标函数的绝对误差限 Optimality Relative 最优性 目标函数的相对误差限 当不以前面的求解结果为基础,冷启动求解程序时采用的算法,有四种可能的设置:(同上,略) 当当前目标函数值与最优值的绝对误差小于这个值时,当前解被认为是最优解(也就是说:只需要搜索比当前解至少改进这么多个单位的解)。缺-8省值为8*10 当当前目标函数值与最优值的相对误差小于这个值时,当前解被认为是最优解(也就是说:只需要搜索比当前解至少改进这么多百分比的解)。缺-8省值为5*10 Time To Relative 在程序开始运行后这么多秒内,不采用相对误差开始采用相对误限策略;此后才使用相对误差限策略。缺省值为差限的时间(秒) 100秒。 Hurdle 篱笆值 同上一章LINDO部分的介绍 控制如何选择节点的分枝求解,有以下选项: ·LINGO Decides: LINGO自动选择(缺省设置) Node Selection ·Depth First:按深度优先 节点选择 Tolerances ·Worst Bound:选择具有最坏界的节点 误差限 ·Best Bound:选择具有最好的界的节点 控制采用强分枝的层数。也就是说,对前这么多层的分枝,采用强分枝策略。所谓强分枝,就是在一个节点对多个变量分别尝试进行预分枝,找出其中最好的解(变量)进行实际分枝。 Strong Branch 强分枝的层数 (7)Global Solver(全局最优求解器)选项卡 选项组 选项 含义 选择该选项,LINGO将用全局最优求解程序Use Global Solver 求解模型,尽可能得到全局最优解(求解花使用全局最优求解费的时间可能很长);否则不使用全局最优求程序 解程序,通常只得到局部最优解 Global Solver 全局最优求解程序 有两个域可以控制变量上界(按绝对值): 1、 Value:设定变量的上界,缺省值为10; 2、 Application列表框设置这个界的三种 Upper 应用范围: ·None: 所有变量都不使用这个上界; ·All: 所有变量都使用这个上界; ·Selected:先找到第1个局部最优解,然后对满足这个上界的变量使用这个上界(缺省设置) 10Variable Bound 变量上界 29
全国数学建模lingo实例讲解
有两个域可以控制变量上界(按绝对值): Tolerances 误差限 1、 Optimality:只搜索比当前解至少改进这么多个单位的解(缺省值为10); 2、 Delta:全局最优求解程序在凸化过程中-7增加的约束的误差限(缺省值为10)。 可以控制全局最优求解程序的三类策略: 1、Branching:第1次对变量分枝时使用的分枝策略: ·Absolute Width(绝对宽度) ·Local Width(局部宽度) ·Global Width(全局宽度) ·Global Distance(全局距离) ·Abs (Absolute) Violation(绝对冲突) ·Rel (Relative) Violation(相对冲突,缺省设置) 2、Box Selection: 选择活跃分枝节点的方法: ·Depth First(深度优先) ·Worst Bound(具有最坏界的分枝优先,缺省设置) 3、Reformulation:模型重整的级别: ·None(不进行重整) ·Low(低) ·Medium(中) ·High(高,缺省设置) 尝试多少个初始点求解,有以下几种可能的设置: ·Solver Decides:由LINGO决定(缺省设置,对小规模NLP问题为5次,对大规模问题不使用多点求解) ·Off:不使用多点求解 ·N(>1的正整数):N点求解 ·Barrier: 障碍法 (即内点法) -6Strategies 策略 Multistart Solver 多初始点求解程序 Attempts 尝试次数 5.4 窗口菜单(Windows Menu) 1. 1. 命令行窗口(Open Command Window) 从窗口菜单中选用“Open Command Window”命令或直接按Ctrl+1可以打开LINGO的命令行窗口。在命令行窗口中可以获得命令行界面,在“:”提示符后可以输入LINGO的命令行命令。
2. 2. 状态窗口(Status Window)
从窗口菜单中选用“Status Window”命令或直接按Ctrl+2可以打开LINGO的求解状态窗口。
如果在编译期间没有表达错误,那么LINGO将调用适当的求解器来求解模型。当求解器开始运行时,它就会显示如下的求解器状态窗口(LINGO Solver Status)。
30