4. EOQ 模型扩展:数量折扣下的 EOQ、允许缺货的 EOQ、生产批量模型 (EPQ)、多产品联合订货
经典 EOQ 模型建立在需求恒定、瞬时到货、不允许缺货、无价格折扣等理想假设之上。实际供应链场景中,这些假设往往不成立。本章对 EOQ 进行四个方向的实用扩展,使模型更贴近真实业务。
4.1 数量折扣下的 EOQ
供应商常提供阶梯价格:订货量越大,单位采购成本越低。此时需要在采购成本节约与库存持有成本增加之间权衡。
4.1.1 全量折扣 vs. 增量折扣
| 折扣类型 | 定价规则 | 总成本公式调整 | 求解策略 |
|---|---|---|---|
| 全量折扣 (All-Units) | 订货量达到某个阈值后,所有单位均享受折扣价 | 总成本 = 采购成本 + 订货成本 + 持有成本;采购成本 = D × 单价(q) | 对每个价格区间计算 EOQ,取可行且总成本最低的 Q |
| 增量折扣 (Incremental) | 仅超出阈值部分享受折扣价,阈值内按原价 | 采购成本 = 原价×阈值 + 折扣价×(Q - 阈值) | 分段计算平均单价,代入 EOQ 公式迭代求解 |
4.1.2 全量折扣求解步骤
- 列出价格-数量区间:例如 [0, 999] → ¥100/件,[1000, 4999] → ¥95/件,[5000, ∞) → ¥90/件。
- 对每个区间计算 EOQ:使用该区间的最低单价计算
EOQ_i = √(2DS / (H × 单价_i))。 - 检查可行性:若 EOQ_i 落在该区间内,则为可行解;否则取区间边界。
- 计算各可行解的总成本:
TC = D×单价 + (D/Q)×S + (Q/2)×H×单价。 - 选择总成本最小的 Q。
实战提示:全量折扣下,不要直接使用最低价计算 EOQ 就结束。必须检查该 EOQ 是否达到折扣门槛。若未达到,则门槛值可能是更优解。
4.2 允许缺货的 EOQ
当缺货成本(如失销利润、客户流失、紧急补货费)低于持有成本时,允许少量缺货反而能降低总成本。此模型又称 EOQ with Backordering 或 EOQ with Planned Shortages。
4.2.1 模型参数与决策变量
| 符号 | 含义 | 典型单位 |
|---|---|---|
| D | 年需求量 | 件/年 |
| S | 每次订货成本 | ¥/次 |
| H | 单位年持有成本 | ¥/件·年 |
| B | 单位年缺货成本 | ¥/件·年 |
| Q | 订货批量(到货量) | 件 |
| V | 最大缺货量(允许欠交) | 件 |
4.2.2 最优解公式
最优订货批量:Q* = √( (2DS / H) × ((H + B) / B) )
最大缺货量: V* = Q* × (H / (H + B))
最大库存水平:I_max = Q* - V*
年总成本: TC* = √( 2DSH × (B / (H + B)) )
- 当 B → ∞(缺货成本极高),Q* 退化为经典 EOQ,V* → 0。
- 当 B → 0(缺货几乎无成本),Q* → ∞,V* → Q*,即永远缺货,不现实。
应用场景:备件库存、低利润快消品、供应商补货周期短且客户容忍度高的行业。缺货成本需量化:包括紧急运费、客户流失率折算、品牌损失等。
4.3 生产批量模型 (EPQ)
EPQ(Economic Production Quantity)适用于内部生产而非外部采购的场景。核心区别:物料不是一次到齐,而是以生产速率 p 逐步入库,同时需求以速率 d 持续消耗。
4.3.1 核心假设与参数
- 生产速率 p > 需求速率 d(否则无法满足需求)。
- 每次生产启动成本(换线/调试)替代订货成本。
- 库存以 (p - d) 的速率累积,生产停止后以 d 消耗。
4.3.2 EPQ 最优解
最优生产批量:Qp* = √( (2DS) / (H × (1 - d/p)) )
最大库存水平:I_max = Qp* × (1 - d/p)
生产时间: tp = Qp* / p
消耗时间: td = I_max / d
年总成本: TC* = √( 2DSH × (1 - d/p) )
当 p → ∞(瞬时生产),EPQ 退化为 EOQ。
常见错误:直接用 EOQ 公式计算生产批量,忽略 (1 - d/p) 因子。当 d/p 接近 1(产能紧张)时,EPQ 批量远大于 EOQ,忽略该因子会导致严重缺货。
4.4 多产品联合订货
当多个产品共享同一供应商、运输渠道或订货流程时,联合订货可以分摊固定订货成本,降低总成本。核心问题:确定共同订货周期 T 和每个产品的订货比例。
4.4.1 联合订货成本结构
| 成本类型 | 说明 | 数学表达 |
|---|---|---|
| 主固定成本 | 每次订货无论品种均发生(如运输费) | S0 |
| 从属固定成本 | 每个产品单独产生的订货成本(如质检) | si |
| 持有成本 | 各产品独立计算 | Hi = h × 单价i |
4.4.2 最优联合订货周期
共同订货周期:T* = √( 2(S0 + Σsi) / Σ(Hi × Di) )
产品 i 的订货量:Qi* = Di × T*
年总成本:TC* = (S0 + Σsi)/T* + (T*/2) × Σ(Hi × Di)
若各产品需求差异极大,可考虑按周期分组联合:将产品按需求频率分为几组,每组内联合订货,组间独立。
4.4.3 联合订货 vs. 独立订货对比
| 维度 | 独立订货 | 联合订货 |
|---|---|---|
| 订货次数 | 各产品各自最优频率 | 统一频率,次数减少 |
| 固定成本分摊 | 每次只摊一个产品 | 主成本由多产品分摊 |
| 库存水平 | 各产品独立最优 | 部分产品可能偏离独立最优 |
| 适用场景 | 产品间无共享成本 | 共享运输/供应商/订货流程 |
4.5 四种扩展模型选型决策图
以下 SVG 图帮助你在实际项目中快速选择正确的扩展模型。
4.6 扩展模型参数速查表
| 模型 | 核心决策变量 | 关键参数 | 与经典 EOQ 的关系 |
|---|---|---|---|
| 折扣 EOQ | 订货批量 Q | 价格区间、折扣阈值 | 分段计算,取可行最低总成本 |
| 缺货 EOQ | Q、最大缺货量 V | 缺货成本 B | B→∞ 时退化为 EOQ |
| EPQ | 生产批量 Qp | 生产速率 p、需求速率 d | p→∞ 时退化为 EOQ |
| 联合订货 | 共同周期 T、各产品 Qi | 主成本 S₀、从属成本 sᵢ | 各产品独立时退化为独立 EOQ |
工程落地建议:实际项目中,四种扩展模型往往组合使用。例如:多产品联合订货 + 全量折扣 + 允许少量缺货。建议先按决策图确定主模型,再叠加次要扩展条件,用 Python 或 Excel 迭代求解,避免一次性建立过于复杂的解析模型。