物流中顾客多优先级的生产—库存系统的仿真

资源类型:pdf 资源大小:145.00KB 文档分类:工业技术 上传者:宋圣帆

相关文档

批量下载下列文档

文档信息

【作者】 仝江华  胡幼华 

【关键词】生产-库存系统 计算机仿真 提前期 优先级 

【出版日期】2005-04-15

【摘要】基于系统仿真原理,对物流中随机性需求且顾客分为不同优先级的生产-库存系统进行了仿真建模,并开发了仿真程序。运用计算机技术得到不同的生产-库存策略的生产-库存总费用及两类顾客的提前期,从而为制造商选出最佳的生产-库存策略提供了有效的工具。

【刊名】物流技术

全文阅读

1引言制定科学的库存策略是物流中供应链管理的关键因素之一。目前大多数文献认为需求是确定的犤1-5犦,对库存的研究使用的是数学分析的方法。但供应链中往往由于不可预知事件的存在导致需求的不确定性,此时需求量和需求到达时间往往必须作为随机变量来考虑。这就需要用随机性系统的有效分析技术——系统仿真的方法来研究。供应链中销售商的库存来自于订货,库存量根据时间上离散的订货到达事件和需求到达事件而改变,因此是离散事件系统;而制造商的库存更为复杂:其库存来自于本企业的生产,因此库存量不仅因需求到达事件而变化,而且库存量还因本企业的生产而随时间呈连续变化,因此生产-库存系统属于复杂的离散-连续系统。为了控制生产-库存的成本,必须维持合理的库存水平,故供应商应根据库存情况来调节生产速率。本文基于系统仿真原理犤6犦,为供应链中的制造商建立了需求随机的、生产速率多级可调的生产-库存系统模型,并开发出相应的仿真软件。提前期是反映物流中服务质量的重要指标。企业有必要兼顾顾客的要求,通过适当增加库存成本来缩短提前期犤5犦。但目前的许多文献忽略了提前期的计算犤2,3犦。此外,顾客的重要性和对缺货的等待时间的要求往往不相同,这就需要制造商区分顾客的优先级来供货,这也是目前多数文献没有考虑到的一个实际问题犤2-5犦。本文在仿真模型中,为不同优先级的顾客分别建立相应的缺货队列,从而可对生产-库存系统进行更接近现实的动态仿真。所开发的仿真软件以生产速率发生突变的临界库存量为决策变量,通过仿真求得各种决策的库存费用和提前期,从而选出最优决策。2生产-库存策略本文中需求量D和相邻两次需求到达的时间间隔均为随机变量。制造商根据目前的库存水平来决定生产速率P(生产速率分为K级,参见图1):(1)当库存<Inv犤0犦,则P=V犤0犦;(2)当Inv犤i-1犦<库存<Inv犤i犦,则P=V犤i犦(式中0<i<K-1);(3)当库存Inven=Inv犤K-1犦,则P=0。其中Inv犤i犦是决定生产速率的临界库存,V犤i犦是相应阶段的生产速率,V犤0犦>V犤1犦>…>V犤K-1犦。生产的产品立即入库。需求到达时,如果此时的库存大于需求量,则立即供货;否则库存处于缺货状态(即负库存)。当有多个顾客的需求未满足时,首先为优先级高的顾客补货。同时,每次需求到达后,检查库存所处的生产阶段,从而调整生产速率。由于改变生产速率需要消耗一定成本,如果原来处于停产状态,为了避免稍有需求就立即恢复生产,故规定当库存降至恢复生产点R epro之下时才恢复生产。生产-库存费用包括有保管费Ch、缺货费Cs和生产费Cz犤7犦:Ch=hT0∫I+(t)dt⑴Cs=πT0∫I-(t)dt⑵Cz=zT0∫P(t)dt+c×Chg⑶其中h和π分别是每件产品每天的保管费和缺货损失费,I+(t)、I-(t)分别是t时刻实际库存量和缺货量,P(t)是t时刻生产速率,T0∫P(t)dt是仿真时间犤0,T犦内总生产量(记为SP),z是每件产品的生产成本,Chg是改变生产速率的次数,c是每次改变速率的成本。“提前期”除了包括运输时间之外,主要由制造商不能及时供货而造成的顾客等待补货时间所引起犤1,5犦。本文中“提前期”是指因缺货引起的顾客等待补货的时间。对应于第i次需求到达事件的提前期Δti是指该次需求到达时间与该需求全部得到满足的时间间隔。显然Δt随缺货量的增加而增大。本文定义两类顾客的平均提前期pre分别为该类顾客需求一件产品的平均等待时间,即:pre=1n ni=1∑(Δti/Di)(4)其中Di为第i个该类顾客的需求量,Δti/Di即为该顾客的提前期,n为该类顾客的总个数。顾客分为高优先级和低优先级两类。当库存处于缺货状态时,到达的顾客排到相应的缺货队列的队尾。3仿真策略和仿真模型3.1仿真策略该系统有两个状态变量—库存量Inven和生产速率P。在离散的时间点上发生两类事件—需求到达事件和减速事件。由图1可知:当减速事件发生时P发生瞬间改变。当需求到达事件发生时,Inven发生瞬间变化;如果库存减少至另一生产阶段,则P也发生瞬间变化。两次相邻事件间随着生产Inven发生连续变化。因此该系统是离散-连续系统。但库存的连续性变化是线性的,故本文采取的仿真策略是:根据上次事件发生时刻(记为tlast)的库存Ilast和P来求出当前库存Inven的值:Inven=Ilast+P×(tim e-tlast)(5)故该系统可以用离散事件系统仿真的方法进行仿真。仿真时钟tim e(表示仿真时间内的当前值的变量)是随仿真的进程而不断更新的时间推进机构。本文采用下次事件时间推进法作为仿真时钟的推进方法,即每次把仿真时钟推进到下一个事件发生的时刻,在该时刻系统的状态发生改变。再把仿真时钟推进到再下一个事件发生的时刻……,直至符合设定的终止条件时为止。未来发生的事件放入事件表(用链表实现)中,减速事件有四个参数:发生时间、事件类型、事件发生时的库存量和事件发生后的生产速率。需求到达事件亦有四个参数:发生时间、事件类型、需求量和优先级。事件按其发生时间插入事件表,使事件表保持按事件的时间升序排列。除了初始事件(即第一次需求到达事件和第一次可能发生的减速事件)是在仿真前确定之外,其他事件都是在仿真过程中策划,故应在仿真中策划未来事件,即确定未来事件的属性,并按其发生时间插入事件表中。本文在需求事件发生时策划下次需求事件:通过随机抽样得到需求量D和两次需求的时间间隔Tint,下次需求事件发生的时间t即为tim e+Tint。在需求到达事件和减速事件发生时均要策划减速事件:设目前生产速率为P,库存量所处阶段为k,则下次可能发生的减速事件发生的时间T1为:T1=(Inv犤k犦-Inven)P+tim e(6)如果T1<下次需求到达事件发生的时间(即减速事件发生在下次需求到达事件之前),则将该减速事件插入事件表(减速事件发生时的库存为Inv犤k犦);否则表示减速事件发生在下次需求到达之后,因需求到达时会导致库存量下降,需要重新确定库存所处阶段,因此减速事件不一定在预期的T1时刻发生,故不将减速事件插入事件表。两个优先级的缺货队列(分别用二维数组描述)各有三个参数:需求到达时间tarrive、需求量D、缺货量Sht。当需求到达时,如果库存从正降为负(即Ilast>0,Inven<0),则开始缺货。此后生产出的产品首先为高优先级队列中队首顾客补货。当此顾客缺货全部得到补足时,高优先级队列中顾客前移一位,再为此时的队首顾客补货,……。当高优先级缺货队列中缺货全部得到补足时,开始为低优先级缺货顾客补货。亦从低优先级缺货队列队首开始补货。3.2仿真模型离散-连续事件系统难以采用某种规范的形式,一般采用流程图来描述。(1)本文仿真程序的主函数的流程为:①输入总仿真时间长度T,初始库存Io(0<Io<Inv犤K-1犦),可调节的生产速率数目K,各个阶段库存临界点Inv犤i犦,各阶段生产速率V犤i犦,以及z,w,c,s,h,π,高优先级的比率g,需求量和需求到达时间间隔的概率分布参数。②调用初始化函数,执行:a)仿真时钟及各计数器置为0。b)库存Inven置为Io,并判断库存所在的库存阶段k以及确定生产速率P=V犤k犦。c)调用随机数产生函数,确定第一次需求到达事件(包括发生时间T1、需求量D和优先级G i),并插入事件表。d)计算下次可能发生的减速事件发生时间t=(Inv犤k犦-In-ven)P。若t<T1,则将减速事件(包括该减速事件的其他两个参数:发生时的库存Inv犤K犦和减速后的速率P1)插入事件表;否则表示第一个需求事件发生在减速事件之前,故该减速事件不可能发生。③循环执行下列操作:调用时序控制函数,其功能是:移出事件表中的第一个事件,其第二个参数即为该事件的类型,仿真时钟tim e推进到该事件发生之时;根据事件类型调用相应的事件处理函数。再次调用时序控制函数,…,直到tim e≥T时,结束循环。④调用报告函数,计算最后一个事件至T之间发生的各项生产-库存费用的日均值,并计算两类顾客的提前期pre1=sum1/n1,pre2=sum2n2(其中sum1、sum2分别为两类顾客的总提前期,n1、n2分别为两类顾客的需求总次数)。(2)更新函数:供事件处理函数调用,其功能是:根据In-ven和Ilast变更下列统计计数器的值:I+(t)曲线下的面积A P(即T0∫I+(t)dt)、I-(t)下的面积AM(即T0∫I-(t)dt)和总生产量SP。SP变更为:SP=SP+(Inven-Ilast)(7)设△A P、△AM分别为A P和A M在tlast到tim e之间增量(即tim etlast∫I+(t)dt)和tim etlast∫I-(t)dt))则:AM=AM+△AM(8)AP=A P+△A P(9)分以下三种情况来计算:①如果Ilast>0且Inven≥0,此时:△A M=0(10)△A P=0.5(Inven+Ilast)(tim e-tlast)(11)△A P即图1中阴影部分面积。②如果Ilast<0且Inven≥0(如图2所示),因生产速率P即tgθ,而△AM和△AP分别为图中的两个三角形的面积,故可得:△A M=Ilast2(2×P)(12)△A P=Inven2(2×P)(13)③如果Ilast<0,且Inven<0,则:△A M=0.5(|Inven|+|Ilast|)(tim e-tlast)(14)△A P=0(15)(3)事件处理函数:对应于每一离散事件,其功能是改变状态变量的值,策划未来事件,变更计数器的值。本文的事件处=理函数为:①需求到达事件函数。其流程见图3。需要说明的是:如果Ilast<0,说明上次事件发生时,有顾客缺货,因此要调用计算提前期函数。如果Inven<D,即目前库存不足以为此次需求供货,此时发生缺货,故需要计算缺货量Sht,即此次需求没有得到满足的量。如P=0(表示处于停产阶段)且Inven>R epro(表示库存减少后仍处于恢复生产点Repro之上),故系统仍处于停产阶段,生产速率不改变。图3需求到达事件流程图②减速事件函数。其流程为:(a)如果Ilast<0,调用计算提前期函数。(b)按式(4)计算此时库存Inven;(c)调用更新函数,根据该事件的第四个属性,确定此时生产速率P,并累计生产速率改变次数。(d)策划可能发生的减速事件(见3.1节)。(e)置tlast=tim e,Ilast=Inven。(4)计算提前期函数。每当需求到达事件或减速事件发生时,如果上次库存Ilast<0(即有顾客等待补货),则调用计算提前期函数。本文对缺货顾客的补货策略是:生产出的产品立即为缺货顾客补货,高优先级顾客优先得到补足。该函数的流程为:①置开始为队首顾客补货的时刻Ti=tlast。②如果高优先级缺货队列非空且Ti<tim e(表明在当前时刻tim e之前已到了开始为队首顾客补货的时刻Ti),则执行下列循环:a)计算队首顾客的缺货得到补足的时刻Td=Ti+Sht P,(Sht为缺货量,Sht P即该顾客缺货全部得到补足所需要的时间)。b)如果Td≤tim e,表示此时该顾客缺货已全部得到补足,则取出队首顾客,该队列中其他顾客依次前移一位。置此时队首顾客开始补货的时间Ti=Td,并累加高优先级的总提前期:sum1=sum1+(Td-tarrive)D(16)其中D为此次补货顾客的需求量。否则(即如果Td>tim e),表示此时该顾客的缺货尚未全部得到补足,而在Ti至tim e时间内生产量为(tim e-Ti)×P,因此此时队首顾客的缺货量Sht降至Sht-(tim e-Ti)×P,同时置Ti=tim e。③按相同方法处理低优先级缺货队列。(5)随机数产生函数①抽样产生顾客优先级:因为g是高优先级顾客的概率,故当r<g时(r为0-1区间内均匀分布的随机数),则为高优先级;否则为低优先级。②本文设需求到达的时间间隔服从平均值为rm ean的指数分布,其分布函数为:F(x)=1-e-xrm ean(17)根据逆变

1 2

问答

我要提问