不確実な未来に取り組む
未来は不確実です。ところが、ほとんどすべての予測型サプライチェーンソリューションは逆の前提を置いています。自分たちの予測は正しいとみなし、その予測に基づいてシミュレーションを展開するのです。暗黙のうちに、未来は 確定している と見なされ、そこからさまざまな問題が生じます。
歴史的に見れば、ソフトウェアエンジニアがそのような前提を置いたのにも理由がありました。初期の、そしてそれほど初期でもないコンピュータにとって、決定論的な未来こそが処理可能な唯一の選択肢だったのです。したがって、不確実な未来を扱うことが 理論上は 最善と分かっていても、実務上はそもそも選択肢にすらなりませんでした。
さらに、この問題を回避するための数学的な工夫も20世紀初頭には見つかっていました。たとえば、古典的な 安全在庫分析 では、リードタイムと需要の両方が正規分布に従うと仮定します。正規分布の仮定は計算上便利で、未来を表現するのに必要なのが平均と分散という2つの変数だけだからです。
しかし、リードタイムについても需要についても、この正規分布の仮定はごく一部の例外を除いてほぼ常に誤っていることが分かり、結局また問題が生じます。
2012年、Lokad は古典的な在庫予測アプローチがそもそも機能していないことに気づきました。平均予測や中央値予測では、正しい問題を扱えていなかった のです。どれだけ技術を投入しても、満足のいく結果にはなりませんでした。
そこで私たちは quantile forecasts へ移行しました。これは、意図的なバイアスを持って未来を予測する ものと解釈できます。やがて、サプライチェーンの観点で本当に重要な部分に焦点を当てるという意味でも、quantile は古典的な安全在庫分析より一貫して優れていると分かりました。
しかし、quantile へ移行する 過程で、私たちはいくつかの重要なものを失っていたことにも気づきました。実際、古典的な平均予測とは異なり、quantile forecasts は加法性を持たないため、たとえば複数の quantile を合計しても意味のある値にはなりません。実務上は、古典的な予測自体がそもそもあまり意味をなしていなかったので、その損失はそれほど大きくありませんでした。いずれにせよ、それらを合計するのは合理的な選択肢ではなかったのです。
Over the years, while working with quantiles, we realized that so many of the things we took for granted had become a lot more complicated: demand quantities could no longer be summed or subtracted or linearly adjusted. In short, while moving towards an uncertain future, we had lost the tools to operate on this uncertain future.
2015年には、私たちは quantile grids を導入しました。quantile grids はまだ本格的な確率的予測そのものではありませんでしたが、予測エンジンはすでに quantile 推定値ではなく確率を返し始めていました。確率分布は単純な quantile 推定よりはるかに表現力が高く、しかも分布の上に 代数 を定義できることが分かりました。
代数 という言葉は技術的に聞こえるかもしれませんが、そこまで複雑な話ではありません。和、積、差などの単純な演算を、数学的に整合的であるだけでなく、サプライチェーンの観点からも意味のある形で定義できる、ということです。
その結果、つい数週間前、私たちは商取引最適化向けのドメイン固有言語 Envision に、分布の代数を直接組み込みました。この分布代数のおかげで、2つの不確実なリードタイム、たとえば不確実な生産リードタイムと不確実な輸送リードタイムを足し合わせるような、一見単純な演算も簡潔に書けるようになります。これら2つのリードタイムの和は、畳み込みと呼ばれる演算で求められます。計算自体はかなり技術的ですが、Envision では A = B +* C と書くだけで済みます。ここで +* は、独立な確率変数を合計するための畳み込み演算子です (* )。
Through this algebra of distributions most of the “intuitive” operations which were possible with classic forecasts are back : random variables can be summed, multiplied, stretched, exponentiated, etc. And while relatively complex calculations are taking place behind the scenes, probabilistic formulas are not more complicated than plain Excel formulas from the Envision perspective.
予測が完璧に正確であることを願うのではなく、この分布代数によって私たちは不確実な未来をそのまま受け入れられるようになります。サプライヤーのリードタイムは変動しがちですし、納品数量が発注数量と異なることもあります。顧客需要は変化し、商品は返品され、在庫は紛失や破損に遭うかもしれません。こうした不確実な出来事の大半を、この分布代数を通じて、ごく少ないコーディング作業でより素直にモデル化できるようになります。
Under the hood, processing distributions is quite intensive; and once again, we would never have ventured into those territories without a cloud computing platform that handles this type of workload - Microsoft Azure in our case. Nevertheless, computing resources have never been cheaper, and your company’s next $100k purchase order is probably well worth spending a few CPU hours - costing less than $1 and executed in just a few minutes - to make sure that the ordered quantities are sound.
(*) 確率変数とは、質量が 1 の分布のことです。これは分布の一種です。Envision は確率分布、すなわち確率変数だけでなく、より一般的な分布も処理できます。