(57)【要約】多数のシナリオのもとでエージェントベースシミュレーションを実行した場合のシミュレーション結果を解析する。発明の情報処理システムは、プロセッサと、複数のシナリオのもとでエージェントベースシミュレーションを実行した結果であって、各シナリオのもとで複数のエージェントの各々が送受信したメッセージの履歴を示す時系列のシミュレーション結果データを格納した記憶装置とを備え、前記記憶装置から読みだした前記シミュレーション結果データに基づき、前記複数のエージェントの各々のシミュレーション結果データを前記シナリオ毎に比較することで、前記エージェント毎に、前記複数のシナリオにおける前記シミュレーション結果データの相違度を示す指標値を算出する。
2015132893.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、複数のシナリオのもとでエージェントベースシミュレーションを実行した結果であって、各シナリオのもとで複数のエージェントの各々が送受信したメッセージの履歴を示す時系列のシミュレーション結果データを格納した記憶装置とを備えた情報処理システムにおいて、
前記記憶装置から読みだした前記シミュレーション結果データに基づき、前記複数のエージェントの各々のシミュレーション結果データを前記シナリオ毎に比較することで、前記エージェント毎に、前記複数のシナリオにおける前記シミュレーション結果データの相違度を示す指標値を算出することを特徴とする情報処理システム。
【請求項２】
請求項１に記載の情報処理システムにおいて、
表示装置を更に備え、
前記シミュレーション結果データに基づき、前記メッセージの送受信のあったエージェントを隣接するノードとして設定したネットワーク図を前記表示装置の画面上に描画することを特徴とする情報処理システム。
【請求項３】
請求項２に記載の情報処理システムにおいて、
前記シミュレーション結果データに基づき、前記エージェントの前記指標値に応じて前記ノードの色を決定し、前記ノード間のホップ数に応じて前記ノードの配置を決定することを特徴とする情報処理システム。
【請求項４】
請求項３に記載の情報処理システムにおいて、
前記シミュレーション結果データに基づき、前記指標値を複数のレベルに分類し、前記レベルが同一の前記エージェントの前記ノードを結ぶ等高線を前記ネットワーク図に追加して描画することを特徴とする情報処理システム。
【請求項５】
請求項４に記載の情報処理システムであって、
前記シミュレーション結果データは、前記複数のエージェントの各々が受信したメッセージの送信元のエージェントを示す情報を含み、
所定時刻における前記複数のエージェントの各々のシミュレーション結果データを前記シナリオ毎に比較し、前記所定時刻までに受信したメーセージの数及び受信順序が同一である前記シナリオを同一のグループとして分類し、分類した前記グループの数に応じて前記エージェントの前記指標値を決定することを特徴とする情報処理システム。
【請求項６】
プロセッサと、複数のシナリオのもとでエージェントベースシミュレーションを実行した結果であって、各シナリオのもとで複数のエージェントの各々が送受信したメッセージの履歴を示す時系列のシミュレーション結果データを格納した記憶装置とを備えた情報処理システムを用いたシミュレーション解析方法において、
前記記憶装置から読みだした前記シミュレーション結果データに基づき、前記複数のエージェントの各々のシミュレーション結果データを前記シナリオ毎に比較することで、前記エージェント毎に、前記複数のシナリオにおける前記シミュレーション結果データの相違度を示す指標値を算出することを特徴とするシミュレーション解析方法。
【請求項７】
請求項６に記載のシミュレーション解析方法において、
前記情報処理システムは表示装置を更に備え、
前記シミュレーション結果データに基づき、前記メッセージの送受信のあったエージェントを隣接するノードとして設定したネットワーク図を前記表示装置の画面上に描画することを特徴とするシミュレーション解析方法。
【請求項８】
請求項７に記載のシミュレーション解析方法において、
前記シミュレーション結果データに基づき、前記エージェントの前記指標値に応じて前記ノードの色を決定し、前記ノード間のホップ数に応じて前記ノードの配置を決定することを特徴とするシミュレーション解析方法。
【請求項９】
請求項８に記載のシミュレーション解析方法において、
前記シミュレーション結果データに基づき、前記指標値を複数のレベルに分類し、前記レベルが同一の前記エージェントの前記ノードを結ぶ等高線を前記ネットワーク図に追加して描画することを特徴とするシミュレーション解析方法。
【請求項１０】
請求項９に記載のシミュレーション解析方法であって、
前記シミュレーション結果データは、前記複数のエージェントの各々が受信したメッセージの送信元のエージェントを示す情報を含み、
所定時刻における前記複数のエージェントの各々のシミュレーション結果データを前記シナリオ毎に比較し、前記所定時刻までに受信したメーセージの数及び受信順序が同一である前記シナリオを同一のグループとして分類し、分類した前記グループの数に応じて前記エージェントの前記指標値を決定することを特徴とするシミュレーション解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーション解析方法及び情報処理システムに関し、特に、多数のシナリオのもとでエージェントベースシミュレーションを実行した場合のシミュレーション結果を解析する方法及び装置に関する。
【背景技術】
【０００２】
シミュレーションとは、注目する現象を何らかの方法でモデル化し、計算機の中でモデルを動作させることで模擬するものである。現象のモデル化にあたって、世界全体を、互いに影響を受けて相互作用する多数の微視的な構成要素の集まりであると捉えることがある。この場合、現象のシミュレーションは、個々の微視的な構成要素の振る舞いをモデル化し計算機で模擬することになる。このようなシミュレーションの一例として、エージェントベースシミュレーション（Ａｇｅｎｔ−Ｂａｓｅｄ  Ｓｉｍｕｌａｔｉｏｎ、ＡＢＳ）と呼ばれる手法が知られている。【０００３】
特許文献１には、エージェントベースシミュレーションを適用した交通流シミュレーション方式が開示されている。特許文献１の交通流シミュレーションでは、個々の自動車の振る舞いを微視的なエージェントとしてモデル化して、エージェントベースシミュレーションを実行する。【０００４】
非特許文献１には、エージェントベースシミュレーションの一形態として、エージェント間で送受信するメッセージの到着順および内部状態の更新処理の順番を保障する離散イベントシミュレーション（Ｄｉｓｃｒｅｔｅ  Ｅｖｅｎｔ  Ｓｉｍｕｌａｔｉｏｎ）と呼ばれるシミュレーション方式が開示されている。【０００５】
また、エージェントベースシミュレーションのエージェント間のメッセージのやり取りを可視化するために、ネットワーク図が一般的に用いられる。非特許文献２には、複雑な構成のネットワーク図を視覚的に見やすい２次元の配置構成となるように描画するためのグラフ描画アルゴリズムが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第3462589号  「シミュレーション装置」
【非特許文献】
【０００７】
【非特許文献１】Ｋ．Ｄ．  Ｔｏｃｈｅｒ  ａｎｄ  Ｄ．Ｇ．  Ｏｗｅｎ，  “Ｔｈｅ  ａｕｔｏｍａｔｉｃ  ｐｒｏｇｒａｍｍｉｎｇ  ｏｆ  ｓｉｍｕｌａｔｉｏｎｓ”，Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｓｅｃｏｎｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｏｐｅｒａｔｉｏｎａｌ  Ｒｅｓｅａｒｃｈ，  ｐ．  ５０−６８，  １９６０
【非特許文献２】Ｆｒｕｃｈｔｅｒｍａｎ，ｅｔ．ａｌ，“Ｇｒａｐｈ  Ｄｒａｗｉｎｇ  ｂｙ  Ｆｏｒｃｅ−Ｄｉｒｅｃｔｅｄ  Ｐｌａｃｅｍｅｎｔ”，Ｓｏｆｔｗａｒｅ−Ｐｒａｃｔｉｃｅ  ＆  Ｅｘｐｅｒｅｉｅｎｃｅ  （Ｗｉｌｅｙ）  ２１（１１），ｐ．１１２９−１１６４，１９９１
【発明の概要】
【発明が解決しようとする課題】
【０００８】
複雑な社会現象など広範囲な問題にエージェントベースシミュレーションを適用するにあたっての課題は、エージェントベースシミュレーションの結果得られる微視的なエージェントの振る舞いの時系列から、注目すべきエージェント集団の特徴的な振る舞い（巨視的なイベント）を抽出する、巨視的なイベント認識および抽出に関するものである。【０００９】
上述のように、エージェントベースシミュレーションは、世界全体を、互いに影響を受けて相互作用する多数の微視的な構成要素（エージェント）の集まりであるととらえて、エージェントの振る舞い、および、エージェント同士の相互作用をモデル化し計算機で模擬することでシミュレーションを行う。シミュレーションの結果得られるのは、微視的な個々のエージェントの振る舞いの時系列である。一方、シミュレーションを実行するユーザーにとって興味があるのは、多くの場合、微視的な個々のエージェントの振る舞いではなく、ある程度多数のエージェントが集まった集団としての特徴的な振る舞い（巨視的なイベント）である。したがって、シミュレーション結果として得られる多数の個々の微視的なエージェントの振る舞いの時系列から、エージェント集団の振る舞いである巨視的なイベントを抽出する必要がある。【００１０】
現在、多くのエージェントベースシミュレーションの実行環境では、この巨視的なイベント認識および抽出処理は、処理の実行に先立って、どのような巨視的なイベントに注目して抽出するのかをあらかじめ特定する必要がある。例えば、特許文献１で開示されている交通流シミュレーションでは、個々の自動車の振る舞いを微視的なエージェントとしてモデル化して、エージェントベースシミュレーションを実行する。このとき、「渋滞」という巨視的なイベントを、「２０台以上の自動車の列の平均速度が２０ｋｍ毎時以下である状態が１０分以上継続する状態」等とあらかじめ定義しておき、エージェントベースシミュレーションの実行結果から、この定義に合致するような（微視的なエージェントである）自動車の集団を認識・抽出し、渋滞の発生条件等を検討している。【００１１】
しかしながら、複雑な社会現象など広範囲な問題にエージェントベースシミュレーションを適用することを考えると、注目する巨視的なイベント（現象）をあらかじめ特定して定義することは困難である。というのは、一般に、エージェントベースシミュレーションでは、エージェント同士の連鎖的な相互作用により、しばしば、微視的なエージェントのモデルからは予想もつかないような複雑な巨視的なイベントが発生することがある。このため、実際にシミュレーションを実行するまで、どのような巨視的なイベントが発生するのかは予想できず、抽出すべき巨視的イベントをあらかじめ特定することができない。したがって、シミュレーション結果の微視的な個々のエージェントの振る舞いの時系列から、事前にどのようなイベントであるかを特定することなく、巨視的なイベントを自動的に認識・抽出して、ユーザーに提示する手段が必要とされる。【００１２】
本願の発明は以上の課題を鑑みてなされたものであり、エージェントベースシミュレーションのシミュレーション結果に基づき、予め定義されていない巨視的なイベントを自動的に認識・抽出することで、シミュレーション結果を解析する方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明の情報処理システムは、プロセッサと、一時記憶装置と、複数のシナリオのもとでエージェントベースシミュレーションを実行した結果であって、各シナリオのもとで複数のエージェントの各々が送受信したメッセージの履歴を示す時系列のシミュレーション結果データを格納した記憶装置とを備え、前記記憶装置から読みだした前記シミュレーション結果データに基づき、前記複数のエージェントの各々のシミュレーション結果データを前記シナリオ毎に比較することで、前記エージェント毎に、前記複数のシナリオにおける前記シミュレーション結果データの相違度を示す指標値を算出する。
【発明の効果】
【００１４】
本発明によれば、エージェントベースシミュレーションのシミュレーション結果に基づき、予め定義されていない巨視的なイベントを自動的に認識・抽出することが可能になる。これにより、シミュレーション結果の解析を効率よく行うことが可能になる。
【図面の簡単な説明】
【００１５】
【図１】本願の発明が前提とするエージェントベースシミュレーションにおける、多数のエージェントによって構成されたネットワークを模式的に表した図である。
【図２（ａ）】本願の発明が前提とするエージェントベースシミュレーションにおける、エージェントの典型的な構成例を示す図である。
【図２（ｂ）】本願の発明が前提とするエージェントベースシミュレーションにおける、エージェント間で送受信されるメッセージの典型的な構成例を示す図である。
【図３】本願の発明が前提とするエージェントベースシミュレーションにおける、エージェントの動作を示すアクティビティ図である。
【図４（ａ）】本願の発明が前提とする離散イベントシミュレーションにおける、エージェントの典型的な構成例を示す図である。
【図４（ｂ）】本願の発明が前提とする離散イベントシミュレーションにおける、メッセージの典型的な構成例を示す図である。
【図５】本願の発明が前提とする離散イベントシミュレーションにおける、エージェントの動作を示すアクティビティ図である。
【図６】エージェント挙動のシナリオ間ばらつきの算出処理の概念を示す図である。
【図７】本願の発明における未知の巨視的イベントの認識・抽出方法について、その概念を示す図である。
【図８】本願の発明におけるシミュレーション方式および情報処理システムの全体の処理手順を示す図である。
【図９】エージェントベーストシミュレーションを複数シナリオシミュレーションした結果得られるデータを示す図である。
【図１０】エージェント挙動のシナリオ間ばらつきの算出処理における入力データを示す図である。
【図１１（ａ）】巨視的イベントの認識・抽出結果の描画方法の一例を示す図である。
【図１１（ｂ）】巨視的イベントの認識・抽出結果の描画方法の一例を示す図である。
【図１２】巨視的イベント特徴量の集中度の計算方法の一例を示す図である。
【図１３】本願の発明におけるシミュレーション方式および情報処理システムの全体の構成を示す図である。
【図１４】本願の発明におけるシミュレーション方式および情報処理システムの全体のブロック構成を示す図である。
【図１５】本願の実施の形態２における２つのシナリオにおけるエージェントの挙動の類似判定の概念を示す図である。
【図１６】本願の実施の形態２における２つのシナリオにおけるエージェントの挙動の類似判定の様子を示す図である。
【図１７】本願の実施の形態２における２つのシナリオにおけるエージェントの挙動の類似判定の手順を示す図である。
【図１８】本願の実施の形態３における巨視的イベント特徴量の算出処理を説明する図である。
【図１９】本願の実施の形態３における巨視的イベント特徴量の算出処理の計算を示す図である。
【発明を実施するための形態】
【００１６】
これ以降、本願の発明を実施するための形態について述べる。以下の実施の形態においては、便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
【００１７】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【実施例１】
【００１８】
まず、図１〜図５を用いて、エージェントベースシミュレーションの概要を説明する。エージェントベースシミュレーションは、多数のエージェント（あるいはアクターと呼ばれることもある）と呼ばれる動作主体がネットワークを構成しており、エージェント間でメッセージと呼ばれるデータを送受信しながら協調動作することでシミュレーションを行うものである。【００１９】
図１は、エージェントベースシミュレーションにおける、多数のエージェントによって構成されたネットワークを模式的に表した図である。図１で、丸印は個々のエージェントを表しており、矢印はあるエージェントから別のエージェントに向けてメッセージの送信が行われることを表している。エージェントベースシミュレーションにおいては、上記の微視的な構成要素をエージェントとしてモデル化し、微視的な構成要素間の相互関係をメッセージとしてモデル化することで、対象とする世界をシミュレーションする。ここで、あるエージェントから別のエージェントにメッセージが直接交換するとき２つのエージェントは互いに隣に位置すると呼ぶ。また、２つのエージェントがネットワーク上どれだけ離れているか、すなわち、２つのエージェント間でメッセージを交換するために互いに隣に位置するエージェントを何回経由する必要があるか、をホップ数と呼ぶ。【００２０】
図２（ａ）および図２（ｂ）は、エージェントベースシミュレーションにおける、エージェント、およびエージェント間で送受信されるメッセージの典型的な構成例を示す図である。図２（ａ）は、エージェントの構成例を示す図である。図２（ａ）に示したエージェントＡＧＥＮＴは、エージェントの振る舞いプログラムＰＲＯＧと内部状態ＳＴＡＴＥとを格納している記憶領域ＡＧＥＮＴ＿ＳＴＯＲＥと、エージェントプログラム解釈・実行部ＥＸＥＣと、メッセージ受信部ＲＣＶと、メッセージ送信部ＳＥＮＤ、およびこれらを制御して強調動作させるエージェント制御部ＡＧＮＴ＿ＣＴＲＬと、から構成される。また、エージェントＡＧＥＮＴには、エージェントベースシミュレーションを構成する個々のエージェントを一意に識別可能なエージェント識別子ＡＧＥＮＴ＿ＩＤが割り振られている。エージェント識別子ＡＧＥＮＴ＿ＩＤは、メッセージの送信元・受信先の特定、シミュレーション中のログ記録などのために用いられ、典型的には、シミュレーション開始時にシミュレーションシステムにより割り当てられ、シミュレーション終了まで不変である。図２（ｂ）は、エージェント間で送受信されるメッセージＭＥＳの構成例を示す図である。メッセージＭＥＳは、メッセージを一意に識別可能な識別子ＭＥＳ＿ＩＤが割り当てられており、送信元エージェント識別子ＭＥＳ＿ＦＲＯＭ＿ＩＤと、受信先エージェント識別子ＭＥＳ＿ＴＯ＿ＩＤと、メッセージデータＭＥＳ＿ＤＡＴＡと、で構成される。【００２１】
図３は、エージェントの動作を示すアクティビティ図である。エージェントＡＧＥＮＴは、メッセージ受信部ＲＣＶを通じてメッセージを受信すると、エージェントプログラム解釈・実行部ＥＸＥＣにおいて、エージェントの振る舞いプログラムＰＲＯＧにしたがって、エージェントの内部状態ＳＴＡＴＥの更新処理を行う（ステップ１００、１１０）。この過程で必要であれば、エージェントＡＧＥＮＴは、メッセージの送信元エージェント識別子ＭＥＳ＿ＦＲＯＭ＿ＩＤ、メッセージデータＭＥＳ＿ＤＡＴＡ、およびメッセージ受信時点での内部状態ＳＴＡＴＥを参照する。【００２２】
さらに、各エージェントは、上記の内部状態の更新処理の結果、内部状態が、エージェント振る舞いプログラムによって定まる条件に達すると、他のエージェントに対してメッセージの送信処理を行う（ステップ１２０、１３０）。なお、ここで述べた内部状態の更新処理、メッセージの送信の条件、およびメッセージデータの具体的な内容は、シミュレーションしようとしている現象によって異なる。典型的には、シミュレーションを行うユーザーがその具体的な内容をエージェント振舞いプログラムとして記述して、あらかじめシミュレーションシステムならびに計算機に提示した状態でシミュレーションを開始する。あるいは、典型的なエージェント振る舞いプログラムがシミュレーションシステム上でユーザーに提供されており、ユーザーは、エージェント振る舞いプログラムの動作を調整するパラメータのみを設定して、シミュレーションを開始する場合もある。【００２３】
以上のように、エージェントベースシミュレーションでは、対象とする現象を構成する微視的な構成要素をエージェントとしてモデル化し、微視的な構成要素間の相互作用をメッセージとしてモデル化することで、複雑な現象のシミュレーションを実行する。【００２４】
上述のように、一般的なエージェントベースシミュレーションでは、各エージェントは、他のエージェントからのメッセージを受信して内部状態を更新する。しかしながら、上述の典型的なエージェントベースシミュレーションでは、いつ、どのような順序でメッセージが送られて、いつ、どのような順序で内部状態の更新処理が行われるのかがはっきりしない。そこで、非特許文献１では、エージェントベースシミュレーションの特殊な形態として、エージェントの内部状態およびメッセージ、に時刻という特別な情報を付加することで、メッセージの到着順および内部状態の更新処理の順番を保障する離散イベントシミュレーション（Ｄｉｓｃｒｅｔｅ  Ｅｖｅｎｔ  Ｓｉｍｕｌａｔｉｏｎ）と呼ばれるシミュレーション方式を提案している。【００２５】
図４（ａ）および図４（ｂ）は、離散イベントシミュレーションにおける、エージェントおよびメッセージＭＥＳの典型的な構成例を示す図である。図４（ａ）に示した離散イベントシミュレーションにおけるエージェントＡＧＥＮＴは、図２（ａ）に示した典型的なエージェントベースシミュレーションにおけるエージェントにおいて、内部状態ＳＴＡＴＥが、離散イベントシミュレーションのエージェントの内部時刻Ａ＿ＴＩＭＥと、離散イベントシミュレーションのエージェントの内部状態Ａ＿ＳＴＡＴＥと、に細分化したものである。また、図４（ｂ）に示した離散イベントシミュレーションにおけるメッセージは、図２（ｂ）に示した典型的なエージェントベースシミュレーションにおけるメッセージにおいて、メッセージデータＭＥＳ＿ＤＡＴＡが、メッセージ時刻ＭＥＳ＿ＴＩＭＥと、離散イベントシミュレーションにおけるメッセージデータＭＥＳ＿ＡＤＡＴＡと、に細分化したものである。【００２６】
図５は、離散イベントシミュレーションにおけるエージェントの動作を示すアクティビティ図である。離散イベントシミュレーションにおける各エージェントは、シミュレーション開始時に次に自エージェントがメッセージを送信する時刻をシミュレーションシステムに申告して、その時刻まで待機する（ステップ２１０）。【００２７】
もし、申告した時刻までに、他のエージェントが、自エージェント宛てのメッセージを送信しなかった場合には、各エージェントは内部時刻をその時刻まで進めてメッセージを送信する（ステップ２２０、２３０）。その後、各エージェントはエージェント振る舞いプログラムにしたがって内部状態を更新した後、再び次のメッセージ送信時刻をシミュレーションシステムに申告して待機する（ステップ２５０、２１０）。【００２８】
もし、待機中、次のメッセージ送信時刻より前に、他のエージェントより自エージェント宛のメッセージを受信した場合には（ステップ２６０）、各エージェントは、内部時刻をメッセージに付されている時刻に更新した後（ステップ２２０）、エージェント振る舞いプログラムにしたがって内部状態を更新し（ステップ２５０）、さらに、新たな内部状態にもとづいて次のメッセージ送信時刻を決定しなおして、シミュレーションシステムに申告する（ステップ２１０）。【００２９】
以上のように、非特許文献１における離散イベントシミュレーションでは、一般的なエージェントベースシミュレーションにおけるエージェントの内部状態およびメッセージデータに時刻を付加することで、各エージェントにおける、メッセージの到着順および内部状態の更新処理の順番を保つことができ、より複雑なシミュレーションを精密に行うことが可能となる。【００３０】
なお、離散イベントシミュレーションは、一般のエージェントベースシミュレーションにおいて、エージェントの内部状態およびメッセージデータの中に、時刻という特別な情報を必ず持つようにし、また内部状態の更新の仕方に時刻に基づく一定の制限をつけたものである。したがって、離散イベントシミュレーションは、エージェントベースシミュレーションの特別な形態であって、エージェントベースシミュレーション一般についての議論は、全て、離散イベントシミュレーションにもそのまま適用可能である。【００３１】
次に、エージェント集団の特徴的な振る舞い（巨視的なイベント）について説明する。巨視的なイベントは、以下の三つの特徴的な性質を備えている。【００３２】
巨視的なイベントの第一の特徴的な性質は、それが、エージェントベースシミュレーションのネットワーク上で互いに近くに位置する（ホップ数が比較的小さい）多数のエージェントによって構成されていることである。巨視的なイベントは、前述のように、多数の微視的なエージェントの集団の特徴的な振る舞いのことであるが、ユーザーがある巨視的なイベントに注目するのは、とくに、ネットワーク上のある特定の場所で、他の場所とは違った現象が起こっている場合である。たとえば、前述の交通流シミュレーションにおける「渋滞」という巨視的なイベントは、ある特定の地点付近における自動車の集団的な振る舞いのことである。したがって、巨視的なイベントを自動的に認識・抽出は、エージェントのネットワーク上で互いに距離が近いエージェントの集合を抽出する必要がある。【００３３】
巨視的なイベントの第二の特徴的な性質は、ある巨視的なイベント、すなわち、エージェント集団の特徴的な振る舞いが、ユーザーの興味を惹くのは、その巨視的なイベントが起こる場合と起こらない場合とがある場合である、ということである。例えば、前述の交通流シミュレーションにおいて、ユーザーが「渋滞」という巨視的なイベントに注目するのは、渋滞が起こったり起こらなかったりするからであって、自動車の数が極端に少なく渋滞が全く起こらない世界、あるいは逆に常に渋滞が発生しており決して解消することがないような世界、では渋滞という現象は人々の興味をひくことはない。したがって、巨視的なイベントを自動的に認識・抽出は、単一のシナリオのシミュレーション結果にのみ注目して、個々の微視的なエージェントの振る舞いを詳細に調べるのではなく、複数のシナリオの元で複数回シミュレーションを行い、その結果同士を比較する必要がある。【００３４】
巨視的なイベントの第三の特徴的な性質は、巨視的なイベント、すなわち、エージェント集団の特徴的な振る舞いは、それを構成する個々の微視的なエージェントの振る舞いに注目すると、多くの異なる状態をとりえる、ということである。例えば、前述の交通流シミュレーションにおいて、ある場所で「渋滞」という巨視的なイベントが発生しているといったとき、渋滞を構成している自動車は常時入れ替わり続けている。また、渋滞中では自動車は前進と停止とを繰り返しているが、単一の渋滞であっても、その渋滞を構成している個々の自動車によって、前進と停止の入れ替わりのパターンは大きく異なっている。すなわち、「渋滞」という単一の巨視的なイベントは、個々の微視的な自動車の振る舞いに注目すると全く異なる多くの状態の総称であることがわかる。これは、多くの原子で構成される結晶の統計力学的な描像において、結晶が基底状態にあるというのが全ての原子がエネルギー基底状態にあるという唯一の状態を指しているのに対して、結晶が励起状態にあるというは、例えば結晶を構成する多数の原子のうちの一定の割合が励起状態にあることを指しており、個々の原子が基底・励起状態に注目すると、非常に多数の状態の総称となっている、という事実に比肩される。【００３５】
以上で述べた、巨視的なイベントについての三つの性質を考慮すると、複数のシナリオの元で複数回のシミュレーションを行い、各シナリオ間で対応するエージェントの挙動を比較し、挙動のばらつきが大きいエージェントがネットワーク上で互いに近くに位置している場所を探すことで、ユーザーの興味をひく可能性がある未知の巨視的なイベントを自動的に認識・抽出することが可能となる。【００３６】
図６および図７は、以上で述べた、本実施例における巨視的なイベントの自動的な認識・抽出方法の概念をより具体的に説明する図である。前述の巨視的なイベントに関する第二の特徴で述べたように、巨視的なイベントを自動的に認識・抽出は、複数のシナリオの元で複数回シミュレーションを行い、その結果同士を比較するという操作が必要である。そこで、まず、Ｍ個のシナリオのもとでシミュレーションを実行する。【００３７】
図６は、Ｍ個のシナリオのもとでシミュレーションを実行したときの、各シナリオでの時刻ｔにおけるエージェントの状態を、エージェントのネットワーク上に示したものである。次に、全てのエージェントについて、別のシナリオにおける対応するエージェント（エージェント間のネットワーク上で同一位置にあるエージェント）同士を比較しそのエージェントの挙動がシナリオ間でどの程度ばらついているか、を指標化する。前述の、巨視的なイベントに関する第一、および、第三の特徴を考えると、このエージェント挙動のシナリオ間ばらつきが大きなエージェントが、エージェントネットワーク上で近くに集まっている場所では、ユーザーの興味を惹くような巨視的なイベントが発生している可能性が高い。【００３８】
図７では、エージェント間のネットワーク上に、エージェント挙動のシナリオ間ばらつきの大きさを、その等高線と共に図示することで、エージェント挙動のシナリオ間ばらつきが大きなエージェントがネットワーク上の近い位置に集中している場所、すなわち、ユーザーの興味を惹くような巨視的なイベントが発生している可能性が高い場所を示している。【００３９】
図８は、本実施例における巨視的なイベントの自動的な認識・抽出処理の具体的な手順を示した図である。全体の処理は、与えられた複数シナリオシミュレーションの実行（ステップ３１０）、および、そのシミュレーション結果を用いての巨視的なイベントの自動認識・抽出（ステップ３２０〜３４０）、の２つの処理からなる。【００４０】
複数シナリオシミュレーションは、ユーザーが与えた、あるいは与えられた日条件からシミュレーションシステムが乱数等を用いて生成した複数のシナリオのもとで、エージェントベースとシミュレーションを行う処理である。これは、例えば、既存のエージェントベーストシミュレーターを用いて、シナリオの数だけ複数回シミュレーションを実行することで実現可能である。【００４１】
図９は、Ｎ個のエージェントで構成されるエージェントベーストシミュレーションを、Ｍ個のシナリオのもとで複数シナリオシミュレーション実行した結果データを模式的に表す図である。Ｎ×Ｍ個のエージェントそれぞれについてエージェントの挙動のデータが得られる。ここで、エージェントの挙動とは、エージェントの内部状態の遷移の履歴、エージェント送信した全メッセージの履歴（メッセージの送信時刻、宛先エージェント、メッセージ内容）、および、エージェント受信した全メッセージの履歴（メッセージの受信時刻、送信元エージェント、メッセージ内容）、を意味している。【００４２】
複数シナリオシミュレーションの完了後、シミュレーション結果を用いて、巨視的なイベントの自動認識・抽出処理を行う（ステップ３２０、３３０、３４０）。巨視的なイベントの自動認識・抽出処理は、時刻ｔをある値に固定した上で、その時刻における巨視的なイベントの検出する、という処理を、シミュレーションの全時刻にわたって繰り返し実行することで行う。【００４３】
与えられた時刻における巨視的なイベントの検出の処理は、全てのエージェントについて、その時刻における該エージェントの挙動が各シナリオでどれぐらい異なっているか、そのばらつきの大きさ、すなわち、エージェント挙動のシナリオ間ばらつき、を算出する第一の処理（ステップ３２０）と、エージェント挙動のシナリオ間ばらつきから、エージェント間のネットワーク構造に起因する分を差し引くことで、該エージェントの巨視的イベント特徴量、を算出する第二の処理（ステップ３３０）、および、巨視的イベント特徴量が大きいエージェントがエージェント間のネットワーク上で互いに近く（ホップ数が小さい）に固まって存在している特異的な場所を探索する第三の処理（ステップ３４０）、の３つの処理で構成される。【００４４】
もし、そのような特異的な場所が存在すれば、時刻ｔにおけるその場所において、何らかの巨視的なイベントが発生している可能性があることになる。注目時刻ｔをシミュレーションの全時刻にわたって変化させながら、以上の３つの処理を繰り返し行うことで、そのシミュレーションにおける全ての巨視的なイベントを自動的に認識・抽出することが可能となる。以下、この３つの処理について詳細に説明する。【００４５】
第一の処理（ステップ３２０）、すなわち、エージェント挙動のシナリオ間ばらつきの算出処理における「エージェントの挙動」とは、シミュレーション開始時刻から注目時刻ｔまでにおける、当該エージェントの内部状態の遷移、および、当該エージェントが送受信した全てのメッセージの履歴、のことである。エージェント挙動のシナリオ間ばらつき、すなわち、エージェントの挙動が各シナリオでどれぐらい異なっているか、を算出する処理は、具体的には、各シナリオにおける、当該エージェントの時刻ｔまでの内部状態の遷移および当該エージェントが送受信した全てのメッセージの履歴、を比較し、そのばらつきの大きさという単一の指標を何らかの手段で指標化する処理を指している。【００４６】
図１０は、第一の処理（ステップ３２０）における入出力データを示している。第一の処理の特徴は、複数シナリオシミュレーションによって得られたＮ×Ｍ個のエージェントの挙動のデータを、Ｍ個のシナリオにおける同一の（対応する）エージェントを単位として処理することである。具体的には、Ｍ個のシナリオにおけるエージェント１の時刻ｔ以前の挙動、すなわち、シミュレーション開始時刻から時刻ｔまでにおける、エージェント１の内部状態の遷移の履歴、および、エージェントが送受信した全てのメッセージの履歴、を比較して、時刻ｔにおけるエージェント１のシナリオ間ばらつき、という単一の指標を算出する処理を、Ｎ個のエージェントそれぞれについて行う。【００４７】
エージェントの挙動、すなわち、内部状態の遷移および当該エージェントが送受信した全てのメッセージの履歴のうち、どれを重視して相違度を指標化するのかは、巨視的なイベント認識・抽出処理の性能（認識精度）に関わるパラメータであり任意性がある。したがって、実施の形態としては、例えば、各シナリオにおける、エージェントの挙動、すなわち、内部状態の遷移および当該エージェントが送受信した全てのメッセージの履歴から、エージェント挙動のシナリオ間ばらつき、という単一の指標を算出する具体的な処理内容をユーザー、すなわち、エージェントモデルの作成者、に記述してもらい、巨視的なイベントの認識・抽出処理途中でユーザーが記述した処理を呼び出す、という形態もありえる。エージェントモデルの作成者は、エージェントの内部状態ややり取りされるメッセージの具体的な内容を知っているため、効率的、かつ、イベント認識・抽出処理の性能が高い、エージェント挙動のシナリオ間ばらつきの算出法を記述できる可能性がある。【００４８】
しかしながら、全てのシナリオにおける当該エージェントの挙動、すなわち、内部状態の遷移および当該エージェントが送受信した全てのメッセージの履歴から、直接、エージェント挙動のシナリオ間ばらつきという単一の指標を算出する処理を記述することは、ユーザーにとって負担が大きい。そこで、ユーザーは、任意に与えられた２つのシナリオにおいて、時刻ｔにおける注目エージェントの挙動、すなわち、内部状態の遷移および当該エージェントが送受信した全てのメッセージの履歴から、該２つのシナリオにおけるエージェント挙動のシナリオ間の類似度を算出する処理のみを記述し、そこから、エージェント挙動のシナリオ間ばらつきを算出する方法もありえる。この場合、エージェント挙動のシナリオ間ばらつきを、例えば、全てのシナリオの２つ組の組み合わせについてエージェント挙動のシナリオ間の類似度を算出し、全てのシナリオをノードとし、シナリオ間の類似度を重みとするエッジでつないだネットワークの直径、あるいは、該ネットワークの重み付き最小全域木（スパニング木）のエッジの重みの総計、とすることが考えられる。【００４９】
あるいは、ユーザーは、任意に与えられた２つのシナリオにおいて、時刻ｔにおける注目エージェントの挙動、すなわち、内部状態の遷移および当該エージェントが送受信した全てのメッセージの履歴から、該２つのシナリオにおける該エージェントの挙動が類似しているか否かの２値のみを返す処理を記述し、そこから、エージェント挙動のシナリオ間ばらつきを算出する方法もありえる。この場合、エージェント挙動のシナリオ間ばらつきとして、全てのシナリオをシナリオ同士が類似しているか否かによっていくつかのグループ（同値類）に分類したときのグループの数、とすることが考えられる。なお、後記の本願の発明の実施例２においては、この２つのシナリオにおける時刻ｔにおけるあるエージェントの挙動が類似しているか否かの２値のみを返す処理の中身をユーザーに記述してもらうことなく、自動的に行う実施の形態の例を記す。【００５０】
次に、第二の処理（ステップ３３０）、すなわち、エージェントの巨視的イベント特徴量を算出する処理について説明する。エージェントベーストシミュレーションでは、前述のようにエージェントはネットワークを構成して互いにメッセージを送受信しあう。通常、エージェント間のネットワークは一様ではなく、多くのエージェントと高頻度でメッセージの送受信を行っているエージェント（ハブ・エージェント）や、少数のエージェントとのみ低頻度でメッセージの送受信を行っているエージェントも存在する。したがって、全てのシナリオにおける注目エージェントの挙動、すなわち、内部状態の遷移および当該エージェントが送受信した全てのメッセージの履歴から、個々のエージェントの挙動のシナリオ間ばらつきを指標化すると、多くのエージェントと高頻度でメッセージの送受信を行っているエージェントと、少数のエージェントとのみ低頻度でメッセージの送受信を行っているエージェントと、で、平均的なエージェント挙動のシナリオ間ばらつきが異なる。【００５１】
ところで、後で詳述する第三の処理（ステップ３４０）、すなわち、巨視的なイベントの認識・抽出は、シナリオ間で挙動のばらつきが大きいエージェントがネットワーク上で近く範囲に特異的に集中している場所を探すことで行う。この処理をうまく行うには、第三の処理に先だって、あらかじめ、エージェント挙動のシナリオ間ばらつきから、ネットワーク構造に起因する分を差し引いて、エージェントの挙動のばらつきの平均的な値が、ネットワーク上で均一になるようにしておく必要がある。このため、本実施の形態１では、第二の処理の処理として、エージェント挙動のシナリオ間ばらつきから、エージェント間のネットワーク構造に起因する分を差し引くことで、該エージェントの巨視的イベント特徴量、を算出する処理を行っている。ただし、エージェントモデルや、ネットワーク構造によっては、この第二の処理を省略して、第一の処理で算出したエージェント挙動のシナリオ間ばらつきを、そのまま該エージェントの巨視的イベント特徴量、とすることも可能である。【００５２】
エージェント挙動のシナリオ間ばらつきのうちエージェント間のネットワーク構造に起因する分がどの程度であるかは、エージェント挙動のシナリオ間ばらつきの算出法に依存している。したがって、エージェント挙動のシナリオ間ばらつきの算出法の記述者が、そのエージェント挙動のシナリオ間ばらつきの指標において、エージェント間のネットワーク構造に起因する分がどの程度であるかを、同時に記述する、という実施形態が考えられる。しかしながら、エージェント挙動のシナリオ間ばらつき、のうち、エージェント間のネットワーク構造に起因する分がどの程度であるかを記述することは、記述者にとって負担が大きい。後記の実施例３において、エージェント挙動のシナリオ間ばらつき、のうち、エージェント間のネットワーク構造に起因する分がどの程度であるか、を自動的に算出する実施の形態の例を記す。【００５３】
エージェント挙動のシナリオ間ばらつき、のうち、エージェント間のネットワーク構造に起因する分が算出できれば、それを、前記の第一の処理で算出したエージェント挙動のシナリオ間ばらつきから差し引くことで、エージェントの巨視的イベント特徴量を得ることができる。【００５４】
次に、第三の処理（ステップ３４０）、すなわち、巨視的イベント特徴量が大きいエージェントがエージェント間のネットワーク上で互いに近く（ホップ数が小さい）に固まって存在している特異的な場所を探索することで、未知の巨視的イベントを自動的に認識・抽出する第三の処理、について説明する。この第三の処理は、ユーザーが人手で処理する方法と、機械が自動的に行う方法とが考えられる。【００５５】
図１１は、第三の処理をユーザーが人手で行う場合の、ユーザーへの情報提示の方法の例である。エージェントのネットワークを画面あるいは何らかの情報表示装置の上に表示し、それぞれのエージェントの上に巨視的イベント特徴量を表示するといった手段によって、ユーザーが、巨視的イベント特徴量が大きなエージェントが集中している場所を発見できるようにする。ここで、エージェントのネットワークを画面あるいは何らかの情報表示装置の上に表示する手段としては、エージェントのネットワークを、近い（互いにホップ数が小さい）エージェントが近くに配置されるように、１次元、あるいは、２次元、あるいは３次元の空間に埋め込んで表示することが考えられる。これは、非特許文献２によって開示されている力学的モデルによるグラフ描画アルゴリズムなどの公知の手段によって達成できる。また、描画したエージェント間のネットワーク上に、巨視的イベント特徴量を表示するには、図１１（ａ）に示したように、それぞれのエージェントを表す印の色の差異や濃淡で表す、あるいは、個々のエージェントが識別できないほどエージェント数が多い場合には、図１１（ｂ）で示したように、巨視的イベント特徴量の等高線を描く、などの手段が考えられる。等高線を描く場合には、各エージェントの巨視的イベント特徴量をいくつかのレベルに分類し、エージェント間のネットワーク上に、巨視的イベント特徴量が同一レベルに属するエージェントを結ぶ線を重ねて描画することで、巨視的イベント特徴量が大きいエージェントがエージェント間のネットワーク上で互いに近くに固まって存在している特異的な場所をユーザーが見出すことが容易になる。【００５６】
第三の処理（ステップ３４０）を自動的に行う場合には、例えば、全エージェントについて、巨視的イベント特徴量の集中度、すなわち、巨視的イベント特徴量が大きなエージェントが注目エージェントの周りにどの程度集中しているかを表す指標、を算出し、巨視的イベント特徴量の集中度が高いエージェントを抽出することで行う。【００５７】
エージェントｉの巨視的イベント特徴量の集中度Ｍ（ｉ）は、例えば、図１２に示したような式で計算することができる。ここで、Ｄ（ｉ，ｊ）は、エージェントｉとエージェントｊとのネットワーク上の距離（ホップ数）を表す。βは０以上１未満の実数のパラメータであり、シミュレーション対象のエージェントモデルによってその最適値は異なるが、多くの場合、β＝１／３〜１／２程度にするのがよい。その後の巨視的イベント特徴量の集中度が高いエージェントを抽出する処理は、あらかじめ特定の閾値を決めて設定しておいて集中度が閾値を越えるエージェントを抽出する、あるいは、巨視的イベント特徴量の集中度Ｍ（ｉ）の上位数パーセントをとる、などの手段が考えられる。【００５８】
なお、以上で述べた処理手順においては、全体の処理を、複数のシナリオのもとでエージェントベーストシミュレーションの実行、および、そのシミュレーション結果を用いての本願の発明の実施例１における本質的な処理である巨視的なイベントの自動認識・抽出、の２つの処理に分けて実行している。しかしながら、後半の巨視的なイベントの自動認識・抽出処理においては、最初に注目時刻ｔを定めて、その時刻以前のエージェント挙動のシナリオ間相違度のみを用いて巨視的なイベントの自動認識・抽出を行っていることを考慮すると、複数のシナリオのもとでのシミュレーションを実行している途中で、それまでにシミュレーションが終了した時刻ｔまでについて、巨視的なイベントの自動認識・抽出処理を並行して実行することも可能である。【００５９】
図１３は、本実施例におけるシミュレーション方式および情報処理システムについて、その構成例を示す図である。図１３に示した情報処理システムは、１つまたは複数の計算ノードＣＡＬＣ＿ＮＯＤＥと、ユーザーと情報処理システムとのインタフェースとなるコントロール端末ＴＥＲＭと、を通信スイッチＣＯＭ＿ＳＷで結合した構成となっている。各計算ノードＣＡＬＣ＿ＮＯＤＥは、中央演算処理装置ＣＰＵと、一時記憶装置ＲＡＭと、記憶装置ＳＴＯＲと、通信デバイスＣＯＭ＿ＤＥＶと、を有する。計算ノードＣＡＬＣ＿ＮＯＤＥは、例えばサーバ装置である。【００６０】
中央演算処理装置ＣＰＵは、あらかじめ定められた手順にしたがって、一時記憶装置ＲＡＭおよび記憶装置ＳＴＯＲからデータを取り出して演算処理を行う。またこの際に、各計算ノードＣＡＬＣ＿ＮＯＤＥは、他の計算ノードＣＡＬＣ＿ＮＯＤＥから送られたデータを通信デバイスＣＯＭ＿ＤＥＶで受信し、演算処理に用いる。各計算ノードＣＡＬＣ＿ＮＯＤＥは、演算処理した結果を、一時記憶装置ＲＡＭまたは記憶装置ＳＴＯＲに格納、あるいは、通信デバイスＣＯＭ＿ＤＥＶを通じて他の計算ノード宛てに送信する。ユーザーから情報処理システムへのデータ入力、あるいは、情報処理システムの処理結果のユーザーへの提示は、コントロール端末ＴＥＲＭを通じて行われる。図１３に示した情報処理システムでは、このようにして複数の計算ノードで並列的に演算処理を実行することが可能である。なお、図１３に示した情報処理システムの構成は、一例として示したにすぎず、たとえば、記憶装置ＳＴＯＲや、一時記憶装置ＲＡＭを、計算ノードＣＡＬＣ＿ＮＯＤＥにそれぞれに配置するのではなく、多数の計算ノードＣＡＬＣ＿ＮＯＤＥで記憶装置ＳＴＯＲや、一時記憶装置ＲＡＭを共用する構成、あるいは、各計算ノードＣＡＬＣ＿ＮＯＤＥに複数の中央演算処理装置ＣＰＵを配置する構成等、様々なバリエーションが考えられる。【００６１】
図１４は、本実施例の巨視的なイベントの自動認識・抽出を実行するシミュレーション方式および情報処理システムＭＥＲ＿ＳＹＳＴＥＭの全体構成を示す図である。図１４に示したマルチシナリオシミュレーションシステムＭＥＲ＿ＳＹＳＴＥＭは、複数シナリオシミュレーションを実行する複数シミュレーションシステムＭＳと、巨視的なイベントの自動認識・抽出を行う巨視的イベント認識・抽出部ＭＥＲと、を有している。【００６２】
複数シミュレーションシステムＭＳは、入力として与えられた１個または複数のシミュレーション条件から、複数のシミュレーションシナリオを生成する複数シミュレーションシナリオ生成部ＭＳ＿ＧＥＮと、複数のシナリオの下で実際にシミュレーションを実行する複数シナリオシミュレータＭＳ＿ＣＯＲＥと、を有する。ただし、入力として十分な数のシミュレーション条件が与えられる場合には、複数シミュレーションシナリオ生成部ＭＳ＿ＧＥＮを省略して、直接、入力された複数のシミュレーション条件の下でシミュレーションを実行してもよい。複数シナリオシミュレータＭＳ＿ＣＯＲＥが出力したシミュレーション実行結果は記憶装置ＭＳ＿ＳＴＯＲＥに記憶される。【００６３】
巨視的イベント認識・抽出部ＭＥＲは、ＭＳ＿ＳＴＯＲＥに記憶されている複数シナリオのシミュレーション結果から、エージェント挙動のシナリオ間ばらつきを算出するエージェント挙動のシナリオ間ばらつき算出部ＢＶＣと、エージェント挙動のシナリオ間ばらつきからネットワーク依存分を差し引くことでエージェントの巨視的イベント特徴量を算出するエージェントの巨視的イベント特徴量算出部ＢＶＣと、エージェントの巨視的イベント特徴量がネットワーク上で集中している場所を探索する巨視的イベント特徴量の集中箇所探索部ＭＥＳと、を有する。【００６４】
また、エージェントの巨視的イベント特徴量算出部ＢＶＣは、入力として与えられたエージェント間のネットワーク構造、および、記憶装置ＭＳ＿ＳＴＯＲＥに記憶されている複数シナリオシミュレーション結果から、エージェント挙動の
シナリオ間ばらつきのネットワーク依存分を算出するエージェント挙動のシナリオ間ばらつきのネットワーク依存分の算出部ＢＶＮＣと、エージェントの巨視的イベント特徴量算出部ＢＶＣで算出したエージェントの巨視的イベント特徴量から、エージェント挙動のシナリオ間ばらつきのネットワーク依存分を差し引く処理を行う差し引き処理部ＳＵＢと、を有する。ただし、前述したように、差し引き処理ＳＵＢで行われる処理は、単純な減算のみならず、エージェント挙動のシナリオ間ばらつきのα乗から、ネットワーク構造に起因する分のα乗を減算して、そのα乗根をとる、などといった処理である実施の形態もある。【００６５】
また、巨視的イベント特徴量の集中箇所探索部ＭＥＳは、システムで自動的に実行する実施の形態の他に、前述したようにユーザーによる人手で行う実施の形態もありえる。また、巨視的イベント特徴量の集中箇所探索部ＭＥＳによって見出されたユーザーの興味を惹く可能性がある巨視的なイベントの候補は、図１１で示したような手段によって、コントロール端末ＴＥＲＭを通じてユーザーに提示される。【００６６】
以上のように、本実施例では、エージェントベーストシミュレーションの結果得られる微視的なエージェントの振る舞いの時系列から、ユーザーにとって未知の注目すべきエージェント集団の特徴的な振る舞い（巨視的なイベント）を認識および抽出する手段を提供することが可能となる。
【実施例２】
【００６７】
実施例２では、前述の実施例１で示した巨視的なイベントの認識・抽出のための第一の処理、すなわち、エージェント挙動のシナリオ間ばらつきを算出する処理について、その具体的な実施の形態の例を示す。【００６８】
前述のように、巨視的なイベントの認識・抽出のための第一の処理、すなわち、エージェント挙動のシナリオ間ばらつきを算出する処理は、注目エージェントの時刻ｔまでの挙動、すなわち、内部状態の遷移および当該エージェントが送受信した全てのメッセージの履歴を、全てのシナリオ間で比較し、そのばらつきの大きさを何らかの手段で指標化する処理を指している。このとき、どのようにエージェントの挙動のシナリオ間での比較しエージェント挙動のシナリオ間ばらつきという単一の指標を算出するかは、巨視的なイベントの認識・抽出処理全体の性能に大きく影響する。一般に、最適な指標化の方法は、エージェントモデルの内容に依存しているため、ユーザー、すなわち、エージェントモデルの内容の記述者がエージェント挙動のシナリオ間ばらつきの算出方法を記述することが望ましいが、これはユーザーの負担が大きい。したがって、エージェントモデルの内容に関わらず、エージェント挙動のシナリオ間ばらつきを自動的に算出する汎用的な方法が必要となる。【００６９】
指標化の具体的な処理方法として、任意に与えられた２つのシナリオにおいて、時刻ｔにおける注目エージェントの挙動、すなわち、内部状態の遷移および当該エージェントが送受信した全てのメッセージの履歴から、該２つのシナリオにおける該エージェントの挙動が類似しているか否かの２値のみを返す処理、を用いて、全てのシナリオをシナリオ同士が類似しているか否かによっていくつかのグループ（同値類）に分類し、分類したグループの数をエージェント挙動のシナリオ間ばらつきとする、という形態がある。本実施の形態２では、この２つのシナリオにおける時刻ｔにおけるあるエージェントの挙動が類似しているか否かの２値のみを返す処理の中身をユーザーに記述してもらうことなく、自動的に行う実施の形態の例を記す。【００７０】
ところで、エージェント挙動のシナリオ間ばらつきを自動的に算出する、すなわち、エージェントモデルの具体的な内容に依存せずに、エージェント挙動のシナリオ間ばらつきを算出することは、本質的に困難な作業である。なぜなら、エージェントの挙動、すなわち、エージェントの内部状態、あるいは、エージェント間で送受信されるメッセージ、の中身はエージェントモデルの記述者がモデルに応じて自由に設定にするものであるため、エージェントモデルの記述内容を知らない限り、そもそも、シナリオ間で、エージェントの挙動、すなわち、エージェント内部状態、および、エージェント間で送受信されるメッセージの履歴、を比較すること自体が不可能であるため、である。可能なのは、エージェントの内部状態、と、エージェント間で送受信されたメッセージを、意味のないビット列だと見なして、シナリオ間でビット単位の比較する、といった形態のみである。【００７１】
しかしながら、エージェントの内部状態、および、エージェント間で送受信されたメッセージ、を無意味なビット列と見なしてエージェント挙動のシナリオ間ばらつきを算出する方法では、エージェント挙動のばらつきの精度が悪く、巨視的なイベントの認識・抽出処理全体の性能が低下することが容易に想像できる。【００７２】
そこで、実施例２では、エージェント挙動のばらつきとして、注目エージェントが受信したメッセージの数と、メッセージの送信元エージェント、および、メッセージの送信時刻、に着目する。前述のように、エージェントベーストシミュレーションでは、ユーザーは、メッセージを受信したときにどのようにエージェントの内部状態を更新し、また、他エージェントに対していつどのようなメッセージを送信するか、をエージェントモデルとして記述し、実際のエージェント内部状態の更新処理の起動、あるいは、エージェント間でのメッセージの配送は、シミュレータが行う。したがって、あるエージェントが受信したメッセージの数、メッセージの送信元エージェント、および、メッセージの送信時刻は、エージェントモデルの具体的な内容に関わらず、シミュレーションシステムが常に利用可能な情報である。【００７３】
図１５は、受信したメッセージの数と、メッセージの送信元エージェント、および、メッセージの送信時刻に着目して、異なるシナリオにおいてエージェントの挙動が類似しているか否かを判定する処理について、その処理内容を概念的に説明する模式図である。図１５は、Ａ、Ｂ、Ｃ、および、Ｄという４つのエージェントで構成されるエージェントベーストシミュレーションを、シナリオ１、シナリオ２、および、シナリオ３の３つのシナリオで複数シナリオシミュレーションした例を示している。【００７４】
全てのシナリオにおいて、エージェントＡは、エージェントＢ、エージェントＣ、エージェントＤの３つのエージェントから、それぞれ、時刻ｔ１、ｔ２、ｔ３にメッセージを受信するものとする。このとき、それぞれのシナリオでは、シミュレーション条件が異なるために、ｔ１、ｔ２、ｔ３の時刻は異なっている。ここで、シナリオ１、シナリオ２では、ｔ１＜ｔ２という関係が成立するのに対し、シナリオ３では、ｔ１とｔ２の前後関係が逆転して、ｔ２＜ｔ１となっていたとする。このとき、２つのシナリオにおいて、全ての受信メッセージの送信元の順序が同一であるときにはエージェント挙動は類似している、逆に、受信メッセージの送信元の順序が一つでも異なっている場合にはエージェント挙動は類似していない、と判定する。【００７５】
図１５の例であれば、エージェントＡは、シナリオ１およびシナリオ２においては、最初にエージェントＢからのメッセージを受信するのに対して、シナリオ３では最初にエージェントＣからのメッセージを受信する。この場合、シナリオ１とシナリオ２におけるエージェントＡの挙動は類似しているのに対して、シナリオ１とシナリオ３、および、シナリオ２とシナリオ３、におけるエージェントＡの挙動は類似していない、と判定される。したがって、エージェントＡに着目すると、全シナリオは、シナリオ１とシナリオ２で構成されるグループと、シナリオ３で構成されるグループ、の２つのグループに分割されることになる。したがって、エージェントＡのシナリオ間の挙動のばらつきの大きさは２となる。【００７６】
図１６は、シナリオ間でのエージェントの挙動のばらつきが時間的に変化する様子の例を示す図である。図１６では、シナリオ１からシナリオ５までの計５つのシナリオを複数シナリオシミュレーションした場合に、エージェントＡについて、各シナリオにおいてエージェントＡが受信したメッセージの時間的な順序と、エージェントＡのシナリオ間の挙動のばらつきの大きさの変化を示している。図の右側には、シナリオ１からシナリオ５までのそれぞれのシナリオにおける、受信メッセージが、メッセージの送信元エージェント（ｆｒｏｍ）、および、メッセージの送信時刻（ｔｉｍｅ）と、ともに図示されている。図１６では、上から下に向かって時刻が進んでおり、それぞれのシナリオにおける受信メッセージは、受信時刻（ｔｉｍｅ）を基準に上から下に並んでいる。５つ全てのシナリオにおいて、エージェントＡが最初に受信するメッセージはエージェントＢが送信したものである。【００７７】
したがって、最初は、５つ全てのシナリオが類似している、すなわち、エージェントの挙動のばらつきの大きさは１である。ところが、２番目に受信するメッセージは、シナリオ１からシナリオ３ではエージェントＣが送信したもの、シナリオ４およびシナリオ５ではエージェントＤが送信したもの、である。したがって、エージェントＡの挙動は、シナリオ１からシナリオ３までのグループと、シナリオ４およびシナリオ５のグループと、の２つの類似グループに分類され、エージェントＡの挙動のばらつきの大きさは２となる。その後も同様にして、エージェントＡのシナリオ間ばらつきの大きさは、図の右側に示した各シナリオにおけるメッセージの受信順にもとづいて増加する。【００７８】
この判定法における、シナリオの類似判定処理は、受信したメッセージの送信時刻（受信時刻）そのものではなく、受信メッセージの送信元エージェントの順序にのみ注目することが特徴である。これは、前述したように、エージェントベーストシミュレーションでは、各エージェントはメッセージを受信するたびに、エージェント処理を起動して内部状態を更新する。したがって、メッセージの送信元エージェントが同じであれば、エージェント処理の起動の順序は変わらないため、２つのシナリオにおけるエージェントの挙動は類似していると考えられるためである。【００７９】
図１７は、与えられた２つのシナリオにおいてエージェントの挙動が類似しているか否かを判定する処理の手順を示した図である。本処理は、注目するエージェント、注目時刻ｔ、および、類似関係を判定する２つのシナリオ、を入力されて、時刻ｔにおけるエージェントの挙動が２つのシナリオにおいて類似しているか否かの判定結果を２値を出力する。判定は、注目時刻ｔ以前にエージェントが受信した全てのメッセージの数と送信元の順序が同じかを調べることで行う。【００８０】
具体的には、まず、２つのシナリオそれぞれにおいて、注目時刻ｔ以前にエージェントが受信したメッセージの数を比較する（ステップ４１０）。メッセージの数が同じでなければ、類似していないと判定する（ステップ４２０）。受信したメッセージの数が同じ場合、受信したメッセージ全てを送信時刻の順に整列して比較したときに（ステップ４３０、４４０）、メッセージの送信元エージェントが全てのメッセージについて同じであれば類似している（ステップ４６０）、１つでもメッセージの送信元エージェントが異なっていれば類似していない（ステップ４５０）、と判定する。【００８１】
なお、エージェントが受信したメッセージの数と、メッセージの送信元エージェント、および、メッセージの送信時刻、に着目するかわりに、エージェントが送信したメッセージの数と、メッセージの受信先エージェント、および、メッセージの送信時刻、に着目して同様の処理を行うことも可能である。また、エージェントベーストシミュレーションでは、エージェントがメッセージを受信したときにエージェントの内部状態の更新処理が起動されることを考えると、受信メッセージの数および、メッセージの送信時刻の代わりに、エージェント内部状態更新処理の起動回数および起動時刻、を用いる実施の形態も可能である。【００８２】
以上のように、実施例２では、巨視的なイベントの認識・抽出のための第一の処理、すなわち、エージェント挙動のシナリオ間ばらつきを算出する処理を、エージェントモデルの内容に関わらず自動的に算出することが可能となる。
【実施例３】
【００８３】
実施例３では、前述の実施の形態１で示した巨視的なイベントの認識・抽出のための第二の処理（ステップ３３０）、すなわち、すなわち、エージェントの巨視的イベント特徴量を算出する処理について、その実施の形態の例を記す。【００８４】
前述のように、実施例１で示した巨視的なイベントの認識・抽出のための第一の処理（ステップ３２０）では、各シナリオにおけるエージェントの挙動、すなわち、エージェントの内部状態の遷移および当該エージェントが送受信した全てのメッセージの履歴から、エージェント挙動のシナリオ間ばらつきを算出する。エージェントの内部状態の更新処理は、エージェントがメッセージを受信したタイミングで行われることを考慮すると、このようにして算出したエージェント挙動のシナリオ間ばらつきは、エージェントがメッセージを受信する頻度に、強い相関があると考えられる。したがって、エージェント挙動のシナリオ間ばらつきのうち、エージェント間のネットワーク構造に起因する分の算出には、各エージェントが受信したメッセージの頻度を考慮する必要がある。【００８５】
エージェント挙動のシナリオ間ばらつきのうち、エージェント間のネットワーク構造に起因する分を算出するには、例えば、エージェント挙動のシナリオ間ばらつきを、時刻ｔまでのエージェントのメッセージの数で回帰すればよい。具体的には、第一の処理で算出した時刻ｔにおけるエージェントｉの挙動のシナリオ間ばらつきをＶ（ｉ）を目的変数、全てのシナリオおいて時刻ｔまでにエージェントｉが受信したメッセージの数の平均Ｒ（ｉ）を説明変数として、全てのエージェントについてのＶ（ｉ）とＲ（ｉ）を事例データとして用いて回帰分析を行う。ここで、Ｒ（ｉ）は、シナリオｓにおいて、時刻ｔまでにエージェントｉが受信したメッセージの数Ｒ（ｉ；ｓ）を、Ｍ個のシナリオ（ｓ＝１からＭ）について足し合わせて、Ｍで除算したものである。求めた回帰式によるＶ（ｉ）の推計値を、エージェント挙動のシナリオ間ばらつきのうちエージェント間のネットワーク構造に起因する分とし、回帰の残差を、エージェントの巨視的イベント特徴量、とすればよい。【００８６】
図１８は、回帰を用いた巨視的イベント特徴の算出について、その概念を模式的に示す図である。図は、全てのシナリオおいて時刻ｔまでにエージェントｉが受信したメッセージの数の平均Ｒ（ｉ）を横軸、第一の処理で算出した時刻ｔにおけるエージェントｉの挙動のシナリオ間ばらつきをＶ（ｉ）を縦軸として、Ｎ個のエージェント全てについてＲ（ｉ）とＶ（ｉ）の組をプロットし、さらに、Ｖ（ｉ）を目的変数、Ｒ（ｉ）を説明変数とした回帰式Ｖ＝ｆ（Ｒ）を表示している。このとき、例えば、エージェント１は、回帰による推定値ｆ（Ｒ（Ｖ１））がエージェント１の挙動のシナリオ間ばらつきのうちエージェント間のネットワーク構造に起因する分であるとみなさるので、回帰の残差をエージェント１の巨視的イベント特徴量とすればよい。【００８７】
巨視的イベント特徴として、単純に回帰の残差とするのではなく、αを実数として、エージェント挙動のシナリオ間ばらつきのα乗から、ネットワーク構造に起因する分の推定値のα乗を減算して、そのα乗根をとる、などの方法も考えられる。回帰分析に用いる回帰関数として、単純な線形の関数（線形回帰）以外に、非線形の関数を用いることも考えられる。例えば、エージェント挙動のシナリオ間ばらつきの指標化の仕方によっては、回帰関数として対数関数、すなわち、Ｖ＝α×ＬＯＧ（β×Ｒ）を用いるのが良い場合もある。あるいは、ノンパラメトリック回帰などの公知の手段を適用することも可能である。【００８８】
また、回帰の説明変数として、時刻ｔまでにエージェントｉが受信したメッセージの数の平均Ｒ（ｉ）ではなく、エージェントｉの入力エッジの次数、すなわち、エージェントｉにメッセージを送信する可能性があるエージェントの総数を用いることも考えられる。この方法では、各エージェントの入力エッジの次数はシミュレーションを通して一定であるため、巨視的なイベントの認識・抽出処理に先だって回帰の計算を一度だけ行えばすむことになる。【００８９】
また、エージェント挙動のシナリオ間ばらつきのうち、エージェント間のネットワーク構造に起因する分の具体的な算出方法の別の例として、各エージェントが受信したメッセージのネットワーク的な伝搬をも考慮する手法もある。前述のように、エージェントベーストシミュレーションでは、各エージェントはメッセージを受信するたびにエージェント内部状態を更新し、それが引き金となって該エージェントは別のエージェントにメッセージを送信する。そのため、あるエージェントがメッセージを受信すると、短い時間後にそのエージェントと接続しているエージェントもまたメッセージを受信する可能性が高い。したがって、各エージェントが受信したメッセージのネットワーク的な伝搬を考慮することで、エージェント挙動のシナリオ間ばらつきのうち、エージェント間のネットワーク構造に起因する分の算出の精度を向上できる。【００９０】
実際には、例えば、回帰の目的変数として、エージェントｉが受信したメッセージの数の平均Ｒ（ｉ）の代わりに、図１９に示したように受信メッセージ数のフロー中心性指数Ｒｃ（ｉ）を用いることが考えられる。図１９において、Ａｉｊは、エージェント間のネットワークの隣接行列を表しており、エージェントｊからエージェントｉにメッセージが送信される可能性がある場合には１、それ以外の場合には０の値をとる。また、ｋｊは、エージェントｊの出力エッジの次数、すなわち、エージェントｊがメッセージを送信する可能性がある宛先エージェントの総数を表す。α、β、および、γは実数のパラメータである。エージェントｉの受信メッセージの数Ｒ（ｉ；ｓ）から、シナリオｓの受信メッセージ数のフロー中心性指数Ｒｃ（ｉ；ｓ）を求めるには、図１９（ａ）に示した方程式を解く必要があるが、これには、行列の固有値計算手法、あるいは、各エージェントに適当な初期値を与えて収束するまで反復計算を行う、といった公知の手法を用いることができる。【００９１】
以上のように、実施例３では、巨視的なイベントの認識・抽出のための第二の処理（ステップ３３０）、すなわち、すなわち、エージェントの巨視的イベント特徴量を算出する処理において、エージェント挙動のシナリオ間ばらつきのうち、エージェント間のネットワーク構造に起因する分がどの程度であるか、をエージェントモデルの内容に関わらず自動的に算出することが可能となる。
【符号の説明】
【００９２】
ＣＡＬＣ＿ＮＯＤＥ：計算ノード、ＣＯＭ＿ＳＷ：通信スイッチ、ＴＥＲＭ：コントロール端末、ＣＰＵ：中央演算処理装置、ＲＡＭ：一時記憶装置、ＳＴＯＲ：記憶装置、ＣＯＭ＿ＤＥＶ：通信デバイス、ＭＳＡＧＥＮＴ：マルチシナリオエージェント、ＳＣＮ＿ＩＤ：シナリオ識別子、ＰＲＯＧ：エージェント振る舞いプログラム、ＭＳＡＧＥＮＴ＿ＳＴＯＲＥ：記憶領域、ＥＸＥＣ：エージェントプログラム解釈・実行部、ＲＣＶ：マルチシナリオメッセージ受信部、ＳＥＮＤ：マルチシナリオメッセージ送信部、ＳＰＬＩＴ：マルチシナリオメッセージ分解部、ＡＳＥＭＢＬＥ：マルチシナリオメッセージ組立部、ＩＴＡＢＬＥ：論理エージェント識別子対応表、Ｔ＿ＭＥＳ＿ＳＴＯＲＥ：送信メッセージの一時記憶部、ＭＳＡＧＮＴ＿ＣＴＲＬ：マルチシナリオエージェント制御部
【図１】
2015132893.tif 000003
【図２（ａ）】
2015132893.tif 000004
【図２（ｂ）】
2015132893.tif 000005
【図３】
2015132893.tif 000006
【図４（ａ）】
2015132893.tif 000007
【図４（ｂ）】
2015132893.tif 000008
【図５】
2015132893.tif 000009
【図６】
2015132893.tif 000010
【図７】
2015132893.tif 000011
【図８】
2015132893.tif 000012
【図９】
2015132893.tif 000013
【図１０】
2015132893.tif 000014
【図１１（ａ）】
2015132893.tif 000015
【図１１（ｂ）】
2015132893.tif 000016
【図１２】
2015132893.tif 000017
【図１３】
2015132893.tif 000018
【図１４】
2015132893.tif 000019
【図１５】
2015132893.tif 000020
【図１６】
2015132893.tif 000021
【図１７】
2015132893.tif 000022
【図１８】
2015132893.tif 000023
【図１９】
2015132893.tif 000024
【国際調査報告】
2015132893.tif 000025
2015132893.tif 000026
2015132893.tif 000027