供应链|经典文献解读:报童问题与库存管理中经典模型与优化策略解析

在这里插入图片描述

编者按

报童问题的原型是报童在观察需求之前决定要订购多少报纸的问题,其在订购过多或过少时会面临超量和不足成本。因此,报童问题的核心是如何在观察需求之前决定订购一个数量,考虑到超量和缺货成本。本文引用 G. Gallego (1994) 对报童问题的分析,讨论如何控制单一物品在单一周期内具有若干不同随机需求的库存问题。

1 基础模型

D D D为单周期随机需求,均值为 μ = E [ D ] \mu = E[D] μ=E[D],方差为 σ 2 = V [ D ] \sigma^2 = V[D] σ2=V[D]. 设 c c c为单位成本, p > c p > c p>c 为销售价格, s < c s < c s<c 为回收价值。如果订购了 Q Q Q个单位,则将出售 min ⁡ ( Q , D ) \min(Q, D) min(Q,D)个单位,而 ( Q − D ) + = max ⁡ ( Q − D , 0 ) (Q - D)^+ = \max(Q - D, 0) (QD)+=max(QD,0)个单位被回收。利润的表达式为:
π ( Q ) = p E [ min ⁡ ( Q , D ) ] + s E [ ( Q − D ) + ] − c Q . \pi(Q) = pE[\min(Q, D)] + sE[(Q - D)^+] - cQ. π(Q)=pE[min(Q,D)]+sE[(QD)+]cQ.
预期利润是确定的,其表达式为:
π ( Q ) = ( p − c ) μ − G ( Q ) , \pi(Q) = (p - c)\mu - G(Q), π(Q)=(pc)μG(Q),
其中
G ( Q ) = ( c − s ) E [ ( Q − D ) + ] + ( p − c ) E [ ( D − Q ) + ] ≥ 0. G(Q) = (c - s)E[(Q - D)^+] + (p - c)E[(D - Q)^+] \geq 0. G(Q)=(cs)E[(QD)+]+(pc)E[(DQ)+]0.
h = c − s h = c - s h=cs b = p − c b = p - c b=pc, 其中 h h h为单位超量成本, b b b为单位缺货成本。有时缺货成本会被增加,以考虑未满足需求所产生的无形损失。因此,可将最大化 π ( Q ) \pi(Q) π(Q)的问题看作是最小化预期的超量和缺货成本 G ( Q ) G(Q) G(Q).

G d e t ( Q ) = h ( μ − Q ) + + b ( Q − μ ) + G^{det}(Q) = h(\mu - Q)^+ + b(Q - \mu)^+ Gdet(Q)=h(μQ)++b(Qμ)+. 当需求 D D D是确定性时,即 Pr ⁡ ( D = μ ) = 1 \Pr(D = \mu) = 1 Pr(D=μ)=1,该公式代表成本。显然,当 Q = μ Q = \mu Q=μ时, G det ( Q ) G^{\text{det}}(Q) Gdet(Q)最小,且 G det ( μ ) = 0 G^{\text{det}}(\mu) = 0 Gdet(μ)=0,因此 π det ( μ ) = ( p − c ) μ \pi^{\text{det}}(\mu) = (p - c)\mu πdet(μ)=(pc)μ. 因此,报童问题仅在需求是随机的情况下有意义。而当 s = c s = c s=c 时,系统可以订购无限量,满足所有需求,并退回所有未售出的商品。

g ( x ) = h x + + b x − g(x) = hx^+ + bx^- g(x)=hx++bx,那么 G ( Q ) G(Q) G(Q)可以表示为 G ( Q ) = E [ g ( Q − D ) ] G(Q) = E[g(Q - D)] G(Q)=E[g(QD)]. 由于 g g g是凸函数,并且线性变换和期望算子保持凸性,因此 G ( Q ) G(Q) G(Q)也是凸的。根据 Jensen’s 不等式 G ( Q ) ≥ G det ( Q ) G(Q) \geq G^{\text{det}}(Q) G(Q)Gdet(Q)
π ( Q ) ≤ π det ( Q ) ≤ π det ( μ ) = ( p − c ) μ \pi(Q) \leq \pi^{\text{det}}(Q) \leq \pi^{\text{det}}(\mu) = (p - c)\mu π(Q)πdet(Q)πdet(μ)=(pc)μ
因此,预期利润低于确定性需求的情况。若 D D D的分布是连续的,则可以通过对 G G G求导并将其设为零来找到最优解。由于可以将导数和期望计算交换,得出
G ′ ( Q ) = h E δ ( Q − D ) − b E δ ( D − Q ) , G'(Q) = hE\delta(Q - D) - bE\delta(D - Q), G(Q)=hEδ(QD)bEδ(DQ)
其中 δ ( x ) = 1 \delta(x) = 1 δ(x)=1;当 x > 0 x > 0 x>0时,否则为 0. 由于 E δ ( Q − D ) = Pr ⁡ ( Q − D > 0 ) E\delta(Q - D) = \Pr(Q - D > 0) Eδ(QD)=

所谓报童问题是一个需求有关,而需求是随机的问题。一位报童从报刊发行处订报后零售,每卖出一份可获利a元,若订报后卖不出去,则退回发行处,每份将要赔钱b元。那么报童如何根据以往的卖报情况(每天报纸的需求量为k份的概率为 )来推算出每天收益达到最大的订报量n? 算法解说分析: ① 我利用负指数分布公式“g(u)=-lg(u)”,其中“u=1.0*u/RAND_MAX(产生[0,1]均匀分布的随机数)”。函数中“g(u)=-lg(u)”的自变量“u”是均匀产生[0,1]之间的数,可知“g(u)”的函数值也是等可能的产生的,而且这些函数值是呈一种负指数分布趋向的。我可以通过一些巧妙地方法,就是让这些函数值乘上一个数值,让其不能超过1并且把这些值累加起来(今次加上上一次的),这是一个循环,结束的条件是累加的这些和的值≥1。到循环结束的时候,我可以算一下究竟循环了多少次,而这个循环了“多少次”就是我们所需要的需求量的模拟值。 ② 因为我们都知道“-lg(u)”的值是公平地呈负指数分布出现的,为何?很明显,“u=1.0*u/RAND_MAX(产生[0,1]均匀分布的随机数)”证明其“公平性”。“公平性”很重要,因为能出现通过“-lg(u)”计算得出的值必须要公平才有“可信性”。同理,“-lg(u)”乘上一个具体的数以后也是能“g(u)”的值是公平地呈负指数分布出现的“x=-1.0/t*log(u);/*产生负指数分布的随机数(t是确定的常数)*/ ” ③ 根据负指数函数的分布规律可知,每次让这些函数值缩小某个级别的时候在累加起来,直到其值“=1”才停止,其中循环的次
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值