1、 机械加工生产计划问题 摘 要 利用全局最优和局部最优思想,建立优化模型,运用Lingo软件求出最佳结果。通过计算得出最佳利润为41464元。 关键词:方案;线性规划;最优解;设备工时;因素;lingo 1. 问题重述: 机械加工厂生产7种产品 (产品1到产品7)。该厂有以下设备 : 四台磨床、两台立式钻床、三台水平钻床、一台镗床和一台刨床 。每种产品的利润 ( 单位: 元/件 , 在这里 , 利润定义为销售价格与原料成本之差) 以及生产单位产品需要的各种设备的工时(小时/件) 如表1所示, 其中短划线表示这种产品不需要相应的设备加
2、工。 表1 产品的利润和需要的设备工时 产品 1 2 3 4 5 6 7 单位产品利润 10.00 6.00 3.00 4.00 1.00 9.00 3.00 磨床 0.50 0.70 -- -- 0.30 0.20 0.50 立钻 0.10 2.00 -- 0.30 -- 0.6 -- 水平钻 0.20 6.00 0.80 -- -- -- 0.60 镗床 0.05 0.03 -- 0.07 0.10 -- 0.08 刨床
3、 -- -- 0.01 -- 0.05 -- 0.05 从一月份至六月份, 每个月中需要检修设备见表2 所示 (在检修月份, 被检修设备全月不能用于生产)。 每个月各种产品的市场销售量上限如表3 所示。每种产品的最大库存量为 100件, 库存费用为每件每月0.5元, 在一月初,所有产品都没有库存;而要求在六月底 , 每种产品都有50件库存。工厂每天开两班, 每班8小时, 为简单起见, 假定每月都工作24 天。 表2 设备检修计划 月份 计划检修设备及台数 月份 计划检修设备及台数 一 月 一台磨床 四月 一台立式钻床 二 月 二台立式钻床
4、 五月 一台磨床和一台立式钻床 三 月 一台镗床 六月 一台刨床和一台水平钻床 表3产品的市场销售量上限(件/月) 产品 1 2 3 4 5 6 7 一月 500 1000 300 300 800 200 100 二月 600 500 200 0 400 300 150 三月 300 600 0 0 500 400 100 四月 200 300 400 500 200 0 100 五月 0 100 500 100 1000 300 0 六月 500 500 100 300
5、1100 500 60 生产过程中,各种工序没有先后次序的要求 。 制定六个月的生产、库存、销售计划 , 使六个月的总利润最大 模型假设 1. 每天每台机器从工人工作的同时开始工作,即机器工作时间和工人工时相等,并且根据设备工时、设备检修、工作时间的约束限制,即工作时间每天每台不能超过16小时,每月不能超过24天。 2. 当月所有不需要检修的机器在工作中不会出现故障,影响生产。 3. 每月所能生产的产品必须在当月完成,即当月生产无半成品。 4. 产品库存费用按月结算,并在月底结算。 5. 如果产品在上月有剩余,则该产品的库存量在下一月的销售中优先售完。 6. 当月生
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元,则如下:
7、 MaxM=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
8、s42+s43+s44+s45+s46+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小时;一台刨床,使用时间最
9、大为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小时;一台
10、镗床,使用时间最大为为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
11、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; 在四月份中,一台立式钻床被检修,则只有一台钻床用于生产
12、最大使用时间为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<3
13、84; 在五月分中,有一台磨床和一台立式钻床被检修,则则只有三台磨床可以用于生产,则磨床的最多使用时间为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*x
14、55+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.
15、07*x64<384;
0.01*x63+0.05*x65+0.05*x67=0;
2、根据销售上限每种产品不能超过最大销售量,及非负约束限制
一月份
0 16、0;
三月份
0 17、56;y56<300;
y57=0;
六月份
0 18、
0 19、46<100;
0 20、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-s3 21、7;
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, 22、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+s3 23、5+s36+s37+s41+s42+s43+s44+s45+s46+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*x 24、17<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 25、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 26、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*x6 27、1+6*x62<768;
0.05*x61+0.03*x62+0.07*x64<384;
0.01*x63+0.05*x65+0.05*x67=0;
0 28、
0 29、
0 30、25;s25<100;
0 31、<100;
0 32、3-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;
33、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、根据 34、此模型,运用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
35、
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
库存量
36、
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软件求解问题的最优方案最优解,比如这次的习题,还是很简单易懂的,尤其是答案让人明白最方案的好处所在。然而,让人觉得烦躁的是整个过程需要大量的数据收集以及处理,时间就自然花费了不少,所以我觉得应该创新创造出更好的软件用来求解优化问题,只有这样我们的社会才能更好更快 37、的进步,当然这需要我们的共同的努力,加油吧!
参考文献:
《机械产品生产计划问题》-浙江农林大学;赵静,但琦.数学模型。北京:高等教育出版社,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* 38、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+s46+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;
39、
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 40、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 41、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;
42、
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 43、
0 44、00;
0 45、100;
0 46、0 47、16=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 48、
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+ 49、s54-50;
y65=x65+s55-50;
y66=x66+s56-50;
y67=x67+s57-50;
@gin(x11);@gin(x12);@gin(x13);@gin(x14);@gin(x15);@gin(x16);@gin(x17);@gin(x21);@gin(x22);@gin(x23);@gin(x24);@gin(x25);@gin(x26);
@gin(x27);@gin(x31);@gin(x32);@gin(x33);@gin(x34);@gin(x35);@gin(x36);@gin(x37);@gin(x41);@gin(x42);@gin(x43 50、);@gin(x44);@gin(x45);
@gin(x46);@gin(x47);@gin(x51);@gin(x52);@gin(x53);@gin(x54);@gin(x55);@gin(x56);@gin(x57);@gin(x61);@gin(x62);@gin(x63);@gin(x64);
@gin(x65);@gin(x66);@gin(x67);@gin(x71);@gin(x72);@gin(x73);@gin(x74);@gin(x75);@gin(x76);@gin(x77);
@gin(y11);@gin(y12);@gin(y13);@gin(y14);@g






