LINDO软件使用指导

合集下载

线性规划Lindo软件-整数规划

线性规划Lindo软件-整数规划

定制化不足
对于特定领域的整数规划问题, 可能需要针对具体问题对软件进 行定制化开发。
未来研究的方向与展望
算法改进
随着计算技术的发展,未来可以进一步优化 Lindo软件的算法,提高求解速度和精度。
扩展应用领域
随着整数规划问题的多样化,未来可以进一步拓展 Lindo软件的应用领域,如金融、物流、能源等领 域。
整数规划的求解方法
分支定界法
通过不断分割可行解空间和排除不可行解空 间来逼近最优解。
割平面法
通过逐步构建整数解来逼近最优解,适用于 小规模问题。
回溯法
通过添加割平面来缩小可行解空间,最终找 到最优解。
Lindo软件求解法
使用Lindo软件进行整数规划求解,具有高效 、稳定、易操作等优点。
04
使用Lindo软件进行整数规划
在求解结果查看界面中,可以查看问题的最优解、最优值、变量取值等信 息。
可以使用软件提供的图表功能,绘制变量取值与目标函数之间的关系图, 以便更好地理解问题的解。
05
案例分析
案例一:简单的整数规划问题
问题描述
01
考虑一个简单的整数规划问题,目标是最小化目标函数,同时
满足一系列线性约束条件。
解决方案
• 易用性:用户界面友好,操作简单,无需复杂的编程知识 即可使用。
Lindo软件在整数规划中的优势与限制
依赖性
Lindo软件的功能和性能高度依赖 于计算机硬件配置,高性能计算 机是求解大规模问题的必要条件。
模型限制
对于某些特殊类型的整数规划问 题,如非凸或非线性问题,Lindo 软件的求解效果可能有限。
在约束条件设置界面中,根据问题数据设置相 应的约束条件,如“less than”、“equal to”或“greater than”。

LINDO软件的使用

LINDO软件的使用
运筹学》 《运筹学》 LINDO软件的使用 软件的使用 Slide 16
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软件使用简介

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教程

十、Lindo 软件求解线性规划问题LINDO (Linear INteractive and Discrete Optimizer)是一种专门用于求解数学规划问题的软件包,由于执行速度快、易于方便输入、求解和分析数学规划问题,因此在数学、科研和工业界得到广泛应用。

主要用于求解线性规划(LP —Linear Programming )、非线性规划(NLP -Non-Linear Programming )、二次规划(QP —Quadratic Programming )和整数规划(IP —Integer Programming )等问题。

学生版的LINDO 可以处理最多含有300个变量和150个约束条件规划问题。

注意事项:● 目标函数可以是Max 也可以是 Min ,在输入到Lindo 软件的时候可以是大写MAX (MIN )也可以是小写max (min );● 目标函数与约束条之间用ST 、subject to 隔开;● 变量名不超过8个字符● 变量与其系数之间不需要“*”连接,比如:3A1,不要写成3*A1;● 所有变量都是非负的,所以我们前面给大家讲了线性规划必须写成标准形式;● 如果要输入≤或≥,可以用 < 或 > 代替;● Lindo 中不允许变量出现在一个约束条件的右端;● Lindo 不能接受“()”,如:400(X1+X2)要写成400X1+400X2,10000不能写成10,000● 表达式最好适当的简化,不要出现2X1+3X2-4X1,要写出-2X1+3X2; ● 最后用end 结束;● 整数规划(IP )问题在END 标志后需定义整型变量。

0-1 变量:用INT vname (Vname 为0-1 变量)或INT n (前n 个变量为0-1 变量)来标识。

一般整数变量:将INT 变为GIN 。

结合一个例子说明一下其他的事项:例1 16y x 21y 10x y15x 10max <+≤≤+Step1 输入模型如下:图1例题15Lind o程序Step2 点击运行按钮后,就可以执行Step3 执行后会看到如下两个对话框图 1 例题1的求解状态图2 例1 是否要做灵敏度分析Step4 选择“是”得到如下结果LP OPTIMUM FOUND A T STEP 2OBJECTIVE FUNCTION V ALUE1) 220.0000V ARIABLE VALUE REDUCED COST X1 4.000000 0.000000X2 12.000000 0.000000ROW SLACK OR SURPLUS DUAL PRICES2) 6.000000 0.0000003) 0.000000 5.0000004) 0.000000 10.000000NO. ITERATIONS= 2LP OPTIMUM FOUND A T STEP 2OBJECTIVE FUNCTION V ALUE1) 220.0000V ARIABLE VALUE REDUCED COST X1 4.000000 0.000000X2 12.000000 0.000000ROW SLACK OR SURPLUS DUAL PRICES2) 6.000000 0.0000003) 0.000000 5.0000004) 0.000000 10.000000NO. ITERATIONS= 2RANGES IN WHICH THE BASIS IS UNCHANGED:OBJ COEFFICIENT RANGESV ARIABLE CURRENT ALLOWABLE ALLOWABLECOEF INCREASE DECREASE X1 10.000000 5.000000 10.000000X2 15.000000 INFINITY 5.000000RIGHTHAND SIDE RANGESROW CURRENT ALLOWABLE ALLOWABLERHS INCREASE DECREASE2 10.000000 INFINITY 6.0000003 12.000000 4.000000 6.0000004 16.000000 6.000000 4.000000例16 一个线性规划模型的Lindo程序如下:max x1+x2+x3+x4STx5+x6+x7+x8>=250000x1+x5<=380000x2+x6<=265200x3+x7<=408100x4+x8<=1301002.85x1-1.42x2+4.27x3-18.49x4>=02.85x5-1.42x6+4.27x7-18.49x8>=016.5x1+2.0x2-4.0x3+17x4>=07.5x5-7.0x6-13.0x7+8.0x8>=0endLindo求解结果,带有灵敏度分析:LP OPTIMUM FOUND A T STEP 6OBJECTIVE FUNCTION V ALUE1) 933400.0V ARIABLE V ALUE REDUCED COSTX1 161351.734375 0.000000X2 265200.000000 0.000000X3 408100.000000 0.000000X4 98748.265625 0.000000X5 218648.265625 0.000000X6 0.000000 0.000000X7 0.000000 0.000000X8 31351.734375 0.000000ROW SLACK OR SURPLUS DUAL PRICES2) 0.000000 -1.0000003) 0.000000 1.0000004) 0.000000 1.0000005) 0.000000 1.0000006) 0.000000 1.0000007) 0.000000 0.0000008) 43454.000000 0.0000009) 3239024.250000 0.00000010) 1890675.875000 0.000000NO. ITERA TIONS= 6RANGES IN WHICH THE BASIS IS UNCHANGED:OBJ COEFFICIENT RANGESV ARIABLE CURRENT COEF ALLOWABLE INCREASE ALLOWABLE DECREASE X1 1.000000 0.000000 1.154137X2 1.000000 INFINITY0.000000X3 1.000000 INFINITY0.000000X4 1.000000 0.000000 0.000000X5 0.000000 1.154137 0.000000X6 0.000000 0.000000 INFINITYX7 0.000000 0.000000 INFINITYX8 0.000000 0.000000 0.000000RIGHTHAND SIDE RANGESROW CURRENT RHS ALLOWABLE INCREASE ALLOWABLE DECREASE2 250000.000000 186222.062500 234752.9843753 380000.000000 234752.984375 15247.0175784 265200.000000 30601.410156 265200.0000005 408100.000000 156685.250000 10176.5810556 130100.000000 2350.135254 36184.2070317 0.000000 43454.000000 669046.0000008 0.000000 43454.000000 INFINITY9 0.000000 3239024.250000 INFINITY10 0.000000 1890675.875000 INFINITY分析:⏹“LP OPTIMUM FOUND A T STEP 6”表示LINDO 在(用单纯形法)6次迭代后得到最优解。

LINDO、LINGO软件的使用方法

LINDO、LINGO软件的使用方法

例1的数 学模型
max Z 32 x1 30 x2 3x1 4 x2 36 5 x1 4 x2 40 9 x1 8 x2 76 x1 , x2 0
LINDO/LINGOl软件简介
第1节 第2节 LINDO LINGO
第1节 LINDO软件
一、LINDO软件的使用格式 二、LINDO输出结果分析
一、LINDO软件的使用格式
LINDO软件是一种专门用于求解线性 规划问题的软件包,由于LINDO执行速度很 快且输入方便,易于求解和分析规划问题, 因此在科研和工业界得到广泛应用。
影子价格: 资源每增加1个单位时,目标函数Z增加的值 (1) 设备A每增加1台时,利润增加1.166667元
(2) 设备B每增加1台时,利润不增加
(3) 设备C每增加1台时,利润增加3.166667元
第4部分数据的分析
Ranges in which the basis is unchanged: Objective Coefficient Ranges Current Allowable Allowable Coefficient Increase Decrease 32.00000 1.750000 9.500000 30.00000 12.66667 1.555556
2 最优值为:282.667 即 Z max 282 3 最优解为: x1=1.3333 即 x 1 1 1 3 x2=8
第3部分的数据分析(1)
在最优解的情况 下资源是否有剩 余(或超量)
Row Slack or Surplus Dual Price 2) 0.000000 在最优解下,设 3) 1.333333 备A、C无剩余 4) 0.000000

LINDO使用手册

LINDO使用手册

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 数学软件的简单使用方法一、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

Basis Picture Tableau
Formulation Show Column Positive Definite
快捷键:Alt+1 快捷键:Alt+2 快捷键:Alt+3 快捷键:Alt+4 快捷键:Alt+5 快捷键:Alt+6 快捷键:Alt+7 快捷键:Alt+8 快捷键:Alt+9
快捷键:F8 按钮:
可以打印报告、命令和模型;如果打印效果不 佳,可以通过 Print Setup 修改打印设置
Print Setup
Log Output
Take Commands Basis Read Basis Save Title Date Elapsed Time Exit
打印设置 快捷键:F9
快捷键:Alt+O 按钮: 跳到窗口中给定的行号
快捷键:Ctrl+T 按钮:
允许你粘贴变量名和系统保留符 号到活动窗口中
快捷键:Ctrl+P 按钮: 选中活动窗口中所有文本 快捷键:Ctrl+A 清除窗口中所有内容
重置活动窗口字体
这在想拷贝窗口中全部内容是很有用
这在想清除报告中旧内容有用;可通过 Undo 恢复 这可提高窗口中内容可读性
的完整程序,
1.1.2 常用菜单和命令
在 Windows 环境中,LINDO 将所有命令划分为如下六个类别: z File z Edit z Solve z Reports z Window z Help 这些类别在运行 LINDO 时很容易从菜单上看到,在本节后面将给出其功能描述,在描 述每条命令的同时,还列出了相应的工具栏上的按钮和相应的快捷键组合。 工具栏位于 LINDO 窗口上方,形如下图:

LINDO2

第2章 LINDO软件的使用方法2.1 LINDO软件的安装前面说过,LINDO用于求解线性规划(LP)和二次规划(QP),包括整数规划(IP),本章进行详细介绍。

首先需要在Windows操作系统下安装LINDO软件,笔者完成本书有时使用的是Windows 2000操作系统,有时是Windows XP,都是简体汉字版。

LINDO 6.1 for Windows软件非常容易安装,只需要在Windows操作系统下将安装光盘(或软盘)插入光驱(或软驱),运行其中的安装程序(通常是SETUP.EXE)就可以了。

有时从LINDO 系统公司或其他渠道得到安装程序,可能直接是一个自解压的可执行性文件(如LND61.exe,大致是3M多一些),那么就直接运行这个程序进行安装就可以了。

安装过程中,用户只需要按照程序给出的提示,一步一步走下去,直到安装成功为止。

通常,用户首先需要接受用户协议,然后选择将LINDO软件安装到的目的地(一般是硬盘上的某个目录)。

屏幕将提示缺省的安装目录,您可以任意修改,如此反复,完成后屏幕将提示您确认您的选择。

确认您的选择之后,安装程序就会自动完成全部后续安装过程。

安装过程成功结束后,您就可以在Windows操作系统下运行LINDO优化软件了。

第一次运行LINDO时,LINDO要求你输入密码(Password),界面如图1所示。

如果你买的是正版软件,请在密码框中输入LINDO公司给你提供的许可证密码,按“OK”按钮即可。

否则,你只能使用演示版,按下“Demo Version” (演示版,即试用版) 按钮即可。

图1查看安装LINDO软件的硬盘目录,通常可以看到其中有一个名为SAMPLES的子目录,该子目录下有很多名为*.LTX的文件,后缀LTX表明这些文件是LINDO文本(LINDO TEXT)文件,每个文件是一个线性规划的小例子,对初学者学习LINDO的使用很有帮助,所以请大家最好记住这个子目录的位置。

LINDO软件用法简介

O软件后,首先会弹出一个窗口 (上面标有untitled,意谓没有命名).我们就可以输 入LINDO源程序了.采用水平输入,变量取名通 其他软件,不用下标;乘号不用也不能输入,非负 约束不用输入,<即为 ,以end结尾.不能用括号. 格式为 • max 2x1+3x2 • St • 2x1+5x2<80 • 8x1-2x2<20 • end
Range Analysis解释
• 与我们上次介绍的参数规划问题不同的 是,range analysis中的结果是仅仅考虑目 标行的某一个系数的变化范围,即当其他 条件不变时,该系数在此范围内变化时,最 优解保持不变.有点类似我们分析中的偏 导数概念,而上节讲的参数规划问题类似 于全微分.其他的我们通过后面的例子进 一步解释.
当一行输入太长时,可在下一个+好前回车即可表示续 行.
当我们输完源程序后,最好保存,下拉file所 在的菜单,点击save,会弹出一个窗口,源程序 • 名自动以ltx为扩展名.然后运行程序,点击 solve,运行之后会有一个选择窗口,问 • DO RANGE(SENSITIVITY) ANALYSES • YES NO • 我们选择yes就是了.我们只等着阅读报告, 一般小的规划问题立刻就可出来结果.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、软件简介
LINDO是一种专门用于求解数学规划问题的软件包。

由于LINDO执行速度很快、易于方便输入、求解和分析数学规划问题。

因此在数学、科研和工业界得到广泛应用。

LINDO主要用于解线性规划、非线性规划、二次规划和整数规划等问题。

也可以用于一些非线性和线性方程组的求解以及代数方程求根等。

LINDO 中包含了一种建模语言和许多常用的数学函数(包括大量概论函数),可供使用者建立规划问题时调用。

一般用LINDO(Linear Interactive and Discrete Optimizer)解决线性规划(LP—Linear Programming)。

整数规划(IP—Integer Programming)问题。

其中LINDO 6 .1 学生版至多可求解多达300个变量和150个约束的规划问题。

其正式版(标准版)则可求解的变量和约束在1量级以上。

LINDO则用于求解非线性规划(NLP—NON—LINEAR PROGRAMMING)和二次规则(QP —QUARATIC PROGRAMING)其中LINGO 6.0学生版最多可版最多达300个变量和150个约束的规则问题,其标准版的求解能力亦再10^4量级以上。

虽然LINDO 和LINGO不能直接求解目标规划问题,但用序贯式算法可分解成一个个LINDO和LINGO能解决的规划问题。

要学好用这个软件最好的办法就是学习他们自带的HELP文件。

下面拟举数例以说明这个软件的最基本用法。

目标函数:max z=2x1+3x2
约束条件: x1+2x2<=8
4x1x6<=16
4x2 <=12
xj>=0(j=1,2 (8)
下面我们就用LINDO来解这一优化问题。

输入语句:
max(不区分大小写) 2x1+3x2
ST(不区分大小写或写subject to)
x1+2x2<=8
4x1x6<=16
4x2 <=12
end
然后再按运算符键即可得结果。

LINDO是规定Xj非负的,我们可发现输入方式与我们的数学书写的形式基本一致,运算后,计算机会问您是否需要灵敏度分析,我们选择是,结果如下:
LP OPTIMUM FOUND AT STEP 2
OBJECTIVE FUNCTION VALUE
1) 14.00000
VARIABLE VALUE REDUCED COST
X1 4.000000 0.000000
X2 2.000000 0.000000
ROW SLACK OR SURPLUS DUAL PRICES
2) 0.000000 1.500000
3) 0.000000 0.125000
4) 4.000000 0.000000
NO. ITERATIONS= 2
RANGES IN WHICH THE BASIS IS UNCHANGED:
OBJ COEFFICIENT RANGES
VARIABLE CURRENT ALLOWABLE ALLOWABLE
COEF INCREASE DECREASE
X1 2.000000 INFINITY 0.500000
X2 3.000000 1.000000 3.000000
RIGHTHAND SIDE RANGES
ROW CURRENT ALLOWABLE ALLOWABLE
RHS INCREASE DECREASE
2 8.000000 2.000000 4.000000
3 16.000000 16.000000 8.000000
4 12.000000 INFINITY 4.000000
下面给出其结果的一般解释:
“LP OPTIMUM FOUND AT STEP 2”表示LINDO在(用单纯形法)2次迭代或旋转后得到最优解。

“OBJECTIVE FUNCTION VALUE 1)14.000”表示最优目标值为14。

“VALUE”给出最优解中各变量的值。

“SLACK OR SURPLUS”给出松弛变量的值。

上例中SLK 2= 第二行松弛变量=0(模型第一行表示目标函数,所以第二行对应第一个约束)
“REDUCE COST”列出最优单纯形表中判别数所在行的变量的系数,表示当变量有微小变动时,目标函数的变化率,其中基变量的reduce cost 值应为0,对于非基变量Xj相应的reduce cost值表示Xj增加一个单位(此时假定其他非基变量保持不变)时目标函数减小的量(max 型问题)。

上例中:X1 对应的 reduce cost 值为0,表示当X1=1 时,目标函数值不变。

“DUAL PRICE”(对偶价格)列出最优单纯形表中判别数所在行的松弛变量的系数,表示当对应约束有微小变动时,目标函数的变化率,输出结果中对应每一个约束有一个对偶价格。

若其数值为X,表示对应约束中不等式右端项若增加一个单位,目标函数将增加X个单位(max 型问题)。

当REDUCE COST 或DUAL PRICE 的值为0。

表示当微小扰动不影响目标函数。

有时,通过分析DUAL PRICE,也可对产生不可行问题的原因有所了解。

灵敏度分析:如果做敏感性分析,则系统报告当目标函数的费用系数和约束右端项在什么范围变化(此时假定其他系数保持不变)时,最优基保持不变。

报告中INFINITY表示正无穷,
当您要判断表达式输入是否有错误时,也可以使用菜单“Reports“的”Picture “选项。

若想获得灵敏度分析,可用“Reports“的”Rang“选项。

若需显示单纯形表,可执行“Reports“的”Tab lean“选项。

注意事项:
1)目标函数及各约束条件之间一定要有“Subject to (ST) ”分开。

2)变量名不能超过8个字符。

3)变量与其系数间可以有空格,但不能有任何运算符号(如乘号“*”等)。

4)要输入<=或>=约束,相应以<或>代替即可。

5)一般LINDO中不能接受括号“()“和逗号“,“,例:400(X1+X2) 需写成400X1+400X2;10,000需写成10000。

6)表达式应当已经过简化。

不能出现 2 X1+3 X2-4 X1,而应写成-2X1+3 X2。

例2.(选自《运》P94习题2.4;整数规则)
有四个工人,要分别指派他们完成四项不同的工作,每个人做各项工作所消耗的时间如表。

问应该如何指派,才能使总的消耗时间为最小?
这是一道典型的整数规则问题。

我们记派第I去做工作记为Xij
注意到每人只能做一项工作。

每项工作一人做。

我们得到目标函数为约束条件:
min
15x11+19x21+26x31+19x41+18x12+23x22+17x32+21x42+24x13+22x23+16x33+23x 43+24x14+18x24+19x34+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
运行后我们可得到最优目标值为70
当,其余为0时。

(具体的Reports 我们略去)
在用LINDO解整数规划(IP)问题时,只要在END后加上标识即可,其中解0/1规划的用命令。

INT name 或 INT n (n 指前n 个变量标识为0/1型)解混合型整数规划则用GIN 来标识。

相关文档
最新文档