《工厂生产计划模型介绍.docx》由会员分享,可在线阅读,更多相关《工厂生产计划模型介绍.docx(18页珍藏版)》请在三一办公上搜索。
1、理工大学暑期数学建模强化训练专题三工厂生产计划模型学员: 曹 阳 许佳利 倪迪杭 学院: 通信工程学院 时间:2010.08.18工厂生产计划模型摘 要本文根据问题的条件和要求,综合考虑工厂获得最大收益所需的各种条件,建立了单目标线性规划模型,并通过LINGO软件的求解,给工厂生产提供了可行有效的生产计划。对于问题一,针对每月都有不同的机床需要停工维修,且不同的产品所需的机床工作时间、市场的容量以及市场价格都有所不同的条件,采用线性规划结合矩阵的方法,对工厂生产进行了模拟,并得到了获得最大收益时的可行方案。对于问题二,将市场价格的某种变化和引入新机床分开考虑。研究市场价格的变化时,将新的产品收
2、益矩阵替代产品的原始收益矩阵即可得到获得最大收益的可行方案;研究引入新机床时,本文采用逆向思维分析确定引入何种新机床使得收益最大,并给出了收益最大时的生产方案。对于问题三,建立了一个维修矩阵,表示各月所要维修的机床及数量,通过综合考虑各月获得最大收益的条件,运用线性规划的思想在问题一的模型的基础上求出了最佳维修方案,进而确定了最佳生产计划,使得总收益最大。关键词: 单目标线性规划,矩阵,生产计划,额外奖励,影响力一、问题的提出某厂拥有4台磨床、2台立式钻床、3台卧式钻床、1台镗床和1台刨床,用以生产7种产品,记作至。工厂收益规定为产品售价减去原材料费用之剩余。每种产品单件的收益及所需各机床的加
3、工工时(以小时计)列于下表:产品收益106841193磨床0.50.7000.30.20.5立式钻床0.10.200.300.60卧式钻床0.200.80000.6镗床0.050.0300.070.100.08刨床000.100.0500.05本月(一月)和随后的5个月中,下列机床停工维修:一月二月三月四月五月六月磨床1台卧式钻床2台镗床1台立式钻床1台磨床1台立式钻床1台卧式钻床1台刨床1台各种产品各月份的市场容量如下表:产品一月5001000300300800200100二月6005002000400300150三月30060000500400100四月200300400500200010
4、0五月010050010010003000六月500500100300110050060每种产品存货最多可到100件,存费为每件每月0.5元。现无存货,要求到6月底每种产品有存货50件。工厂每周工作6天,每天2班,每班8小时。不需要考虑排队等待加工的问题。1、为使收益最大,工厂应如何安排各月份各种产品的生产?2、研究市场价格的某种变化及引入新机床对计划和收益的影响。3、若各机床的停工维修时间不作预先规定,而是选择最合适的月份维修。除磨床外,每台机床在这6个月中的一个月必须停工维修;6个月中4台磨床有2台需要维修。扩展工厂计划模型,使得可以对灵活安排机床维修时间作出决策。停工时间的这种灵活性价值
5、如何?二、问题的分析对于问题一,根据题目要求,通过对各月每样产品的生产量进行合理的安排,使得销售总收益能够达到最大。而收益受到机床的数目、工作时间以及产品的市场容量和存货量等因素限制,我们可以运用线性规划的方法建立单目标线性规划模型,结合LINGO软件求出最优生产计划,从而得到最大收益。对于问题二,题目要求模拟出市场价格变化下或者增加新机床时,应如何调整生产计划以获得最大收益。我们可以对问题一所得的数据进行分析,分别研究市场价格变化和机床数量变化对收益的影响。市场价格的变动,实际是改变了单件产品的收益,产品的价格在一个月内的波动一般不大,假设每个月单件产品收益固定,那么就可以建立一个新的时间产
6、品收益矩阵,将这个矩阵替换问题一的收益矩阵,即可运用问题一的方法算出最优的生产方案。增加新机床,一方面会使得工厂产品的生产量增加,但另一方面又使得工厂的生产成本(新机床的成本)增加,从而影响收益。我们可以逆向思维,在问题一的模型的基础上,逐一增加各种机床,从而可以得到逐一增加各种机床的最大收益,通过判断增加的收益与机床成本的关系来确定增加何种机床使得工厂的总收益最大。 对于问题三,问题三较问题一来说机床停工维修时间的自由度变大了,这使得工厂能够更好的根据市场需求来协调各产品每月的生产及存储计划,以达到最大收益。建立一个的维修矩阵,代表各月需要维修的各种机床的数量,然后建立一个的表示机床数量的矩
7、阵,在解出最优维修矩阵后将后者减去前者便可以得到各个月参加生产的机床的数量,进而运用问题一的方法即可求出此时的最优生产方案。三、问题的假设1、假设每月只有四周,即每月都只有二十四个工作日;2、不停工维修的机床在工作时间内可以同时工作,即不需要考虑排队等待加工;3、产品的市场容量不受产品价格和机床数量等因素变化影响;4、市场价格的改变不影响产品的成本,即产品成本是固定不变的;5、认为新增加的机床的性能较好,在这6个月内不需要维修。四、模型的建立及求解1、符号说明 第个月生产产品的件数 第个月正常使用第种机床的台数(分别表示磨床、立式钻床、卧式钻床、镗床和刨床) 单件产品需由第种机床加工的时间 工
8、厂每个月的工作时间 单件产品的收益(profit) 第个月产品的市场容量(capacity) 第个月产品的存货量(stock) 第个月产品的销售量 6个月产品的总存费 6个月产品的总毛收益 6个月产品的总纯收益 第次增加第种机床得到的额外奖励 第次增加第种机床增加的成本 第次增加第种机床的影响力 第个月维修第种机床的台数 第个月该工厂拥有第种机床的台数 2、模型建立21工厂合理安排各月份各种产品的生产使收益最大的模型2.1.1模型的分析为了使收益最大,工厂在总的工作时间内一要尽可能多的生产产品,而且应该尽可能的生产效益高的产品,但是产品的生产数量还需考虑产品的市场容量;二要尽可能少的存放货物,
9、来减少存费,但是又必须要有一定量的货存量来满足题意要求。我们可以用单位时间内生产的各种产品所获得的收益的多少来衡量其效益的高低。通过计算,得到7种产品的效益如表一所示:表一各种产品的效益表产品效益(元/小时)11766.458.8910.8124.4411.252.44按照常理,我们预测按工厂获得最大收益的计划生产产品,效益较高的产品的收益应该也是较大的。2.1.2模型的建立与求解根据题目的已知条件,我们可以得到第个月正常使用第种机床的台数的矩阵为:。单件产品需由第种机床加工的时间的矩阵为:。单件产品的收益的矩阵为:。第个月产品的市场容量的矩阵为:。第个月产品的存货量满足以下关系式:(即每月每
10、种产品存货最多可到100件),且(即到6月底每种产品都有存货50件)。从而我们可以推出,第个月产品的销售量为,且需满足第个月产品的销售量不能超过第个月产品的市场容量,即。设工厂每个月的工作时间为,则单种机床在第个月的工作时间需满足关系式,即每个月各种机床生产每一种产品的所花的时间不应超过该月该机床的总工作时间。6个月产品的总存费为:。6个月产品的总毛收益为:。6个月产品的总纯收益为:。综上所述,得到问题一的单目标线性规划模型:使用LINGO软件编程(程序见附件1)对该单目标线性规划模型进行求解,我们用EXCEL软件将得到的结果(各月份的产量、存货量和销售量)整理如下列表格所示:表二各种产品各月
11、份的产量表产品产量月 份一月5008883833008002000二月7006001170500300250三月000004000四月2004004006003000200五月00600003000六月550550035005500总量195024381500125016001750450表三各种产品的各月份销售量表产品售量月 份销一月5008883003008002000二月6005002000400300150三月10010000100400100四月2003004005002000100五月0100500100503000六月50050050300050050总量190023881450
12、120015501700400表四各种产品的各月份存货量表产品货量月 份存一月00830000二月100100001000100三月0000000四月010001001000100五月001000500100六月50505050505050总量15025023315030050350存费(元)75125116.57515025175 上述三个表格中的数据,即为收益最大情况下,工厂安排各种机床生产各种产品的计划。工厂按此计划生产六个月,获得的总毛收益元,总存费为元,总收益元。这就是用我们建立的单目标线性规划模型计算的最大收益。2.1.3模型的结果分析(1)由表三可以看出,六月份各种产品的存货量都
13、是50,正符合题中的要求。(2)对比这三个表格,可以看出各种产品各月份的销售量正是该产品该月份的产量与该产品上个月份的存货量之和减去该产品该月份的存货量。(3)表二中多个产品的产量为0,正是由各个月份中的机床停工维修造成的,但是产量为0的时候,产品的销售量并不一定为0,这是由于该产品在上一个月份中有存货。表三中多个产品的销售量为0,则是由该产品在该月份的市场容量为0造成的。(4)对比分析各产品的收益与该产品的效益,两者基本上或是在趋势上是一致的,即效益高的产品收益一般也是比较大的。这说明模型建立之前我们的预测是合理的。两者的对比图如图一所示。由于产品的收益数值较大,该图中收益的曲线是在收益值缩
14、小1000倍的时候作出的,这并不影响两者趋势的分析。图一效益与收益对比曲线22市场价格的某种变化及引入新机床对计划和收益的影响2.2.1市场价格的变化对计划和收益的影响市场价格的变动,实际是改变了单件产品的收益。根据最大收益的计算公式:,市场价格的变化不会导致产品销售量和存货量的改变,若所有产品的市场价格都增加,或者部分产品的市场价格增加,其他产品的市场价格不变,必然会使得工厂的最大收益增加;而若所有产品的市场价格都降低,或者部分产品的市场价格降低,其他产品的市场价格不变,必然导致工厂的最大收益降低。当部分产品的市场价格增加,其他产品的市场价格降低的时候,工厂的最大收益有可能增加,也有可能降低
15、。这个时候,我们可以利用问题一的模型,用单件产品的收益矩阵替代问题一的模型中的收益矩阵,计算出产品市场价格改变后工厂的最大收益,从而来研究市场价格的变化对计划和收益的影响。2.2.2引入新机床对计划和收益的影响分析问题一的数据我们可以得到,有些产品的销售量并没有达到市场容量,也就是说,如果增加新机床来增强生产能力是可以增加收益的。但究竟应该引入何种机床,应该引入多少数量的机床,才能使得收益最大呢?下面我们来分析研究。引入新机床,必然带来生产成本的增加(这里增加的成本指的是购买机床的成本,产品的成本是不变的)。由于购买机床的成本未知,这使得工厂的最大利益不易求得。因此,我们用逆向思维分析的方法来
16、考虑引入新机床对计划和收益的影响。在问题一的模型的基础上,增加一台某种机床,然后用LINGO软件计算出其最大收益,更换机床种类便可得到一组最大收益数据。增加一台某种机床后得到最大收益与问题一的模型计算出的最大收益相减得到的最大利益之差,我们称之为额外奖励。我们在增加机床数目的时候,每次都是增加一台。设第次增加第种机床得到的额外奖励为。即表示不增加机床的额外奖励,显然。设第次增加第种机床增加的成本为。定义额外奖励与第种机床成本的比值为影响力,记为,则。分析得到,影响力具有下面两个性质:(1)当时表示购买该机床获得的额外奖励大于成本,能使最大收益增加;当时表示购买该机床获得的额外奖励小于或等于成本
17、,不值得购买。(2)越大,影响力越大,越值得购买。根据这两条性质,分析第次增加机床的种类。显然,应该增加使得影响力取得最大值的机床。假设各种机床的成本都相同,且较小。利用问题一的模型计算出第次增加机床的方案如表五所示。表五第次增加机床的方案类别磨床立式钻床卧式钻床镗床刨床结论最大收益83508.582536.58257810335395791.5购买镗床额外奖励972041.520816.513255最大收益104325103353103353103353115483购买刨床额外奖励97200012130最大收益116455115483115483115483115483购买磨床额外奖励972
18、0000最大收益116455116455116455116455116455无需购买额外奖励00000这表明,在假设的基础上,第一次增加某种机床,镗床的额外奖励大于其它机床,说明镗床的影响力最大,所以第一次应该购买镗床。第二次增加某种机床,刨床的额外奖励最大,所以第二次购买刨床。第三次增加某种机床,磨床的额外奖励最大,所以第三次购买磨床。第四次增加某种机床,各种机床的额外奖励都为0,说明第三次购买机床后该工厂已经已经具有生产满足市场需求的产品的能力,不需要再增加新机床。即工厂在原有机床的基础上,只需增加一台镗床、一台刨床和一台磨床就能获得最大利益。增加一台镗床、一台刨床和一台磨床后工厂收益最大
19、的生产计划见附录2。而在实际情况中,机床的成本一般不会很小,而在第三次增加某种机床的时候,额外奖励已较小(972),若机床的成本大于972,则其影响力,就不需要购买机床。23工厂计划的扩展模型2.3.1模型的建立和求解若各机床的停工维修时间不作预先规定,而是选择最合适的月份维修。在问题一的模型的基础上,我们引入两个新的矩阵B和Y。设第个月该工厂拥有第种机床的台数为,其矩阵为:。设第个月维修第种机床的台数为,其矩阵为:。则第个月正常使用第种机床的台数。根据问题三的要求,除磨床外,每台机床在这6个月中的一个月必须停工维修(这里假设只维修一次),所以有:,6个月中4台磨床有2台需要维修,有:。其他约
20、束条件与问题一的模型相同,因此可以得到问题三的单目标线性规划模型:同样使用LINGO软件编程(具体程序见附录3)对该单目标线性规划模型进行求解,我们将计算得到的结果(各月份的产量、存货量、销售量和维修方案)整理如下列表格所示:表六各种产品各月份的产量表产品产量月 份一月5001000300300800200100二月6005002000400300150三月400700100100600400200四月0000000五月010050010010003000六月5505501503501150550110总量20502850125085039501750560表七各种产品的各月份销售量表产品售量
21、月 份销一月5001000300300800200100二月6005002000400300150三月30060000500400100四月1001001001001000100五月010050010010003000六月500500100300110050060总量20002800120080039001700510表八各种产品的各月份存货量表产品货量月 份存一月0000000二月0000000三月1001001001001000100四月0000000五月0000000六月50505050505050总量15015015015015050150存费(元)75757575752575表九各种
22、机床各月份的维修方案机床产量月 份12345一月00100二月01000三月00000四月00011五月21100六月00100上述四个表格中的数据,即为收益最大情况下,工厂安排各种机床生产各种产品和安排机床进行维修的计划。工厂按此计划生产六个月,获得的总毛收益元,总存费为元,总收益元。这就是用我们建立的扩展模型计算的最大收益。停工时间的灵活性价值我们用扩展模型计算的最大收益与问题一的模型计算的最大收益之差来体现,其值为25305元。2.3.2模型的结果分析(1)比较扩展模型和问题一的模型的结果,我们可以得到扩展模型的各种产品的销售量都比问题一的模型的销售量大,而扩展模型的各种产品的存货量都小
23、于等于问题一的模型的存货量,这说明在灵活调节各机床的维修时间之后,工厂的收益大大增加了,这正是停工时间的灵活性价值所在。(2)模型扩展后,产品的产量和销售量大大增加(均增加了2350台),其他产品的产量和销售量变化不大,这说明调节各机床的维修时间来增加效益高的产品(的效益为24.44元/小时)的产量能使得收益最大化,这也是符合常理的。五、模型的评价模型的优点:1、本文主要利用矩阵和动态规划的相关知识建立单目标线性规划模型求解,最终为满足工厂的不同要求给出了最佳生产方案,具有很好的现实指导意义;2、本模型使用矩阵来定义各种影响因素,不仅避免了大量方程的赘写,而且增加了模型的灵活性,便于对各个参数
24、进行拓展研究,问题二中对市场价格的研究和问题三的解决就是很好的例子;模型的缺点:本文在解决问题的时候,模型较为单一,并且没有用很好的检验方法来检验最大收益值。六、模型的进一步探讨在问题二的求解中,在研究引入新机床对计划和收益的影响的时候,我们假设各种机床的成本相同,从而将影响力直接体现在额外奖励上。而在实际情况下,各种机床的成本是不相同的。因此,在模型的改进中,可以经过市场调查的方式,得到各种机床的成本,从而精确的计算出其影响力。这样就能更加准确地制定机床购买方案,更具实际指导意义。参考文献1.袁新生 邵大宏等 LINGO和excel在数学建模中的应用科学出版社 2007年1月出版附录1MOD
25、EL:sets:pii/1.7/:p;month/1.7/:m;chuan/1.5/:c;time(chuan,pii):t;monc(month,chuan):mc;rong(month,pii):r,s,n,x;endsetsdata:p=106841193;t=0.50.7000.30.20.50.10.200.300.600.200.80000.60.050.0300.070.100.08000.100.0500.05;mc=00000323114211142301413114130142210;r=0000000500100030030080020010060050020004003
26、00150300600005004001002003004005002000100010050010010003000500500100300110050060;enddatatz=24*16;for(rong(i,j)|i#gt#1:n(i,j)=r(i,j);!销售量小于等于市场容量;for(pii(j):s(1,j)=0);for(rong(i,j):gin(x(i,j);gin(s(i,j);for(rong(i,j)|i#gt#1:n(i,j)=s(i-1,j)+x(i,j)-s(i,j);!销售量=上月存储量+本月生产量-本月存量;for(rong(i,j):s(i,j)=100)
27、;!存量小于等于100件;for(rong(i,j)|i#gt#1:s(7,j)=50);zs=0.5*sum(rong(i,j)|i#gt#1:s(i,j);!计算存储费用;zp=sum(rong(i,j)|i#gt#1:n(i,j)*p(j);max=zp-zs;!净利润;for(month(i)|i#gt#1:for(chuan(k):sum(pii(j):t(k,j)*x(i,j)-mc(i,k)*tz=0);!对每月机床数量的约束;end附录2表十各种产品各月份的产量表产品产量月 份一月5001000300300800200100二月6005002000400300150三月3006
28、0000500400100四月2003004005002000100五月010050010010003000六月5505501503501150550110总量215030501550125040501750560表十一各种产品的各月份销售量表产品售量月 份销一月5001000300300800200100二月6005002000400300150三月30060000500400100四月2003004005002000100五月010050010010003000六月500500100300110050060总量210030001500120040001700510表十二各种产品的各月份存货
29、量表产品货量月 份存一月0000000二月0000000三月0000000四月0000000五月0000000六月50505050505050总量50505050505050存费(元)25252525252525附录3MODEL:sets:pii/1.7/:p;month/1.7/:m;chuan/1.5/:c;time(chuan,pii):t;monc(month,chuan):mc,b,y;rong(month,pii):r,s,n,x;endsetsdata:p=106841193;t=0.50.7000.30.20.50.10.200.300.600.200.80000.60.050
30、.0300.070.100.08000.100.0500.05;r=000000050010003003008002001006005002000400300150300600005004001002003004005002000100010050010010003000500500100300110050060;b=00000423114231142311423114231142311;enddatatz=24*16;for(monc(k,i):gin(y(k,i);for(pii(j):s(1,j)=0);for(chuan(k)|k#gt#2:sum(month(i):y(i,k)-b(
31、2,k)=0);!计算维修矩阵;for(chuan(k)|k#eq#1:sum(month(i):y(i,k)-2=0);for(monc(k,i):mc(k,i)=b(k,i)-y(k,i);for(rong(i,j)|i#gt#1:n(i,j)=r(i,j);for(rong(i,j)|i#gt#1:n(i,j)=s(i-1,j)+x(i,j)-s(i,j);!销售量=上月存储量+本月生产量-本月存储量;for(rong(i,j):s(i,j)=100);for(rong(i,j)|i#gt#1:s(7,j)=50);for(rong(i,j):gin(x(i,j);gin(s(i,j);zs=0.5*sum(rong(i,j)|i#gt#1:s(i,j);!计算存储费用;zp=sum(rong(i,j)|i#gt#1:n(i,j)*p(j);max=zp-zs;for(month(i)|i#gt#1:for(chuan(k):sum(pii(j):t(k,j)*x(i,j)-mc(i,k)*tz=0);!对每月机床数量的约束;end