BA03.[准时物料入库:贝叶斯 MCMC] 商业现场的真实游戏是与不确定性的战斗

Exa Euler
75 Min Read

2000年代后半期,在与韩国国内(Seoul)知名企业进行项目期间,我曾向工厂负责人提出了一个问题:“最困难的事情是什么?”他毫不犹豫地回答说:“物料搜寻,物料搜寻是最难的。”他是一位负责整个工厂的高管。他出人意料的回答曾让我思考了很久。

这是一个写给所有与不确定性作斗争的人的故事。这是一个关于采购经理利用 [贝叶斯推论引擎] 管理供应链不确定性的商业叙事案例。主人公根据贝叶斯人工智能系统提供的交货延迟概率和灾难政权信号,精细分析供应商的行为模式。他摆脱了单纯催促交货的方式,通过数据共享联动缓冲区管理,展示了与供应商分担风险、走向协作关系的过程。通过这些,强调了现代采购战略的重要性,即不是完全消除不确定性,而是将其概率化衡量并做出预先应对。最后,解释了基于数据的概率思维如何转化为保护企业稳定性和利润的实际业务能力。结果表明,通过将不确定性带入可管理范围,如何赢得与不确定性的游戏。


凌晨 6 点的批处理(Batch)与物料截止日期


序言:第三次警告

周二上午 7 点。采购团队办公室依然安静。

采购经理还没来得及脱掉大衣就坐在显示器前。确认运行了一整夜的“Exa 智能推论引擎”的批处理结果是他每天的第一项工作。咖啡排在第二位。

打开屏幕,顶部闪烁着红色警告。

PO#2024-0847 | 精密传感器模块 1,200EA | 准时入库概率:57%

他握着鼠标的手加重了力道。57%。这是第三次了。

在过去的 6 个月里,他负责的两个主要项目都因物料延迟而面临危机。第一个项目因供应商破产而成功进行了替代采购,第二个项目则通过与物流团队合作勉强挽回了清关延迟。两次结果虽然都成功了,但过程混乱,公司支付了不必要的成本。

而这是第三次。

事实上他知道。公司看他的眼神正在一点点改变。“有能力,但稳定性差”,换句话说,风险管理不稳定。他的名字从晋升名单中消失并非偶然。

这次必须有所不同。必须干净利索、悄无声息、毫无问题地结束。

1. 会议室里的数字

周一上午 10 点

生产计划会议结束后,经理缓缓合上了笔记本电脑。人们离开会议室的脚步声消失在走廊里,但他仍留在座位上。

销售经理倚在桌边说道。

“这个客户,这次不仅仅是挑剔。看来那边也有苦衷。交货期只要延迟一天,就会触发罚款条款。采购经理,你明白吧?那边的负责人说:‘如果这次犯错,你们在供应商名单上就危险了。’”

采购经理简短地点了点头。“我已经意识到了。”

生产经理在白板上写下数字并补充道。

“我们通过压缩内部生产提前期,将第一批生产重新调整为 20 天。考虑到检验、配套(Kitting)和设置,必须留出两天的余地。精密传感器模块是生产线第一阶段投入的零件。如果这个晚了,整个计划都会推迟。其他订单也会出现严重问题。”

他走到白板前,写下了计算过程。

  • 客户交货期:5 月 30 日
  • 第一批交货生产提前期:20 天。
  • 检验/准备期:2 天。
  • 物料入库截止日期:4 月 23 日。
  • 所需缓冲区:至少 2 天。
  • 安全目标入库日:4 月 21 日之前

“4 月 21 日。两天的缓冲区。虽然不够,但这是最低限度的安全装置。”

进口产品

问题在于这个精密传感器模块是进口产品。

他脑海中浮现出供应商经理马库斯的脸。自从三年前开始交易以来,大部分交易都很顺利。马库斯很勤奋,产品质量也很优秀。

但有时,极少数情况下,出现问题时马库斯会保持沉默。

8 月份也是如此。由于原材料供需问题延迟 9 天时,他直到交货期前 3 天才发来一封邮件。当时的屈辱感掠过他的脑海。当时由于原材料供需问题,生产延迟了一周,包括他在内的相关部门为了紧急制定替代计划熬了两个通宵。结果虽然入库成功,但过程中产生的额外成本和混乱直接反映在了采购团队的考评中。

他用手掌揉了揉脸。“这次必须有所不同。在马库斯沉默之前,在问题变大之前,我必须做出应对。我必须先行动起来。”

2. On Time Risk 0.57:贝叶斯的警告

他回到办公室,坐在显示器前。

他再次凝视着屏幕上显示的 57% 这个数字。这个数字不是一个简单的数字。它是贝叶斯引擎根据过去 3 年与马库斯的所有交易记录,冷峻地分析出的供应商“实力”与“模式”的结果值。

引擎读取供应商的“习性”。准时交货的模式,出现延迟时的模式。最重要的一点是,发生延迟时延迟了多久,以及延迟的频率。

他点击鼠标进入详细分析界面。

引擎看到的马库斯的两面性

延迟向量 DD:习性的记录

供应商的交货记录是反映供应公司方方面面的复杂系统的结果,例如供应商的工作方式、工人的行为模式、组织的效率与低效、管理者的管理哲学、公司的经营方式等。

为了分析这种情况,贝叶斯引擎采用了混合分布(Mixture Distribution)和 MCMC 吉布斯采样(Gibbs Sampling)方式。因为供应链不是线性的。具体的数学建模将在单独的附录系列中讨论,这里只涉及核心逻辑。

贝叶斯引擎将过去 3 年与马库斯的交易数据转换为延迟天数向量 DD

$$d_i = (\text{实际入库日}) – (\text{约定的 ETA})$$

d_i = 0 则表示守约。如果 d_i = +5 则表示比计划晚了 5 天。

此外,供应业绩数据包含装运日期。计算不包括运输期间的实际工作天数。

$$d_j = (\text{实际装运日}) – (\text{PO 发行日})$$

这些 d_i, d_j 向量不仅仅是数字的罗列。它们是一个复杂系统的输出结果,包含了供应公司的综合能力,如他们的工作方式、工人的行为模式、组织的效率与低效、管理者的管理哲学、公司的经营方式等。

该向量是供应商的行为模式,是可预测性的指纹。

MCMC 吉布斯采样:不确定性的结构化

引擎在向量数据中发现了两个机制(Regime)。

  1. 机制 0 (S_t = 0):正常状态。d_i 停留在 0 附近。守约的马库斯。
  2. 机制 1 (S_t = 1):延迟状态。供应商内部未知的复杂问题交织在一起,导致延迟爆发的状态。一旦出现问题,平均会延迟 8 天左右。沉默的马库斯。

这里的机制(Regime)表现为像正常一样运行的正常模式,有时表现为在事故/拥堵/波动较大的状态下运行的灾难模式。换句话说,如果是正常机制,则集中在 ETA 附近;如果是灾难机制,出现大幅延迟的概率会大幅上升。

最终,数据向量由正常状态和延迟状态这两个不同状态的混合分布组成,如果延迟超过某个临界点,对于订货的客户公司来说就是一场灾难。因此,我们将这种延迟世界的状态称为“灾难机制”。

贝叶斯引擎尝试将数据分离为这两个世界观并同时进行分析。引擎不对任何交货项目贴上“正常”或“灾难”的标签。将所有这些都视为未知值,并动用强大的现代计算能力,通过精密的数学模拟每个交货业绩是从这两个世界中的哪一个产生的。

他看了看屏幕上显示的图表。在过去的 3 年里,马库斯有 85% 的时间处于正常机制。但在 15% 的时间里陷入了灾难机制,每次平均延迟 9 天。

去年 8 月的延迟也准确地显示在图表上。延迟 9 天。当时的记忆浮现了出来。

3. Exa 引擎的心脏 – 延迟向量与机制转换

贝叶斯引擎的运作方式

在采购经理凝视的显示器屏幕背后,复杂的数学推论正在进行。为了正确理解这一场景,我们需要进入引擎内部片刻。

调用延迟向量 DD

引擎将供应商马库斯过去几年交付的入库数据转换为延迟天数向量 DD。计算很简单。

$$d_i = (\text{实际入库日}) – (\text{约定的 ETA})$$

如果 d_i = 0 则表示准确守约;如果 d_i = +5 则表示延迟了 5 天。

引擎在向量中发现了两个不同的世界,即“机制(Regime)”。

  • 机制 0 (S_t = 0):正常机制。d_i 在 0 附近变动。是完美守约的状态。
  • 机制 1 (S_t = 1):延迟机制。供应链内部出现裂痕的状态,是马库斯偶尔陷入的泥潭。一旦发生延迟,入库平均会推迟 8 天左右 (\mu_{d1})。

关键在于,马库斯的交付行为会根据他所处的机制而完全改变。我们观察供应商内部是有局限性的。此时,贝叶斯更新发挥了威力。

贝叶斯后验概率的推论

屏幕上以公式显示了引擎对该订单做出的判断。

贝叶斯更新公式:

$$P(S_t = 1 \mid d_{\text{new}}) = \frac{P(d_{\text{new}} \mid S_t = 1) \cdot P(S_t = 1)}{P(d_{\text{new}})}$$

让我们来解这个公式。

  • P(S_t = 1):马库斯过去陷入延迟机制的频率(先验概率)。大约是 15%。
  • P(d_{\text{new}} \mid S_t = 1):当前观察到的物流指标与延迟机制特征的相似程度(似然度,likelihood)。(S_t 为 0 是正常,1 是灾难状态,所以 P(d_{\text{new}} \mid S_t = 1) 仅仅是用公式表达供应商处于灾难状态(世界观)时出现下一次交货延迟天数的概率。没必要沉溺于符号中)

引擎综合这些信号做出判断。“马库斯有可能进入延迟机制。”结果是 57%。

MCMC 吉布斯采样(Gibbs Sampling)1 次旋转

引擎为了证明这个数值,通过数十万次模拟数据对未来进行了模拟(构建未来的概率分布)。他看到了其中第一次旋转(Iteration)的记录。

吉布斯采样的运作原理:

吉布斯采样是一种从复杂概率分布中抽取样本的方法。当多个变量交织在一起时,通过一次更新一个变量来探索整个分布。

Iteration 1:

  1. 状态采样:根据当前数据,对本次 PO 的延迟机制 (S_t = 1) 进行分类
  2. 提取延迟天数:反映机制 1 的特征,提取 +9 天延迟
  3. 预测结果:马库斯约定的 ETA + 9 天 = 4 月 28 日

经过数十万次重复计算 (Iteration),引擎给出了最终结论。

[模拟结果:基于 PO revision.1]

  • 基于当前目标 (4/21) 的准时入库概率:56.2%
  • 进入灾难机制 (\pi) 的概率:16.5% (按惯例,灾难机制发生的概率记为 \pi)
  • 实现目标概率 95% 所需的最小宽限量 (\Delta^*):+7 天

“别说 4 月 21 日这个目标,就连 23 日的截止日期也会被无情打破。”

他攥紧了拳头。

“风险是真实存在的。延迟 9 天的可能性……必须将其从谈判桌上抹除。”

他深吸了一口气。“9 天。这是最坏的情况。但它已经发生过,而且完全有可能发生。”

他想起了去年 8 月的延迟。那时运气好。客户理解,生产团队通过加班挽回了损失。但这次不同。这次的客户不会容忍。

而且最重要的是,公司不会容忍他。第三次危机。被视为模式。“李经理无法进行风险管理”的评价将根深蒂固。

这次引入的 Exa 贝叶斯引擎是逻辑严密的。既然理解了过程,就不能否认结果。他下定决心。

“相信系统。并且与马库斯进行妥善合作。”

4. 谈判 – 三年关系的进化

视频会议室,上午 11 点

马库斯出现在屏幕上。依然穿着整洁的衬衫,但眼角透着疲惫。

“马库斯,好久不见。”

简短寒暄后,他进入正题。

“在发给您的 PO 中,1,200 个精密传感器中有 600 个的目标是 4 月 21 日入库。”

马库斯点了点头。

“是的,收到了第一批 PO。但坦白说……日程很紧。目前的物流状况也不好,内部流程也处于饱和状态。现实一点看,4 月 28 日左右是安全日期。21 日很难。你知道现在的海运市场。船位(Space)一票难求。要赶上进去的船,28 日是最好的选择。”

这是预料之中的回答。与引擎预测的延迟一致。是巧合吗……供应商经理马库斯老练地以“船位量”这一外部变量为挡箭牌。因为如果以订货方无法控制的领域为借口,就无话可说了。他熟练地以“船位量”这一外部因素为借口。

但他盯着屏幕上 16.5% 的灾难概率。他沉默了片刻。然后平静地继续说道。

“马库斯,我们合作三年多了。大部分交易都很成功。你们的产品质量非常优秀,合作也很愉快。”

“谢谢。”

“但你还记得去年 8 月吗?”

马库斯的表情变得有些僵硬。

“……记得。因为原材料问题推迟一周的那次。”

真正的核心是沉默

他温和地说道。

“那时真的很辛苦。比问题本身更辛苦的是我们对情况一无所知。等你联系我们时已经过去一周了,我为了紧急应对,给公司造成了不必要的成本。”

马库斯开口道。

“很抱歉。当时……我想在内部解决后再告诉你个好消息。”

“我理解。从供应商的角度来看,你想先解决问题。但从买方的角度来看,不知道问题是更大的风险。而且我很清楚,从过去的记录来看,21 日的交货期并非不可能。只要你们那边管理得当,是在此期间内可以完成生产的任务。只要管理重点抓得好。我并不是在提出不可能的要求。不是吗?”

经理一边共享屏幕一边继续说道。

“所以这次我们要换个方式。不是 28 日,而是以 21 日为目标,但不是你一个人,而是我们共同管理的方式。”

合作伙伴门户网站的提议

屏幕上浮现出“Exa 合作伙伴门户”。显示了缓冲区管理事件检查点。

  1. 原材料订购
  2. 物料入库完成
  3. 开始生产
  4. 生产完成 50%
  5. 生产完成
  6. 包装完成,准备发运:目标 4 月 3 日
  7. 装船:目标 4 月 5 日

“请共享这七个事件。请与相关部门协商,确定并共享你们内部事件的日期。如果系统觉得繁琐,通过邮件也可以。你只需要在事件发生时发送现状即可。”

马库斯仔细地看着屏幕。

“共享这些会有什么不同吗?”

“我们共同管理风险。”他的声音充满真诚。

“例如,如果在原材料阶段出现两天的延迟信号,我们可以提前寻找物流合作伙伴,缩短清关时间。或者如果生产阶段出现问题,我们也可以调整内部日程。越早发现问题,我们就越有时间挽回。应对方法也会更多。”

“但是这……不是在监视我们吗?”

“不是。是合作。”他果断地说道。

“马库斯,去年你肯定也很辛苦。一个人扛着问题试图解决,结果失败了并向买方道歉,这对谁都没好处。这次我们换个方式。你们和我们一起试试看。”

商业的进化

马库斯沉默了片刻。似乎在屏幕另一端记录着什么。

然后缓缓抬起头。

“……好。你说得有道理。试试看吧。每当事件发生时,我都会通过邮件向你发送现状。”

“谢谢,马库斯。”他露出了微笑。

马库斯也微微一笑。

“知道了。4 月 21 日……我会尽全力的。”


5. 信息之战


沉默的危机

周一上午。

他一上班就打开了邮箱。没有马库斯的邮件。

原材料入库信息(管理事件项)没有上传。

他看了看表。上午 10 点 30 分。打电话没人接。

他在引擎中输入“信息未录入”。屏幕上的概率震荡后下降到 47%。下降了 10%p。红色警告灯亮起。

“没有信息本身就是一个信号。”

他立即给马库斯发了信息。

“马库斯,今天没有共享现状。我想知道原材料的入库情况。有问题吗?”

20 分钟后,收到了回复。

“抱歉。原材料是上周五入库的。负责人报告晚了,我不知道。刚才确认过了。”

经理松了一口气。是报告延迟,而不是问题。

他在系统中输入“原材料入库完成”。概率再次上升到 61%。

但他又给马库斯发了一条信息。

“太好了。但是马库斯,如果信息迟到,我也会感到不安。从下个事件开始,请务必准时。”

生产延迟的波动

周三。

这次邮件准时到达。但内容不妙。

“经理,‘生产启动’将推迟两天。由于内部流程调度问题,原定于今天(周三)开始,但推迟到了周五。生产本身没有问题,但整个日程似乎会推迟两天左右。”

他的手指停住了。推迟两天 / 微小的延迟,但会蚕食缓冲区。

在引擎中输入“生产启动延迟 2 天”后,屏幕立即做出反应。

“进入延迟机制的可能性上升”

ETA 从 4 月 21 日推迟到 4 月 23 日。概率下降到 52%。缓冲区完全消失,甚至截止日期也变得岌岌可危。

他深吸了一口气。“从现在开始是真格的了。”

先发制人的应对

他紧急要求并召集了生产经理和物流经理。

“生产经理,能否调整内部日程?出现了两天的缓冲区损失。”

生产经理摇了摇头。

“很难。其他生产线也都满了,无法调整。”

“那么必须在物流方面挽回了。”

经理看着物流经理。

“有没有办法让清关哪怕提前一天?”

物流经理思考片刻后说道。

“如果进行预报关,可以缩短半天到一天。不过会产生额外费用。”

他点了点头。

“做吧。另外,到工厂的陆路运输也请找专门的卡车。比普通运送更快的。”

物流经理一边记录一边回答。

“知道了。”

他给马库斯发了邮件。

“马库斯,确认了延迟两天 / 我们将在我们这边优化物流,缩短一天。作为交换,如果你们那边能让包装和发运哪怕提前一天,也请务必做到。请提前做好准备,以便生产完成后立即发运。”

2 小时后,马库斯的回复到了。

“知道了。我会与物流团队协调,以便生产完成后立即发运。”

经理在引擎中输入了这些应对措施。

  • 清关缩短 1 天
  • 运输缩短半天
  • 发运准备时间缩短

屏幕再次跳动。ETA 从 4 月 24 日提前到 4 月 22 日,概率上升到 74%。

比 23 日的截止日期早一天。虽然缓冲区完全消失了,但至少是一个可以守住截止日期的方案。

6. 4 月 21 日

下午 2 点

下午 2 点。一辆巨大的卡车倒车进入仓库码头(Dock)。检验经理打来电话。

“经理,第一批 600 个精密传感器已入库。数量、外观均良好。比 23 日的截止日期早了两天。辛苦了。”

经理挂断电话,深深地靠在椅背上。4 月 21 日。正是最初设定的“安全入库日”。

屏幕上的最终概率是 74%。也许有人会说还有 26% 失败的可能。但他知道。为了控制那 26% 的不确定性,他和系统进行了多么激烈的交互。

他给马库斯写了一封简短的邮件。

“马库斯,货收到了。多亏你及时告知延迟两天,我们才得以应对。这才是真正的合作伙伴关系。”

很快收到了回复。

“说实话,我也觉得很轻松。没想到不隐瞒能让工作效率提高这么多。下个 PO 也按这种方式进行吧。”

结语:3 个月后,变化的风景

7 月中旬,季度绩效报告会议 (QBR)。

会议室的气氛与上次截然不同。经理翻转着演示屏幕。

“上季度,主要物料的准时交货率 (On-Time Delivery) 达到 98.5%。与去年同期相比增长了 12%。”

管理支持部本部长扶了扶眼镜问道。“真是惊人的数字。特别是大型供应商以难对付著称,秘诀是什么?增加运费了吗?”

“不是。‘加急费’反而减少了。”经理展示了下一张幻灯片。是 [Exa 合作伙伴门户] 的仪表板。

“我们没有要求供应商‘遵守交期’,而是要求共享数据。目前包括马库斯公司在内的前五名主要供应商都参与了这一流程。最初那些反感被监视的公司,在看到我们先行提供物流方案并分担风险后,态度也发生了转变。”

在屏幕上,“Marcus GmbH”旁边亮着绿灯。其下方排列着来自日本、台湾、美国的供应商,相互连接。像一个巨大的、活生生的神经网络。

“现在供应商出现问题时不再隐瞒。他们访问系统并插上红旗。我们看到后会派出消防员。不是在火势完全蔓延后才灭火,而是在冒烟时就将其扑灭。”

CEO 满意地笑着点了点头。“你现在证明了采购不仅是‘削减成本’,更是 수익 보호(保护利润)的部门。”

会议结束后回到办公室,他坐在座位上。窗外依然是平时的下午天气,但他显示器里的世界已经变了。

PO#2024-1105 | 下一代电池模块 | 贝叶斯概率:92%(稳定)

过去的他在 57% 的概率面前祈祷。但现在的他将 57% 变成 74%,然后变成 92%。

贝叶斯引擎不是魔球。它是让人直面现实的镜子。在那面镜子面前诚实地面对数据并先发制人。这才是生活在不确定性时代的采购经理真正的实力。

他喝了一口已经变凉的咖啡。苦味消失了,只剩下沁人心脾的香气。

[끝]


[Insight Note] 吉布斯采样与商业决策

小说中采购经理运用的 MCMC 吉布斯采样 (Gibbs Sampling) 是现代数据科学的宝贵财富,也是一种非常强大的工具。当复杂的数学难题难以直接解决时,它是一种利用计算机掷数万、数十万次骰子来绘制概率地形图的方法。

$$x_1^{(t+1)} \sim p(x_1 \mid x_2^{(t)}, x_3^{(t)}, \dots)$$

如上述公式所示,更新一个变量时,固定其他变量的当前状态并重复采样。

这给商业带来的启示是明确의。“未来并非一条确定的道路,而是以多种可能性的分布 (Distribution) 形式存在。”

主人公没有试图消除不确定性。他量化了不确定性,将其纳入管理范围,并在其中选择了最优行动 (Action)。

这个故事写给所有与不确定性作斗争的人。

不仅在采购现场,所有商业现场的真正博弈都是与不确定性的战斗。

[Inside the Engine] 并非奇迹,而是精密的数学与缓冲区管理

“小说中的奇迹并非魔法。它是精密的贝叶斯数学与缓冲区管理相遇而产生的必然 (inevitability)。”

从下一篇博文开始,我们将以 [附录系列] 的形式解剖本集的核心——“Exa 智能推论引擎”的心脏。我们将深入探讨发现马库斯隐藏模式的混合分布 (Mixture Distribution) 原理,以及模拟不确定性的 MCMC 吉布斯采样 (Gibbs Sampling) 的数学机制。

Share This Article
尚無留言

發表迴響