机械加工生产计划问题
摘要
利用全局最优和局部最优思想,建立优化模型,运用Lingo软件求出最佳结果。通过计算得出最佳利润为41464元。
关键词:方案;线性规划;最优解;设备工时;因素;lingo
1.问题重述:
机械加工厂生产7种产品(产品1到产品7)。该厂有以下设备: 四台磨
床、两台立式钻床、三台水平钻床、一台镗床和一台刨床。每种产品的利润( 单位: 元/件, 在这里, 利润定义为销售价格与原料成本之差)
以及生产单位产品需要的各种设备的工时(小时/件) 如表1所示, 其中短划线表示这种产品不需要相应的设备加工。
表1 产品的利润和需要的设备工时
从一月份至六月份, 每个月中需要检修设备见表2 所示(在检修月份, 被检修设备全月不能用于生产)。每个月各种产品的市场销售量上限如表3 所示。每种产品的最大库存量为100件, 库存费用为每件每月0.5元, 在一月初,所有产品都没有库存;而要求在六月底, 每种产品都有50件库存。工厂每天开两班, 每班8小时, 为简单起见, 假定每月都工作24 天。
生产过程中,各种工序没有先后次序的要求。
制定六个月的生产、库存、销售计划, 使六个月的总利润最大
模型假设
1.每天每台机器从工人工作的同时开始工作,即机器工作时间和工人工时相等,并且根据设备工时、设备检修、工作时间的约束限制,即工作时间每天每台不
能超过16小时,每月不能超过24天。
2.当月所有不需要检修的机器在工作中不会出现故障,影响生产。
3. 每月所能生产的产品必须在当月完成,即当月生产无半成品。
4. 产品库存费用按月结算,并在月底结算。
5. 如果产品在上月有剩余,则该产品的库存量在下一月的销售中优先售完。
6. 当月生产的产品量在不超过销售量上限时,该产品均能销售出去。
7.不考虑检修设备所需要的维修费用和设备在运行中所花费的用电等费用。
3. 符号说明
Z为六个月总利润
六个月每种产品的产量为xij(i=1,2…6,j=1,2…7,其中i为月份,j为产品类别);
六个月每种产品的销量为yij(i=1,2…6,j=1,2…7,其中i为月份,j为产品类别);
六个月每种产品的库存为sij(i=1,2…6,j=1,2…7,其中i为月份,j为产品类别)。
4. 分析与建立模型
4.1 模型分析
6个月的总利润最大,总利润=销售利润-库存成本。
目标函数:设六个月的总利润为M元,则如下:
Max M=10*(y11+y21+y31+y41+y51+y61)+6*(y12+y22+y32+y42+y52+y62)+3*(y13+y23+y33+y43+y 53+y63)+4*(y14+y24+y34+y44+y54+y64)
+1*(y15+y25+y35+y45+y55+y65)+9*(y16+y26+y36+y46+y56+y66)+3*(y17+y27+y37+y47+y57+y67 )-0.5*(s11+s12+s13+s14+s15+s16
+s17+s21+s22+s23+s24+s25+s26+s27+s31+s32+s33+s34+s35+s36+s37+s41+s42+s43+s44+s45+s4
6+s47+s51+s52+s53+s54+s55+s56
+s57+s61+s62+s63+s64+s65+s66+s67);
约束条件:1、设备工时、设备检修、工作时间的约束限制,即工作时间每天每台不超过16小时,每月不能超过24天;每种产品不能少于各自需要的设备工时,并且被检修的设备不能用于全月生产。
在一月份有一台磨床被检修,则只有三台磨床可以用于生产,则磨床的最多使用时间为
48*24小时;两台立式钻床,使用时间最大为32*24小时;三台水平钻床,使用时间最大为48*24小时;一台镗床,使用时间最大为为16*24小时;一台刨床,使用时间最大为16*24小时。
0.5*x11+0.7*x12+0.3*x15+0.2*x16+0.5*x17<1152;
0.1*x11+2*x12+0.3*x14+0.6*x16<768;
0.2*x11+6*x12+0.8*x13+0.6*x17<1152;
0.05*x11+0.03*x12+0.07*x14+0.1*x15+0.08*x17<384;
0.01*x13+0.05*x15+0.05*x17<384;
在二月份中,则只有0台立式钻床用于生产,则立式钻床的最多使用时间为0小时;四台磨床床,使用时间最大为64*24小时;三台水平钻床,使用时间最大为48*24小时;一台镗床,使用时间最大为为16*24小时;一台刨床,使用时间最大为16*24小时
0.5*x21+0.7*x22+0.3*x25+0.2*x16+0.5*x17<1536;
0.1*x21+2*x22+0.3*x24+0.6*x26=0;
0.2*x21+6*x22+0.8*x23+0.6*x27<1152;
0.05*x21+0.03*x22+0.07*x24+0.1*x25+0.08*x27<384;
0.01*x23+0.05*x25+0.05*x27<384;
在三月分中,一台镗床被检修,则用于生产的镗床为0台,最多使用时间为0;四台磨床可以用于生产,则磨床的最多使用时间为64*24小时;两台立式钻床,使用时间最大为32*24小时;三台水平钻床,使用时间最大为48*24小时;一台刨床,使用时间最大为16*24小时。
0.5*x31+0.7*x32+0.3*x35+0.2*x36+0.5*x37<1536;
0.1*x31+2*x32+0.3*x34+0.6*x36<768;
0.2*x31+6*x32+0.8*x33+0.6*x37<1152;
0.05*x31+0.03*x32+0.07*x34+0.1*x35+0.08*x37=0;
0.01*x33+0.05*x35+0.05*x37<384;
在四月份中,一台立式钻床被检修,则只有一台钻床用于生产,最大使用时间为16*24小时;四台磨床床,使用时间最大为64*24小时;三台水平钻床,使用时间最大为48*24小时;一台镗床,使用时间最大为为16*24小时;一台刨床,使用时间最大为16*24小时。
0.5*x41+0.7*x42+0.3*x45+0.2*x46+0.5*x47<1536;
0.1*x41+2*x42+0.3*x44+0.6*x46<384;
0.2*x41+6*x42+0.8*x43+0.6*x47<1152;
0.05*x41+0.03*x42+0.07*x44+0.1*x45+0.08*x47<384;
0.01*x43+0.05*x45+0.05*x47<384;
在五月分中,有一台磨床和一台立式钻床被检修,则则只有三台磨床可以用于生产,则磨床的最多使用时间为48*24小时;一台立式钻床,使用时间最大为16*24小时;三台水平钻床,
使用时间最大为48*24小时;一台镗床,使用时间最大为为16*24小时;一台刨床,使用时间最大为16*24小时。
0.5*x51+0.7*x52+0.3*x55+0.2*x56+0.5*x57<1152;
0.1*x51+2*x52+0.3*x54+0.6*x56<384;
0.2*x51+6*x52+0.8*x53+0.6*x57<1152;
0.05*x51+0.03*x52+0.07*x54+0.1*x55+0.08*x57<384;
0.01*x53+0.05*x55+0.05*x57<384;
在六月份中,一台刨床和一台水平钻床被检修,则一台立式钻床被检修,则只有一台钻床用于生产,最大使用时间为16*24小时;四台磨床床,使用时间最大为64*24小时;三台水平钻床,使用时间最大为48*24小时;一台镗床,使用时间最大为为16*24小时;0台刨床,使用时间最大为0时。
0.5*x61+0.7*x62+0.2*x66<1536;
0.1*x61+2*x62+0.3*x64+0.6*x66<768;
0.2*x61+6*x62<768;
0.05*x61+0.03*x62+0.07*x64<384;
0.01*x63+0.05*x65+0.05*x67=0;
2、根据销售上限每种产品不能超过最大销售量,及非负约束限制
一月份
0 0 0 0 0 0 0 二月份 0 0 0 y24=0; 0 0 0 三月份 0 0 y33=0; y34=0; 0 0 0 四月份 0 0 0 0 0 y46=0; 0 五月份 y51=0; 0 0 0 0 0 y57=0; 六月份 0 0 0 0 0 0 0 3、根据库存限制每种产品最大库存量为100件。一至五月 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 六月份每种产品都有50件库存 s61=50; s62=50; s63=50; s64=50; s65=50; s66=50; s67=50; 4、根据库存量=生产量+上月库存-销售量一至六月 y11=x11-s11; y12=x12-s12; y13=x13-s13; y14=x14-s14; y15=x15-s15; y16=x16-s16; y17=x17-s17; y21=x21+s11-s21; y22=x22+s12-s22; y23=x23+s13-s23; y24=x24+s14-s24; y25=x25+s15-s25; y26=x26+s16-s26; y27=x27+s17-s27; y31=x31+s21-s31; y32=x32+s22-s32; y33=x33+s23-s33; y34=x34+s24-s34; y35=x35+s25-s35; y36=x36+s26-s36; y37=x37+s27-s37; y41=x41+s31-s41; y42=x42+s32-s42; y43=x43+s33-s43; y44=x44+s34-s44; y45=x45+s35-s45; y46=x46+s36-s46; y47=x47+s37-s47; y51=x51+s41-s51; y52=x52+s42-s52; y53=x53+s43-s53; y54=x54+s44-s54; y55=x55+s45-s55; y56=x56+s46-s56; y57=x57+s47-s57; 5、非负约束 Xij>=(i=1,2,4,5,6;j=1,2,3,4,5,6,7) 4.2 模型建立 max=10*(y11+y21+y31+y41+y51+y61)+6*(y12+y22+y32+y42+y52+y62)+3*(y13+y23+y33+y43+y53 +y63)+4*(y14+y24+y34+y44+y54+y64) +1*(y15+y25+y35+y45+y55+y65)+9*(y16+y26+y36+y46+y56+y66)+3*(y17+y27+y37+y47+y57+y67 )-0.5*(s11+s12+s13+s14+s15+s16 +s17+s21+s22+s23+s24+s25+s26+s27+s31+s32+s33+s34+s35+s36+s37+s41+s42+s43+s44+s45+s4 6+s47+s51+s52+s53+s54+s55+s56 +s57+s61+s62+s63+s64+s65+s66+s67); st 0.5*x11+0.7*x12+0.3*x15+0.2*x16+0.5*x17<1152; 0.1*x11+2*x12+0.3*x14+0.6*x16<768; 0.2*x11+6*x12+0.8*x13+0.6*x17<1152; 0.05*x11+0.03*x12+0.07*x14+0.1*x15+0.08*x17<384; 0.01*x13+0.05*x15+0.05*x17<384; 0.5*x21+0.7*x22+0.3*x25+0.2*x16+0.5*x17<1536; 0.1*x21+2*x22+0.3*x24+0.6*x26=0; 0.2*x21+6*x22+0.8*x23+0.6*x27<1152; 0.05*x21+0.03*x22+0.07*x24+0.1*x25+0.08*x27<384; 0.01*x23+0.05*x25+0.05*x27<384; 0.5*x31+0.7*x32+0.3*x35+0.2*x36+0.5*x37<1536; 0.1*x31+2*x32+0.3*x34+0.6*x36<768; 0.2*x31+6*x32+0.8*x33+0.6*x37<1152; 0.05*x31+0.03*x32+0.07*x34+0.1*x35+0.08*x37=0; 0.01*x33+0.05*x35+0.05*x37<384; 0.5*x41+0.7*x42+0.3*x45+0.2*x46+0.5*x47<1536; 0.1*x41+2*x42+0.3*x44+0.6*x46<384; 0.2*x41+6*x42+0.8*x43+0.6*x47<1152; 0.05*x41+0.03*x42+0.07*x44+0.1*x45+0.08*x47<384; 0.01*x43+0.05*x45+0.05*x47<384; 0.5*x51+0.7*x52+0.3*x55+0.2*x56+0.5*x57<1152; 0.1*x51+2*x52+0.3*x54+0.6*x56<384; 0.2*x51+6*x52+0.8*x53+0.6*x57<1152; 0.05*x51+0.03*x52+0.07*x54+0.1*x55+0.08*x57<384; 0.01*x53+0.05*x55+0.05*x57<384; 0.5*x61+0.7*x62+0.2*x66<1536; 0.1*x61+2*x62+0.3*x64+0.6*x66<768; 0.2*x61+6*x62<768; 0.05*x61+0.03*x62+0.07*x64<384; 0.01*x63+0.05*x65+0.05*x67=0; 0 0 0 0 0 0 0 0 0 0 y24=0; 0 0 0 0 0 y33=0; y34=0; 0 0 0 0 0 0 0 0 y46=0; 0 y51=0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 s61=50; s62=50; s63=50; s64=50; s65=50; s66=50; s67=50; y11=x11-s11; y12=x12-s12; y13=x13-s13; y14=x14-s14; y15=x15-s15; y16=x16-s16; y17=x17-s17; y21=x21+s11-s21; y22=x22+s12-s22; y23=x23+s13-s23; y24=x24+s14-s24; y25=x25+s15-s25; y26=x26+s16-s26; y27=x27+s17-s27; y31=x31+s21-s31; y32=x32+s22-s32; y33=x33+s23-s33; y34=x34+s24-s34; y35=x35+s25-s35; y36=x36+s26-s36; y37=x37+s27-s37; y41=x41+s31-s41; y42=x42+s32-s42; y43=x43+s33-s43; y44=x44+s34-s44; y45=x45+s35-s45; y46=x46+s36-s46; y47=x47+s37-s47; y51=x51+s41-s51; y52=x52+s42-s52; y53=x53+s43-s53; y54=x54+s44-s54; y55=x55+s45-s55; y56=x56+s46-s56; y57=x57+s47-s57; y61=x61+s51-50; y62=x62+s52-50; y63=x63+s53-50; y64=x64+s54-50; y65=x65+s55-50; y66=x66+s56-50; y67=x67+s57-50; 5. 模型求解 1、根据此模型,运用lingo软件对其进行求解,得出M=41464元,并且的到六个月的生产、库存、销售计划的最优解如表5-1所示 表5-1 生产、库存、销售最优解 产品月份 1 2 0 4 5 6 1 生产量600 0 0 200 0 550 库存量100 0 0 0 0 50 销售量500 100 0 200 0 500 2 生产量122 0 0 107 102 109 库存量0 0 0 0 2 50 销售量122 0 0 107 100 61 3 生产量300 200 0 400 600 0 库存量0 0 0 0 100 50 销售量300 200 0 400 500 50 4 生产量300 0 0 500 100 350 库存量0 0 0 0 0 50 销售量300 0 0 500 100 300 5 生产量800 500 0 200 1100 0 库存量0 100 0 0 100 50 销售量800 400 100 200 1000 50 6 生产量300 0 450 0 250 550 库存量100 0 50 50 0 50 销售量200 100 400 300 0 500 7 生产量100 250 0 100 100 0 库存量0 100 0 0 100 50 销售量100 150 100 100 0 50 6.模型评价 运用Lingo软件求解问题的最优方案最优解,比如这次的习题,还是很简单易懂的,尤其是答案让人明白最方案的好处所在。然而,让人觉得烦躁的是整个过程需要大量的数据收集以及处理,时间就自然花费了不少,所以我觉得应该创新创造出更好的软件用来求解优化问题,只有这样我们的社会才能更好更快的进步,当然这需要我们的共同的努力,加油吧! 参考文献: 《机械产品生产计划问题》-浙江农林大学;赵静,但琦.数学模型。北京:高等教育出版社,2014.8 附录 max=10*(y11+y21+y31+y41+y51+y61)+6*(y12+y22+y32+y42+y52+y62)+3*(y13+y23+y33+y43+y53 +y63)+4*(y14+y24+y34+y44+y54+y64) +1*(y15+y25+y35+y45+y55+y65)+9*(y16+y26+y36+y46+y56+y66)+3*(y17+y27+y37+y47+y57+y67 )-0.5*(s11+s12+s13+s14+s15+s16 +s17+s21+s22+s23+s24+s25+s26+s27+s31+s32+s33+s34+s35+s36+s37+s41+s42+s43+s44+s45+s4 6+s47+s51+s52+s53+s54+s55+s56 +s57+s61+s62+s63+s64+s65+s66+s67); 0.5*x11+0.7*x12+0.3*x15+0.2*x16+0.5*x17<1152; 0.1*x11+2*x12+0.3*x14+0.6*x16<768; 0.2*x11+6*x12+0.8*x13+0.6*x17<1152; 0.05*x11+0.03*x12+0.07*x14+0.1*x15+0.08*x17<384; 0.01*x13+0.05*x15+0.05*x17<384; 0.5*x21+0.7*x22+0.3*x25+0.2*x16+0.5*x17<1536; 0.1*x21+2*x22+0.3*x24+0.6*x26=0; 0.2*x21+6*x22+0.8*x23+0.6*x27<1152; 0.05*x21+0.03*x22+0.07*x24+0.1*x25+0.08*x27<384; 0.01*x23+0.05*x25+0.05*x27<384; 0.5*x31+0.7*x32+0.3*x35+0.2*x36+0.5*x37<1536; 0.1*x31+2*x32+0.3*x34+0.6*x36<768; 0.2*x31+6*x32+0.8*x33+0.6*x37<1152; 0.05*x31+0.03*x32+0.07*x34+0.1*x35+0.08*x37=0; 0.01*x33+0.05*x35+0.05*x37<384; 0.5*x41+0.7*x42+0.3*x45+0.2*x46+0.5*x47<1536; 0.1*x41+2*x42+0.3*x44+0.6*x46<384; 0.2*x41+6*x42+0.8*x43+0.6*x47<1152; 0.05*x41+0.03*x42+0.07*x44+0.1*x45+0.08*x47<384; 0.01*x43+0.05*x45+0.05*x47<384; 0.5*x51+0.7*x52+0.3*x55+0.2*x56+0.5*x57<1152; 0.1*x51+2*x52+0.3*x54+0.6*x56<384; 0.2*x51+6*x52+0.8*x53+0.6*x57<1152; 0.05*x51+0.03*x52+0.07*x54+0.1*x55+0.08*x57<384; 0.01*x53+0.05*x55+0.05*x57<384; 0.5*x61+0.7*x62+0.2*x66<1536; 0.1*x61+2*x62+0.3*x64+0.6*x66<768; 0.2*x61+6*x62<768; 0.05*x61+0.03*x62+0.07*x64<384; 0.01*x63+0.05*x65+0.05*x67=0; 0 0 0 0 0 0 0 0 0 0 y24=0; 0 0 0 0 0