アクション連鎖モデルと反応モデルと意思モデルと評価モデルとアクション選択部とを有する意思決定支援システムであって、アクション連鎖モデルを用いて、プレーヤーのアクションからプレーヤーがとり得る次のアクションを導出し、反応モデルを用いて、プレーヤーのアクションと指標値とから、次の指標値を導出し、意思モデルを用いて、導出された次の指標値から各プレーヤーのアクションの選択確率を計算し、評価モデルを用いて、導出された次の指標値が各プレーヤーにとって望ましい程度を表す評価値を計算し、アクション選択部は、アクション連鎖モデルを用いて導出されたアクションと、意思モデルを用いて計算された選択確率と、評価モデルを用いて計算された評価値とを用いて、各プレーヤーのアクションを選択し、出力する。
【発明を実施するための形態】
【0009】
図1は、第1の実施例の意思決定支援システムの物理的な構成を示すブロック図である。
【0010】
本実施例の意思決定支援システムは、複数の計算機(CALC_NODE)と、これら複数の計算機を接続する通信スイッチ(COM_SW)とを有する。
【0011】
各計算機(CALC_NODE)は、プログラムを実行するプロセッサ(CPU)と、データ及びプログラムを格納する一時記憶装置(RAM)及び補助記憶装置(STOR)と、通信スイッチ(COM_SW)と接続される通信デバイス(COM_DEV)とを有する。プロセッサ(CPU)と、一時記憶装置(RAM)と、補助記憶装置(STOR)と、通信デバイス(COM_DEV)とは、バス(BUS)で接続されている。
【0012】
プロセッサ(CPU)は、一時記憶装置(RAM)に格納されたプログラムを実行する。一時記憶装置(RAM)は、不揮発性の記憶素子であるROM及び揮発性の記憶素子である(RAM)を含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。(RAM)は、D(RAM)(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサ(CPU)が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【0013】
補助記憶装置(STOR)は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置であり、プロセッサ(CPU)が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置(STOR)から読み出されて、記憶装置(RAM)にロードされて、プロセッサ(CPU)によって実行される。
【0014】
通信デバイス(COM_DEV)は、所定のプロトコルに従って、通信スイッチ(COM_SW)を介して、他の装置との通信を制御するネットワークインターフェース装置である。
【0015】
各計算機(CALC_NODE)は、入力インターフェース及び出力インターフェースを有してもよい。入力インターフェースは、オペレータからの入力を受けるインターフェースであり、具体的には、マウス、キーボード、タッチパネル、マイクなどである。出力インターフェースは、プログラムの実行結果をオペレータが視認可能な形式で出力するインターフェースであり、ディスプレイ装置やプリンタなどである。
【0016】
通信スイッチ(COM_SW)に、入力インターフェース及び出力インターフェースを有する端末計算機が接続されてもよい。
【0017】
プロセッサ(CPU)が実行するプログラムは、リムーバブルメディア(CD−ROM、フラッシュメモリなど)又はネットワークを介して各計算機(CALC_NODE)に提供され、非一時的記憶媒体である不揮発性の補助記憶装置(STOR)に格納される。このため、各計算機(CALC_NODE)は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【0018】
各計算機(CALC_NODE)は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。また、各計算機(CALC_NODE)の各機能部は異なる計算機上で実現されてもよい。
【0019】
図2は、第1の実施例の意思決定支援システムの論理的な構成を示すブロック図である。
【0020】
本実施例の意思決定支援システムは、アクション連鎖モデル1、反応モデル2、意思モデル4及び評価モデル5の四つのモデルで構成される。具体的には、
図2に示す意思決定支援システムは、アクション連鎖モデル1、反応モデル2及び複数のアクション決定部3を有する。アクション決定部3は、意思モデル4、評価モデル5及びアクション選択部6を有し、プレーヤー毎に設けられる。
【0021】
アクション連鎖モデル1は、
図3に示すように、ルールベースのシミュレータであり、プレーヤーの現在のアクションから次に実行される蓋然性があるアクションを導出する。プレーヤーは、世の中で意思を決定し、行動する(アクションを実行する)主体であり、例えば、国民、行政機関(各省庁)、国会、内閣、外国政府、マスコミなどである。
【0022】
反応モデル2は、
図4に示すように、ルールベースのシミュレータであり、各プレーヤーの現在のアクション及び現在の指標値から次の指標値を導出する。指標値とは、例えば、世の中で生じている事象(情勢の変化)を数値化した指標であり、経済指標(GDP、株価、為替レートなど)、世論調査結果(内閣支持率など)である。
【0023】
アクション決定部3は、プレーヤー毎に設けられ、各プレーヤーの次のアクションを導出する。
【0024】
意思モデル4は、
図5に示すように、次の指標値からアクション意思を導出するシミュレータである。アクション意思は、ある情勢(指標値の組み合わせによって表される)において採用されるアクションを実行する意志の強さを表す数値である。すなわち、各プレーヤーはアクション意思の値が大きいアクションを選択する確率(期待値)が高い。評価モデル5は、
図6に示すように、次の指標値から評価値を導出するシミュレータである。評価値は、ある情勢がプレーヤーにとって望ましい程度を表す数値である。
【0025】
アクション選択部6は、当該プレーヤーの次のアクションの蓋然性、アクション意思及び評価値から当該プレーヤーの次のアクションを導出するセレクタである。アクション選択部6は、例えば、意思モデル4から出力されたアクション意思及び評価モデル5から出力された評価値でアクション連鎖モデル1から出力されたアクションに重み付けすることによって、当該プレーヤーの次のアクションを選択する。
【0026】
アクション選択部6が導出した次のアクションは、アクション連鎖モデル1に入力され、次のアクションのシミュレーションに用いられる。また、反応モデル2が導出した次の指標値は、反応モデル2に入力され、次の指標値のシミュレーションに用いられる。
【0027】
図3は、第1の実施例のアクション連鎖モデル1を説明する図である。アクション連鎖モデル1は、各プレーヤーのアクションをノードとしたマルコフ決定過程モデルで表されている。各ノードにはプレーヤーがアクションを選択する確率が対応付けられており、ノード間のエッジにはノード間を状態が遷移する確率が対応付けられている。
【0028】
図3に示すアクション連鎖モデル1では、プレーヤー1がアクション1、アクション2及びアクション3を選択する確率は、それぞれ、0.3:0.5:0.2である。また、プレーヤー1がアクション1を選択した場合、プレーヤー2は0.8の確率でアクション2を選択する。つまり、プレーヤー2がアクション2を選択する確率は、式1によって表すことができる。
1−((1−0.3)×(1−0.8)) …(式1)
【0029】
アクション連鎖モデル1によって、プレーヤーの現在のアクションから蓋然性がある次のアクションを一つ又は複数導出することができる。
【0030】
図4は、第1の実施例の反応モデル2を説明する図である。反応モデル2は、コーザル・ループ・ダイアグラムによって各指標間の相関関係を表すモデルである。
【0031】
反応モデル2は、例えば
図4に示すように、複数の指標をノードとして、ノード間をエッジによって連結したグラフィカルモデルによって表すことができる。各エッジの実線の矢印は正の相関を示し、破線の矢印は負の相関を示す。さらに、各エッジに係数を定めることによって、各指標の挙動を表すシステムダイナミクスモデルとすることができる。各エッジの係数は、指標の増減量との比で定義する。例えば、指標3と指標2とは正の相関があり、エッジの係数が0.5であれば、指標3が1増加したとき、指標2は0.5増加する。また、指標3と指標5とは負の相関があり、エッジの係数が1.2であれば、指標3が1増加したとき、指標5は1.2減少する。
【0032】
なお、離散系シミュレーションを行う場合、計算機内では反応モデル2を漸化式で表すことができる。また、連続系シミュレーションを行う場合、計算機内では反応モデル2を一次微分方程式で表すことができる。
【0033】
指標には、ストック要素とフロー要素とがある。ストック要素は、例えば、原油の備蓄量など、ある時点における量を示す。また、フロー要素は、例えば、原油の輸入量(生産量)や消費量など、時間帯における変数の流れを示す。ある指標をストック要素とするかフロー要素とするかは、世の中で、その指標が一般的にストック量及びフロー量のいずれとして使われているかによって決定するとよい。また、実際には数値で計測できない量(例えば、リスクインパクト、ナショナリズム)を指標として用いてもよい。このように、ストック要素とフロー要素とを混在させて反応モデル2を構成することによって、有識者の思考をそのままで、制約を設けることなく、モデル化することができる。
【0034】
図5は、第1の実施例の意思モデル4を説明する図である。意思モデル4は、コーザル・ループ・ダイアグラムによって各指標間の相関関係を表し、さらに、各プレーヤーのアクションと各指標との相関関係を表すモデルである。
【0035】
意思モデル4は、前述した反応モデル2と同様のモデルによって表すことができる。すなわち、意思モデル4は、例えば、複数の指標をノードとして、ノード間をエッジによって連結したグラフィカルモデルによって表すことができる。各エッジの実線の矢印は正の相関を示し、破線の矢印は負の相関を示す。さらに、各エッジに係数を定めることによって、各指標の挙動を表すシステムダイナミクスモデルとすることができる。各エッジの係数は、指標の増減量との比で定義する。
【0036】
意思モデル4において、指標間は互いに相関関係を有するが、プレーヤーのアクションと指標との間は、各プレーヤーのアクションから指標へ向かうのエッジのみが定義され、逆方向のエッジは定義されない。また、各アクションの間のエッジも定義されない。意思モデル4によって、各プレーヤーのアクションの指標への影響をモデル化することができる。
【0037】
なお、離散系シミュレーションを行う場合、計算機内では意思モデル4を漸化式で表すことができる。また、連続系シミュレーションを行う場合、計算機内では意思モデル4を一次微分方程式で表すことができる。意思モデル4は、反応モデル2と同様に、意思モデル4の指標には、ストック要素とフロー要素とがある。
【0038】
図6は、第1の実施例の評価モデル5を説明する図である。評価モデル5は、コーザル・ループ・ダイアグラムによって各指標間の相関関係を表し、各プレーヤーのアクションと各指標との相関関係を表し、各指標と各プレーヤーの評価との相関関係を表し、さらに、各指標と各プレーヤーのアクションの意思との相関関係を表すモデルである。評価は、複数の指標の組み合わせによって表される情勢を、各プレーヤーが望ましいと思うかを示す数値である。なお、評価は、指標の数値範囲の組み合わせ毎に異なる評価値を持ってもよい。アクション意思は、各プレーヤーがとり得るアクションと各アクションを選択する確率の組によって表される。
【0039】
評価モデル5は、前述した反応モデル2と同様のモデルによって表すことができる。すなわち、評価モデル5は、例えば、複数の指標をノードとして、ノード間をエッジによって連結したグラフィカルモデルによって表すことができる。各エッジの実線の矢印は正の相関を示し、破線の矢印は負の相関を示す。さらに、各エッジに係数を定めることによって、各指標の挙動を表すシステムダイナミクスモデルとすることができる。各エッジの係数は、指標の増減量との比で定義する。
【0040】
評価モデル5において、指標間は互いに相関関係を有するが、プレーヤーのアクションと指標との間は、各プレーヤーのアクションから指標へ向かうのエッジのみが定義され、逆方向のエッジは定義されない。また、各アクションの間のエッジも定義されない。また、各指標と各プレーヤーの評価との間は、各指標から評価へ向かうのエッジのみが定義され、逆方向のエッジは定義されない。また、各指標と各プレーヤーのアクションの意思との間は、各指標からアクションの意思へ向かうのエッジのみが定義され、逆方向のエッジは定義されない。さらに、アクションの意思の間のエッジも定義されない。評価モデル5によって、各指標の各プレーヤーのアクションの意思の強さへの影響をモデル化することができ、各プレーヤーのアクションの評価値を定めることができる。
【0041】
なお、離散系シミュレーションを行う場合、計算機内では意思モデル4を漸化式で表すことができる。また、連続系シミュレーションを行う場合、計算機内では意思モデル4を一次微分方程式で表すことができる。評価モデル5は、反応モデル2と同様に、評価モデル5の指標には、ストック要素とフロー要素とがある。
【0042】
なお、評価モデル5は意思モデル4を含み、意思モデル4は反応モデル2を含む。このため、反応モデル2と意思モデル4と評価モデル5とは、一つのモデルを論理的に区分して構成してもよい。
【0043】
反応モデル2、意思モデル4及び評価モデル5において、各ノードが表す事象は多少は関係があるので、ほとんど全てのノード間でエッジが定義できる。しかし、全てのノード間でエッジを定義するとモデルが複雑になるので、相関性が高いエッジ(例えば、係数が所定の閾値より大きいエッジ)によってモデルを構成するとよい。
【0044】
図7は、第1の実施例の意思決定支援システムによる処理のフローチャートである。
【0045】
まず、現在の状況及びシミュレーション期間が入力インターフェースに入力されると(S101)繰り返し制御パラメータtの初期値にシミュレーション開始時を設定し、シミュレーション終了時t_endを設定する。入力される現在の状態は、各プレーヤーの現在のアクション及び現在の各指標値を含む。
【0046】
次に、tがt_endより小さいかを判定する(S102)。tがt_endより小さければ、ステップS103及びS105に進む。tがt_end以上であれば、指定された期間のシミュレーション結果が得られたので、処理を終了し、シミュレーション結果出力画面(
図8)を出力する。
【0047】
ステップS103では、アクション連鎖モデル1を駆動し、プレーヤーの現在のアクションから蓋然性がある次のアクションを導出し、補助記憶装置(STOR)に格納する(S104)。また、ステップS105では、反応モデル2を駆動し、各プレーヤーの現在のアクション及び現在の指標値から次の指標値を導出し、補助記憶装置(STOR)に格納する(S106)。
【0048】
ステップS103〜S106の処理は、並行して実行することができるが、アクション連鎖モデル1を起動する処理(S103)と、反応モデル2を駆動する処理(S105)とを順に実行してもよい。
【0049】
次に、全てのプレーヤーについて、意思モデル4及び評価モデル5を駆動する(S107、S109)。ステップS107〜S110の処理は、並行して実行することができるが、意思モデル4を起動する処理(S107)と、評価モデル5を駆動する処理(S109)とを順に実行してもよい。
【0050】
ステップS107では、意思モデル4を駆動し、次の指標値から各プレーヤーのアクション意思を導出し、補助記憶装置(STOR)に格納する(S108)。また、ステップS109では、評価モデル5を駆動し、次の指標値から評価値を導出し、補助記憶装置(STOR)に格納する(S110)。
【0051】
その後、アクション選択部6が、当該プレーヤーの次のアクションの蓋然性、アクション意思及び評価値を勘案して当該プレーヤーの次のアクションを決定し、補助記憶装置(STOR)に格納する(S111)。
【0052】
全てのプレーヤーの次のアクションが決定した後、反応モデル2が出力した次の指標値を現在の指標値に設定して、反応モデル2の時刻を一つ進める(S112)。そして、繰り返し制御パラメータtに1を加算して(S113)、ステップS102に戻る。なお、tに加算される1は、シミュレーションを実行する時間間隔を示し、オペレータが(例えば、1日を)予め設定するとよい。
【0053】
以上の処理によって、シミュレーション期間中の各プレーヤーのアクションを導出できる。
【0054】
図8は、第1の実施例のシミュレーション結果出力画面1000の例を示す図である。シミュレーション結果出力画面1000は、時間の経過に伴って各プレーヤーが選択するアクションを表し、出力インターフェース(ディスプレイ装置)に表示される。例えば、
図8に示すように、縦方向にプレーヤーが列記され、横方向にシミュレーション結果の時刻が列記された表形式で、各プレーヤーの各時刻におけるアクションが表示される。シミュレーション結果出力画面1000によって、ユーザは各プレーヤーがとるアクションを時系列に知ることができる。
【0055】
次に、第1の実施例の変形例について説明する。以下に説明する変形例では、星取表を用いて各プレーヤーのアクションを選択する。
【0056】
図9は、第1の実施例の変形例の意思決定支援システムによる処理のフローチャートである。
【0057】
まず、現在の状況及びシミュレーション期間が入力インターフェースに入力されると(S121)、繰り返し制御パラメータtの初期値をシミュレーション開始時に設定し、シミュレーション終了時t_endを設定する。入力される現在の状態には、各プレーヤーの現在のアクション及び現在の各指標値が含まれる。
【0058】
次に、tがt_endより小さいかを判定する。tがt_endより小さければ、ステップS103及びS105に進む(S122)。tがt_end以上であれば、指定された期間のシミュレーション結果が得られたので、処理を終了し、シミュレーション結果出力画面(
図8)を出力する。
【0059】
次に、全てのプレーヤーが取り得るアクションの選択肢の全ての組み合わせを列挙し(S123)、列挙された全ての組み合わせについて、アクション連鎖モデル1及び反応モデル2をt+αまで駆動し、各プレーヤーの次のアクション及び次の指標値を導出し、補助記憶装置(STOR)に格納する(S124)。αは、星取表に記載される各アクションのスコアを計算するうえで、時刻tにおいて予測が考慮される将来の時間である。
【0060】
その後、全てのプレーヤーについて、意思モデル4及び評価モデル5を駆動し、各プレーヤーのアクション意思及び評価値を導出し、補助記憶装置(STOR)に格納する(S125)。
【0061】
その後、時刻t+αでの評価値に基づいて星取表を作成し(S126)、星取表を用いて、時刻tにおけるプレーヤーのアクションを決定し、補助記憶装置(STOR)に格納する(S127)。具体的には、星取表は自分の評価と他のプレーヤーの評価とを記載した表で、後述するように、適切なアクションを選択するために用いられる。
【0062】
全てのプレーヤーの次のアクションが決定した後、反応モデル2が出力した次の指標値を現在の指標値に設定して、反応モデル2の時刻を一つ進める(S128)。そして、繰り返し制御パラメータtに1を加算して(S129)、ステップS122に戻る。
【0063】
以上の処理によって、シミュレーション期間中の各プレーヤーのアクションを、他人のアクションを考慮しつつシミュレートできる。
【0064】
図10は、第1の実施例の星取表出力画面1100の例を示す図である。星取表出力画面は、シミュレーション結果出力画面1000(
図8)において、アクションの欄を選択することによって、出力インターフェース(ディスプレイ装置)に表示される。なお、星取表は、二人のプレーヤーのアクションの関係を表すので、オペレータは、シミュレーション結果出力画面1000においてアクションの欄を選択した後に、相手方のプレーヤーを選択する。
【0065】
なお、星取表は、計算機の内部では、
図11に示すモンテカルロ木によって構成するとよい。
【0066】
まず、画面の内容について説明する。
図10に示す星取表出力画面1100は、二人のプレーヤーの関係を示し、縦方向にプレーヤー1のアクションが列記され、横方向にプレーヤー2のアクションが列記された星取表1110を含む。また、画面の下部には「戻る」ボタン1120が設けられている。オペレータが「戻る」ボタン1120を操作することによって、シミュレーション結果出力画面1000に戻ることができる。
【0067】
次に、星取表の内容について説明する。
図10に示す星取表は、プレーヤー1のアクションとプレーヤー2のアクションとの組において、プレーヤー1の評価とプレーヤー2の評価とが組になって記録される。評価は、
図10に示すように記号で表してもよいし、数値で表してもよい。星取表を用いることによって、複数のプレーヤーの評価値を総合した評価したアクションを決定することができる。
【0068】
次に、星取表を用いてアクションを選択する方法について、自分がプレーヤー1であり、相手がプレーヤー2である場合を説明する。MinMax法を用いて、想定される最大の損害が最小になるようにアクションを決定する。
【0069】
例えば、プレーヤーが二人の場合、星取表の各行(自分のアクションが同じ行)に着目して、相手(プレーヤー2)の評価値が最も良いアクションにおけるプレーヤー1の評価値(MinMax評価値)が最も良いアクションを、自プレーヤーの次のアクションに決定する。図示した場合、プレーヤー1のアクションはアクション2に決定する。
【0070】
また、プレーヤーが3人以上である場合、自分(プレーヤー1)のアクションについて、他プレーヤーのアクションを順に(そのプレーヤーの評価値が最も高いアクションを選ぶとして)固定した上で、自分の評価値が最も高いアクションに決定する。以下、具体的に説明する。
【0071】
プレーヤーが3人の場合は、以下のステップでアクションを決める。
【0072】
ステップ1:自分(プレーヤー1)のアクションをアクション1に設定する。
【0073】
その状態で、プレーヤー2とプレーヤー3との2人のゲームを考える。
ステップ1−1:プレーヤー2を自プレーヤーとして、上記のプレーヤーが2人の方法(星取表によるMinMax)によって、プレーヤー2のアクションを決める。
ステップ1−2:プレーヤー3を自プレーヤーとして、上記のプレーヤーが2人の方法(星取表によるMinMax)によって、プレーヤー3のアクションを決める。
【0074】
以上で決まった各プレーヤーのアクション(プレーヤー1=アクション1、プレーヤー2=ステップ1−1で決めたアクション、プレーヤー3=ステップ1−2で決めたアクション)の組み合わせにおける、自分(プレーヤー1)の評価値を、プレーヤー1のアクション1における評価値に設定する。
【0075】
ステップ2:自分(プレーヤー1)のアクションをアクション2に設定する。
【0076】
また、前述と同様の方法で、プレーヤー1のアクション2における評価値を決める。
【0077】
ステップ3:自分(プレーヤー1)のアクションの数だけ、ステップ1の計算を行い、自分(プレーヤー1)にとっての評価値が最も良いアクションを決定する。
【0078】
さらに、プレーヤーが4人の場合は、以下のステップでアクションを決定する。
【0079】
ステップ4:自分(プレーヤー1)のアクションを固定する。その結果、プレーヤー2〜4のプレーヤーが3人のゲームとなる。
ステップ4−1:3人のゲームにおいて、プレーヤー2を自プレーヤーとして、上記のプレーヤーが3人の方法によって、プレーヤー2のアクションを決める。
ステップ4−2:3人のゲームにおいて、プレーヤー3を自プレーヤーとして、上記のプレーヤーが3人の方法によって、プレーヤー3のアクションを決める。
ステップ4−3:3人のゲームにおいて、プレーヤー4を自プレーヤーとして、上記のプレーヤーが3人の方法によって、プレーヤー4のアクションを決める。
【0080】
以上で決まった各プレーヤーのアクション(プレーヤー1=アクション1、プレーヤー2〜4=ステップ4−1〜4−3で決めたアクション)の組み合わせにおける、自分(プレーヤー1)の評価値を、プレーヤー1のアクション1における評価値に設定する。
ステップ5:自分(プレーヤー1)のアクションの数だけ、ステップ4の計算を行い、自分(プレーヤー1)にとっての評価値が最も良いアクションを決定する。
【0081】
図11は、第1の実施例の星取表を構成するためのモンテカルロ木探索を説明する図である。
【0082】
すなわち、
図10を用いて前述した方法では、全プレーヤーの全てのアクションの組み合わせを計算するので、計算量が多い。このため、モンテカルロ木探索(Monte-Carlo Tree Search)を用いることで、少ない計算量で同様の処理を近似的に実行することができる。なお、モンテカルロ木の計算を無限回行うと、全プレーヤーの全てのアクションの組み合わせを計算した場合と同じ結果が得られる。
【0083】
図11に示すモンテカルロ木探索では、プレーヤー1〜4の4人によるゲームで、各プレーヤーが、アクション1、2のいずれかを選択可能な場合、自分(プレーヤー1)のアクション1における評価値を計算する処理を示す。
【0084】
まず、自分(プレーヤー1)がアクション1を選択する。次に、プレーヤー2〜4のうちから1人をランダム(等確率)に選択する。以下、プレーヤー2を選択した場合を説明する。プレーヤー2は、子ノードにおいて、プレーヤー2にとって評価値の平均値が高いアクションを選択する。
【0085】
次に、プレーヤー3又は4の1人をランダム(等確率)に選択する。以下、プレーヤー3を選択した場合を説明する。プレーヤー3は、子ノードにおいて、プレーヤー3にとって評価値の平均値が高いアクションを選択する。最後に、プレーヤー4が、子ノードにおいて、プレーヤー4にとって評価値の平均値が高いアクションを選択する。
【0086】
以上の処理によって、時刻X+0における、各プレーヤーのアクションの組が決定する。
【0087】
さらに、先読みをする場合、以下の処理を実行する。
【0088】
まず、プレーヤー1〜4の1人をランダム(等確率)に選択し、子ノードにおいて、選択されたプレーヤーにとって評価値が高いアクションを選択する。その後、残りのプレーヤーについて、前述と同様に、ランダムにプレーヤーを選択し、アクションを決定する。ある程度まで木を展開した後、ランダム・プレイアウトによって、全てのプレーヤーがランダムにアクションを選択して、時刻を進める。そして、予め定めておいた先読み回数に達したときの各プレーヤーの評価値を計算する。最後に、それまで通ってきた木の各ノードを逆に辿って、ノードに付けられている評価値に、先読み時の評価値を追加して平均値を求め、評価値を更新する。
【0089】
以上の処理を、数百回程度行った後、ルートノードに付されているプレーヤー1の評価値が、プレーヤー1のアクション1の評価値となる。
【0090】
以上の処理を、自分(プレーヤー1)がとり得る各アクションについて行い、最も自分(プレーヤー1)にとっての評価値が良いアクションを選択する。
【0091】
このように、星取表によって、ユーザはアクションが導出された理由を知ることができる。
【0092】
以上に説明したように、本発明の第1の実施例によると、アクション連鎖モデル1、反応モデル2、意思モデル4及び評価モデル5を用いて意思決定支援システムを構成するので、専門家の知見を容易に整理してモデル化することができる。このため、専門家の知見に基づいて将来生じるであろう情勢やアクションを予測することができる。特に、意思モデル4と評価モデル5を分けてモデル化するので、意思要因と抑制要因とを分けることができ、専門家の知見を加工することなくモデルに取り込むことができる。
【0093】
<第2の実施例>
次に、本発明の第2の実施例について説明する。第2の実施例の意思決定支援システムは、アクション連鎖モデル1、反応モデル2、意思モデル4、評価モデル5及び調停モデル7の五つのモデルで構成される。第2の実施例では、前述した第1の実施例と同じ構成及び処理の説明は省略し、異なる構成及び処理について説明する。
【0094】
図12は、第2の実施例の意思決定支援システムの論理的な構成を示すブロック図である。
【0095】
第2の実施例の意思決定支援システムは、アクション連鎖モデル1、反応モデル2、複数のアクション決定部3及び調停モデル7を有する。アクション決定部3は、意思モデル4、評価モデル5及びアクション選択部6を有し、プレーヤー毎に設けられる。
【0096】
アクション連鎖モデル1、反応モデル2、意思モデル4、評価モデル5及びアクション選択部6は、前述した第1の実施例と同じである。なお、第2の実施例のアクション決定部3は、各プレーヤー毎に取り得る複数のアクションを、その選択率と共に出力する。
【0097】
調停モデル7は、複数のアクション決定部3から出力されたアクションを調停して、各プレーヤーのアクションを決定する。例えば、各プレーヤーが取り得るアクションには、相反するものがある。調停モデル7は、これらの関係を用いて、同時に行うことができるアクションの組み合わせを選択し、各プレーヤーのアクションを決定する。
【0098】
具体的には、調停モデル7は、アクション選択部6から出力された複数のアクションの選択率を計算し、各プレーヤー毎に選択率が最も高いアクションを選択し、各プレーヤーのアクションに決定する。
【0099】
図13は、第2の実施例の調停モデル7を説明する図である。調停モデル7は、コーザル・ループ・ダイアグラムによって各指標間(ストック要素、フロー要素、状態要素)の相関関係を表すモデルである。
【0100】
例えば、図示した調停モデル7では、ストック要素1、2、3、4を、それぞれ、x1、x2、x3、x4とし、状態要素1、2を、それぞれ、y1、y2とし、各エッジの係数(k1〜k9)を定める。なお、状態要素は、現在の状態を表す数字であり、例えば、プレーヤー1が現在、アクション1を行っている場合に1、アクション1以外を行っている場合に0などと定めることができる。
【0101】
図示したように、ストック要素及び状態要素によって、ストック要素へ流入するフローの量や、ストック要素から流出するフローの量が決まり、ストック要素の量が啓示的に変化する。
【0102】
前述のように定義した場合、離散系シミュレーションにおいて、時刻t+1における各ストック要素の値は以下の漸化式によって計算することができる。
x1(t+1)=k1×y1(t)+k2×x4(t)−k3×x3(t)
x2(t+1)=x1(t)+k3×x3(t)−k4×x4(t)
x3(t+1)=k5×x4(t)−k6×x1(t)
x4(t+1)=k7×x1(t)−k8×x3(t)−k9×y2(t)
【0103】
また、連続系シミュレーションにおいて、各ストック要素の値は以下の微分方程式によって計算することができる。
d[x1(t)]/dt=k1×y1(t)+k2×x4(t)−k3×x3(t)
d[x2(t)]/dt=x1(t)+k3×x3(t)−k4×x4(t)
d[x3(t)]/dt=k5×x4(t)−k6×x1(t)
d[x4(t)]/dt=k7×x1(t)−k8×x3(t)−k9×y2(t)
【0104】
調停モデル7では、ストック要素及び状態要素によってフロー量を制御することによって、複数のストック要素を関連付けて制御し、各プレーヤーがアクションを選択する確率(選択率)を決定し、各プレーヤーのアクションを調停することができる。
【0105】
以上に説明したように、本発明の第2の実施例によると、調停モデル7が、アクション選択部6が選択した各プレーヤーのアクションを調停して、各プレーヤーのアクションを決定するので、複数プレーヤーのアクションの調停を考慮せず、モデル1、2、4、5を作成することができる。すなわち、アクションの調停と切り離してモデルを作成することができる。
【0106】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【0107】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0108】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
【0109】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。