章 11:サプライチェーン管理II:ビールゲーム
第11章の概要
ビールゲームはサプライチェーンマネジメント教育における古典である。私たちはこれを一般的なマルチエージェント問題として捉え、ビールゲームに登場する各サプライヤーを別々のエージェントとしてモデル化する。この解説は第10章で築いた基礎を発展させたものであり、さらにエージェントが情報(ビールの注文)と物理的資源(ビール)の両方を送るという複雑さが加わっている。
本章では不確実性のモデル化を比較的単純に保つ。その代わり、一連の単純なパラメトリック方策を探求するが、これを機会として、あるエージェントが別のエージェントが持ちうる情報(この場合は未処理注文について)についての信念を導入する。続いて、著名な意思決定科学者ダニエル・カーネマンとエイモス・トベルスキーが最初に提唱した、よく知られた「アンカリングと調整」方策をビールゲームの設定に適応させた例を示す。最後に、決定がスカラー量であるという性質を活用して、確率的先読み方策をどのように設計しうるかを概説する。
本章は、サプライチェーンの状況で生じる制御問題のバリエーションの豊かさを示す、広範囲にわたる拡張の提案で締めくくる。
ナラティブ
本章では、1950年代に考案された「ビールゲーム」として知られる有名なゲームを取り上げる。これはもともとMITの教授であったジェイ・フォレスターが、サプライチェーンの不安定性を示すために考案したものである。この問題は、ビールが製造される場所(メーカー)から市場(小売業者)へと様々なサプライヤーがビールを移動させる線形サプライチェーンを扱う。ビールは製造地点から市場に至るまでに複数の中間業者を経由しなければならない。
流れには2種類ある:
- ビールの流れ ― 各ケースのビールは1ペニーで表され、メーカーから小売業者へと移動する。
- 情報の流れ ― サプライチェーンの各地点は、次の下位レベルにさらなるビールを要求することで在庫を補充する。
サプライチェーンの各レベルはエシュロンと呼ばれる。通常、1チームあたり4~6のエシュロンがある。小売業者における需要は事前に固定されているが、トランプの束の中に隠されている。小売業者はその週の需要を明らかにすると、在庫から需要を満たそうとする。小売業者、そして(メーカーを除く)サプライチェーン内の他のすべてのサプライヤーは、その後、追加在庫を要求する用紙に記入する。
小売業者、あるいは中間サプライヤーのいずれかが、追加在庫の要求(あるいは小売レベルでの市場需要)を満たせない可能性がある。この場合、未充足の需要は注文残(バックログ)として、新たな在庫が到着するまで待機する。
注文を処理した後、(そのサプライチェーンの)全員が立ち止まり、自分の在庫(在庫として手元にあるビールのケース数)または注文残のいずれかを記録しなければならない。注文残には1ケースあたり4ドルのペナルティが課される。過剰在庫には1ケースあたり1ドルの保管コストが課される。
このプロセスの手順は図11.1に示されている。手順は5つある:
ステップ0: 毎週、各プレイヤーは在庫(ビール1ケースを表すペニー)と注文を持つ。注文は小売需要(小売エシュロンの場合)または左側のプレイヤーが行った注文である場合がある。
ステップ1: 各プレイヤーは、自分の在庫からできるだけ多くのケースを取り出し、左側のプレイヤーとの間の領域へ移動させようとする(左側のプレイヤーの在庫にペニーを追加してはならない)。注文を満たすのに十分な在庫がない場合は、注文を線で消し、まだ満たされていないケース数(これが注文残となる)に書き換える。
ステップ2: 次に、在庫を補充するために欲しいケース数を記した注文を書き出し、自分と右側のプレイヤーとの間の領域に置く(メーカーは、すべてのビールの発生源であるペニーの山に注文を出す)。
ステップ3: 立ち止まって、自分の在庫用紙にどれだけの在庫があるかを記録する。もし注文を満たせなかった場合、在庫はゼロとなり、未充足の注文をバックログとして持つことになる。この場合、これを注文残として記録する。
ステップ4: ここが重要な手順である: 左手を伸ばして次の注文用紙を自分の注文の山(用紙の山)に引き寄せると同時に、右手を伸ばして自分に向かってくるペニーを自分の在庫に引き寄せる。これでステップ0の状態に戻る。
全員が同時に手を動かすことが非常に重要であるが、互いに情報を共有することは許されない(また、同じチェーン内の他のプレイヤーの在庫を覗き見てはならない)。小売業者は全員の同期を保つ役割を担わなければならない。
古典的なビールゲームの簡略版の完全な説明書は、tinyurl.com/PrincetonBeerGameからダウンロードできる。このバージョンのゲームは、少なくとも8~10人の学生からなるクラスで、連続したテーブル(参加者間で紙やペニーを押し渡せるようにするために連続テーブルが必要)で授業を行う場合に最適である。チームは5~6人のプレイヤー(すなわち5~6の中間エシュロンに加えて小売業者)を持つべきだが、4人以上とする。工場に最も近い在庫を運営する人物は、両方の役割を兼任してもよい(工場は注文を満たすだけの役割しかほとんど持たないため)。チームは同じ人数である必要はなく、遅れて参加する学生を加えてチェーンを拡張することは比較的容易である。50分の講義でゲーム全体を実行することも可能である。
問題の枠組み
これもまたマルチエージェント問題である。各エージェントに関する3つの枠組み設定の質問に対する答えは以下の通りである:
- 指標: 期待在庫保管コストと、未充足注文に対するバックオーダーコストの合計を最小化する。
- 決定: サプライチェーンの次のエージェントに対して、新規製品をどれだけ要求するか。
- 不確実性: 市場がどれだけ要求するか(市場に直接応対する小売エージェントの場合)、あるいは市場に近い次のエージェントがどれだけ注文するか、そして上流エージェント(工場に近い側)によって要求注文がどれだけ満たされるか。
基本モデル
エンドポイント(小売業者またはビールメーカー)以外のサプライヤーをモデル化する。このモデルは前章の2エージェント新聞売り子問題のスタイルに沿ったものであるが、いくつかの調整がある。始める前に、マルチエージェントシステムのための新しい記法を導入する必要がある。
マルチエージェント記法
始める前に、誰が何を知っているか、そして情報を共有するプロセスについての記法体系を確立する必要がある。
サプライチェーン内の異なる意思決定エージェントを$\Qcal = \lbrace 1, 2, \ldots, Q\rbrace $で表す。$q=0$を市場と定義する。市場は情報の源ではあるが、決定を行わない。$q=Q$は製造工場を表し、(少なくとも当初は)常に需要を満たすのに十分な製品を製造できると仮定する。
まず、エージェント$q$の状態変数を$S_{tq}$を用いて定義する。これは時刻$t$においてエージェント$q$が知っている情報(信念を含みうる)である。エージェント$q$がエージェント$q’$に対して行動する場合、$x_{tqq’}$、すなわちエージェント$q$によるエージェント$q’$への行動を用いる。決定$x_{tqq’}$は$q$によって決定されるが、情報として$q’$に到達することに注意する。
時刻$t$における$q$による$q’$への行動は、物理的資源の移動を伴う場合もあれば、情報の送付を含む場合もある。$q$による$q’$への行動は、時刻$t+1$に$q’$に到達する外生情報プロセスとして$q’$に到達する(ここで何らかの歪みが生じうる)。これを$W_{t+1,q,q’}$と書き、時刻$t+1$にエージェント$q$が取った行動からエージェント$q’$に到達する情報とする(これは資源に関する情報であっても、$S_{tq}$からの情報の送付や共有に関するものであってもよい)。
最後に、エージェント$q$がエージェント$q’$の知る何かについて推定を作成する必要がある場合がある。エージェント$q’$が知る何かを$S_{tq’}$と表すとすると、エージェント$q$が$S_{tq’}$の情報について作成する推定値を$\overleftarrow{S}_{t,q,q’}$と表す。
状態変数
エージェント$q=1, \ldots, Q-1$の状態変数は、$R^{inv}_{tq}$(反復$t$の後、エージェント$q$の上流ベンダーに製品を配送した後に残った在庫)と、$R^{back}_{tq}$(在庫からまだ満たされていないバックオーダー需要)である。
メーカー$q=Q$は常に無制限の在庫を持つと仮定する。
やがて、これが問題の状態の不完全な記述であることを学ぶが、これは良い出発点である。
決定変数
エージェント$q$は2つの決定を行う必要がある。1つ目(最も重要なもの)は、下流エージェント$q+1$からどれだけ注文するかであり、これを$x^{req}_{tq,q+1}$、すなわちサプライヤー$q$がサプライヤー$q+1$に伝えるために出す注文と書く。これは反復$t$の注文時点で行われ、$q+1$が受け取り、反復$t+1$で処理される。
2つ目は、上流エージェントからの要求のうちどれだけを在庫から満たすかである。これを$x^{fill}_{tq,q-1}$、すなわち時刻$t$に在庫から満たすべき未充足需要$R^{back}_{tq}$の量と書く。
これらの決定は、$q=1, \ldots, Q-1$について以下の制約を受ける:
\[\begin{align} 0 \leq x^{fill}_{tq,q-1} &\leq R^{inv}_{tq},\label{eq:beergameconstraint1}\\ 0 \leq x^{fill}_{tq,q-1} &\leq R^{back}_{tq},\label{eq:beergameconstraint2}\\ x^{req}_{tq,q+1},x^{fill}_{tq,q-1} &\geq 0. \label{eq:beergameconstraint3} \end{align}\]制約$\eqref{eq:beergameconstraint1}$は、手元にない在庫をエージェント$q-1$に送ることができないという現実を反映している。制約$\eqref{eq:beergameconstraint2}$は、要求されていない在庫をエージェント$q-1$に送ることができないことを表す。なお、$R^{back}_{tq}$にはまだ処理されていない新規注文が含まれることに注意する。
こうして、決定ベクトルを以下のように書く
\[x_{tq} = (x^{req}_{tq,q+1},x^{fill}_{tq,q-1}),\]ここで、私たちの決定は後で設計する何らかの方策$X^\pi(S_t)$によって行われる。
基本ゲームでは、常に$q-1$からの注文をできる限り在庫から満たすことにするので、技術的には$x^{fill}_{tq,q-1}$は実質的な決定ではなく、単に$x^{fill}_{tq,q-1} = \min\lbrace R^{back}_{tq},R^{inv}_{tq}\rbrace $と設定するだけである。しかし、これは依然として$q$によって行われる行動であり、後でより豊かな挙動への道を開くものである。
私たちが小売市場$q=0$である場合、エージェント$q=1$への要求$W_{t,0,1} = x^{req}_{t,0,1}$は外生的な情報源から来る。
私たちが工場$q=Q$である場合、常に$q=Q-1$からの要求を満たすので、
\[x^{fill}_{t+1,Q,Q-1} = x^{req}_{t,Q-1,Q}.\]外生情報
サプライヤー$q$には2種類の外生情報がある: $W^{fill}_{t+1,q+1,q}$(時刻$t$に行われた要求に応じてサプライヤー$q+1$から受け取り、時刻$t+1$に到着する製品の量)と、$W^{req}_{t+1,q-1,q}$(時刻$t$にサプライヤー$q-1$がサプライヤー$q$に対して行う注文で、時刻$t+1$に到着する)。
エージェント$q+1$および$q-1$が行う決定が、エージェント$q$には外生情報として到達することを認識することが重要である。つまり、次のように書くことができる
\[W^{fill}_{t+1,q+1,q} = x^{fill}_{t,q+1,q}, \qquad W^{req}_{t+1,q-1,q} = x^{req}_{t,q-1,q}.\]エージェント$q$に対し時刻$t+1$までに到着する外生情報は、以下を用いて表すことができる
\[W_{t+1,q} = (W^{fill}_{t+1,q+1,q},W^{req}_{t+1,q-1,q}).\]これは中間エージェント$q=1, \ldots, Q-1$の情報プロセスを表す。情報プロセス$W_{t,0}$は市場を指し、エージェント1に対して行われる外生的な要求源$x^{req}_{t,0,1} = W_{t,0,1}$が存在すると仮定する。
遷移関数
$q=1, \ldots, Q-1$の状態変数$R^{inv}_{tq}$と$R^{back}_{tq}$は次のように変化する
\[\begin{align} R^{inv}_{t+1,q} &= R^{inv}_{tq}-x^{fill}_{t,q,q-1} + W^{fill}_{t+1,q+1,q}, \label{eq:beergametrans1}\\ R^{back}_{t+1,q} &= R^{back}_{tq}-x^{fill}_{t,q,q-1} + W^{req}_{t+1,q-1,q}. \label{eq:beergametrans2} \end{align}\]式$\eqref{eq:beergametrans1}$は、要求$x^{fill}_{t,q,q-1}$を在庫から差し引き(負にはならない)、下流エージェント$q+1$からの入荷在庫$W^{fill}_{t+1,q+1,q}$を加えて、時刻$t+1$の在庫を作り出す。式$\eqref{eq:beergametrans2}$は、$R^{back}_{tq}$に保持されている要求済み注文を処理し、期間$t+1$で処理される新規注文$W^{req}_{t+1,q-1,q}$を加える。
目的関数
エージェント$q$の目的関数は、残余在庫$R^{inv}_{tq}$と未充足需要$R^{back}_{tq}$に対するペナルティを評価する。$q$をエージェント$c^{inv}_q$の在庫保管単位コスト、$q$をエージェント$c^{back}_q$の未充足注文単位コストとする。
これらのコストは、顧客注文を満たす決定を行った後、しかし新規注文が到着する前の在庫と繰越需要に対して評価される。したがって、エージェント$q$のコスト関数は次式で与えられる
\[C(S_t,x_t) = c^{inv}(R^{inv}_{tq}-x^{fill}_{t,q,q-1}) + c^{back}(R^{back}_{tq}-x^{fill}_{t,q,q-1}).\]$R^{inv}_{tq}$は現在の在庫であり、$R^{inv}_{tq}-x^{fill}_{t,q,q-1}$は時間$t$の注文を処理した後に残る在庫であることに注意してほしい。同様に、$R^{back}_{tq}$には新規注文と、それ以前の期間からの未処理注文が含まれる。その結果、$R^{back}_{tq}-x^{fill}_{t,q,q-1}$は即座には処理されなかった注文となる。
次に、以下を用いて最良の方策を探索する。
\[\min_\pi \E\left\{\sum_{t=0}^T C_q(S_t,X^\pi(S_t))\vert S_0\right\}.\]これは各エージェント$q$に対して、各エージェントが自己最適化を行っていると仮定した上で実行する必要がある。もう一つの課題は、各エージェントが利用可能な情報のみを使用できるという制約の下で各エージェントの方策を選ぶことだが、それでもグローバルな最適性を達成する方策を求めたい、というものである。これは本書の範囲を超える問題である。
不確実性のモデル化
端点にいるエージェントを除く各エージェントは、2つの不確実性の源を管理する必要がある。
- 上流のエージェント(市場、または自らが直面する需要に対して不確実な形で応答している別のエージェントの場合もある)からの要求と、サプライチェーンがその要求に応答できる能力。
- 上流のエージェントがそのエージェントの注文を処理できる能力。
言い換えれば、不確実性の唯一の源は市場とエージェントの振る舞いである。人間であるエージェント同士が相互作用する方法は、複雑な(そして不確実な)動態をもたらす。通常、このゲームは市場の動態が比較的緩やかな状態で実行される。そのように実行されたとしても、人間の行動は実際のサプライチェーンで観測されている「ブルウィップ効果」と呼ばれる著しい不安定性をもたらすことがある。
方策の設計
検討すべき基本的なPFA形式の方策には様々なものがある。まず、常に利用可能な在庫の範囲内で要求を満たすと仮定するところから始める。すなわち、
\[x^{fill}_{t,q,q-1} = \min\{x^{req}_{t,q-1,q}, R^{inv}_{tq}\}.\]異なる方策を設計していく中で、その方策の情報要件を満たすために状態変数に追加の要素を導入する必要が生じる場合があることに注意してほしい。
いくつかの単純な規則
いくつかの単純な発注規則から始めよう。
- エージェント$q+1$に対し、直前の時間期間に$q$に要求されたものと同じものを要求する。
この方策は在庫がどれだけあるかを無視しており、純粋な追跡方策である。この方策では、直前の要求$W^{req}_{t-1,q-1,q}$を状態変数に保存する必要があり、その状態変数は次のようになる。
\[S_{tq} = (R^{inv}_{tq},R^{back}_{tq}, W_{t-1,q-1,q}).\]そして不確実性に対する保護として、これを$\theta$だけ上乗せする。
- 現在および過去の要求を満たすために必要な分を要求する。
未処理の需要が残っている場合、この方策は二重計上、すなわち複数回の要求を行うことになってしまう。
- 目標在庫方策:
この方策は、条件が変化しても変えられない指定された目標在庫$\theta^{target}$を維持することを目指す。
これらは実装が容易な基本的なパラメータ化されたPFAだが、当然ながら調整が必要である。同時に、これらは非常に単純であり、まだ処理されていない過去の注文の履歴といった要因を無視している(実際、これらの方策はいずれも根本的な欠陥を持っている)。
$R^{back}_{tq}$はエージェント$q-1$がエージェント$q$に対して行った注文のうち、$q$がまだ処理していないものであることに注意してほしい。$q$から$q+1$に対して行われた未処理の注文は$R^{back}_{t,q+1}$で与えられるが、これはエージェント$q$には直ちにはわからない。$q$が$q+1$の知る後回し需要(バックオーダー)についての$R^{back}_{t,q+1}$の推定値を$\overleftarrow{R}^{back}_{tq,q+1}$とする。これは$q$が$q+1$に対して行った未処理の注文であり、通常は$q+1$が維持している統計量である。
通常、あるエージェント(例えば$q+1$)が知っている情報は、別のエージェント(例えば$q$)には完全にはわからないが、この場合は$q$が以下を用いて自ら維持できる統計量である。
\[\overleftarrow{R}^{back}_{t+1,q,q+1} = \max\{0,\overleftarrow{R}^{back}_{tq,q+1}+x^{req}_{t,q,q+1} - W^{fill}_{t+1,q+1,q}\}.\]この統計量を用いて、$\overleftarrow{R}^{back}_{t+1,q,q+1}$で捉えられる未処理注文を現在の在庫$R^{inv}_{tq}$に加える調整済み目標在庫方策を提案できる。これを次のように書く。
- 調整済み目標在庫方策:
この方策はPFAの一形態である(内部に最適化は含まれない)が、将来到着する予定の供給を反映している。
アンカー・アンド・アジャストメント・ヒューリスティック
1989年、John Sterman(MIT教授でビジネスダイナミクスの専門家)は、Tversky and Kahneman (1974) が開発した「アンカー・アンド・アジャストメント」の原理をビールゲームに適用した論文を書いた。ここではこのアイデアを概説する。
まず一連の状態変数を定義する。実際に使用する変数は方策に依存する場合がある。
- 物理状態変数: $R^{inv}_{tq}$(現在の在庫)、$R^{back}_{tq}$(バックログ需要)、および$R^{transit}_{tq}$(現在の輸送中在庫、在庫が輸送中である期間の長さは捉えていない)。このときリソース状態は$R_{tq} = (R^{inv}_{tq},R^{back}_{tq},R^{transit}_{tq})$となる。
- 情報変数: $F_{t-1,q,q-1}$(前の時間期間における$q$から$q-1$への実際の充足量、すなわち$F_{t-1,q,q-1} = x^{fill}_{t-1,q,q-1}$)、および$A_{t-1,q+1,q}$(前の時間期間における$q+1$から$q$への実際の到着量、すなわち$A_{t-1,q+1,q} = x^{fill}_{t-1,q+1,q}$)。このとき情報状態は$I_{tq} = (F_{t-1,q-1,q},A_{t-1,q-1,q})$となる。これらの変数によって、前の時間期間における活動を「記憶」している。それらの利用は方策に依存する。
- 信念状態変数: $\Abar_{t,q+1,q}$(エージェント$q+1$からの製品の推定到着率、これは$q+1$から$q$に製品が到着する速度の推定値である)、$\Fbar_{t,q,q-1}$(エージェント$q-1$に届けられる推定充足率、これは$q-1$に製品が出荷される速度の推定値である)、および$\Dbar_{t,q-1,q}$($q-1$からの推定需要率、すべての注文を完全に処理していればこれは$\Fbar_{t,q-1,q}$と等しくなり、つまり$\Fbar_{t,q-1,q} \leq \Dbar_{t,q-1,q}$を意味する)。このとき信念状態は$B_{tq} = (\Abar_{t,q+1,q},\Fbar_{t,q-1,q},\Dbar_{t,q-1,q})$となる。$I_t$と同様に、これらの変数の利用は方策に依存する。後ほど、これらの推定値を計算する様々な方法を提案する。
こうして、われわれの完全な状態変数は
\[S_{tq} = (R_{tq}, I_{tq}, B_{tq}).\]となる。推定充足率$\Fbar_{t,q,q-1}$は、いくつかの方法のいずれかで計算できる。
- リアクティブ:$\Fbar_{t,q-1,q} = F_{t-1,q-1,q}$。
- 安定型:$\Fbar_{t,q-1,q} = \theta^{trgt-fill}_q$、ここで$\theta^{trgt-fill}_q$はエージェント$q$が設定する目標充足率である。
- 回帰的期待:指定された平滑化係数$0 \leq \gamma \leq 1$に対して$\Fbar_{t,q-1,q} = (1-\gamma)\Fbar_{t-1,q-1,q} + \gamma \theta^{trgt-fill}_q$。
- 適応的期待:$\Fbar_{t,q-1,q} = (1-\gamma)\Fbar_{t-1,q-1,q} + \gamma \Fbar_{t,q-1,q}$。
この設定に適用される「アンカー・アンド・アジャストメント」の原理は、平均してどれだけ注文すべきかを示す「アンカー」を選び、現在の状況を反映する「調整」を行うというものである。
- 基本補充方策 – $\Fbar$を計算する任意の方法を用いて、次の方策を得られる。
-
アンカー・アンド・アジャストメント方策 – ここでは、注文すべきと期待される量である推定注文率$\Fbar_{t,q-1,q}$を「アンカー」として用いるが、手持ちの在庫と輸送中在庫に基づく調整を行う。これらの調整を、$R^{inv}_{tq}$の現在の在庫に基づく調整である$\delta R^{inv}_{tq}$、および$R^{transit}_{tq}$の現在の輸送中在庫に基づく調整である$\delta R^{transit}_{tq}$を用いて表す。
これらを用いて、次の「アンカー・アンド・アジャストメント」方策を作ることができる。
さて、ここで調整機構を設計する必要がある。$\delta R^{inv}_t$に対する可能な戦略は次のようになるかもしれない。
\[\delta R^{inv}_{tq} = \theta^{inv}_q (R^{inv-trgt}_q - R^{inv}_{tq}),\]ここで$\theta^{inv}_q$は平滑化係数であり、目標在庫$R^{inv-trgt}$は調整可能なパラメータである。
$\delta R^{transit}_{tq}$に対する可能な戦略は次のようになるかもしれない。
\[\delta R^{transit}_{tq} = \theta^{transit} (R^{transit-trgt}_q - R^{transit}_{tq}).\]このとき、調整可能なパラメータのベクトルは
\[\theta_q = (\theta^{inv}_q, R^{inv-trgt}_q, \theta^{transit}_q, R^{transit-trgt}_q).\]となる。これらのパラメータは各エージェント$q$について調整する必要がある。
アンカー・アンド・アジャストメント方策は、それが最適に近いという何らかの根拠に基づくものではなく、人間の行動に着想を得たものである。利点は単純で、透明性が高く、直感的であることである。課題は常に調整可能なパラメータであり、特に目標$R^{inv-trgt}$と$R^{transit-trgt}$である。これらは静的なパラメータとして提示されているが、実際には状況に応じて反応する必要がある。
先読み方策
われわれは最初に7章で確率的先読み方策を提示したが、参照の便のためここに再掲する。
\[\begin{align} X^{DLA}(S_t) &= \argmin_{x_t\in\Xcal}\Big(C(S_t,x_t) + {} \nonumber \\ & \ \Etilde_{\Wtilde_{t,t+1}} \Big\{\min_{\tilde \pi} \E_{\Wtilde_{t,t+2}, \ldots, \Wtilde_{tT}} \Big\{\sum_{t'=t+1}^T C(\Stilde_{tt'},\Xtilde^{\tilde \pi}_t(\Stilde_{tt'}))\Big\vert \Stilde_{t,t+1}\Big\} \Big\vert S_t,x_t\Big\}\Big). \label{eq:policiesapproximateDLA2} \end{align}\]式$\eqref{eq:policiesapproximateDLA2}$は特に手ごわいものになり得る。図11.2は、基本的な決定木を用いてこの方策の各要素を示している(すべては単一のエージェント$q$について示されており、その添字は省略している)。最初の決定ノード$S_t$から出る一連の決定$x_t$があり、その後$\Wtilde_{t,t+1}$内のランダムな情報について期待値を取る。その後、先読みモデル内の各決定ノード$\Stilde_{tt’}$に対して近似的な「先読み方策」$\Xtilde^{\tilde \pi}(\Stilde_{tt’})$を用いるが、ここでは通常、状態変数を何らかの形で簡略化する。また、将来到着する情報についても、決定論的な先読みモデルを用いるか、あるいは可能な結果のシミュレートされた集合を用いるかにより、$\Wtilde_{tt’}$で近似する。
この式は、次の2つの要素から成ると考えることができる。
- まず、可能な各決定$x_{tq}$を列挙する。
- 次に、$\Xtilde^{\tilde \pi}(\Stilde_{tt’})$と表記される近似的な「先読み方策」を用いて決定を行いながら、任意のランダムな情報のサンプルを用いてこの決定の影響をシミュレートする。
これをわれわれのサプライチェーンの設定で用いるには、他のエージェントの振る舞いをシミュレートする必要があるが、その際、a) $q’ \ne q$に対する初期条件$R_{tq’}$はわからず、b) 他のエージェントがどのように決定を下しているかもわからないことに留意する必要がある。
開始条件についての知識の欠如を扱うには、これらを確率変数として捉え、ある分布からサンプリングする必要がある(これは最初の$\Etilde_{\Wtilde_{t,t+1}}$の中に埋め込まれている)。あるエージェントが、例えば在庫がゼロで、かつ相当なバックオーダーを抱えていることもありうることに注意してほしい。われわれが発注している注文が処理されるまでに長い時間がかかっていることが分かれば、それがその状況にあることを推測できるかもしれない。
次に、未知の方策をシミュレートする必要がある。エージェント$q$について、時刻$t$における非常に高度な確率的先読み方策を構築しようとしているのだが、他のエージェントだけでなく、将来の時間期間におけるエージェント$q$に対しても、先に提案したはるかに単純な方策を用いることを推奨する。
さて、これらの近似を踏まえて、確率的先読み方策は上で概説した単純な方策のいずれかよりも優れた性能を示すだろうか。これは良い研究課題となりうるが、先読み方策は単純なパラメトリック方策の主要な限界を克服している。具体的には、先読み方策は、過去の注文の履歴や将来の出来事の予測といった、このシステムの複雑な状態を自然に捉える。パラメトリック方策は定常的な問題に適しているが、先読みは非定常性が高い可能性のある振る舞いに自然に適応する。
拡張
この問題を修正する方法は多数ある。いくつかのアイデアを以下に示す。
1) 上流のエージェントからの注文が、過去に見られたものよりもはるかに大きい(あるいは小さい)状況を処理する必要があり、これは需要の系統的な変化を示唆している。上流の需要における予期しない変化に対処するため、将来の需要の潜在的な増加についての推定値を導入することができる。
2) 上流のエージェントがどのように振る舞うかについての信念を維持することができる。例えば、エージェント$q+1$が余裕のある在庫を維持していれば、エージェント$q$にとって助けとなる。自分の要求にノイズを加えることで在庫の積み増しを促すことができ、これによってエージェント$q+1$が持つ、エージェント$q$が発注する注文の不確実性についての推定値が増加する。
3) 各エージェントは欠品に反応し、より高い在庫を維持することで応答する。エージェント$q$は、$q+1$への注文に何らかのノイズを導入することで、$q+1$がより高い在庫を維持するようにし、その結果$q$からの注文がより処理されやすくなるようにすることができる。
4) このゲームの感度の多くは、在庫保持に対して欠品に課される高い罰則によるものである(バックログとなった注文1ケース・1日あたり4ドル、在庫保持1ケース・1日あたり1ドルであったことを思い出してほしい)。欠品コストを4ドルから1ドルに、さらに0.5ドルに変更してみてほしい。
何を学んだか
- 1950年代に考案された「ビールゲーム」と呼ばれる単純なマルチエージェント問題について説明する。この問題をモデル化するために、各エージェントの知識と、エージェント間の情報伝達を捉える追加の記法を導入する。これは一連の2エージェント新聞売り子問題と考えることができ、超過在庫が次の時間ステップに持ち越される点、および未充足の需要も同様に持ち越される点がひねりとなっている。
- 読者には、著者がプリンストン大学で開発した、古典的なビールゲームの簡素化版を参照するよう案内する。
- 各エージェントが何を知っているかを捉える記法を導入し、あるエージェントによる別のエージェントが知る情報の推定も含める。
- あるエージェントの決定が、別のエージェントにとっての外生情報として現れるようにモデル化する。
- まず、エージェントが発注すべき量に関する基本的な情報に適応する、単純なPFA方策から始める。
- 次に、2人の心理学者が提案した有名な「アンカーと調整」方策を要約する。これはPFAの別の形態である。
- 最後に、あるエージェント$q$が他のエージェントの行動をシミュレートすることに依存する直接先読み方策の概略を示す。
演習問題
復習問題
- 中間エージェントの状態とは何か。
- 各エージェントが下せる決定は何か。
- 各中間エージェントにとっての外生情報の源は何か。
- このゲームの挙動に影響を与える不確実性の源は何か。
- 「アンカーと調整」方策とはどのような意味か、言葉で説明せよ。この方策の設計者は、これが良い方策になると期待していたのだろうか。
問題解決演習
- 上記で提案された単純なルールに対する批評を述べよ。
- 市場からの需要が、まれにではあるが、はるかに高いあるいは低い水準へと変化することがあると想像せよ。こうした変化が起こりうることを理解した方策を設計せよ。これは、サプライチェーンの残りの部分もまた適応しなければならないことを意味する。あなたの方策は、避けられない製品不足の期間にどのように対応するか。
- 上記の先読み方策の節では、先読み方策の大まかな概略が示されている。詳細を書き出し、実装の詳細を完成させよ。