(57)【特許請求の範囲】
【請求項１】
ユーザ定義可能な行動モデルに従って複数の移動ノードの行動をシミュレートする行動シミュレータ部と、
該複数の移動ノードを含むネットワーク上の通信をシミュレートするネットワークシミュレータ部と
を備え、
該ネットワークシミュレータ部には、シミュレーションの評価対象であるネットワークアプリケーションが実装されており、
該ネットワークシミュレータ部は、シミュレーション時間ｔごとに、該ネットワークアプリケーションからの出力を該行動シミュレータ部に出力するように構成されており、
該行動シミュレータ部は、該ネットワークアプリケーションからの出力に応じて、該行動モデルに従って該複数の移動ノードのうちの少なくとも１つの行動を変化させることが可能なように構成されており、
該ネットワークシミュレータ部は、シミュレーション時間ｔごとに、該少なくとも１つの移動ノードの行動の変化を該ネットワーク上の通信のシミュレーションに反映させるように構成されている、移動ノードシミュレータ。
【請求項２】
前記行動シミュレータ部は、シミュレーション時間ｔごとに、前記ネットワークアプリケーションへの入力と、前記複数の移動ノードのそれぞれの位置情報および速度情報とを前記ネットワークシミュレータ部に出力するように構成されており、
前記ネットワークシミュレータ部は、該ネットワークアプリケーションへの入力と、該複数の移動ノードのそれぞれの位置情報および速度情報とに応じて、前記ネットワーク上の通信をシミュレートするように構成されている、請求項１に記載の移動ノードシミュレータ。
【請求項３】
前記行動モデルは、確率つきイベント発生モデル（ＣＰＥモデル）に従って記述されている、請求項１に記載の移動ノードシミュレータ。
【請求項４】
前記行動モデルは、前記移動ノードの状態遷移を表す状態遷移図によって定義される、請求項１に記載の移動ノードシミュレータ。
【請求項５】
前記行動シミュレータ部は、前記行動モデルと、ユーザ定義可能な領域情報であって、前記移動ノードが移動可能な領域の範囲を定義する領域情報とに従って、前記複数の移動ノードの行動をシミュレートする、請求項１に記載の移動ノードシミュレータ。
【請求項６】
前記行動シミュレータ部は、前記行動モデルと、前記領域情報と、ユーザ定義可能な行動シナリオであって、ノードオブジェクトを生成するタイミングを少なくとも定義する行動シナリオとに従って、前記複数の移動ノードの行動をシミュレートする、請求項５に記載の移動ノードシミュレータ。
【請求項７】
前記ネットワークは、移動ノード間通信を実現するアドホックなネットワークである、請求項１に記載の移動ノードシミュレータ。
【請求項８】
前記ネットワークシミュレータ部によるシミュレーションの結果を出力する出力部をさらに備えた、請求項１に記載の移動ノードシミュレータ。
【請求項９】
前記出力部は、グラフィカルユーザインターフェースを用いて、前記シミュレーション結果を表示する表示部である、請求項８に記載の移動ノードシミュレータ。
【請求項１０】
前記移動ノードが、携帯端末を持った人である、請求項１に記載の移動ノードシミュレータ。
【請求項１１】
前記移動ノードが、車両である、請求項１に記載の移動ノードシミュレータ。
【請求項１２】
移動ノードシミュレータを用いて、ネットワーク上の通信をシミュレートするシミュレーション処理をコンピュータに実行させるプログラムであって、
該移動ノードシミュレータは、ユーザ定義可能な行動モデルに従って複数の移動ノードの行動をシミュレートする行動シミュレータ部と、該複数の移動ノードを含むネットワーク上の通信をシミュレートするネットワークシミュレータ部とを含み、
該ネットワークシミュレータ部には、シミュレーションの評価対象であるネットワークアプリケーションが実装されており、
該シミュレーション処理は、
該ネットワークシミュレータ部が、シミュレーション時間ｔごとに、該ネットワークアプリケーションからの出力を該行動シミュレータ部に出力するステップと、
該行動シミュレータ部が、該ネットワークアプリケーションからの出力に応じて、該行動モデルに従って該複数の移動ノードの行動のうちの少なくとも１つを変化させるステップと、
該ネットワークシミュレータ部が、シミュレーション時間ｔごとに、該少なくとも１つの移動ノードの行動の変化を該ネットワーク上の通信のシミュレーションに反映させるステップと
を包含する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動ノードシミュレータおよびこれを実装するプログラムに関する。
【背景技術】
【０００２】
近年の計算機システムのユビキタス化および無線技術の普及に伴い、移動通信端末（以下、移動端末）または移動ノードが無線ＬＡＮなどを介して通信するモバイルネットワークの研究が盛んに行われてきている。モバイルネットワークアプリケーションおよびプロトコルの設計および実装の際には、計算機によるネットワークシミュレーションが不可欠であるが、従来のネットワークシミュレータでは、移動端末の移動は完全なランダム移動およびランダムな目的地選定に基づく移動などに限定しているものが多い。例えば、ｎｓ−２（非特許文献１を参照）ではｒａｎｄｏｍ  ｍｏｂｉｌｉｔｙ、ｒａｎｄｏｍ  ｗａｙｐｏｉｎｔ  ｍｏｂｉｌｉｔｙ（非特許文献２を参照）に従った動作のトレースを出力する独立したプログラムを提供している程度である。商用シミュレータＱｕａｌＮｅｔ（非特許文献３を参照）は、ｇｒｏｕｐ  ｍｏｂｉｌｉｔｙ、ｒａｎｄｏｍ  ｗａｙｐｏｉｎｔ  ｍｏｂｉｌｉｔｙ、ｔｒａｃｅ  ｍｏｂｉｌｉｔｙに基づく動きのみを提供し、ＧｌｏＭｏＳｉｍ（非特許文献４を参照）でもそれらに加えｒａｎｄｏｍ  ｄｒｕｎｋｅｎ  ｍｏｂｉｌｉｔｙ、ＥＣＲＶ  ｍｏｂｉｌｉｔｙ、ｒｅｆｅｒｅｎｃｅ  ｐｏｉｎｔ  ｇｒｏｕｐ  ｍｏｂｉｌｉｔｙなどのサポートにとどまっている。また、商用シミュレータＯＰＮＥＴ（非特許文献５を参照）は拡張モジュールとして提供するＷｉｒｅｌｅｓｓ  Ｍｏｄｕｌｅにおいて、３次元空間における地上または衛星での移動ノードの動きをユーザ定義可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、ネットワークアプリケーションから得られる情報および自身の環境情報（視覚情報など）により移動ノードが行動を変化させる状況のシミュレーションは考慮されていない。実際のアプリケーションにおいては、移動端末を保持する人間の行動は、アプリケーションから得られる情報、視覚情報および心理状況などに左右される。例えば、イベント会場の来場者が携帯端末を保持しているもとで、それら携帯端末間でのマルチホップアドホックネットワークを介して、ナビゲーション情報を配信するアプリケーションの性能評価を行う場合を考える。そのアプリケーションのナビゲーション情報（例えば時間限定のイベントの情報）に従い、移動端末がそのイベントの開催場所に集中したとすれば、それに伴いネットワークトポロジも変化し、移動端末密度が不均一なネットワークとなる可能性もある。その結果、移動端末密度がおおよそ均一なランダム移動を仮定して設計されたアプリケーションでは、移動端末密度が疎である場所への情報到達率が減少し、逆に移動端末密度が密である場所では不必要なパケットが生じるなどの問題が発生する可能性もあるが、既存のシミュレータではこのような問題を発見することは容易ではない。【０００４】
さらに、従来の移動ノードシミュレータは、特定の移動ノードに対する特定の行動に特化していた。そのため、新たに別の行動モデルを有するシミュレータを開発する際には、開発の度にシミュレータを一から構築する必要があり、膨大な費用および時間が要求されてきた。【０００５】
本発明の目的の１つは、ユーザ定義可能な行動モデルに従って、複数の移動ノードの行動をシミュレートする行動シミュレータ部と、複数の移動ノードを含むネットワークのトポロジとネットワーク上での該複数の通信とをシミュレートするネットワークシミュレータ部とを備え、行動シミュレータ部とネットワークシミュレータ部とがインタラクティブに動作する移動ノードシミュレータ、および、これを実装するプログラムを提供することにある。
【非特許文献１】ｈｔｔｐ：／／ｗｗｗ．ｉｓｉ．ｅｄｕ／ｎｓｎａｍ／
【非特許文献２】Ｔｒａｃｙ，Ｔ．、Ｊｅｆｆ，Ｂ．、Ｖａｎｅｓｓａ  Ｄ．、“Ａ  Ｓｕｒｖｅｙｏｆ  Ｍｏｂｉｌｉｔｙ  Ｍｏｄｅｌｓ  ｆｏｒ  Ａｄ  Ｈｏｃ  ＮｅｔｗｏｒｋＲｅｓｅａｒｃｈ”、Ｗｉｒｅｌｅｓｓ  Ｃｏｍｍ．  ＆  Ｍｏｂｉｌｅ  Ｃｏｍｐｕｔｉｎｇ（ＷＣＭＣ）：Ｓｐｅｃｉａｌ  Ｉｓｓｕｅ  ｏｎ  Ｍｏｂｉｌｅ  Ａｄ  ＨｏｃＮｅｔｗｏｒｋｉｎｇ：Ｒｅｓｅａｒｃｈ，Ｔｒｅｎｄｓ，ａｎｄ  Ａｐｐｌｉｃａｔｉｏｎｓ、ｖｏｌ．２、ｎｏ．５、ｐｐ．４８３-５０２（２００２）
【非特許文献３】ｈｔｔｐ：／／ｗｗｗ．ｓｃａｌａｂｌｅ−ｎｅｔｗｏｒｋｓ．ｃｏｍ／
【非特許文献４】Ｚｅｎｇ，Ｘ．、Ｂａｇｒｏｄｉａ，Ｒ．、Ｇｅｒｌａ，Ｍ．：“Ｇｌｏ−ＭｏＳｉｍ：Ａ  Ｌｉｂｒａｒｙ  ｆｏｒ  ｔｈｅ  Ｐａｒａｌｌｅｌ  Ｓｉｍｕｌａｔｉｏｎ  ｏｆ  Ｌａｒｇｅ−ｓｃａｌｅ  Ｗｉｒｅｌｅｓｓ  Ｎｅｔｗｏｒｋｓ”、Ｐｒｏｃ．  ｏｆ  ＡＣＭ  Ｐａｒａｌｌｅｌ  ａｎｄ  Ｄｉｓｔｒｉｂｕｔｅａｌ  Ｓｉｍｕｌａｔｉｏｎ（ＰＡＤＳ’９８）、ｐｐ．１５４-１６１（１９９８）
【非特許文献５】ｈｔｔｐ：／／ｗｗｗ．ｏｐｎｅｔ．ｃｏｍ／
【非特許文献６】岡田公孝、和田剛、高橋幸雄、“個人行動をベースにした歩行モデルと歩行流シミュレーション”、日本オペレーションズ・リサーチ学会、春季研究発表会（２００３）
【非特許文献７】Ｒｉｌｅｙ，Ｇ．Ｆ．、“Ｔｈｅ  Ｇｅｏｒｇｉａ  Ｔｅｃｈ  Ｎｅｔｗｏｒｋ  Ｓｉｍｕｌａｔｏｒ”、Ｐｒｏｃ．  ｏｆ  ｔｈｅ  ＡＣＭ  ＳＩＧＣＯＭＭ  Ｗｏｒｋｓｈｏｐｏｎ  Ｍｏｄｅｌｓ，Ｍｅｔｈｏｄｓ  ａｎｄ  Ｔｏｏｌｓ  ｆｏｒ  ＲｅｐｒｏｄｕｃｉｂｌｅＮｅｔｗｏｒｋ  Ｒｅｓｅａｒｃｈ、ｐｐ．５-１２（２００３）
【課題を解決するための手段】
【０００６】
本発明では、モバイルネットワークアプリケーションのより現実的かつ詳細な評価を可能とするために、各移動ノードが、アプリケーションおよび自分の周辺環境から得られる情報を元にその行動を変化させる様子を記述可能であり、その記述に基づくシミュレーションが可能な移動ノードシミュレータの設計を行う。本発明による移動ノードシミュレータは、移動ノードの位置情報、出現および消滅に関する情報、ならびにアプリケーションに対するユーザ入力など、移動ノード（携帯端末を保持する人間または車両など）の行動に関する部分をシミュレートする行動シミュレータ部と、行動シミュレータ部とインタラクティブに動作し、ネットワークおよびアプリケーションをシミュレートするネットワークシミュレータ部と、行動シミュレータ部およびネットワークシミュレータ部がシミュレーション結果を出力する出力部との３つのコンポーネントにより構成される。好ましい実施形態では、シミュレーション結果は、グラフィカルユーザインターフェース（ＧＵＩ）により視覚的に表示される。本発明によるシミュレータにより、以下のような状況を表現可能となる。例えば、前述のイベントナビゲーションアプリケーションにおいて、人気のあるイベント会場の前に人が集中することで移動速度が落ちる状況、互いの衝突回避により人が自然に左側通行で対面通行する状況、また、アプリケーションからの情報により、特定のイベント会場に多数の人が移動し、人の分布に偏りがでる状況などが表現できる。これらの状況は、ネットワークトポロジおよびその流動性に影響を与えるため、ルーティングプロトコルの堅牢性および再送制御の妥当性など様々なメトリックを実際のアプリケーションに即して評価できる。その結果に基づき、アプリケーションにおける情報再送のタイミングおよび情報送信間隔などのパラメータの設定ならびにアプリケーションの再設計を行うことができる。【０００７】
本発明の移動ノードシミュレータは、ユーザ定義可能な行動モデルに従って複数の移動ノードの行動をシミュレートする行動シミュレータ部と、該複数の移動ノードを含むネットワーク上の通信をシミュレートするネットワークシミュレータ部とを備え、該ネットワークシミュレータ部には、シミュレーションの評価対象であるネットワークアプリケーションが実装されており、該ネットワークシミュレータ部は、シミュレーション時間ｔごとに、該ネットワークアプリケーションからの出力を該行動シミュレータ部に出力するように構成されており、該行動シミュレータ部は、該ネットワークアプリケーションからの出力に応じて、該行動モデルに従って該複数の移動ノードのうちの少なくとも１つの行動を変化させることが可能なように構成されており、該ネットワークシミュレータ部は、シミュレーション時間ｔごとに、該少なくとも１つの移動ノードの行動の変化を該ネットワーク上の通信のシミュレーションに反映させるように構成されており、これにより、上記目的が達成される。【０００８】
前記行動シミュレータ部は、シミュレーション時間ｔごとに、前記ネットワークアプリケーションへの入力と、前記複数の移動ノードのそれぞれの位置情報および速度情報とを前記ネットワークシミュレータ部に出力するように構成されており、前記ネットワークシミュレータ部は、該ネットワークアプリケーションへの入力と、該複数の移動ノードのそれぞれの位置情報および速度情報とに応じて、前記ネットワーク上の通信をシミュレートするように構成されていてもよい。【０００９】
前記行動モデルは、確率つきイベント発生モデル（ＣＰＥモデル）に従って記述されていてもよい。【００１０】
前記行動モデルは、前記移動ノードの状態遷移を表す状態遷移図によって定義されていてもよい。【００１１】
前記行動シミュレータ部は、前記行動モデルと、ユーザ定義可能な領域情報であって、前記移動ノードが移動可能な領域の範囲を定義する領域情報とに従って、前記複数の移動ノードの行動をシミュレートしてもよい。【００１２】
前記行動シミュレータ部は、前記行動モデルと、前記領域情報と、ユーザ定義可能な行動シナリオであって、ノードオブジェクトを生成するタイミングを少なくとも定義する行動シナリオとに従って、前記複数の移動ノードの行動をシミュレートしてもよい。【００１３】
前記ネットワークは、移動ノード間通信を実現するアドホックなネットワークであってもよい。【００１４】
前記ネットワークシミュレータ部によるシミュレーションの結果を出力する出力部をさらに備えていてもよい。【００１５】
前記出力部は、グラフィカルユーザインターフェースを用いて、前記シミュレーション結果を表示する表示部であってもよい。【００１６】
前記移動ノードが、携帯端末を持った人であってもよい。【００１７】
前記移動ノードが、車両であってもよい。【００１８】
本発明のプログラムは、移動ノードシミュレータを用いて、ネットワーク上の通信をシミュレートするシミュレーション処理をコンピュータに実行させるプログラムであって、該移動ノードシミュレータは、ユーザ定義可能な行動モデルに従って複数の移動ノードの行動をシミュレートする行動シミュレータ部と、該複数の移動ノードを含むネットワーク上の通信をシミュレートするネットワークシミュレータ部とを含み、該ネットワークシミュレータ部には、シミュレーションの評価対象であるネットワークアプリケーションが実装されており、該シミュレーション処理は、該ネットワークシミュレータ部が、シミュレーション時間ｔごとに、該ネットワークアプリケーションからの出力を該行動シミュレータ部に出力するステップと、該行動シミュレータ部が、該ネットワークアプリケーションからの出力に応じて、該行動モデルに従って該複数の移動ノードの行動のうちの少なくとも１つを変化させるステップと、該ネットワークシミュレータ部が、シミュレーション時間ｔごとに、該少なくとも１つの移動ノードの行動の変化を該ネットワーク上の通信のシミュレーションに反映させるステップとを包含し、これにより、上記目的が達成される。
【発明の効果】
【００１９】
本発明によれば、移動ノードの行動モデルをユーザ定義可能にすることにより、特定の移動ノードの行動モデルに応じて容易にカスタマイズ可能なシミュレータを提供することができる。さらに、移動ノードの移動可能な領域情報をユーザ定義可能にすることにより、特定の移動ノードの移動可能な領域情報に応じて容易にカスタマイズ可能なシミュレータを提供することができる。さらに、移動ノードの行動のシミュレーションと、ネットワークのトポロジおよび複数の通信のシミュレーションとがインタラクティブに実行されることにより、より現実の世界に近い状況をシミュレーションすることができる。
【図面の簡単な説明】
【００２０】
【図１】図１は、本発明による移動ノードシミュレータの図である。
【図２】図２は、本発明による図１に示される移動ノードシミュレータ１００の機能を実現するコンピュータ２００を示す図である。
【図３】図３は、本発明によるネットワークシミュレータ部１２０と行動シミュレータ部１４０とのインタラクションを表す図である。
【図４】図４は、本発明による行動シミュレータ部１４０の構成を表す図である。
【図５】図５は、本発明による典型的な歩行者の行動モデルの例を示す図である。
【図６】図６は、本発明による出力部としてＧＵＩを用いた場合のＧＵＩ画面例の図である。
【図７】図７は、ＭｏｂｉＲＥＡＬシミュレータの構成の概略を示す図である。
【図８】図８は、シミュレーション領域のモデル化の例を示す図である。
【図９】図９は、歩行者（ノード）の行動モデルをＣＰＥモデルに基づいて記述した例を示す図である。
【図１０】図１０は、シミュレーションシナリオの概念を示す図である。
【符号の説明】
【００２１】
１００  移動ノードシミュレータ
１２０  ネットワークシミュレータ部
１４０  行動シミュレータ部
１６０  出力部
１８０  ネットワークアプリケーション
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照しながら、本発明の実施形態を説明する。
（１  全体設計）
本明細書中では、現実世界の人物行動などに基づく移動ノードの行動をユーザ定義でき、それに基づいたモバイルネットワークアプリケーションの評価を可能とするネットワークシミュレータである移動ノードシミュレータの設計について述べる。本発明による移動ノードシミュレータは、移動ノードに関するシミュレーションを行う行動シミュレータ部１４０と、ネットワークに関するシミュレーションを行うネットワークシミュレータ部１２０とがインタラクティブに動作することにより、ネットワークアプリケーションによる移動ノードの行動への影響、およびその結果生じるネットワークトポロジの変化を再現でき、より現実的なシミュレーションを行うことが可能となる。【００２３】
図１は、本発明による移動ノードシミュレータ１００を示す。移動ノードは、携帯端末を持った人、車両、移動ロボット、センサー（タグ）の埋め込まれた動物、移動可能または固定のセンサー（タグ）、飛行機、あるいは、その他の任意の通信機能を有する移動体であり得る。移動ノードの通信は、移動ノードとネットワーク上の基地局などの任意の通信機能を有するポイントとの通信、および、移動ノード間の通信を含む。移動ノードシミュレータ１００は、ネットワークシミュレータ部１２０と、行動シミュレータ部１４０と、出力部１６０とを備える。出力部１６０は、ＧＵＩ（グラフィカルユーザインターフェース）であってもよいし、シミュレーション結果を出力する他の任意のコンポーネントであってもよい。【００２４】
移動ノードシミュレータ１００を利用するアプリケーション開発者は、行動シミュレータ部１４０に対し、各移動ノードの行動（これを行動モデルと呼ぶ）を指定し得る。ある実施形態では、行動モデルは、状態遷移図により指定される。各状態遷移の遷移条件として、シミュレーション評価対象とするネットワークアプリケーションから得られる情報、ならびに自身のノードの周辺に存在する障害物および他の移動ノードなどの情報（外部情報）に関する条件を指定し得る。また、各遷移図はいくつかの内部パラメータ（経由地および目的地、ならびに特定の地点に対する興味度など）を保持し得、その内部パラメータも遷移条件として利用し得る。また、遷移の実行によりそれらのパラメータ値を変更することもできる。この遷移図に基づき、行動シミュレータ部１４０は、各時間ごとの移動ノードの位置および速度ベクトル等の移動ノードに関する情報を計算する。遷移条件として、障害物情報を含むシミュレーションフィールドの情報（領域情報）および移動ノードの初期配置なども指定し得る。これらの情報は、ネットワークシミュレータ部１２０に渡される。ネットワークシミュレータ部１２０、行動シミュレータ部１４０、および出力部１６０などの本シミュレータに含まれるコンポーネントは、別々の場所に存在し無線リンクを介して通信してもよいし、一体化されて有線リンクにより通信してもよい。ある実施形態では、多数の移動ノードごとに内部パラメータを指定することは非効率的であるため、これらの内部パラメータを、例えば一定の分布に基づきランダムに生成して、複数の移動ノードに対し一括指定することもできる（これを行動シナリオと呼ぶ）。また、アプリケーション開発者は、通常のネットワークシミュレータと同様に、評価対象とするアプリケーション１８０を移動ノードシミュレータ１００上に実装し得る。さらに、移動ノードシミュレータ１００を利用するアプリケーション開発者は、各移動ノードの行動領域を表す情報（領域情報と呼ぶ）を指定し得る。ある実施形態では、領域情報は、地理領域を表す矩形と、その地理領域上に配置され、個々が線分の集合で表される建造物などのオブジェクトの集合とで表される。各オブジェクトには、そのオブジェクト内を移動ノードが通行可能か、あるいはそのオブジェクトを越えて無線を伝播させることが可能かなどを表す属性値を与えることができる。【００２５】
ここで図３を参照する。図３は、ネットワークシミュレータ部１２０と行動シミュレータ部１４０との相互連携（インタラクション）を表す図である。ある好ましい実施形態では、ネットワークシミュレータ部１２０および行動シミュレータ部１４０は、それぞれ独立にシミュレーション時間ｔ毎のシミュレーションを行い、そのシミュレーション結果を交換した後に次のｔシミュレーション時間のシミュレーションをそれぞれ独立に行う。これを繰り返しながらシミュレーションを進行させる。これについては、以下で詳細に説明する。シミュレーション結果は、例えば、トレースファイルとして出力され、出力部１６０に渡される。好ましい実施形態では、ＧＵＩを用いて、視覚的にシミュレーション結果を再現することができる。ＧＵＩでは、行動シミュレータから渡された情報、例えば、トレースファイルを入力として、移動ノードの移動および情報伝達の様子などを可視化することができる。ＧＵＩを用いた実施形態では、拡大および縮小ならびにステップ実行などにより、シミュレーション結果をより詳細に検討することができる。【００２６】
本発明による移動ノードシミュレータの実施形態は、例えば、図１に示される各コンポーネントを有する装置である。図１に示される移動ノードシミュレータの各コンポーネントの機能は、ソフトウェア（例えば、コンピュータプログラム）によって実現される。しかし、本発明は、これに限定されない。図１に示される各コンポーネントの機能をハードウェア（例えば、回路、ボード、半導体チップ）によって実現してもよいし、ソフトウェアとハードウェアとの組み合わせによって実現してもよい。【００２７】
図２は、図１に示される移動ノードシミュレータ１００の機能を実現するコンピュータ２００を示す。コンピュータ２００は、ＣＰＵ２１０と、メモリ２２０と、入力インターフェース部２３０と、出力インターフェース部２４０と、バス２５０とを含む。【００２８】
ＣＰＵ２１０は、プログラムを実行する。例えば、そのプログラムは、図１の各コンポーネントの機能を実行するプログラムである。そのプログラムおよびそのプログラムの実行に必要なデータは、例えば、メモリ２２０に格納される。そのプログラムは、任意の様態でメモリ２２０に含まれ得る。例えば、メモリ２２０が書き換え可能なメモリである場合には、コンピュータ２００の外部からプログラムをローディングすることにより、そのプログラムをメモリ２２０に格納してもよい。あるいは、メモリ２２０が読み出し専用メモリである場合には、メモリ２２０に焼き付ける形式でそのプログラムをメモリ２２０に格納してもよい。【００２９】
さらに、入力インターフェース部２３０は、ユーザからの入力を受け取るインターフェースとして機能する。出力インターフェース部２４０は、計算結果を出力するためのインターフェースとして機能する。バス２５０は、コンピュータ２００内のコンポーネント２１０〜２４０を相互に接続するために使用される。【００３０】
（１．１  行動シミュレータとネットワークシミュレータとの相互連携）
さらに、図３を参照する。好ましい実施形態では、行動シミュレータ部１４０とネットワークシミュレータ部１２０とは、連携しながら相互に情報交換を行い、シミュレーションを実行する。情報交換は、任意に指定可能なシミュレーション時間ｔごとに実行され得る。【００３１】
具体的には、例えば、以下のように実行され得る。シミュレーション開始時には、障害物の配置、シミュレーション時刻０における各ノードの座標および速度ベクトル、ならびにアプリケーション１８０への入力が、行動シミュレータ部１４０からネットワークシミュレータ部１２０へ渡される。しかし、行動シミュレータ部１４０とネットワークシミュレータ部１２０との間で交換される情報は、これらの情報に限定されない。その後、各シミュレーション時刻ｎ＊ｔ（ｎ＝０，１，．．．）において、行動シミュレータ部１４０は、各移動ノードごと、直前のｔシミュレーション時間［（ｎ−１）＊ｔ，ｎ＊ｔ）の行動シミュレーション中において得られた、（ａ）ネットワークアプリケーション１８０への入力（ユーザ入力）、（ｂ）時刻ｎ＊ｔにおける座標および速度ベクトル、をネットワークシミュレータ部１２０に渡す（図３の（ａ）の矢印）。同様に、シミュレーション時刻ｎ＊ｔにおいて、ネットワークシミュレータ部１２０は移動ノードごとに、［（ｎ−１）＊ｔ；ｎ＊ｔ）のネットワークシミュレーション中において得られたネットワークアプリケーション１８０からの出力を行動シミュレータ部１４０に渡す（図３の（ｂ）の矢印）。このように、行動シミュレータ部１４０とネットワークシミュレータ部１２０は互いに独立にシミュレーション時間［（ｎ−１）＊ｔ；ｎ＊ｔ）のシミュレーションを行い、その結果をシミュレーション時刻ｎ＊ｔに交換し、それを用いてシミュレーション時間［ｎ＊ｔ；（ｎ＋１）＊ｔ）のシミュレーションを行う。【００３２】
なお、シミュレーション時間ｔの間は、ネットワークシミュレータ部１２０は、受け取った速度ベクトルを用いて行動シミュレータ部１４０とは独立にノードの位置計算を行う。ただし、この間に行動シミュレータ部１４０でノードの速度ベクトルを変更している可能性があるため、ｔ時間毎の情報交換において、正確な現在位置座標を行動シミュレータ部１４０から適宜受け取り位置を補正する。ｔの大きさの決定は、アプリケーション１８０に求められるシミュレーション精度とシミュレーションに要する時間とのトレードオフに基づき、シミュレータ使用者が設定し得る。【００３３】
（２  行動シミュレータ部）
図４は、行動シミュレータ部１４０の構成を表す図である。行動シミュレータ部１４０を実装するためには、現実の行動を記述するための言語およびその処理系の開発が必要とされる。行動シミュレータ部１４０に対し、移動ノードの行動は、行動シナリオおよび行動モデルにより与えられる。行動シナリオは、個々のノードの出現確率および目的地の決定などを一括して指定し得る。また、上述したように、行動モデルは個々の移動ノードの行動を記述した状態遷移図（拡張有限状態機械）であってもよい。【００３４】
（２．１  行動シナリオ）
移動ノードが歩行者に対応する場合を例として、行動シナリオについて説明する。歩行者全体を考えた場合、どのような状況においてもある一定の歩行流（多数の歩行者の流れ）が発生することが多い。例えば駅の改札口では、電車の到着前には改札口へ向かう歩行者が多いため、改札口へ向かう歩行流が発生するが、電車の到着後には改札口を出る歩行者が多いため、改札口から離れる歩行流が発生する。また商業空間では店によって客の出入りする人数は異なるため、店によって付近の歩行流も異なる。このような歩行流を制御するためのパラメータを行動シナリオとして与えることで、マクロの視点においても現実に近いシミュレーションを行うことができる。図４の行動シナリオとして、ノードの出現確率、どの目的地にどの程度の割合のノードが向かうかを表す値、ならびに個人の行動に影響を与える情報活用度および興味度といったパラメータの基本値などを与える。これらの値を基本に、以下で述べる行動モデルの内部パラメータを決定する。【００３５】
（２．２  行動モデル）
行動モデルは、通常、アプリケーションとの入出力インターフェースおよび視覚情報の入力インターフェースを入出力ポートとし、目的地リストなどを内部変数として保持する状態遷移図である。シミュレータ使用者は、いくつかの状態遷移図と、それにしたがって行動するノードの集合とを指定し得る。これと行動シナリオで指定された基本値を基に、内部変数の初期値が与えられたインスタンスがノードごとに生成され得る。【００３６】
図５は、典型的な歩行者の行動モデルの例を示す。図５の歩行者の典型的行動を表す行動モデルの例に従って、行動モデルの機能を詳述する。一般に、人が行動する際にはある目的地へ向かって移動する。そこで、その目的地を優先順位付きのパラメータとして持たせる。この際、ネットワークアプリケーションからの情報がある場合には、その内容に従って優先順位を変更するか、または新規に目的地を持たせることにより、行動を変化させる。例えば、イベントの宣伝をネットワークアプリケーションにより行いたい場合には、あるノード（例えば固定端末）がアプリケーションへの入力として、イベントの開催時刻および開催場所などを与える。アプリケーションを介して、この情報を受け取った他のノードは、情報を活用するかどうかを情報活用度に応じて決定し、活用するならばこの開催時刻に合わせて開催場所へと向かうようになる。また、目的地として交差点などの経由地点を指定することにより、曲がり角などを含む複雑な経路を通る歩行を実現することができる。【００３７】
（２．３  領域情報）
領域情報とは、移動ノードが移動可能な領域の範囲と定義される。領域情報は、例えば図４に示されるように、地理領域を表す矩形と、その地理領域上に配置され、個々が線分の集合で表される建造物などのオブジェクトの集合とで表される。ある実施形態では、領域は、長方形であり、各辺の長さ［ｍ］を指定することにより定義され得る。建造物などのオブジェクトは、座標集合で指定し得る。例えば、長方形のオブジェクトの場合には４点の座標を指定し、円形の場合には中心と半径との組などを指定することにより、領域情報を定義できる。オブジェクトには、単なる障害物および進入可能な建物などの種類も指定し得る。各オブジェクトには、そのオブジェクト内を移動ノードが通行可能か、あるいはそのオブジェクトを越えて無線を伝播させることが可能かなどを表す属性値を指定することができる。上記の様々な値の指定は、ユーザによってなされ得る。【００３８】
領域情報が指定されている場合の移動ノードのシミュレーションを考える。シミュレーション対象となる領域には、建造物および道路などのオブジェクトが配置され、これらのオブジェクトには、無線を伝播させるかさせないかを表す属性値、または、移動ノードが移動できるかできないかを表す属性値などが指定されている。初期状態として、携帯電話を持った人などの移動ノードは、シミュレーション対象の領域上のある点Ａにあるとする。行動シミュレータ部１４０は、領域情報を参照して、地点Ａの周りにあるオブジェクトとその属性値とに基づき、移動ノードが無線を伝播させる方向および無線を伝播させない方向を計算する。さらに、行動シミュレータ部１４０は、領域情報を参照して、地点Ａの周りにあるオブジェクトとその属性値とに基づき、移動ノードが進み得る方向および進み得ない方向を判断するとともに、移動ノードの行動モデルを参照して、移動ノードが実際に進む方向を計算する。行動シミュレータ部１４０は、これらの計算結果をネットワークシミュレータ部１２０に送る。【００３９】
（２．４  現実的な行動モデルのためのライブラリ群）
本発明による移動ノードシミュレータは、より現実的な行動を容易に記述するために、グループ行動および衝突回避処理を行うライブラリを含み得る。【００４０】
（２．４．１  グループ行動）
街中では、人は１人で歩いているだけでなく、友人等と一緒にも歩いている。そこで、グループとしての挙動を表現できるように、グループ行動の要素を導入しライブラリとして利用できる。グループ行動を実現するために、例えば、非特許文献２で紹介されている、グループ行動におけるｒｅｆｅｒｅｎｃｅ  ｐｏｉｎｔを導入し得る。ｒｅｆｅｒｅｎｃｅ  ｐｏｉｎｔ自体は、個々のノードのように移動するが、そのｒｅｆｅｒｅｎｃｅ  ｐｏｉｎｔを持つグループ中のノードが、ｒｅｆｅｒｅｎｃｅ  ｐｏｉｎｔの動きに従って行動することで、グループの行動を統一化できる。このグループ行動のライブラリは、例えば、図５の状態”通常移動”および”寄り道”において速度ベクトルを決定する際に用いることができる。【００４１】
（２．４．２  衝突回避）
現実に人と人がすれ違うときにはぶつからないように歩くのが自然である。その行動を行動シミュレータで実現するために非特許文献６で紹介されているような衝突回避処理を導入し得る。衝突を避ける対象者が、図５中のｎｅｉｇｈｂｏｒに相当する。これは自分の移動ベクトルから決定した視野範囲内に存在するノードである。この衝突回避処理では、自分とｎｅｉｇｈｂｏｒの位置および速度ベクトルならびに人体円半径などによって、そのままの速度ベクトルで進んだときに衝突する領域を求め、その領域には進まないように、速度ベクトルを変化させることができる。また壁などの障害物に対しても、障害物を動かないノードの集合とみなすことで同様の処理を用いて衝突を回避することができる。この衝突回避のライブラリは図５の状態”衝突回避”において速度ベクトルを決定する際に用いることができる。【００４２】
（３  ネットワークシミュレータ部）
本発明によるネットワークシミュレータ部１２０では、行動モデルシミュレーション部１４０による移動ノードの行動に従い、移動ノードを含むネットワークのトポロジを変化させる。また、そのもとで移動端末間のネットワーク通信をシミュレートする。以下、使用するネットワークシミュレータ部１２０の概要、ネットワークシミュレータ部１２０と行動シミュレータ部１４０の連携について詳しく説明する。【００４３】
（３．１  ＧＴＮｅｔＳ）
本発明による移動ノードシミュレータでは、ネットワークシミュレータ部１２０として、例えば、米Ｇｅｏｒｇｉａ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｔｅｃｈｎｏｌｏｇｙで開発されたＧＴＮｅｔＳ（非特許文献７を参照）を使用し得る。しかし、本発明において利用されるネットワークシミュレータは、ＧＴＮｅｔＳに限定されず、その他の任意のネットワークシミュレーション機能を有するネットワークシミュレータであり得る。ＧＴＮｅｔＳは、既存のネットワークシミュレータのスケーラビリティにおける問題点を克服し、より高速に大規模なネットワークのシミュレーションを行うという思想で設計されており、Ｃ＋＋による実装、並列実行等の特長を持つ。ＧＴＮｅｔＳは、ネットワークシミュレーションを構成する各部品をＣ＋＋言語により実装し、ライブラリとして提供している。これらのライブラリを利用しシミュレーションシナリオを記述することで、ＧＴＮｅｔＳが提供するネットワークシミュレーション環境を利用することができる。また、必要に応じてクラスを作成することで、シミュレータの拡張を容易に行うことができる。【００４４】
（３．２  ＧＴＮｅｔＳを利用したネットワークシミュレータ部の実現）
以下に、ＧＴＮｅｔＳを用いた場合を例に、ネットワークシミュレータ部を説明する。本発明による移動ノードシミュレータでは、行動シミュレータ部１４０とのインタラクション部分を独自のクラスとして実装しＧＴＮｅｔＳに組み込むことで、行動シミュレータ部１４０とネットワークシミュレータ部１２０との連携を実現し得る。また、同様に、ノードの移動等を扱うクラスも実装してＧＴＮｅｔＳに組み込み、行動シミュレータ部１４０から受け取るノードの速度情報にもとづきノードの位置を更新し得る。インタラクション部分では、行動シミュレータ部とのデータ交換、および入力データに対する処理を行い得る。行動シミュレータ部１４０からインタラクション部分への入力は、ノードの発生、消滅および移動などのノードに関する入力と、アプリケーションへの入力との２種類に分けられる。アプリケーションへの入力は、実装されているネットワークアプリケーション１８０への入力となる。以下、インタラクション部分の実装および入力処理について説明する。【００４５】
（３．２．１  行動シミュレータ部とのインタラクション）
ＧＴＮｅｔＳは、ｄｉｓｃｒｅｔｅ−ｅｖｅｎｔタイプのネットワークシミュレータとして実装されている。パケットの送受信等のシミュレーションイベントは、その実行時刻と共にイベントキューに挿入される。その後、イベントキューに挿入されたイベントは、シミュレーション時間順に取り出され処理される。これらイベントキューへのイベント挿入および処理の繰り返しによりシミュレーションが構成される。本発明による移動ノードシミュレータでは、行動シミュレータ部１４０とのデータ交換と、行動シミュレータ部１４０から渡されるノード情報およびアプリケーション情報に対する処理とを行うために、インタラクションイベントを作成し、シミュレーション時間ｔごとに処理する。まずシミュレーション開始前に、インタラクションイベントを時刻ｔにスケジューリングする。このスケジューリングにより、［０，ｔ］のシミュレーションを行った後、時刻ｔでインタラクションイベントが処理され、行動シミュレータ部１４０とのデータの受け渡しおよび受け取ったデータに対する処理が行われる。インタラクションイベントの最後には、次のインタラクションイベントを時刻２ｔにスケジューリングし、次回の行動シミュレータ部１４０とのデータ受け渡しに備える。このような一連の処理を、行動シミュレータ部１４０によってシミュレーション終了の情報が渡されるまで繰り返す。【００４６】
（３．２．２  ノードの発生、消滅に対する拡張）
ＧＴＮｅｔＳは、ネットワークトポロジの変化に乏しい有線ネットワークを主な対象としているため、ネットワーク通信を行うノードを、シミュレーション開始前に全て生成しておき、シミュレーション中に新規ノードの追加、既存ノードの削除は行わないことが好ましい。一方、無線ネットワークにおいては、ノードの移動だけでなく、ノードの発生および消滅も頻繁に発生するため、これらのノードの変化に対しＧＴＮｅｔＳで適切に対処する必要がある。例えば、あらかじめノードを十分な数だけ生成しておき、行動シミュレータ部１４０のノードとネットワークシミュレータ部１２０のノードとのマッピングを行うノード管理クラスを導入し、行動シミュレータ部１４０からのノード追加および削除情報に対して、あらかじめ生成しておいたノードをネットワークトポロジに追加および削除することで、ノードの発生および消滅に対処し得る。【００４７】
（３．２．３  ノードの移動に対する拡張）
ＧＴＮｅｔＳではノード移動を計算および管理するモビリティクラスが用意されており、各ノードの移動は、ノードに割り当てられたモビリティクラスのインスタンスに依存する。本発明による移動ノードシミュレータでは、行動シミュレータ部１４０から受け取ったノードの移動情報（例えば、速度ベクトル）をネットワークシミュレータ部１２０に反映させるため、速度および変化時刻の組を蓄積出来るようなモビリティクラスを作成し、ＧＴＮｅｔＳに組み込んでいる。行動シミュレータ部１４０からノードの速度ベクトルを受け取った時点では、ノード位置を更新せずに、蓄積情報の更新を行う。無線計算等でノードの現在位置が必要になった場合のみ、ノード位置および速度、ならびに蓄積情報によって位置計算が行われる。ただし、このように速度ベクトルのみを受け取り行動シミュレータと連携する方法では、ベクトルの精度および位置計算が原因で誤差が生じる可能性がある。そこで、定期的にノードの位置情報を受け取り、誤差を修正する。位置情報を受け取った場合は、過去の速度ベクトルが必要なくなるため、蓄積情報の初期化を行う。【００４８】
（４  出力部）
本発明による移動ノードシミュレータは、出力部１６０を有する。出力部１６０は、好ましくはＧＵＩを用いるが、他の任意のシミュレーション結果を出力することができるコンポーネントであり得る。【００４９】
図６は、本発明による出力部としてＧＵＩを用いた場合のＧＵＩ画面例である。ＧＵＩ部では移動ノードの動きおよびネットワークの可視化を行い、わかりやすい形でシミュレーション結果を提示し、その理解を視覚的に手助けすることを目指している。【００５０】
（４．１  ＧＵＩの機能）
Ｗｉｎｄｏｗｓ（登録商標）上で動作する本発明による移動ノードシミュレータのＧＵＩには、処理速度および描画能力の観点から、例えば、ＤｉｒｅｃｔＸ９を採用している。図６のように、ＧＵＩは、俯瞰視点での人の行動の可視化を実装され得、シミュレーションフィールドを表す地図画像の上で、人を表す小さい円と、その人が持つ無線端末の電波が届く範囲を表す大きい円とが、その人の行動に従って移動する（図６）。地図画像の上には、ビルなどの電波の伝達を妨害する障害物を表示することができ、無線伝達範囲を表す大きい円とあわせて、おおまかにではあるが各ノード間における通信の可否を確認することができる。ＧＵＩは、行動シミュレータ部１４０およびネットワークシミュレータ部１２０から出力されたシミュレーション結果（例えば、トレースファイル）を入力とし、またそのファイルで地図画像に任意のビットマップ画像を指定することが可能である。ＧＵＩには拡大および縮小機能（１ｃｍ／ｐｉｘｅｌ〜１００ｍ／ｐｉｘｅｌ）、再生速度の変更機能（実時間比で０〜２５６倍）、ならびにステップ実行機能など一通りの機能が備わっている。【００５１】
ＧＵＩではノードの状況の違いを一目で見分けられるよう、人を表す円を色分けする機能を実装し得る。例えば、ネットワークアプリケーション１８０でブロードキャスト中のある特定の情報に着目し、その情報が伝わっているか否かで色分けを行えば、情報が伝達していく様子を視覚的に把握することが可能である。またその情報が伝わる事により行動が変化した人を色分けすることで、その情報の伝達が人の行動にどう影響を及ぼすかを見ることもできる。また、本発明による移動ノードシミュレータでは、将来的に何千、何万ノードレベルでの大規模なシミュレーションを対象とし得、ＧＵＩにおける表現上の抽象化により、ＧＵＩ上で相当数のノードを同時に表示しても、見やすく、かつわかりやすいようにし得る。これらに加え、ユーザからの入力、例えば、地図情報およびシナリオの入力、ならびにノードの初期配置の入力に対し、ＧＵＩによる補助を行い得る。【００５２】
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。【００５３】
（５  移動ノードシミュレータ１００の実装例、ＭｏｂｉＲＥＡＬ）
以下、ノードが自身の周辺環境やネットワークアプリケーションの振る舞いに応じて行動を変化させる動的な挙動が記述可能な確率つきイベント発生モデル（Ｃｏｎｄｉｔｉｏｎ  Ｐｒｏｂａｂｉｌｉｔｙ  Ｅｖｅｎｔ  Ｍｏｄｅｌ、以下、「ＣＰＥモデル」という）について説明し、ＣＰＥモデルに基づくノードの行動のシミュレートと、そのノードの行動に基づいたネットワークアプリケーションのシミュレートとが可能なネットワークシミュレータＭｏｂｉＲＥＡＬの設計および実装について説明する。ＭｏｂｉＲＥＡＬシミュレータは、図１に示される移動ノードシミュレータ１００の１つの実装例である。【００５４】
ＣＰＥモデルは、現実的なノードの行動を記述するのに好適なモデルとして発明者らが提案しているモデルである。ＣＰＥモデルに基づいて現実的なノードの行動をシミュレートすることにより、ノードの行動がネットワークアプリケーションや他のノードに与える影響を再現し、より現実的なシステム性能評価を行うことができる。【００５５】
（５．１  ＭｏｂｉＲＥＡＬシミュレータの構成）
図７は、ＭｏｂｉＲＥＡＬシミュレータの構成の概略を示す。ＭｏｂｉＲＥＡＬシミュレータは、移動ノード群のアドホック通信をシミュレートすることができる。また、ＭｏｂｉＲＥＡＬシミュレータは、固定の有線ネットワークと移動ノード群が基地局を介して通信するような有線・無線混在型のネットワークもシミュレートすることができる。【００５６】
ＭｏｂｉＲＥＡＬシミュレータは、ノードの行動をシミュレートする行動シミュレータと、ネットワーク上の通信をシミュレートするネットワークシミュレータとを含む。ここで、行動シミュレータは、図１に示される行動シミュレータ部１４０の１つの実装例であり、ネットワークシミュレータは、図１に示されるネットワークシミュレータ部１２０の１つの実装例である。【００５７】
ＭｏｂｉＲＥＡＬシミュレータでは、行動シミュレータとネットワークシミュレータとは２つの独立したプログラムとして実現されている。このように、行動シミュレータとネットワークシミュレータとを２つの独立したプログラムとして実現することにより、ＭｏｂｉＲＥＡＬシミュレータの行動シミュレータを他のネットワークシミュレータで利用することが可能になる。例えば、ｎｓ−２（非特許文献１を参照）やＧｌｏＭｏＳｉｍ（非特許文献４を参照）などのオープンソースシミュレータに行動シミュレータとのインターフェース部を実装することにより、それらのシミュレータでも現実的な移動ノードの行動を容易にシミュレートすることができる。また、２つのプログラムを異なる計算機上で実現することで、負荷分散も可能となる。【００５８】
図７において色付きのコンポーネントは、ユーザによりその内容を指定することが可能なコンポーネント（すなわち、ユーザ定義可能なコンポーネント）である。行動シミュレータに対しては、シミュレーション領域情報と、ＣＰＥモデルと、ノードの生成を指定するシミュレーションシナリオとをユーザが指定することが可能である。ここで、シミュレーション領域情報は、図４に示される領域情報の１つの実装例であり、ＣＰＥモデルは、図４に示される行動モデルの１つの実装例であり、シミュレーションシナリオは、図４に示される行動シナリオの１つの実装例である。ネットワークシミュレータに対しては、ネットワークシステム（ネットワークアプリケーションやトランスポート層／ネットワーク層プロトコルなど）の記述をユーザが指定することが可能である。主要なプロトコルはライブラリとして提供されており、ユーザは下位層のプロトコルにそれらを利用することもできる。【００５９】
行動シミュレータとネットワークシミュレータとは、ＴＣＰ接続を介して相互通信を行いながら並行に実行される。シミュレーションの実行開始時には、行動シミュレータからネットワークシミュレータにシミュレーション領域情報が渡され、それぞれが独立して領域情報を保持する。シミュレーション開始後には、行動シミュレータで生成されたノードオブジェクトの情報がネットワークシミュレータに随時通知され、ネットワークシミュレータ側で対応するノードオブジェクトが生成される。また、ノードの位置および速度ベクトルの更新情報を行動シミュレータからネットワークシミュレータに随時与えることで、ネットワークシミュレータ側でノードの位置が更新される。ネットワークシミュレータは、現在のノード位置と領域情報とからノード間の電波の伝播計算、パケットルーティングなどのネットワーク上の通信のシミュレーションを行う。また、ノードがネットワークアプリケーションを利用する振る舞い（ネットワークアプリケーションに対するデータ入力）を行動シミュレータからネットワークシミュレータに与え、ネットワークアプリケーションからのノードへのデータ出力をネットワークシミュレータから行動シミュレータに渡すことで、ネットワークアプリケーションによるノードの行動へのフィードバックを可能にしている。【００６０】
（５．２  行動シミュレータとノードのモデル化）
以下、現実世界の環境やノードの行動をモデル化する手法について説明し、それに基づく行動シミュレータの設計および実装について説明する。【００６１】
（５．２．１  シミュレーション領域のモデル化）
建物、広場などの通行不可能な閉空間は、閉多角形（例えば、図８における色付きの領域）で指定し、進入可能な閉空間については、図８のＥやＪのようにポイントを境界線上に設定することで領域の出入り口をユーザが指定することが可能である。その他の領域は、道路などの自由移動領域として定義される。また、ユーザは、交差点や領域の出入り口に設定されたポイントを線分で結んだ仮想グラフを合わせて指定することが可能である。このような仮想グラフを指定することにより、道路の論理的な構造情報を行動シミュレータに与えることができ、目的地や経路計算を簡単化することができる。【００６２】
このようなシミュレーション領域のモデル化は、ＧＵＩ入力支援ツールを用いて行うと効率的である。例えば、地図上の点をマウスで選択することにより上述した通行可能な閉空間や領域の出入り口を含むシミュレーション領域を定義し、その定義されたシミュレーション領域を表すプログラム（例えば、Ｃ＋＋で記述したプログラム）を出力する機能を有するＧＵＩ入力支援ツールを提供することができる。【００６３】
（５．２．２  ノードの行動のモデル化）
一般に、ノード（例えば、携帯端末ユーザ）は、自身の周辺の情報（例えば、障害物や近隣ノードの行動）や自身の携帯端末上で動作するネットワークアプリケーションの出力に基づいて目的地などを動的に変更する場合がある。例えば、混雑している目的地は後で訪問する、あるいは、近隣の店舗を検索するナビゲーションシステムに購入したい商品の情報を入力し、システムが提示した店舗に向かう、といった行動変更が考えられる。また、ノードは、目的地や経路、到着予定時刻や滞在時間などをある程度計画して行動することが多い一方、行動が確率的である場合も多い。【００６４】
以上のような観点から、本発明者らは、ノードの動的な行動変化規則を変数を用いて記述する確率つきイベント発生モデル（ＣＰＥモデル）を提案し、さらにそのＣＰＥモデルを用いたノードの行動のモデル化手法を提案している。すなわち、ノードの行動のモデル化は、以下の手順で行われる。まず、ノードの行動種別（例えば、通勤者、買い物客など）ごとに、動的な行動変化規則などが、ＣＰＥモデルを用いて変数を利用した汎用的な形式で記述される。次に、シミュレーション実行時において、目的地などの具体的な変数値が指定されたノードオブジェクトがシミュレーションシナリオに従って生成される。【００６５】
ＣＰＥモデルは、”ルール”の並びと、内部変数の集合と、外部変数の集合とによって定義される。各ルールは、「条件」、「確率」および「行動」の組から構成されており、「条件」が満たされた場合には、ノードが「確率」に従って「行動」をとることを記述したものである。内部変数とは、ＣＰＥモデルの内部からのみ更新または参照可能な変数をいい、外部変数とは、ＣＰＥモデルの内部および外部から更新または参照可能な変数をいう。【００６６】
外部変数には、例えば、シミュレーション時刻Ｔ、近隣ノードや障害物などの周辺情報Ｅ、ネットワークアプリケーションへの入力ＡＩ、ネットワークアプリケーションからの出力ＡＯ、ノードの現在位置Ｐおよびノードの速度ベクトルＶが含まれる。【００６７】
各ルールの「条件」には、外部変数または内部変数を用いた論理式が指定される。各ルールの「確率」には、０から１までの定数、または、確率関数が指定される。【００６８】
ＣＰＥモデルに基づいてノードの行動を記述した行動モデルは、行動シミュレータによって実行可能な形式（例えば、Ｃ＋＋で記述したプログラムの形式）で行動シミュレータに組み込まれる。行動シミュレータは、ルールの並びを先頭から検索し、指定された条件が満たされる最初のルールによって指定された行動を指定された確率で実行することを繰り返す。【００６９】
以下、シミュレーションの評価対象であるネットワークアプリケーションが、ＩＥＥＥ８０２．１１などの近距離な端末間通信デバイスを装備した情報端末を保持する歩行者がいくつかの店舗を買い物などの目的で訪れ、店舗に関して入手した情報（例えば、セール情報）を移動中に遭遇した他の歩行者に配布することで有用な情報の共有を行うモバイルアドホックネットワーク（ＭＡＮＥＴ）上のネットワークアプリケーションである場合を考える。このようなネットワークアプリケーションは、ネットワークシミュレータ上に実装されている。【００７０】
図９は、歩行者（ノード）の行動モデルをＣＰＥモデルに基づいて記述した例を示す。図９に示される例では、目的地情報（目的地の位置を示すポイント名ｐ、現在地から目的地までの経路を表すポイント列ｒ、予定到着時刻ｔ、滞在時間ｓなど）が内部変数の構造体として保持されており、現在の目的地情報が変数ｄｓｔに格納されており、その後訪れる予定の目的地群が目的地情報のリストとして変数Ｄｌｉｓｔに訪問順に格納されている。【００７１】
例えば、ルールＥ３では、急いで歩いたとしても間に合わないほど予定から遅れている場合には、０．２の確率で到着予定時刻ｄｓｔ．ｔを１０分遅らせ、速度ベクトルＶに急いで歩く場合の値を計算し代入している。一般に、歩行者は接近してくる歩行者や小さな障害物などを回避しながら歩行することから一時的に移動方向を変えることがある。速度ベクトルＶの計算は、このような衝突回避を考慮して行われる。【００７２】
ルールＥ７、Ｅ８では、目的地の滞在中に滞在予定時刻を過ぎたときの行動を同じ条件を用いて指定している。ルールＥ７はルールＥ８の上位にあるため、これらのルールの条件が真である場合には、０．８の確率でルールＥ７の行動が実行され、ルールＥ７の行動が実行されない場合には、ルールＥ８の行動が必ず実行される。【００７３】
ルールＥ５では、ネットワークを介して他の歩行者から店舗情報ｎｅｗ＿ｄｓｔを入手した場合、０．５の確率でその店舗を目的地リストに追加する行動を記述している。さらに、ルールＥ９では、滞在を延長した目的地（店舗）を出発するときに、その目的地情報（店舗情報）をネットワークを介して他の歩行者に配布するようにしている。【００７４】
ルールＥ１では、行動が実行される確率を定数ではなく、平均６分、標準偏差２分の正規分布に従う確率関数を用いて表している。確率関数として任意の関数を用いることが可能であり、ある条件が成立してからノードが行動を起こすまでの時間のばらつきや、行動を起こす頻度を指定することもできる。【００７５】
なお、頻繁に用いられる条件や行動は、ライブラリとして提供され得る。これにより、ＣＰＥモデルを容易に記述することが可能になる。【００７６】
（５．２．３  シミュレーションシナリオ）
シミュレーションシナリオでは、シミュレーション実行時間などのパラメータが設定されるとともに、各ＣＰＥモデルに対応するノードオブジェクトを生成するタイミングや変数の初期値などが指定される。【００７７】
図１０は、シミュレーションシナリオの概念を示す。図１０の前半では、ＣＰＥモデル”ｃｕｓｔｏｍｅｒ”に対応するノードオブジェクトが１５秒ごとに生成され、その生成されるノードオブジェクトは、その速度Ｖが１．０ｍ／ｓから１．８ｍ／ｓのランダム、その発生位置ＰがＡまたはＱ、その最初の目的地ｄｓｔがＥまたはＪ、それ以降の目的地がＤｌｉｓｔであることが記述されている。また、図１０の後半では、ＣＰＥモデル”ｗｏｒｋｅｒ”に対応するノードオブジェクトが８秒ごとに生成されることが記述されている。ノードオブジェクトごとに、各変数の初期値やノードの生成条件を変更することも可能である。各変数の初期値やノードの生成条件は様々な定義済み関数を利用して設定することができる。【００７８】
このようなシミュレーションシナリオは、例えば、歩行流（Ｕｒｂａｎ  Ｐｅｄｅｓｔｒｉａｎ  Ｆｌｏｗ）に基づいて生成することができる。歩行流とは、シミュレーション領域内に定義された各経路をたどる歩行者（ノード）の発生量（人／秒）を示したものである。歩行流の生成は、ＧＵＩ入力支援ツールを用いて行うと効率的である。例えば、地図上の点をマウスで選択することにより、シミュレーション領域内のいくつかの点における歩行者（ノード）の密度を入力し、目的地（ノードの発生・消滅地点）の候補を入力することにより、歩行流を自動的に生成し、その歩行流に従って記述されたシミュレーションシナリオを表すプログラム（例えば、Ｃ＋＋で記述したプログラム）を出力する機能を有するＧＵＩ入力支援ツールを提供することができる。【００７９】
例えば、現実世界において実際に測定された歩行者の密度を上述した歩行者（ノード）の密度として入力し、実際の地図の端、建物の入り口、地下街などへの入り口にあたるポイントを上述した目的地（ノードの発生・消滅地点）の候補として入力することにより、現実の歩行流に近い歩行流を生成することが可能である。【００８０】
（５．３  ネットワークシミュレータ）
ＭｏｂｉＲＥＡＬシミュレータのネットワークシミュレータは、ネットワーク上の通信をシミュレートする基本機能に加えて、行動シミュレータと周期的に連携し、行動シミュレータから渡されたノードの生成や削除に関する情報、ノードの位置や速度に関する情報などをネットワークのシミュレーションに反映させる機能と、ネットワークシミュレータに実装されているネットワークアプリケーションへの入力やネットワークアプリケーションからの出力を行動シミュレータと交換する機能とが必要となる。【００８１】
本発明者らは、ＧＴＮｅｔＳ（非特許文献７を参照）に上述した機能を実装することにより、ＭｏｂｉＲＥＡＬシミュレータのネットワークシミュレータを開発した。【００８２】
一般に、ＧＴＮｅｔＳを含む多くのネットワークシミュレータは、シミュレーション実行中の新規ノードの追加や既存のノードの削除を想定せずに実装されている。これに対し、本発明者らは、ＧＴＮｅｔＳのノード管理プロセスの修正を行うことにより、ノードの動的な生成や動的な削除を実現した。また、シミュレーションの現実性を向上させるために、障害物の影響を考慮した電波伝搬を計算できるように物理層シミュレーションモジュールの拡張を行った。【００８３】
ＭｏｂｉＲＥＡＬシミュレータの行動シミュレータとネットワークシミュレータとは、シミュレーション領域情報と、ノードオブジェクトと、ノードの位置や速度とをそれぞれが保持する２つの独立したシミュレーションプログラムである。行動シミュレータは、ノード移動のシミュレーションのみを行い、ネットワークシミュレータは、自身が把握するノードの位置と速度とに基づいてノードを単純に移動させ、ネットワーク上の通信のシミュレーションを行動シミュレータから独立して行う。そのため、ｔシミュレーション時間間隔で、周期的に、行動シミュレータによって更新されたノード位置情報や、ネットワークシミュレータによって計算されたネットワークアプリケーションからのデータ出力などを交換し、２つのシミュレータ間の整合性を保っている。一方がデータ交換時までのシミュレーションを早く終えた場合には、他方がシミュレーションを終えデータ交換が完了するまで待機する。【００８４】
なお、ｔを可能な限り小さい値に設定すれば、行動シミュレータが決定するノードの位置や速度などがネットワークシミュレータ側にほぼ完全に反映された正確なシミュレーションが可能であるが、その分通信頻度が増加し、シミュレーション実行時間を多く要する。ｔの値の決定は、シミュレーションに求める精度と実行時間とのトレードオフに基づいて行う。ｔは、通常、１．０秒に設定されている。【００８５】
なお、行動シミュレータにおける各ＣＰＥモデル走査の周期は０．２秒に設定されている。ネットワークシミュレータ（ＧＴＮｅｔＳ）については、シミュレーション精度は各層の実装に依存するが、シミュレーション時刻は倍精度浮動小数点型の変数で表現されている（単位は秒）。【００８６】
（５．４  アニメータ）
シミュレーション結果の視覚化は、ネットワークシミュレータにとって極めて重要である。特に、ノードの動きを可視化することは、ネットワークシステムがノードの行動に与える影響を確認するために不可欠である。そこで、ＭｏｂｉＲＥＡＬシミュレータでは、シミュレーション結果の視覚化を行なうアニメータを提供している。アニメータは、図１に示される出力部１６０の１つの実装例である。【００８７】
アニメータは、Ｗｉｎｄｏｗｓ（登録商標）上で動作し、ノードやリンク、無線到達半径、パケット伝搬の様子などをアニメーションで表示できる。これらは項目ごとに表示か非表示かの選択が可能であり、パケットは種類（データパケットや制御パケットなど）別に色表示できる。また、ノードの色表示は、ネットワークシミュレータ上のネットワークアプリケーション実装内で自由に指定可能である。例えば、ネットワークアプリケーションから特定の情報を受け取ったノードを赤で、それ以外のノードを青で表示するといったことが可能となる。
【産業上の利用可能性】
【００８８】
本発明は、特定の移動ノードの行動モデルに応じて容易にカスタマイズ可能であり、より現実の世界に近い状況をシミュレーションすることができるシミュレータ等として有用である。
【図１】
0004534047.tif 000002
【図２】
0004534047.tif 000003
【図３】
0004534047.tif 000004
【図４】
0004534047.tif 000005
【図５】
0004534047.tif 000006
【図６】
0004534047.tif 000007
【図７】
0004534047.tif 000008
【図８】
0004534047.tif 000009
【図９】
0004534047.tif 000010
【図１０】
0004534047.tif 000011