返回作品

Decision Analysis Prototype

Beer Game Decision Lab

将供应链补货游戏做成决策实验,观察不同策略如何影响节点利润、服务水平和订单波动。

这个项目把经典 Beer Game 供应链问题拆成可复现的实验:企业在延迟和局部信息下订货, 利润、库存和缺货成本沿链路传递。页面重点呈现实验设置、指标口径和分析结果。

Scenario

一个夏季啤酒上新后的补货问题

想象一家精酿饮料品牌刚推出一款夏季啤酒。门店每天的真实销量没有大起大落, 但补货并不是即时发生的:门店要向经销商下单,经销商再向工厂订货,工厂还要根据上游供给安排生产。

每个节点都只能看到自己手里的库存和订单。门店怕断货,会稍微多订;经销商看到订单变大,也会继续放大; 几轮之后,终端只是多卖了一点点,链路上却可能同时出现库存积压、偶发缺货和订单波动放大。

真实销量小幅波动
01门店

真实销量只是小幅波动

02经销商

看到补货订单变大

03工厂

接收到被放大的需求信号

补货判断订单加码波动放大

Question

到底是需求变了,还是链路放大了波动

这个项目关注的不是单次销量预测,而是一个更隐蔽的问题: 当每个企业都基于局部信息做出看似合理的订货决策时,整条供应链的利润、库存和服务水平会如何变化。

Q1

局部企业利润提升,是否会同步提升全链路利润?

Q2

链路变长后,成本和订单波动会在哪些位置累积?

Q3

多智能体策略是否比单智能体策略更能稳定系统级结果?

Model

从补货链路到 Beer Game 模型

Beer Game 把上面的补货场景抽象成顾客、门店、经销商、工厂和上游供给。 基础版本采用三节点企业链路,并保留局部观测、订货延迟、库存成本和缺货损失这些关键约束。

在此基础上,实验进一步拉长链路、改变需求强度,并比较规则策略与强化学习策略的表现, 让“说不清的链路损耗”变成可以观察和量化的实验结果。

基础环境:终端顾客 -> 企业0 -> 企业1 -> 企业2 -> 上游供给。观测限制:每个企业只看到自身库存、上一期订单和上一期交付结果。动态机制:订单与货物均存在 t+1 延迟,订多产生库存成本,订少产生缺货损失。场景扩展:链路长度设为 3 / 5 / 7,需求强度设为 λ=8 / 10 / 12。评估策略:随机策略、库存基准、单智能体 DDQN、多智能体 DDQN。
啤酒游戏企业链路图

Design

策略与场景对比

实验不是只比较一个最终分数,而是把策略放到不同链路长度和需求强度下评估, 同时保留企业级与系统级指标,避免局部结果掩盖全链路损失。

01

环境变量

固定 t+1 到货延迟,记录需求、订货、库存、缺货和每个企业的利润分解。

02

策略组

比较随机策略、库存基准策略、单智能体 DDQN 和多智能体 DDQN 的链路表现。

03

实验维度

扩展 3 / 5 / 7 节点链路,并改变需求强度,观察结果是否对场景变化稳健。

04

评价指标

同时看局部利润、全链路利润、服务水平、库存压力、缺货率和牛鞭效应。

Metrics

利润结构与服务指标

实验中的 reward 被设计为近似经营利润,因此页面统一使用“利润”表述。 这样可以把算法结果拆回收入、采购、库存和缺货损失,解释每个节点为什么盈利或亏损。

利润

实验里的 reward 被设计为近似经营利润:收入减去采购、库存和缺货成本。

全链路利润

把所有企业的利润加总,判断这条供应链整体有没有变好。

服务水平

顾客或下游需求被满足的比例,用来观察策略有没有牺牲交付体验。

牛鞭效应

订单波动相对真实需求被放大的程度,用来观察上游是否被过度扰动。

Finding

单点收益与系统收益分离

在单智能体 DDQN 中,目标企业利润可以提升到正值,但上下游仍由背景策略驱动, 全链路利润保持为负。多智能体 DDQN 让三个企业同时学习后,全链路利润转为正值, 说明系统级收益需要显式纳入评价,而不能只看目标企业的局部表现。

局部利润与全链路利润对比

Evidence

结果证据

图表用于回答实验问题:利润差异来自哪类成本,链路变长后哪里承压, 需求强度变化时策略是否仍能保持系统收益,以及订单波动是否被放大。

各企业利润分解图
利润分解把最终结果拆开,看收入和几类成本分别把利润推向哪里。
长链路压力测试热力图
长链路压力测试当企业节点从 3 个扩到 5、7 个,压力开始在不同位置堆积。
不同需求强度下的策略稳健性
需求稳健性外部需求变强或变弱时,比较策略是否还能维持链路收益。
牛鞭效应对比图
牛鞭效应看订单波动有没有在向上游传递时被继续放大。

Limits

方法与边界

底层实现包含 DQN、Double DQN、Dueling DQN、PPO 和 Independent Multi-Agent DQN。 当前结果更适合作为可解释的离线实验,而不是直接声称得到最优供应链策略。 后续可以继续加入真实需求分布、协作奖励设计和可交互参数切换。

PythonPyTorchNumPyMatplotlibReinforcement Learning

Related work