1、工厂生产计划问题的优化模型摘要企业内部的生产计划有各种不同的情况。从空间层次看,工厂要根据外部需求和内部设备、人力、原料等条件,以最大的利润为目标制定产品的生产计划;从时间层次看,若在短时间内认为外部需求和内部资源等不随时间变化,可制订单阶段生产计划,否则就要制订多阶段生产计划。实际生产中要考虑的除了成本费、存贮费等与产量有关的费用,还要考虑生产这种产品所需要的时间,生产设备的检修等等因素。用数学规划的解决这种问题通常是最有效的方法。针对工厂生产计划问题,本文首先全面分析了题目所给的信息和数据。我们建立了动态优化模型整数线性规划模型,以每月的生产量和库存量为决策变量,以市场最大需求量、库存面积
2、、生产能力(即工时)的限制为约束条件,合理安排生产从而达到本季度利润最大的目标。因此,我们在解决问题(1)时建立了整数线性规划模型 I。模型 I 即问题(1)通过在 LINDO 软件中编程求出了最优解,如下表:一月 二月 三月生产量 318 605 82产品甲 月末库存量 68 133 40生产量 180 150 690产品乙 月末库存量 0 0 40总利润 7244.8 元问题(2)在第一问的基础上将原来的每月检修台数固定改为动态变化并且每类机器的检修总台数不变,故我们主要是通过引入 01 变量来实现每月的检修模式安排,将模型 I 改进为模型 II,使得该厂在本季度的获利最大。模型 II 即
3、问题( 2)通过在 LINDO 软件中编程求出了最优解,如下表:一月 二月 三月生产量 286 637 382产品甲月末库存量 36 133 40生产量 180 150 690产品乙月末库存量 0 0 40A 类机器 3 0 0检修台数B 类机器 3 1 0总利润 8151.2 元由于模型 I 和模型 II 都是整数线性规划模型,用 LINDO 软件求解起来非常方便而且还可以对模型进行灵敏度分析。虽然并不能满足每月都能达到市场最大需求,但这是由机器的最大运转工时决定的。对实际问题来说,还有很多的因素没有考虑,比如原料的供应、原料的成本、生产的产品是不是都符合标准等,模型还有待改进。这类数学规划
4、模型在生产计划问题上具有普遍性和推广性,对其它的工厂(或企业)的生产也适用,只要给出的数据足够,实际和精确,则模型得出的最优解将具有很强的实际意义。关键词:动态规划;生产量;库存量;最大需求量;线性规划模型。一、问题重述生产计划是工厂每个季度必须进行的重要的决策,它直接关系到该工厂该季度的经济效益和下一季度的发展战略,而工厂的计划又要包括外部需求、内部设备。外部需求量的大小关系到该季度的直接的经济效益,内部设备的生产能力以及生产设备的检修等又直接影响到产品的供求是不是能够保持平衡,如果供大于求那么月末多余产品的贮存费用。具体问题:某厂生产甲、乙两种产品,第一季度的最大需求量及单位产品利润和每月
5、的库存成本如表所示。生产这两种产品都必须经过由两道工序,分别使用A、B 两类机器。A 类机器有 4 台,B 类机器有 5 台,每台机器每月运转 180 工时。生产单位甲产品需机器 A0.9 工时,机器 B1.0 工时;生产单位乙产品需机器 A0.5 工时,机器 B0.75 工时。该厂仓库容量为 100 平方米,存贮每单位甲产品需占面积 0.75 平方米,每单位乙产品需占面积 1.2 平方米。该季度开始时无库存量,计划在本季度结束时甲、乙两种产品各库存 40 单位。需求量一月 二月 三月利润(未计库存成本)(元/单位产品)每月库存成本(元/单位产品)甲产品 250 540 700 3.0 0.2
6、乙产品 180 150 650 4.5 0.3根据所给定的生产设备的生产能力以及市场对产品的需求量,做出该季度的该工厂的生产计划,建立相应的模型,使该季度该厂的获得利润最大。二、问题分析工厂生产计划的问题,是在全面考虑了各阶段各种生产设备生产各种产品的能力,以及这些产品在市场上的需求量和在仓库的贮存量等因素给出的一个工厂总的生产计划,目的是为了使该工厂获得最大的利润。所以该问题是一个数学规划模型。用数学规划的解决这种问题是最有效的方法。首先,由表一我们知道该季度产品的外部需求量甲产品是250、540、700,乙产品是 180、150、650,那麽就是说我们的生产量必须等于或高于这些量。且每单位
7、甲产品未计库存成本的利润为 3 元/单位产品,库存为0.2 元/单位产品,每单位乙产品未计库存成本的利润为 4.5 元/单位产品。其次,我们从外部设备来进行分析,第一个生产设备上 A 机器有 4 台,B 机器有 5 台,每台机器每月运转 180 工时, 。生产单位甲产品需机器 A0.9 工时,机器 B1.0 工时;生产单位乙产品需机器 A0.5 工时,机器 B0.75 工时。第二个库存设备上该厂的仓库容量是 100 平方米,也就是说该仓库的最大库存量为 100 平方米,又知存贮甲产品占容量 0.75 平方米/单位产品,存贮乙产品占仓库容量为 1.2 平方米/ 单位产品。该季度开始时没有库存量,
8、但在该季度结束的时候甲乙两种产品的库存量为各40 个单位。问题(1)提出是在各月都有机器进行检修的情况下进行生产,检修一台A 机器需 100 工时,检修一台乙机器需 150 工时,也就是说接受检修的 A 机器每台在该月运转的工时是 80 工时,接受检修的 B 机器每台在该月运转的工时是 30 工时。在此种情况下建立规划模型 I,使得该厂在本季度的获利最大。问题(2)在第一问的基础上将原来的每月检修台数固定改为动态变化并且每类机器的检修总台数不变,所以机器 A 检修的台数为 3 台,机器 B 检修的台数是 4 台,要在这季度的三个月内进行检修,故我们主要是通过引入 01 变量来实现检修安排,将模
9、型 I 改进为模型 II,使得该厂在本季度的获利最大。三、模型假设(1) 假设本季度开始时仓库的库存为 0;(2) 假设不考虑原材料的费用;(3) 假设不考虑原材料的供应;(4) 假设每月月末除放入仓库外其余产品全部销售到市场上;(5) 假设机器在检修期间不工作,检修完后最多能投入当月每台机器除去检修所需工时所剩下的工时;(6) 假设工厂只能生产出单位产品的整数倍数量的产品;(7) 假设产品进入仓库后可以混装并保证不留空隙;(8) 假设每月的生产计划与其余月的生产计划没有影响。四、符号规定表示第 种产品第 月的产量;ijxij表示第 种产品第 月末的库存量;ijy生产第 种产品需要第 种机器的
10、工时;ikcik第 种产品第 月的市场最大需求量;ijdj第 种产品单位产品的库存费用;imi第 种产品单位产品的利润;iq每台机器每月运转工时;eA 机器的台数;gB 机器的台数;hA 机器第 月需要检修的台数;jxjB 机器第 月需要检修的台数;jy每台 A 机器维修所需工时;u每台 B 机器维修所需工时;v第 种产品单位产品库存时所需的库存面积;ini仓库的最大容量;s1,0ija表 示 机 器 A在 第 i月 检 修 j台 ;, 其 他 情 况 。,ijb表 示 机 器 B在 第 i月 检 修 j台 ;, 其 他 情 况 。五、模型的建立从问题的分析可以看出这是一个典型的如何安排生产销
11、售的动态规划模型:由于两种产品各自的产量,销售、需求和库存之间存在着一定的线性关系,据此从而将问题转化为建立线性规划模型。问题(1)的求解:11、目标的确立:我们是在不考虑原料成本费用的基础上,以销售利润减去库存成本作为目标函数,记为 。销售利润= 销售量 单位产品的销售利润,而销售量=总生产量z最后的库存量;库存费用= 库存量 单位产品的库存成本。我门的目的是要求目标函数的最大值,即: 12132123max3()4()0.0. (1)zxyxy 12、约束条件的限制:(1) 库存面积的限制:由于仓库容量为 100 m2。即每月甲乙两种产品库存面积之和不能超过仓库容量。 1210.75.0(
12、)3y由于第三月库存面积 满足条件可以省去。13238(2) 市场最大需求量的限制:每月的销售量为每月的生产量减去每月月末的库存量,不能大于每月市场上的最大需求量。对甲产品12123350(4)576xy对乙产品2123380(7)15869xy (3) 工时(生产能力)即生产设备的限制:每月生产计划所需工时不能超过机器每月运转的总工时减去检修所需的工时。对机器 A121330.9.5804(10) 2x对机器 B12123375(3)0.580145x根据符号规定将上面的式(1)(15)写成紧缩的形式即得到优化模型 I:22311,1,02121max(40). ()23,0,;1iijii
13、jiijijijijijijjijjijijqmystnysxdyIcgeuxhvyx问题(2)的求解:第二问的求解在第一问的基础上将原来的每月检修台数固定改为动态变化并且每类机器的检修总台数不变。因而此模型中的目标函数与问题(1)相同,约束条件中库存面积和市场最大需求量这两个约束不变,主要是工时限制的改变,而工时限制的改变主要是由于安排检修是一个动态变化。为此,我们引入 01 变量 、 表示两类机器在第 月是否检修 台。工ijaijbij时约束限制如下:对机器 A12111213223333.9.50084(10)0 2xa 对机器 B1211121142223233374565(3).50
14、08014xbb 另外,由于各类机器检修的总台数不变且每月的检修模式最多只能有一种。对机器 A:12132231323123 (16)78(9)aaa 对机器 B:121342123431234231234 20(1)3bbbb 根据符号规定将式子(1)(9)和(10) ( 15)以及(16) (23)写成紧缩的形式即得到优化模型 II:232311,1,023142113413max(40). 2,3,2,iijiijiijijijijijij jiiij jiiijijijjqmystnysxdycgeuaxhvbaba41 ()0,12;,3iijijijijij Ixyjab 六、模型
15、的求解模型 I 和模型 II 都是整数线性规划,均可用 LINDO 软件进行求解。将式(1)( 15)输入 LINDO 求解模型 I,可以得到(程序以及结果见附件一): 112132122338,605,8,0,5,690.xxx1122168,3,0.yy目标函数的最大值 (元) 。max74.z将此结果列成下表形式如下:表 1一月 二月 三月生产量 318 605 82产品甲 月末库存量 68 133 40生产量 180 150 690产品乙 月末库存量 0 0 40总利润 7244.8 元将式(1)( 9) 、 (10) (15) 、 (16)(23)输入 LINDO 求解模型II,可以
16、得到(程序以及结果见附件一) 13132,010.ab其 余 变 量 全 为12 22386,78,5,69.xxx1121,.yy目标函数最大值 (元)。5maxz将此结果列成下表形式:表 2一月 二月 三月生产量 286 637 382产品甲月末库存量 36 133 40生产量 180 150 690产品乙月末库存量 0 0 40A 类机器 3 0 0检修台数B 类机器 3 1 0总利润 8151.2 元七、结果分析和模型的检验1、结果分析:从表 1 中的数据可以得出甲产品每月的销售量:250,540,175。乙产品每月的销售量:180,150,650。从表 2 中的数据可以得出甲产品每月
17、的销售量:250,540,575。乙产品每月的销售量:180,150,650。上面两种最优方案的结果表明只有甲产品在第三月份的销售量不能达到市场上的最大需求量,其余都能达到市场上的最大需求量。从题目给出的数据看,若第一季度甲、乙产品的生产量满足总最大需求量,并在这一季度结束时满足所要求的库存量,那么所耗费 A 类机器总工时:(工时) ,187)4065180(5.)47052(9.0 B 类机器总工时: (工时)295)4065(.)72( ,但在这一季度中,由于机器检修耗时,A 类机器能运转的最大工时为(工时) ,B 类机器能运转的最大工时为186031804(工时) ,皆不满足生产出等于最
18、大需求量的产品。2955虽然通过调整检修计划后可以让甲产品在第三月份的销售量增加 500 个单位,从而提高了利润,但还是不能每月都满足市场上的最大需求量。2、模型检验:这是一个整数线性规划模型,根据题目所给的数据运用一般的求解方法,得不到整数解,但是我们运用 LINDO 软件中的 gin 命令对变量进行处理从而得到最优整数解,这与现实和假设都比较吻合。通过附件一对灵敏度进行分析发现该模型的灵敏性较好,可以按最优计划投入生产。八、模型的评价和推广1、评价:优点:(1)本文运用数学规划模型中的线性规划对该工厂本季度的生产计划做出比较合理的规划,通过模型 I 所得到的最优方案虽然不能满足每月的销售量
19、达到市场上的最大需求量,但是模型假设合理,所得结果满足所有约束条件并且这是由机器的最大运转工时决定的。(2)我们在充分考虑最大需求量的限制,库存量和生产能力的限制,建立了以总利润最大为目标的优化模型,并充分有效的利用题目提供的数据信息求出了最优方案。(3)像这样在产品利润、加工时间等参数均可设为常数的情况下,建立线性规划模型,并且可以方便的用 LINDO 软件求解,得到内容丰富的输出,并且可以利用结果输出中的灵敏度分析对模型结果进行进一步的研究,它们对实际问题常常是十分有益的。缺点:(1)对题目中某些信息的分析力度还不够,有些信息没有考虑,即使考虑了但没有在模型中体现得很准确。(2)对实际问题
20、来说,还有很多的因素没有考虑,比如原料的供应、原料的成本、生产的产品是不是都符合标准等。2、推广:这类数学规划模型在生产计划问题上具有普遍性和推广性,对其它的工厂(或企业)的生产也适用,只要给出的数据足够,实际和精确,则模型得出的最优解将具有很强的实际意义。九、参考文献1 刘贵真,刁在筠, 运筹学 ,高等教育出版社,2007。2 孙文瑜,徐成贤,朱德通, 最优化方法 ,高等教育出版社,2006。3 谢金星,薛毅优化建模与 LINDO/LINGO 软件 ,清华大学出版社,2005。4 姜启源等编, 数学模型 ,高等教育出版社,2003。5 李火林等编, 数学模型及方法 ,江西高校出版社,1999
21、。十、附件附件一:问题(1)的程序以及运行结果:说明:因为在编写程序时目标函数中没有写入常数,故运行结果中的最大值并非最后所得的结果。max 3x11+3x12+3x13+4.5x21+4.5x22+4.5x23-0.2y11-0.2y12-0.3y21-0.3y22s.t.0.9x11+0.5x21=620x11+0.75x21=7500.9x12+0.5x22=620x12+0.75x22=7500.9x13+0.5x23=620x13+0.75x23=6000.75y11+1.2y21=1000.75y12+1.2y22=100x11-y11=250x12-y12+y11=540x13+
22、y12=740x21-y21=180x22-y22+y21=150x23+y22=690endgin 10OBJECTIVE FUNCTION VALUE1) 7564.800VARIABLE VALUE REDUCED COSTX11 318.000000 -3.000000X12 605.000000 -3.000000X13 82.000000 -3.000000X21 180.000000 -4.500000X22 150.000000 -4.500000X23 690.000000 -4.500000Y11 68.000000 0.200000Y12 133.000000 0.200
23、000Y21 0.000000 0.300000Y22 0.000000 0.300000ROW SLACK OR SURPLUS DUAL PRICES2) 243.800003 0.0000003) 297.000000 0.0000004) 0.500014 0.0000005) 32.500000 0.0000006) 201.199997 0.0000007) 0.500000 0.0000008) 49.000000 0.0000009) 0.250000 0.00000010) 0.000000 0.00000011) 0.000000 0.00000012) 525.00000
24、0 0.00000013) 0.000000 0.00000014) 0.000000 0.00000015) 0.000000 0.000000NO. ITERATIONS= 26BRANCHES= 1 DETERM.= 1.000E 0附件二:问题(2)的程序以及运行结果:max 3x11+3x12+3x13+4.5x21+4.5x22+4.5x23-0.2y11-0.2y12-0.3y21-0.3y22s.t.0.75y11+1.2y21=1000.75y12+1.2y22=100x11-y11=250x12-y12+y11=540x13+y12=740x21-y21=180x22-y2
25、2+y21=150x23+y22=6900.9x11+0.5x21+100a11+200a12+300a13=720 x11+0.75x21+150b11+300b12+450b13+600b14=9000.9x12+0.5x22+100a21+200a22+300a23=720x12+0.75x22+150b21+300b22+450b23+600b24=9000.9x13+0.5x23+100a31+200a32+300a33=720 x13+0.75x23+150b31+300b32+450b33+600b34=900a11+a12+a13=1a21+a22+a23=1a31+a32+a
26、33=1a11+2a12+3a13+a21+2a22+3a23+a31+2a32+3a33=3b11+b12+b13+b14=1b21+b22+b23+b24=1b31+b32+b33+b34=1b11+2b12+3b13+4b14+b21+2b22+3b23+4b24+b31+2b32+3b33+4b34=4endint a11int a12int a13int b11int b12int b13int b14int a21int a22int a23int b21int b22int b23int b24int a31int a32int a33int b31int b32int b33i
27、nt b34gin 31OBJECTIVE FUNCTION VALUE1) 8471.200VARIABLE VALUE REDUCED COSTA11 0.000000 0.000000A12 0.000000 0.000000A13 1.000000 0.000000B11 0.000000 0.000000B12 0.000000 0.000000B13 1.000000 0.000000B14 0.000000 0.000000A21 0.000000 0.000000A22 0.000000 0.000000A23 0.000000 0.000000B21 1.000000 0.0
28、00000B22 0.000000 0.000000B23 0.000000 0.000000B24 0.000000 0.000000A31 0.000000 0.000000A32 0.000000 0.000000A33 0.000000 0.000000B31 0.000000 0.000000B32 0.000000 0.000000B33 0.000000 0.000000B34 0.000000 0.000000X11 286.000000 -3.000000X12 637.000000 -3.000000X13 382.000000 -3.000000X21 180.000000 -4.500000X22 150.000000 -4.500000X23 690.000000 -4.500000Y11 36.000000 0.200000Y12 133.000000 0.200000Y21 0.000000 0.300000Y22 0.000000 0.300000