Lindo的使用
规划求解-程序使用指导书
![规划求解-程序使用指导书](https://img.taocdn.com/s3/m/0985010190c69ec3d5bb7538.png)
LINDO程序软件使用说明一、概述LINDO:LINDO Stand for Linear,Interactive,Discrete,Optimizer功能:求解线性规划类的数学模型。
特点:自然格式数学模型,灵活方便,快速输入与求解版本:LINDO6.1二、LINDO6.1编辑窗口界面调用LINDO程序:单击“开始、程序、LINDO32”,即进入程序界面。
LINDO6.1为WINDOWS程序,其基本窗口及编辑窗口如图1所示。
模型按自然格式在编辑串口输入及修改。
工具栏给出编辑使用和求解使用的基本工具。
图1-1 LINDO6.1界面工具栏各种工具的功能如下:——建立一个编辑窗口;打开一个已有的文件;查阅一个已有文件内容——保存文件;打印文件——剪切;复制;粘贴——查找与替换文本;修改缺省的系统参数;跳转到一个特定的行——可用符号向导,用于辅助建模;清除窗口全部内容——求解;编译文本模型,可查找模型语法错误及汇总所用符号——选择简洁或全部解报告;产生不同项目的解报告;产生模型系数矩阵图——在不同窗口之间切换;平铺所有打开的窗口;关闭所有窗口——联机帮助三、模型输入示例模型输入以文本方式进行,采用模型表示的自然格式。
在编辑窗口中,按自然格式输入:例:对下述LP模型:输入格式:说明:(1)输入命令“max”或者“min”,后面直接跟目标函数表达式,不能输入函数符号“z”;(2)如果函数表达式较长,可键入回车符中断转下一行继续输入;(3)不识别下标变量;不识别“⨯、/、≠、∑、()、*”等运算符,只识别“+、-”运算符;(4)当目标函数表达式输入完毕后,输入“st”命令,此后输入的表达式为约束条件;(5)输入约束条件时,可以输入“<”、“>”表示约束条件中“≤”和“≥”的连接符号;(6)目标函数表达式中不能出现常数项;约束条件左边表达式中也不能出现常数;约束右端项必须是数值,不能出现变量符号;(7)若变量取值符号限制为“x≥0”形式,则可省略不必输入;若变量x取值符号限制为“取值无约束”形式;则在结尾end后加入“free x”限制;(8)模型输入完毕后需输入end表示结束。
LINDO软件的使用
![LINDO软件的使用](https://img.taocdn.com/s3/m/7242f8f8941ea76e58fa04be.png)
4,BEST IP:表示在最优的整数解目标函数值. 5,IP Bound:表示该整数规划目标值的下界或上界. 6,Branches:表示分支数. 7 , 目 前 IP 尚 无 相 应 完 善 的 敏 感 性 分 析 理 论 , 因 此 REDUCED COST 和DUAL PRICES的结果在整数规划中的意 义不大. max x1+x2 s.t. 14x1+9x2<51 -6x1+3x2<1 end gin 2
运筹学》 《运筹学》
LINDO软件的使用 软件的使用
Slide 9
C0
CO
运筹学》 《运筹学》
LINDO软件的使用 软件的使用
Slide 10
三,运行状态窗口 : (window/status window) 当前状态:已经达到最 优 解 ( optimal), 可 行 的 解 (feasible), 不 可 行 的 解 (infeasible), 无 界 解 (unbounded). 迭代次数:2次 多余或错误的约束条件 :0 当前的目标值:145 最好的整数解 整数规划的界 分枝数 求解所用的时间 刷新本界面的时间间隔 :1S
运筹学》 《运筹学》
LINDO软件的使用 软件的使用
Slide 8
例2:MIN 5 A0 +6 A1 +2 A2 +4 B0 +3 B1 +7 B2 +2 C0 : +9 C1 +8 C2 SUBJECT TO 2) A0 +A1 +A2<=8 3) B0 +B1 +B2<=9 4) C0 +C1 +C2<=6 5) A0 +B0 +CO =6 6) A1 +B1 +C1 =5 7) A2 +B2 +C2 =9 END 问题: 问题:第5)行的表达式中CO 与C0弄混了.
Lindo 软件的应用
![Lindo 软件的应用](https://img.taocdn.com/s3/m/3f85125e3b3567ec102d8ad7.png)
其中LINDO 6 .1 学生版至多可求解多 达300 个变量和150 个约束的规划问题。 在大型的机器上,LINDO 被用来解决一 些拥有超过50,000 个约束条件和200,000 万个变量的大规模复杂问题。LINDO 的 主要设计原则是,如果一个用户只是想 解决一个简单的问题,就不应该在学习 LINDO 的基本特性上花费太多的准备成 本
RIGHTHAND SIDE RANGES ROW CURRENT ALLOWABLE RHS INCREASE 2 250000.000000 186222.062500 3 380000.000000 234752.984375 4 265200.000000 30601.410156 5 408100.000000 156685.250000 6 130100.000000 2350.135254 7 0.000000 43454.000000 8 0.000000 43454.000000 9 0.000000 3239024.250000 10 0.000000 1890675.875000
Lindo 软件的应用
一、预备知识
线性规划问题的基本概念 : 设线性规划问题
max z c1 x1 c2 x2 ... cn xn a11 x1 a12 x2 ... a1n xn b1 a x a x ... a x b 22 2 2n n 2 21 1 ... a x a x ... a x b n2 2 nn n n n1 1 x1 , x 2 ,..., xn 0 (1.4) (1.5)
1.可行解
满足线性规划约束条件(1.5)和(1.6)的解 x ( x1, x2 ,.., xn ) 称为线性规划问题的可行解。所有可行解的集合称为可 行域或可行解集。
LINDO软件使用简介
![LINDO软件使用简介](https://img.taocdn.com/s3/m/3fe86850ad02de80d4d840a7.png)
0.2x+0.7y+0.4z<1
End
Int x
Int y Int z
运算结果如下
OBJECTIVE FUNCTION VALUE
1) 7.000000 VALUE REDUCED COST
VARIABLE
X
Y Z
1.000000
1.000000 0.000000
-4.000000
-3.000000 -2.000000 DUAL PRICES
入 模 型
max 2x+3y
st
4x+3y<10
3x+5y<12 end
2. 存储模型
ห้องสมุดไป่ตู้
用SAVE命令将问题模型以LINDO格式存入文件(自己 输入文件名),如将上述输入模型存在sf1中。 3.模型求解 选择菜单“SOLVE”,并回答提示“DO RANGE
(SENSITIVITY)ANSLYSIS(灵敏性分析)”,yes或NO
COEF
X Y 2.000000 3.000000
INCREASE
2.000000 0.333333
DECREASE
0.200000 1.500000
RIGHTHAND SIDE RANGES ROW CURRENT ALLOWABLE ALLOWABLE
RHS
2 3 10.000000 12.000000
前者只将变量vname标识为0/1型,后者将前n个变量标识 为0/1型。 还可用命令GIN将变量仅限为整数型
例如,求解整数规划
max s.t.
w 4x 3y 2z 2.5 x 3.1z 5 0.2 x 0.7 y 0.4 z 1 x, y 0, 且为0或1
LINDO软件基本使用方法
![LINDO软件基本使用方法](https://img.taocdn.com/s3/m/afaa25b002d276a200292ecf.png)
优化建模 优 化 建 模
新余学院
建模组
上一页
下一页
Xinyu University MCM
优化建模 优 化 建 模
2.4 查错功能
2019/4/5
新余学院
建模组
上一页
下一页
Xinyu University MCM
优化建模 优 化 建 模
2.5 FREE、SUB、SLB的使用举例 求解如下线性规划问题: 非负限制
2019/4/5
新余学院
建模组
上一页
下一页
Xinyu University MCM
优化建模 优 化 建 模
Sub y 20 Slb z 30是否可取消? y 的上界(20)在最优解 中没达到;z的下界(30) 也没达到.
Free x 是否可取消?
2019/4/5
新余学院
建模组
上一页
下一页
Xinyu University MCM
新余学院 建模组
上一页 下一页
Xinyu University MCM
9. 变量不能出现在一个约束条件的右端 10. 表达式中不接受括号“( )”和逗号“,”等任何符号, 例: 400(X1+X2)需写为400X1+400X2 11. 表达式应化简,如2X1+3X2- 4X1应写成 -2X1+3X2 12. 缺省假定所有变量非负;可在模型的“END”语句后用 “FREE name”将变量name的非负假定取消 13. 可在 “END”后用“SUB” 或“SLB” 设定变量上下界 例如: “sub x1 10”的作用等价于“x1<=10” 但用“SUB”和“SLB”表示的上下界约束不计入模型的 约束,也不能给出其松紧判断和敏感性分析。 14. “END”后对0-1变量说明:INT n 或 INT name 15. “END”后对整数变量说明:GIN n 或 GIN name ※ 行号、“TITLE”语句和注释语句,是LINDO中惟一可以使用 汉字字符的地方.
LINDO使用手册
![LINDO使用手册](https://img.taocdn.com/s3/m/6b2353eeaeaad1f346933ff5.png)
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,返回操作系统在这一章中,先对这几个命令的用法作详细解说。
Lindo 和Lingo 数学软件的简单使用方法
![Lindo 和Lingo 数学软件的简单使用方法](https://img.taocdn.com/s3/m/8f1f3a77f46527d3240ce0f3.png)
Lindo 和Lingo 数学软件的简单使用方法一、Lindo最新版本:6.1版(注册版)限制:4000个约束、8000个变量、800个整型变量功能:可以求解线性规划、整数规划、混合整数规划、二次规划、目标规划。
我们主要用它来求解整数规划或混合整数规划。
特点:执行速度非常快 例1:求解整数规划问题12121212max 58..65945,0z x x s t x x x x x x =++≤+≤≥且整解:在lindo 的运行窗口中输入 max 5x1+8x2 stx1+x2<6 5x1+9x2<45 end gin 2然后按Solve 菜单或快捷键得运行结果。
OBJECTIVE FUNCTION V ALUE (目标函数最优值) 1) 40.00000VARIABLE V ALUE REDUCED COST (变量增加1时目标函数改变量) X1 0.000000 -5.000000 X2 5.000000 -8.000000ROW SLACK OR SURPLUS DUAL PRICES (行) (松弛变量值) (对偶价格,表示约束右边常数增加1时目标函数改变量)) 2) 1.000000 0.000000 3) 0.000000 0.000000RANGES IN WHICH THE BASIS IS UNCHANGED (灵敏度分析) OBJ COEFFICIENT RANGES (目标函数中变量的系数的变动范围,在此范围内最优解不变) V ARIABLE CURRENT ALLOWABLE ALLOWABLECOEF (当前系数) INCREASE (增加量) DECREASE (减少量) X1 5.000000 0.000000 INFINITY X2 8.000000 0.000000 INFINITYRIGHTHAND SIDE RANGES (约束条件右边常数的变化范围,在此范围内最优基不变) ROW CURRENT ALLOWABLE ALLOWABLERHS (当前系数)INCREASE (增加量) DECREASE (减少量) 2 6.000000 INFINITY 1.000000 (第一个约束) 3 45.000000 INFINITY 0.000000 (第二个约束)注意:1. 软件中已经假设所以的变量是非负的,所以非负约束不必输入; 2. 可以用 FREE 变量 来取消变量的非负限制; 3. 不区分大小写; 4. 约束条件“<=”、“>=”可以用“<”、“>”代替; 5. 变量名不能超过8个字符;6. 变量与系数间可以有空格,但不能有任何运算符号(如*等); 7. 不允许变量出现在一个约束条件的右端; 8. 输入中不能有“()”和“,”;比如4(x1+x2)应写成4x1+4x2等;9. 在一个式中同一变量不能出现一次以上,比如2x1+3x2-x1应简化为x1+3x2;gin 变量 变量为整数变量 gin nint n 模型中的前n 个变量为0/1整数变量,关于变量的顺序可由输出结果查证! 整数变量申明须放在最后(即end 后)例2:集合覆盖问题设有一集合S={1,2,3,4,5},及S 的一个子集簇P={{1,2},{1,3,5},{2,4,5},{3},{1},{4,5}},假设选择P 中各个元素的费用为1、1.5、1.5、0.8、0.8、1,试从P 中选一些元素使之覆盖S 且所选元素费用之和最小。
lindo详细使用说明
![lindo详细使用说明](https://img.taocdn.com/s3/m/e7dcd0e0e009581b6bd9eba3.png)
LINDO软件包使用手册目录第一节简介与安装第二节用LINDO求解线性规划(LP) 问题第三节用LINDO求解整数规划(IP) 和二次规划(QP) 问题第四节GINO简介第五节LINGO简介第一节简介与安装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的一些注意事项
![使用LINDO的一些注意事项](https://img.taocdn.com/s3/m/1a80e5cd172ded630b1cb66b.png)
LINGO软件简介
LINGO模型的优点
•包含了LINDO的全部功能 •提供了灵活的编程语言(矩阵生成器)
LINGO模型的构成:4个段
•目标与约束段 • 集合段(SETS ENDSETS)
• 数据段(DATA ENDDATA) •初始段(INIT ENDINIT)
LINGO模型 — 例:选址问题
某公司有6个建筑工地,位置坐标为(ai, bi) (单位:公里), 水泥日用量di (单位:吨)
•使用LINDO的一 些注意事项
使用LINDO的一些注意事项
9. 变量不能出现在一个约束条件的右端 10. 表达式中不接受括号“( )”和逗号“,”等任何符号, 例: 400(X1+X2)需写为400X1+400X2 11. 表达式应化简,如2X1+3X2- 4X1应写成 -2X1+3X2 12. 缺省假定所有变量非负;可在模型的“END”语句 后用“FREE name”将变量name的非负假定取消 13. 可在 “END”后用“SUB” 或“SLB” 设定变量上 下界 例如: “sub x1 10”的作用等价于“x1<=10” 但用“SUB”和“SLB”表示的上下界约束不计入模 型的约束,也不能给出其松紧判断和敏感性分析。 14. “END”后对0-1变量说明:INT n 或 INT name 15. “END”后对整数变量说明:GIN n 或 GIN name
第一行:模型有5行(约束4行),4个变量,两个整数变量(没有 0-1变量),从第4行开始是二次规划的实际约束。 第二行:非零系数19个,约束中非零系数12个(其中6个为1或-1), 模型密度为0.760(密度=非零系数/[行数*(变量数+1)]) 。 第三行的意思:按绝对值看,系数最小、最大分别为0.3和277。 第四行的意思:模型目标为极小化;小于等于、等于、大于等于约 束分别有2、0、2个;广义上界约束(GUBS)不超过1个; 变量上界约束(VUBS)不少于0个。所谓GUBS,是指一组不 含有相同变量的约束;所谓VUBS,是指一个蕴涵变量上界的约 束,如从约束X1+X2-X3=0可以看出,若X3=0,则X1=0,X2=0 (因为有非负限制),因此X1+X2-X3=0是一个VUBS约束。 第五行的意思:只含1个变量的约束个数=0个;冗余的列数=0个
Lindo使用(经典 推荐)
![Lindo使用(经典 推荐)](https://img.taocdn.com/s3/m/b699173667ec102de2bd89cd.png)
1LINDO软件使用1.1 LINDO简介1.1.1LINDO是什么LINDO 是Linear, INteractive, and Discrete Optimizer的缩写,它是一个便利而有强大的工具软件,常用于求解线性规划(LP——Linear Programming)、整数规划(IP——Integer Programming)和二次规划(QP——Quadratic Programming)问题,这些问题一般在商业、工业、科研和政府工作中都会遇到。
LINDO已被证实在一些特殊领域能发挥巨大作用,如产品配售、配料问题、生产与人员时序安排、库存管理等。
LINDO软件易学易用、运行速度快、结果报告内容详尽。
如果你是一个初学者,你将发现LINDO非常容易上手。
例如,一个用户希望求解:Maxmize 3X + 2YSubject to4X + 3Y < 103X + 5Y < 12那么这就是他所需输入的东西,而LINDO马上就可以求解出结果并给以报告单。
问题以简单明了的方程式形式出现,通过帮助命令可以查询命令的使用方法,LINDO 同时提供了高级建模帮助。
如果你是优化方面的专家,你将对LINDO的强大而又健全的功能留下深刻印象,它具备你所需的所有高级命令:模型输入、求解、结果展示和结果分析。
如果你是一个开发者,你还可以通过自己的应用程序调用LINDO DLL算法。
在某些特殊情况下,LINDO被用来解决工业上的大型线性、二次、整数规划问题,例如在大型机器上,LINDO曾用来解决含多达50,000个约束和200,000个变量的问题。
在演示版中LINDO6.01中,可求解含50个约束和100个变量的问题使用LINDO软件有三种基本方式:z对于中小型问题,可以通过键盘直接输入模型并求解z可以调用通过其它方式产生的文件(包含命令描述和数据录入),并生成报表文件z用户自编子程序可以直接链接LINDO,构造一个包含自己的代码和LINDO优化库的完整程序,1.1.2常用菜单和命令在Windows环境中,LINDO将所有命令划分为如下六个类别:z Filez Editz Solvez Reportsz Windowz Help这些类别在运行LINDO时很容易从菜单上看到,在本节后面将给出其功能描述,在描述每条命令的同时,还列出了相应的工具栏上的按钮和相应的快捷键组合。
Lindo的简单使用方法(终结版)
![Lindo的简单使用方法(终结版)](https://img.taocdn.com/s3/m/c72c121b964bcf84b9d57b60.png)
LINDO的简单使用方法一、LINDO软件的基本特性LINDO是一种专门用于求解数学规划问题的软件包。
由于LINDO执行速度很快、易于方便输入、求解和分析数学规划问题。
因此在数学、科研和工业界得到广泛应用。
LINDO主要用于解线性规划、非线性规划、二次规划和整数规划等问题。
也可以用于一些非线性和线性方程组的求解以及代数方程求根等。
LINDO中包含了一种建模语言和许多常用的数学函数(包括大量概论函数),可供使用者建立规划问题时调用。
一般用LINDO(Linear Interactive and Discrete Optimizer)解决线性规划(LP—Linear Programming)、整数规划(IP—Integer Programming)问题。
它的最新版本——LINDO6.1版可求解最多含有4000个约束、8000个变量、800个整型变量的问题。
二、LINDO使用的一般说明(一)软件的基本指令点击进入LINDO 操作界面后,系统在屏幕的下方打开一个编辑窗口,其默认标题是”untitled”。
屏幕的上方有【File】、【Edit】、【Solve】、【Reports】、【Window】、【Help】六个菜单,除【Solve】和【Reports】菜单外,其他功能与一般Windows 菜单大致相同。
而【Solve】和【Reports】菜单的功能很丰富,这里只对其最简单常用的命令作一简单的解释。
1【Solve】菜单〖Solve〗子菜单,用于求解在当前编辑窗口中的模型,该命令也可以改用快捷键Ctrl+S 或用快捷按钮来执行。
〖Compile Model〗子菜单,用于编译在当前编辑窗口中的模型,该命令也可以改用快捷键Ctrl+E 或用快捷按钮来执行。
LINDO 求解一个模型时,总是要将其编译成LINDO 所能处理的程序而进行,这一般由LINDO 自动进行,但有时用户需要先将模型编译一下查对是否有错,则用到此命令。
数学软件 Lindo 的使用介绍
![数学软件 Lindo 的使用介绍](https://img.taocdn.com/s3/m/c98dd0fafab069dc502201e6.png)
一、软件简介
LINDO(Linear Interactive and Discrete Optimizer)是一种专
门用于求解数学规划问题的软件包. 由于LINDO执行速度 求解和分析数学规划问题. 快、易于方便输入、求解和分析数学规划问题 因此, 在数 学、科研和工业界得到广泛应用 LINDO主要用于解 、 科研和工业界得到广泛应用. 主要用于解LP NLP、QP和IP等问题 也可以用于一些非线性和线性方程 等问题.也可以用于一些非线性和线性方程 和 等问题 组的求解以及代数方程求根等. 组的求解以及代数方程求根等 LINDO中包含了一种建模 语言和许多常用的数学函数(包括大量概率函数 语言和许多常用的数学函数 包括大量概率函数), 可供使 包括大量概率函数 用者建立规划问题时调用. 用者建立规划问题时调用
LINDO是规定 非负的 我们可以发现输入方式与我们 是规定xj非负的 是规定 非负的, 的数学书写的形式基本一致, 运算后, 的数学书写的形式基本一致 运算后 计算机会问您是 否需要灵敏度分析, 我们选择是, 结果如下: 否需要灵敏度分析 我们选择是 结果如下
LP OPTIMUM FOUND AT STEP 1) 933400.0 VARIABLE X1 X2 X3 X4 X5 X6 X7 X8 VALUE 161351.734375 265200.000000 408100.000000 98748.265625 218648.265625 0.000000 0.000000 31351.734375
6、“DUAL PRICE”(对偶价格 列出最优单纯形表中判别 、 对偶价格)列出最优单纯形表中判别 对偶价格 数所在行的松弛变量的系数, 数所在行的松弛变量的系数 表示当对应约束有微小变 动时,目标函数的变化率 动时 目标函数的变化率, 输出结果中对应每一个约束有 目标函数的变化率 一个对偶价格.若其数值为 一个对偶价格 若其数值为X, 表示对应约束中不等式右 若其数值为 端项若增加一个单位, 目标函数将增加 个单位 个单位(max型 端项若增加一个单位 目标函数将增加X个单位 型 问题). 上例中: 第二行对应的对偶价格值应为-1表示当 问题 上例中 第二行对应的对偶价格值应为 表示当 约束2)x5+x6+x7+x8>250000变为2)x5+x6+x7+x8>250001时, 目标函数值=933400-1=933399
lindo软件使用快速入门
![lindo软件使用快速入门](https://img.taocdn.com/s3/m/d668798683d049649b665879.png)
湖南科技大学信息与电气工程学院李众序Lindo可以用于求解线性规划(Linear Problem)和二次规划(Quadratic Programming).本文着重解决比较常见的线性规划问题。
尤其是关于DEA的问题。
1.1初识LINDO双击图标屏幕会显示如下图的LINDO标准界面这就是LINDO用户界面。
目前光标所在的子窗口为模型窗口(Model Window), 用户可以在这里输入要求解的规划模型。
目前这个子窗口标有“”字样,表示用户还没有为这个模型的文件命名,因此LINDO采用了一个自动生成的名字“untitled”,将来用户在保存模型时可以对它重新命名。
1.2使用LINDO解线性规划问题(Linear Problem)例如我们要求下列线性规划问题Max 5x+3y+6z //限定条件,即求等式右边的最大值s.t 4x+3y+2z<=103x+5y+4z<=204x+2y+4z<=15X,y,z>0那么,我们可以直接在上述窗口输入这个模型我们可以看到上面的输入格式基本上与手写的格式差不多,所以可以说这款软件的用户界面相当人性化。
其中ST表示约束条件,C2,C3表示行数。
求解这个问题的时候我门可以点软件的这个图标,这个时候便弹出了一下对话框。
上图标含有以下信息:当前状态:已经达到最优解迭代次数: 1约束不满足的量:0当前的目标值:22.5最好的整数解:没有答案整数规划的界:没有答案分枝数:没有答案所用时间:0.00秒现在这个模型就解完了,那么最优解在哪里呢?用鼠标点“Window”,你会发现有一个“Report Window”写在那里,这就是最终结果的报告窗口。
用鼠标选择“Report Window”,就可以查看该窗口的内容,如下上面表示的意思是“LP OPTIMUM FOUND AT STEP2”表示单纯形法在两次迭代(旋转)后得到最优解。
“OBJECTIVE FUNCTION VALUE” 1)22.50000表示最优目标值为 22.50000“VALUE”给出最优解中各变量(VARIABLE)的值: X=0.000000 Y=0.000000 Z=3.750000 “REDUCED COST”给出最优的单纯形表中目标函数行(第1行)中变量的系数(即各个变量的检验数),其中基变量的reduced cost 值为1.000000。
lindo,lingo使用几个重要方面
![lindo,lingo使用几个重要方面](https://img.taocdn.com/s3/m/e024d9d528ea81c758f578a5.png)
LINGO模型的构成:4个段 模型的构成: 个段 模型的构成
目标与约束段 目标与约束段 集合段(SETS 集合段( ENDSETS) )
数据段(DATA ENDDATA) 数据段( ) 初始段(INIT ENDINIT) 初始段( 初始段 )
LINGO模型 LINGO模型 — 例:选址问题
某公司有6个建筑工地,位置坐标为 单位: 某公司有 个建筑工地,位置坐标为(ai, bi) (单位:公里 个建筑工地 单位 公里), 单位: 水泥日用量d 单位 水泥日用量 i (单位:吨)
使用LINDO的一些注意事项 使用LINDO的一些注意事项 LINDO
9. 变量不能出现在一个约束条件的右端 10. 表达式中不接受括号“( )”和逗号“,”等任何符号 例: 等任何符号, 表达式中不接受括号“ 和逗号“ 等任何符号 和逗号 400(X1+X2)需写为 需写为400X1+400X2 需写为 11. 表达式应化简,如2X1+3X2- 4X1应写成 -2X1+3X2 表达式应化简, 应写成 12. 缺省假定所有变量非负;可在模型的“END”语句后用 缺省假定所有变量非负;可在模型的“ 语句后用 将变量name的非负假定取消 “FREE name”将变量 将变量 的非负假定取消 13. 可在 “END”后用“SUB” 或“SLB” 设定变量上下界 后用“ 后用 例如: 的作用等价于“ 例如: “sub x1 10”的作用等价于“x1<=10” 的作用等价于 但用“ 但用“SUB”和“SLB”表示的上下界约束不计入模型的约 和 表示的上下界约束不计入模型的约 也不能给出其松紧判断和敏感性分析。 束,也不能给出其松紧判断和敏感性分析。 14. “END”后对 变量说明:INT n 或 INT name 后对0-1变量说明 后对 变量说明: 15. “END”后对整数变量说明:GIN n 或 GIN name 后对整数变量说明: 后对整数变量说明
lindo_lingo的使用
![lindo_lingo的使用](https://img.taocdn.com/s3/m/f017e6eeaeaad1f346933fc1.png)
二、用LINDO求解整数规划(IP) LINDO求解整数规划 IP) 求解整数规划(
例 3 如下IP问题: 如下IP问题 问题: min 15x11+19x21+26x31+19x41+18x12+23x22+17x32+2 1x42+24x13+22x23+16x33+23x43+24x14+18x24+19 x34+17x44 ST x11+x12+x13+x14=1 x21+x22+x23+x24=1 x31+x32+x33+x34=1 x41+x42+x43+x44=1 x11+x21+x31+x41=1 x12+x22+x32+x42=1 x13+x23+x33+x43=1 x14+x24+x34+x44=1 end int 16
下面我们就用LINDO 来解这一优化问题。 下面我们就用LINDO 来解这一优化问题
输入语句: max(不区分大小写,min) x1+x2+x3+x4 ST(大写或写subject to) x5+x6+x7+x8>=250000 x1+x5<=380000 x2+x6<=265200 x3+x7<=408100 x4+x8<=130100 2.85x1-1.42x2+4.27x318.49x4>=0 2.85x5-1.42x6+4.27x718.49x8>=0 16.5x1+2.0x2-4.0x3+17x4>=0 7.5x5-7.0x6-13.0x7+8.0x8>=0 end
LINDO软件的基本使用方法
![LINDO软件的基本使用方法](https://img.taocdn.com/s3/m/bf35369326fff705cc170a5c.png)
Update Interval
显示和控制刷新本界面的时间间隔:“1”表示1秒;用
(刷新本界面的时间间隔) 户可以直接在界面上修改这个时间间隔。
Interrupt Solver (中断求解程序)
当模型规模比较大时(尤其对整数规划),可能求解时 间会很长,如果不想再等待下去时,可以在程序运行过 程中用鼠标点击该按钮终止计算。求解结束后这个按钮 变成了灰色,再点击就不起作用了。
优化建模
§2.1 LINDO入门
内容提要: 1. LINDO软件的安装 2. 编写一个简单的LINDO程序 3. 一些注意事项
ห้องสมุดไป่ตู้
优化建模
§2.1.1 LINDO软件的安装
本教材使用软件是 LINDO 6.1 for Windows试用版
安装过程中,用户只需要按照程序给出的提示, 一步一步走下去,直到安装成功为止。
显示迭代次数:“2”表示经过了2次迭代。
约束不满足的量(即各个约束条件不满足的“数量” 的和;特别注意不是“不满足的约束个数”):“0” 表示这个解是可行的。 显示目标函数当前的值:7.45455。
显示整数规划当前的最佳目标值:“N/A” (No Answer或Not Applicable)表示无答案或无意义,因 为这个模型中没有整数变量,不是整数规划(IP)。
“VALUE” 给出最优解中各变量(VARIABLE)的值: X =1.272727, Y =1.636364.
优化建模
“REDUCED COST” 给出最优的单纯形表中目标函数行(第1 行)中变量对应的系数(即各个变量的检验数(也称为判别 数)). 其中基变量的reduced cost值一定为0;对于非基变量 (注意:非基变量本身取值一定为0), 相应的 reduced cost 值表示当该非基变量增加一个单位(其他非基变量保持不变) 时目标函数减少的量( 对max型问题)。本例最优解中两个变量 都是基变量,所以对应的REDUCED COST的值均为0。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一般整数规划
LINDO和LINGO软件能求解的优化模型
LINDO/LINGO软件的求解过程
建模时需要注意的几个基本问题
1、尽量使用实数优化模型,减少整数约束和整数变量的 个数 2、尽量使用光滑优化模型,减少非光滑约束的个数 如:尽量少地使用绝对值函数(|x|)、符号函数 (当变量x为正数时取1,为0时取0,为-1时取-1)、 多个变量求最大(或最小)值、四舍五入函数、取整函数 等 3、尽量使用线性优化模型,减少非线性约束和非线性变 量 的个数(如x/y<5 改为x<5y) 4、合理设定变量的上下界,尽可能给出变量的初始值 5、模型中使用的单位的数量级要适当(如小于1000倍)
也可理解为: 为了使该非基变 量变成基变量, 目标函数中对应 系数应增加的量
LP OPTIMUM FOUND AT STEP 2 OBJECTIVE FUNCTION VALUE 1) 3360.000 VALUE REDUCED COST
VARIABLE
X1
X2
20.000000
30.000000
DO RANGE(SENSITIVITY) ANALYSIS? Yes
最优解不变时目标函数 RANGES IN WHICH THE BASIS IS UNCHANGED: 系数允许变化范围 OBJ COEFFICIENT RANGES VARIABLE CURRENT ALLOWABLE ALLOWABLE (约束条件不变) COEF INCREASE DECREASE X1 72.000000 24.000000 8.000000 x1系数范围(64,96) 64.000000 8.000000 16.000000 RIGHTHAND SIDE RANGES ROW CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE 2 3 4 50.000000 480.000000 100.000000 10.000000 53.333332 INFINITY 6.666667 80.000000 40.000000 X2 x2系数范围(48,72)
模型求解
Lindo 6.1 软件实现
LP OPTIMUM FOUND AT STEP 2
max 72x1+64x2 st 2) x1+x2<50 3) 12x1+8x2<480 4) 3x1<100 end
OBJECTIVE FUNCTION VALUE 1) 3360.000 VALUE 20.000000 30.000000 REDUCED COST 0.000000 0.000000 DUAL PRICES
LINDO的一些注意事项(一)
1.LINDO中的变量名由字母和数字组成,但必须以字母开头, 且长度不能超过8个字符(只能是英文字符,不能含有中文字 符)。 2.LINDO中不区分大小写字母,包括LINDO中本身的关键字 (如:MAX、MIN等)也不区分大小写字母。 3.LINDO中对优化模型的目标和约束用行号(行名)进行标识, 这些标识会在将来的求解结果报告中用到。用户没有指定行号 (行名)时,系统将自动产生行号,将目标函数所在的行作为 第1行,从第2行起为约束条件。用户也可以人为定义行号或 行名,行号或行名总是以“)”结束,放在相应的约束之前; 行号或行名可以和变量名一样命名,也可以只用数字命名,但 长度同样不能超过8个字符。 4.在LINDO模型的任何地方都可以用“TITLE”语句对输入的 模型命名,用法是在TITLE后面写出其名字(最多72个字符, 可以有汉字),在程序中单独占一行。如:TITLE 第2个例子。
Lindo语法规则
max z 2 x 3 y; 4 x 3 y 10, 3x 5 y 12, x, y 0 (1) (2) (3) (4)
目标函数以MAX或MIN开 头,以END结束,约束条 件以下面几个符号开始。 SUBJECT TO S.T. ST
s.t.
MAX 2x+3y ST !说明:也可以写成 S.T. 或 SUBJECT TO c2) 4X+3y<=10 c3) 3x+5y<12 END
LINDO的一些注意事项(三)
9.可以在模型的“END”语句后面用命令“SUB”(即设置上 界)设定变量的上界,用命令“SLB”设定变量的下界。其用 法是:“SUB vname value”将变量vname的上限设定为 value;但是,用“SUB”和“SLB”表示的上下界约束不计 入模型的约束,因此LINDO也不能给出其松紧判断和敏感性分 析。 10.数值均衡化及其他考虑:约束系数矩阵中的各非零元的绝 对值的数量级差别不能大于1000倍;此外,系数中非零元的 绝对值不能大于100000或者小于0.0001。 11.简单错误的检查和避免。菜单命令“Report|Pictures (Alt+5)”,可以将目标函数和约束表达式中的非零系数通 过列表(或图形)显示出来。
1) 3360.000 VALUE REDUCED COST
结果解释
0.000000
0.000000 DUAL PRICES
VARIABLE
X1
X2
20.000000
30.000000
最优解下“资源”增加1 单位时“效益”的增量
ROW SLACK OR SURPLUS
影子价格
2)
3) 4)
0.000000
Iterations (迭代次数) Infeasibility (不可行性) Objective (当前的目标值) Best IP (整数规划当前的最 佳目标值) IP Bound (整数规划的界) Branches(分支数) Elapsed Time (所用时间) Update Interval (刷新本界 面的时间间隔) Interrupt Solver (中断求解 程序) Close (关闭)
优化模型与LINDO 软件
何亚辉 重庆理工大学网络信息中心
Email:hyh@
优化模型
决策问题:在一系列客观或主管限制条件下,寻求使所关注的某 个或多个指标达到最大(或最小)的决策。例如:
资源分配要在有限资源约束下制定各用户的分配数量,使资 源生产的总效益最大; 运输方案要在满足物资需求和装载条件下安排从各供应点到各需 求点的运量和路线,使运输总费用最低; 生产计划要按照产品工艺流程和顾客需求,制定原料、零件、部 件等订购、投产的日程和数量,尽量降低成本使利润最高。
上述这种决策问题通常称为最优化(Optimization,简称为优 化)问题。 解决优化问题的手段: (1)依赖过去的经验判断面临的问题 (2)做大量的试验反复比较 (3)用数学建模的方法建立优化模型求解最优决策,简称为优化建 模。
优化模型
实际中的 优化模型
Min(Max)
z f ( x)(x ( x1, x2 ...xn )T )
0.000000 40.000000
48.000000
2.000000 0.000000
原料增加1单位, 利润增长48 时间增加1单位, 利润增长2 加工能力增长不影响利润
NO. ITERATIONS=
பைடு நூலகம்
2
35元可买到1桶牛奶,要买吗? 35 <48, 应该买! 聘用临时工人付出的工资最多每小时几元? 2元!
x1系数由24 ×3=72增 加为30×3=90,在 允许范围内
A1获利增加到30元/千克,应否改变生产计划?
不变。
结果解释
影子价格有意义时约束右端的允许变化范围
RANGES IN WHICH THE BASIS IS UNCHANGED: OBJ COEFFICIENT RANGES VARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE X1 72.000000 24.000000 8.000000 64.000000 8.000000 16.000000 RIGHTHAND SIDE RANGES ROW CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE 2 3 4 50.000000 480.000000 100.000000 10.000000 53.333332 INFINITY 6.666667 80.000000 40.000000 X2
0.000000
0.000000 DUAL PRICES
ROW SLACK OR SURPLUS 2) 3) 4) 0.000000 0.000000 40.000000 2
48.000000 2.000000 0.000000
NO. ITERATIONS=
结果解释
max 72x1+64x2 st 2) x1+x2<50 3) 12x1+8x2<480 4) 3x1<100 end
LINDO求解器运行状态窗口显示的相应信息及含义
名 称 Status (当前状态) 说明 给出当前解决方案的状态,可能的值包括:Optimal(最 优的), Feasible(可行的), Infeasible(不可行的) ,Unbounded(未定的) 显示迭代次数 约束不满足的量:“0”表示这个解是可行的。 目标函数的当前值 显示整数规划当前的最佳目标值:“N/A”表示无答案或 无意义。该项只出现在IP(整数规划)模型。 整数规划的界(对最大化问题显示上界;最小化问题显 示下界) 显示分支定界算法已经计算的分支数 显示计算所用时间(单位:s):“0.00”说明计算太快 了,用时不到0.005s 显示和控制刷新本界面的时间间隔:“1”表示1s;用户 可以直接在界面上修改这个时间间隔 当模型规模比较大时(尤其对整数规划),可能求解时 间会很长,如果不想再等待下去时,可以在程序运行过 程中用鼠标单击该按钮终止计算。 按下该按钮关闭状态窗口,并不终止计算。状态窗口可 以通过选取相应命令重新打开。