第3讲 线性规划模型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模型求解 model: max=72*x1+64*x2; x1+x2<=50; 12*x1+8*x2<=480; 3*x1<=100; end 将文件存储并命名后,选择菜单“Solve”并对提示 “DO RANGE(SENSITIVITY) ANALYSIS?”(灵敏性 分析)回答”是”, 即可得到如下输出:
基本模型 决策变量:设每天用x1桶牛奶生产A1,用x2桶牛奶生产 A2. 目标函数:设每天获利为z元, max z=72x1+64x2 (1) 约束条件: 原料供应 x1+x2≤50 (2) 劳动时间 12x1+8x2≤480 (3) 设备能力 3x1 ≤100 (4) 非负约束 x1, x2≥0 (5) 思考:本例能建立如上的线性规划模型,事实上事先做了 哪些假设呢?
建立模型 所以模型为:
max z=24x1+16x2+44x3+32x4-3x5-3x6
4x1+3x2+4x5+3x6 ≤600 s.t. 4x1+2x2+6x5+4x6 ≤480 x1+x5 ≤100 x3=0.8x5 x4=0.75x6 x1,…,x6≥0
模型求解 model: title 奶制品的生产销售计划; max=24*x1+16*x2+44*x3+32*x4-3*x5-3*x6; 4*x1+3*x2+4*x5+3*x6<600; 4*x1+2*x2+6*x5+4*x6<480; x1+x5<100; X3=0.8*x5; X4=0.75*x6; end
结果分析 输出结果中”Current Coefficient“的”Allowable Increase“和”Allowable Decrease“给出了最优解不变条件下目 标函数系数的变化范围,x1为(64,96),x2则是(48,72). 注意: x1 系数的允许范围需要x2系数不变,反之亦然.这个结果回答问 题3):A1的获利增加到每公斤30元,系数变为90,在允许范 围内,因此不必改变生产计划,而最优值变为3720元. 现在我们回过头来对”影子价格“作进一步的分析.从图 解 法我们看出,随着原料(牛奶)的增加,直线L1朝右上方平 移,L1和L2的交点向A点靠近,在这个过程中,每增加1桶 牛奶利润增加48元,但当B和A重合时增加牛奶就不可能使利 润增长了.这就是说,影子价格的作用是有限制的.输出结果 中的”Current RHS”的“Allowable Increase”和“Allowable Decrease”给出了影子价格有意义的条件下约束右端的限制:
LINGO可以用来求解的模型
优化模型 连续优化 整数规划(IP)
线性规划 (LP)
二次规划 (QP)
非线性规划 (NLP) LINGO
使用LINGO的一些注意事项: (1)>(<)与>=(<=)功能相同; (2)变量与系数间可有空格(甚至回车),但无运算符; (3)变量名以字母开头,不能超过8个字符; (4)变量名不区分大小写; (5)第一行通常为”model:”, 第二行为目标函数,第三行开 始为约束条件; (6)行结束为”;”; (7)”!”后面的为注释; (8)在模型的任何地方都可以用”TITLE”对模型命名(最多72 字符);
结果分析 ”效益“的增量可以看作”资源“的潜在价值,经济学上 称为”影子价格“,即1桶牛奶的影子价格是48元,1小 时劳动力的影子价格为2元,甲类设备的影子价格是0. 大家可以用直接求解的方法验证上述结论,即将输入文件 中原料约束2)的右端的50改成51,看看得到的最优值是 否恰好增加48元. 我们用影子价格的概念就很容易回答问题1):用35元可 以买到1桶牛奶,低于1桶牛奶的影子价格,当然应该作这 项投资;回答附加问题2):聘用临时工人以增加劳动时 间,付给的工资低于劳动时间的影子价格才可以增加利润, 所以工资最多是每小时2元.
计算结果 Row Slack or Surplus Dual Price 1 3460.800 1.000000 2 0.000000 3.160000 3 0.000000 3.260000 4 76.00000 0.000000 5Hale Waihona Puke Baidu0.000000 44.00000 6 0.000000 32.00000 结论:每天获利最大值为3460.800. 增加1桶牛奶利润增长3.16×12=37.92>30;增加1小时使 利润增长3.26,所以投资150元增加5桶牛奶,可赚回 189.6元(大于增加时间的利润增长).
(9)表达式要简化; (10)以”END”语句作为程序的结束; (11)”END”前对0-1变量说明:@INT(NAME); (12)”END”前对整数变量说明:@GIN(NAME). 上一节课我们用图解法求解了“奶制品的生产计划”问题, 现在我们用LINGO软件求解,并做进一步的分析: 1)若用35元可以买到一桶牛奶,应否作这项投资?若投资, 每天最多购买多少桶牛奶? 2)若可聘用临时工人以增加劳动时间,最多能给其多少工资? 3)若每千克A1的获利增加到30元,应否改变生产计划?
数学建模
2011秋全校公选课
第3讲 线性规划模型
李书选 shuxuanli@126.com
本讲讲述的模型可表述为下述形式: min z=f(x) (1) s.t. gi(x) ≤0 (2) 由(1),(2)组成的模型属于约束优化,如果只有(1)式就是无 约束优化,f(x)称为目标函数, gi(x) ≤0称为约束条件. 在优化模型中,如果目标函数f(x)和约束条件gi(x)都是线性 函数,则该模型称为线性规划.
输出结果 Global optimal solution found at iteration: 0 3360.000 objective value: Variable Value Reduced Cost X1 20.00000 0.000000 X2 30.00000 0.000000 Row 1 2 3 4 Slack or Surplus 3360.000 0.000000 0.000000 40.00000 Dual Price 1.000000 48.00000 2.000000 0.000000
灵敏性分析 Ranges in which the basis is unchanged: Obejective Coefficient Ranges Current Allowable Allowable Variable Coefficient Increase Decrease X1 24.00000 1.680000 INFINITY X2 16.00000 8.150000 2.100000 X3 44.00000 19.75000 3.166667 X4 32.00000 2.026667 INFINITY X5 -3.000000 15.80000 2.533333 X6 -3.000000 1.520000 INFINITY
灵敏性分析
Ranges in which the basis is unchanged: Obejective Coefficient Ranges Current Allowable Allowable Variable Coefficient Increase Decrease X1 72.00000 24.00000 8.000000 X2 64.00000 8.000000 16.00000 Righthand Side Ranges Row Current Allowable Allowable RHS Increase Decrease 2 50.00000 10.00000 6.666667 3 480.0000 53.33333 80.00000 4 100.0000 INFINITY 40.00000
奶制品的生产计划 例1 一奶制品加工厂用牛奶生产A1、A2两种奶制品,1桶 牛奶可以在甲车间用12小时加工成3公斤A1, 或者在乙车间 用8小时加工成4公斤A2. 根据市场需求,生产的A1和A2全 部能售出,且每千克A1获利24元,每千克A2获利16元.现 在加工厂每天能得到50桶牛奶的供应,每天正式工人总的 劳动时间480小时,并且甲车间每天至多能加工100千克A1, 乙车间的加工能力没有限制. 试为该厂制定一个生产计划, 使每天获利最大.
结果分析 上面的输出中除了告诉我们问题的最优解和最优值意外, 还有很多对分析有用的信息: (1)3个约束条件的右端不妨看做3种“资源”:原料、劳动时 间、甲类设备的加工能力.“Slack or Surplus”给出这3种资源 在最优解下是否有剩余:2)原料,3)劳动时间的剩余均为零, 4)甲类设备尚余40公斤加工能力.一般我们称“资源”剩余 为零的约束为紧约束(有效约束). (2)目标函数可以看做”效益”,称为紧约束的“资源”一旦 增加,“效益”必然跟着增长.”Dual Price“给出这3种资源 在最优解下”资源“增加1个单位时”效益“的增量:2) 原料增加1个单位(1桶牛奶)时利润增长48元,3)劳动时间 增加1个单位(1小时)时利润增加2元,而增加非紧约束4) 甲类设备的能力显然不会使利润增长.
用LINGO解线性规划 LINGO (Linear, Interactive, and General Optimizer)是一个利 用线性规划和非线性规划来简洁地阐述、解决和分析复杂 问题的工具. 其特点是程序执行速度快,易于输入、修改、求解和分析 一个数学规划问题,在教学科研和工业界由广泛的应用.
奶制品的生产销售计划 例2 (奶制品的生产销售计划)现在例1给出的条件不变,为 了增加工厂的获利,开发了奶制品的深加工技术:用2小 时和3元加工费,可将1千克A1加工成0.8千克高级奶制品 B1,也可将1千克A2加工成0.75千克高级奶制品B2,每千 克B1能获利44元,每千克B2能获利32元,试为该厂制定一 个生产计划,使每天获利最大,并进一步讨论一下2个附 加问题: 1)若投资30元可增加供应1桶牛奶,投资3元可增加1小时 劳动时间,应否作这项投资?若每天投资150元,可赚回 多少? 2)每千克高级奶制品B1,B2的获利经常由10%的波动,对 制定的生产销售计划有无影响?若每千克B1获利下降10%, 计划应该变化吗?
2)原料最多增加10桶牛奶,3)劳动时间最多增加53小时. 所以现在我们可以回答附加问题1)的第二问:虽然应该 批准用35元买1桶牛奶的投资,但每天最多可购买10桶牛 奶;顺便指出,可以用低于每小时2元的工资聘用临时工 人,但最多增加53小时. 线性规划模型的三要素:决策变量、目标函数和约束条件.
计算结果 Global optimal solution found at iteration: 4 Objective value: 3460.800 Model Title: 奶制品的生产销售计划 Variable Value Reduced Cost X1 0.000000 1.680000 X2 168.0000 0.000000 X3 19.20000 0.000000 X4 0.000000 0.000000 X5 24.00000 0.000000 X6 0.000000 1.520000
结果分析
(3)目标函数的系数发生变化时(假定约束条件不 变),最优解和最优值会改变吗?这个问题不能简 单地回答.从图解法中我们知道,目标函数的系数 决定了等值线族的斜率,元体重该斜率为9/8,介 于直线L1的斜率1与L2的斜率3/2之间,最优解自 然在L1和L2的交点B取得.并且,只要目标函数系 数的变化使得等值线的斜率仍然在(1,3/2)之间, 这个最优解就不会变化,而当目标函数系数的变 化使得等值线族的斜率小于1时,最优解将在A点 取得,大于3/2时,最优解将在C点取得.
(1)符号说明:设出售x1千克A1,x2千克A2,x3千克B1,x4千 克B2,x5千克A1加工成B1,x6千克A2加工成B2. (2)建立模型: 目标函数 max z=24x1+16x2+44x3+32x4-3x5-3x6 (3)约束条件: 1)原料供应 (x1+x5)/3+(x2+x6)/4 ≤50 2)劳动时间:4(x1+x5)+2(x2+x6)+2x5+2x6 ≤480 3)加工能力: x1+x5 ≤100 4)附加约束:x3=0.8x5,x4=0.75x6 5)非负约束:x1,…,x6≥0
相关文档
最新文档