用lingo求解线性规划的例子

上传人:mg****85 文档编号:34060337 上传时间:2018-02-20 格式:DOC 页数:3 大小:40.50KB
返回 下载 相关 举报
用lingo求解线性规划的例子_第1页
第1页 / 共3页
用lingo求解线性规划的例子_第2页
第2页 / 共3页
用lingo求解线性规划的例子_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《用lingo求解线性规划的例子》由会员分享,可在线阅读,更多相关《用lingo求解线性规划的例子(3页珍藏版)》请在金锄头文库上搜索。

1、附 1:用 LINGO 求解线性规划的例子一奶制品加工厂用牛奶生产 A1、A 2 两种奶制品,1 桶牛奶可以在设备甲上用 12 小时加工成 3 公斤A1,或者在设备乙上用 8 小时加工成 4 公斤 A2。根据市场需求,生产的 A1、A 2 能全部售出,且每公斤A1 获利 24 元,每公斤 A2 获利 16 元。现在加工厂每天能得到 50 桶牛奶的供应,每天正式工人总的劳动时间为 480 小时,并且设备甲每天至多能加工 100 公斤 A1,设备乙的加工能力没有限制。试为该厂制定一个生产计划,使每天获利最大,并进一步讨论以下 3 个附加问题:1)若用 35 元可以购买到 1 桶牛奶,应否作这项投资

2、?若投资,每天最多购买多少桶牛奶?2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元?3)由于市场需求变化,每公斤 A1 的获利增加到 30 元,应否改变生产计划?数学模型:设每天用 x1 桶牛奶生产 A1 ,用 x2 桶牛奶生产 A2 目标函数:设每天获利为 z 元。 x1 桶牛奶可生产 3x1 公斤 A1,获利 24*3x1,x 2 桶牛奶可生产 4*x2公斤 A2,获利 16*4x2,故 z=72x1+64x2约束条件: 原料供应:生产 A1、A 2 的原料(牛奶)总量不超过每天的供应 50 桶,即x1+x250劳动时间:生产 A1、A 2 的总加工时间不超过每天正

3、式工人总的劳动时间 480 小时,即 12x1+8x2480设备能力:A 1 的产量不得超过设备甲每天的加工能力 100 小时,即3x1100非负约束:x 1、x 2 均不能为负值,即 x10,x 20综上所述可得max z=72x1+64x2 s.t.x1+x25012x1+8x24803x1100x10,x 20显然,目标函数和约束条件都是线性的,这是一个线性规划(LP) ,求出的最优解将给出使净利润最大的生产计划,要讨论的问题需要考虑参数的变化对最优解和影响,一般称为敏感性(或灵敏度)分析。LINGO 求解线性规划用 LINGO 求解线性规划时,首先在 LINGO 软件的模型窗口输入一个

4、 LP 模型,模型以 MAX 或MIN 开始,按线性规划问题的自然形式输入(见下面例子所示) 。以下解加工奶制品的生产计划问题:由于 LINGO 中已假设所有的变量都是非负的,所以非负约束条件不必输入;LINGO 也不区分变量中的大小写字符(实际上任何小写字符将被转换为大写字符) ;约束条件中的“=”及“=”可用“”及“ ”代替。在 LINGO 模型窗口输入如下:max=72*x1+64*x2;x1+x2=50; 12*x1+8*x2=480; 3*x1=100;用鼠标单击菜单中的求解命令(Solve )就可以得到解答,结果窗口显示如下:LP OPTIMUM FOUND AT STEP 2OB

5、JECTIVE FUNCTION VALUE1) 3360.000VARIABLE VALUE REDUCED COSTX1 20.000000 0.000000X2 30.000000 0.000000ROW SLACK OR SURPLUS DUAL PRICES2) 0.000000 48.0000003) 0.000000 2.0000004) 40.000000 0.000000NO. ITERATIONS= 2计算结果表明:“LP OPTIMUM FOUND AT STEP2”表示单纯形法在两次迭代(旋转)后得到最优解。“OBJECTIVE FUNCTION VALUE 1) 33

6、60.000”表示最优目标值为 3360.000(LINGO 中将目标函数自动看作第 1 行,从第二行开始才是真正的约束条件) 。“VALUE”给出最优解中各变量(VARIABLE)的值:x 1=20.000000,x 2=30.000000。“REDUCED COST”的含义是(对 MAX 型问题):基变量的 REDUCED COST 值为 0,对于非基变量,相应的 REDUCED COST 值表示当非基变量增加一个单位时(其它非基变量保持不变)目标函数减少的量。本例中两个变量都是基变量。“SLACK OR SURPLUS”给出松弛(或剩余)变量的值,表示约束是否取等式约束;第 2、第 3

7、行松弛变量均为 0,说明对于最优解而言,两个约束均取等式约束;第 4 行松弛变量为 40.000000,说明对于最优解而言,这个约束取不等式约束。“DUAL PRICES”给出约束的影子价格(也称为对偶价格)的值:第 2、第 3、第 4 行(约束)对应的影子价格分别 48.000000,2.000000,0.000000。“NO. ITERATIONS= 2”表示用单纯形法进行了两次迭代(旋转) 。灵敏度分析,则 LINGO 还会输出以下结果:RANGES IN WHICH THE BASIS IS UNCHANGED:OBJ COEFFICIENT RANGES VARIABLE CURRE

8、NT ALLOWABLE ALLOWABLECOEF INCREASE DECREASEX1 72.000000 24.000000 8.000000X2 64.000000 8.000000 16.000000RIGHTHAND SIDE RANGESROW CURRENT ALLOWABLE ALLOWABLERHS INCREASE DECREASE2 50.000000 10.000000 6.6666673 480.000000 53.333332 80.0000004 100.000000 INFINITY 40.000000以上显示的是当前最优基(矩阵)保持不变的充分条件(RAN

9、GES IN WHICH THE BASIS IS UNCHANGED) ,包括目标函数中决策变量应的系数的变化范围(OBJ COEFFICIENT RANGES)和约束的右端项的变化范围(RIGHTHAND SIDE RANGES)两部分。前一部分的输出行X1 72.000000 24.000000 8.000000表示决策变量 X1 当前在目标函数中对应的系数为 72,允许增加 24 和减少 8。也就是说,当该系数在区间64 ,96上变化时(假设其它条件均不变) ,当前最优基矩阵保持不变。对 X2 对应的输出行也可以类似地解释。由于此时约束没有任何改变,所以最优基矩阵保持不变意味着最优解不

10、变(当然,由于目标函数中的系数发生变化,最优值还是会变的) 。后一部分的输出行2 50.000000 10.000000 6.666667表示约束 2 当前右端项为 50,允许增加 10 和减少 6.666667。也就是说,当该系数在区间43.333333,60上变化时(假设其它条件均不变) ,当前最优基矩阵保持不变。对约束 3、约束 4 对应的输出行也可以类似地解释。由于此时约束已经改变,虽然最优基矩阵保持不变,最优解和最优值还是会变的。但是,由于最优基矩阵保持不变,所以前面的“DUAL PRICES”给出的约束的影子价格此时仍然是有效的。用 LINGO 求解加工奶制品的生产计划,结果如下:20 桶牛奶生产 A1, 30 桶生产 A2,利润 3360 元。1)35 元可买到 1 桶牛奶,要买吗?由于原料的影子价格为 48,35 48, 应该买!2)聘用临时工人付出的工资最多每小时几元? 由于工时的影子价格为 2,聘用临时工人付出的工资最多每小时 2 元3)A 1 获利增加到 30 元/千克,应否改变生产计划 由于要使最优解保持不变,X1 系数的允许变化范围为64,96。x 1 系数由 24*3=72 增加为30*3=90,在允许范围内。所以不改变生产计划。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

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