(57)【特許請求の範囲】
【請求項１】
粒度が異なるシミュレーションを実行するシステムにおけるシミュレーション方法であって、
前記システムは、プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有する少なくとも一つの計算機を備え、
前記少なくとも一つの計算機は、第１のシミュレーション及び前記第１のシミュレーションより粒度が大きい第２のシミュレーションの定義情報であるモデルを管理するモデル管理情報と、前記第１のシミュレーションに使用される第１のデータの履歴を管理する履歴管理情報と、を保持し、
前記シミュレーション方法は、
前記少なくとも一つの計算機が、前記履歴管理情報から取得した前記第１のデータを用いて、前記第２のシミュレーションに使用される第２のデータを生成するステップと、
前記少なくとも一つの計算機が、前記第２のデータ及び前記モデル管理情報から取得した前記第２のシミュレーションのモデルに基づいて、前記第２のシミュレーションを実行して、第２のシミュレーション結果を出力するステップと、
前記少なくとも一つの計算機が、前記履歴管理情報から取得した前記第１のデータ及び前記モデル管理情報から取得した前記第１のシミュレーションのモデルに基づいて、前記第１のシミュレーションを実行して、第１のシミュレーション結果を出力するステップと、
前記少なくとも一つの計算機が、前記第１のシミュレーション結果を用いて、前記第２のシミュレーション結果と比較可能な統計量を算出するステップと、
前記少なくとも一つの計算機が、前記統計量と前記第２のシミュレーション結果との間の差分を算出するステップと、
前記少なくとも一つの計算機が、前記差分が小さくなるように前記第１のシミュレーションのモデルを補正するステップと、を含むことを特徴とするシミュレーション方法。
【請求項２】
粒度が異なるシミュレーションを実行するシステムにおけるシミュレーション方法であって、
前記システムは、プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有する少なくとも一つの計算機を備え、
前記少なくとも一つの計算機は、第１のシミュレーション及び前記第１のシミュレーションより粒度が大きい第２のシミュレーションの定義情報であるモデルを管理するモデル管理情報と、前記第１のシミュレーションに使用される第１のデータの履歴を管理する履歴管理情報と、を保持し、
前記モデル管理情報には、複数の前記第１のシミュレーションのモデルが格納され、
前記シミュレーション方法は、
前記少なくとも一つの計算機が、前記履歴管理情報から取得した前記第１のデータを用いて、前記第２のシミュレーションに使用される第２のデータを生成するステップと、
前記少なくとも一つの計算機が、前記第２のデータ及び前記モデル管理情報から取得した前記第２のシミュレーションのモデルに基づいて、前記第２のシミュレーションを実行して、第２のシミュレーション結果を出力するステップと、
前記少なくとも一つの計算機が、前記履歴管理情報から取得した前記第１のデータ及び前記モデル管理情報から取得した前記複数の第１のシミュレーションのモデルに基づいて、前記複数の第１のシミュレーションのモデルの各々を用いた前記第１のシミュレーションを実行して、複数の第１のシミュレーション結果を出力するステップと、
前記少なくとも一つの計算機が、前記複数の第１のシミュレーション結果の各々について、前記第１のシミュレーション結果を用いて、前記第２のシミュレーション結果と比較可能な統計量を算出するステップと、
前記少なくとも一つの計算機が、前記複数の統計量の各々と前記第２のシミュレーション結果との間の差分を算出するステップと、
前記少なくとも一つの計算機が、前記差分が最も小さくなる統計量に対応する前記第１のシミュレーションのモデルを、前記第１のシミュレーションに使用するモデルに決定するステップと、
を含むことを特徴とするシミュレーション方法。
【請求項３】
粒度が異なるシミュレーションを実行するシステムであって、
前記システムは、プロセッサ、メモリ、及びネットワークインタフェースを有する少なくとも一つの計算機を備え、
第１のシミュレーション及び前記第１のシミュレーションより粒度が大きい第２のシミュレーションの定義情報であるモデルを管理するモデル管理部と、
第１のシミュレーションに使用される第１のデータの履歴を管理する履歴管理部と、
前記履歴管理部が管理する前記第１のデータに基づいて、前記第２のシミュレーションに使用される第２のデータを生成する生成部と、
前記履歴管理部から取得した前記第１のデータ及び前記第１のシミュレーションのモデルに基づいて、前記第１のシミュレーションを実行して、第１のシミュレーション結果を出力する第１のシミュレーション実行部と、
前記生成部によって生成された前記第２のデータ及び前記第２のシミュレーションのモデルに基づいて、前記第２のシミュレーションを実行して、第２のシミュレーション結果を出力する第２のシミュレーション実行部と、
前記第１のシミュレーション結果及び前記第２のシミュレーション結果に基づいて、前記第１のシミュレーションのモデル及び前記第２のシミュレーションのモデルを補正するモデル補正部と、を備え、
前記モデル補正部は、
前記第１のシミュレーション結果を用いて、前記第２のシミュレーション結果と比較可能な統計量を算出し、
前記統計量と前記第２のシミュレーション結果との間の差分を算出し、
前記差分が小さくなるように前記第１のシミュレーションのモデルを補正することを特徴とするシステム。
【請求項４】
粒度が異なるシミュレーションを実行するシステムであって、
前記システムは、プロセッサ、メモリ、及びネットワークインタフェースを有する少なくとも一つの計算機を備え、
第１のシミュレーション及び前記第１のシミュレーションより粒度が大きい第２のシミュレーションの定義情報であるモデルを管理するモデル管理部と、
第１のシミュレーションに使用される第１のデータの履歴を管理する履歴管理部と、
前記履歴管理部が管理する前記第１のデータに基づいて、前記第２のシミュレーションに使用される第２のデータを生成する生成部と、
前記履歴管理部から取得した前記第１のデータ及び前記第１のシミュレーションのモデルに基づいて、前記第１のシミュレーションを実行して、第１のシミュレーション結果を出力する第１のシミュレーション実行部と、
前記生成部によって生成された前記第２のデータ及び前記第２のシミュレーションのモデルに基づいて、前記第２のシミュレーションを実行して、第２のシミュレーション結果を出力する第２のシミュレーション実行部と、
前記第１のシミュレーション結果及び前記第２のシミュレーション結果に基づいて、前記第１のシミュレーションのモデル及び前記第２のシミュレーションのモデルを補正するモデル補正部と、を備え、
前記モデル管理部は、複数の前記複数の第１のシミュレーションのモデルを管理し、
前記第１のシミュレーション実行部は、前記複数の第１のシミュレーションのモデルの各々について前記第１のシミュレーション結果を算出し、
前記モデル補正部は、
前記複数の第１のシミュレーション結果の各々について、前記第１のシミュレーション結果を用いて、前記第２のシミュレーション結果と比較可能な統計量を算出し、
前記複数の統計量の各々と前記第２のシミュレーション結果との間の差分を算出し、
前記差分が最も小さくなる統計量に対応する前記第１のシミュレーションのモデルを、前記第１のシミュレーションに使用するモデルに決定することを特徴とするシステム。
【請求項５】
粒度が異なるシミュレーションを実行する計算機によって実行されるプログラムであって、
前記計算機は、
プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有する少なくとも一つの計算機を備え、
第１のシミュレーション及び前記第１のシミュレーションより粒度が大きい第２のシミュレーションの定義情報であるモデルを管理するモデル管理情報と、前記第１のシミュレーションに使用される第１のデータの履歴を管理する履歴管理情報と、を保持し
前記プログラムは、
前記履歴管理情報から取得した前記第１のデータを用いて、前記第２のシミュレーションに使用される第２のデータを生成する手順と、
前記第２のデータ及び前記モデル管理情報から取得した前記第２のシミュレーションのモデルに基づいて、前記第２のシミュレーションを実行して、第２のシミュレーション結果を出力する手順と、
前記履歴管理情報から取得した前記第１のデータ及び前記モデル管理情報から取得した前記第１のシミュレーションのモデルに基づいて、前記第１のシミュレーションを実行して、第１のシミュレーション結果を出力する手順と、
前記第１のシミュレーション結果を用いて、前記第２のシミュレーション結果と比較可能な統計量を算出する手順と、
前記統計量と前記第２のシミュレーション結果との間の差分を算出する手順と、
前記差分が小さくなるように前記第１のシミュレーションのモデルを補正する手順と、
を前記計算機に実行させることを特徴とするプログラム。
【請求項６】
粒度が異なるシミュレーションを実行する計算機によって実行されるプログラムであって、
前記計算機は、
プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有する少なくとも一つの計算機を備え、
第１のシミュレーション及び前記第１のシミュレーションより粒度が大きい第２のシミュレーションの定義情報であるモデルを管理するモデル管理情報と、前記第１のシミュレーションに使用される第１のデータの履歴を管理する履歴管理情報と、を保持し
前記モデル管理情報には、複数の前記第１のシミュレーションのモデルが格納され、
前記プログラムは、
前記履歴管理情報から取得した前記第１のデータを用いて、前記第２のシミュレーションに使用される第２のデータを生成する手順と、
前記第２のデータ及び前記モデル管理情報から取得した前記第２のシミュレーションのモデルに基づいて、前記第２のシミュレーションを実行して、第２のシミュレーション結果を出力する手順と、
前記履歴管理情報から取得した前記第１のデータ及び前記モデル管理情報から取得した前記複数の第１のシミュレーションのモデルに基づいて、前記複数の第１のシミュレーションのモデルの各々を用いた前記第１のシミュレーションを実行して、複数の第１のシミュレーション結果を出力する手順と、
前記複数の第１のシミュレーション結果の各々について、前記第１のシミュレーション結果を用いて、前記第２のシミュレーション結果と比較可能な統計量を算出する手順と、
前記複数の統計量の各々と前記第２のシミュレーション結果との間の差分を算出する手順と、
前記差分が最も小さくなる統計量に対応する前記第１のシミュレーションのモデルを、前記第１のシミュレーションに使用するモデルに決定する手順と、
を前記計算機に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーションのモデルの補正方法に関する。
【背景技術】
【０００２】
交通、金融、流通、及び産業等の様々な分野では、ＩｏＴの進展に伴って、デバイスから収集したデータを用いた統計分析処理又はエージェントシミュレーションによって現在の状況の分析及び可視化、並びに、将来の予測等が行われている。【０００３】
シミュレーションの定義情報であるシミュレーションモデルは、取得するデータの種類及び特性に依存する。したがって、目的及び環境の変化に応じてモデルを補正する必要がある。特に、リアルタイムな分析が必要なシミュレーションでは、環境の変化に応じて動的にシミュレーションモデルを補正する必要がある。【０００４】
シミュレーションモデルを補正する技術として特許文献１の技術が知られている。特許文献１には、「シミュレーションモデルを蓄積するシミュレーションモデル蓄積部と、前記シミュレーションモデルを受けてシミュレーションを行うシミュレーション部と、実世界での統計情報を蓄積する実世界統計情報蓄積部と、前記シミュレーションモデルと前記統計情報とに基づいてシミュレーションモデル補正手法を作成するシミュレーションモデル補正手法作成部と、前記シミュレーションモデル補正手法と前記シミュレーションの結果とに基づいて前記シミュレーションモデルを補正するシミュレーションモデル補正部と、を備える」ことが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第６７７２３６３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の技術では、統計情報とシミュレーション結果とが一致するようにシミュレーションモデルを補正しているため、リアルタイムなシミュレーション及び将来の予測を考慮したシミュレーションには適用できない。【０００７】
本発明は、現在の状況又は将来の予測に基づいて、シミュレーションモデルを補正する方法、システム、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、粒度が異なるシミュレーションを実行するシステムにおけるシミュレーション方法であって、前記システムは、プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有する少なくとも一つの計算機を備え、前記少なくとも一つの計算機は、第１のシミュレーション及び前記第１のシミュレーションより粒度が大きい第２のシミュレーションの定義情報であるモデルを管理するモデル管理情報と、前記第１のシミュレーションに使用される第１のデータの履歴を管理する履歴管理情報と、を保持し、前記シミュレーション方法は、前記少なくとも一つの計算機が、前記履歴管理情報から取得した前記第１のデータを用いて、前記第２のシミュレーションに使用される第２のデータを生成するステップと、前記少なくとも一つの計算機が、前記第２のデータ及び前記モデル管理情報から取得した前記第２のシミュレーションのモデルに基づいて、前記第２のシミュレーションを実行して、第２のシミュレーション結果を出力するステップと、前記少なくとも一つの計算機が、前記履歴管理情報から取得した前記第１のデータ及び前記モデル管理情報から取得した前記第１のシミュレーションのモデルに基づいて、前記第１のシミュレーションを実行して、第１のシミュレーション結果を出力するステップと、前記少なくとも一つの計算機が、前記第１のシミュレーション結果を用いて、前記第２のシミュレーション結果と比較可能な統計量を算出するステップと、前記少なくとも一つの計算機が、前記統計量と前記第２のシミュレーション結果との間の差分を算出するステップと、前記少なくとも一つの計算機が、前記差分が小さくなるように前記第１のシミュレーションのモデルを補正するステップと、を含むことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、リアルタイムなシミュレーション及び将来の予測を考慮したシミュレーションを実現することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【００１０】
【図１】実施例１のシミュレーションシステムのハードウェア構成を示す図である。
【図２】実施例１のシミュレーションシステムのソフトウェア構成を示す図である。
【図３】実施例１のシミュレーションモデルの補正処理におけるシミュレーションシステムの動作を示す図である。
【図４】実施例１の統合処理サーバが実行する処理の一例を説明するフローチャートである。
【図５Ａ】実施例１のミクロシミュレーション実行サーバが実行する処理の一例を説明するフローチャートである。
【図５Ｂ】実施例１のミクロシミュレーション実行サーバが実行する処理の一例を説明するフローチャートである。
【図６】実施例１の統合処理サーバが実行するシミュレーションモデルの補正処理の一例を説明するフローチャートである。
【図７】実施例２の履歴管理情報の一例を示す図である。
【図８】実施例２の空間定義情報の一例を示す図である。
【図９】実施例２の観測データの一例を示す図である。
【図１０】実施例２の統計データの一例を示す図である。
【図１１】実施例２の予測データの一例を示す図である。
【図１２】実施例２の予測データの一例を示す図である。
【図１３Ａ】実施例２のミクロシミュレーションの処理結果から算出される統計量の一例を示す図である。
【図１３Ｂ】実施例２のミクロシミュレーションの処理結果から算出される統計量の一例を示す図である。
【図１４】実施例２のマクロシミュレーション実行サーバが出力する内部情報の一例を示す図である。
【図１５】実施例３の空間定義情報の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明に係る実施例を添付図面を用いて説明する。各図において共通の構成については同一の参照符号が付されている。
【実施例１】
【００１２】
図１は、実施例１のシミュレーションシステムのハードウェア構成を示す図である。【００１３】
図１に示すシミュレーションシステムは、統合処理サーバ１００、データベースサーバ１１０、マクロシミュレーション実行サーバ１２０、ミクロシミュレーション実行サーバ１３０、及びユーザ端末１４０から構成される。各装置はネットワーク１９０を介して接続される。なお、ネットワーク１９０の種類としては、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）及びＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等が考えられる。また、ネットワーク１９０の接続方式は、有線又は無線のいずれでもよい。【００１４】
統合処理サーバ１００は、シミュレーションの定義情報であるシミュレーションモデルを補正する。なお、シミュレーションモデルは、シミュレーションを特徴付けるパラメータ及び入力値を代入する変数等を含む。統合処理サーバ１００は、ハードウェアとして、ＣＰＵ１０１、メモリ１０２、ストレージ装置１０３、及びネットワークインタフェース１０４を有する。各ハードウェアは内部バス等を介して接続される。【００１５】
ＣＰＵ１０１は、メモリ１０２に格納されるプログラムを実行する。ＣＰＵ１０１がプログラムにしたがって処理を実行することによって、所定の機能を有するモジュールとして動作する。以下の説明では、モジュールを主語に処理を説明する場合、ＣＰＵ１０１が、当該モジュールを実現するプログラムを実行していることを表す。【００１６】
メモリ１０２は、ＣＰＵ１０１が実行するプログラム及び当該プログラムに必要な情報を格納する。また、メモリ１０２は、プログラムが一時的に使用するワークエリアを含む。【００１７】
ストレージ装置１０３は、データを永続的に格納する。ストレージ装置１０３は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）及びＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶媒体、又は不揮発性メモリ等が考えられる。なお、メモリ１０２に格納されるプログラム及び情報は、ストレージ装置１０３に格納されてもよい。この場合、ＣＰＵ１０１は、ストレージ装置１０３からプログラム及び情報を読み出し、メモリ１０２にプログラム及び情報をロードし、また、メモリ１０２にロードされたプログラムを実行する。【００１８】
ネットワークインタフェース１０４は、ネットワークを介して他の装置と接続する。【００１９】
データベースサーバ１１０は、各種データを管理する。データベースサーバ１１０は、ハードウェアとして、ＣＰＵ１１１、メモリ１１２、ストレージ装置１１３、及びネットワークインタフェース１１４を有する。各ハードウェアは内部バス等を介して接続される。【００２０】
ＣＰＵ１１１、メモリ１１２、ストレージ装置１１３、及びネットワークインタフェース１１４は、ＣＰＵ１０１、メモリ１０２、ストレージ装置１０３、及びネットワークインタフェース１０４と同様のハードウェアである。【００２１】
マクロシミュレーション実行サーバ１２０は、マクロシミュレーションを実行する。例えば、交通に関するマクロシミュレーションとしては、交通量及び渋滞等を予測するシミュレーションが考えられる。マクロシミュレーション実行サーバ１２０は、ハードウェアとして、ＣＰＵ１２１、メモリ１２２、ストレージ装置１２３、及びネットワークインタフェース１２４を有する。各ハードウェアは内部バス等を介して接続される。【００２２】
ＣＰＵ１２１、メモリ１２２、ストレージ装置１２３、及びネットワークインタフェース１２４は、ＣＰＵ１０１、メモリ１０２、ストレージ装置１０３、及びネットワークインタフェース１０４と同様のハードウェアである。【００２３】
ミクロシミュレーション実行サーバ１３０は、マクロシミュレーションより粒度が小さいミクロシミュレーションを実行する。例えば、交通に関するミクロシミュレーションとしては、個々の車両の最適経路を予測するシミュレーションが考えられる。ミクロシミュレーション実行サーバ１３０は、ハードウェアとして、ＣＰＵ１３１、メモリ１３２、ストレージ装置１３３、及びネットワークインタフェース１３４を有する。各ハードウェアは内部バス等を介して接続される。【００２４】
ＣＰＵ１３１、メモリ１３２、ストレージ装置１３３、及びネットワークインタフェース１３４は、ＣＰＵ１０１、メモリ１０２、ストレージ装置１０３、及びネットワークインタフェース１０４と同様のハードウェアである。【００２５】
ユーザ端末１４０は、ユーザが使用する端末である。ユーザは、ユーザ端末１４０を用いて、シミュレーションの実行及びシミュレーションモデルの補正を指示する。ユーザ端末１４０は、ハードウェアとして、ＣＰＵ１４１、メモリ１４２、ストレージ装置１４３、ネットワークインタフェース１４４、入力装置１４５、及び出力装置１４６を有する。各ハードウェアは内部バス等を介して接続される。【００２６】
ＣＰＵ１４１、メモリ１４２、ストレージ装置１４３、及びネットワークインタフェース１４４は、ＣＰＵ１０１、メモリ１０２、ストレージ装置１０３、及びネットワークインタフェース１０４と同様のハードウェアである。【００２７】
入力装置１４５は、データ等を入力するための装置であり、キーボード、マウス、及びタッチパネル等を含む。【００２８】
出力装置１４６は、データ等を出力するための装置であり、ディスプレイ及びタッチパネル等を含む。【００２９】
図２は、実施例１のシミュレーションシステムのソフトウェア構成を示す図である。【００３０】
データベースサーバ１１０は、シミュレーションモデル情報２１１、履歴管理情報２１２、及び空間定義情報２１３を保持する。【００３１】
シミュレーションモデル情報２１１は、シミュレーションモデルを管理する情報である。シミュレーションモデル情報２１１には、一つ以上のマクロシミュレーションのシミュレーションモデル及び一つ以上のミクロシミュレーションのシミュレーションモデルが格納される。【００３２】
履歴管理情報２１２は、ミクロシミュレーションにおけるエージェントから取得した各種データを格納する。【００３３】
空間定義情報２１３は、履歴管理情報２１２に格納されるデータからマクロシミュレーションに用いられるデータ（統計データ）を生成するための情報である。例えば、移動体の動きを分析するミクロシミュレーションにおいて、移動体が移動する空間及び取得するデータの時間範囲等の情報が空間定義情報２１３に格納される。【００３４】
統合処理サーバ１００は、前処理モジュール２０１、統計データ生成モジュール２０２、及びモデル補正モジュール２０３を実現するプログラムを保持する。【００３５】
前処理モジュール２０１は、履歴管理情報２１２からミクロシミュレーションに使用する観測データ３０１（図３参照）を生成する。【００３６】
統計データ生成モジュール２０２は、観測データ３０１及び空間定義情報２１３に基づいて、ミクロシミュレーションに使用する統計データ３０３（図３参照）を生成する。【００３７】
モデル補正モジュール２０３は、マクロシミュレーションの処理結果及びミクロシミュレーションの処理結果に基づいてシミュレーションモデルを補正する。【００３８】
マクロシミュレーション実行サーバ１２０は、マクロシミュレーションを実行するマクロシミュレーション実行モジュール２２１を実現するプログラムを保持する。【００３９】
ミクロシミュレーション実行サーバ１３０は、ミクロシミュレーションを実行するミクロシミュレーション実行モジュール２３１を実現するプログラムを保持する。【００４０】
ユーザ端末１４０は、統合処理サーバ１００等に対する操作を行うアプリケーション２４１を実現するプログラムを保持する。【００４１】
図３は、実施例１のシミュレーションモデルの補正処理におけるシミュレーションシステムの動作を示す図である。【００４２】
統合処理サーバ１００は、ユーザ端末１４０のアプリケーション２４１からシミュレーションモデルの補正要求を受け付けた場合、前処理モジュール２０１を呼び出す。【００４３】
前処理モジュール２０１は、データベースサーバ１１０にアクセスして、空間定義情報２１３を取得し、また、履歴管理情報２１２から所定の時間範囲のデータを取得する。前処理モジュール２０１は、空間定義情報２１３及び履歴管理情報２１２から取得したデータを用いてデータ変換処理及びデータの抽出処理等の処理を実行し、観測データ３０１を生成する。【００４４】
次に、統合処理サーバ１００は、統計データ生成モジュール２０２を呼び出す。このとき、統計データ生成モジュール２０２には、観測データ３０１及び空間定義情報２１３が入力される。【００４５】
統計データ生成モジュール２０２は、観測データ３０１及び空間定義情報２１３を用いて統計データ３０３を生成する。【００４６】
次に、統合処理サーバ１００は、統計データ３０３を含むマクロシミュレーションの実行指示をマクロシミュレーション実行サーバ１２０に送信し、また、観測データ３０１を含むミクロシミュレーションの実行指示をミクロシミュレーション実行サーバ１３０に送信する。【００４７】
マクロシミュレーション実行サーバ１２０は、実行指示を受け付けた場合、マクロシミュレーション実行モジュール２２１を呼び出す。【００４８】
マクロシミュレーション実行モジュール２２１は、データベースサーバ１１０にアクセスし、シミュレーションモデル情報２１１からマクロシミュレーションのシミュレーションモデルを取得する。マクロシミュレーション実行モジュール２２１は、シミュレーションモデル及び統計データ３０３を用いてマクロシミュレーションを実行し、処理結果を予測データ３０４として統合処理サーバ１００に送信する。【００４９】
ミクロシミュレーション実行サーバ１３０は、実行指示を受け付けた場合、ミクロシミュレーション実行モジュール２３１を呼び出す。【００５０】
ミクロシミュレーション実行モジュール２３１は、データベースサーバ１１０にアクセスし、シミュレーションモデル情報２１１からミクロシミュレーションのシミュレーションモデルを取得する。ミクロシミュレーション実行モジュール２３１は、シミュレーションモデル及び観測データ３０１を用いてミクロシミュレーションを実行し、処理結果を予測データ３０２として統合処理サーバ１００に送信する。【００５１】
統合処理サーバ１００は、マクロシミュレーション実行サーバ１２０及びミクロシミュレーション実行サーバ１３０から予測データ３０２、３０４を受信した場合、モデル補正モジュール２０３を呼び出す。このとき、モデル補正モジュール２０３には、予測データ３０２、３０４が入力される。【００５２】
モデル補正モジュール２０３は、データベースサーバ１１０にアクセスし、シミュレーションモデル情報２１１からマクロシミュレーションのシミュレーションモデル及びミクロシミュレーションのシミュレーションモデルを取得する。モデル補正モジュール２０３は、予測データ３０２、３０４を用いて、ミクロシミュレーションのシミュレーションモデル及びマクロシミュレーションのシミュレーションモデルの少なくともいずれかを補正する。本実施例では、ミクロシミュレーションのシミュレーションモデルが補正されるものとする。また、モデル補正モジュール２０３は、補正したミクロシミュレーションのシミュレーションモデルを、実行するミクロシミュレーションのシミュレーションモデルとしてシミュレーションモデル情報２１１に登録する。【００５３】
このように、本実施例のシステムは、ミクロシミュレーションを実行し、ミクロシミュレーションに使用するデータから生成された統計データ３０３を用いてマクロシミュレーションを実行し、各処理結果が整合するようにシミュレーションモデルを補正する。【００５４】
従来は、履歴に合致するようにシミュレーションモデルを補正していたため、状態変化に対応したシミュレーションを必ずしも実現できなかった。一方、本実施例では、各シミュレーションの結果を比較し、比較結果に基づいて各シミュレーションモデルを補正する。シミュレーションは様々な状況変化を予測する処理であることから、本実施例のような補正を行うことによって環境の変化等の状態変化に対応したシミュレーションが可能となる。【００５５】
図４は、実施例１の統合処理サーバ１００が実行する処理の一例を説明するフローチャートである。【００５６】
統合処理サーバ１００は、ユーザ端末１４０からシミュレーションモデルの補正要求を受け付ける（ステップＳ４０１）。【００５７】
次に、統合処理サーバ１００は、空間定義情報２１３を取得し、また、履歴管理情報２１２から所定の時間範囲のデータを取得する（ステップＳ４０２）。【００５８】
具体的には、前処理モジュール２０１が、データベースサーバ１１０にアクセスし、履歴管理情報２１２から所定の時間範囲のデータを取得する。なお、時間範囲は、ユーザが指定してもよいし、予め設定されてもよい。また、前処理モジュール２０１は、マクロシミュレーションのシミュレーションモデルを参照し、時間範囲を決定してもよい。【００５９】
次に、統合処理サーバ１００は、観測データ３０１を生成する（ステップＳ４０３）。【００６０】
具体的には、前処理モジュール２０１が、空間定義情報２１３及び履歴管理情報２１２から取得したデータを用いて観測データ３０１を生成する。【００６１】
次に、統合処理サーバ１００は、統計データ３０３を生成する（ステップＳ４０４）。【００６２】
具体的には、統計データ生成モジュール２０２が、空間定義情報２１３及び観測データ３０１を用いて統計データ３０３を生成する。【００６３】
次に、統合処理サーバ１００は、マクロシミュレーション実行サーバ１２０に、統計データ３０３を含むマクロシミュレーションの実行指示を送信する（ステップＳ４０５）。【００６４】
次に、統合処理サーバ１００は、マクロシミュレーション実行サーバ１２０から予測データ３０４を受信する（ステップＳ４０６）。このとき、統合処理サーバ１００は、受信した予測データ３０４を、シミュレーションモデルの補正要否を判定するための指標に設定する。【００６５】
次に、統合処理サーバ１００は、ミクロシミュレーション実行サーバ１３０に、観測データ３０１を含むミクロシミュレーションの実行指示を送信する（ステップＳ４０７）。なお、統合処理サーバ１００は、予測データ３０４を受信する前に、ミクロシミュレーションの実行指示を送信してもよい。【００６６】
次に、統合処理サーバ１００は、シミュレーションモデルの補正処理を実行する（ステップＳ４０８）。シミュレーションモデルの補正処理の詳細は、図６を用いて説明する。【００６７】
なお、本実施例は、マクロシミュレーション及びミクロシミュレーションの処理内容に限定されない。【００６８】
図５Ａ及び図５Ｂは、実施例１のミクロシミュレーション実行サーバ１３０が実行する処理の一例を説明するフローチャートである。【００６９】
図５Ａは、シミュレーションモデル情報２１１に格納されるミクロシミュレーションのシミュレーションモデルが一つである場合の処理を示す。【００７０】
ミクロシミュレーション実行モジュール２３１は、実行指示を受信した場合、データベースサーバ１１０にアクセスして、シミュレーションモデル情報２１１からシミュレーションモデルを取得する（ステップＳ５０１）。【００７１】
ミクロシミュレーション実行モジュール２３１は、取得したシミュレーションモデル及び実行指示に含まれる観測データ３０１を用いて、ミクロシミュレーションを実行する（ステップＳ５０２）。【００７２】
ミクロシミュレーション実行モジュール２３１は、統合処理サーバ１００に、ミクロシミュレーションの処理結果である予測データ３０２を送信し（ステップＳ５０３）、また、完了通知を送信する（ステップＳ５０４）。【００７３】
図５Ｂは、シミュレーションモデル情報２１１に格納されるミクロシミュレーションのシミュレーションモデルが二つ以上である場合の処理を示す。【００７４】
ミクロシミュレーション実行モジュール２３１は、実行指示を受信した場合、データベースサーバ１１０にアクセスして、シミュレーションモデル情報２１１から全てのミクロシミュレーションのシミュレーションモデルを取得する（ステップＳ５１１）。【００７５】
ミクロシミュレーション実行モジュール２３１は、複数のシミュレーションモデルの中からターゲットシミュレーションモデルを一つ選択する（ステップＳ５１２）。【００７６】
ミクロシミュレーション実行モジュール２３１は、ターゲットシミュレーションモデル及び実行指示に含まれる観測データ３０１を用いて、ミクロシミュレーションを実行する（ステップＳ５１３）。【００７７】
ミクロシミュレーション実行モジュール２３１は、統合処理サーバ１００に、予測データ３０２を送信する（ステップＳ５１４）。このとき、ミクロシミュレーション実行モジュール２３１は、ターゲットシミュレーションモデルの識別情報とともに、予測データ３０２を送信する。【００７８】
ミクロシミュレーション実行モジュール２３１は、取得した全てのシミュレーションモデルについて処理が完了したか否かを判定する（ステップＳ５１５）。【００７９】
取得した全てのシミュレーションモデルについて処理が完了していないと判定された場合、ミクロシミュレーション実行モジュール２３１は、ステップＳ５１２に戻り、同様の処理を実行する。【００８０】
取得した全てのシミュレーションモデルについて処理が完了したと判定された場合、ミクロシミュレーション実行モジュール２３１は、統合処理サーバ１００に、完了通知を送信する（ステップＳ５１６）。【００８１】
なお、ミクロシミュレーション実行モジュール２３１は、統合処理サーバ１００又はユーザ端末１４０からの要求に応じて、シミュレーション後のエージェントの状態を示す内部情報を提示してよい。【００８２】
図６は、実施例１の統合処理サーバ１００が実行するシミュレーションモデルの補正処理の一例を説明するフローチャートである。【００８３】
統合処理サーバ１００は、ミクロシミュレーション実行サーバ１３０から、実行指示に対する応答を受信した場合、モデル補正モジュール２０３を呼び出す。【００８４】
モデル補正モジュール２０３は、受信した応答が完了通知であるか否かを判定する（ステップＳ６０１）。【００８５】
受信した応答が予測データ３０２であると判定された場合、モデル補正モジュール２０３は、受信した予測データ３０２をメモリ１０２のワークエリアに格納する（ステップＳ６０２）。その後、モデル補正モジュール２０３は、待ち状態に移行し、応答を受信した場合、ステップＳ６０１に戻る。【００８６】
なお、予測データ３０２及びシミュレーションモデルの識別情報が含まれる場合、モデル補正モジュール２０３は、予測データ３０２及びシミュレーションモデルの識別情報を対応づけて、メモリ１０２のワークエリアに格納する。【００８７】
受信した応答が完了通知であると判定された場合、モデル補正モジュール２０３は、予測データ３０２を複数回受信したか否かを判定する（ステップＳ６０３）。【００８８】
具体的には、モデル補正モジュール２０３は、メモリ１０２のワークエリアを参照し、二つ以上の予測データ３０２が格納されているか否かを判定する。【００８９】
予測データ３０２を複数回受信したと判定された場合、モデル補正モジュール２０３は、各シミュレーションモデルの統計量を算出する（ステップＳ６０４）。【００９０】
具体的には、モデル補正モジュール２０３は、一つの予測データ３０２を選択し、当該予測データ３０２を用いて、マクロシミュレーションの処理結果と対比可能な統計量を算出する。統計量の算出方法は予め設定されているものとする。なお、統計量の算出方法は、シミュレーションモデルとともに対応づけて管理されてもよい。モデル補正モジュール２０３は、メモリ１０２のワークエリアに格納される全ての予測データ３０２について同様の処理を実行する。【００９１】
次に、モデル補正モジュール２０３は、各シミュレーションモデルの統計量及び判定指標の差分を算出し、当該差分に基づいて、実際に使用するシミュレーションモデルを選択する（ステップＳ６０５）。このとき、モデル補正モジュール２０３は、選択されたシミュレーションモデルに、使用するシミュレーションモデルであることを示すフラグを付与する。その後、モデル補正モジュール２０３はシミュレーションモデルの補正処理を終了する。【００９２】
ミクロシミュレーション実行モジュール２３１は、通常の分析を目的としたミクロシミュレーションを実行する場合、当該フラグが付与されたシミュレーションモデルを用いてミクロシミュレーションを実行する。【００９３】
具体的には、モデル補正モジュール２０３は、統計量及び判定指標の差分を算出し、当該差分が最も小さい統計量に対応するシミュレーションモデルを選択する。【００９４】
ステップＳ６０３において、予測データ３０２を複数回受信していないと判定された場合、モデル補正モジュール２０３は、シミュレーションモデルの統計量を算出する（ステップＳ６０６）。なお、統計量の算出方法は、ステップＳ６０４と同一である。【００９５】
次に、モデル補正モジュール２０３は、シミュレーションモデルの統計量及び判定指標の差分が閾値ｍ以下であるか否かを判定する（ステップＳ６０７）。【００９６】
差分が閾値ｍ以下であると判定された場合、モデル補正モジュール２０３はシミュレーションモデルの補正処理を終了する。【００９７】
差分が閾値ｍより大きいと判定された場合、モデル補正モジュール２０３は、シミュレーションモデルを補正し（ステップＳ６０８）、補正されたシミュレーションモデルをシミュレーションモデル情報２１１に登録する。例えば、モデル補正モジュール２０３は、シミュレーションモデルに含まれるパラメータを補正する方法が考えられる。【００９８】
ミクロシミュレーション実行モジュール２３１は、通常の分析を目的としたミクロシミュレーションを実行する場合、補正されたシミュレーションモデルを用いてミクロシミュレーションを実行する。【００９９】
次に、モデル補正モジュール２０３は、ミクロシミュレーション実行サーバ１３０にミクロシミュレーションの実行指示を送信する（ステップＳ６０９）。その後、モデル補正モジュール２０３はシミュレーションモデルの補正処理を終了する。したがって、シミュレーションモデルの統計量及び判定指標の差分が閾値ｍ以下となるまで、シミュレーションモデルの補正が行われる。【０１００】
以上で説明したように、実施例１では、ミクロシミュレーションのシミュレーションモデルが、マクロシミュレーションの処理結果と整合するように補正される。【０１０１】
例えば、現在時刻から所定の時間前の間のデータを使用して統計データを生成することによって、大域的な状態変化等を反映したシミュレーションモデルに補正することができる。また、マクロシミュレーションに使用する統計データを予め用意する必要がない。【０１０２】
なお、実施例１では、ミクロシミュレーションのシミュレーションモデルを補正する例を示したが、マクロシミュレーションのシミュレーションモデルが補正されてもよい。【０１０３】
なお、本実施例では、物理的な計算機を用いて各サーバを実現しているが、仮想化技術を用いて各サーバを実現してもよい。また、各サーバが有する機能を一つの計算機に集約してもよい。例えば、統合処理サーバ１００、マクロシミュレーション実行サーバ１２０、及びミクロシミュレーション実行サーバ１３０を一つの計算機に集約してもよい。また、統合処理サーバ１００及びデータベースサーバ１１０を一つの計算機に集約してもよい。
【実施例２】
【０１０４】
実施例２では、実施例１のシミュレーションシステムを具体的な値を用いて説明する。実施例２のシミュレーションシステムは、船舶の運行をシミュレーションする。システム構成及びソフトウェア構成は実施例１で説明しているため省略する。実施例２のミクロシミュレーションのエージェントは船舶である。【０１０５】
図７は、実施例２の履歴管理情報２１２の一例を示す図である。【０１０６】
履歴管理情報２１２は、船舶の状態情報を格納する。具体的には、履歴管理情報２１２は、時刻７０１、移動体ＩＤ７０２、経度７０３、緯度７０４、及び目的地７０５から構成されるエントリを含む。【０１０７】
時刻７０１は、状態情報を取得した時刻である。移動体ＩＤ７０２は、船舶を一意に識別する識別情報である。経度７０３及び緯度７０４は、船舶の詳細な位置を示す情報である。目的地７０５は、船舶の行き先となる場所を示す情報である。【０１０８】
図８は、実施例２の空間定義情報２１３の一例を示す図である。【０１０９】
空間定義情報２１３は、船舶が移動する空間（ＸＹ平面）を定義する情報８００、及び履歴の時間を定義する情報８１０を含む。【０１１０】
情報８００は、空間次元８０１及び空間メッシュ８０２から構成されるエントリを含む。空間次元８０１は、空間を定義する座標の識別情報である。空間メッシュ８０２は、座標方向の空間の分割単位である。【０１１１】
情報８１０は、時間次元８１１及び時間ステップ８１２から構成されるエントリを含む。時間次元８１１は、履歴を取得する単位時間を示す情報である。時間ステップ８１２は、状態情報を集約する時間単位を示す情報である。【０１１２】
図９は、実施例２の観測データ３０１の一例を示す図である。【０１１３】
実施例２の観測データ３０１は、ミクロシミュレーションが使用するデータである。具体的には、入力データは、時刻９０１、移動体ＩＤ９０２、位置（Ｘ）９０３、位置（Ｙ）９０４、速度（Ｘ）９０５、速度（Ｙ）９０６、及び目的地９０７から構成されるエントリを含む。【０１１４】
時刻９０１は、時刻７０１と同一のものである。移動体ＩＤ９０２は、移動体ＩＤ７０２と同一のものである。位置（Ｘ）９０３は、空間上の船舶のＸ軸の位置を示す。位置（Ｙ）９０４は、空間上の船舶のＹ軸の位置を示す。速度（Ｘ）９０５は、船舶のＸ軸方向の速度を示す。速度（Ｙ）９０６は、船舶のＹ軸方向の速度を示す。目的地９０７は目的地７０５と同一のものである。【０１１５】
図１０は、実施例２の統計データ３０３の一例を示す図である。【０１１６】
実施例２の統計データ３０３は、ある時刻における空間上の船舶の密度を示す。具体的には、統計データ３０３は、時刻１００１、地点ＩＤ１００２、及び密度１００３から構成されるエントリを含む。【０１１７】
時刻１００１は、統計データの生成の起点となる時刻等を示す。地点ＩＤ１００２は、空間上のある地点（地域）の識別情報である。密度１００３は、地点ＩＤ１００２に対応する地点における船舶の密度である。【０１１８】
図１１は、実施例２の予測データ３０４の一例を示す図である。【０１１９】
実施例２の予測データ３０４は、統計データ３０３と同一のデータ構造である。予測データ３０４には、マクロシミュレーションが実行された後の各地点の密度を示す情報が格納される。なお、時刻１１０１には、マクロシミュレーション後の時刻が設定される。【０１２０】
実施例２では、各地点の密度が判定指標として設定される。【０１２１】
図１２は、実施例２の予測データ３０２の一例を示す図である。【０１２２】
実施例２の予測データ３０２には、ミクロシミュレーションが実行された後の各船舶の状態を示す情報が格納される。具体的には、予測データ３０２は、時刻１２０１、移動体ＩＤ１２０２、位置（Ｘ）１２０３、位置（Ｙ）１２０４、及び目的地１２０５から構成されるエントリを含む。【０１２３】
時刻１２０１は、ミクロシミュレーション後の時刻である。移動体ＩＤ１２０２及び目的地１２０５は、移動体ＩＤ９０２及び目的地９０７と同一のものである。位置（Ｘ）１２０３及び位置（Ｙ）１２０４は、ミクロシミュレーション後の船舶のＸ軸及びＹ軸の位置である。【０１２４】
図１３Ａ及び図１３Ｂは、実施例２のミクロシミュレーションの処理結果から算出される統計量の一例を示す図である。【０１２５】
実施例２では、予測データ３０２に基づいて、各地点の船舶の密度が統計量として算出される。統計量は、時刻１３０１、地点ＩＤ１３０２、密度１３０３、判定指標１３０４、及び差分１３０５から構成されるエントリを含む。【０１２６】
時刻１３０１、地点１３０２、及び密度１３０３は、時刻１００１、地点ＩＤ１００２、及び密度１００３と同一のものである。判定指標１３０４は、密度１１０３と同一のものである。差分１３０５は、密度１３０３及び判定指標１３０４の差分の大きさである。【０１２７】
図１４は、実施例２のマクロシミュレーション実行サーバ１２０が出力する内部情報の一例を示す図である。【０１２８】
内部情報は、ミクロシミュレーション後の船舶の状態を示す情報を格納する。具体的には、内部情報は、時刻１４０１、移動体ＩＤ１４０２、速度１４０３、及び進行方向１４０４から構成されるエントリを含む。【０１２９】
時刻１４０１は、シミュレーション後の時刻である。移動体ＩＤ１４０２は、移動体ＩＤ７０２と同一のものである。速度１４０３は、船舶の速度の絶対値である。進行方向１４０４は、船舶の進行方向である。【０１３０】
ここで、図３を用いて実施例２の処理の流れについて説明する。【０１３１】
前処理モジュール２０１は、図７に示す履歴管理情報２１２及び図８に示す空間定義情報２１３を用いて、図９に示す観測データ３０１を生成する。【０１３２】
統計データ生成モジュール２０２は、図８に示す空間定義情報２１３及び図９に示す観測データ３０１を用いて、図１０に示す統計データ３０３を生成する。【０１３３】
マクロシミュレーション実行モジュール２２１は、図１０に示す統計データ３０３を用いたマクロシミュレーションを実行して、５分後の各地点の密度を算出する。具体的には、図１１に示す予測データ３０４が出力される。【０１３４】
ミクロシミュレーション実行モジュール２３１は、図９に示す観測データ３０１を用いたミクロシミュレーションを実行して、５分後の各船舶の位置を算出する。具体的には、図１２に示す予測データ３０２が出力される。【０１３５】
ここでは、図５Ａに示すミクロシミュレーションが実行されたものとする。【０１３６】
モデル補正モジュール２０３は、予測データ３０４を各地点の判定指標として設定し、また、予測データ３０２を用いて統計量を算出する。モデル補正モジュール２０３は、各地点について判定指標と統計量との差分を算出する。以上の処理結果として、図１３Ａ及び図１３Ｂに示すような結果が出力される。【０１３７】
モデル補正モジュール２０３は、各地点の差分の合計値が閾値ｍ以下であるか否かを判定する。各地点の差分の合計値が閾値ｍより大きいと判定された場合、シミュレーションモデルを補正する。【０１３８】
このように、マクロシミュレーションの処理結果及びミクロシミュレーションの処理結果が整合するようにミクロシミュレーションのシミュレーションモデルを補正することによって、将来の状態変化に対応したシミュレーションが可能となる。
【実施例３】
【０１３９】
実施例３では、実施例１のシミュレーションシステムを具体的な値を用いて説明する。実施例３のシミュレーションシステムは、商品の売上等をシミュレーションする。システム構成及びソフトウェア構成は実施例１で説明しているため省略する。実施例３のミクロシミュレーションのエージェントは顧客である。したがって、履歴管理情報２１２には、時系列順に、顧客の商品の購買履歴が格納される。【０１４０】
ここで、図３を用いて実施例２の処理の流れについて説明する。【０１４１】
前処理モジュール２０１は、履歴管理情報２１２及び空間定義情報２１３を用いて、購買商品の識別情報、購買数、購買額、及び広告認知の有無等を示すフィールド群から構成されるエントリを含む観測データ３０１を生成する。【０１４２】
ここで、実施例３の空間定義情報２１３について説明する。図１５は、実施例３の空間定義情報２１３の一例を示す図である。【０１４３】
実施例３の空間定義情報２１３は、実施例２の空間定義情報２１３と同様のデータ構造である。実施例３では、物理的な空間ではなく、商品の空間を想定する。当該空間は、商品カテゴリを示す軸及び商品等級を示す軸から構成される。空間メッシュ８０２には、商品カテゴリの軸の区分を示す情報、及び商品等級の軸の区分を示す情報が格納される。【０１４４】
また、情報８１０に示すように、履歴管理情報２１２には、日付単位の購買履歴が格納され、統計データは、週単位で購買履歴を集計することによって生成されることを示す。【０１４５】
図３の説明に戻る。【０１４６】
統計データ生成モジュール２０２は、観測データ３０１及び図１５に示す空間定義情報２１３を用いて、統計データ３０３を生成する。当該統計データは、各商品カテゴリの１週間後の売上高、売上数、及び広告認知率を示すフィールド群から構成されるエントリを含む。【０１４７】
マクロシミュレーション実行モジュール２２１は、統計データ３０３を用いたマクロシミュレーションを実行して、予測データ３０４を出力する。予測データ３０４は、１週間後の各商品カテゴリの売上高、売上数、及び広告認知率を示すフィールド群から構成されるエントリを含む。【０１４８】
ミクロシミュレーション実行モジュール２３１は、観測データ３０１を用いたミクロシミュレーションを実行して、予測データ３０２を出力する。予測データ３０２は、１週間後の、各顧客の購買商品、購買数、購買額、及び広告認知有無を示すフィールド群から構成されるエントリを含む。【０１４９】
ここでは、図５Ａに示すミクロシミュレーションが実行されたものとする。【０１５０】
モデル補正モジュール２０３は、予測データ３０４を各商品カテゴリの売上高を判定指標として設定し、また、予測データ３０２を用いて各商品カテゴリの売上高を示す統計量を算出する。モデル補正モジュール２０３は、各商品カテゴリについて判定指標と統計量との差分を算出する。【０１５１】
モデル補正モジュール２０３は、各商品カテゴリの差分の合計値が閾値ｍ以下であるか否かを判定する。各商品カテゴリの差分の合計値が閾値ｍより大きいと判定された場合、シミュレーションモデルを補正する。【０１５２】
このように、マクロシミュレーションの処理結果及びミクロシミュレーションの処理結果が整合するようにミクロシミュレーションのシミュレーションモデルを補正することによって、将来の状態変化に対応したシミュレーションが可能となる。【０１５３】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。【０１５４】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるＣＰＵが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。【０１５５】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ等の広範囲のプログラム又はスクリプト言語で実装できる。【０１５６】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるＣＰＵが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。【０１５７】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【図１】
0006726312.tif 000002
【図２】
0006726312.tif 000003
【図３】
0006726312.tif 000004
【図４】
0006726312.tif 000005
【図５Ａ】
0006726312.tif 000006
【図５Ｂ】
0006726312.tif 000007
【図６】
0006726312.tif 000008
【図７】
0006726312.tif 000009
【図８】
0006726312.tif 000010
【図９】
0006726312.tif 000011
【図１０】
0006726312.tif 000012
【図１１】
0006726312.tif 000013
【図１２】
0006726312.tif 000014
【図１３Ａ】
0006726312.tif 000015
【図１３Ｂ】
0006726312.tif 000016
【図１４】
0006726312.tif 000017
【図１５】
0006726312.tif 000018