第一范文网 - 专业文章范例文档资料分享平台

运筹学lindo教程特别版

来源:用户分享 时间:2025/7/27 17:41:10 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

图2-6 LINDO求解器运行状态窗口(LINDO solver Status)

由于这个例子中LP模型的规模太小,我们可能还没有来得及看清图2-6的界面,LINDO就解出了最优解,并马上弹出如图2-7的对话框。这个对话框询问你是否需要作灵敏性分析“DO RANGE(SENSITIVITY )ANALYSIS?”。我们现在先选择“否(NO)”按钮,这个窗口就关闭。然后,我们再把图2-4状态窗口也关闭(按下图2-6的“Close”按钮即可)。

图2-7 灵敏性分析对话框

现在这个模型就解完了。那么最优解在哪里呢?如果你在屏幕上没有看到求解的结果,那么请你用鼠标选择LINDO的主菜单“Window(窗口)”,就可以查看该窗口的内容(如图2-8所示)。

图2-8 LINDO的求解结果报告窗口

这些输出结果表示的意思如下: 1、“LP OPTINUM FOUND AT STAP 0”表示单纯形法在0次迭代后得到的最优解。 2、“OBJECTIVE FUNCTION VALUE 1)4500.000”表示最优目标值。(注意:在LINDO中目标函数所在行总是被认为是第1行,这里的“1)”就是这个含义。

3、“VALUE”给出最优解中各变量(VARIABLE)的值:x1=10,x2=5。 4、“REDUCE COST”给出了最优的单纯形表目标函数行第1行中变量对应的系数(即各个变量的检验数(也称判别式))。其中基变量的REDUCE COST 值一定为0;对于非基变量(注意非基变量本身取值一定为0),相应的REDUCE COST 值表示该当非基变量增加1个单位(其他非基变量保持不变)时目标函数减少的量(对MAX型问题)。本例最优解中两个变量都是基变量,所以对应的REDUCE COST 的值均为0。

5、“SLACK OR SURPLUS(松弛或剩余)”给出约束对应的松弛变量的值:第2,3行松弛变量均为0,说明对于最优解来讲,两个约束(第2,3行)均取等号,即都是紧约束。

6、“DUAL PRICES ”给出了对偶价格的值:第2,3行对偶价格分别为50.0,62.5(含义参看《运筹学》)。

7、“NO ITERATIONS =0”表示用单纯形法进行0次迭代(旋转)。 现在,我们归纳一下上面介绍的输入,求解LP问题的一般步骤如下:(1)在模型窗口中输入一个LP模型。模型以“max”或“min”开始,按线性规划问题的自然形式输入(如前面的例子所示)。如要结束一个模型的输入,只需输入“END”(也可以省略)。(2)求解模型。如果LINDO报告有编译错误,则回到上一步修改模型。(3)查看结果。 2.2LINDO的主要菜单命令

从前面的各个图形窗口中我们已经看到,LINDO软件菜单条上有六个主菜单:File(文件) Edit(编辑)

Solve(求解) Report(报告 ) Windows(窗口) Help(帮助)

File(文件)菜单包括了LINDO通过文件与外部设备交换信息的命令;Edit(编辑)菜单包括了在当前窗口下编辑文本的命令;Solve(求解)菜单包括了求解摸新年感的命令;REPORTS(报告)彩旦包括了生成解答结果报告的命令;Windows(窗口)菜单包括了窗口切换的命令;HELP(帮助)菜单包括了访问在线帮助文档的命令。

对于几乎所有的菜单命令,LINDO都提供了快捷键;对于常用的菜单命令,LINDO在工具栏提供了相应的图形按钮(参见图2-6)。工具栏是浮动式的,可以用鼠标拖到屏幕的任何地方。这些用法都是和WINDOWS下其他应用程序的标准用法类似的,所以我们不准备对所有的菜单命令进行完整和详细的介绍,而是只对前4个菜但中有一定LINDO特色的主要命令进行简单介绍。 2.2.1文件主菜单

File/New、File/open和File/view的区别

File/view 用于新建一个模型文件,File/open用于打开一个已有文件,此后可以对这个文件进行编辑、求解、保存等;而File/View只用于打开已有文件供浏览(也可以求解)使用,不能编辑。由于LINDO编辑器对文件的大小是有限制的,因此用Flie/New和File/Open打开的文件不能太大(通常不超过64000字符);而File/view不受文件大小限制,这对浏览特别大规模的文件(通常不一定是由LINDO本身的编辑器产生的)是有用的。

File/Title显示当前模型的名称(如果该模型被命名过,即模型的程序中出现过Title语句)。 File/Date显示当前日期和时间。File/Elapse Time显示本次启动LINDO以来已经运行了多长时间。

File/License输入验证LINDO的许可证密码、功能和界面如下图2-7。

说明:File/Long Output,File/Take Commands等其他子菜单的作用可参阅相应的书籍。 2.2.2编辑主菜单

该菜单下的多数命令基本上是不言自明的,与WINDOWS下的其他编辑器类似,这些命令就不具体介绍了。这里只介绍几个LINDO软件中特色命令。 Eidt/Options该命令打开一个对话框(见图2-8),用于设置LINDO系统运行的内部参数。从图中可以看出,可修改的参数分成两大类:左边一类是关于优化程序的,右边一类是关于输出格式的(Output)。先看输出格式中所包含的四个选项:Status Window(状态窗口)选项:用于控制是否简明的形式报告结果(默认设置为详细(Verbose)的形式报告结果)。 Page Length Limit(页长限制):用于控制输出时每页最多显示多少行(可以设置为任意正整数;默认设置是“None”,表示无限制。Terminal Width(终端宽度):每行的最大宽度(每行多少字符),可以设置为40-132之间的整数(默认设置为80)。关于优化程序(Optimizer)的参数又分成两类:左边一类是关于整数规划的;右边一类是一般参数。对于IP的参数设置可参阅相关书籍;对于LINDO的一般参数(General),可以如下设置:Nonzero Limit(模型中允许出现的非零系数的个数上限):这个参数对于不同版本的LINDO软件默认值不同,试用版中是2000000。Iteration Limit(求解时允许的最大迭代步数):默认值是“None”,即没有限制;有时为了防止计算时间太长,用户可以自行设置为任意一个整数。Initial Contraint Tol(初始阶段求解时约束条件允许的误差上限):即只要约束两边相差小于这个数时,就认为约束成立。计算的初始阶段这个误差可能没有必要设置过小,以免找不到可行解,所以默认值是0.00008。Final Contraint Tol(最后阶段求解时约束允许的误差上限):即只要约束两边相差小于这个数时,就认为约束成立。计算的最后阶段这个误差有必要设置的比较小,以便提高计算精度,所以默认值是0.00001。Entering Var Tol(进基变量的误差上限):即只有当变量的判别数大于这个上限时,这个变量才可能进基(相当于认为绝对值小于这个数时,判别数就是零)。默认值是0.0000005.(具体含义见相关参考书)。Pivot Size Tol(旋转时采用的误差下限:即旋转变量的绝对值不能小于该上限(相当于认为绝对值小于这个数时,旋转元就是0)。默认值是0.0000000001。(旋转元和进基变量的含义见相关参考书)。一旦参数被修改并按下“OK”按钮后,将对所有此后的运行均有效,直到退出LINDO系统或重新设置这个参数为止,而与具体的模型无关。如果将这些参数用对话框中的“Save(保存)”按钮保存下来,退出LINDO后下次启动LINDO时这些参数仍然有效。对话框中右下方的

“Default(默认)”按钮恢复LINDO系统的默认参数值。“Cancel(取消)”按钮用于废除本次参数修改,关闭这个选项窗口。“Help(帮助)”按钮用于提供本窗口的在线帮助。

Edit/paste Symbol该命令打开一个对话框,用于在模型中当前光标后面插入符号。例如:对于前面介绍的LP模型(参见例2.1),Paste Symbol打开的对话框如图2-9,可以看到可选的符号主要是三类:Reserved(保留字):LINDO系统的保留字(如一些常用的语句关键词和运算符号;Variable(变量):当前模型的决策变量;Rows(行名):约束的行号或行名。可以用鼠标双击其中某个符号,则该符号显示在图中的缓冲区(“Paste Buffer”);也可直接编辑缓冲区的内容。当单击“Paste(粘贴)”按钮时,缓冲区的内容将被插入当前模型的当前光标后。单击“Clear(清除)”按钮将清除缓冲区的内容,单击“Close(关闭)”,按钮将关闭该对话框。Edit/Choose New Fond该命令用于指定显示的字体,字型和文字的大小。对话框如图2-10所示。 2.2.3求解主菜单 Solve /Compile Modl Solve /Compile Modl(编辑模型)命令对当前模型进行编译。如果当前模型输入有语法错误,编译时将报告错误。Solve/Pivot

Solve/Pivot(旋转)命令从当前解出发进行一次单纯形旋转(即一次迭代)。用这个命令可以跟踪整个单纯形算法的运行。Solve/Debug

Solve/Debug(调试)命令分析LP无解或无界的原因,建议如何修改。 Solve/Preemptive Goal

Solve/Preemptive Goal(多目标)命令依次按照多个目标求解模型。 2.2.4报告主菜单 Report/Solution

Report/Solution(解答)命令显示当前的解(你必须在此之前求解过当前模型)。对话框参见2-11,你可以选择“All Values”(把所有变量的值全部显示)。“Nonzero Only”(显示非零取值的变量),然后单击“OK”按钮即可。 Report/Range

Report/Range(敏感性分析)命令显示当前解的敏感性分析结果(你必须在此之前求解当前模型)。敏感性分析可参见相关参考书。 Report/Parametrics

Report/Parametrics(参数分析)命令对约束的右端项进行分析,也就是研究某个约束的右端项发生变化时,最优值如何变化。例如,对于前面介绍过的生产规划的优化问题,对话框如图2-12,你可以选择参数分析结果的报告方式。单击“OK”按钮得到参数分析结果(如图2-13所示),非常方便!从图中和报告窗口中显示结果都可以看出,这时最优解和最优值没有变化。请你用其他数试试,看看效果如何。 Report/Statistics

Report/Statistics(统计)命令显示当前模型的统计信息。例如,对于当前介绍的生产规划的优化问题(例2-1),该命令将在报告窗口显示如下统计信息: 第1行的意思:该模型有行,2个变量,

第2行的意思:非零系数共有个,约束中非零系数共有个

第3行的意思:模型中系数的最小值和最大值(按绝对值看)分别为 第4行的意思:模型目标为极大化, 第5行的意思:

2.3使用技巧及注意事项

我们前面已经看到,LINDO软件对模型的输入格式的要求与线性规划问题的自然形式(数

搜索更多关于: 运筹学lindo教程特别版 的文档
运筹学lindo教程特别版.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c1fqak1ktit6ehs64cpgu_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top