Sequential Decision Analytics and Modeling 第2版
Back to SDA site →

第1章:逐次決定問題のモデル化

コンピュータ上で物理的な問題(特に逐次決定問題)を解決するプロセスには、図 1.1 に示すように数理モデルの構築が必要である。何十年もの間、研究コミュニティは、すべてのデータが事前に判明している決定問題(決定論的最適化と呼ばれる)に対して標準的な数学的枠組みを使用してきた。決定論的最適化問題の単純なバージョンである線形計画問題は、次のように書くことができる。

\[\begin{align} \min_x c^T x, \label{eq:linearprogram1} \end{align}\]

ここで$x$は、通常次のように書かれる一連の制約条件を満たさなければならない要素のベクトルである。

\[\begin{align} A x & = b, \label{eq:linearprogram2}\\ x & \geq 0. \label{eq:linearprogram3} \end{align}\]
現実世界とコンピュータの間の橋渡しは数理モデルである。
図 1.1. 現実世界とコンピュータの間の橋渡しは数理モデルである。

式$\eqref{eq:linearprogram1}$–$\eqref{eq:linearprogram3}$を理解する必要は必ずしもない(それには線形代数の基本的な素養が必要となる)が、毎年何千人もの学生がこの表記法を学び、また幅広い物理的問題をこの表記法に変換する方法を学ぶ課程を卒業している。そして、この形式で表現された問題を解に変換するソフトウェアパッケージが存在する。最も重要な点は、この表記法という言語が世界中で通用しているということである。統計モデリング/機械学習についても同じことが言え、こちらは今日、式$\eqref{eq:linearprogram1}$–$\eqref{eq:linearprogram3}$を理解する人々よりもはるかに大きなコミュニティとなっている。

しかし、逐次決定問題については同じことは言えない。この問題クラスは、少なくとも15の異なるコミュニティによって、8つの根本的に異なる表記スタイルを用いて研究されており、しばしば高度な訓練を要する数学が使われている。本書では、実例を通して教えるスタイルを用い、私たちが逐次決定問題と呼ぶ、驚くほど豊かな問題クラスをどのようにモデル化するかを示す。比較的単純な問題に焦点を当てるが、私たちの枠組みはあらゆる逐次決定問題をモデル化するために使うことができる。さらに、結果として得られるモデルは直接ソフトウェアに変換することができる。

本書の分析的基盤は、方法論を中心とした大学院レベルのテキストである『Reinforcement Learning and Stochastic Optimization: A unified framework for sequential decisions』(RLSO)に含まれている。より深い内容に興味を持つ読者のために、時折この本の内容を参照することがあり、技術的な素養のある読者にはRLSOを参考文献として利用することを勧める。しかし、それは必須ではない。本書は、たとえコードを一行も書くことがないとしても、読者が逐次決定問題について明確かつ精密に考えられるようにする一連の例という形で、文脈的背景を提供するように設計されている。

本書は、確率・統計の講義を受講したことのある学部生または修士課程の学生を対象としている(線形計画法の知識は必要ないが、線形計画問題を解く必要がある例が一つある)。全ての章は特定の例を中心に構成されているが、例外として第1章はモデリング枠組み全体の概観を提供し、第7章では最初の6つの章を用いていくつかの重要な原則を説明するために立ち止まって考察する。

この説明には、確率・統計の最初の講座で期待される以上の数学は必要ないはずである。とはいえ、本書は、コンピュータソフトウェアの基礎となり得るほど精密な表記法を用いて逐次決定問題を記述する方法を示すことを中心に据えている。

ほとんどの章にはPythonモジュールが付属しており、これらのモジュールは本書全体を貫くモデリング枠組みに基づいて書かれている。同時に、どのように解かれるかにかかわらず、逐次決定問題をシミュレートするあらゆるソフトウェアパッケージは、私たちが用いるモデリング枠組みに直接変換することができる。このため、読者にはコンピュータプログラム中の変数として、あらゆる表記法を捉えることを勧める。

はじめに

逐次決定問題は常に次のように書くことができる。

\[decision,\ information, \ decision, \ information, \ decision, \ldots\]

決定を下すたびに、私たちはコストを負担するか、貢献または報酬を受け取る(性能を測定する方法は数多くある)。決定は、私たちが方策と呼ぶことになる方法によって下される。本書全体を通じて中心的な焦点となる大きな目標は、まだ到着していない情報の不確実性が存在する中で、時間をかけてうまく機能する効果的な方策を設計することである。

逐次決定問題はどこにでも存在し、事実上あらゆる人間の過程において生じる。表 1.1 は、生じうる決定のいくつかの例とともに、分野の一覧を示している。これらの分野のほとんどは、資産をいつ売却するか、あるいは新しいウェブデザインを採用するかといったことから、最適な薬、材料、または施設を設計するために何を選ぶか、さらには複雑なサプライチェーンの管理やトラック車両群のディスパッチに至るまで、複雑さの異なる多種多様な決定を持っているだろう。

分野問い
ビジネスどのような特徴を持つどの製品を販売すべきか?どの供給元を使うべきか?どのような価格を設定すべきか?
経済学経済状況を踏まえて、連邦準備制度はどの金利を設定すべきか?どの水準の市場流動性を提供すべきか?
金融ポートフォリオはどの株式に投資すべきか?トレーダーは潜在的な下落リスクに対して契約をどのようにヘッジすべきか?
インターネット広告クリックを最大化するためにどの広告を表示すべきか?どの映画が最も注目を集めるか?大量通知はいつ、どのように送るべきか?
工学エアロゾル缶から電気自動車、橋梁から輸送システム、トランジスタからコンピュータに至るまで、装置をどう設計すべきか?
公衆衛生疾病の進行を推定するために、どのように検査を実施すべきか?ワクチンをどのように配分すべきか?どの人口集団を対象とすべきか?
医学研究最も多くのがん細胞を殺す薬を生成する分子構成は何か?単層カーボンナノチューブの生成に必要な工程は何か?
サプライチェーン管理中国からの在庫の発注はいつ行うべきか?どのサプライヤーを使うべきか?
貨物輸送どのドライバーが荷物を運ぶべきか?トラック輸送会社はどの荷物の輸送を約束すべきか?ドライバーはどこに常駐させるべきか?
情報収集森林火災や侵入種に関する情報を収集するために、どこにドローンを送るべきか?病気に対抗するためにどの薬を試験すべきか?
マルチエージェントシステム寡占市場にある大企業は、競合他社の反応を予測しながら、契約にどう入札すべきか?
アルゴリズム探索アルゴリズムにおいてどのステップサイズ規則を用いるべきか?高価な関数を評価する次の点をどう決定するか?

表 1.1. 異なる分野の例と、それぞれの分野において下す必要のある決定。

あらゆる種類の決定を列挙することよりもさらに難しいのは、多くの応用分野で生じる不確実性の様々な源を特定することである。人間の行動、市場、物理的過程、輸送ネットワーク、エネルギーシステム、そして健康分野に生じる幅広い不確実性は、不確実性の源の多様性を示唆している。

本書が執筆されている現在、人類はCOVID-19の変異株の蔓延と格闘している。このパンデミックへの対処は「気が遠くなるほど複雑」(USA Today, 2020年9月8日)と評されているが、これは実際には問題を構造的に考えることができなかったことの副産物にすぎない。私たちは、問題を実践的な解決策につながる一連の基本的な構成要素に分解する方法を読者に示す。

私たちのアプローチは、性能指標、決定、不確実性の源といった中核となる要素を特定することから始まり、それが問題の数理モデルの作成につながる。次の段階は通常(必ずしもそうとは限らないが)、モデルをコンピュータ上に実装することであるが、コンピュータモデルの構築というプロセスが、様々な理由により非現実的な問題も数多く存在するだろう。このため、私たちは現場でアイデアを試験し評価しなければならない問題も検討する。性能を改善するためには、まず時間をかけて良い決定を下す方法を学ぶ必要がある(これがシステムを制御する方法である)。それから、システムの設計へと目を向ける。

現時点では、学術コミュニティは逐次決定問題に対する標準的なモデリング過程を採用していない。これは、1950年代以来厳格な枠組みに従ってきた静的な決定論的最適化問題の領域とは著しい対照をなしている(式$\eqref{eq:linearprogram1}$–$\eqref{eq:linearprogram3}$はこの枠組みの一例を表している)。私たちのモデリング過程はRLSOにおける説明に基づいているが、この本はコンピュータ上でのモデルの開発と実装に主に関心を持つ技術的な読者層を対象としている。

対照的に、本書は逐次決定問題について考える方法を学ぶことに何よりもまず関心を持つ、より広い読者層を対象としている。本書は実例を通して教えるスタイルを用い、最終的にコンピュータモデルを作成しなくても有用となりうると私たちが考えるモデリング過程を伝えることに焦点を当てている。私たちのアプローチの中心にあるのは、平易な英語で問題を記述する際の曖昧さを取り除く数理モデルの作成である。コンピュータモデルの開発に関心がある読者にとって、表記法はソフトウェアを書くための足がかりとなる。しかし、私たちは主に、読者がコードを一行も書くつもりがない場合であっても、問題を記述する際に明確さを生み出すために数学的表記法を使用する。

私たちの説明は次のように進む:

応用例を扱う各章(第2章から第6章、および第8章から第14章)はすべて同じ構成に従っている。これらはどのような順序でも取り扱うことができるが、第2章から第6章の応用例はより単純であり、4つの方策クラスそれぞれを説明するために選ばれたものであることに留意されたい。特定のモデリングの話題(状態変数、不確実性のモデリング、あるいは方策の様々な例を見ることなど)に関心のある読者は、章を拾い読みし、興味のある話題に直接飛んでもよい。

各章は、次の3つの区分に分けられた一連の演習問題で締めくくられる。

では、決定とは何か

ソクラテス、アリストテレス、プラトンの時代にまで遡る2,000年以上にわたって、人々がどのように決定を下すかについての研究を記録した長い歴史があります。そして1950年代以降を中心に(それ以前にもいくつかの重要な研究がありますが)、最適な決定を下すための数学に関する膨大な文献があり、何千もの論文や書籍から構成されています。この文献が見落としているように思われるのは、次の基本的な問いです。

決定とは何か?

まず、決定とは、私たちが制御しようとしている何らかの「システム」の挙動に影響を与える情報の一形態であるという観察から始めます。このシステムには、私たちのシステムがどれだけうまく機能しているかを定量化する1つ以上の指標が暗黙のうちに含まれています。そして、私たちのシステムの何らかの側面を制御するエージェントを特定する必要があります。

この基盤を踏まえると、3つのクラスの情報を特定するのが役立ちます。

  1. 知識の状態 – これは、私たちのシステムの性能に関連する、現時点で私たちが持っている情報です。
  2. 私たちが制御する、知識の状態を変える情報(これには、私たちのシステムを制御するエージェントを特定する必要があります)。
  3. 私たちのシステムに到着し、私たちの制御を超えて知識の状態を変える情報。

クラス2の情報を決定と呼びます。これは、Bridging Decision Problems, Volume I: Framing the Problemに基づく決定の形式的な定義を示唆しています。

定義(形式的): 決定とは、内生的に制御可能な情報クラスである。

非形式的な定義は次のようになるかもしれません。

定義(非形式的): 決定とは、私たちが制御するものである。

これらの定義は出発点を提供しますが、そこから多くを学ぶことはできません。もっと興味深いのは、決定の具体例を特定することであり、次にそれを行います。

決定の種類

私たちは、状況と最良の決定を判断するために使用しうるツールに基づいて、10種類の決定を特定しました。それらは以下の通りです。

1) 物理的および財務的決定 – これらの決定は、人材、設備、施設、製品、水、エネルギーなどの物理的資源、および現金や投資などの財務的資源の管理において生じます。決定には、資源の購入、販売、変更が含まれ、変更とは、ある場所から別の場所への移動、設備の修理、人材の訓練、ケーキを作るための材料の組み合わせなどを意味する場合があります。

2) 複雑な/戦略的決定 – これらは、システムに複数の変更(資源、パラメータ、信念の変更)をもたらす可能性のある決定であり、通常は大きな不確実性の源を伴います。これらの決定は通常一度だけ評価されますが、待って後で決定を下すという選択肢が存在する場合もあります。

3) 情報取得/観察決定 – これには、実験室での実験、フィールドテスト、コンピュータシミュレーションの実行などの決定が含まれます。市場調査の実施、専門家の雇用、大規模言語モデルへの質問なども含まれる場合があります。

4) 情報伝達/共有決定 – これらは2つの形式で現れます。

5) 性能指標と目的 – これらは、収益の最大化、コストの最小化、罹患率の最小化、得票数の最大化など、私たちが達成しようとしていることを定量化するという重要な選択を表します。

6) 関数の選択 – これらは、決定を行う方法(方策)、最適化モデルの定式化、性能指標の選択、予測または推定の方法、遷移関数の設計(病気の広がり方など)である場合があります。

7) パラメータの設定 – システムの性能に影響を与えるパラメータが多数存在することがよくあります。これらは価格、統計モデルの係数、製造プロセスで使用される温度である可能性があります。性能指標に置かれる重みや、性能目標である場合もあります。

8) 推定または識別 – 人物を特定したり、需要を予測したり、病名を特定したりする必要があるかもしれません。

9) 特徴と挙動 – 製品をどのように設計するか、ソフトウェアパッケージにどのような機能を持たせるか、顧客にどのようなサービスを提供するか、あるいは学生の専攻がどのようなスキルを身につけて卒業するかを決定します。

10) 何を決定するかを決定する – この最後の決定に対して形式的な分析を用いることは一般的にありませんが、自分たちが決定を行っていることを認識し、それをデータ分析とモデリングを用いて形式的に扱いたいかどうかを認識することが重要です。

決定の特定には、その決定がシステムの性能にどのように影響するかを理解することが暗黙のうちに含まれています。物理的資源(タイプ1)の移動にはコストが伴いますが、需要を満たすことは収益をもたらします。決定は1つ以上の性能指標に即座に影響を与える場合があります(これは資源管理でよく起こります)が、多くの場合、決定は時間をかけて評価する必要があり、決定を下す時点ではまだ分かっていない情報に依存します。このため、私たちはしばしば決定そのものではなく、決定を下す方法(すなわち手法)を評価しているのです。

問題の枠組み化

決定問題に取り組む際の第一歩は、次の3つの質問に答えることです。

これらの質問への答えは、あらゆる決定問題にとって根本的なものであることに注意してください。本書では、問題を解決するためにすでに設計したモデルの文脈でこれらの質問に答えるため、これらの質問はかなり単純に見えるでしょう。実際の応用では、性能指標、決定、不確実性のリストは非常に長くなることがあります。

問題の枠組み化がどれほど豊かなものになりうるかのヒントとして、まさにこのテーマに特化したモノグラフFraming the Problemを読者にお勧めします。このモノグラフには、これらの各質問に専念する章全体があり、十数個の異なる応用例を用いて説明されています。

枠組み化プロセスの目標は、まず性能指標から始めて、何が重要かを特定することです。単純な在庫問題でさえ、20以上の性能指標、30種類以上の決定、30種類以上の不確実性で記述できます。これらを一覧にしたスプレッドシートはtinyurl.com/PowellInventoryDecisionsにあります。これは、私たちが実際にこの複雑さをすべて備えたモデルを構築するということを意味するわけではありません。このため、本書では相互作用行列と呼ばれる仕掛けを導入しており、ドメインの専門家が指標に優先順位を付け、その後、判断を用いて最も重要な指標に最も大きな影響を与える決定と不確実性を特定します。

本書は、問題をすでに少数の指標、決定、不確実性に絞り込んだ状態であることを前提とし、これらを使って数学モデルの開発に焦点を当てます。

モデリングプロセス

モデリングは芸術ですが、コンピュータに乗せて解くことができる明確に定義された問題を得ることを保証する数学的枠組みに導かれた芸術です。これは、乱雑で不明確に定義された現実世界の問題から、たとえ最終目標がコンピュータに乗せることでなくても、コンピュータが理解できる明快さを持つものへと橋を架けることと見なすことができます。

歴史的に、決定を下そうとするモデリングの取り組みが行われる場合、人々はよく知られた決定論的最適化の枠組みに頼っていました。これは多くの場合、式$\eqref{eq:linearprogram1}$–$\eqref{eq:linearprogram3}$で与えられるモデルのように見え、決定変数$x$、目的関数$cx$、そして$\eqref{eq:linearprogram2}$–$\eqref{eq:linearprogram3}$で与えられる制約から構成されます。

この古典的なモデリング枠組みの問題点は、それが省いているものにあります。

数学モデルは、何よりもまず、問題についてどのように考えるかを教えてくれる道筋を提供すべきです。式$\eqref{eq:linearprogram1}$–$\eqref{eq:linearprogram3}$の形式に従う古典的な決定論的最適化モデルは、私たちの問題が時間とともに進展することに関連するあらゆる事柄を完全に無視しています。

本書は、ユニバーサルモデリング枠組みと呼ばれるモデリングアプローチを中心に完全に設計されています。一言で言えば、これは制御可能なシステムのあらゆる側面を表現することを目指しています。私たちのデフォルトのモデルは、新しい情報が到着するにつれて、システムが時間とともに進展すると仮定します。

この節では、ユニバーサルモデリング枠組みの非常にコンパクトなバージョンを提供します。次に、最初は非常に単純な在庫問題を使ってこの枠組みを説明し、その後、いくつかの控えめな拡張を導入します。これらの例を提示した後、ユニバーサルモデリング枠組みのより詳細な提示に戻ります。

動的モデルのコンパクトな提示

まず、以下の系列を使ってあらゆる逐次決定問題をモデル化できることを観察することから始めます。

\[(S_0,x_0,W_1,S_1,x_1,W_2, \ldots, S_t, x_t, W_{t+1}, \ldots, S_T),\]

ここで:

決定 $x_t$ は、方策 と呼ぶ何らかの方法によって決定され、これを $X^\pi(S_t)$ と表記する。表記 $\pi$ は、関数の構造に関する情報を運んでおり、これを潜在的関数の集合 $\Fcal$ 中の $f$ で表し、また関数の構造によって定義される任意の調整可能パラメータ $\theta\in\Theta^f$ についても情報を運んでいる。例えば、在庫が $\theta^{min}$ を下回ったら $\theta^{order}$ 単位を発注する、という在庫方策があり得るが、これは調整可能パラメータが $\theta = (\theta^{order}, \theta^{min})$ であることを意味する。関数の構造は、関数 $f$ の一例となる。

我々は、状態 $S_t$、決定 $x_t$、および外生情報 $W_{t+1}$ を入力として受け取り、更新後の状態 $S_{t+1}$ を与える 遷移関数 を持つと仮定する。遷移関数とは、状態変数 $S_t$ の各要素を更新する一連の方程式であり、要素はたった1つの場合もあれば、数万個(あるいはさらに多く)ある場合もある。

状態 $S_t$ に含まれる情報のもとで決定 $x_t=X^\pi(S_t)$ を行うと、貢献(あるいはコスト)$C(S_t,x_t)$ が発生する。我々の目標は、貢献 $C(S_t,x_t)$ に依存する何らかの目的を最大化する方策を見つけることであり、ここで $x_t=X^\pi(S_t)$ である。より複雑な設定では、$C(S_t,x_t)$ は実際には性能指標の集合になり得るが、その場合はどの決定 $x_t$ を選ぶかを特定するために、それらを何らかの方法で組み合わせる必要がある。

これは逐次決定問題の非常に簡潔な記述である。次に、モデリングの過程で従うべき一連のステップを説明する。

モデリング過程における各ステップ

モデリング過程全体は(我々の目的のために)7つのステップに分けることができる。これらのステップ(以下では「ステップ0」と表記)に先立ち、読者を導くためにアプリケーションの技術的な複雑さを簡潔にまとめる。

ステップ0. 章の要約 – 各章の冒頭で、その章が扱う内容の要約を示し、場合によっては他の章の内容との関連性についても述べる。この要約では、不確実性のモデリングに用いるアプローチと、使用する方策が示される。

ステップ1. ナラティブ – これは、問題についての平易な英語による記述である。ナラティブは、数理モデルを作成するために必要な情報のすべてを提供するものではなく、むしろ、モデラーが記法に迷い込むことなく全体像を把握できるようにするための最初のステップである。

ステップ2. 問題の枠組み(フレーミング) – これは以下の3つの問いに答えることから成る:

ステップ3. 問題の中核要素の特定。特に、逐次決定問題の3つの次元に重点を置く。これらの要素は数学を用いずに記述される:

これら3つの問いに答える過程を 問題の枠組み化(フレーミング) と呼ぶ。

不確実性の種類説明
1) 観測誤差症状を持つ人々の観察;症状を持つ人々をCOVID感染と分類する際の誤り
2) 外生的不確実性新規感染例、死亡例の報告;ICUの利用可能性;ワクチンの実際の生産量
3) 予後不確実性入院数;ワクチンの将来の性能;ワクチンに対する集団の反応
4) 推測不確実性感染率の推定値;ワクチンの有効性の推定値
5) 実験的不確実性臨床試験における薬剤の性能;ワクチン接種者数
6) モデル不確実性疾病感染率;感染の地理的拡大
7) 遷移不確実性ワクチン在庫への追加・取り出し
8) 制御不確実性どの人口集団がワクチン接種を受けたか;ワクチンの配分
9) 実装不確実性ワクチン接種の失敗
10) 通信誤差現場からの報告誤り;接種時期の通知漏れ
11) 目標不確実性誰にワクチンを接種すべきかについての意見の不一致
12) 環境不確実性ワクチンが承認されるかどうか、いつ承認されるか;異なる州・国へのワクチン配分

表 1.2. COVIDパンデミックへのワクチン対応において生じるさまざまな種類の不確実性の例示。

ステップ4. 数理モデル – ここでは、ステップ2で得られた最初の3つの要素を基盤としつつ、あらゆる逐次決定問題に当てはまる5つの次元から構成される数理モデルを構築する必要がある:

\[S_{t+1} = S^M(S_t,x_t,W_{t+1}),\]

ここで $S^M(\cdot)$ は状態(あるいはシステム)遷移モデルとして知られている(それゆえ上付き文字に $M$ が付く)。遷移関数は、決定 $x_t$ と外生情報 $W_{t+1}$ が与えられたときに、状態変数のすべての要素がどのように変化するかを記述する。複雑な問題では、遷移関数の実装に数千行のコードが必要になることもある。

\[\begin{align} \max_{\pi=(f,\theta)} F^\pi(S_0) = \E \left\{\sum_{t=0}^T C(S_t,X^\pi(S_t\vert \theta))\vert S_0\right\},\label{eq:baseobjectivefunction} \end{align}\]

ここで「$\E$」は 期待値演算子 と呼ばれ、これは、初期状態 $S_0$ に含まれる不確実な情報や、外生情報プロセス $W_1, \ldots, W_T$ など、ランダムなものすべてにわたって平均を取ることを意味する。期待値演算子を書くことは標準的な習慣であるが、実際にはそれを計算することは決してできない。後に、一連のシミュレーションを実行して平均を取る、あるいは現場でプロセスを観測することによって、これを近似する方法を示す。

式 $\eqref{eq:baseobjectivefunction}$ において期待値演算子「$\E$」を解釈する際には注意が必要である。この演算子が文字通り意味するのは「不確実であるものすべてにわたって平均を取る」ということである。最も明白な不確実性の要素は、外生情報プロセス $W_1, W_2, \ldots, W_t, \ldots, W_T$ である。

実際の問題(ナラティブによって導かれる)から数理モデルの各要素への移行は、おそらく最も難しいステップであり、しばしば技術的でない情報源から情報を収集することを伴う。

我々は、決定をどのように行うか、つまり方策 $X^\pi(S_t)$ によって表されるものを一切指定せずに、モデル全体を提示したことに注意してほしい。我々はこれを「まずモデル化し、それから解く」と呼び、これは逐次決定問題を扱う膨大な既存文献からの大きな逸脱を表している。逐次決定問題にこのように取り組むことがいかに重要であるかは、伝えるのが難しいほどである。

ステップ5. 不確実性モデル – これは、異なる種類の不確実性をどのようにモデル化するかである。我々のモデルに不確実性を導入する方法には2つある:

  1. 初期状態 $S_0$ を通じて、これは、患者が薬にどのように反応するか、あるいは市場が価格にどのように反応するかといった不確実なパラメータに対する確率分布を指定し得る。
  2. 外生情報プロセス $W_1, \ldots, W_T$ を通じて。

外生情報プロセスをモデル化する方法は3つある:

ステップ6. 方策の設計 – 方策は関数であるため、最善の関数を探索する必要がある。(そう、方策は最善の決定を選ぶための関数であるが、方策を選ぶこと自体も1つの決定なのである!)これを行うために、方策設計のための2つの中核戦略を特定する:

これらの方策をどのように特定するかについて、もっと明確に説明していく。後の節では、あらゆる意思決定の方法を含む(これらはメタクラスである)4つの方策クラスについて述べる。

ステップ7. 方策の評価 – 最良の方策を見つけるということは、方策を評価してどれが最良かを判断することを意味する。方策を評価する方法は2つある。

シミュレータは複雑で構築が難しい場合があり、それでもなおモデル化による近似の影響を受ける。このため、実務で遭遇するほとんどの実際的な問題は、現場でのテストを伴う傾向があり、これは遅く(1日をシミュレートするのに1日かかる)、実験結果とともに生きていく必要がある。

数理モデルに親しむ唯一の方法は、身近な例を使ってそれが説明されるのを見ることである。私たちは皆、日常生活で出会う普遍的な問題、すなわち在庫管理から始めることにする。

いくつかの在庫問題

古典的な在庫問題の2つのバリエーションを使って、私たちのモデリングフレームワークを説明していく。この問題は、逐次決定問題を解くための特定の手法を説明するための応用例として広く使われている。まず、私たちのモデリングフレームワークの中核要素を伝えるシンプルな在庫例から始めるが、これにより本書の残りの部分で探求していく多くの複雑さを無視することができる。

その後、いくつかのモデリング原則を説明できる、少しだけ複雑な在庫問題へと移行する。本書を通じて、問題の基本バージョンから始め、実際の応用で生じ得る複雑さの種類を示唆する拡張を導入するという考え方も使っていく。

シンプルな在庫問題

私たちが店を訪れるたびに経験する最も馴染み深い逐次決定問題の一つが在庫問題である。上記で紹介したモデリングプロセスの6つのステップを説明するために、この問題のシンプルなバージョンを使っていく。

ステップ1: 物語 – あるピザレストランは、食品卸売業者にソーセージを何ポンド注文するかを決める必要がある。レストランは日 $t$ の終わりに決定を下さなければならず、その注文は翌朝到着し、翌日の注文に応じるために使われる。ソーセージが余った場合、翌日まで保持することができる。ソーセージのコストと、翌日に販売される価格は事前にわかっているが、需要はわからない。

ステップ2: 問題の中核要素は次の通りである。

ステップ3: 数理モデル – これは5つの要素から構成される。

1) 状態変数 $S_t$ – 初期状態変数 $S_0$ と、$t > 0$ に対する動的状態変数 $S_t$ を区別する。初期状態変数 $S_0$ は、固定パラメータと、時間とともに変化する変数の初期値から構成され、次のようになる。

\[S_0 = (R^{inv}_0, (p, c), (\Dbar, \sigmabar^D)).\]

初期状態を3種類の変数に分けた。

動的状態変数 $S_t$ は私たちの在庫であり、これを $R^{inv}_t$ と呼ぶことにする。今のところ、これが動的状態変数の唯一の要素であるため、

\[S_t = R^{inv}_t.\]

後で状態変数に追加の要素を導入する。

2) 決定変数 $x_t$ は、時刻 $t$ にどれだけ注文するかであり、(今のところ)それはすぐに到着すると仮定する。私たちは、後で設計する方策 $X^\pi(S_t)$ を用いて決定を下す。

3) 外生情報 は製品に対するランダムな需要であり、これを $\Dhat_{t+1}$ と表すことにする。したがって $W_{t+1} = \Dhat_{t+1}$ となる。

4) 遷移関数 は在庫 $R_t$ が時間とともにどのように変化するかを捉えたものであり、次式で与えられる。

\[\begin{align} R^{inv}_{t+1} = \max\{0, R^{inv}_t+x_t-\Dhat_{t+1}\}. \label{eq:inventoryexampleequation} \end{align}\]

5) 目的関数。 私たちの在庫問題では、製品 $x_t$ の購入コストと、需要 $\Dhat_{t+1}$ を満たすことによる収益を含めて貢献を計算するのが最も自然であり、これは単一期間の貢献関数が次のように書けることを意味する。

\[C(S_t,x_t,\Dhat_{t+1}) = -cx_t + p \min\{R^{inv}_t+x_t, \Dhat_{t+1}\},\]

ここで $x_t = X^\pi(S_t)$ である。需要の系列 $\Dhat_1, \ldots, \Dhat_T$ が与えられたとき、方策 $\Fhat^\pi$ の価値は次のようになる。

\[\Fhat^\pi(S_0) = \sum_{t=0}^T C(S_t,X^\pi(S_t),\Dhat_{t+1}).\]

私たちの利益 $\Fhat^\pi(S_0)$ は、ランダムな需要の特定の系列 $\Dhat_1, \ldots, \Dhat_T$ に依存するためランダムである。最後に、これらのランダムな需要について期待値を取ることで平均化する。

\[\begin{align} F^\pi(S_0) = \E \left\{\sum_{t=0}^T C(S_t,X^\pi(S_t),\Dhat_{t+1})\vert S_0\right\}. \label{eq:inventoryobjective} \end{align}\]

ここで、初期状態 $S_0$ による条件付けは、「最初にわかっていることを前提として期待値を取る」と読むことができる。$S_0$ による条件付けは、期待値を取るたびに暗黙のうちに行われるものであり、その結果として多くの著者はこれを省略している。しかし、私たちは $S_0$ による条件付けを含めることにする。これは、初期入力(信念を含む)が変化すると、方策の性能に影響を与える可能性があることを明確にするためである。

ステップ4. 不確実性モデル – 不確実性をモデル化する最もシンプルな方法は、単に過去のデータを使うことである。私たちが遭遇するかもしれない問題は、ソーセージが売り切れてしまった場合、その日の需要の全体を観測できないかもしれないということである。この失われた需要を捉えることができるのであれば、これは妥当なアプローチである。

代替案として、数理モデルを構築することもできる。需要は、ある平均 $\Dbar$ と標準偏差 $\sigmabar^D$ を持つ正規分布に従うと仮定するかもしれない。これら両方が既知であると仮定すれば、需要を次のように書くことができる。

\[\Dhat_{t+1} \sim N(\Dbar,(\sigmabar^D)^2),\]

そして、正規分布からサンプリングできるパッケージ(例えば、Excel では Norm.inv$(Rand(),\Dbar,\sigmabar)$ と呼ばれる)を利用して、平均 $\Dbar$、標準偏差 $\sigmabar$ のランダムな観測値を生成することができる。

このモデルを使って、需要の集合 $(\Dhat_1, \Dhat_2, \ldots, \Dhat_T)$ を作成できる。それから、これを $N$ 回繰り返すことで、$T$ 個の需要からなる $N$ 個の系列を作成し、方策の価値を推定するために必要な、$n=1, \ldots, N$ に対する系列 $(\Dhat^n_1, \Dhat^n_2, \ldots, \Dhat^n_T)$ が得られる(これは以下のステップ6で使用する)。

ステップ5. 方策の設計 – 次に、注文量を決定する方法を設計する必要がある。在庫問題でよく用いられる戦略は「オーダーアップトゥ」方策として知られており、次のようになる。

\[\begin{align} X^\pi(S_t\vert \theta) = \begin{cases} \theta^{max} - R_t & \text{if } R_t < \theta^{min}, \\ 0 & \text{otherwise,}\end{cases} \label{eq:introorderupto} \end{align}\]

ここで $\theta = (\theta^{min},\theta^{max})$ は調整が必要なパラメータの集合である。これが「オーダーアップトゥ」と呼ばれるのは、在庫を上限 $\theta^{max}$ まで「引き上げる」ように注文するからである。

ステップ6. 方策の評価 – 使用できる戦略にはさまざまなものがある。実際には、式 $\eqref{eq:inventoryobjective}$ の目的関数における期待値を計算することはできないため、需要のサンプルの系列を取る。$t=1, \ldots, T$ にわたる需要の1つのサンプルを $\Dhat^n_1, \ldots, \Dhat^n_T$ とし、これらを $N$ 個生成できると仮定する。これで、$n=1, \ldots, N$ に対するサンプルを平均化することで、方策 $X^\pi(S_t)$ による期待利益を推定でき、これは次式を用いて計算される。

\[\Fbar^\pi(\theta\vert S_0) = \frac{1}{N} \sum_{n=1}^N \sum_{t=0}^T C(S_t,X^\pi(S_t\vert \theta),\Dhat^n_{t+1}).\]

平たく言えば、需要のシミュレート(または過去から観測)されたサンプル $\Dhat^n_1, \ldots, \Dhat^n_T$ を使って方策 $X^\pi(S_t\vert \theta)$ を $N$ 回シミュレートし、その性能を平均化して $\Fbar^\pi(\theta\vert S_0)$ を得ているのである。次に、$\theta$ の最良値を見つけるという問題に直面する。シンプルな戦略としては、$K$ 個の可能な値 $\theta_1, \ldots, \theta_K$ を生成し、それぞれをシミュレートして各 $k$ に対する $\Fbar^\pi(\theta_k\vert S_0)$ を求め、最も良い性能を示す $\theta_k$ の値を選ぶというものである。これは最適な戦略ではないが、シンプルで実用的な出発点を提供する。

少し複雑な問題

上記のシンプルな在庫問題は、動的計画法として知られる逐次決定問題を解くための特定の手法を実演するための古典的な設定であり、これは離散的であり、かつ、あまり多くの取り得る値を持たないシンプルな状態変数を持つことに依存している。私たちの少し複雑な在庫問題では、逐次決定問題を解くためのある人気の手法にとっては深刻な複雑化を意味するが、私たちが選んだ方策には影響を与えない、3つの異なる種類の状態変数を実演していく。

ステップ1: 物語 – 再び、ソーセージを注文しなければならないピザレストランがあるが、今回はソーセージの支払い価格が日によって変動することを許す。ある日の価格は前日の価格とは独立であると仮定する。それから、明日のソーセージの需要はランダムであるものの、明日の需要の予測が与えられると仮定する。この予測は完璧ではないが、予測がないよりはましである。それ以外は、私たちのより複雑な問題に関するすべては以前と同じである。

ステップ2: 中核要素 – 次の通りである。

ステップ3: 数理モデル – 依然として同じ5つの要素を持つが、今回は問題が少し豊かになっている。

1) 状態変数を構成するには、モデルの3つの異なる部分、すなわち(1)目的関数、(2)(制約を含む)意思決定を行うための方策、(3)遷移関数で必要となる情報(具体的には、時間とともに変化する情報)を列挙する必要がある。もちろん、これらの関数はまだ何一つ導入していないため、先を読み進めて、私たちの状態変数がこれらの関数それぞれを計算するために必要なすべての情報を含んでいることを確認する必要がある。これを、必要となる情報の辞書だと考えてほしい。

固定パラメータと、時間とともに変化する量やパラメータの初期値からなる初期状態 $S_0$ から始める。これらは次の通りである。

これは、私たちの初期状態変数が次のようになることを意味する。

\[S_0 = (R_0,c_0, p, f^D_{0,1}, \sigmabar^D_0, \sigmabar^f_0).\]

それから、時間とともに変化し、動的状態変数 $S_t$ を構成する情報を持つ。

我々の動的状態変数は次のように与えられる。

\[S_t = (R^{inv}_t, c_t, f^D_{t,t+1}, \sigmabar^D_t, \sigmabar^f_t).\]

2) 決定変数$x_t$は時刻$t$における発注量であり、(今のところ)即座に到着すると仮定する。我々は後で設計する方策$X^\pi(S_t)$を用いて決定を行う。

3) 外生情報は次のもので構成される。

\[\Dhat_{t+1} = f^D_{t,t+1} + \varepsilon^D_{t+1}.\]

我々の外生情報変数の完全な集合は次のように書くことができる。

\[W_{t+1} = \big(\chat_{t+1}, \varepsilon^f_{t+1}, \varepsilon^D_{t+1}\big).\]

4) 遷移関数 – これは(動的な)状態変数$S_t$のそれぞれが時間とともにどのように推移するかを規定する。我々は次式を用いて在庫を更新する。

\[\begin{align} R^{inv}_{t+1} &= \max\{0, R^{inv}_t + x_t - \Dhat_{t+1}\}. \label{eq:introcomplexinventorytransition1} \end{align}\]

需要は予測需要に予測からの偏差$\varepsilon^D_{t+1}$を加えたものであり、次の式が得られる。

\[\begin{align} \Dhat_{t+1} &= f^D_{t,t+1} + \varepsilon^D_{t+1}. \label{eq:introcomplexinventorytransition2} \end{align}\]

我々は次式を用いて予測が更新されると仮定する。

\[\begin{align} f^D_{t+1,t+2} &= f^D_{t,t+1} + \varepsilon^f_{t+1}. \label{eq:introcomplexinventorytransition3} \end{align}\]

次に、需要と需要予測の分散を適応的に推定する。

\[\begin{align} (\sigmabar^D_{t+1})^2 &= (1-\alpha)(\sigmabar^D_t)^2 + \alpha (f^D_{t,t+1} - \Dhat_{t+1})^2, \label{eq:introcomplexinventorytransition4}\\ (\sigmabar^f_{t+1})^2 &= (1-\alpha)(\sigmabar^f_t)^2 + \alpha (f^D_{t,t+1} - f^D_{t+1,t+2})^2, \label{eq:introcomplexinventorytransition5} \end{align}\]

ここで$0 < \alpha < 1$は平滑化係数である。

最後に、コスト$c_{t+1}$を「観測されたコスト」$\chat_{t+1}$を用いて単純に次のように更新する。

\[\begin{align} c_{t+1} = \chat_{t+1}.\label{eq:introcomplexinventorytransition6} \end{align}\]

式$\eqref{eq:introcomplexinventorytransition6}$は、$\eqref{eq:introcomplexinventorytransition1}$における在庫$R^{inv}_t$のように計算するのではなく、観測される状態変数の一例である。式$\eqref{eq:introcomplexinventorytransition1}$は在庫がどのように更新されるかという物理法則を反映しているため「モデルベース」と呼ばれることがあり、一方式$\eqref{eq:introcomplexinventorytransition6}$はコストの変化を生み出す基礎過程をモデル化しようとしないため「モデルフリー」と呼ばれる。

我々の遷移関数$S_{t+1} = S^M(S_t,x_t,W_{t+1})$は式$\eqref{eq:introcomplexinventorytransition1}$–$\eqref{eq:introcomplexinventorytransition6}$から構成される。

5) 最後に、単一期間の貢献関数は次のように書ける。

\[C(S_t,x_t,\Dhat_{t+1}) = -c_tx_t + p \min\{R_t+x_t, \Dhat_{t+1}\},\]

単純な在庫問題との唯一の違いは、コスト$c$が時間依存$c_t$になっている点である。我々は貢献を$C(S_t,x_t)$として書く慣例から離れ、需要$\Dhat_{t+1}$からの収益を含めることを許す。

我々は目的関数を形式的に次のように述べる。

\[\begin{align} \max_{\pi=(f,\theta)} \E \left\{\sum_{t=0}^T C(S_t,X^\pi(S_t\vert \theta),\Dhat_{t+1})\vert S_0\right\}. \label{eq:introcomplexinventoryobjective} \end{align}\]

最適化$\max_\pi$は、$(f,\theta)$で表されるあらゆる可能な方策を探索することを意味しており、これは文字通り、決定を行うために使用しうるあらゆる異なる関数を探索することを意味する。本書の例は、関数に対してどのように探索を行うかを示すものである。

上で述べたように、添字$\pi$は関数$f\in\Fcal$のタイプと、任意の調整可能なパラメータ$\theta\in\Theta^f$に関する情報を保持していることを思い出してほしい。実際には、関数のタイプ$f\in\Fcal$に対する探索はアドホックになりがちである(知識のある分析者が問題に対して意味のある関数を選択する)一方、$\theta\in\Theta^f$の最良の値を求める探索はコンピュータアルゴリズムが行う。

ステップ4. 不確実性モデル – 我々は、外生的な変化$\varepsilon^D_{t+1}$と$\varepsilon^f_{t+1}$が、平均0、分散$(\sigmabar^D_t)^2$と$(\sigmabar^f_t)^2$の正規分布によって記述されると仮定し、これを次のように表す。

\[\varepsilon^D_t \sim N(0, (\sigmabar^D_t)^2), \quad \varepsilon^f_t \sim N(0, (\sigmabar^f_t)^2).\]

不確実性モデルはかなり複雑になり得るが、これは例示として役立つだろう。

ステップ5. 方策の設計 – 次に、我々の発注を決定する方法を設計しなければならない。単純なモデルのオーダーアップツー方策の代わりに、調整を加えた上で明日の期待需要を満たすのに十分な量を発注するという考え方を提案する。これは次のように書ける。

\[\begin{align} X^\pi(S_t\vert \theta) = \max\{0,f^D_{t,t+1}-R_t\} + \theta. \label{eq:adjustedforecastpolicy} \end{align}\]

もし完全な予測があれば、発注すべき量は$f^D_{t,t+1}$($\Dhat_{t+1}$の予測値)から手元在庫を差し引いたものだけになる。しかし不確実性があるため、在庫切れを避けるためのバッファを持たせるべく、調整項$\theta$を加える。

ステップ6. 方策の評価 – 今回は、系列$W_1, W_2, \ldots, W_T$内のすべての確率変数のサンプルを生成しなければならない。ここでも、系列全体の$N$個のサンプルを生成することで、次式を用いて方策の性能を推定できる。

\[\Fbar^\pi(\theta) = \frac{1}{N} \sum_{n=1}^N \sum_{t=0}^T C(S_t,X^\pi(S_t\vert \theta),\Dhat^n_{t+1}).\]

我々は再び$\theta$の最良の値を見つけるという課題に直面するが、その課題については後で取り上げる。

汎用モデリングフレームワーク

これで、汎用モデリングフレームワーク(UMF)の要素をより詳細に説明する準備が整った。UMFはあらゆる逐次決定問題をモデル化できることに注意されたい。この、かなり広範な主張は、要素が展開されるにつれて明らかになるだろう。というのも、我々は逐次決定問題の一般的な記述に記法を適用しているに過ぎないからである。

UMFの5つの要素

UMFは次の要素から構成される。

  1. 状態変数$S_t$。
  2. 決定変数$x_t$。
  3. 外生情報過程$W_t$。
  4. 状態遷移モデル$S^M(S_t,x_t,W_{t+1})$。
  5. 目的関数。

これらをより詳細に以下で説明する。

状態変数 – 時刻$t$におけるシステムの状態$S_t$は、時刻$t$以降のシステムをモデル化するために必要十分なすべての情報を持つ。より具体的には、この情報は次のもので構成される。

$S_t$には3種類の情報がある。

物理状態$R_t$は現金口座の金額であるかもしれず、一方$I_t$は株式市場や債券市場の現在の状態であるかもしれない。動的なネットワーク上を移動している場合、$R_t$はネットワーク上の我々の位置であり、$I_t$は各リンクの所要時間について我々が知っていることであるかもしれない。経路を計画し、その後計画からの逸脱にペナルティを課したいのであれば、その計画は$I_t$を通じて状態変数に含まれることになる。

状態変数は通常、自明ではない。それらはモデリングの過程で浮かび上がってくるものであり、すぐに書き出せるようなものではない。最初に書いたからといって、状態変数の要素をすべてすぐに列挙できるとは限らない。しかし最終的には、これが時刻$t$以降のシステムをモデル化するために必要なすべての情報を保存する場所となる。

決定変数 – 異なるコミュニティは決定に対して異なる記法を用いる。例えば工学では、(典型的には離散的な)行動には$a_t$、(典型的には連続的な)制御には$u_t$が使われる。我々は、数理計画コミュニティで広く使われている$x_t$をデフォルトとして用いる。

決定変数には様々な種類がある。

決定変数の性質によって決定されるアルゴリズムのクラスが存在することに注意されたい。

我々は、決定が方策によって行われると仮定し、$x_t$を我々の決定として用いる場合、これを$X^\pi(S_t)$と表記するかもしれない。決定$x_t = X^\pi(S_t)$は時刻$t$において実行可能であると仮定し、これは$S_t$に依存しうる何らかの集合(または領域)$\Xcal_t$について$x_t \in \Xcal_t$を意味する。

「$\pi$」に、関数$f\in\Fcal$のタイプ(例えば、特定の説明変数を持つ線形モデル)、および任意の調整可能なパラメータ$\theta \in \Theta^f$に関する情報を持たせることにする。

外生情報 – $W_{t+1}$を、時刻$t+1$に(すなわち$t$と$t+1$の間に)初めて既知になる新しい情報とする。ここで情報の源はシステムの外部にある(そのため「外生的」である)。特定の変数をモデル化する際には、外生情報を示すために「ハット」を用いる。したがって$\Dhat_{t+1}$は$t$と$t+1$の間に生じる需要であるかもしれず、あるいは$\phat_{t+1}$を$t$と$t+1$の間の価格の変化とすることもできる。

外生情報過程は定常であるか非定常であるか、純粋に外生的であるか状態(および場合によっては行動)依存であるかもしれない(もし我々が大量の株式を売却することを決めれば、それが価格を押し下げるかもしれない)。

$\omega$をサンプルパス$W_1, \ldots, W_T$を表すものとする。これは各$W_t$の結果の系列を表す。しばしば我々は、離散的なサンプルの集合$\Omega$を作成し、各サンプルが我々の$W_t$過程の結果の特定の系列を表すものとして、これを$W_1(\omega), \ldots, W_T(\omega)$のように書くことができる。20個のサンプルパスがある場合、$\omega$を1から20までの数として考えることができ、これによりサンプルパスを検索することができる。

遷移関数 – 我々は遷移関数を次のように表す。

\[\begin{align} S_{t+1} = S^M(S_t,x_t,W_{t+1}), \label{eq:transition} \end{align}\]

ここで$S^M(\cdot)$は、状態遷移モデル、システムモデル、プラントモデル、プラント方程式、状態方程式、伝達関数といった名称でも知られている。

式$\eqref{eq:transition}$は、状態$S_t$から状態$S_{t+1}$への式を与える遷移関数の古典的な形式である。式$\eqref{eq:inventoryexampleequation}$は我々の単純な在庫の例における唯一の遷移方程式であったが、式$\eqref{eq:introcomplexinventorytransition1}$–$\eqref{eq:introcomplexinventorytransition6}$は我々のより複雑な例における遷移関数を構成していた。

遷移関数は、次のいずれかの種類の更新を捉えるかもしれない。

遷移関数は既知の方程式の集合であるかもしれないし、人間の行動や大気中のCO2の推移を記述する場合のように未知であるかもしれない。方程式が未知である場合、この問題はしばしば「モデルフリー」または「データ駆動」と記述され、これは物理モデルを用いる代わりに、変数の変化を観測するしかないことを意味する。$c_t$からどのように推移したかを一切知ることなく、コスト$c_{t+1} = \chat_{t+1}$を「観測する」式$\eqref{eq:introcomplexinventorytransition6}$は、モデルフリーの遷移の一例である。

遷移関数は線形、連続的な非線形、あるいはステップ関数であるかもしれない。状態$S_t$が信念状態$B_t$を含む場合、遷移関数は更新式を含まなければならない(これについては本書の後で説明する)。

方策$X^\pi(S_t)$、外生過程$W_{t+1}$、そして遷移関数が与えられれば、我々は状態、決定、情報の系列を次のように書くことができる。

\[(S_0, x_0, W_1, S_1, x_1, W_2, \ldots, x_{T-1}, W_T, S_T).\]

目的関数 – 目的関数を書く方法は数多くある。最も一般的な方法の一つで、我々がデフォルトとして用いるものは、ある計画期間$t=0, \ldots, T$にわたる期待貢献の総和を最大化するものである。

\[\begin{align} \max_{\pi=(f,\theta)} F^\pi(S_0) = \E \left\{\sum_{t=0}^T C_t(S_t,X^\pi_t(S_t\vert \theta))\vert S_0\right\}, \label{eq:objectivecumulativereward} \end{align}\]

ここで

\[\begin{align} S_{t+1} = S^M(S_t,X^\pi_t(S_t),W_{t+1}). \label{eq:basetransition} \end{align}\]

このモデルは、初期状態$S_0$のモデルと、外生過程$W_1, W_2, \ldots$のモデルが揃った時点で完全に規定される。すべての外生情報を次のように書く。

\[\begin{align} (S_0, W_1, W_2, \ldots, W_T). \label{eq:basestochasticmodel} \end{align}\]

式$\eqref{eq:objectivecumulativereward}$、$\eqref{eq:basetransition}$、$\eqref{eq:basestochasticmodel}$は逐次決定問題のモデルを構成する。

以降、簡潔さのために、関数のタイプ$f\in\Fcal$と調整可能なパラメータ$\theta\in\Theta^f$の両方に対する探索を表すために$\max_\pi$を用いることにする。

式$\eqref{eq:objectivecumulativereward}$は期待値$\E$を用いており、これは$W_1, \ldots, W_T$のあらゆる可能な結果にわたって平均を取ることを意味する。これは計算上ほぼ決して実行不可能である。代わりに、$W_1, \ldots, W_T$の系列の単一の結果を表す$\omega$を用い、これを$W_1(\omega), \ldots, W_T(\omega)$のように書くことにする。この系列の可能な結果を$N$個作成できると仮定し、$\omega^n$を$n^{th}$番目の系列をどのように添字付けするかを表すものとする。

$\omega$に従っているとすると、$\eqref{eq:basetransition}$における遷移関数を以下を用いて書き直すことになります。

\[\begin{align} S_{t+1}(\omega) = S^M(S_t(\omega),X^\pi_t(S_t(\omega)),W_{t+1}(\omega)). \label{eq:basetransition2} \end{align}\]

我々は式$\eqref{eq:basetransition2}$のすべての変数に$\omega$という添字を付け、$W_t$の値の単一のサンプルパスに従っていることを示します。

これで、期待値に基づく目的関数を平均に置き換えることができ、次のように書けます。

\[\begin{align} \max_\pi \Fbar^\pi(S_0) = \frac{1}{N}\sum_{n=1}^N \sum_{t=0}^T C_t(S_t(\omega^n),X^\pi_t(S_t(\omega^n))). \label{eq:objectivecumulativerewardaverage} \end{align}\]

多くの場合、我々は単一のサンプルパス(場合によっては履歴からのもの)のみを扱っています。この場合、この単一のサンプルパスを用いて方策の性能を近似していることになり、以下のように書けます。

\[\begin{align} \max_\pi \Fhat^\pi(\omega\vert S_0) = \sum_{t=0}^T C_t(S_t(\omega),X^\pi_t(S_t(\omega))). \label{eq:objectivecumulativerewardsample} \end{align}\]

$\eqref{eq:objectivecumulativereward}$のように期待値を用いて目的関数を書くときはいつでも、実際に行うのは$\eqref{eq:objectivecumulativerewardaverage}$のような平均、あるいは$\eqref{eq:objectivecumulativerewardsample}$のようなサンプルを用いることであることを覚えておいてください。

期待値はまた、初期状態$S_0$の不確実性を反映する必要がある場合もあります。これは不確実な予測に関する信念、あるいは患者の疾患状態に関する不確実な推定を捉えるものかもしれません。この場合、サンプルパス$\omega$はこれらの初期分布からのサンプルを含む必要があります。

時間ではなくカウンタ$n$を使う方が理にかなう設定もいくつかあります。この場合、$S^n$を$n$回の観測後の状態とします(これらは実験、顧客の到着、アルゴリズムの反復であってもよい)。我々は時間$t$をデフォルトの添字として使用します。

初期状態変数$S_0$

我々は初期状態$S_0$と、$t > 0$に対するそれ以降の状態$S_t$とを区別する必要があります。

我々は、$F^\pi(S_0)$、$\Fbar^\pi(S_0)$、$\Fhat^\pi(\omega\vert S_0)$のいずれを使う場合でも、方策の性能が初期状態$S_0$に明示的に依存することを書き表します。これは当然のことのはずですが、しばしば見落とされます。初期状態には以下のような要素が含まれます。

決して変化しない初期値と、決定または外生情報の結果として直接的に時間とともに変化する値とを分離しておくと有用であることに注意してください。決して変化しない値は$S_0$に格納されますが、$t > 0$に対する$S_t$には表現されません。この理由は、$S_t$をできるだけコンパクトに保ちたいという要望によるものです。

我々の方策$X^\pi(S_t\vert \theta)$が調整可能なパラメータを持つと仮定します。例えば、在庫システムを管理していて、おなじみの「発注点補充」方策(在庫理論の文献では$(s,S)$方策として知られる)を用いる場合を考えます。これは次式で与えられます。

\[X^\pi(S_t\vert \theta) = \begin{cases} \theta^{max} - R_t & R_t < \theta^{min},\\ 0 & \text{otherwise.}\end{cases}\]

ここで$\theta = (\theta^{min},\theta^{max})$です。簡単のため、発注するとすぐに到着すると仮定しましょう(実務では決して成り立たない標準的な教科書の仮定です)。これにより、物理状態$R_t$(即座に発注する直前の在庫量)の推移を次式を用いて書くことができます。

\[R_{t+1} = \max\{0,R_t + x_t - \Dhat_{t+1}\}\]

ここで$x_t = X^\pi(S_t\vert \theta)$であり、$\Dhat_{t+1}$は区間$(t,t+1)$における我々の製品に対する需要です(これが我々の外生情報$W_{t+1}$です)。最後に、$(t,t+1)$を区間$C(S_t,x_t,W_{t+1})$における純利益とします(これは今のところ重要ではありません)。

さて、我々のシステムのシミュレーションを実行できる過去の需要プロセス$W_1, W_2, \ldots, W_t, \ldots, W_T$があると想像してください。$\omega$をこの過去の需要(または任意の外生情報)の履歴系列を表すものとします。最適な発注パラメータ$\theta$の集合を見つける問題を次式を用いて書くことになります。

\[\begin{align} \max_\theta \Fhat^\pi(\omega,\theta\vert S_0) = \sum_{t=0}^T C_t(S_t(\omega),X^\pi_t(S_t(\omega))), \label{eq:optimizingtheta} \end{align}\]

ここで状態変数は以下に従って推移します。

\[S_{t+1}(\omega) = S^M(S_t(\omega), X^\pi_t(S_t(\omega)), W_{t+1}(\omega)).\]

$\theta^\ast $を、$\eqref{eq:optimizingtheta}$を最適化することによって求めた$\theta$の値とします。この最適値を正しく書く方法は、$S_0$に含まれる情報に依存する関数$\theta^\ast (S_0)$としてです(これはまた、サンプルパス$\omega$にも依存します)。これは、$S_0$で表される問題への入力データを変更すると、それが我々の方策パラメータ$\theta$の最良の値に影響を及ぼしうるという現実を伝えるのに役立ちます。実際、方策の選択自体を変更しなければならないことすらあるかもしれません!

バリエーション

我々の基本的な数学モデルには2つの重要なバリエーションがあります。

\[\omega^n = (W^n_1, \ldots, W^n_t, \ldots, W^n_T).\]

最良の方策を反復的に探索している場合、反復$n$に対する方策を$X^{\pi,n}(S_t)$を用いて書くことになり、これが以下を生成します。

\[S^n_0, x^n_0, W^n_1, \ldots, S^n_t, x^n_t, W^N_{t+1}, \ldots, S^N_T,\]

ここで$x^n_t = X^{\pi,n}(S^n_t\vert \theta)$です。

\[\begin{align} \max_\pi \Fhat^\pi(S^\theta_0) & = \E_{\What} F(\theta^{\pi,N}, \What) \label{eq:objectivefinalreward1} \\ &\approx \frac{1}{M} \sum_{m=1}^M F(\theta^{\pi,N}, \What^m). \label{eq:objectivefinalreward2} \end{align}\]

簡単に言えば、$\Theta^\pi(S^{\theta,N})$と表記した$\theta$に対する学習方策を、$W^n$の観測(これは時間$t$にわたる全体のシミュレーションであるかもしれません)を用いて$N$回の反復にわたってシミュレートすることで評価します。パラメータ$\theta$の最終推定値(これを$\theta^{\pi,N}$と呼びます)を得たら、$\theta = \theta^{\pi,N}$を固定し、$m=1, \ldots, M$に対して$\What^m$と呼ぶ新しいランダム観測の集合を作成する別個のシミュレーションを用いて、この値の性能を評価します。

不確実性のモデル化

多くの複雑な問題(サプライチェーン、エネルギーシステム、公衆衛生などはほんの一例です)において、さまざまな形態の不確実性を特定してモデル化することは、豊かで複雑な作業になり得ます。ここでは生じる問題を示唆するにとどめ、この次元についての徹底的な議論は試みません。

不確実性は2つのメカニズムを通じて我々のモデルに伝えられます。すなわち、完全にはわからない量やパラメータを記述する確率分布のパラメータをモデル化する初期状態$S_0$と、外生情報プロセス$W_1, \ldots, W_T$です。

初期状態における不確実性

初期状態変数は、決定論的パラメータ、または動的に変化する量やパラメータの初期値を含むことがあります。もし初期状態に含まれるのがこれだけであれば、それは何らかの不確実性を捉えていることにはなりません。

我々がいくつかの量やパラメータについて知らないものの、確率分布のパラメータを通じて我々が知っていることを表現できる問題は数多くあります。いくつかの例を挙げます。

これらは、いくつかの入力に不確実性を持たせてモデルを初期化できる方法の例です。

初期の確率的信念は、主観的判断から、あるいは過去の観測や実験から得られることがあります。

外生情報プロセス

不確実性がモデルに入り込む2つ目の経路は、外生情報プロセスを通じてのものです。変数$W_t$は、時間period$t$まではわからない情報を含んでいます。これは、$W_{t+1}$の結果を知る前に、時間$t$において決定$x_t$を下さなければならないことを意味します。

以下は、決定$x_t$が下された後に明らかになる$W_{t+1}$の例のリストです。

いずれの場合も、決定を下した後に観測される情報が、その決定の性能(そしてどの決定が最良であったか)に影響を与えます。

ここまで読んで読者はおそらく、$W_{t+1}$が通常は異なる種類の情報の集合であることに気づいたでしょう。例えば、血糖値が上昇している患者を治療していると想像してください。医師は、食事や運動、減量のための薬から、特に血糖値を標的とした投薬に至るまで、さまざまな戦略を試したいと考えています。医師が処理しなければならない情報源には以下が含まれるかもしれません。

これらはそれぞれ別個の情報の流れです。我々は、時間$t$における情報プロセスの集合である集合$\Ical_t$を導入することで、これらをモデル化できます(戦略を変更するにつれて、新たな情報の流れが開かれ、この集合は変化することがあります)。これで、情報源$i\in\Ical_t$からの情報の実現値である$W_{t+1,i}$を用いて、異なる種類の情報を表現できるようになり、$W_{t+1} = (W_{t+1,i})_{i\in\Ical_t}$となります。

我々は引き続き$W_{t+1}$を用いて新たに到着する情報を表しますが、読者は、実際の応用においてはこれが通常、それぞれ独自の挙動を持つ情報源全体の集合を含むことになるということを覚えておく必要があります。

状態/決定依存プロセス

情報$W_{t+1}$が現在の状態$S_t$や決定$x_t$に依存する応用が数多くあります。いくつかの例を挙げます。

このため、外生情報を関数$W_{t+1}(S_t,x_t)$、すなわち区間$(t,t+1)$に到着する情報を与える外生情報関数として表現するのが有用である。

例えば、大量の株式を売買しており、それが将来の価格に影響を与えるかもしれない状況を想像してほしい。そのダイナミクスは次のように書けるかもしれない。

\[\begin{align} p_{t+1} = \theta^p_0 p_t + \theta^p_1 p_{t-1} + \theta^p_2 p_{t-2} + W_{t+1}(S_t,x_t). \label{eq:statedependentprice} \end{align}\]

この価格プロセスの状態は次のように書かれる。

\[S_t = (p_t, p_{t-1}, p_{t-2}).\]

$W_{t+1}(S_t,x_t)$で与えられる価格のランダムな変化は、価格の変化が現在の価格(価格が高ければ、将来の変化は負になりやすい)、および私たちが購入している量($x_t > 0$)や売却している量($x_t < 0$)に依存するかもしれないという私たちの信念を反映している。

もちろん、私たちは過去のデータを用いて、$S_t$と$x_t$が将来の価格に及ぼす構造的な影響を、真に外生的なノイズから切り分けたいと考えるだろう。そこで、次のようなモデルを提案するかもしれない。

\[W_{t+1}(S_t,x_t) = \theta^x x_t + \varepsilon_{t+1},\]

ここで、次のように仮定するかもしれない。

\[\varepsilon_{t+1} \sim N(0, \vert x_t\vert \sigma^2_t),\]

このモデルは、$\varepsilon_{t+1}$が平均0を持ち、その分散は$x_t$の絶対値とともに増大すると仮定している。すると情報$W_{t+1}(S_t,x_t)$は平均$\theta^x x_t$を持つことになり、これは株式を購入している場合($x_t > 0$)には正となり、市場で売却している場合($x_t < 0$)には負となる。

本書では引き続き$W_{t+1}$を標準的な記法として用いるが、読者はこれが現在の状態や、状態が与えられたときに下された決定に依存する可能性があることに注意されたい。

不確実性のスタイル

情報の種類を特定することが、不確実性を理解するための第一歩である。次のステップは、不確実性の異なるスタイルを特徴づけることである。情報プロセスがとりうる挙動のうち、特に重要なものをいくつかまとめると以下のようになる。

これらの挙動は、決定を下すための方策の選択に影響を与えうるものであり、次にこの話題を扱う。

不確実性は、企業、組織、さらには政府までもが計画を立てなければならない問題として広く認識されている。しばしば見落とされがちなのは、不確実性をモデル化する理由が、それが決定にどのような影響を与えるかを理解するためであるという点である。不確実性は常に、将来到着する情報プロセスと結びついているため、今下す決定が将来のこの情報によってどのように影響を受けるかを考えなければならない。

方策の設計

方策とは、決定を下すための手法である……いかなる手法であっても構わない。

方策とは、状態変数に含まれる情報を用いて決定を下す関数である。これは一見、明確に定義された問題のように聞こえる。何しろ、機械学習コミュニティ全体が、訓練データセットに適合する関数を見つけるという課題を中心に構築されているのだから。しかし、方策の設計はそれよりもはるかに豊かなものであり、この分野に携わるコミュニティの多様性がそれを物語っている。

図 1.2は、不確実性下での逐次決定を扱う、およそ15の異なる分野を代表する書籍の表紙を示している。これらは8種類の異なる記法体系を用いており、モデル化への取り組み方において根本的に異なるアプローチを採用している。中には、方策(埋め込まれた最適化問題を伴うもの)を目的関数と混同しているものもある。

確率的最適化における異なる分野を代表する主要書籍の一例。
図 1.2. 確率的最適化における異なる分野を代表する主要書籍の一例。

方策の性能指標

決定論的最適化は、ある決定が別の決定よりも優れているかどうかを判断する目的関数によって特徴づけられる。逐次決定問題では、通常、式$\eqref{eq:objectivecumulativereward}$、$\eqref{eq:objectivecumulativerewardaverage}$、$\eqref{eq:objectivecumulativerewardsample}$で行ったように、方策の性能を評価する目的関数を持つことになる。

しかし実際には、方策はいくつかの競合する基準に基づいて選択される。

図 1.2に示された数理最適化のコミュニティは、最適方策について語ることがあるが、これは式$\eqref{eq:objectivecumulativereward}$の期待値を最適化することを意味する。しかし、これらすべての特性に注意を払うことが重要である。

方策の4つのクラス

図 1.2に掲載された書籍群は、時間の経過とともに決定を下すための様々な方法を特徴としている。実は、それらはすべて、明確に定義された方策のクラスに分類することができる。方策を作成するための根本的な戦略は2つあり、それぞれがさらに2つのクラスに分けられ、合計4つの方策クラスが生まれる。

方策検索 – これは、決定を下すための手法(関数)を横断的に探索し、その性能をシミュレーションして(式$\eqref{eq:objectivecumulativereward}$で行っているように)、長期にわたって平均的に最も良く機能する手法を見つけるというものである。これは、異なる手法のクラスにわたる探索だけでなく、ある手法に対する調整可能なパラメータの探索も含みうる。この考え方は、2つの方策クラスを生み出す。

先読み方策 – ある決定の貢献(あるいはコスト)と、その決定によって将来生じる下流の貢献(あるいはコスト)の近似とを合わせて最適化することで、効果的な方策を構築することができる。ここでもまた、これを2つの方策クラスに分けることができる。

\[\begin{align} V_t(S_t) = \max_{x_t} \big(C(S_t,x_t) + V_{t+1}(S_{t+1})\big). \label{eq:bellmangraph} \end{align}\]

式$\eqref{eq:bellmangraph}$はベルマン方程式として知られている。図 1.3に描いたような決定論的なネットワークにおいて最良の経路を見つけるために用いられる場合、これは比較的容易に視覚化できる。

ノード1からノード11へたどる単純な決定論的グラフ。
図 1.3. ノード1からノード11へたどる単純な決定論的グラフ。

状態$S_t$から$S_{t+1}$への遷移が、時刻$t$の時点では既知でないランダムな情報を伴う問題は数多く存在する。私たちは、最初の在庫問題において不確実性の単純な例を見ており、2番目の在庫問題ではより複雑な例を見た。

こうしたより一般的な問題では、状態$S_t$にあり、決定$x_t$を下し、それから新たな情報$W_{t+1}$(時刻$t$の時点では既知でない)を観測すると、遷移関数に従って新たな状態$S_{t+1}$へと至ることになる。

\[S_{t+1} = S^M(S_t,x_t,W_{t+1}).\]

これは、$x_t$を選ばなければならない時刻$t$において、$W_{t+1}$が確率変数であることを意味し、したがって$S_{t+1}$もまた確率変数であるということを意味する。この場合、ベルマン方程式に期待値を挿入する必要があり、式$\eqref{eq:bellmangraph}$を次のように書くことになる。

\[\begin{align} V_t(S_t) = \max_{x_t} \big(C(S_t,x_t) + \E_{W_{t+1}} \left\{V_{t+1}(S_{t+1})\vert S_t,x_t\right\}\big). \label{eq:bellmanstochastic} \end{align}\]

ここで、期待値$\E_{W_{t+1}}\lbrace \cdot\rbrace $を挿入したが、これは文字通り$W_{t+1}$のすべてのランダムな結果にわたって平均を取ることを意味する。

$\eqref{eq:bellmanstochastic}$における確率版のベルマン方程式は、極めて一般的なものである。状態$S_t$は単にグラフのノードを意味するのではなく、その問題に関連するあらゆる(そしてすべての)情報を捉えている。難しいのは、もはや価値関数$V_t(S_t)$を計算することができないという点であり、これはひいては、式$\eqref{eq:bellmangraph}$および$\eqref{eq:bellmanstochastic}$において既知であると仮定していた$V_{t+1}(S_{t+1})$が手に入らないということを意味する。

ベルマン方程式を適用しようとする際に研究コミュニティが用いてきた戦略は、機械学習の分野を活用して、私たちが$\Vbar_t(S_t)$と呼ぶことにする統計的近似を推定するというものである。妥当な近似$\Vbar_{t+1}(S_{t+1})$を得ることができると仮定すると、私たちの方策(決定を下すための手法)を次式を用いて書くことになる。

\[\begin{align} X^\pi(S_t) = \argmax_{x_t\in\Xcal_t} \big(C(S_t,x_t) + \E_{W_{t+1}} \{\Vbar_{t+1}(S_{t+1})\vert S_t,x_t\}\big). \label{eq:introvbarpolicy} \end{align}\]

記法「$\argmax_x f(x)$」は、関数$f(x)$を最大化する$x$の値を意味する。添字$\pi$は、関数$f$の構造を規定する情報、および近似$\Vbar_{t+1}(S_{t+1})$に必要となる調整可能なパラメータ$\theta$を担っている。

この種類の方策は、近似動的計画法、そして最も頻繁には強化学習といった見出しの下に位置づけられる。これは強力なアイデアではあるが、適用は容易ではなく、正確な近似$\Vbar_{t+1}(S_{t+1})$を作成できるかどうかにかかっている。

価値関数を近似するための手法については非常に豊富な文献が存在するが、それは万能薬ではない。本書ではこの考え方をいくつかの箇所で示すが、読者はこのクラスの方策が使いこなすのが非常に難しいことに注意されたい。

我々は2つの在庫問題を用いてモデリングフレームワークを説明し、式$\eqref{eq:introorderupto}$と$\eqref{eq:adjustedforecastpolicy}$により2つの単純な方策(PFAの一形態)を提案したが、これはあくまで方策の具体例を示すために行ったものである。PFAは日々の意思決定において広く用いられているが、これらは特殊な例である。

対照的に、我々は先に概説した4つの方策クラス(PFA、CFA、VFA、DLA)が普遍的なものであり、あらゆる逐次決定問題を解くために用いうるあらゆる手法を網羅していると主張する。念のため言えば、これらはメタクラスである。つまり、ある問題が特定のクラスに適していると考えたとしても、それだけでは終わりではなく、そのクラス内で具体的な方策を設計する必要がある。とはいえ、この4つのクラスは方策設計のプロセスを導くロードマップを提供してくれると我々は考えている。

方策のテスト

方策の価値をテストするために、我々は式$\eqref{eq:objectivecumulativerewardsample}$を用いる。これは情報過程$W_t$の単一のサンプルパスにわたって方策をシミュレートするものである。方策をシミュレートする際に最も難しい部分は、通常、外生情報過程を作成することである。

$\omega$をサンプルパスとし、$W_1(\omega), \ldots, W_T(\omega)$が特定のサンプルパスを表すとする。表1.3は、$\omega^1$から$\omega^{10}$までインデックス付けされた価格の10本のサンプルパスを示している。もし$\omega^6$を選ぶならば、$W_7(\omega^6) = 44.16$となる。

$t=1$$t=2$$t=3$$t=4$$t=5$$t=6$$t=7$$t=8$
$\omega^n$$p_1$$p_2$$p_3$$p_4$$p_5$$p_6$$p_7$$p_8$
$\omega^1$45.0045.5347.0747.5647.8048.4346.9346.57
$\omega^2$45.0043.1542.5140.5141.5041.0039.1641.11
$\omega^3$45.0045.1645.3744.3045.3547.2347.3546.30
$\omega^4$45.0045.6746.1846.2245.6944.2443.7743.57
$\omega^5$45.0046.3246.1446.5344.8445.1744.9246.09
$\omega^6$45.0044.7043.0543.7742.6144.3244.1645.29
$\omega^7$45.0043.6743.1444.7843.1242.3641.6040.83
$\omega^8$45.0044.9844.5345.4246.4347.6747.6849.03
$\omega^9$45.0044.5745.9947.3845.5146.2746.0245.09
$\omega^{10}$45.0045.0146.7346.0847.4049.1449.0348.74

表1.3. $45.00から始まる価格の一連のサンプルパスの例。

問題は、表1.3に示されているような観測値のサンプルをどのように作成するかである。典型的な戦略は3つある。

もし$W_{t+1}$が状態$S_t$および/または決定$x_t$に依存する場合、我々はこの依存関係を反映する方法を考案しなければならない。数学モデルを作成すれば、コンピュータ上で多くのシミュレーションを実行することが可能になるが、情報過程のサンプルを作成するには、時間にわたる相関だけでなく、空間にわたる相関も再現する必要がある。不確実性のモデリングについてより詳しい議論は、RLSOの第10章を参照されたい。

次のステップ

本書の次の5つの章では、我々のモデリングフレームワークを5つの異なる問題に適用する。

これらの各章は、上で2つの在庫問題を説明する際に用いたのと同じアウトラインに従う。このアウトラインは以下から構成される。

その後、第7章で4つの方策クラスに立ち戻り、第2章から第6章までの問題を用いて様々なモデリングの考え方を説明しながら、我々の一般的なモデリングフレームワークについて議論する。

この議論の後、我々は例示による学習という章立てのパターンに戻るが、より複雑な問題を扱う。残りの章では以下の問題を扱う。

何を学んだか

演習問題

復習問題

  1. 逐次決定問題の数学モデルの5つの要素とは何か?
  2. 初期状態$S_0$の変数と、$t > 0$についての動的状態$S_t$の変数との違いは何か?
  3. 決定と外生情報の違いは何か?
  4. 方策の2つの主要なカテゴリーとは何か、そしてそれらはどのように異なるか?
  5. 単純な在庫問題の状態変数を、より複雑な在庫問題の状態変数と比較せよ。

問題解決演習

  1. 時間依存の挙動をどのように扱うかという観点から、2つの在庫問題に対する方策を比較せよ。例えば、我々のピザ店では、平日よりも週末の需要がはるかに高いかもしれない。調整可能なパラメータ$\theta$を時間依存(あるいは曜日依存)にすることが、解をどのように改善しうるかという観点からその価値についてコメントせよ。
  2. 在庫問題においてパラメータ$\theta$をチューニングする方法を、以下の2つの場合について対比せよ。
    1. シミュレータにおいて。
    2. 現場において。
    それぞれのアプローチの長所と短所を論じよ。