LINDO软件求线性规划、整数规划和0-1规划

2020-04-03 12:37

LINDO软件简介/求解线性规划问题

LINDO是一种专门用于求解数学规划问题的软件包。由于LINDO执行速度很快、易于方便输入、求解和分析数学规划问题。因此在数学、科研和工业界得到广泛应用。LINDO/GO主要用于解线性规划、非线性规划、二次规划和整数规划等问题。也可以用于一些非线性和线性方程组的求解以及代数方程求根等。LINDO/GO中包含了一种建模语言和许多常用的数学函数(包括大量概论函数),可供使用者建立规划问题时调用。 一般用LINDO(Linear Interactive and Discrete Optimizer)解决线性规划(LP—Linear Programming)。整数规划(IP—Integer Programming)问题。其中LINDO 6 .1 学生版至多可求解多达300个变量和150个约束的规划问题。其正式版(标准版)则可求解的变量和约束在1量级以上。

LINGO则用于求解非线性规划(NLP—NON—LINEAR PROGRAMMING)和二次规则

(QP—QUARATIC PROGRAMING)其中LINGO 6.0学生版最多可版最多达300个变量和150个约束的规则问题,其标准版的求解能力亦在10^4量级以上。虽然LINDO和LINGO不能直接求解目标规划问题,但用序贯式算法可分解成一个个LINDO和LINGO能解决的规划问题。

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

下面拟举数例以说明这两个软件的最基本用法。(例子均选自张莹《运筹学基础》) 例1.(选自《运筹学基础》P54.汽油混合问题,线性规划问题)

一种汽油的特性可用两个指标描述:其点火性用“辛烷数”描述,其挥发性用“蒸汽压力”描述。某炼油厂有四种标准汽油,设其标号分别为1,2,3,4,其特性及库存量列于下表1中,将上述标准汽油适量混合,可得两种飞机汽油,某标号为1,2,这两种飞机汽油的性能指标及产量需求列于表2中。

问应如何根据库存情况适量混合各种标准汽油,使既满足飞机汽油的性能指标,而产量又为最高。

表1

标准汽油 1 2 3 4 辛烷数 107.5 93.0 87.0 108.0 蒸汽压力(g/cm^2) 7.11*10^(-2) 11.38*10^(-2) 5.69*10^(-2) 28.45*10^(-2) 库存量 380000 262200 408100 130100 (1 g/cm^2=98Pa)

表2

飞机汽油 1 2 辛烷数 >=91 >=100 蒸汽压力(g/cm^2) 产量需求(L) <=9.96*10越多越好 ^(-2) <=9.96*10>=250000 ^(-2) 建模过程 略(详见《运筹学基础》P54—55) 目标函数:max z=x1+x2+x3+x4 约束条件:x5+x6+x7+x8>=250000 x1+x5<=380000 x2+x6<=265200 x3+x7<=408100 x4+x8<=130100

2.85x1-1.42x2+4.27x3-18.49x4>=0 2.85x5-1.42x6+4.27x7-18.49x8>=0 16.5x1+2.0x2-4.0x3+17x4>=0 7.5x5-7.0x6-13.0x7+8.0x8>=0 xj>=0(j=1,2...,8)

下面我们就用LINDO来解这一优化问题。 输入语句:

max(不区分大小写) 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.27x3-18.49x4>=0 2.85x5-1.42x6+4.27x7-18.49x8>=0 16.5x1+2.0x2-4.0x3+17x4>=0 7.5x5-7.0x6-13.0x7+8.0x8>=0 end

然后再按运算符键即可得结果。

LINDO是规定Xj非负的,我们可发现输入方式与我们的数学书写的形式基本一致,运算后,计算机会问您是否需要灵敏度分析,我们选择“是”,结果如下: 下面给出其结果的一般解释:

“LP OPTIMUM FOUND AT STEP 6”表示LINDO在(用单纯形法)6次迭代或旋转后得到最优解。 “OBJECTIVE FUNCTION VALUE 1)933400.0”表示最优目标值为933400。 “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 型问题)。上例中:第二行对应的对偶价格值应为-1表示当约束 2)X5 + X6 + X7 + X8>250000变为 2)X5 + X6 + X7 + X8>250001时,

目标函数值=933400-1=933399

当REDUCE COST 或DUAL PRICE 的值为0。表示当微小扰动不影响目标函数。有时,通过分析DUAL PRICE,也可对产生不可行问题的原因有所了解。

灵敏度分析:如果做敏感性分析,则系统报告当目标函数的费用系数和约束右端项在什么范围变化(此时假定其他系数保持不变)时,最优基保持不变。报告中INFINITY表示正无穷,如上例:目标函数中X1的变量系数为1,当它在[1-1.154137,1-0]= [-0.154137,1] 变化时,最优基保持不变 。

第一个约束右端项为250000,当它在[250000-234752.984375,250000+186222.0625]=[15247.015625,436222.0625] 范围变化时,最优基保持不变 。

当您要判断表达式输入是否有错误时,也可以使用菜单“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) 表达式应当已经过简化。不能出现 2X1+3X2-4X1,而应写成-2X1+3X2。

LINDO 常用命令注释表

(6.1版是面对用户的窗口,只需在窗口菜单上找到相应的操作菜单后单击即可,当然,后面的命令注释是有助于了解常用操作的命令菜单的。) LINDO 软件包可以用来求解以自然格式输入的线性规划, 整数规划及二次规划问题. 下面即是一个常见问题的有效输入格式:

MAX 2X + 3Y ST

4X + 5Y < 9 7X + 6Y < 13 END GO 进入LINDO后, 屏幕上出现 \表示进入可接受命令的状态. 此时键入LINDO的有效命令即可执行.

需要时, 可键入 \COMMANDS\即可得到LINDO的所有有效命令. 如需得到其中某个命令的帮助信息, 可键入 \HELP name\其中 \为该命令名. 例如,初学者通过键入 \HELP MAX\可以了解怎样输入一个LP问题的数学表达式, .

如要结束一个临时的问题输入, 只需键入\END\或一个回车符, 即可回到命令状态模式\ 欲知某命令的具体功效,执行该命令即可.

可求解的问题规模: 输入项 最大规模 --------------------------------------------------------------------------- 非零元 4000 列 201 行 101 整型变量 200 变量(行)名字符数 8 LINDO 命令类型目录. 欲知某个具体命令的功能, 键入 \HELP \命令名\

1)信息类命令

HELP COM LOCAL CAT TIME

2)输入类命令

MAX MIN RETR RMPS TAKE LEAV RDBC FBR

3)演示类命令

PIC TABL LOOK NONZ SHOC SOLU RANGE BPIC

4)文件输出类命令

SAVE DIVE RVRT SMPS SDBC FBS

5)问题求解类命令

GO PIV

6)编辑类命令

ALT EXT DEL SUB APPC SLB FREE EDIT

7)退出命令 QUIT

8)与整数, 二次型, 及参数规划相关的命令

INT QCP PARA POSD TITAN BIP GIN IPTOL

9)交互式参数命令

WIDTH TERS VERB BAT PAGE PAUS

CPRI RPRI


LINDO软件求线性规划、整数规划和0-1规划.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:苏教版语文四年级上册第一单元复习要点思维导图

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: