系统与延迟:为什么更快的反应会导致更严重的震荡

其中延迟被证明是反直觉的。

假期期间离开家(还有国家)一两周,是摆脱我刻板印象中打发自由时间的好时机(YouTube看得太多了, Lobste.rsHackerNews 和 BlueSky)并尝试其他方法。

最近假期我带了一些网格纸做点阵字体,还有两本书:第一本是紫色荒原: 一本捷克末日题材小说,为我的作品寻找灵感“捷克共和国的辐射”MMO游戏另一个是系统思维: 一本工作推荐的书(用我的工作教育预算买的),这本书在我的书架上积了好几个月的灰尘。

我很高兴地宣布,我成功完成了这三个目标:我创建了一个位图字体(虽然我还需要调整字距和重音符号),狂读了这本后期小说(还算可以),还完成了系统手册!

《系统思维》引入了一个框架和视觉语言,涵盖源与汇、存量与流动、反馈循环以及系统,这些(通常)从中自下而上产生。

这些大致对应于数学模型和微分方程,尽管书中并未详细介绍这些内容,只在附录中提及了示例的实际公式。

延迟很奇怪

有一章非常酷,依我看是整本书的亮点。这涉及延误。

一个常见的例子(见上图)是一位汽车经销商经理在停车场管理一批车辆,目标是总销售量是销量的10倍。当客户需求增加时,她开始订购更多汽车以弥补空缺。

无延迟系统

理想情况下没有延误:她一看到需求增加,发现现有库存与理想库存的差异,立即下令增加车辆,车辆立即抵达。

另外,在这个例子中,时间的细度是几天,所以想象一天结束时她看到30辆车被卖出,她下单30辆,第二天早上就到了。

我们先看看模型中不会受延迟影响的常数:

客户需求从每天20辆车开始,随后逐渐增加到每天22辆,某一天甚至激增至70辆。

销售是最小值(客户需求,库存),在以下所有例子中,这与客户需求相等,因为我们有足够的车辆,但你可以想象如果需求足够快高,库存会断货。

我们的经理计算出目标库存为销售额 * 10。可能有点简单,但这只是个例子。

你也可以想象我们之后会把过去N天的销售平均值超过预期库存,从而在系统中引入另一个延迟,但我在这篇博客文章中省略了这个,因为它不涉及我想说明的内容。

那么,无延迟模型表现如何?

顺便说一句,我编写了一个蒙特卡洛模拟器我在读这本书时也在Elm——书中列出了本博客文章示例的伪代码公式——但电子表格就足够了, 而且还有其他工具可以处理这些微分方程模型。 说实话,有一个免费的图形化网页应用建在JS 库展示我在其中一个例子中展示的同样例子。 我想这本书确实有影响力。

这个模型没有延迟,但它存在一个问题,就是对客户需求突然激增反应过度,买太多车导致卖出时间很慢, 更重要的是,这不现实:现实世界中所有东西都有一定的延迟。 订单处理需要时间,车辆到达经销商停车场也需要时间,诸如此类。 我们称之为送货延迟。

这看起来是个糟糕的延迟,但延迟不一定总是坏事:考虑到经理可能不想对这些突如其来的波动反应过度。 她因为订单激增订购了550辆车,而她平时一天只订大约20辆! 她可能想慢慢地找到目标库存,比如只订购一半、三分之一等。 如果第二天情况恢复正常,我们将能更顺畅地应对浪潮,而不会过度反应。 我们称这个除子为响应延迟。

带有延迟的系统

让我们运行这两个延迟的模型,看看:

送货延迟:5天(从我下单到车辆到达停车场起算)

响应延迟除数:2(如果我发现有30辆车的差异,我今天只订15辆。)

什么?刚才发生了什么?我们以为自己做得很对,回复延迟是件好事!

确实如此。但这两种延迟的结合让我们的系统出现了波动!即使客户需求保持不变,这种状态也从未稳定。

经理陷入了一个恶劣的循环:订了太多车,然后在接下来的几天里又订了更多,直到第一笔订单到来。 一旦订单开始到,她就有太多车了,最终在等待库存恢复理想水平时不再下单。 但随着汽车销售增加,库存又跌破理想值,她又开始了这个循环。

我很想知道,是什么在数学上使这些振荡不可避免。关于这些模型和微分方程的数学含量更强的书籍可能会解释。现在我们先以延迟引起的振荡为例。

缩短延迟:难道不是解决办法吗?

你可能会认为,既然拖延导致了这场麻烦,我们应该尽量减少延误。 缩短反馈循环之类的。但请记住,我们引入响应延迟是为了更好地应对随机峰值。 无论如何,让我们试着看看会发生什么:

送货延迟:5天(这次我们无法加快速度)

响应延迟除数:1(尽快:买到我们每天结束时缺失的正好金额)

嗯。正如你所见,试图更快反而让情况更糟:我们的车辆库存现在波动更大:周期从132飙升到518英里, 而我们希望能达到220英里左右。更别提暴涨后,我们停车场同时得有1160辆车! 这比无延误的情景还糟糕!还有希望吗?

延误时间更长:放轻松,伙计......

为了看看会发生什么:让我们模拟一个更有耐心的管理者:一个将补货分散在更长时间内的管理者。 让我们把响应延迟除子做大,试试6。当我们看到一天结束时有30辆车的差距, 我们干脆订5辆,而不是10辆、15辆或30辆。

送货延迟:5天(仍不在我们控制范围内)

响应延迟除数:6(响应较慢!延迟更长!)

哇!振荡消失并稳定下来!

结论

当我读到这段时,这让我觉得挺反直觉的。直觉上,延迟似乎是你想要尽量减少的。但在这里,缩短延迟反而让情况更糟,延长延迟则更可预测、浪费更少。

在书的后半部分,Donella Meadows提到了短反馈环;没有明确的规则可以盲目执行。做一个系统的模型,尝试不同的参数,看看它的表现。

许多管理者和领导者把研究人员提供的杠杆全速转动,方向错误。 你可能认为自己知道哪条路是正确的,但也许,只是也许,能洞察你的系统在双向的行为上, 并基于数据而非直觉行动。

附言:

欢迎随意尝试玩具模拟器举个例子。 代码为在Github上.

添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论