生产与存贮问题的研究.docx
- 文档编号:7712932
- 上传时间:2023-05-12
- 格式:DOCX
- 页数:11
- 大小:36.97KB
生产与存贮问题的研究.docx
《生产与存贮问题的研究.docx》由会员分享,可在线阅读,更多相关《生产与存贮问题的研究.docx(11页珍藏版)》请在冰点文库上搜索。
生产与存贮问题的研究
生产与存贮问题的研究
摘要
本论文通过对生产与存贮问题的抽象简化,建立一个明确、完整的数学模型。
运用整数线性规划模型对厂家的生产和存贮进行优化设计,设计出一种使厂家比较满意的方案,使得所需的成本费用和存贮费用的总和最低。
针对这个问题,我们分三步建立了三个模型,并对每个模型进行了灵敏度分析。
首先根据问题要求制定一个半年逐月生产计划,使得既满足需求和库存容量的限制,又使得总耗费工时数最少,我们建立模型一:
对于模型一,我们采用lingo软件包来得到最优解:
最小工时数309工时,每月生产量分别为:
15,0,8,0,0,4,从月生产量上来看,我们发现这样的分布不合理。
针对模型一的不足,我们加入了存贮费这一重要的影响因素,从而建立了模型二:
模型二计算时我们假设了m=30元,n=50元,在这基础上利用lingo解得到了一个最优解:
工时数为335工时,生产费用为10050元,存贮费用为850元,总成本为10900元。
模型二已经能较好地解决生产与存贮的问题,但是考虑到更复杂的市场因素,我们把生产数量和存贮对当月的生产成本和存贮成本的影响考虑进去,所以我们建立了更加完美的模型三:
模型三中我们通过查阅运筹学相关书籍对m、n进行了分段假设,同时还假设了每月固定的生产成本(设备维护费用)和每月固定存贮费(仓库管理员的月工资)的存在。
最后得出最优解:
工时数为335工时,生产费用为11650元,而存贮费用为5480元,总成本为17130元。
以上三个模型都是通过lingo软件来实现它的运算的,最终的结果也与我们假设的值有关。
最后我们对我们模型的进行了阐述,并得到了对模型的整体评价。
_
关键词:
整数线性规划lingo生产存贮灵敏度分析
1.问题重述
一个生产项目,在一定时期内,增大生产量可以降低成本费,但如果超过市场的需求量,就会因积压增加存贮费而造成损失。
相反,如果减少生产量,虽然可以降低存贮费,但又会增加生产的成本费,同样会造成损失.因此,如何正确地制定生产计划,使得在一定时期内,生产的成本费与库存费之和最小,这是厂家最关心的优化指标,这就是生产与存贮问题。
假设某车间每月底都要供应总装车间一定数量的部件。
但由于生产条件的变化,该车间每月生产单位部件所耗费的工时不同,每月的生产量除供本月需要外,剩余部分可存入仓库备用。
今已知半年内,各月份的需求量及生产该部件每单位数所需工时数如下表所示:
月份k123456
月需求量bk853274
单位工时ak111813172010
设库存容量H=9,开始时库存量为2,期终库存量为0。
要求制定一个半年逐月生产计划,使得既满足需求和库存容量的限制,又使得总耗费工时数最少。
2.问题分析
在机器制造厂中,加工一个零件常常要经过许多工序。
一道工序完工后即成为下一道工序的生产备件,在这种由前道工序转入下道工序的环节中就会产生存储问题。
这是一个求最优解的问题,在月需求量和每月单位工时已知的情况下,制定生产计划使得既满足需求和库存容量的限制,又使得总耗费工时数最少。
但题目中最后一句只涉及工时数,而前面又提到厂家最关心的是总成本(即生产成本和库存费)最小,所以我们准备建立几个模型来讨论。
第一个是仅考虑工时数最优,第二个模型考虑总成本最优。
在这里,需要说明的是生产成本和存贮费的计算。
我们认为:
生产成本=总工时数*每工时成本,存贮费=每月月底库存容量*每部件月存贮费用。
因为库存容量在一个月中由于生产与需求的变化处于不断地变更中,而月底的库存容量可以影响到下个月的生产计划制定,所以我们以每月月底库存容量*每部件月存贮费用作为每月的存贮费用。
同时考虑到实际生活中厂家一般为了保持机器运转,所以我们设置每个月的生产量至少为1。
我们假设每工时成本为m=30元,每部件月存贮费用为n=200元。
为了更加接近现实生活,我们需建立第三个模型:
每个月的单位生产成本随着数量的增加而减小,单位产品月存贮费随着数量的增加而减少,并且生产成本和存贮成本都有月基本费用。
3.模型假设
1.假设表中的所提供的数据没有随时间的推移和外部条件的变化而发生变化。
2.每部件的月存贮费用和每工时的成本在这半年中没有发生变化。
4.符号系统
xi表示第i个月的生产量
bki表示第i个月的需求量
aki表示第i个月的单位工时
ri表示第i个月的库存量,其中r0表示开始时的库存量2
m表示每工时费用,n表示每部件月存贮费用
5.模型建立
经过上面的分析,我们将按步骤建立由浅入深的三个模型,并对每个模型做出分析和解答。
5.1最简的生产与存贮模型
5.1.1模型一的建立
对于第一种模型分析,我们把目标函数设为和工时数有关的一个函数,约束条件为每个月都满足市场需求,同时也要满足仓库库存容量的需求。
基于此我们建立了如下模型:
5.1.2模型一的求解
对于这样的整数线性规划模型,我们采用lingo编程来求解(程序见附录1)。
解得的最优解如下表:
表一:
1
2
3
4
5
6
总计
生产量
15
0
8
0
0
4
27
库存量
9
4
9
7
0
0
29
工时
165
0
104
0
0
40
309
由上表可知:
仅考虑工时最优时,最佳生产计划为每月依次生产15、0、8、0、0、4单位产品,总工时最小值为309。
5.1.3模型一的灵敏度报告
对模型一的灵敏度分析报告进行分析,得到(xk1,xk3,xk6)为最优基,最优解为(15,8,4),最优值为309,。
当非基变量xk2,xk4,xk5的值分别从0变为1时,xk5的变化对应的最优值的增加最大,即第五个月生产产品耗费的单位工时最久。
对约束分析,第2、4、7、12、13行为紧约束,其对偶价格值均为0,即每个月的库存量的影子价格均为0,所以任一库存量的增加不会改变最优值。
最优基不变的情况下,改变各月份的生产该部件每单位数所需工时数ak,最优解亦不变,而若改变基变量的值将改变最优值,其中xk3最多减少2,对应最优值减少16,xk1,xk6均可以减少至0,考虑到实际情况,若它们都减少3,则其中xk1对应的最优之的减少量达到45。
5.2考虑生产费与存贮费的生产与存贮模型
5.2.1模型二的建立
考虑到厂家一般关心的最优指标为生产费和存贮费之和,所以我们建立一个模型把这些费用考虑进去。
我们用m表示每工时费用,n表示每部件月存贮费用,建立如下模型:
xi>=1(
)
5.2.2模型二的求解
我们假设每工时成本为m=30元,每部件月存贮费用为n=50元,而且为了保持机器运转,我们再增加一个条件:
xi>=1。
对于这个整数求最优解的问题,我们运用lingo11编写程序(程序代码见附录2)求得结果如下表:
表二:
1
2
3
4
5
6
总计
生产量
10
1
10
1
1
4
27
库存量
4
0
7
6
0
0
17
工时
110
18
130
17
20
40
335
生产费用
3300
540
3900
510
600
1200
10050
存贮费用
200
0
350
300
0
0
850
月总费用
3500
540
4250
810
600
1200
10900
由上表可知:
考虑生产费和存贮费时,最佳生产计划为每月依次生产10、1、10、1、1、4单位产品,总工时最小值为335,总费用最小值为10900。
5.2.3模型二的灵敏度报告
对模型二的灵敏度分析报告进行分析,得到(xk1,xk2,xk3,xk4,xk5,xk6,Hk1,Hk3,Hk4)为最优基,最优解为(10,1,10,1,1,4,4,7,6),最优值为10900。
当非基变量Hk2,Hk5,Hk6的值分别从0变为1时,其中Hk5的变化对应的最优值的增加最大,所以第五个月的库存量应尽可能小。
对约束分析,第2、3、4、5、6、7、8、10、12、13行都为紧约束,其对偶价格都不为0,其中第6行对偶价格值为490,即月需求量增加1,最优值增加490,增加幅度最大;第8行对偶价格值为-350,即月需求量增加1,最优值减少350,减少幅度最大。
最优基不变的情况下,改变每件产品的存贮费用n,其中第一个月的每件产品的存贮费用的变化范围可取[10,210],同理分析其他几个月,并且取每件产品的存贮费用下限至少为1,则有每件产品的存贮费用的变化范围可取[10,120],在此范围内最优解不变。
改变每工时成本为m,其中第一个月的每工时成本的变化范围可取[290/11,490/11],同理分析其他几个月,并且取每工时成本为整数,下限至少为1,则有每工时成本的变化范围可取[27,33],在此范围内最优解不变。
5.3更加符合实际的生产与存贮模型
5.3.1模型三的建立:
增大生产量可以降低单位生产成本,但如果超过市场的需求量,就会因积压增加存贮费而造成损失。
相反,如果减少生产量,虽然可以降低存贮费,但又会增加生产的成本费,同样会造成损失。
我们查阅了运筹学的相关书籍,发现了生产量和单位成本以及存贮量和单位存贮成本之间存在着相关关系。
在此基础上,我们假设仓库看管员工资为800元(若仓库没有货物,也需要付给看管员800元的工资),若仓库中存贮的产品不超过3件,则每件产品的存贮费用为n=50元,若仓库中存贮的产品超过3件,则每件产品的存贮费用n=40元。
同时,生产设备每月维护费用500元,若生产量不超过3件,每工时成本为m=30元,若生产量在3件以上每工时成本为m=25元。
这样的设置更加合理,接近实际,我们对这种情况建立如下模型:
其中,mi表示第i个月每工时费用,ni表示第i个月每部件月存贮费用。
5.3.2模型三的求解
用lingo求解得到结果见表三:
(程序代码见附录3)
表三:
1
2
3
4
5
6
总计
生产量
10
1
10
1
1
4
27
库存量
4
0
7
6
0
0
17
工时
110
18
130
17
20
40
335
生产费用
3250
1040
3750
1010
1100
1500
11650
存贮费用
960
800
1080
1040
800
800
5480
月总费用
4210
1840
4830
2050
1900
2300
17130
由上表可知:
考虑更加实际的情况时,最佳生产计划为每月依次生产10、1、10、1、1、4单位产品(与模型二相同),总工时最小值335,总费用最小值为17130。
5.3.3模型三的灵敏度报告
对模型三的灵敏度分析报告进行分析,为非线性整数规划。
其中得到(xk1,xk2,xk3,xk4,xk5,xk6,Hk1,Hk3,Hk4)为最优基,最优解为(10,1,10,1,1,4,4,7,6),最优值为17130。
当非基变量Hk2,Hk5,Hk6的值分别从0变为1时,其中Hk5的变化对应的最优值的增加最大,所以第五个月的库存量应尽可能小。
对约束分析,第1、2、3、4、5、6、7、8、9、10、11、12、14、15、16、17、18、19、20、22、24、25行都为紧约束,其中第18行对偶价格值为405,即第5个月的需求量增加1,最优值增加405,增加幅度最大。
6.模型分析
6.1对模型一的分析
模型一共分为三个。
模型一考虑的因素较为单一,只是从题目最后一句所说的工时最小来考虑,限制条件也最少,只是简单地满足了月需求量和仓库容量的要求,用lingo得到的结果15,0,8,0,0,4.这样的结果可能与实际吻合度不高,因为有三个月的生产量为零,但也有可能是外部条件对该厂的影响比较大,比如季节等。
这个模型计算比较简单,方便读者理解。
6.2对模型二的分析
对于模型二,我们增加了一个较为实际的限制条件:
xi>=1,这样保证了工厂生产的连续性,虽然没有什么数学意义,但可以使模型更加合理优化。
同时,优化目标从最少工时变成了生产总费用,优化目标和限制条件的改变导致了最优解的变化。
这个模型没有把生产数量和存贮对当月的生产成本和存贮成本的影响考虑进去,除此之外这个模型还是能很好地解决求总费用最小的问题的。
6.3对模型三的分析
模型三中我们把生产数量和存贮对当月的生产成本和存贮成本的影响考虑进去,发现用lingo运行的结果在生产量和存贮量上和模型二相同,但是这个模型考虑更加完备,如果能取到较好地m,n的值,我们可以发现这个比模型二更好的地方。
6.4三个模型有待改善之处
三个模型中都没有限制月生产量的上限,考虑到每月的需求量跨度从2到8不等,再加上有了仓库库存最大为9的限制,所以我们没有直接限定月生产量的上限,而是通过月需求量和仓库容量这两个条件来进行约束。
7.模型推广
本文是针对一个厂家制定生产计划建立一个最优模型,其中厂家的月需求量已经提前告知,使得模型的计算变得相对简单一点。
我们推荐模型三的适用范围更广,这个模型中可以拥有更多的变量,另外,如果在需求量未知,只能靠市场预估来给出一个范围时,模型三通过修改一些变量就能很好地解决。
这个模型还能推广到运输与存贮的关系上去。
8.结论
模型一中我们设立了目标函数是关于最小工时数的,最后用线性规划得到了最小的工时数309工时,本模型的不足在于考虑的最优因素太少。
所以我们建立了模型二,把目标函数改成关于总费用的一个函数,同时假设了一些参数,这样求得的最优结果为工时数为335工时,生产费用为10050元,存贮费用为850元,总成本为10900元的最优解。
这个模型已经能基本满足题目的要求。
但是我们考虑到更多的市场因素,把生产量的不同对生产成本的影响和库存数量对存贮成本的影响都计算在内,建立了一个更加全面的模型,在设置了一些必要参数后,我们得到了一个最优解:
工时数为335工时,生产费用为11650元,而存贮费用为5480元,总成本为17130元。
9.参考文献
[1]赵静,但琦等.数学建模与数学实验.北京:
高等教育出版社,2008年.
[2]李维铮等.运筹学(第三版).北京:
清华大学出版社,2006年.
[3]刘焕彬等.数学模型与实验.北京:
科学出版社,2008年.
10.附录
附录1:
模型一的lingo程序代码:
min=11*x1+18*x2+13*x3+17*x4+20*x5+10*x6;
x1-6<=9;
x1+x2-11<=9;
x1+x2+x3-14<=9;
x1+x2+x3+x4-16<=9;
x1+x2+x3+x4+x5-23<=9;
x1+x2+x3+x4+x5+x6-27<=0;
x1-6>=0;
x1+x2-11>=0;
x1+x2+x3-14>=0;
x1+x2+x3+x4-16>=0;
x1+x2+x3+x4+x5-23>=0;
x1+x2+x3+x4+x5+x6-27>=0;
@gin(x1);
@gin(x2);
@gin(x3);
@gin(x4);
@gin(x5);
@gin(x6);
附录2:
模型二的lingo程序代码:
model:
sets:
A/1..6/:
bk,ak,Hk,xk;
endsets
min=@sum(A:
ak*xk*m+Hk*n);
Hk
(1)=2+xk
(1)-8;
@for(A(J)|J#le#6#and#J#ge#2:
Hk(J)=Hk(J-1)+xk(J)-bk(J));
@for(A(J)|J#le#5:
@bnd(0,Hk(J),9));
Hk(6)=0;
@for(A:
xk>=1);
data:
m=30;
n=50;
bk=8,5,3,2,7,4;
Ak=11,18,13,17,20,10;
enddata
end
附录3:
模型三的lingo程序代码:
model:
sets:
A/1..6/:
bk,ak,Hk,xk,m,n;
!
m代表第i个月每工时费用,n代表第i个月单位产品存贮费,
Hk代表月库存,xk代表月生产量,ak代表月单位工时,bk代表月需求量;
endsets
@for(A(i):
m(i)=@if(xk(i)#le#3,30,25));
@for(A(i):
n(i)=@if(Hk(i)#le#3,50,40));
min=800*6+500*6+@sum(A:
ak*xk*m+Hk*n);
Hk
(1)=2+xk
(1)-8;
@for(A(J)|J#le#6#and#J#ge#2:
Hk(J)=Hk(J-1)+xk(J)-bk(J));
@for(A(J)|J#le#5:
@bnd(0,Hk(J),9));
Hk(6)=0;
@for(A:
xk>=1);
data:
bk=8,5,3,2,7,4;
Ak=11,18,13,17,20,10;
enddata
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 生产 存贮 问题 研究