用lindolingo解运筹学问题

上传人:w****i 文档编号:108497555 上传时间:2019-10-24 格式:PDF 页数:10 大小:83.16KB
返回 下载 相关 举报
用lindolingo解运筹学问题_第1页
第1页 / 共10页
用lindolingo解运筹学问题_第2页
第2页 / 共10页
用lindolingo解运筹学问题_第3页
第3页 / 共10页
用lindolingo解运筹学问题_第4页
第4页 / 共10页
用lindolingo解运筹学问题_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《用lindolingo解运筹学问题》由会员分享,可在线阅读,更多相关《用lindolingo解运筹学问题(10页珍藏版)》请在金锄头文库上搜索。

1、 用 LINDO、LINGO 解运筹学问题(数学规划方面)用 LINDO、LINGO 解运筹学问题(数学规划方面) 一、一、 软件简介软件简介 LINDO 是一种专门用于求解数学规划问题的软件包。由于 LINDO 执行速度很 快、易于方便输入、求解和分析数学规划问题。因此在数学、科研和工业界得到 广泛应用。LINDO 主要用于解线性规划、非线性规划、二次规划和整数规划等问 题。也可以用于一些非线性和线性方程组的求解以及代数方程求根等。LINDO 中 包含了一种建模语言和许多常用的数学函数(包括大量概论函数),可供使用者 建立规划问题时调用。 一般用 LINDO(Linear Interacti

2、ve and Discrete Optimizer)解决线性规划 (LPLinear Programming)。整数规划(IPInteger Programming)问题。 其中 LINDO 6 .1 学生版至多可求解多达 300 个变量和 150 个约束的规划问题。 其正式版(标准版)则可求解的变量和约束在 1 量级以上。 LINDO 则用于求解非线性规划 (NLPNONLINEAR PROGRAMMING) 和二次规则 (QP QUARATIC PROGRAMING)其中 LINGO .0 学生版最多可版最多达 300 个变量和 150 个约束的规则问题,其标准版的求解能力亦再 104 量

3、级以上。虽然 LINDO 和 LINGO 不能直接求解目标规划问题,但用序贯式算法可分解成一个个 LINDO 和 LINGO 能解决的规划问题。 要学好用这两个软件最好的办法就是学习他们自带的 HELP 文件。 下面拟举数例以说明这两个软件的最基本用法。(例子均选自张莹 运筹学基础 ) 例.(选自运筹学基础.汽油混合问题,线性规划问题) 一种汽油的特性可用两个指标描述: 其点火性用 “辛烷数” 描述, 其挥发性用 “蒸 汽压力”描述。某炼油厂有四种标准汽油,设其标号分别为,其 特性及库存量列于下表中,将上述标准汽油适量混合,可得两种飞机汽油,某 标号为,这两种飞机汽油的性能指标及产量需求列于表

4、中。 问应如何根据库存情况适量混合各种标准汽油,使既满足飞机汽油的性能指标, 而产量又为最高。 表表 标准汽油 辛烷数 蒸汽压力(g/cm2) 库存量 . 7.11*10(-2)7.11*10(-2) . 11.38*10(-2)11.38*10(-2) . 5.69*10(-2)5.69*10(-2) . 28.45*10(-2)28.45*10(-2) (1 g/cm2=98Pa)(1 g/cm2=98Pa) 表表 飞机汽油 辛烷数 蒸汽压力(g/cm2) 产量需求() = = = 建模过程 略(详见运筹学基础) 目标函数:max z=x1+x2+x3+x4 约束条件:x5+x6+x7+x

5、8=250000 x1+x5=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=0 16.5x1+2.0x2-4.0x3+17x4=0 7.5x5-7.0x6-13.0x7+8.0x8=0 end 然后再按运算符键即可得结果。 LINDO 是规定j 非负的,我们可发现输入方式与我们的数学书写的形式基本一 致,运算

6、后,计算机会问您是否需要灵敏度分析,我们选择是,结果如下: LP OPTIMUM FOUND AT STEP 6 OBJECTIVE FUNCTION VALUE 1) 933400.0 VARIABLE VALUE REDUCED COST X1 161351.734375 0.000000 X2 265200.000000 0.000000 X3 408100.000000 0.000000 X4 98748.265625 0.000000 X5 218648.265625 0.000000 X6 0.000000 0.000000 X7 0.000000 0.000000 X8 3135

7、1.734375 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 -1.000000 3) 0.000000 1.000000 4) 0.000000 1.000000 5) 0.000000 1.000000 6) 0.000000 1.000000 7) 0.000000 0.000000 8) 43454.000000 0.000000 9) 3239024.250000 0.000000 10) 1890675.875000 0.000000 NO. ITERATIONS= 6 RANGES IN WHICH THE BASI

8、S IS UNCHANGED: OBJ COEFFICIENT RANGES VARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE X1 1.000000 0.000000 1.154137 X2 1.000000 INFINITY 0.000000 X3 1.000000 INFINITY 0.000000 X4 1.000000 0.000000 0.000000 X5 0.000000 1.154137 0.000000 X6 0.000000 0.000000 INFINITY X7 0.000000 0.000000

9、INFINITY X8 0.000000 0.000000 0.000000 RIGHTHAND SIDE RANGES ROW CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE 2 250000.000000 186222.062500 234752.984375 3 380000.000000 234752.984375 15247.017578 4 265200.000000 30601.410156 265200.000000 5 408100.000000 156685.250000 10176.581055 6 130100.000

10、000 2350.135254 36184.207031 7 0.000000 43454.000000 669046.000000 8 0.000000 43454.000000 INFINITY 9 0.000000 3239024.250000 INFINITY 10 0.000000 1890675.875000 INFINITY 下面给出其结果的一般解释: “LP OPTIMUM FOUND AT STEP 6”表示 LINDO 在(用单纯形法)次迭代或旋转 后得到最优解。 “OBJECTIVE FUNCTION VALUE 1)933400.0”表示最优目标值为 933400。 “

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

12、 PRICE”(对偶价格)列出最优单纯形表中判别数所在行的松弛变量的系 数,表示当对应约束有微小变动时,目标函数的变化率,输出结果中对应每一个 约束有一个对偶价格。若其数值为,表示对应约束中不等式右端项若增加一个 单位,目标函数将增加个单位(max 型问题)。上例中:第二行对应的对偶价 格值应为-表示当约束 )X5 + X6 + X7 + X8250000 变为 )X5 + X6 + X7 + X8250001 时, 目标函数值933400-1933399 当 REDUCE COST 或 DUAL PRICE 的值为。表示当微小扰动不影响目标函数。 有时,通过分析 DUAL PRICE,也可对

13、产生不可行问题的原因有所了解。 灵敏度分析:如果做敏感性分析,则系统报告当目标函数的费用系数和约束右端 项在什么范围变化(此时假定其他系数保持不变)时,最优基保持不变。报告中 INFINITY 表示正无穷,如上例:目标函数中的变量系数为,当它在 1-1.154137,1-0= -0.154137,1 变化时,最优基保持不变 。 第一个约束右端项为 250000,当它在 250000-234752.984375,250000+186222.0625 =15247.015625,436222.0625 范围变化时,最优基保持不变 。 当您要判断表达式输入是否有错误时,也可以使用菜单“Reports

14、“的”Picture “选项。 若想获得灵敏度分析,可用“Reports“的”Rang“选项。 若需显示单纯形表,可执行“Reports“的”Tab lean“选项。 注意事项: ) 目标函数及各约束条件之间一定要有“Subject to (ST) ”分开。 ) 变量名不能超过个字符。 ) 变量与其系数间可以有空格,单不能有任何运算符号(如乘号“”等)。 ) 要输入=约束,相应以代替即可。 ) 一般 LINDO 中不能接受括号“()“和逗号“,“,例:400(X1+X2) 需写 成 400X1+400X2;10,000 需写成 10000。 ) 表达式应当已经过简化。不能出现 2 X1+3 X2-4 X1,而应写成-X1+3 X2。 例 2(选自运P94 习题 2.4;整数规则) 有四个工人,要分别指派他们完成四项不同的工作,每个人做各项工作所消耗的 时间如表。问应该如何指派,才能使总的消耗时间为最小? 工工 作作 所耗所耗 时间时间 工人工人 A A B B C C D D 甲 甲 15 18 21 24 乙 乙 19 23 22 18 丙 丙 26 17 16 19 丁 丁 19 21 23 17 这是一道典型的整数规则问

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号