经济批量订货模型(EOQ)
Economic order quantity (EOQ) 的基本假设:
- 需求确定,单位时间内的需求是 $\lambda $
- 不允许缺货
- 固定成本 $K$,单位采购成本 $c$,单位货物单位时间的存储成本 $h$
目标:最小化单位时间内的订货和库存成本。
$Q$ 的最优值不取决于 $c$,因此在分析中忽略。
设每次采购数量 $Q$,则平均存货量是 $\displaystyle\frac{Q}{2}$,订货周期 $T=\displaystyle\frac{Q}{\lambda}$,则单位时间内总费用是: $$ g(Q) = \frac{K\lambda}{Q} + \frac{hQ}{2} $$
于是最佳订货批量 $Q^{\ast} = \sqrt{\displaystyle\frac{2K\lambda}{h}}$,最优成本 $g(Q^{\ast}) = \sqrt{2K\lambda h}$,最优订货周期 $T^\ast=\sqrt{\displaystyle\frac{2K}{h\lambda}}$。
灵敏度分析:
$$ \forall Q > 0, \quad \frac{g(Q)}{g\left(Q^{\ast}\right)}=\frac{1}{2}\left(\frac{Q^{\ast}}{Q}+\frac{Q}{Q^{\ast}}\right) $$
这表明平均成本对 $Q$ 的灵敏度不高。取 $Q = 2 Q^\ast$,有 $g(2Q^\ast)=\displaystyle\frac{5}{4} g(Q^\ast)$,也就是说,哪怕订货量是最优订货量的两倍,平均成本也只增加 $25\%$.
报童模型
- $p$:售价 (price)
- $c$:成本 (cost)
- $s$:残值 (salvage value)
- $C_u = p-c, C_o = c-s$
一些常用的函数式
令随机变量 $D$ 表示需求,$\mu$ 为其均值,$F$ 为其分布函数,$q$ 表示订货量。记:
- $S(q) = \mathrm{E} \min\{q, D\}$ 表示期望的销售量
- $I(q) = \mathrm{E}\,(q - D)^+$ 表示期望的剩余库存
- $L(q) = \mathrm{E}\,(D-q)^+$ 表示期望的因订货不足而导致的销量损失
有下列关系式:
- $I(q) = q - S(q), I^\prime(q)=F(q)$
- $S^\prime(q) = 1 - F(q) = \bar{F}(q)$
- $L(q) = \mu - S(q), L^\prime(q)=F(q)-1$
- $(q-D)^{+} = q - \min\{q, D\}, \, (D-q)^{+}=D-\min\{q, D\}$
期望利润:
$$ \pi(q) = p S(q) + sI(q) -c q = (p-s) S(q) - (c-s)q $$
如果按 cost 来算的话,那么是 $$ (c-s) \mathrm{E}(q-D)^{+} + (p-c)\mathrm{E}(D-q)^{+} \\ (c-s)I(q) + (p-c)L(q) $$
最优订货量满足:
$$ \begin{equation} \frac{d \pi}{d q} = (p-s)(1-F(q)) - (c-s) = 0 \Rightarrow F(q) = \frac{p-c}{p-s} \label{eq-inventory-newsvendor} \end{equation} $$
注意到 $\displaystyle\frac{p-c}{p-s} = \displaystyle\frac{p-c}{(p-c) + (c-s)}$,这里 $p-c$ 就是少订一件货的利润损失(per unit underage cost),而 $c-s$ 是订货多了的损失(per unit overage cost)。
记 $b=p-c, h = c-s$,那么公式 $\eqref{eq-inventory-newsvendor}$ 就可以写成:
$$ F(q) = \frac{b}{h + b} = \frac{\text{underage cost}}{\text{(underage cost)+(overage cost)}} $$ 定义 $$ Q(y)=h \cdot \mathrm{E}[y-D]^{+}+b \cdot \mathrm{E}[D-y]^{+} $$ 首先,$Q$ 是一个凸函数,因为对于任意的 $D$, $(y - D)^{+} = \max\{y -D, 0\}$ 关于 $y$ 是凸的,求期望相当于对凸函数求加权和。
凸函数左右导数均存在且左导数小于等于右导数(见 https://zhuanlan.zhihu.com/p/336386019)
积分号下求导: $$ I(y) = \int_a^b f(x, y) \mathrm{d} x, \qquad \frac{\mathrm{d} I(y)}{\mathrm{d} y} = \int_a^b f_y (x, y) \mathrm{d} x $$ 含参变量积分: $$ F(y) = \int_{a(y)}^{b(y)} f(x, y) \mathrm{d} x \\ F^\prime (y) = \int_{a(y)}^{b(y)} f_y(x, y) \mathrm{d} x + f(b(y), y) b^{\prime}(y) - f(a(y), y)a^{\prime}(y) $$
$Q(y)$ 的左导数是: $$ \lim _{\varepsilon \to 0^{-}} \frac{Q(y+\varepsilon)-Q(y)}{\varepsilon}=h \cdot P[y \geq D]-b \cdot P[y<D] = (h + b) P[y \geq D] - b $$ 关于 $y$ 是单调递增的。这也能说明 $Q(y)$ 是个凸函数。
令左导数为0,就有 $y^\ast = \inf \{ y \geq 0 \mid F(y) \geq b/(b + h)\}$ .
二阶导数
$$ Q^{\prime\prime}(y) = (h + b) f_D(y) $$
如果 $\inf \, f_D(y) \geq \alpha$,即说明 $Q(y)$ 是 $\alpha$ 强凸的函数。
Nonparametric Online algorithm
每个需求分布 $D$ 的样本 $w$ 给出了 $Q(y)$ 导数的无偏估计: $$ Q ^\prime (y; w) = (h + b) \mathbf{1}_{[y \geq w]}-b , \quad \mathrm{E}_{w\sim D}[Q^\prime(y; w)] = Q^{\prime} (y) $$ 注意到 $|Q^\prime (y; w)| \leq \max \{h , b\}$,如果已知 optimal order quantity 是以 $\bar{y}$ 为上界的,那么就可以使用 SGD 来做在线学习。
$$ Q(y; w) = h (y - w)^{+} + b ( w - y)^{+} \, , Q^\prime(y; w)= \begin{cases}h , & y \geq w\\ - b, & y < w\end{cases} $$
取步长 $\eta_t = \displaystyle\frac{\gamma \bar{y}}{\max \{b, h\}\sqrt{t}}$,以 $y_{t + 1} = \Pi_{[0, \bar{y}]}(y_t - \eta_t Q^\prime (y_t, w_t))$ 为迭代规则,可以得到 regret 界为 $O(\sqrt{T})$ 的算法。
进一步地,如果 $Q(y)$ 是 $\alpha$ 强凸的,那么取步长 $\eta_t = \displaystyle\frac{1}{\alpha (h + b) t}$,可以得到 regret 界为 $O(\log T)$ 的算法。
供应链协调
假设供应链上有一个供应商(manufacturer)和一个零售商(retailer)。
假如批发价为 $w$,零售商的利润函数是: $$ \pi_{R}(x)=p E \min (D, x)-w x $$
而如果我们把供应商和零售商看做是一个整体,供应链的利润函数是:
$$ \pi_S(x) = p E \min (D, x)-c x $$
注意到,零售商的最优订货量会低于使整个供应链利润最大化的订货量(批发价格较高,$w > c$)。这个现象叫做双边际效应(double marginalization)。
假设需求与价格的关系是 $Q=10-p$,供应商的生产成本是 $c=2$;那么整个供应链的总利润就是 $(p-c) Q$;当 $p=4, Q=6$ 时整个供应链有最大利润 $16$ 。
但是,当供应链是去中心化的时候,零售商的利润是 $(p-w)(10-p)$,所以零售商会定价 $p^\ast = 5 + 0.5 w$ .
于是,供应商的利润为 $(w-2)(5-0.5w)$,所以供应商会定价为 $w^\ast = 6$,同时零售价 $p^\ast=8$ .
此时 $Q=2$,供应商的利润为 $8$,零售商的利润为 $4$.
注意到,不仅总的利润低了,市场的价格也提高的,相应的消费者福利也减少了。
一般我们认为供应链协调 当且仅当 去中心化的供应链总利润等于中心化的供应链总利润。
回购和收益分享是最经典的两个用于促进协调的供应链合同。
Coordination: decentralized control yields centralize profit level.
回购协议(buy-back)
现在假设供应商对零售商未售出的部分以价格 $b$ 进行回购,则零售商、供应商和整个供应链的利润为: $$ \begin{aligned} & \pi_R = p S(q) + bI(q) - wq = (p-b)S(q) - (w-b)q \\ & \pi_M = wq - bI(q) - cq = (w-b)q + bS(q) - cq \\ & \pi_S = pS(q) - cq \end{aligned} $$ 对于零售商来说,它的最优订货量满足: $$ \frac{d \pi_R}{dq} = 0 \Rightarrow F(q_R^\ast) = \frac{p-w}{p-b} $$ 而对供应链来说,零售商最优的订货量满足: $$ F(q_S^\ast) = \frac{p-c}{p} $$ 如果要使供应链达到协调,即 $q_R^\ast = q_S^\ast$,必须满足: $$ \frac{p-w}{p-b} = \frac{p-c}{p} $$ 引入参数 $\lambda \in [0, 1]$,使 $b = (1-\lambda)p, w = (1-\lambda)p+\lambda c$ 且上述等式成立。注意到这时候: $$ \pi_R = \lambda \pi_S $$ 即零售商的总利润等于整个供应链的总利润的某个比例,此时零售商有足够的动力使整个供应链的利润最大化!
利润分享(revenue-sharing)
零售商每卖出一件商品,给予供应商 $r$ 的利润分享。此时利润为: $$ \begin{aligned} & \pi_R = (p-r) S(q) - wq \\ & \pi_M = (w-c)q + r S(q) \\ & \pi_S = pS(q) - cq \end{aligned} $$
小结:可以发现,供应链想要达到协调,需要使每个成员的利润是供应链总利润的一个比例,这样每个成员才会有充足的动力最大化整个供应链的利润。
需求预测
【待填坑】
牛鞭效应
牛鞭效应(bullship effect)指需求信息以订单的方式从零售端沿供应链的环节向上游传递时,产生的逐级放大的波动现象。
假设下列条件在供应链的每级中都成立。
- 需求独立于时间,并且需求分布的参数已知
- 每级供应商有充足的库存来满足固定提前期的订单,并且提前期独立于订货量
- 无固定订货成本
- 采购成本不随时间变化而变化
如果某一级满足这四个条件,则其采用静态基本库存策略是最优的。这意味着, 在每期内某一级订单正好等于前一级的需求, 所以某一级的订单与其需求有相同的方差,即牛鞭效应不会发生。
然而,放松这四个条件中的任何一个都会引起牛鞭效应。
李效良(Hau L. Lee)在1997年发表在 Management Science 的论文「Information Distortion in a Supply Chain: The Bullwhip Effect」中用严谨的数学方法说明了牛鞭效应的四大成因。
Demand Signal Processing
多重需求预测
当需求是 nonstationary 的时候,对未来的需求预测实际上基于当下的需求数据。当一个零售商发现需求突然增大的时候,他会将之视作未来需求上升的信号。
Rationing Game
配给博弈
Order Batching
批量订购
Price Variations
价格投机
配给博弈
供给有限,多订
批量订货
价格投机
减小牛鞭效应
VMI(供应商管理库存)
信息共享