lindo软件介绍
- 格式:ppt
- 大小:928.50 KB
- 文档页数:65
233第九章 Lingo软件快速入门9.1 Lingo概述LINDO和LINGO是美国LINDO系统公司开发的一套专门用于求解最优化问题的软件包。
LINGO用于求解线性规划和二次规划问题,LINGO除了具有LINDO的全部功能外,还可以用于求解非线性规划问题,也可以用于一些线性和非线性方程(组)的求解,等等。
LINDO 和LINGO软件的最大特色在于可以允许优化模型中的决策变量是整数(即整数规划),而且执行速度很快。
LINGO实际上还是最优化问题的一种建模语言,包括许多常用的函数可供使用者建立优化模型时调用,并提供与其他数据文件(如文本文件、Excel电子表格文件、数据库文件等)的接口,易于方便地输入、求解和分析大规模最优化问题.由于这些特点,LINDO和LINGO软件在教学、科研和工业、商业、服务等领域得到了广泛应用。
当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口:9.2 LINGO 菜单说明9.2.1 文件菜单(File Menu)新建(New)从文件菜单中选用“新建”命令、单击“新建”按钮或直接按F2键可以创建一个新的“Model”窗口。
在这个新的“Model”窗口中能够输入所要求解的模型。
打开(Open)从文件菜单中选用“打开”命令、单击“打开”按钮或直接按F3键可以打开一个已234 经存在的文本文件。
这个文件可能是一个Model文件。
保存(Save)从文件菜单中选用“保存”命令、单击“保存”按钮或直接按F4键用来保存当前活动窗口(最前台的窗口)中的模型结果、命令序列等保存为文件。
另存为...(Save As...)从文件菜单中选用“另存为...”命令或按F5键可以将当前活动窗口中的内容保存为文本文件,其文件名为你在“另存为...”对话框中输入的文件名。
利用这种方法你可以将任何窗口的内容如模型、求解结果或命令保存为文件。
关闭(Close)在文件菜单中选用“关闭”(Close)命令或按F6键将关闭当前活动窗口。
标题:LINDO 软件包介绍;副标题:Lindo 解线性规划问题实例导语:LINDO 软件包首先由Linus Schrage 开发,现在,美国的LINDO 系统公司(LINDO System Inc.)拥有版权,是一种专门求解数学规划(优化问题)的软件包。
它能求解线性规划、(0,1)规划、整数规划、二次规划等优化问题,并能同时给出灵敏度分析、影子价格以及最优解的松弛分析,非常方便实用。
1.注意事项(1) 低版本的LINDO 要求变量一律用大写字母表示;(2) 求解一个问题,送入的程序必须以MIN 或MAX 开头,以END 结束;然后按Ctrl + S (或按工具栏中的执行快捷键)进行求解;(3) 目标函数与约束条件之间要用SUBJECT TO (或ST )分开,其中字母全部大写;(4) LINDO 已假定所有变量非负,若某变量,例如X5有可能取负值,可在END 命令下面一行用FREE X5命令取消X5的非负限制;LINDO 要求将取整数值的变量放在前面(即下标取小值),在END 下面一行用命令INTEGER K ,表示前K 个变量是(0,1)变量;在END 下面一行用命令GIN H 表示前H 个变量是整数变量;(5) 在LINDO 中,“<”等价于“≤” ,“>”等价于“≥” ;(6) 在LINDO 的输出结果中有STATUS (状态栏),它的表出状态有:OPTIMAL (说明软件包求得的结果是最优解)、FEASIBLE (说明软件包求得的结果只是可行解)、INFEASIBLE (说明软件包求得的结果是不可行解)。
(7) 在LINDO 命令中,约束条件的右边只能是常数,不能有变量;(8) 变量名不能超过8个字符;(9) LINDO 对目标函数的要求,每项都要有变量,例如,LINDO 不认识MIN 2000-X+Y ,要改为MIN –X+Y ;(10)LINDO 不认识400(X+Y )要改为400X+400Y 。
lindo软件求解管理领域中的各种问题实验总结Lindo软件是一款用于线性规划、整数规划、非线性规划、动态规划等问题求解的工具软件。
在管理领域中,Lindo软件被广泛应用于生产调度、库存管理、物流运输等方面。
本文将对Lindo软件在管理领域中的应用进行总结,并探讨其中存在的问题和解决方法。
一、Lindo软件在生产调度中的应用1.1 生产调度模型生产调度是制造企业中非常重要的一个环节,它涉及到生产计划的制定和实施。
通过使用Lindo软件,可以建立一个生产调度模型,根据不同的约束条件和目标函数,求解出最优的生产计划。
1.2 生产调度问题在实际应用中,生产调度问题常常涉及到多个工序之间的协调与配合。
例如,在汽车制造过程中,需要对钣金、喷漆、装配等多个工序进行协调和安排。
这就需要建立一个复杂的数学模型,并通过Lindo软件来求解。
1.3 生产调度案例分析以某汽车厂为例,该厂需要安排钣金、喷漆、装配三个工序之间的关系。
通过使用Lindo软件,可以得出最优的生产计划,并实现生产调度的优化。
二、Lindo软件在库存管理中的应用2.1 库存管理模型库存管理是企业中非常重要的一个环节,它涉及到物料采购、仓储管理、销售预测等方面。
通过使用Lindo软件,可以建立一个库存管理模型,根据不同的约束条件和目标函数,求解出最优的物料采购计划和销售预测。
2.2 库存管理问题在实际应用中,库存管理问题常常涉及到多个因素之间的协调与平衡。
例如,在零售业中,需要根据销售预测和季节变化等因素来制定物料采购计划。
这就需要建立一个复杂的数学模型,并通过Lindo软件来求解。
2.3 库存管理案例分析以某零售企业为例,该企业需要根据销售预测和季节变化等因素来制定物料采购计划。
通过使用Lindo软件,可以得出最优的物料采购计划,并实现库存管理的优化。
三、Lindo软件在物流运输中的应用3.1 物流运输模型物流运输是企业中非常重要的一个环节,它涉及到货物运输、仓储管理、配送等方面。
LINDO使用手册LINDO Users Manual第一章LINDO初步LINDO 是Linear INteractive Discrete Optimizer的缩写,是一个线性和整数规划的软件系统。
这里介绍的LINDO/386 5.3版本,最大规模的模型的非零系数可以达到1,000,000个,最大变量个数可以达到100,000个,最大目标函数和约束条件个数可以达到32000个,最大整数变量个数可以达到100,000个。
它的特点是采用交互方式操作,而且命令简单明了,很容易掌握。
用户在输入初步的数学模型后,可以一边运行,一边修改调试,直至获得满意的结果。
LINDO既是一个实用的求解大规模线性和整数规划系统,也很适用于训练的目的,用来培养学生面对较复杂的实际问题,构造线性及整数规划模型以及求解这些问题的能力。
限于本教材的内容,本手册只介绍有关线性规划和整数规划的基本内容,省略了有关二次规划、参数规划以及有关线性规划算法的比较专门的内容。
§1.1 LINDO 命令一览表LINDO 命令纳成十一类,每一类的名称及所属命令如下:1、查询类(Information)HELP 求助COM ( Command ) 命令列表LOCAL 当前版本信息CAT ( Categories ) 命令分类TIME 显示当前时间DATE 显示当前日期2、文件输入类( Input )MAX 键盘输入极大化模型MIN 键盘输入极小化模型RETR ( Retrieve ) 从磁盘读入模型文件RMPS ( Read MPS ) 从磁盘读入MPS文件TAKE 从磁盘读入模型或命令文件LEAV ( LEAVE ) TAKE命令的终止RDBC* 读取用SBDC命令保存的基列作为初始基FBR * 读取用FBS命令保存的基FINS* 读取用MPS格式保存的基3、显示类(Display)PIC ( Picture ) 显示矩阵中非零元素的分布及数量级TABL ( Tableau ) 显示当前单纯形表LOOK 显示模型的数学形式NONZ ( Nonzeros ) 显示解中的非零变量SHOC ( Show Column ) 显示模型中的一列SOLU ( Solution ) 显示当前得到的解RANGE 显示灵敏度分析的结果BPIC* 显示三角化的当前基逆矩阵CPRI* 显示所选择列的有关信息RPRI* 显示所选择行的有关信息DMPS* 显示以MPS格式表示的解PPIC* 显示行列重新排列的矩阵,使非零元素最靠近对角线4、文件输出类( File Output )SAVE 模型存盘DIVE ( Divert ) 将屏幕输出转向磁盘文件RVRT ( Revert ) 重新回到屏幕输出状态SMPS ( Save MPS ) 模型以MPS 格式存盘SDBC* 将当前基的列向量以文件形式保存FBS* 将当前基以文件形式保存FPUN* 将当前基以MPS形式保存SMPN* 将当前模型用非标准的MPS格式保存5、求解类(Solution)GO 求解一个模型PIV(Pivot) 进行一次单纯形叠代GLEX* 用字典序方法优化6、问题编辑类( Problem Editing )ALT(Alter) 修改模型中的系数EXT(Extension) 增加一个约束DEL(Delete) 删除一个约束SUB(Simple Upper Bound) 给出一个变量的上界APPC(Append Column) 增加一列SLB(Simple Lower Bound) 给出一个变量的下界FREE 取消一个变量的上下界EDIT 用全屏幕编辑建立或修改模型7、退出( Quit )QUIT 退出LINDO 系统8、整数规划、二次规划和参数规划( Integer, Quadratic and Parametric Programs )INT 定义一个0-1变量QCP*(Quadratic Programming) 定义二次规划PARA*(Parametric Programming)求解参数规划POSD*(Positive Definiteness) 检查二次规划矩阵的正定性TITAN* 紧缩连续变量的上界以及0-1变量的系数BIP* 在整数规划中给出一个剪枝的界GIN (General Integer)定义一个整数变量IPTOL* 设定整数规划最优解的宽容度9、对话参数( Conversational Parameters )WIDTH 设置打印机宽度TERS ( Terse ) 简洁输出信息VERB ( Verbose ) 冗长输出信息BAT ( Batch ) 成批输出信息PAGE 设定屏幕页的大小PAUSE 暂停10、用户子程序USER 执行用户提供的子程序11、杂项INV* (INVERT)求当前基的逆矩阵,以减少叠代误差STAT (STATISTICS)统计模型矩阵的系数BUG 如发现系统缺陷,提供有关信息SET 设置LINDO的内部参数TITL (TITLE)给出模型的标题§1.2 LINDO 初步操作以下命令,可以完成模型输入,模型显示,模型运行,退出LINDO等操作,这些命令是:•MAX 开始输入一个极大化模型•MIN 开始输入一个极小化模型•TITL 输入模型标题•EDIT 全屏幕输入或全屏幕编辑一个模型•LOOK 在屏幕上显示已输入的模型•GO 模型运行•QUIT 退出LINDO,返回操作系统在这一章中,先对这几个命令的用法作详细解说。
1 LINDO菜单命令和语句1.1菜单命令我们可以从类似于其它Windows程序的便捷菜单访问LINDO的命令。
主菜单包括屏幕顶部的6个子菜单,它们列出了各种命令。
当单击其中一个子菜单——File、Edit、Solve、Reports、Window或Help时,将出现了一个包含各种命令的下拉菜单。
你可以像在大多数windows程序中那样选择命令——或者用鼠标单击命令,或者在适当的子菜单亮显时,按命令名中带下划线的字母。
许多命令还有快捷键(F2、Ctrl+Z等)。
为了增加方便性,还可以利用位于屏幕顶部工具栏中的图标访问一些最常用的命令。
下面简要介绍各种菜单命令,并列出了可以应用的快捷键和图标。
1.File(文件)菜单File菜单命令能够以各种方法操纵LINDO数据文件。
可以使用这个命令打开、关闭、保存和打印文件,并且可以执行LINDO独有的各种任务。
下面将描述File命令。
命令说明New F2 创建用于输入数据的新窗口。
Open F3 打开已有的文件。
利用对话框可以选择各种文件类型和位置。
View F4 打开已有的文件,仅进行浏览。
不对文件进行修改。
Save F5 保存窗口。
可以保存输入数据(模型)、Reports窗口或命令窗口。
可以下列格式保存数据:*.LTX,可以利用字处理软件进行编辑的文本格式;*.LPK,以“填充”格式保存编译模型,但是不进行特殊的格式化或解释;*.MPS,与机器无关的工业标准格式,用于在LINDO和其它LP软件之间传递LP问题。
Save As F6 利用指定的文件名保存活动窗口。
这特别适合于重命名已修改的文件,同时能够保持原始文件不受影响。
Close F7 关闭活动窗口。
如果窗口包含新的输入数据,将询问你是否保存修改。
Print F8 把活动窗口发送到打印机。
Printer Setup…F9 选择打印机和打印格式的各种选项。
Log Output…F10 把通常发送到Reports窗口的所有后续屏幕活动发送到文本文件中。
Lingo介绍Lingo是美国LINDO系统公司(Lindo Symtem Inc)开发的求解数学规划系列软件中的一个(其他软件为LINGDO,GINO,What’s Best等),它的主要功能是求解大型线性、非线性和整数规划问题,目前的版本是lingo11.0。
lingo分为Demo、solve suite、hyper、industrial、extended等六类不同版本,只有Demo版本是免费的,其他版本需要向LINDO系统公司(在中国的代理商)购买,Lingo的不同版本对模型的变量总数、非线性变量个数、整型变量个数和约束条件的数量做出不同的限制(其中extended版本无限制)。
Lingo的主要功能特色为:(1)既能求解线性规划,也有较强的求解非线性规划的能力;(2)输入模型简练直观;(3)运行速度快、计算能力强;(4)内置建模语言,提供几十种内部函数,从而能以较少语句,较直观的方式描述较大规模的优化模型;(5)将集合的概念引入编程语言,很容易将实际问题转换为Lingo语言;(6)能方便地与excel、数据库等其他软件交换数据。
学校图书馆40本《lingo和excel在数学建模中的应用》,袁新生、邵大宏、郁时炼主编,科学出版社Lingo程序设计简要说明在数学建模中会遇到如规划类的题型,在这种模型中总存在着一个目标,并希望这个目标的取值尽可能的大或小,同时与这个目标有关的一系列变量之间存在一些约束。
在构造出目标函数和约束条件的表达式后,我们需要对求出这个最值和各变量的取值。
一般我们用LINGO来对模型进行求解,本文将通过举一个简单的例子,围绕这个例子逐步学习LINGO 的使用。
LINGO只是一个求解工具,我们主要的任务还是模型的建立!当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model –LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。
用LINDO、LINGO 和WHAT'S BEST!解运筹学问题优化模型介绍实际问题中的优化模型Min/Max z=f(x), x=(x1,...,x n)Ts.t. g i(x)≤0,i=1,2,...,mx1,...,x n≥0其中x~决策变量,f(x)~目标函数,g i(x)≤0~约束条件数学规划分类:线性规划(LP)二次规划(QP)非线性规划(NLP)连续规划整数规划(IP):0-1整数规划、一般整数规划、纯整数规划(PIP)、混合整数规划(MIP) LINDO 公司软件产品简要介绍美国芝加哥(Chicago)大学的Linus Schrage教授于1980年前后开发, 后来成立 LINDO系统公司(LINDO Systems Inc.),网址:LINDO: Linear INteractive and Discrete Optimizer (V6.1)LINGO: Linear INteractive General Optimizer (V8.0)LINDO API: LINDO Application Programming Interface (V2.0)What’s Best!: (SpreadSheet e.g. EXCEL) (V7.0) 演示(试用)版、学生版、高级版、超级版、工业版、扩展版… (求解问题规模和选件不同)LINDO和LINGO软件能求解的优化模型LIN D O:线性规划(LP)、二次规划(QP)LIN G O:线性规划(LP)、二次规划(QP)、非线性规划(NLP)建模时需要注意的几个问题1、尽量使用实数优化,减少整数约束和整数变量2、尽量使用光滑优化,减少非光滑约束的个数如:尽量少使用绝对值、符号函数、多个变量求最大/最小值、四舍五入、取整函数等3、尽量使用线性模型,减少非线性约束和非线性变量的个数(如x/y <5 改为x<5y)4、合理设定变量上下界,尽可能给出变量初始值5、模型中使用的参数数量级要适当(如小于103)LINDO使用简介例加工奶制品的生产计划1桶牛奶(经过12小时)产生3公斤奶制品A ,可获利24元/公斤或1桶牛奶(经过8小时)产生4公斤奶制品B ,可获利16元/公斤某天约束:50桶牛奶、时间480小时、至多加工100公斤A如何制定生产计划,使这一天获利最大?一些小问题如下:问1、35元可买到1桶牛奶,买吗?若买,这一天最多买多少?问2、可聘用临时工人,付出的工资最多是每小时几元?问3、奶制品A的获利增加到 30元/公斤,是否应改变生产计划?解:决策变量 用x桶牛奶生产A 用y桶牛奶生产B 目标函数Max z=72 x + 64 y约束条件 x+ y ≤50 (原料供应)12 x+ 8 y ≤480 (劳动时间)3 x ≤100 (加工能力,产量约束)x, y≥0 (非负约束)在LINDO输入窗中输入如下代码:max 72 x+64 yst2) x+y<503)12x+8y<4804) 3x<100end再点按求解命令即可得到优化结果(含灵敏度分析信息)LP OPTIMUM FOUND AT STEP 2OBJECTIVE FUNCTION V ALUE1) 3360.000V ARIABLE V ALUE REDUCED COSTX 20.000000 0.000000Y 30.000000 0.00000020桶牛奶生产A, 30桶生产B,利润3360元。