层次分析,已知某工厂要生产7种产品,以I,II,III,IV,V,VI,VII

  • 格式:doc
  • 大小:294.50 KB
  • 文档页数:16

第一部分问题重述与分析1.1问题重述已知某工厂要生产7种产品,以I,II,III,IV,V,VI,VII来表示,但每种产品的单件利润随市场信息有明显波动,现只能给出大约利润,依次为:100,60,80,40,110,90,30,同时该厂有4台磨床、2台立钻、3台水平钻、1台镗床和1台刨床可以用来生产上述产品。

已知生产单位各种产品所需的有关设备台时从1月到6月,维修计划如下:1月—1台磨床,2月—2台水平钻,3月—1台镗床,4月—1台立钻,5月—1台磨床和1台立钻,6月—1台刨床和1台水平钻,被维修的设备当月不能安排生产。

又知从1—6月市场对上述7中产品最大每种产品当月销售不了的每件每月存储费为5元,但规定任何时候每种产品的存储量均不能超过100件。

1月初无库存,要求6月末各种产品各储存50件。

若该工厂每月工作24天,每天两班,每班8小时,要求(1)该厂如何安排生产,使总利润最大;(2)若对设备维修只规定每台设备在1—6月份内均需安排1个月用于维修(其中4台磨床只需安排2台在上半年维修),时间可灵活安排。

重新为该厂确定一个最优的设备维修计划。

1.2问题分析A.对于问题(1),我们所要解决的是在生产设备有限并得知产品最大需求量的情况下,牟求最大的利润。

通过分析问题(1),我们从以下两条思路着手,即每件产品需多少台不同设备台时,然后建立线性规划模型,其目标函数是根据总利润=各产品的销售数量×各产品的单件利润—库存费用,最后,通过仔细分析题中所含条件,再一一列举出约束条件,据此我们制定出了最优生产方案。

此问题得到解决的关键如下:1.目标函数的确立:由总利润=各产品的销售数量×各产品的单件利润—库存费用,得到目标函数;2.找出约束条件:此线性规划模型,是在考虑到每种产品都需要多种设备加工的基础上,另外由于生产设备有限,所以各生产产品的生产量受设备的可用台时的限制,同时还已知了各产品的最大需求量,据此可得出台时约束方程与需求约束方程;另外,题中还规定了任何时候每种产品的存储量不超过100件,一月初无库存,6月末各产品各存储50件,由此可得出3个约束方程;最后,根据各月各产品生产数量—各月各产品库存量=各月各产品最大需求量,可得另一约束方程;在模型(2)中,是在考虑每种产品都需要各种设备加工的基础上建立起来的,约束条件为库存量的限制,生产量、销售量及库存量之间的关系,工作时间的限制,同样也是线性规划模型。

3.模型求解:编写程序,尽量简洁有效,用Lingo软件进行求解;4.结果分析:讨论分析模型的优缺点,找出模型可改进的方向。

B.对于问题(2),要求重新为该厂确定一个最优的设备维修计划,规定每台设备在1—6月份内均需安排1个月用于维修(其中4台磨床只需安排2台在上半年维修),这是一个最优排序问题,现在我们考虑的问题化为如何维修9台设备,确定出最优维修次序,使得在六个月里得到的总利润最大,这一问题的解决只需在问题(1)的解决方案上稍加分析,创新,便可得到。

第二部分模型假设及符号说明2.1模型假设1.假设题目所给的数据真实可靠;2.为了研究方便,忽略设备维修成本所造成的损失;3.假设当月运行的设备不发生故障,不存在人为破坏因素使之不能正常运行;4.假设每台设备维修的时间不超过一个月,一个月之后,立即投入生产运行;2.2定义与符号说明题中给出的五种设备,分别为磨床、立钻、水平钻、镗床和刨床,对应符号为i,根据排列顺序,分别取i=1,2,3,4,5;月份对应符号为t,分别取t=1,2,3,4,5,6;同时,该工厂生产的产品种类符号为j,依次取j=1,2,3,4,5,6,7。

具体符号定义如下:z : 总利润jt a :第t 个月对第j 种产品的最大需求量;j b :第j 种产品的单件利润;jic :第i 种设备生产单件第j 种产品消耗的时间;it d :第t 月份第i 种工作设备台数(下文中称为工作矩阵);jt x :第t 个月生产第j 种产品的数量;jt h :第t 个月第j 种产品的库存量;jt s :第t 个月售出第j 种产品的数量;j m :第j 种产品的单件库存费用; y tn :第t 个月机器的维修;第三部分 模型的建立与求解3.1 针对问题(1): 3.1.1 模型的建立1) 目标函数此目标函数的确立采用了先确定影响变量,再确定影响变量和总利润之间的关系的思路,让问题的模型具有条理性和简洁性。

根据总利润=生产各产品的数量×各产品的单件利润—库存费用就可写出该函数方程。

76761111max jt j jt j j t j t z s b h m =====-⨯∑∑∑∑2) 约束条件 i.由于该工厂每月只工作24天,每天两班,每班8小时,同时,每月工作设备工作的台时不同,则该工厂第t 个月第i 种设备生产各产品所需时间等于2416it d ⨯⨯小时 ,约束条件如下:712416=⨯≤⨯⨯∑jtji it j xc d (1)ii.由于已知该工厂生产的各种产品的最大需求量,因此,各产品的销售量需不超过各产品的最大需求量:jt jt s a ≤ (2)iii.由于题中规定,任何时候每种产品的存储量均不能超过100件,1月无库存,6月末各种产品各存储50件,所得公式如下:100jt h ≤(j=1,2,3,4,5) (3)650j h = (4)iv.另外,根据生产量,销售量及货存量之间的关系,可得数学表达式如下:当t=1时111j j j h x s =-(j=1,2,3,...,7) (5)当2t ≥时(,1)()jt j t jt jt h h x s -=+- (6)3.1.2 模型的求解由题中从1月到6月的维修计划可知工作矩阵:344434222112313332110111111110it d ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦,由表一数据可知第i 种设备生产单件第j 种产品消耗的台时矩阵:0.50.10.20.0500.70.200.030000.800.0100.300.0700.3000.10.050.20.60000.500.60.080.05ji c ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦,由表二可知,第t 个月对第j 种产品的最大需求量矩阵500600300200050010005006003001005003002000400500100300500100300800400500200100011002003004000300500100150100100060jt a ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦由七种产品的单件利润可得到:[]1006080401109030j b =,根据已得出的目标函数,以及各约束条件,用lingo 软件求解该线性规划模型,具体公式如下:76761111max jt j jt j j t j t z s b h m =====-⨯∑∑∑∑71111(,1)()62416j 1,2,37,t=1(2).10050jt ji it j j j j jt j t jt jt jtjt jt j x c d h x s h h x s t s t s a h h =-⎧⨯=⨯⨯⎪⎪⎪=-=⋯⎪⎪=+-≥⎨⎪≤⎪⎪≤⎪=⎪⎩∑() 用lingo 软件编程,程序见附表一,求得最大利润为937115元,其各产品的生产计划表,库存量表,销售量表如下:3.2 针对问题(2): 1)方法一:由分析可知,问题(2)只是将问题(1)中的维修矩阵由已知变成未知,不过有一点没变的是维修台数不变,要求我们安排最优的维修计划,这里我们先不考虑维修,将设备看成都能在每个月进行生产,得到未维修矩阵记作全d ,则全d =423114231142311423114231142311⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦, 由于维修各种设备的台数不变,我们不妨将问题(1)中的维修矩阵拿下来进行比较观察,344434222112313332110111111110it d ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦,我们不难发现维修矩阵的每一列之和等于未维修矩阵每一列之和减去此列所代表的设备需要维修的设备台数。

下面根据这个条件对在问题(1)中建立的模型进行适当的改进即可得到最优维修矩阵。

目标函数不变:76761111max jt j jt j j t j t z s b h m =====-⨯∑∑∑∑;71111(,1)()66116216316416512416j 1,2,37,t=1(2)10050.22101555()=-=====⎧⎪⎪⨯=⨯⨯⎪⎪=-=⋯⎪⎪=+-≥⎪⎪≤⎪≤⎪⎪=⎪⎪⎨=⎪⎪⎪=⎪⎪⎪=⎪⎪⎪=⎪⎪⎪=⎪⎩∑∑∑∑∑∑jt ji it j j j j jtj t jt jt jt jt jt j t t t t t t t t t t x c d h x s h hx s t s a h h t d d d d d利用lingo 编程,程序在附表二,由运行结果可得到最大利润为1088550元,得到的最优维修矩阵423114231142111202004231142311it d ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦每个月每种产品在最优维修矩阵下的生产量1月2月3月4月5月6月Ⅰ500 600 400 0 0 550Ⅱ1000 500 700 0 100 550Ⅲ300 200 100 0 500 150Ⅳ300 0 100 0 100 350Ⅴ800 400 600 0 1000 1150Ⅵ200 300 400 0 300 550Ⅶ100 150 200 0 0 110这种解法虽然没有确定要维修两台的设备两次维修的是不是同一台,但是我们可以从最优维修矩阵中得出要维修的设备在哪个月维修,在实际中注意便可避免维修同一台,所以这种解法可行。

2)方法二:题目分析f(i)表示不同机器,y(tm)表示表示在t月份要修理的机器ni=(1,2,3,4,5) t=(1,2,3,4,5,6) n=(1,2,3,4,5,6,7,8,9)其中y机器来自f,其中f1有(y1、y2);f2有(y3、y4);f3有(y5、y6、y7);f4有y8;f5有y9;见下表磨床立钻水平钻镗床刨床ft1 ft2 ft3 ft4 ft5 M 1 2 3 4 5 6 7 8 9 一月y11 y12 y13 y14 y15 y16 y17 y18 y19 二月y21 y22 y23 y24 y25 y26 y27 y28 y29 三月y31 y32 y33 y34 y35 y36 y37 y38 y39 四月y41 y42 y43 y44 y45 y46 y47 y48 y49 五月y51 y52 y53 y54 y55 y56 y57 y58 y59 六月y61 y62 y63 y64 y65 y66 y67 y68 y69 设y(tm)是0、1变量0表示不要修理,1表示需要修理.因为每台设配在1——6月份均需安排一个月维修所以;611 tnty==∑y(tn)1⎧=⎨⎩(表示要修理)(表示不需修理)f(t1)=y(t1)+y(t2);f(t2)=y(t3)+y(t4);f(t3)=y(t5)+y(t6)+y(t7);f(t4)=y(t8); f(t5)=y(t9); 设一个矩阵;全d =423114231142311423114231142311⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦,所以d(ti)= d 全-f(ti)目标函数不变:76761111max jt j jt j j t j t z s b h m =====-⨯∑∑∑∑71111(,1)()661112234356748592416j 1,2,37,t=1(2)10050.110jt ji it j j j j jt j t jt jt jtjt jt j tn t titi t t t t t t t t t t t t t t tn x c d h x s h h x s t s ah h s t y d d ff y y f y y f y y y f y f yy =-=⎧⨯=⨯⨯⎪⎪⎪=-=⋯⎪=+-≥⎪⎪≤⎪⎪≤⎪=⎪⎪⎪⎨=⎪⎪=-⎪⎪=+⎪=+⎪⎪=++⎪=⎪==⎩∑∑全()或⎪⎪⎪由lingo 编程,得出最大利润仍为1088550元,得出每月安排生产各种产品的数量如下表:1月 2月 3月 4月 5月 6月Ⅰ 500 600 400 0 0 550Ⅱ 1000 500 700 0 100 550Ⅲ 300 200 100 0 500 150Ⅳ 300 0 100 0 100 350Ⅴ 800 400 600 0 1000 1150Ⅵ 200 300 400 0 300 550Ⅶ 100 150 200 0 0 110得出最优维修矩阵为:422114131142311d 423002131142111ti ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦比较方法一和方法二,由两种方法的求得的每月生产某种产品的数量并没有变,不过最优维修矩阵改变了,而且总利润不变,说明最优维修矩阵不唯一,观察到上述两种维修安排,在某些月份并没有设备维修,若是要求使每月都有设备维修,进行模型扩展。