
LINDO及LINGO解运筹学问题(数学规划方面).docx
10页本文格式为Word版,下载可任意编辑LINDO及LINGO解运筹学问题(数学规划方面) LINDO、LINGO入门教程 要学好用这两个软件最好的手段就是学习他们自带的HELP文件 下面拟举数例以说明这两个软件的最根本用法(例子均选自张莹《运筹学根基》) 例1.(选自《运筹学根基》P54.汽油混合问题,线性规划问题) 一种汽油的特性可用两个指标描述:其点火性用“辛烷数”描述,其挥发性用“蒸汽压力”描述某炼油厂有四种标准汽油,设其标号分别为1,2,3,4,其特性及库存量列于下表1中,将上述标准汽油适量混合,可得两种飞机汽油,某标号为1,2,这两种飞机汽油的性能指标及产量需求列于表2中 问应如何根据库存处境适量混合各种标准汽油,使既得志飞机汽油的性能指标,而产量又为最高 表1 标准汽油 辛烷数 蒸汽压力(g/cm^2) 库存量 7.11*10^(-2) 1 107.5 380000 11.38*10^(-2) 2 93.0 262200 5.69*10^(-2) 3 87.0 408100 28.45*10^(-2) 4 108.0 130100 (1 g/cm^2=98Pa) 表2 飞机汽油 辛烷数 蒸汽压力(g/cm^2) 产量需求(L) 1 >=91 =100 =250000 建模过程 略(详见《运筹学根基》P54—55) 目标函数:max z=x1+x2+x3+x4 约束条件:x5+x6+x7+x8>=250000 x1+x5=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=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 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 31351.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 BASIS 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 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.000000 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在(用单纯形法)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)表达式应当已经过简化不能展现 2 X1+3 X2-4 X1,而应写成-2X1+3 X2 例2.(选自。
