经济订货量 (EOQ) 的定义和公式


首页 » 知识库 » 此处
作者:Joannes Vermorel,2012 年 1 月

EOQ 即能够最大程度降低总存货成本而要进行补货的采购订单量。当存货水平达到再订货点便会触发采购。系统将计算 EOQ,从而最大限度降低各种成本,例如采购成本(可能包含数量折扣)、存货持有成本、订购成本等等。订货数量优化是对安全库存优化的补充,其侧重于找到触发再订货的最佳阈值

模式与公式

传统 EOQ 公式(参见下文的Wilson 公式部分)实质上是对订货成本(假设为每笔订单的净费用)和存货持有成本之间的折衷。该公式可追溯至 1913 年,虽然它非常知名,但我们建议不要在任何现代化的供应链环境中使用这道公式。公式中所蕴含的数学假设对现在来说是不恰当的。

这道年代久远的公式假设了订货操作的成本是一个关键的业务推动因素。在 1913 年那个需要大量办事员来手动跟踪账簿的年代这的确是一个重要因素,但现在利用库存管理软件和 EDI,这个因素通常就无关紧要了。因此,借助该公式所执行的"优化"意义甚微,并且完全忽略了大量订购时可以利用的价格中断。

下载 Excel 表: eoq-calculator.xlsm(计算示例)

因此,我们在此提出了 EOQ 公式的变种,它优化了持有成本与数量折扣之间的平衡。我们要引入几个变量:
  • $Z$ 为交付需求。
  • $H$ 为交付周期内的单位持有成本 (1)。
  • $\delta$ 为达到再订货点所需的存货数量变化 (2)。
  • $\mathcal{P}$ 为单位采购价格,它是订货数量 $q$ 的函数。

(1) 此处考量的时间范围为交付周期。所以,在这里我们不会考虑较常规的年度持有成本 $H_y$,而要考虑 $H = \frac{d}{365}H_y$,假设 $d$ 为交付周期,单位为天。

(2) 数量变化既要考虑现有存货 $q_{hand}$,也要考虑订购存货 $q_{order}$,其关系为 $\delta = R - q_{hand} - q_{order}$,其中 $R$ 为再订货点。直观地看,$\delta+1$ 是为维护所需的 服务水平而要订购的最低数量。

那么,最佳订货数量可以这样得出(下文将进行详细推理): $$Q = \underset{q=\delta+1..\infty}{\operatorname{argmin}}\left(\frac{1}{2}(q-\delta-1)H+Z\mathcal{P}(q)\right)$$ 尽管这个函数看似复杂,但可以利用 Microsoft Excel 很容易地进行计算,如上文提供的 Excel 表中所示。

订货成本是什么?

乍看之下,似乎我们假设了订货成本为零,其实不尽然。实际上,我们在此介绍的框架相对灵活,订货成本(如有)可以嵌入价格函数 $\mathcal{P}$。

成本函数

要对订货数量的成本函数建模(已考虑数量折扣),需要引入再订货点 $R$。存货成本为存货持有成本采购成本之和,即: $$C(q)=\left(R+\frac{q-\delta-1}{2}\right)H+Z\mathcal{P}(q)$$ 实际上,如果从已摊销的角度来看交付周期需求,要订购的总数量将为交付需求 $Z$。

存货水平始终是变化的,但如果考虑严格的最低再订货(即 $q=\delta+1$),随时间变化的平均库存水平将等于再订货点 $R$。再者,由于考虑到订货数量大于 $\delta+1$,所以这些额外订购的数量将使平均存货水平上移(同时也会推迟触发下一个再订货点的时间)。

$(q-\delta-1)/2$ 表示因再订货导致的存货变化(假定交付需求在交付周期内均匀分布)。由于增加的订货数量 N 只将平均存货水平提高 N/2,所以使用系数 1/2 是合理的。

为成本函数求最小值

要对 $C(q)$ 求最小值,我们先使用以下公式来分离出不依赖于 $q$ 的部分: $$C(q)=RH+\frac{1}{2}(q-\delta-1)H+Z\mathcal{P}(q)$$ 由于 $RH$ 不依赖于 $q$,所以优化 $C(q)$ 与优化 $C^*(q)$ 相同,其中: $$C^*(q)=\frac{1}{2}(q-\delta-1)H+Z\mathcal{P}(q)$$ 由于数量折扣函数 $\mathcal{P}$ 为任意函数,对这条公式求最小值是没有直接的代数解的。但这并不表示难以对最小值求解。

对 $C^*(q)$ 求简单的最小值包括(原生)的广泛性数值探索,即计算大范围的 $q$ 值的函数。实际上,基本上没有哪家企业需要订购超过 100 万件,而计算探索 $q=1..1,000,000$ 的所有成本值只要不到 1 秒钟,即便在常规台式机上使用 Excel 计算也是如此。

但是,如果假设 $\mathcal{P}(q)$ 是严格递减的函数,也就是说订货数量递增时单价严格递减,那么计算量就会激增。如果 $\mathcal{P}(q)$ 递减,可以先从 $q=\delta+1$ 开始对值进行探索,迭代,最后在遇到 $C^*(q+1)>C^*(q)$ 时停止。

在实践中,单价很少随数量递增,但是,如果进行货盘发运优化,或者使用任何其他有利于特定包装尺寸的集装箱运输,那么在曲线中可能会发现存在一些局部的波动

在上面所附的 Excel 表中,我们假设了单价随数量严格递减。如果不是这种情况,请编辑宏 EoqVD()来恢复原生范围探索。

Wilson 公式

最著名的 EOQ 公式是于 1913 年问世的 Wilson 公式。这道公式采用了以下假设:

  • 订购成本呈平滑状态。
  • 需求率已知,且在一年当中均匀分布。
  • 交付周期为固定值。
  • 采购单价不变,即无折扣。

我们来引入以下几个变量:

  • $D_y$ 为年度需求数量。
  • $S$ 为每笔订单的固定成本(非单位成本,而是与订货和发货运作相关的成本)。
  • $H_y$ 为年度持有成本。

根据这些假设,Wilson 最佳 EOQ 为: $$Q=\sqrt{\frac{2D_yS}{H_y}}$$ 实际上,我们建议在该公式中使用较为经过局部调整的变量(时间上),其中 $D_y$ 用交付周期内的预测需求率 $D$ 替换(即交付需求 $Z$ 除以交付周期),$H_y$ 用交付周期内的持有成本 $H$ 替换。

两个 EOQ 公式的对比

我们认为,在零售或批发领域,我们这道特别的 EOQ 公式(参见本页上方)强调了数量折扣,所以比 Wilson 公式更适合,因而盈利性更高。对于制造商则要视情况而定。具体地说,如果订单触发新的生产,那么可能会产生巨大的订货成本(生产准备),边际单位成本中的效益甚微或者根本没有。在此类情况下,Wilson 公式更适合。

运用我们的库存预测技术可获得经过优化的销售预测。Lokad 精通于通过需求预测来优化库存。我们的预测引擎涵盖优化补货以及其他许多原生功能。