APP下载

基于Matlab解决生产—库存问题

2010-04-11夏先进

制造业自动化 2010年11期
关键词:库存量需求量库存

史 历,夏先进

SHI Li1, XIA Xian-jin2

(1. 西安航空技术高等专科学校 基础课部,西安 710077;2. 西北工业大学 软件与微电子学院,西安 710072)

基于Matlab解决生产—库存问题

To solve pproduction and inventory problem based on Matlab

史 历1,夏先进2

SHI Li1, XIA Xian-jin2

(1. 西安航空技术高等专科学校 基础课部,西安 710077;2. 西北工业大学 软件与微电子学院,西安 710072)

生产—库存问题是多阶段决策问题,若用动态规划建立模型求其解,则非常复杂;基于Matlab软件,给出一般的求解程序及命令,使得问题得以解决。

生产—库存;多阶段决策;Matlab软件;源码程序

0 引言

生产—库存问题是一个多阶段决策问题,属运筹学中动态规划所研究解决的范围。动态规划(dynamic programming)是运筹学的一个分支,是求解多阶段决策问题的最优化方法。20世纪50年代初由贝尔曼(R.Beliman)等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优性原理(principle of optimality),把多阶段过程转化为一系列单阶段问题,逐个求解,创立了解决这类过程优化问题的新方法—动态规划。其数学模型为:

其中:R效益总和,rk(xk,uk)为阶段效益,xk+1=Tk(xk,uk)为状态转移方程,xk各阶段状态集合,uk为各阶段决策集合,k为阶段变量。

1 生产—库存问题所涉及的因素

生产—库存问题是企业在生产实践中经常遇到的实际问题。所谓生产—库存问题,就是一个生产部门在已知生产成本、库存费用和各阶段市场需求量的条件下,如何决定各阶段的生产量,欲使计划期内的费用总和最小的问题。我们所要解决的是如何决策各阶段的生产量,若进行大批量的生产可以降低成本,但当超过市场的需求量时,就会造成积压而增加库存费用,但如果按市场的需求量来安排生产,也会出现由于开工不足或加班加点造成生产成本的提高。由于生产—库存问题涉及的因素较多,用数学模型在求其解时其计算非常复杂,这对于解决生产—库存问题的工作者或决策者来说,无论是理论计算或实际应用都会带来很多的困难和不便。下面先列出在生产—库存问题中所要考虑到的因素并用变量表示:

1)生产计划期分为n各阶段,即 k = 1 ~ n ;

2)最初的库存量x0;

3)各阶段市场的需求量dk;

4)各阶段生产单位产品的消耗费用Hk;

5)各阶段单位产品的库存费用Fk;

6)各阶段的仓库容量mk;

7)各阶段的最大生产能力bk;

8)各阶段生产的准备费用Ck(若产量=0,则Ck=0)。

9)计划期末库存量x00。

生产—库存问题就是要解决:在所处条件和要求的约束下,如何决策各阶段的生产量,使得既满足各阶段市场的需求量,又使计划期内总的费用为最低的目标。

2 程序及命令

生产—库存问题所涉及的因素较多,将所有因素都考虑在内,基于Matlab软件,给出求解程序及运行命令。先建立如下六个m文件:

1)状态变量xk为阶段k的初始库存量,由于x0与x00是已知的,于是问题是始端末端固定的问题,其约束条件为:0≤xk≤Min{mk,dk+dk+1+…+dn+x00}。

所建立的m文件为:

2)决策变量uk为阶段k的生产量,其约束条件为:Max{0,dk-xk}≤uk≤Min{bk,dk+dk+1+…+dn+x00-xk,mk-xk+dk}。

所建立的m文件为:

3)状态转移方程为:xk+1= xk+uk-dk,

建立第三个m文件为:

4)各个阶段的效益为:

建立第四个m文件为:

5)建立第五个m文件:引入参考文献[1]第184页文件dynprog.m并作如下修改。

将以上六个m文件保存在Matlab的work中,在求解实际问题时,先在Matlab运行窗口中设定参数:生产计划期分为的阶段n;最初的库存量x0及期末库存量x00;各阶段市场的需求量d=[d1,d2,...,dn,x00]; 各阶段的仓库容量m=[m1,m2,...,mn,x00];各阶段的最大生产能力b=[b1,b2,...,bn,0];各阶段生产单位产品的消耗费用H=[h1,h2,...,hn,0];各阶段单位产品的库存费用F=[f1,f2,...,fn,0];各阶段生产的准备费用C=[c1,c2,...,cn,0]。

然后输入命令:

[p_opt,fval]=prdcStoreProb(x0,x00,d,m,b,H,F,C,'DecisF_1','ObjF_1','TransF_1')

运行后,p_opt有四列输出:第一列为阶段序号;第二列为各阶段初的库存量;第三列为各阶段的最优生产量;第四列为各阶段的费用。在fval输出中显示了计划期最优决策的总费用。

例如:某企业计划初期产品的库存为2个单位,欲进行六个月的生产计划件,要求计划期末库存为1个单位;据预测每个月的最大生产能力分别为:8、7、8、5、6、7个单位,需求量分别为:5、3、2、6、3、7个单位,最大库存容量分别为:15、12、7、8、10、9个单位,生产费用每单位分别为:3、2、5、4、3、5千元,生产所需的准备费用分别为:2、3、1、4、3、2千元,每单位的库存费用分别为:0.005、0.004、0.005、0.002、0.003、0.002千元。求使总费用最小的最优生产计划。

在Matlab运行窗口中输入参数:

所得到的最优决策为:第一、三、五、六各月分别安排生产6、8、4、7个单位,其余月份不生产;最少费用为67(千元)。

3 结束语

以上所建立的m文件较多,其目的能够对实际应用者提供方便。生产—库存问题不仅生产经营部门会遇到,在商业中的采购营销部门同时也存在这样的问题,只需将投入生产的固定和变动成本变为采购商品的固定和变动成本即可应用于实际;企业在市场经营中追求利润最大和成本最低为主要目标,解决生产—库存问题能够使企业减少成本,增加货币的流通性,为利润最大化的实现提供了最优决策,在一定的范围内具有实际应用价值。文章中的源码及程序均在Matlab6.5.1中通过验证。

[1] 胡良剑,等.数学实验一使用MATLAB[M].上海:上海科学技术出版杜,2001.

[2] 赵静,但琦.数学建模与数学实验[M].北京:高等教育出版社,2003.

[3] 杨民助.运筹学[M].西安:西安交通大学出版社,2001.

[4] 楼顺天,等.MATLAB 7.X程序设计语言[M].西安:西安电子科技大学出版社,2007.

TH166

A

1009-0134(2010)10(下)-0051-03

10.3969/j.issn.1009-0134.2010.10(下).16

2010-04-09

史历(1956 -),男,山西垣曲人,副教授,主要从事应用数学及数学模型的教学与研究。

猜你喜欢

库存量需求量库存
国内大豆库存量攀升!6月豆粕价格能否走弱?
乌克兰谷物和油料作物库存远低于2020年同期
从数学角度看“弹性”
价格战是一定的! 2020年虾苗需求量预计减少10%~20%,苗价下调是趋势
房地产去库存中的金融支持探究
营销4C与房产去库存
别指望农民工当去库存的“接盘侠”
国际橡胶研究组织公布全球天然橡胶库存量
2014年2月14日日本橡胶库存量增长4.1%
2014年2月马来西亚棕油库存量减少到166万t