收藏 分享(赏)

优化建模与LINGO第05章.ppt

上传人:谈谈 文档编号:1667886 上传时间:2018-08-16 格式:PPT 页数:160 大小:778KB
下载 相关 举报
优化建模与LINGO第05章.ppt_第1页
第1页 / 共160页
优化建模与LINGO第05章.ppt_第2页
第2页 / 共160页
优化建模与LINGO第05章.ppt_第3页
第3页 / 共160页
优化建模与LINGO第05章.ppt_第4页
第4页 / 共160页
优化建模与LINGO第05章.ppt_第5页
第5页 / 共160页
点击查看更多>>
资源描述

1、 优化建模 生产与服务运作管理中的优化问题 优化建模与 LINDO/LINGO软件 第 5章 优化建模 内容提要 5.1 生产与销售计划问题 5.2 有瓶颈设备的多级生产计划问题 5.3 下料问题 5.4 面试顺序与消防车调度问题 5.5 飞机定位和飞行计划问题 优化建模 5.1 生产与销售计划问题 优化建模 5.1.1问题实例 例 5.1某公司用两种原油( A和 B)混合加工成两种汽油(甲和乙)。甲、乙两种汽油含原油 A的最低比例分别为 50%和 60%,每吨售价分别为 4800元和5600元。该公司现有原油 A和 B的库存量分别为 500吨和 1000吨,还可以从市场上买到不超过 1500

2、吨的原油 A。原油 A的市场价为:购买量不超过 500吨时的单价为 10000元 /吨;购买量超过 500吨但不超过 1000吨时,超过 500吨的部分 8000元 /吨;购买量超过 1000吨时,超过 1000吨的部分 6000元 /吨。该公司应如何安排原油的采购和加工。 优化建模 5.1.2建立模型 问题分析 安排原油采购、加工的目标是利润最大,题目中给出的是两种汽油的售价和原油 A的采购价,利润为销售汽油的收入与购买原油 A的支出之差。这里的难点在于原油 A的采购价与购买量的关系比较复杂,是分段函数关系,能否及如何用线性规划、整数规划模型加以处理是关键所在。 优化建模 模型建立设原油 A

3、的购买量为 x(吨),根据题目所给数据, 采购的支出 c(x)可表为如下的分段线性函数(以下价格以 千元 /吨为单位): 500)1( 1 0 0 0 630001000)( 5 0 0 81000500)(0 10)(xxxxxxxc(1) 设原油 A用于生产甲、乙两种汽油的数量分别为 x11和 x12(吨), 原油 B用于生产甲、乙两种汽油的数量分别为 x21和 x22(吨), 则总的收入为 4.8(x11+x21)+5.6(x12+x22)(千元)。 于是本例的目标函数(利润)为 )()(6.5)(8.4 22122111 xcxxxxzM a x (2) 优化建模 约束条件包括加工两种

4、汽油用的原油 A、原油 B库存量的限制, 和原油 A购买量的限制,以及两种汽油含原油 A的比例限制, 它们表示为 xxx 5 0 01211 ( 3) 1 0 0 02221 xx ( 4) 1500x ( 5) 5.0211111 xxx( 6) 6.0221212 xxx( 7) 0, 22211211 xxxxx ( 8) 由于( 1)式中的 c(x)不是线性函数,( 1) ( 8)给出的是 一个非线性规划。而且,对于这样用分段函数定义的 c(x), 一般的非线性规划软件也难以输入和求解。能不能想办法 将该模型化简,从而用现成的软件求解呢? 优化建模 5.1.3 求解模型 3种解法 第

5、1种解法 将原油 A的采购量 x分解为三个量,即用 x1,x2, x3分别表示以价格 10、 8、 6千元 /吨采购的原油 A的吨数,总支出为 c(x) = 10x1+8x2+6x3,且 321 xxxx (9) 这时目标函数( 2)变为线性函数: )6810()(6.5)(8.4 32122122111 xxxxxxxzM a x (10) 应该注意到,只有当以 10千元 /吨的价格购买x1=500(吨)时,才能以 8千元 /吨的价格购买 x2( 0),这个条件可以表示为 0)500( 21 xx (11) 优化建模 同理,只有当以 8千元 /吨的价格购买 x2=500(吨)时, 才能以 6

6、千元 /吨的价格购买 x3( 0),于是 0)5 0 0( 32 xx (12) 此外, x1, x2, x3的取值范围是 5 0 0,0 321 xxx (13) 优化建模 由于有非线性约束 (11),(12), (3)(13)构成非线性规划模型。 LINGO程序: Model: Max= 4.8*x11 + 4.8*x21 + 5.6*x12 + 5.6*x22 - 10*x1 - 8*x2 - 6*x3; x11+x12 0; 0.4*x12 - 0.6*x22 0; x=x1+x2+x3; (x1 - 500) * x2=0; (x2 - 500) * x3=0; bnd(0,x1,

7、500); bnd(0,x2, 500); bnd(0,x3,500); end 优化建模 将文件存储并命名为 exam0501a.lg4, 执行菜单命令“ LINGO|Solve” ,运行该程序得到: Local optimal solution found. Objective value: 4800.000 Total solver iterations: 26 Variable Value Reduced Cost X11 500.0000 0.000000 X21 500.0000 0.000000 X12 0.000000 0.000000 X22 0.000000 0.00000

8、0 X1 0.000000 0.000000 X2 0.000000 0.000000 X3 0.000000 0.000000 X 0.000000 0.000000 优化建模 最优解 : 用库存的 500吨原油 A、 500吨原油 B生产 1000吨汽油甲,不购买新的原油 A,利润为 4800(千元) 但是此时 LINGO得到的结果只是一个 局部最优解 可以用菜单命令“ LINGO|Options” 在“ Global Solver” 选项卡上启动全局优化( Use Global Solver)选项,然后重新执行菜单命令“ LINGO|Solve” , 得到: Global optimal

9、 solution found. Objective value: 5000.002 Extended solver steps: 3 Total solver iterations: 187 优化建模 Variable Value Reduced Cost X11 0.000000 0.000000 X21 0.000000 0.000000 X12 1500.000 0.000000 X22 1000.000 0.000000 X1 500.0000 0.000000 X2 499.9990 0.000000 X3 0.9536707E-03 0.000000 X 1000.000 0.0

10、00000 此时 LINGO得到的结果是一个 全局最优解( Global optimal solution):购买 1000吨原油 A,与库存的 500吨原油 A和 1000吨原油 B一起,共生产2500吨汽油乙,利润为 5000(千元),高于刚刚得到的局部最优解对应的利润 4800(千元)。 优化建模 第 2种解法 : 引入 0-1变量将( 11)和( 12)转化为线性约束 令 y1=1, y2=1, y3=1分别表示以 10千元 /吨、 8千元/吨、 6千元 /吨的价格采购原油 A,则约束( 11)和( 12)可以替换为 112 5 0 05 0 0 yxy 223 500500 yxy

11、33 500 yx (14) (15) (16) y1, y2, y3 =0或 1 (17) 优化建模 ( 3) ( 10),( 13) ( 17)构成混合整数线性规划模型,将它输入 LINDO软件: 优化建模 Max 4.8x11+4.8x21+5.6x12+5.6x22-10x1-8x2-6x3 st x-x1-x2-x3=0 x11+x12-x0 0.4x12-0.6x220 x1-500y10 x2-500y30 end int y1 int y2 int y3 优化建模 运行该程序得到 : OBJECTIVE FUNCTION VALUE 1) 5000.000 VARIABLE V

12、ALUE REDUCED COST Y1 1.000000 0.000000 Y2 1.000000 2200.000000 Y3 1.000000 1200.000000 X11 0.000000 0.800000 X21 0.000000 0.800000 X12 1500.000000 0.000000 X22 1000.000000 0.000000 X1 500.000000 0.000000 X2 500.000000 0.000000 X3 0.000000 0.400000 X 1000.000000 0.000000 这个结果与前面非线性规划模型用全局优化得到的结果相同。 优

13、化建模 第 3种解法 直接处理分段线性函数 c(x)。 ( 1)式表示的函数 c(x)如图 5-1。 c(x) x 12000 9000 5000 0 500 1000 1500 图 5-1 分段线性函数 c(x)图形 优化建模 记 x轴上的分点为 b1=0, b2=500, b3=1000, b4=1500。当 x在第 1个小区间 b1, b2时,记 x= z1b1+z2b2, z1+z2=1, z1, z20, 因为 c(x)在 b1, b2是线性的,所以 c(x)= z1c(b1)+z2c(b2)。同样,当 x在第 2个小区间 b2, b3时, x= z2b2+z3b3, z2+z3=1

14、, z2, z30, c(x)= z2c(b2)+z3c(b3)。当 x在第 3个小区间 b3, b4时, x= z3b3+z4b4,z3+z4=1, z3, z4 0, c(x)= z3c(b3)+z4c(b4)。为了表示 x在哪个小区间,引入 0-1变量 yk(k=1,2,3),当 x在第 k个小区间时, yk=1,否则,yk=0。这样 , z1, z2, z3, z4, y1, y2, y3应满足 3432321211 , yzyyzyyzyz )4,3,2,1(0,14321 kzzzzz k10,1 321321 或 yyyyyy(18) (19) (20) 优化建模 此时 x和 c

15、(x)可以统一地表示为 43244332211 15001000500 zzzbzbzbzbzx ( 2) ( 10),( 18) ( 22)也构成一个混合整数线性规划模型,可以用 LINDO求解。不过,我们还是将它输入LINGO软件,因为其扩展性更好(即当分段函数的分段数更多时,只需要对下面程序作很小的改动)。输入的LINGO模型如下: 43244332211 1200090005000)()()()()( zzzbczbczbczbczxc (22) 优化建模 输入的 LINGO模型如下: Model: SETS: Points/14/: b, c, y, z; ! 端点数为 4,即分段数

16、为 3; ENDSETS DATA: b=0 500 1000 1500; c=0 5000 9000 12000; y=,0; ! 增加的虚拟变量 y(4)=0; ENDDATA 优化建模 Max= 4.8*x11 + 4.8*x21 + 5.6*x12 + 5.6*x22 - sum(Points: c*z); x11+x12 0; 0.4*x12 - 0.6*x22 0; sum(Points: b*z)=x; for(Points(i)|i#eq#1: z(i) = y(i); for(Points(i)|i#ne#1: z(i) = y(i-1)+y(i); sum(Points:

17、y)=1; sum(Points: z)=1; for(Points: bin(y); end 优化建模 求解,得到的结果如下(略去已知参数 b和 c的显示结果): Global optimal solution found. Objective value: 5000.000 Extended solver steps: 0 Total solver iterations: 28 优化建模 Variable Value Reduced Cost X11 0.000000 0.000000 X21 0.000000 1.600000 X12 1500.000 0.000000 X22 1000

18、.000 0.000000 X 1000.000 0.000000 Y( 1) 0.000000 -4600.000 Y( 2) 0.000000 -1200.000 Y( 3) 1.000000 0.000000 Y( 4) 0.000000 0.000000 Z( 1) 0.000000 0.000000 Z( 2) 0.000000 0.000000 Z( 3) 1.000000 0.000000 Z( 4) 0.000000 200.0000 优化建模 可见,得到的最优解和最优值与第 2种解法相同。 备注 这个问题的关键是处理分段线性函数,我们推荐化为整数线性规划模型的第 2, 3种解

19、法,第 3种解法更具一般性,其做法如下。 设一个 n段线性函数 f(x)的分点为 11 nn bbb 引入 zk 将 x和 f(x)表示为 11nkkk bzx11)()(nkkk bfzxf(23) (24) 优化建模 zk 和 0-1变量 yk满足 nnnnn yzyyzyyzyz 1121211 , 10,121 或 kn yyyy )1,2,1(01121 nkzzzz kn ,(25) (26) (27) 优化建模 5.2 有瓶颈设备的多级生产计划问题 优化建模 5.2.1 问题实例 在给定的外部需求和生产能力等限制条件下,按照生产总费用最小编制未来若干个生产周期的最优生产计划,这种

20、问题在文献上一般称为批量问题( Lotsizing Problems)。 我们通过下面的具体例子来说明这种多级生产计划问题的优化模型。这里“多级”的意思是需要考虑产品是通过多个生产阶段(工艺过程)生产出来的。 优化建模 例 5.2 某工厂的主要任务是通过组装生产产品 A,用于满足外部市场需求。 A产品的产品构成与组装过程见图 5-2:即 D、 E、 F、 G是从外部采购的零件,先将零件 D、 E组装成部件 B,零件 F、 G组装成部件 C,然后将部件 B、 C组装成产品 A出售。 图中弧上的数字表示的是组装时部件(或产品)中包含的零件(或部件)的数量(可以称为消耗系数),例如 DB弧上的数字“ 9” 表示组装 1个部件 B需要用到 9个零件 D; BA弧上的数字“ 5” 表示组装 1件产品 A需要用到 5个部件 B; 依此类推。 优化建模 瓶颈设备加工 A B C D E F G 5 7 9 11 13 15 图 5-2 产品构成与组装过程图

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报