LINDO(Linear, INteractive, and Discrete Optimizer)是一个解决二次线性整数规划问题的方便而强大的工具。这些问题主要出现在商业、工业、研究和政府等领域。已被证实LINDO能在其中发挥巨大作用的具体事务包括:产品分销、成分混合、生产与个人事务安排、存货管理……在这里不一一列举,但可以肯定的是,LINDO可以大展拳脚的领域是多不胜数的。LINDO的主要设计原则是,如果一个用户只是想解决一个简单的问题,就不应该在学习LINDO的基本特性上花费太多的准备成本。例如,某个用户想解决以下这样一个问题:(看懂这个问题需要一定的运筹学知识,下面是一个实际问题的数学模型)
很好,我们已经对X和Y加以限制了。再假设我们只有有限的劳动力,如16单位的劳动力,产品X需要一个单位而Y需要两个单位。现在我们继续加上一条约束条件:X + 2 Y < 16。最后,我们在另一行加上END字样以表明约束条件的结束。这时,建立后的模型应该就是下面这个样子:
这样我们就建立了一个简单的模型,下面我们可以开始求解了。从Solve菜单选择Solve命令,或者在窗口顶部的工具栏里按Solve按钮,LINDO就会开始对模型进行编译。首先,LINDO会检查模型是否具有数学意义以及是否符合语法要求。如果模型不能通过这一步检查,会看到以下报错信息:An error occurred during compilation on line: n(产生错误的行数),LINDO会自动跳转到发生错误的行。我们就可以检查该行的语法错误并改正过来。
数据项/控制 说明 Status 给出当前解决方案的状态,可能的值包括:Optimal(最优的), Feasible(可行的), Infeasible(不可行的),Unbounded(未定的) Iterations solver的重复次数 Infeasibility 多余或错误约束条件数量 Objective 目标函数的当前值 Best IP 标示得到最优整数解决方案值,该项只出现在IP(整数规划)模型。 IP Bound IP模型中目标的理论范围 Branches 由LINDO IP solver分生出来的整型变量个数 Elapsed Time solver启动后所经过时间 Update Interval 状态窗口更新周期(秒)。你可以把这个值设成任何一个非负数,如果把它设成零的话很可能会增加求解时间。 Interrupt Solver 按下该按钮,solver将立刻停止并返回当前得到的最优解。 Close 按下该按钮关闭状态窗口,solver继续运行。状态窗口可以通过选取相应命令重新打开。