数学建模-机械产品生产计划调整的解决方案.doc_第1页
数学建模-机械产品生产计划调整的解决方案.doc_第2页
数学建模-机械产品生产计划调整的解决方案.doc_第3页
数学建模-机械产品生产计划调整的解决方案.doc_第4页
数学建模-机械产品生产计划调整的解决方案.doc_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

机械产品生产计划调整的解决方案1、问题的重述机械加工厂用四台磨床、两台立式钻床、三台水平钻床、一台镗床和一台刨床设备生产7种产品。每种产品的利润( 单位:元/件, 在这里, 利润=销售价格-原料成本)以及生产单位产品需要的各种设备的工时(小时/件)如表c.2所示,其中短划线表示这种产品不需要相应的设备加工。表c.2 产品的利润和需要的设备工时 产品 1234567 单位产品利润10.006.003.004.001.009.003.00 磨床0.500.70 - -0.300.200.50 立钻0.102.00 -0.30 -0.6 - 水平钻0.206.000.80 - - -0.60 镗床0.050.03 -0.070.10 -0.08 刨床 - -0.01 -0.05 -0.05从一月份至六月份, 每个月中需要检修设备见表c.3所示(在检修月份,被检修设备全月不能用于生产)。每个月各种产品的市场销售量上限如表c.4所示。每种产品的最大库存量为100件,库存费用为每件每月0.5元,在一月初,所有产品都没有库存;而要求在六月底,每种产品都至少要有50件库存。工厂每天开两班, 每班8小时,为简单计, 假定每月都工作24天 。表c.3 设备检修计划 月份计划检修设备及台数月份计划检修设备及台数一 月一台磨床四月一台立式钻床二 月二台立式钻床五月一台磨床和一台立式钻床三 月一台镗床六月一台刨床和一台水平钻床表c.4 产品的市场销售量上限(件/月)产品1234567一月5001000300300800200100二月6005002000400300150三月30060000500400100四月2003004005002000100五月010050010010003000六月500500100300110050060生产过程中,各种工序没有先后次序的要求 。(1) 制定六个月的生产、库存、销售计划, 使六个月的总利润最大。(2) 在不改变以上计划的前提下, 哪几个月中哪些产品的售价可以提高以达到增加利润的目的。价格提高的幅度是多大?(3) 哪些设备的能力应该增加? 请列出购置新设备的优先顺序。(4) 是否可以通过调整现有的设备检修计划来提高利润? 提出一个新的设备检修计划, 使原来计划检修的设备在这半年中都得到检修而使利润尽可能的 增加。(5) 构造一个最优设备检修计划模型,使在这半年中各设备的检修台数满足案例中的要求且使利润为最大。2、问题的分析因为产品是完整的,设备也是完整的,它们都不是半成品,所以我们要把产品数和设备数都要看做整数,即模型里的变量都要用整数,所以该生产计划问题是一个整数规划(ip)问题,可以在合理假设的基础上通过建立整数规划模型并利用lingo软件来解决该问题。问题一中,需要求使六个月生产量、库存量和销售量达到最大利润的模型。通过分析可知:总利润销售所获总利润库存所需金额以此建立目标函数,通过分析,我们把决策变量定为各月份各种产品的生产量、库存量以及销售量。考虑各种产品的利润、各个设备需要使用的时间、设备检修计划、产品的库存量以及市场销售量上限的约束,建立整数规划模型并进行求解,从而制定出六个月的生产、库存、销售计划使六个月的总利润最大的解决方案。问题二中,在不改变题中给出的计划的前提下,通过提高产品售价来达到增加利润的目的。这是一个灵敏度分析问题。采用灵敏度分析,得到各月份各种产品售价可以提高的上限。为了能得到更大的利润工厂需要购买新设备,通过增加设备数来提高生产产量。问题三就是以这种情况为背景提出来的。这种问题是通过求各种资源的影子价格来判断要买哪一种设备。于是采用对影子价格的分析及对偶规划理论来进行求解,从而得到最好的购买方案。问题四是在使原来计划检修的设备在这六个月仍旧得到检修的前提下,通过改变上述的设备检修计划来达到增加利润的目的。通过对前几个问题的求解过程以及影子价格的分析,找出更优的设备检修方案,并通过求解验证这些方案比原有方案获得更大的利润。问题五是在不改变各种设备检修的台数的基础上提出最优的设备检修方案使工厂所得到的总利润达到最大。所以建立模型时我们需要在问题一中所建立的模型里引进新的变量,重新建立新的模型来求解。3、模型的假设通过上面的分析我们假设检修月份被检修的设备全月不能用于生产一月末开始计算剩余产品的库存费产品生产所需要的设备类型和生产一件产品的设备工作时间及一件产品生产成本不随方案的改变而改变产品的生产量、库存量及销售量为整数。根据上面的假设我们定义了下面的一些变量:第i种产品在第j个月的产量。 i=1,27,j=1,26:第i种产品在第j个月的库存量。 i=1,27,j=1,26:第i种产品在第j个月的销售量。 i=1,27,j=0.1,26:第i种产品六个月的总销售量。 i=1,27:第i种产品在第j个月的销售量上限。i=1,27,j=1,26:第i种产品单位产品利润 。 i=1,27 根据题目给出的“工厂每天开两班,每班8小时,为简单计,假定每月都工作24天” 。可知:各月份各种设备的工作时间数是相等的。设备工作时间数月工作天数每天工作班数每班工作时间数 2428 384(时) 因为每个月都有要需要检修的设备,所以不是所有的设备会去生产产品,根据题中给出的表c.3设备检修计划我们可以列出下面的各个月份实际可工作的设备数量。各个月份实际可工作设备数 月份机床 1月2月3月4月5月6月磨 床344434立 钻202112水平钻333333镗 床110111刨 床1111104、模型的建立与求解(1) 建立问题一的模型并求解:在问题一中,需要求使六个月生产、库存和销售达到最大利润的模型。通过分析可知:总利润销售所获利润库存所需金额。所以可以建立以下的模型:1. 决策变量:决策变量为: , , 2. 确定约束条件:该月份可用的各个设备都会工作384小时,根据表c.2可以确定约束条件。设备使用时间的约束:一月份二月份三月份四月份五月份六月份产品库存量的约束:在一月初,所有产品都没有库存,我们把一月初设为j=0,所以得到下面的第一个式子;每种产品的最大库存量为100件,所以得到下面的第二个式子;在六月底,每种产品都至少要有50件库存,我们把六月底设为j=7,所以得到下面的第三个式子。销售量上限的约束3. 目标函数:最终利润:4. 基本公式: 从二月份开始因为有一月份剩余的产品,所以要把上个月的剩余产品一同卖出去。因此在第二个式子里面该月销售量就是把该月的生产量加上上个月的剩余产品量再减去该月剩余产品的量。5. 求解结果:用lingo软件来求解模型所得出来的六个月各个月份的生产,库存,销售计划结果如下(源程序和运行结果见附录一):月 份份产 品1月2月3月4月5月6月1生产量600002000550库存量100000050销售量500100020005002生产量12200107102109库存量0000250销售量12200107100613生产量30020004006000库存量000010050销售量3002000400500504生产量30000500100350库存量0000050销售量300005001003005生产量800500020011000库存量01000010050销售量8004001002001000506生产量30004500250550库存量10005050050销售量20010040003005007生产量10025001001000库存量01000010050销售量100150100100050求解得到目标函数值(即六个月最大利润)为41464.00元。(2) 问题二的求解:问题二是灵敏度分析问题。采用灵敏度分析,得到各个月份各种产品销售价格可以提高的上限。问题二的决策变量,约束条件以及目标函数跟问题一中给出的一样。但由于lingo无法解决整数规划的灵敏度分析问题,于是用lingo编码的时候把问题一中已编的代码里面的整数约束语句删除即可。求解完后的结果见附录二。因为我们的问题是通过提高产品销售价格来达到增加利润的目的,于是我们只需考虑上限便可。下表展示的是令最优解不变的系数变化范围,即价格最大提高幅度: 月份产品1月2月3月4月5月6月11.10539072165194041.583153130505021140.6295130910550519051065104751.30650571113028386(3)问题三的求解:问题三说道“哪些设备的能力应该增加”,这题的意思就是应增加哪种设备的工作时间数。这是一道分析影子价格的问题,而影子价格是资源在最优解下资源增加1个单位时“效益”的增量,我们可以把设备看做资源。用lingo对问题三求解得到:row slack or surplus dual price obj 41468.00 1.000000 2 416.6000 0.000000 3 1261.000 0.000000 4 1446.000 0.000000 5 1251.100 0.000000 6 650.6000 0.000000 7 1074.233 0.000000 8 194.0000 0.000000 9 0.000000 100.0000 10 498.0000 0.000000 11 0.000000 3.000000 12 0.000000 1.666667 13 58.66667 0.000000 14 0.000000 1.000000 15 842.0000 0.000000 16 1152.000 0.000000 17 90.00000 0.000000 18 0.000000 0.3611111 19 0.000000 1.000000 20 241.3400 0.000000 21 314.0000 0.000000 22 0.000000 200.0000 23 307.7900 0.000000 24 255.9400 0.000000 25 328.7100 0.000000 26 336.0000 0.000000 27 344.5000 0.000000 28 384.0000 0.000000 29 365.0000 0.000000 30 318.0000 0.000000 31 0.000000 220.0000第i个约束条件的影子价格是lingo输出的第i+1行的dual price,于是得到数据各个月份增加每种设备的所能创造的利润,列表如下(下表数据均为增加单位时间,即一小时所得利润):月份机床1月2月3月4月5月6月磨床0.0000000.0000000.0000000.0000000.0000000.000000立钻0.000000100.00000.0000003.0000001.6666670.000000水平钻1.0000000.0000000.0000000.0000000.36111111.000000镗床0.0000000.000000200.00000.0000000.0000000.000000刨床0.0000000.0000000.0000000.0000000.000000220.0000从上表可以知道,磨床所能创造的利润为0元;立钻所能创造的利润约为104.7元;水平钻所能创造的利润约为2.4元;镗床所能创造的利润为200元;刨床所能创造的利润为220元。所以按照利润从大到小的顺序来购买设备的优先次序为:刨床镗床立钻水平钻由于增加磨床的数量并不能提高利润,所以没有必要购买磨床。(4)问题四的求解:问题四是在使原来计划检修的设备在这六个月仍旧得到检修的前提下,通过改变上述的设备检修计划来达到增加利润的目的。通过对前几个问题的求解过程以及影子价格的分析,找出更优的设备检修方案,并通过求解验证这些方案比原有方案的优越性。在对数据的观察和模型的灵敏度分析和对影子价格的探究中,发现可以通过调整现有的检修计划可以达到提高利润的目的。 从问题三中得到的影子价格分析表可以知道:一月份可检修除水平钻以外的4种机床,二月份可检修除立钻以外的4种机床,三月份可检修除镗床以外的4种机床,四月份可检修除立钻以外的4种机床,五月份可检修磨床,镗床,刨床,六月份可检修磨床,立钻,镗床。在表c.3中磨床一共要检修2台,立钻一共要检修4台,水平钻一共要检修1台,镗床一共要检修1台,刨床一共要检修1台。修改检修设备方案时检修的各种设备台数不能少于前一句给出的数据。数学语言表达式如下:设变量为第i种设备在第j个月检修的台数,设磨床为第1种设备,立钻为第2种设备,水平钻为第3种设备,镗床为第4种设备,刨床为第5种设备。所以提出来以下两种修改方案(其实有很多种方案):1. 修改的方案一:月份计划检修设备及台数月份计划检修设备及台数一 月一台磨床四月一台立钻二 月一台立钻五月一台磨床和一台立钻三 月一台镗床和一台立钻和一台水平钻六月一台刨床和一台水平钻各个月份实际工作的设备数: 月份机床1月2月3月4月5月6月磨 床344434立 钻211112水平钻332332镗 床110111刨 床111110时间限制表:115215361536153611521536768384384384384768115211527681152115276838438403843843843843843843843840用lingo求解得到此方案的最大利润为:49870.00元(结果见附录四)2. 修改的方案二:月份计划检修设备及台数月份计划检修设备及台数一 月一台立钻四月一台立式钻床二 月一台立钻五月一台立式钻床、一次镗床三 月两台磨床六月一台刨床和一台水平床各个月份实际工作设备数 : 月份机床1月2月3月4月5月6月磨 床442444立 钻112112水平钻333332镗 床111101刨 床111110时间限制表:153615367681536153615363843847683843847681152115211521152115276838438438438403843843843843843840用lingo求解得到此方案的最大利润为:50887.oo元(结果见附录五)(5)问题五的求解:问题五是在问题四的基础上建立新的模型求解最优的设备检修方案使总利润达到最大。模型的建立要在市场销售量上限以及产品库存量约束不变的条件下,通过更改设备检修方案并进而改变各个月份设备使用时间的约束,在保证设备总次数不变的条件下安排更好的设备检修方案。下面构造这个最优检修方案:决策变量:增加变量为第i种设备在第j个月可以使用的台数,其中设备顺序已在问题四中给出。(i=1,25,j=1,26。)确定约束条件:各种设备每月可以工作的数目少于设备的总数:各种设备六个月工作的总次数:各个设备使用时间的约束:各个月份的销售量的约束:一月份四月份二月份五月份三月份六月份整数约束:且都为整数, i=1,27,j=1,26,k=1,25.目标函数:用lingo求解:(源程序和运行结果见附录六)求解得到目标函数值(即六个月最大利润)为52500.50元在问题三中得到的表中可以看出:增加磨床所创造的利润都是0,所以磨床可以在任一个月都能检修磨床;增加立钻所创造的利润在1月,3月,6月份都是0,5月份的利润是最少的,所以可以在这四个月里检修立钻;增加水平钻所创造的利润在2月,3月,4月都是0,所以在这三个月当中任选一个月来检修水平钻;增加镗床所创造的利润在1月,2月,4月,5月,6月都是0,所以在这五个月当中任选一个月来检修镗床;增加刨床所创造的利润从1月到5月都是0,所以在这五个月当中任选一个月来检修刨床; 根据上面的分析和表c.2给出的条件就有种最优方案。下面只给出一种最优方案该最优设备检修计划方案为:月份计划检修设备及台数月份计划检修设备及台数一月一台立钻四月一台磨床二月一台刨床五月一台立钻和一台水平钻三月一台立钻和一台磨床和一台镗床六月一台立钻分析lingo运行结果可得最优方案的生产,库存,销售计划列表如下: 月 份产 品1月2月3月4月5月6月1生产量5006003002000550库存量0000050销售量50060030020005002生产量62721821070156库存量0000050销售量627218210701063生产量300200040060050库存量000010050销售量30020004005001004生产量30001005000350库存量00100100050销售量300004001003005生产量800500030001150库存量01000100050销售量80040010020010011006生产量2003004000357493库存量00005750销售量20030040003004437生产量10025001000110库存量010000050销售量1001501001000605、模型的推广与改进此模型可以应用于涉及到整数规划的一般生产计划调整的解决方案。也可以进而推广到线性规划问题的优化。此模型的约束条件都很简单,也易于理解。建立模型之前我们假设检修月份被检修的设备全月不能用于生产,产品生产所需要的设备类型和生产一件产品的设备工作时间及一件产品生产成本不随方案的改变而改变。但在现实生产中,设备不一定全月用于检修,随着季节、年份的变化单位生产成本也会发生改变,所以要改进模型以便适用于解决更多类型的计划方案。最好在原有的模型上再加上用分段函数表示的各个时期生产成本的价值的条件。6、参考文献:数学模型(第三版) 姜启源,谢金星,叶俊编 高等教育出版社 2008年12月运筹学(第二版) 徐玖平,胡知能编 科学出版社 2004年5月附录一:model:!机械产品生产计划问题;sets: machine/ma1.ma5/: need; goods/g1.g7/: interest; month/1.6/; links1(machine,goods): a; links2(goods,month):x,c,y; alltimes(machine,month):b;endsets!目标函数;max = sum(goods(i):(sum(month(j):x(i,j) - y(i,6) * interest(i) - 0.5 * sum(links2(i,j):y(i,j);!整数约束;for(links2(i,j):gin(x(i,j);for(links2(i,j):gin(y(i,j);!设备使用时间约束;for(alltimes(i,k): sum(goods(j):a(i,j)*x(j,k)=b(i,k);!库存量约束; for(links2(i,j):y(i,j)=50);!销售量约束; for(goods(i):x(i,1)-y(i,1)=c(i,1); for(links2(i,j)|j#ne#1:x(i,j)+y(i,j-1)-y(i,j)=c(i,j);!数据;data: interest=10 6 3 4 1 9 3; b = 1152 1536 1536 1536 1152 1536 768 0 768 384 384 768 1152 1152 1152 1152 1152 768 384 384 0 384 384 384 384 384 384 384 384 0; c = 500 600 300 200 0 500 1000 500 600 300 100 500 300 200 0 400 500 100 300 0 0 500 100 300 800 400 500 200 1000 1100 200 300 400 0 300 500 100 150 100 100 0 60; a= 0.50 0.70 0.00 0.00 0.30 0.20 0.50 0.10 2.00 0.00 0.30 0.00 0.60 0.00 0.20 6.00 0.80 0.00 0.00 0.00 0.60 0.05 0.03 0.00 0.07 0.10 0.00 0.08 0.00 0.00 0.01 0.00 0.05 0.00 0.05; enddataend运行结果: global optimal solution found. objective value: 41464.00 extended solver steps: 2 total solver iterations: 109 variable value reduced cost need( ma1) 0.000000 0.000000 need( ma2) 0.000000 0.000000 need( ma3) 0.000000 0.000000 need( ma4) 0.000000 0.000000 need( ma5) 0.000000 0.000000 interest( g1) 10.00000 0.000000 interest( g2) 6.000000 0.000000 interest( g3) 3.000000 0.000000 interest( g4) 4.000000 0.000000 interest( g5) 1.000000 0.000000 interest( g6) 9.000000 0.000000 interest( g7) 3.000000 0.000000 a( ma1, g1) 0.5000000 0.000000 a( ma1, g2) 0.7000000 0.000000 a( ma1, g3) 0.000000 0.000000 a( ma1, g4) 0.000000 0.000000 a( ma1, g5) 0.3000000 0.000000 a( ma1, g6) 0.2000000 0.000000 a( ma1, g7) 0.5000000 0.000000 a( ma2, g1) 0.1000000 0.000000 a( ma2, g2) 2.000000 0.000000 a( ma2, g3) 0.000000 0.000000 a( ma2, g4) 0.3000000 0.000000 a( ma2, g5) 0.000000 0.000000 a( ma2, g6) 0.6000000 0.000000 a( ma2, g7) 0.000000 0.000000 a( ma3, g1) 0.2000000 0.000000 a( ma3, g2) 6.000000 0.000000 a( ma3, g3) 0.8000000 0.000000 a( ma3, g4) 0.000000 0.000000 a( ma3, g5) 0.000000 0.000000 a( ma3, g6) 0.000000 0.000000 a( ma3, g7) 0.6000000 0.000000 a( ma4, g1) 0.5000000e-01 0.000000 a( ma4, g2) 0.3000000e-01 0.000000 a( ma4, g3) 0.000000 0.000000 a( ma4, g4) 0.7000000e-01 0.000000 a( ma4, g5) 0.1000000 0.000000 a( ma4, g6) 0.000000 0.000000 a( ma4, g7) 0.8000000e-01 0.000000 a( ma5, g1) 0.000000 0.000000 a( ma5, g2) 0.000000 0.000000 a( ma5, g3) 0.1000000e-01 0.000000 a( ma5, g4) 0.000000 0.000000 a( ma5, g5) 0.5000000e-01 0.000000 a( ma5, g6) 0.000000 0.000000 a( ma5, g7) 0.5000000e-01 0.000000 x( g1, 1) 600.0000 -10.00000 x( g1, 2) 0.000000 -10.00000 x( g1, 3) 0.000000 -10.00000 x( g1, 4) 200.0000 -10.00000 x( g1, 5) 0.000000 -10.00000 x( g1, 6) 550.0000 -10.00000 x( g2, 1) 122.0000 -6.000000 x( g2, 2) 0.000000 -6.000000 x( g2, 3) 0.000000 -6.000000 x( g2, 4) 107.0000 -6.000000 x( g2, 5) 102.0000 -6.000000 x( g2, 6) 109.0000 -6.000000 x( g3, 1) 300.0000 -3.000000 x( g3, 2) 200.0000 -3.000000 x( g3, 3) 0.000000 -3.000000 x( g3, 4) 400.0000 -3.000000 x( g3, 5) 600.0000 -3.000

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论