Lindo使用教程
- 格式:doc
- 大小:230.72 KB
- 文档页数:41
LINGO使用说明比较简单
第九步,分析和优化结果。
优化模型求解完成后,你可以通过结果显
示区中的结果表格和图表来分析和优化结果。
LINGO还提供了一些分析工具,如灵敏度分析和场景分析,帮助你深入理解模型的行为和性能。
第十步,保存和导出结果。
在 LINGO 中,你可以保存整个优化模型
及其求解结果,以供将来使用。
通过点击菜单栏中的“文件”选项,选择“保存”或“导出”,就可以将模型和结果保存为不同的文件格式,如LINGO模型文件(.lng)、Excel 文件(.xls)或文本文件(.txt)。
通过上述十个步骤,你可以使用LINGO软件完成一个优化模型的建立、求解和分析。
当然,LINGO还具备其他高级功能和应用,如混合整数规划、随机规划和非线性规划等,可以根据你的具体需求进行进一步学习和应用。
LINGO使用手册和官方网站上有更多详细的说明和案例,可以帮助你更好
地使用和理解LINGO软件。
第十章 LINGOLingo 软件是求解线性规划、非线性规划的数学软件,也可用于一些线性和非线性方程组的求解等。
Lingo 实际上也是最优化问题的一种建模语言,包括许多常用的数学函数供使用者建立优化模型时调用,并可以接受与其他数据文件交换数据。
第一节 LINGO 软件的基本使用方法1.1 LINGO 使用入门在windows 操作系统下启动LINGO 后,将进入LINGO 集成环境,包括主框架窗口和模型窗口两部分。
主框架窗口集成了菜单和命令按钮,模型窗口用于输入模型。
例1 求解数学模型12121212max 23..4310351200x x s t x x x x x x ++≤+≤≥≥解:在模型窗口输入LINGO 求解模型如下:输入模型后选择菜单LINGO|Solve 或者按工具栏的,LINGO开始编译模型,如有语法错误将返回一个错误的消息并指明错误出现的位置;如果通过编译,LINGO将激活Solver运算器寻求模型的最优解,首先出现Solver Status状态窗口显示模型求解的运算状态信息:状态窗口显示的信息含义如下:“Global optimal solution found”表示得到全局最优解。
“Objective value: 7.454545”表示最优目标值为7.454545。
“Total solver iterations:2” 表示迭代2次得到结果。
“V alue”给出最优解中各变量的值:x1=1.272727,x2=1.636364。
Reduced Cost 值列出最优单纯形表中判别数所在行的变量的系数,表示当变量有微小变动时,目标函数的变化率。
其中基变量的reduced cost值应为0,对于非基变量xj,相应的reduced cost值表示当某个变量xj 增加一个单位时目标函数减少的量( max型问题)。
本例中此值均为0。
SLACK OR SURPLUS值给出约束条件的松驰变量或剩余变量的值。
第十八章LINGO软件的使用18.1 LINGO入门18.1.1 LINGO软件的安装过程点击LINGO9.0 for Windows安装文件,出现点击“Next”按钮,出现此时需要接受安装协议。
系统安装时默认的目录是C:\LINGO9。
安装完成前,会出现下图所示的对话框:这个对话框询问你希望采用的默认的建模(即编程)语言,系统推荐的是采用LINGO语法,也就是选项“LINGO(recommended)”;你也可以选择“LINDO”将LINDO语法作为默认的设置。
当然,安装后你也可以通过“LINGO|Options|File Format命令来修改默认的建模(即编程)语言。
在上图中按下“OK”按钮,系统就会完成LINGO的安装过程。
18.1.2 LINGO基础知识LINGO有两种命令格式:一种是常用的Windows模式,通过下拉式菜单命令驱动LINGO 运行,界面是图形式的,使用起来也比较方便;另一种是命令行(Command-Line)模式,仅在命令窗口(Command Window)下操作,通过输入行命令驱动LINGO运行。
由于其使用字符方式输入,初学者往往不太容易掌握。
在这里,我们主要介绍在菜单驱动模式下LINGO的使用方法。
LINGO 9.0软件比以前的版本有了很大的改进,功能大大增强,性能更加稳定,计算的结果更加可靠。
LINGO软件不仅可用于求解非线性规划问题,还可以用以求解非线性整数规划问题;LINGO包含了内置的建模语言,模型中所需的数据可以以一定格式保存在独立的文件中;LINGO允许以简练、直观的方式描述较大规模的优化问题。
注:LIGDO公司目前已将LINDO软件从其产品中删除了。
事实上,LINDO软件的所有功能(包括LINDO语法格式)都在LINGO中得到了支持。
当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
LINGO 是用来求解线性和非线性优化问题的简易工具。
LINGO 内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO 高效的求解器可快速求解并分析结果。
LINGO 快速入门当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都都要在该窗口内编码实现。
下面举两个例子。
例1.1 如何在LINGO 中求解如下的LP 问题:0,6002100350..32min 212112121≥≤+≥≥++x x x x x x x t s x x在模型窗口中输入如下代码: min =2*x1+3*x2; x1+x2>=350; x1>=100;2*x1+x2<=600;然后点击工具条上的按钮 即可。
例1.2 使用LINGO 软件计算6个发点8个收点的最小费用运输问题。
产销单位运价如model:!6发点8收点运输问题;sets:warehouses/wh1..wh6/: capacity;vendors/v1..v8/: demand;links(warehouses,vendors): cost, volume;endsets!目标函数;min=@sum(links: cost*volume);!需求约束;@for(vendors(J):@sum(warehouses(I): volume(I,J))=demand(J));!产量约束;@for(warehouses(I):@sum(vendors(J): volume(I,J))<=capacity(I));!这里是数据;data:capacity=60 55 51 43 41 52;demand=35 37 22 32 41 32 43 38;cost=6 2 6 7 4 2 9 54 95 3 8 5 8 25 2 1 9 7 4 3 37 6 7 3 9 2 7 12 3 9 5 7 2 6 55 5 2 2 8 1 4 3;enddataend然后点击工具条上的按钮即可。
§1 LINGO 快速入门当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都都要在该窗口内编码实现。
下面举两个例子。
例1.1 如何在LINGO 中求解如下的LP 问题:,6002100350..32min 212112121≥≤+≥≥++x x x x x x x t s x x在模型窗口中输入如下代码: min =2*x1+3*x2; x1+x2>=350; x1>=100;2*x1+x2<=600;然后点击工具条上的按钮 即可。
例1.2 使用LINGO 软件计算6个发点8个收点的最小费用运输问题。
产销单位运价如model:!6发点8收点运输问题;sets:warehouses/wh1..wh6/: capacity;vendors/v1..v8/: demand;links(warehouses,vendors): cost, volume;endsets!目标函数;min=@sum(links: cost*volume);!需求约束;@for(vendors(J):@sum(warehouses(I): volume(I,J))=demand(J));!产量约束;@for(warehouses(I):@sum(vendors(J): volume(I,J))<=capacity(I));!这里是数据;data:capacity=60 55 51 43 41 52;demand=35 37 22 32 41 32 43 38;cost=6 2 6 7 4 2 9 54 95 3 8 5 8 25 2 1 9 7 4 3 37 6 7 3 9 2 7 12 3 9 5 7 2 6 55 5 2 2 8 1 4 3;enddataend然后点击工具条上的按钮即可。
LINDO软件包(学生版) 使用手册 目 录 第一节 简介与安装 第二节 用LINDO求解线性规划 (LP) 问题 第三节 用LINDO求解整数规划(IP) 和二次规划(QP) 问题 第四节 GINO简介 第五节 LINGO简介
1997年8月 1
第一节 简介与安装 1·1简介 本文主要面向大中专学生, 研究生, 及掌握一定的高等代数知识的读者,介绍LINDO软件包(学生版)的基本使用方法。该软件包(学生版)主要功能在于帮助使用者较快地输入一个优化问题的式子, 求解并分析该优化问题, 然后可做些较小的改动, 并重复上述的过程.
该软件包(学生版)在微机上DOS环境下运行。其使用界面不是图形式的,而是字符式的;不是菜单式的, 而是面向具体的命令 (Command). 它有许多的命令, 每一个命令都可随时执行, 由系统检查该命令是否在上下文中起作用. 它采用一种对用户友好的交互使用方式, 包括了所有的使用过程指导. 基于使用的具体情况, 它会向使用者询问下一步将做什么, 或等待使用者输入下一个命令.
LINDO软件包(学生版)包括LINDO,GINO,LINGO和 LINGO NL(LINGO2)等优化软件的学生版以及相应的例子文件。由于LINDO程序执行速度很快,易于方便地输入、求解和分析优化问题,LINDO在教学、科研和工业界得到广泛应用。这里用LINDO软件包作为LINDO,GINO,LINGO和 LINGO NL等的统称,包含五种组件,下面分别介绍如下:
(1)LINDO是Linear INteractive and Discrete Optimizer字首的缩写形式,是由Linus Schrage 于1986年开发的优化计算软件包, 可以用来求解线性规划 (LP----Linear Programming), 整数规划 (IP----Integer Programming) 和二次规划 (QP----Quadratic Programming) 问题. LINDO易于规划问题的输入、求解和分析,程序执行速度很快。LINDO学生版最多可求解多达200个变量和100个约束的规划问题。
(2)GINO可用于求解非线性规划 (NLP----Nonlinear Linear Programming) 问题,求解线性和非线性方程组和不等式组,以及代数方程求根。GINO中包含了有关财务、概率等方面的函数和三角函数,以及各种一般的数学函数,可供使用者建立问题模型时调用。GINO 学生版最多可求解多达50个变量和30个约束的问题。
(3)LINGO 可用于求解线性规划和整数规划问题。 (4) LINGO NL(LINGO2) 可用于求解线性、非线性和整数规划问题。
与LINDO和GINO不同的是,LINGO和LINGO NL(LINGO2) 包含了内置的建模语言,允许以简练、直观的方式描述所需求解的问题,模型中所需的数据可以以一定格式保存在列表(List)和表格(Table)中,也可以保存在独立的文件中。LINGO和LINGO NL(LINGO2) 学生版最多可求解多达200个变量和100个约束的问题。
(5)例子文件:在软件包中还含有例子文件,其中有些例子文件与各软件在一起,但大多数例子文件一般安装在例子目录。例子目录下的例子文件是以LUTOS 1-2-3的WK1格式存储的(也可用MS-OFFICE工具的EXCEL软件读写)。 2
1·2安装过程: LINDO软件包(学生版)在微机上DOS环境下通过安装后运行。安装盘为一片三英寸软盘,安装盘上有安装程序 (install.exe) 和简要介绍文本 (read.me),还带有多个压缩文件和一个解压缩程序 (lha.exe).
安装时,将安装盘直接插入软驱,然后运行该软盘上的安装程序,即在该软驱的提示符 (如A:> 或B:>)下键入“install”。 按“回车”(ENTER键)后,只需遵照屏幕上的提示即可完成整个安装过程:
(1)用户首先必须选择所需安装的内容:用户可以任意选择所需安装的内容(从1·1节所介绍的五种组件中任意选取)。如果想安装五种组件中的某个组件,就在它前面键入“Y”;否则键入“N”,然后“回车”。如此反复,完成后屏幕将提示您确认您的选择。
(2)用户必须选择所需安装到的目的地(一般是硬盘上的某个目录)。屏幕将提示缺省的目录,您可以任意修改,如此反复,完成后屏幕将提示您确认您的选择。
(3)确认您的选择之后,安装程序就会自动完成全部后续安装过程。安装过程结束后,您就可以进入安装好的目录,运行相应的优化软件了。
第二节 用LINDO求解线性规划(LP)问题 2.1初试 LINDO LINDO 的求解机制:LINDO 的求解过程采用单纯形法,一般是首先寻求一个可行解, 在有可行解情况下再寻求最优解. 用LINDO 求解一个LP问题会得到如下的几种结果: 不可行(No feasible solution) 或 可行(Feasible) 可行时又可分为: 有最优解(Optimal Solution)和解无界(Unbounded Solution)两种情况. 由于在实际问题中, 不太可能出现最大利润无上限的情形, 所以使用者应检查是否少了一个约束或有其它印刷错误.
在LINDO子目录下执行LINDO.EXE文件即可进入LINDO工作环境,其屏幕显示如下: LINDO/PC 5.02 (4 MAR 92) STUDENT VERSION. FOR EDUCATIONAL USE ONLY. SINGLE USER LICENSE FOR EDUCATIONAL USE ONLY DISTRIBUTED WITH TEXTBOOKS BY WADSWORTH PUBLISHING
: 3
“:”为LINDO提示符,在其之后, 使用者即可用具体的命令来输入并求解优化问题。让我们来解如下LP问题:
Maxzxystxyxyxy23431035120..
, 由于LINDO 中已假设所有的变量都是非负的, 所以非负约束可不必再输入到计算机中;LINDO也不区分变量中的大小写字符(实际上任何小写字符将被转换为大写字符);约束条件中的“<=” 及“>=”可用“<” 及“>”代替。上面问题用键盘输入如下:
: MAX 2x + 3Y ? ST ? 4X + 3Y < 10 ? 3x + 5Y < 12 ? END :
LINDO 中一般称上面这种问题实例(INSTANCE)为模型(MODEL)。以后涉及该模型时,目标函数为第一行,两个约束条件分别为第二、三行。直接键入运行(GO)命令就可得到解答, 屏幕显示如下:
:GO LP OPTIMUM FOUND AT STEP 2
OBJECTIVE FUNCTION VALUE 1) 7.4545450 VARIABLE VALUE REDUCED COST X 1.272727 .000000 Y 1.636364 .000000
ROW SLACK OR SURPLUS DUAL PRICES 2) .000000 .090909 3) .000000 .545455
NO. ITERATIONS= 2 4
DO RANGE(SENSITIVITY) ANALYSIS? ? N :
计算结果表明: “LP OPTIMUM FOUND AT STEP2”表示单纯形法在两次迭代(旋转)后得到最优解。 “OBJECTIVE FUNCTION VALUE 1) 7.4545450 ”表示最优目标值为7.4545450. “VALUE”给出最优解中各变量(VARIABLE)的值: X =1.272727, Y =1.636364. “REDUCED COST” 给出最优单纯形表中第0行中变量的系数 ( max型问题). 其中基变量的reduced cost值应为0,对于非基变量, 相应的 reduced cost值表示当该非基变量增加一个单位时目标函数减少的量。本例中此值均为0。 “SLACK OR SURPLUS” 给出松驰变量的值: 第2、3行松驰变量均为0, 说明对于最优解来讲,两个约束(第2、3行)均取等号。 “DUAL PRICES” 给出对偶价格的值: 第2、3行对偶价格分别为 .090909,.545455。 “NO. ITERATIONS= 2” 表示用单纯形法进行了两次迭代(旋转)。 一个问题解答之后, LINDO 会询问是否需要做灵敏性分析(DO RANGE (SENSITIVITY) ANALYSIS? ) 如果你不需要,你应回答“N”(NO),回到提示符“:”之下.
如果想重新看到刚才的模型,可键入 LOOK 命令, LINDO 会询问具体的行号. 典型的应答可以是 3, 或1-2, 或ALL, 而结果, 相应地会显示出第 3行, 第1-2 行, 或所有问题行.
: LOOK ROW: 3 3) 3 X + 5 Y <= 12 : 或 : LOOK all
MAX 2x + 3Y SUBJECT TO 2) 4 X + 3 Y <= 10 3) 3 X + 5 Y <= 12 END :
如果想修改问题,可键入 ALTER 命令, LINDO 会询问行号, 变量名, 及新的系数. 例如:如果要将上面问题中约束条件4310xy改为6310xy,再全部看一下,并求解新问题,
那么键入ALTER 命令后相应的应答为 2,X,和6, 以下是演示过程: