1、 -684- 第二十八章 存贮论 存贮论(或称为库存论)是定量方法和技术最早研究的领域之一,是研究存贮系统的性质、运行规律以及如何寻找最优存贮策略的一门学科,是运筹学的重要分支。存贮论的数学模型一般分成两类:一类是确定性模型,它不包含任何随机因素,另一类是带有随机因素的随机存贮模型。 1 存贮模型中的基本概念 所谓存贮实质上是将供应与需求两个环节以存贮中心联结起来,起到协调与缓和供需之间矛盾的作用。存贮模型的基本形式如图 1 所示。 图 1 存贮问题基本模型 1存贮问题的基本要素 ( 1)需求率:单位时间内对某种物品的需求量,用 D表示。 ( 2)订货批量:一次订货中,包含某种货物的数量,用
2、Q表示。 ( 3)订货间隔期:两次订货之间的时间间隔,用 T 表示。 2存贮模型的基本费用 ( 1)订货费:每组织一次生产、订货或采购的费用,通常认为与定购数量无关,记为DC 。 ( 2) 存贮费: 所有用于存贮的全部费用, 通常与存贮物品的多少和时间长短有关。单位存贮费记为PC 。 ( 3)短缺损失费:由于物品短缺所产生的一切损失费用,通常与损失物品的多少和短缺时间的长短有关,记为SC 。 3存贮策略 所谓一个存贮策略,是指决定什么情况下对存贮进行补充,以及补充数量的多少。下面是一些比较常见的存贮策略。 ( 1) t循环策略:不论实际的存贮状态如何,总是每隔一个固定的时间 t,补充一个固定的
3、存贮量 Q。 ( 2) ),( St 策略:每隔一个固定的时间 t补充一次,补充数量以补足一个固定的最大存贮量 S 为准。因此,每次补充的数量是不固定的,要视实际存贮量而定。当存贮(余额)为 I 时,补充数量为 ISQ = 。 ( 3) ),( Ss 策略:当存贮(余额)为 I ,若 sI ,则不对存贮进行补充;若 sI ,则对存贮进行补充, 补充数量 ISQ = 。 补充后达到最大存贮量 S 。 s称为订货点 (或保险存贮量、安全存贮量、警戒点等) 。在很多情况下,实际存贮量需要通过盘点才能得知。若每隔一个固定的时间 t盘点一次,得知当时存贮 I ,然后根据 I 是否超过订货点 s,决定是否
4、订货、订货多少,这样的策略称为 ),( Sst 策略。 2 无约束的确定型存贮模型 我们首先考察经济订购批量存贮模型。 所谓经济订购批量存贮模型( economic ordering quantity, EOQ)是指不允许缺货、-685-货物生产(或补充)的时间很短(通常近似为 0)的模型。 2.1 模型一:不允许缺货,补充时间极短基本的经济订购批量存贮模型 基本的经济订购批量存贮模型有以下假设: ( 1)短缺费为无穷,即 =SC ; ( 2)当存贮降到零后,可以立即得到补充; ( 3)需求是连续的、均匀的,即需求速度(单位时间的需求量) D为常数; ( 4)每次的订货量不变,订购费不变; (
5、 5)单位存贮费为pC 。 由上述假设,存贮量的变化情况如图 2 所示。 图 2 EOQ 模型的存贮量曲线 在每一个周期( T )内,最大的存贮量为 Q,最小的存贮量为 0,且需求是连续均匀的,因此在一个周期内,其平均存贮量为 Q21,存贮费用为 QCP21。 一次订货费为DC ,那么在一个周期( T )内的平均订货费为 TCD/ 。由于在最初时刻,订货量为 Q,在 T 时刻,存贮量为 0,而且单位时间的需求量为 D且连续均匀变化,因此,得到订货量 Q、需求量 D和订货周期 T 之间的关系DQT = 。 由此计算出一个单位时间内的平均总费用 QDCQCCDP+=21( 1) 对式( 1)求导数
6、,并令其为 0,即 0212=QDCCdQdCDP( 2) 得到费用最小的订货量 PDCDCQ2*= ( 3) 最佳订货周期 DCCDQTPD2*= ( 4) 最小费用 DCCQDCQCCPDDP221*=+= ( 5) -686- 公式( 3)称为经济订购批量( economic ordering quantity,简写 EOQ)公式,也称为经济批量( economic lot size)公式。 例 1 某商品单位成本为 5 元,每天保管费为成本的 0.1%,每次定购费为 10 元。已知对该商品的需求是 100 件 /天,不允许缺货。假设该商品的进货可以随时实现。问应怎样组织进货,才能最经济
7、。 解 根据题意, 005.0%1.05 =pC (元 /件天) , 10=DC 元, 100=D 件 /天。 由式( 3)( 5) ,有 632005.01001022*=PDCDCQ (件) 32.6100632*=DQT (天) 16.32*= DCCCPD(元 /天) 所以,应该每隔 6.32 天进货一次,每次进货该商品 632 件,能使总费用(存贮费和定购费之和)为最少,平均约 3.16 元 /天。 进一步研究,全年的订货次数为 75.5732.6365=n (天) 但 n必须为正整数,故还需要比较 57=n 与 58=n 时全年的费用。 编写如下 LINGO程序: model: s
8、ets: times/1 2/:n,Q,C; endsets data: n=57 58; enddata C_D=10; D=100*365; C_P=0.005*365; for(times:n=D/Q;C=0.5*C_P*Q+C_D*D/Q); end 求得全年组织 58 次订货费用少一点。 利用 LINGO 软件,我们可以直接求出问题的整数解。 LINGO 程序如下: model: sets: times/1100/:C,Q; !100不是必须的,通常取一个适当大的数就可以了 ; endsets C_D=10; D=100*365; C_P=0.005*365; for(times(i
9、):Q(i)=D/i;C(i)=0.5*C_P*Q+C_D*D/Q); -687-C_min=min(times:C); Q_best=sum(times(i):Q(i)*(C(i) #eq# C_min); !(C(i) #eq# C_min)返回的值为0或1; N_best=D/Q_best; end 求得一年组织 58 次订货,每次的订货量为 629.3 件,最优费用为 1154.25 元。 2.2 模型二:允许缺货,补充时间较长经济生产批量存贮模型 模型假设条件: ( 1)需求是连续的,即需求速度 D为常数; ( 2)补充需要一定时间。即一旦需要,生产可立刻开始,但生产需要一定周期。设
10、生产是连续均匀的,即生产速度 P为常数。同时,设 DP ; ( 3)单位存贮费为PC ,单位缺货费为SC ,订购费为DC 。不考虑货物价值。 存贮状态图见图 3。 图 3 允许缺货且补充时间较长的存贮模型 ,0 T 为一个存贮周期,1t 时刻开始生产,3t 时刻结束生产。 ,02t 时间内存贮为 0,1t 时达到最大缺货量 B, ,21tt 时间内产量一方面以速度D满足需求,另一方面以速度 DP 补充 ,01t 时间内的缺货,至2t 时刻缺货补足。 ,32tt 时间内产量一方面以速度 D满足需求,另一方面以速度 DP 增加存贮。至3t 时刻达到最大存贮量 A,并停止生产。 ,3Tt 时间内以存
11、贮满足需求,存贮以速度 D减少。至 T 时刻存贮降为零,进入下一个存贮周期。 下面,根据模型假设条件和存贮状态图,首先导出 ,0 T 时间内的平均总费用(即费用函数) ,然后确定最优存贮策略。 从 ,01t 看,最大缺货量1DtB = ;从 ,21tt 看,最大缺货量 )(12ttDPB = 。故有 )(121ttDPDt = ,从中解出: 21tPDPt= ( 6) 从 ,32tt 看,最大存贮量 )(23ttDPA = ;从 ,3Tt 看,最大存贮量)(3tTDA = 。故有 )()(323tTDttDP = ,从中解得 )(223tTPDtt = ( 7) -688- 易知,在 ,0 T
12、 时间内:存贮费为 )()(21223tTttDPCP ;缺货费为2121tDtCS;定购费为DC 。 故 ,0 T 时间内平均总费用为 +=DsPCtDtCtTttDPCTtTC21223221)()(211),( 故将( 6)和( 7)代入,整理后得 TCTtCCtCTCPDDPtTCDSPPp+=2222)(22)(),( ( 8) 解方程组 =0),(0),(222ttTCTtTC可得 )1()(2*PDCDCCCCTSPSPD+= *2TCCCtSPP+= 容易证明,此时的费用 ),(*2*tTC 是费用函数 ),(2tTC 的最小值。 因此,模型的最优存贮策略各参数值为: 最优存贮
13、周期)1()(2*PDCDCCCCTSPSPD+= ( 9) 经济生产批量)1()(2*PDCCCCDCDTQSPSPD+= ( 10) 缺货补足时间)1)(2*2PDCCDCCCTCCCtSPSPDSPP+=+= ( 11) 开始生产时间)()1(2*2*1SPSPDCCDCPDCCtPDPt+= ( 12) 结束生产时间*2*3)1( tPDTPDt += ( 13) -689-最大存贮量 )(*3*tTDA = ( 14) 最大缺货量*1*DtB = ( 15) 平均总费用*2TCCD= ( 16) 例 2 有一个生产和销售图书设备的公司,经营一种图书专用设备,基于以往的销售记录和今后市
14、场预测。估计今后一年的需求量为 4900 个,由于占用资金的利息以及存贮库房和其它人力物力的费用,存贮一个书架一年要花费 1000 元。这种书架是该公司自己生产的,每年的生产量 9800 个,而组织一次生产要花费设备调试等生产准备费500 元。如果允许缺货,缺货费为每年每件 2000 元。该公司为了把成本降到最低,应如何组织生产?要求出其生产、存贮周期,每个周期的最优生产量,以及最少的年总费用。 解 根据题意知, 4900=D , 1000=PC , 9800=P , 500=DC , 2000=SC ,利用式( 9)( 13) , ( 16)求相关的指标。 编写的 LINGO 程序如下: m
15、odel: D=4900; C_P=1000; P=9800; C_D=500; C_S=2000; T=(2*C_D*(C_P+C_S)/(D*C_P*C_S*(1-D/P)0.5; !单位为年 ; TT=T*365; !单位为天 ; Q=D*T; T_S=C_P*TT/(C_P+C_S); !求缺货时间 ; T_P=D*TT/P; ! 求生产周期 ; C=2*C_D/T; ! 求年总费用 ; end 求得每个周期为 9 天,其中 9 天中有 4.5 天在生产,每次的生产量为 121 件,而且缺货的时间有 3 天。总的费用(包括存贮费、订货费和缺货费)为 40414.52 元。 可以把模型一
16、看作模型二的特殊情况。在模型二中,取消允许缺货和补充需要一定时间的条件,即 SC , P ,则模型二就是模型一。事实上,如将 SC 和P 代入模型二的最优存贮策略各参数公式,就可得到模型一的最优存贮策略。只是必须注意,按照模型一的假设条件,应有 0*3*2*1= ttt ,*QA = , 0*=B 2.3 模型三:不允许缺货,补充时间较长基本的经济生产批量存贮模型 在模型二的假设条件中,取消允许缺货条件(即设 sC , 02=t ) ,就成为模型三。因此,模型三的存贮状态图和最优存贮策略可以从模型二直接导出。 模型三的存贮状态见图 4。下面我们用另外的方法导出模型三的最优存贮策略。 -690-
17、 图 4 经济生产批量模型存贮量的变化情况 经济生产批量存贮模型除满足基本假设外,其最主要的假设是:当存贮降到零后,开始进行生产,生产率为 P,且 DP ,即生产的产品一部分满足需求,剩余部分才作为存贮。 设生产批量为 Q,生产时间为 t,则生产时间与生产率之间的关系为 PQt = 对于经济生产批量模型,有 最高存贮量 QPDPQDPtDP )1()()( = ( 17) 而平均存贮量是最高存贮量的一半, 关于平均固定订货费与经济定购模型中的平均订货费相同,同样是QDCD。这样,平均总费用为 QDCQCPDCDP+= )1(21( 18) 类似于前面的推导,得到最优生产量、最优存贮周期、最大存
18、贮量和最优存贮费用 )1(2*PDCDCQPD= ( 19) )(2*DPDCPCDQTPD= ( 20) PDCDCPDQPDA)1(2)1(*= ( 21) DCCPDTCCDPD)1(22*= ( 22) 例 3 商店经销某商品,月需求量为 30 件,需求速度为常数。该商品每件进价 300元,月存贮费为进价的 2。向工厂订购该商品时订购费每次 20 元,定购后需 5 天才开始到货,到货速度为常数,即 2 件 /天。求最优存贮策略。 解 本例特点是补充除需要入库时间(相当于生产时间)外,还需要考虑拖后时间。因此,订购时间应在存贮降为零之前的第 5 天。除此之外,本例和模型三的假设条件完全一
19、致。本例的存贮状态见图 5。 -691-图 5 拖后时间的存贮模型 从图 5 可见, 拖后时间为 ,00t , 存贮量 L应恰好满足这段时间的需求, 故0DtL= 。 根据题意,有 2=P 件 /天, 1=D 件 /天, 2.0301%2300 =PC 元 /天件,20=DC 元 /次, 50=t 天, 551 =L 件。代入( 19)( 22) ,求得 20*=Q 件, 20*=T 天, 10*=A 件, 2*=C 元 在本例中, L称为订货点,其意义是每当发现存贮量降到 L或更低时就定购。在存贮管理中,称这样的存贮策略为“定点订货” 。类似地,称每隔一个固定时间就订货的存贮策略为“定时订货
20、” ,称每次订购量不变的存贮策略为“定量订货” 。 2.4 模型四:允许缺货,补充时间极短的经济订购批量存贮模型 在模型二的假设条件中,取消补充需要一定时间的条件(即设 P ) ,就成为模型四。因此,和模型三一样,模型四的存贮状态图和最优存贮策略也可以从模型二直接导出。 模型四的存贮状态图见图 6。下面我们用另外的方法导出模型四的最优存贮策略。 设 T 仍为时间周期,其中1T 表示 T 中不缺货时间,2T 表示 T 中缺货时间,即TTT =+21。 S 为最大缺货量 ,sC 为缺货损失的单价, Q仍为每次的最高订货量,则SQ 为最高存贮量,因为每次得到订货量 Q后,立即支付给顾客最大缺货 S
21、。 图 6 允许缺货的经济订购批量存贮模型的存贮情况 以一个周期为例,计算出平均存贮量、平均缺货量和平均总费用。 平均存贮量TTSQTTTSQ2)(0)(21121=+= ( 23) 其中 -692- DSQT=1,DST =2,DQT = ( 24) 由此计算出 平均存贮量QSQTTSQ2)(2)(21= , ( 25) 平均缺货量QSTST2222= ( 26) 因此,允许缺货的经济订购批量存贮模型的平均总费用 QSCQDCQSQCCSDP22)(22+= ( 27) 求式( 27)关于 Q和 S 的偏导数,并求出其极小点 sPsPDCCCCDCQ)(2*+= ( 28) *QCCCSsP
22、P+= ( 29) 最佳订货周期 DCCCCCDQTsPsPD)(2*+= ( 30) 最大存贮量 )(2*sPPSDCCCDCCSQA+= ( 31) 最小费用 *2*2*2)(2)(2QSCQDCQSQCTCCSDPD+= ( 32) 例 4 某电器公司的生产流水线需要某种零件,该零件需要靠订货得到。已知批量订货的订货费 12000 元 /次,每个零件的存贮机费用为 0.3 元 /(件月) ,每个零件的缺货损失为 1.1 元 /(件月) ,设该零件的每月需求量为 8000 件。求全年的订货次数、订货量以及最优存贮费用。 解 根据题意,取一年为单位时间,由已知条件,订货费 12000=DC
23、元 /次,存贮费 6.3=PC 元 /(件年) ,缺货损失费 2.13=SC 元 /(件年) ,需求率 96000=D 件/年。该存贮问题可由一个整数规划来表示 QSCQDCQSQCSDP22)(min22+s.t. QDn= , 0, SQ , 0n 且取整数 编写 LINGO 程序如下: -693-model: min=0.5*C_P*(Q-S)2/Q+C_D*D/Q+0.5*C_S*S2/Q; n=D/Q;gin(n); data: C_D=12000; D=96000; C_P=3.6; C_S=13.2; enddata end 求得全年组织 3 次订货,每次的订货量为 32000
24、件,最大缺货量为 6857.141 件,最优费用为 81257.14 元。 对于确定型存贮问题,上述四个模型是最基本的模型。其中,模型一、三、四又可看作模型二的特殊情况。 在每个模型的最优存贮策略的各个参数中, 最优存贮周期 T是最基本的参数,其它各个参数和它的关系在各个模型中都是相同的。根据模型假设条件的不同,各个模型的最优存贮周期*T 之间也有明显的规律性。因子SSPCCC +对应了是否允许缺货的假设条件,因子DPP对应了补充是否需要时间的假设条件。 一个存贮问题是否允许缺货或补充是否需要时间,完全取决于对实际问题的处理角度,不存在绝对意义上的不允许缺货或绝对意义上的补充不需要时间。如果缺
25、货引起的后果或损失十分严重,则从管理的角度应当提出不允许缺货的建模要求;否则,可视为允许缺货的情况。至于缺货损失的估计,应当力求全面和精确。如果补充需要的时间相对于存贮周期是微不足道的,则可考虑补充不需要时间的假设条件;否则,需要考虑补充时间。 在考虑补充时间时, 必须分清拖后时间和生产时间, 两者在概念上是不同的。 2.5 模型五:经济定购批量折扣模型 所谓经济订购批量折扣模型是经济订购批量存贮模型的一种发展,即商品的价格是不固定的,是随着订货量的多少而改变的。就一般情况而论,物品订购的越多,物品的单价也就越低,因此折扣模型就是讨论这种情况下物品的订购数量。 一年花费的总费用由三个方面组成:
26、年平均存贮费、年平均订货费和商品的购买费用,即 )()(21QDKQDCQQCCDP+= ( 33) 在式( 33)中, )(QK 是物品的价格,它与物品的订购数量有关,一般是一个分段表示的函数,即 =QxQQxx,( 51) 因此,产生的利润 +=QxKQUQQxKQxQVUxQG,)()( ( 52) 这样一个周期的总利润应该是 )(QG 的期望值,即 dxxfKQUQdxxfKQxQVUxQGEQQ)()()()()(0+= =QdxxfxQVUQKU0)()()()( ( 53) 注意,在上式推导中用到概率密度的性质 1)(0=+dxxf 。 为求极大值,对式( 53)两端关于 Q求导
27、数,得到 =QdxxfVUKUdQQGdE0)()()()(( 54) 0)()()(22 。令 KUg = 是物品出售后的利润,同时表示物品不足时,由于缺货造成的损失。令 VKh = 是物品折扣出售的损失,因此方程( 56)也可写成 hggVUKUdxxfQ+=0)( ( 57) 为进一步理解公式( 53)的含义,将公式( 53)改写为 +=QdxxfQxVUQVUQKUQGE )()()()()()( dxxfQxVUQVKQUQ+= )()()()( ( 58) 其中 dxxxf+=0)( 为需求量 D的数学期望。或者写成 dxxfQxhgQhgQGEQ)()()()()(+= ( 59
28、) 在式( 58)中,积分 dxxfQxQ+ )()( 相当于当 Qx 时的损失函数,即式( 58)可以理解为 期望值缺货收入期望值折扣收入成本期望值总收入期望值总利润4.3 模型的求解 例 9(报童问题) 在街中有一报亭,平均每天出售报纸 500 份,出售报纸的数量,与来往的人流有关,假设服从 Poisson 分布,每卖出一份报纸能盈利 0.15 元。如果卖不出去,只能作为废纸处理,每份报纸亏损 0.40 元,问:报亭应如何安排报纸的订购量,使得报亭的利润最大? 解 由题意知,均值 500= ;每份报纸的利润 15.0=g 元;作为废纸处理时,每份报纸亏损 4.0=h 元。利用式( 57)计
29、算出 Q来,再利用式( 59)计算出期望总利润。 对于 Poisson 分布,式( 57)中的积分Qdxxf0)( 可由 LINGO 中的函数 pps 计算,pps( Q, )是均值为 的 Poisson 分布函数,即 pps( Q, )=Qxxex0!若 Q不是整数,该函数采用线性插值计算。 式 ( 59) 中的积分+QdxxfQx )()( 可由函数 ppl 计算, ppl( Q, )表示 Poisson分布的线性损失函数,即 ppl( Q, )+=1!)(QxxexQx-702- 编写 LINGO 程序如下: model: data: mu=500;g=0.15;h=0.40; endd
30、ata pps(mu,Q)=g/(g+h); E_G=g*mu-h*(Q-mu)-(g+h)*ppl(mu,Q); end 求得报亭每天订购报纸 486 份,每天盈利 70.93 元。 下面我们使用 MATLAB 求例 9 的解。实际上式( 57)中的 Q是 Poisson 分布的上hgh+分位点。对于式( 59)中的积分计算,首先利用 Matlab 的匿名函数定义被积函数,然后使用 MATLAB 中的积分命令 QUADL 进行积分,注意在积分时必须把积分区间化成有限区间。 计算的 Matlab 程序如下: clc, clear mu=500;g=0.15;h=0.40; Q=poissinv
31、(g/(g+h),mu) fun1=(x) (x-Q).*poisspdf(mu,x); %用Matlab匿名函数定义被积函数 E_G=g*mu-h*(Q-mu)-(g+h)*(mu-Q-quadl(fun1,0,Q) 求得报亭每天订购报纸 486 份,每天赢利 71.09 元。 例 10 设在某食品店内,每天对面包的需求服从 300= , 50= 的正态分布。已知每个面包的售价为 1.50 元, 成本 0.90 元, 对当天未售出的其处理价为每个 0.60 元,问该商店每天应生产多少面包,使预期的利润为最大? 解 根据题意 300= , 50= , 50.1=U , 9.0=K , 60.0
32、=V 。利用式( 57)计算出 Q来,再利用式( 59)计算出期望总利润。但对于正态分布分布, LINGO 只提供了标准正态分布函数 psn( Z ),即 psn( Z ) deZZ=2/221)( 和标准正态分布的线性损失函数 psl( Z ),即 psl( Z ) deZz+=2/2)(21因此,若用函数 psn 和 psl 计算式( 57)和式( 59)的积分 dxeQx222)(21和 dxeQxQx+222)()(21需要做变换=x,即 )(psn212122)(222ZdedxeZQx=)(psl)(2)(2122)(222ZdeZdxeQxZQx=+ +-703-其中=QZ 。
33、编写 LINGO 程序如下 data: mu = 300; sigma = 50; U = 1.50; K = 0.90; V = 0.60; enddata psn(Z)=(U-K)/(U-V); Z=(Q-mu)/sigma; free(Z); E_G = U*mu-K*Q+V*(Q-mu)-(U-V)*sigma*psl(Z); 求得商店每天生产 322 个面包, 可以使总利润达到最大, 预期的最大利润为 163.638元。 同样地,我们使用 MATLAB 求例 10 的解。计算的 Matlab 程序如下: clc, clear mu = 300; sigma = 50; U = 1.5
34、0; K = 0.90; V = 0.60; Q=norminv(U-K)/(U-V),mu,sigma) fun2=(x) (x-Q).*normpdf(x,mu,sigma); %用Matlab 匿名函数定义被积函数 E_G=U*mu-K*Q+V*(Q-mu)-(U-V)*(mu-Q-quadl(fun2,0,Q) 求得的结果和 LINGO 的计算结果完全一样。 例 11 (航空机票超订票问题) 某航空公司执行两地的飞行任务,已知飞机的有效载客量为 150 人。按民用航空管理有关规定:旅客因有事或误机,机票可免费改签一次,此外也可在飞机起飞前退票。航空公司为了避免由此发生的损失,采用超量订
35、票的方法,即每班售出票数大于飞机载客数。但由此会发生持票登机旅客多于座位数的情况,在这种情况下,航空公司让超员旅客改乘其它航班,并给旅客机票价的 20作为补偿。现假设两地的机票价为 1500 元,每位旅客有 0.04 的概率发生有事、误机或退票的情况,问航空公司多售出多少张票?使该公司的预期损失达到最小。 解 先对该问题进行分析。 设飞机的有效载客数为 N ,超订票数为 S(即售出票数为 SN + ) , k 为每个座位的赢利值, h为改乘其它航班旅客的补偿值。设 x是购票未登机的人数,是一个随机变量,其概率密度为 )(xf 。当 Sx 时,有 xS 个人购票后,不能登机,航空公司要为这部分旅
36、客进行补偿。当 Sx 时,有 Sx 个座位没有人坐,航空公司损失的是座位应得的利润,因此,航空公司的损失函数为 =SxSxkSxxShSL),(),()( ( 60) 其期望值为 dxxfSxkdxxfxShSLESS)()()()()(0+= dxxfxhkdxxfShkkSkSS)()()()(00+= ( 61) 其中+=0)( dxxxf 为购票未登机的期望人数。 ( 61)式也可以改写为 +=SdxxFhkSkSLE0)()()()( -704- 其中 )(xF 为随机变量 x的分布函数。 对式( 61)两端关于 S 求导数,得到 +=SdxxfhkkdSSLdE0)()()(( 6
37、2) 0)()()(22+= SfhkdSSLEd( 63) 因此,满足方程 hkkdxxfS+=0)( ( 64) 的 S 是函数 )( SLE 的极小值点,即满足方程( 64)的 S 使航空公司的损失达到最小。 下面给出具体的求解过程。 设每位顾客购票未登机的概率为 p ,共有 SN + 位旅客,则恰有 y 位旅客未登机的概率是ySNyySNppC+ )1( ,即未登机人数 x服从二项分布。因此,式( 64)中的积分应用二项分布计算。 在 LINGO 中提供了二项分布函数 ),(pbn SSNp + ,即 =+=+SyySNyySNppCSSNp0)1(),(pbn ( 65) 当 SN
38、+ 和 S 不是整数时,采用线性插值计算。 在这里, ),(pbn SSNp + 的直观意义是:在 SN + 位旅客中至多有 S 位旅客购票未登机的概率。 根据题意, 150=N , 04.0=p , 1500=k (假设机票价就是航空公司的赢利) ,3002.01500 =h 。写出相应的 LINGO 程序如下: data: N = 150;p = 0.04;k = 1500;h = 300; enddata pbn(p, N+S, S) = k/(k+h); 求得超订的票数 8.222487=S ,因而,超订的票数在 8 9 张之间,即每班售出的票数在 158 159 张之间。 下面我们使
39、用 MATLAB求例 11的解。首先定义函数hkkdxxfSgS+=0)()( ,然后求 )(Sg 的零点即可。 MATLAB中求函数 )(Sg 的零点时溢出(使用命令 FZERO) ,我们只能编写 MATLAB的搜索算法如下: clc, clear N = 150;p = 0.04;k = 1500;h = 300; g=(s) binocdf(s,s+N,p)-k/(k+h); %定义匿名函数 m=30; val=g(1:m); %计算 s=1,2, ,m 时匿名函数的值 for i=1:m if val(i)*val(i+1) 时,飞机没有满座,有 xSN + 名旅客乘机,因此,航空公司
40、的利润函数为 +=SxxSNkSxxShkNSI),(),()( ( 66) 其期望值为 dxxfxSNkdxxfhxhSkNSIESS+= )()()()()(0dxxxfkhdxxfSkhSNkSS+=00)()()()()( ( 67) 其中+=0)( dxxxf 为购票未登机的期望人数。 对式( 67)两端关于 S 求导数,得到 +=SdxxfhkkdSSLdE0)()()(( 68) 0)()()(22+= SfhkdSSLEd( 69) 因此,满足方程 hkkdxxfS+=0)( ( 70) 的 S 是函数 )( SIE 的极大值点,即满足方程( 70)的 S 使航空公司的利润达到
41、最大。 具体的求解过程同例 11。 下面我们比较一下 8=S 和 9=S 哪种情形下的利润最大,首先把式( 67)改写成 dxxFkhSNkSIES+=0)()()()( 其中 )(xF 为随机变量 x的分布函数。 编写的 MATLAB 程序如下: clear,clc N = 150;p = 0.04;k = 1500;h = 300; -706- for S=1:15 E_I(S)=k*(N+S-(N+S)*p)-(h+k)*quadl(x)binocdf(x,N+S,p),0,S); end E_I,ind=sort(E_I,descend) 求得超订票数为 9张时,航空公司获利利润最大,
42、预期的期望值达到 223832.6。 上面的算法,我们实际上把二项分布看成是连续型的分布。下面从离散分布的角度建立赢利期望值的递推公式。 记jE ( Sj ,1,0 L= )为超订票数为 j 时,航空公司赢利的期望值。LjE 为超订票数为 j 时,最后一个旅客的订票使航空公司获得赢利的期望值。则有 LjjjEEE +=1=LjE 最后 1 名旅客乘到飞机时航空公司赢利值最后 1 名乘客无座位时的补偿值 因而有 )1(0pkNE = , LEEE101+= PE +=0该旅客乘机 P 该旅客有座位 k P 该旅客乘机 P 该旅客无座位 h kNPpE += )1( 10人不乘机名旅客中至少有 h
43、NPp )1( 0人不乘机名旅客中至多有 hNppkNppE += )0,(pbn)1()0,(pbn1)1(0)0,(pbn)()1(0NphkkpE += M kiiNPpEEEEjLjjj+=+=1)1(11人不乘机个旅客至少有 hiiNPp + 11)1( 人不乘机个旅客至多有 hiiNppkiiNppE+=)1,1,(pbn)1()1,1,(pbn1)1(0)1,1,(pbn)()1(0+= iiNphkkpE 在上式中, ),(pbn xmp 是 LINGO 中的二项分布函数,即 =xkkmkkmppCxmp0)1(),(pbn 因此,我们只要计算出超订票数 L,2,1,0=S 的
44、期望值,并比较它们的大小,就可以计算出最优的超订票数和最大赢利的期望值。编写 LINGO 程序如下: sets: seats/1150/; extra/115/: E_T; endsets data: k = 1500; h = 300; p = 0.04; enddata N = size(seats); E_T0 = k*N*(1-p); E_T(1) = E_T0+(1-p)*(k-(k+h)*pbn(p,N,0); -707-for(extra(i)|i #gt# 1:E_T(i) = E_T(i-1)+(1-p)*(k-(k+h)*pbn(p,N+i-1, i-1); 从计算结果可以
45、看出,超订票数为 9张时,航空公司获利利润最大,预期的期望值达到 223832.6。 下面我们写出递推运算的 MATLAB 程序如下: clear,clc k = 1500; h = 300; p = 0.04; n=150; E_T0=k*n*(1-p) E_T(1)=E_T0+(1-p)*(k-(k+h)*binocdf(0,n,p); for i=2:15 E_T(i)=E_T(i-1)+(1-p)*(k-(k+h)*binocdf(i-1,n+i-1,p); end E_T,ind=sort(E_T,descend) 计算结果和 LINGO 的计算结果完全一致。 习题二十八 1企业生产某种产品,正常生产条件下可生产 10 件 /天。根据供货合同,需按 7件 /天供货。存贮费每件 0.13 元 /天,缺货费每件 0.5 元 /天,每次生产准备费用(装配费)为 80 元,求最优存贮策略。 2某大型机械需要外购 3 种零件,其有关数据见表 4。若存贮费占单件价格的 25,不允许缺货。又限定外购零件的总费用不超过