(57)【要約】  分散処理型シミュレーションに用いられるシミュレータは、地図情報、エージェント情報、及び領域割当情報を記憶する記憶部（１０１）と、シミュレーション実行部（１０２）と、エージェントの移動状態に基づいて、前記シミュレーション実行部が参照すべき参照エージェントの条件を決定する条件決定部（１０４）と、前記条件に該当する参照エージェントが存在し得る領域を割り当てられた他の計算機を判別する割当判別部（１０５）と、判別した他の計算機から、参照エージェントの条件を満たすエージェントの情報を取得するエージェント情報取得部（１０６、１１０）とを備える。
2011018854.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間に存在する複数のエージェントの挙動の模擬を、複数の計算機を用いた分散処理により実現するシミュレータであって、
前記各計算機のシミュレータは、
前記仮想空間のうち当該計算機自身に割り当てられた対象領域の地図情報、エージェントの少なくとも位置に関する情報を含んだエージェント情報、及び他の計算機に割り当てられた領域を示す領域割当情報を記憶する記憶部にアクセス可能であり、
前記対象領域内の各エージェントの挙動を、他のエージェントのエージェント情報を参照して模擬し、前記各エージェントのエージェント情報を更新する処理を繰り返し実行するシミュレーション実行部と、
前記エージェントの位置に関する情報から得られる前記対象領域内のエージェントの移動状態に基づいて、前記シミュレーション実行部が前記各エージェントの挙動を模擬する処理において参照すべき参照エージェントの条件を決定する条件決定部と、
前記条件に該当する参照エージェントが存在し得る領域を割り当てられた他の計算機を、前記領域割当情報を用いて判別する割当判別部と、
割当判別部が判別した前記他の計算機から、前記参照エージェントの条件を満たす参照エージェントのエージェント情報を取得して前記記憶部に格納するエージェント情報取得部を備える、シミュレータ。
【請求項２】
前記エージェント情報取得部は、
割当判別部が判別した前記他の計算機に対して、前記参照エージェントの条件を出力するエージェント情報要求部と、
エージェント情報要求部が前記条件を出力した前記他の計算機から、エージェント情報を受け付け、前記記憶部に格納するエージェント情報受付部とを含み、
他の計算機のシミュレーション実行部が参照すべきエージェントの条件を、当該他の計算機から受け付けるエージェント情報要求受付部と、
前記エージェント情報要求受付部が受け付けた条件を満たすエージェント情報を前記記憶部から選択する被参照エージェント選択部と、
被参照エージェント選択部が選択したエージェント情報を、前記他の計算機に対して送信するエージェント情報出力部と、
をさらに備える、シミュレータ。
【請求項３】
前記条件決定部で決定された参照エージェントの条件が前回決定した条件から変更されているか否かを判定する変更判定部をさらに備え、
前記エージェント情報取得部は、前記変更判定部が、前記条件が変更されたと判定した場合に、前記他の計算機から前記条件を満たす前記参照エージェントのエージェント情報を取得する、請求項１または２に記載のシミュレータ。
【請求項４】
前記被参照エージェント選択部は、前記エージェント要求受付部が前記他の計算機から前記エージェントの条件を、前回受付時から所定時間内に受け付けなければ、前回の受け付けた条件を満たすエージェントを選択する、請求項２に記載のシミュレータ。
【請求項５】
エージェントの視認可能な範囲を算出する視認可能範囲算出部をさらに備え、前記条件決定部が決定する条件には、前記視認可能範囲算出部で算出された前記視認可能な範囲内に存在するエージェントであることを条件が含まれる、請求項１〜４のいずれか１項に記載のシミュレータ。
【請求項６】
前記条件決定部は、前記対象領域内の複数のエージェントについて、参照するべき参照エージェントの条件を決定し、複数のエージェントにおける参照エージェントの条件の論理和を計算し、
割当判別部は、前記条件の論理和に該当する参照エージェントが存在し得る領域が割り当てられた他の計算機を、前記領域割当情報を用いて判別する、請求項１〜５のいずれか１項に記載のシミュレータ。
【請求項７】
前記エージェントは車両であって、
前記条件決定部は、エージェントの移動状態として、位置座標、速度、走行中の道路、走行中のレーン、経路、ドライバの運転行動のうち、少なくとも１つ以上に基づいて、前記参照エージェントの条件を決定する、請求項１〜６のいずれか１項に記載のシミュレータ。
【請求項８】
前記ドライバの運転行動は、単独走行、追従走行、減速走行、停止、右車線変更、左車線変更、右折、左折の少なくとも１つであることを請求項７に記載のシミュレータ。
【請求項９】
前記条件決定部で決定される参照エージェントの条件には、前記シミュレーション実行部が参照すべき前記仮想空間における参照範囲を表す情報を含み、
前記被参照エージェント選択部は、前記参照範囲内に位置するエージェントのエージェント情報を選択する、請求項１〜８のいずれか１項に記載のシミュレータ。
【請求項１０】
前記条件決定部で決定される条件は、参照エージェントが存在しうる特定の道路範囲、または、特定のレーンを表す情報が含まれる、請求項１〜９のいずれか１項に記載のシミュレータ。
【請求項１１】
前記条件決定部で決定される条件には、エージェントが存在しうる範囲内、または、参照エージェントの数を表す情報が含まれる、請求項１〜１０のいずれか１項に記載のシミュレータ。
【請求項１２】
仮想空間に存在する複数のエージェントの挙動の模擬を、複数の計算機を用いた分散処理により実現するシミュレーションに用いられる計算機であって、
前記仮想空間のうち当該計算機自身に割り当てられた対象領域の地図情報、エージェントの少なくとも位置に関する情報を含んだエージェント情報、及び他の計算機に割り当てられた領域を示す領域割当情報を記憶する記憶部と、
前記対象領域内の各エージェントの挙動を、他のエージェントのエージェント情報を参照して模擬し、前記各エージェントのエージェント情報を更新する処理を繰り返し実行するシミュレーション実行部と、
前記エージェントの位置に関する情報から得られる前記対象領域内のエージェントの移動状態に基づいて、前記シミュレーション実行部が前記各エージェントの挙動を模擬する処理において参照すべき参照エージェントの条件を決定する条件決定部と、
前記条件に該当する参照エージェントが存在し得る領域を割り当てられた他の計算機を、前記領域割当情報を用いて判別する割当判別部と、
割当判別部が判別した前記他の計算機から、前記参照エージェントの条件を満たす参照エージェントのエージェント情報を取得して前記記憶部に格納するエージェント情報取得部を備える、計算機。
【請求項１３】
仮想空間に存在する複数のエージェントの挙動の模擬を、複数のコンピュータを用いた分散処理により実現するためのシミュレーションプログラムを記憶したコンピュータ読取可能な記録媒体であって、
前記シミュレーションプログラムは、各計算機のコンピュータに、
前記仮想空間のうち当該計算機自身に割り当てられた対象領域の地図情報、エージェントの少なくとも位置に関する情報を含んだエージェント情報、及び他の計算機に割り当てられた領域示す領域割当情報を記憶する記憶部にアクセスする処理と、
前記エージェント情報を参照して前記対象領域内の各エージェントの挙動を模擬し、前記各エージェントのエージェント情報を更新する処理を繰り返し実行するシミュレーション実行処理と、
前記エージェントの位置に関する情報から得られる前記対象領域内のエージェントの移動状態に基づいて、前記各エージェントの挙動を模擬する処理において参照すべき参照エージェントの条件を決定する条件決定処理と、
前記条件に該当する参照エージェントが存在し得る領域を割り当てられた他の計算機を、前記領域割当情報を用いて判別する割当判別処理と、
割当判別処理で判別された前記他の計算機から、前記条件を満たす参照エージェントのエージェント情報を取得するエージェント情報取得処理とを、実行させる、シミュレーションプログラムを記憶したコンピュータ読取可能な記録媒体。
【請求項１４】
仮想空間に存在する複数のエージェントの挙動の模擬を、複数の計算機を用いた分散処理により実現する分散処理型シミュレーションを、前記計算機が実行するシミュレーション方法であって、
前記計算機は、前記仮想空間のうち当該計算機自身に割り当てられた対象領域の地図情報、エージェントの少なくとも位置に関する情報を含んだエージェント情報、及び他の計算機に割り当てられた領域示す領域割当情報を記憶する記憶部へアクセスする工程と、
前記エージェント情報を参照して前記対象領域内の各エージェントの挙動を模擬し、前記各エージェントのエージェント情報を更新する処理を繰り返し実行するシミュレーション実行工程と、
前記エージェントの位置に関する情報から得られる前記対象領域内のエージェントの移動状態に基づいて、前記各エージェントの挙動を模擬する処理において参照すべき参照エージェントの条件を決定する条件決定工程と、
前記条件に該当する参照エージェントが存在し得る領域を割り当てられた他の計算機を、前記領域割当情報を用いて判別する割当判別工程と、
割当判別工程で判別された前記他の計算機から、前記条件を満たす参照エージェントのエージェント情報を取得するエージェント情報取得工程とを実行する、シミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の計算機を用いた分散処理によりシミュレーションを実現する分散処理型シミュレータに関する。
【背景技術】
【０００２】
従来、仮想環境上で個々のエージェントの挙動を模擬するシミュレータが考案されている。ここで、エージェントとして、例えば、車両やバイク、自転車、歩行者などの移動体が挙げられる。一例として、車両の挙動を模擬するシミュレータを用いて、交通量や渋滞の発生状況などを予測する技術が知られている。このような、交通流シミュレータは、道路整備やＥＴＣなどのインフラ設備の設置などの交通施策による交通の円滑化の効果を事前に評価することができるため、都市計画を行う場合の有効なツールとして活用されている。また、ドライバの認知ミス・判断ミスを模擬することで、事故の発生状況を予測することが可能な交通流シミュレータも存在する（例えば、特許文献１参照）。【０００３】
シミュレータは、例えば、大まかに２種類に分類することができる。すなわち、交通流を流体として模擬するマクロ交通流シミュレータと、個々のエージェントの挙動を模擬するミクロ交通流シミュレータに分類することができる。一般に、ミクロ交通流シミュレータは、マクロ交通流シミュレータと比べて、交通現象の発生過程を詳細に分析することが可能であるものの、膨大な処理量が必要となるため、比較的狭い範囲の交通流のシミュレーションにしか適用できない。【０００４】
一方、１台のコンピュータでは処理できない大規模な処理を、ネットワークで接続された複数のコンピュータを協調させて処理する分散処理技術が知られている。例えば、インターネットなどの広域のネットワーク上にあるコンピュータリソースを、一つの仮想的なコンピュータとして扱う仕組みはグリッドコンピューティングと呼ばれ、様々なミドルウェアも提供されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−４７９７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このような、分散処理技術を用いることで、１台の計算機で扱うエージェントの数の増加を抑制し、エージェントの挙動を模擬するための処理量を削減することが考えられる。しかしながら、システム全体で扱うエージェントの数が増加するにつれて、計算機の間で膨大な通信量が発生して、処理性能が低下してしまうという問題がある。そのため、本発明は、分散処理型シミュレーションにおいて計算機間の通信量を低減することを目的する。
【課題を解決するための手段】
【０００７】
本願開示のシミュレータは、仮想空間に存在する複数のエージェントの挙動の模擬を、複数の計算機を用いた分散処理により実現するシミュレータである。前記各計算機のシミュレータは、前記仮想空間のうち当該計算機自身に割り当てられた対象領域の地図情報、エージェントの少なくとも位置に関する情報を含んだエージェント情報、及び他の計算機に割り当てられた領域を示す領域割当情報を記憶する記憶部にアクセス可能であり、前記対象領域内の各エージェントの挙動を、他のエージェントのエージェント情報を参照して模擬し、前記各エージェントのエージェント情報を更新する処理を繰り返し実行するシミュレーション実行部と、前記エージェントの位置に関する情報から得られる前記対象領域内のエージェントの移動状態に基づいて、前記シミュレーション実行部が前記各エージェントの挙動を模擬する処理において参照すべき参照エージェントの条件を決定する条件決定部と、前記条件に該当する参照エージェントが存在し得る領域を割り当てられた他の計算機を、前記領域割当情報を用いて判別する割当判別部と、割当判別部が判別した前記他の計算機から、前記参照エージェントの条件を満たす参照エージェントのエージェント情報を取得して前記記憶部に格納するエージェント情報取得部を備える。
【発明の効果】
【０００８】
本願明細書の開示によれば、分散処理型シミュレーションにおいて計算機間の通信量を低減することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】図１は、第１の実施形態におけるシミュレーションシステムの構成例を示す図である。
【図２】図２は、第１の実施形態における計算機の構成例を示す図である。
【図３】図３は、第１の実施形態におけるシミュレーション対象空間の割り当て状況の例を示す図である。
【図４】図４は、第１の実施形態の道路地図例を示す図である。
【図５】図５Ａおよび図５Ｂは、第１の実施形態における交通状況の例を示す図である。
【図６】図６は、第１の実施形態におけるエージェント情報受信側の処理例を示すオペレーションチャートである。
【図７】図７は、第１の実施形態におけるエージェント情報送信側の処理例を示すオペレーションチャートである。
【図８】図８Ａ〜図８Ｄは、第１の実施形態で参照される車両の条件のデータ例を示す図である。
【図９】図９は、第２の実施形態における計算機の構成例を示す図である。
【図１０】図１０Ａおよび図１０Ｂは、第２の実施形態における交通状況の例を示す図である。
【図１１】図１１は、第２の実施形態におけるエージェント情報受信側の処理例を示すオペレーションチャートである。
【図１２】図１２は、第２の実施形態におけるエージェント情報送信側の処理例を示すオペレーションチャートである。
【図１３】図１３Ａおよび図１３Ｂは、第２の実施形態において参照される車両の条件のデータ例を示す図である。
【図１４】図１４Ａおよび図１４Ｂは、第３の実施形態における交通状況の例を示す図である。
【図１５】図１５Ａおよび図１５Ｂは、第３の実施形態における、参照される車両の条件のデータ例を示す図である。
【図１６】図１６Ａ〜図１６Ｈは、第４の実施形態における各運転行動において参照する車両の条件の例を示す図である。
【図１７】図１７は、第５の実施形態における計算機の構成例を示す機能ブロック図である。
【図１８】図１８Ａ〜図１８Ｃは、第５の実施形態における交通状況の例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面を参照して具体的に説明する。
【００１１】
（第１の実施形態）
図１は、第１の実施形態における計算機を含む分散処理型シミュレーションシステムの構成例を示す図である。図１に示す例では、複数の計算機Ａ〜ＤがネットワークＮを介して接続されている。計算機Ａ〜Ｄは、仮想空間に存在する複数のエージェントの挙動の模擬を、分散処理により実現する。計算機Ａ〜Ｄは、それぞれ、プロセッサとメモリを少なくとも備える独立したハードウエアである。なお、分散処理を実現する複数の計算機は、必ずしも独立したハードウエアである必要はない。例えば、複数のＣＰＵを備えるマルチプロセッサ型コンピュータにおいて、各ＣＰＵが、複数の計算機として機能して分散処理を実現してもよい。すなわち、各計算機は、互いにデータ通信を行い、ぞれぞれでデータ処理を実行するためのリソースであればよく、特定の形態に限定されない。また、計算機の数は、図１に示す例に限られない。
【００１２】
各計算機Ａ〜Ｄには、前記仮想空間における対象領域がそれぞれ割り当てられる。各計算機Ａ〜Ｄは、割り当てられた対象領域におけるエージェントの挙動を模擬するシミュレータとなる。各計算機Ａ〜Ｄのシミュレータは、仮想空間のうち自計算機に割り当てられた対象領域の地図情報、エージェントの少なくとも位置に関する情報を含んだエージェント情報、及び他の計算機に割り当てられた領域を示す領域割当情報を記憶する記憶部にアクセス可能である。エージェント情報を用いて対象領域内のエージェントの挙動を模擬するシミュレーション実行部と、シミュレーション実行部が参照する参照エージェント情報の条件を決定する条件決定部と、この条件に該当する参照エージェントのエージェント情報を持っている計算機はどれかを判別する割当判別部と、この判別された計算機からエージェント情報を取得するエージェント情報取得部とを備える。
【００１３】
具体的には、シミュレーション実行部は、対象領域内の各エージェントの挙動を、他のエージェントのエージェント情報を参照して模擬し、前記各エージェントのエージェント情報を更新する処理を繰り返し実行する。条件決定部は、前記エージェントの位置に関する情報から得られる前記対象領域内のエージェントの移動状態に基づいて、前記シミュレーション実行部が前記各エージェントの挙動を模擬する処理において参照すべき参照エージェントの条件を決定する。割当判別部は、前記条件に該当する参照エージェントが存在し得る領域を割り当てられた他の計算機を、前記領域割当情報を用いて判別する。エージェント情報取得部は、割当判別部が判別した前記他の計算機から、前記参照エージェントの条件を満たす参照エージェントのエージェント情報を取得して前記記憶部に格納する。これにより、シミュレーション実行部は、他の計算機から取得したエージェント情報を参照することができる。この構成によれば、他の計算機から取得する必要のあるエージェント情報の条件を条件決定部が決定し、割当判定部がエージェント情報取得先の計算機を特定するので、シミュレーション実行部で必要なエージェント情報を効率よく取得することが可能になる。例えば、計算機で通信されるデータを必要なもののみに絞ることができ、計算機間の通信データ量の節約、および各計算機での演算量の節約が可能になる。
【００１４】
図２は、図１に示す計算機Ａの具体的な構成例を示す機能ブロック図である。他の計算機Ｂ〜Ｄも、計算機Ａと同様の構成にすることができる。図２に示す例では、計算機Ａは、記憶部１０１、シミュレーション実行部１０２、条件決定部１０４、割当判別部１０５、エージェント情報要求部１０６、エージェント情報要求受付部１０７、被参照エージェント選択部１０８、エージェント情報出力部１０９、およびエージェント情報受付部１１０を備える。
【００１５】
記憶部１０１には、解析対象となる仮想空間のうち計算機Ａに割り当てられた対象領域の地図情報、エージェントの少なくとも位置に関する情報を含んだエージェント情報、及び他の計算機に割り当てられた領域を示す領域割当情報が記録される。
【００１６】
シミュレーション実行部１０２は、記憶部１０１のエージェント情報を参照して計算機Ａの対象領域内における各エージェントの挙動を模擬し、前記各エージェントのエージェント情報を更新する処理を繰り返し実行する。条件決定部１０４は、エージェント情報のエージェントの位置に関する情報から得られる前記対象領域内のエージェントの移動状態に基づいて、シミュレーション実行部１０２が各エージェントの挙動を模擬する処理において参照すべき参照エージェントの条件を決定する。割当判別部１０５は、条件決定部１０４が決定した条件に該当する参照エージェントが存在し得る領域を割り当てられた他の計算機を、記憶部１０１の領域割当情報を用いて判別する。
【００１７】
エージェント情報要求部１０６は、割当判別部１０５が判別した他の計算機に対して、前記参照エージェントの条件を出力する。エージェント情報受付部１１０は、エージェント情報要求部１０６が前記条件を出力した前記他の計算機から、エージェント情報を受け取り、記憶部１０１に格納する。エージェント情報要求部１０６およびエージェント情報受付部１１０は、エージェント情報取得部の具体例である。
【００１８】
エージェント情報要求受付部１０７は、他の計算機のシミュレーション実行部が参照すべきエージェントの条件を、当該他の計算機から受け付ける。被参照エージェント選択部１０８は、エージェント情報要求受付部１０７が受け付けた条件を満たすエージェント情報を記憶部１０１から選択する。エージェント情報出力部１０９は、被参照エージェント選択部が選択したエージェント情報を、前記他の計算機に対して送信する。
【００１９】
図１に示す構成において、条件決定部１０４は、計算機Ａの対象領域に存在するエージェントの移動状態に基づいて、そのエージェントが参照すべき他のエージェントの条件を決定する。割当判別部１０５は、この条件の満たすエージェントが存在しうる領域を割り当てられた他の計算機を判別し、エージェント情報要求部１０６は他の計算機へ条件を出力し、条件を満たすエージェントの情報を要求する。エージェント情報受付部１１０は、他の計算機からこの条件を満たすエージェントの情報を受信し、記憶部１０１へ格納する。シミュレーション実行部１０２は、記憶部１０１へ格納されたエージェント情報を参照して、対象領域内のエージェントの挙動を模擬することができる。これにより、条件に該当するエージェントの情報のみを計算機間で送受信することで、不要な情報の通信を抑制し、通信量を低減することが可能になる。
【００２０】
図１および図２に示す構成の分散処理型シミュレーションシステムは、例えば、交通流シミュレーションに適用することができる。この場合、エージェントは、例えば、車両や歩行者等の移動体であって、条件決定部１０４は、エージェントの移動状態として、位置座標、速度、走行中の道路、走行中のレーン、経路、ドライバの運転行動のうち、少なくとも１つ以上に基づいて、参照エージェントの条件を決定することができる。これにより、分散処理する計算機Ａ〜Ｄ間の通信量が低減された交通流シミュレーションが可能になる。例えば、分散処理技術を応用して、ミクロ交通流シミュレータによる広範囲の交通流のシミュレーションを実現することが可能となる。
【００２１】
このように、本実施形態では、シミュレーション対象である仮想空間を分割し、複数の計算機にそれぞれを割り当てた上で、各計算機が、各々割り当てられた仮想空間内に存在するエージェントの挙動を模擬する処理を行う。エージェントは仮想空間上を移動するため、ある計算機に割り当てられた空間（対象領域）から別の計算機に割り当てられた空間（対象領域）へとエージェントが移動する際に、複数の計算機は、計算機間で通信を行い、そのエージェントに関する情報の受け渡しを行う（通信発生ケース１）。また、エージェントの挙動は周囲の状況に応じて決定される。そのため、エージェントの挙動を模擬するためには、各計算機のシミュレーション実行部は自身に割り当てられた仮想空間の対象領域に隣接する領域が割り当てられた別の計算機との間で通信を行い、周囲の状況、例えば、他のエージェントの位置や速度などに関する情報を送受信することになる（通信発生ケース２）。前記通信発生ケース１は、分割された空間を跨ぐ車両の移動がある場合に発生するのに対し、通信発生ケース２は、車両の挙動が更新される間隔（例えば、数ミリ秒〜数百ミリ秒）で発生する。本実施形態では、上述のとおり、主に通信発生ケース２の通信量が低減される。
【００２２】
すなわち、各計算機Ａ〜Ｄは、エージェント毎の参照範囲を考慮して、必要なエージェントの情報だけを送受信することで、通信発生ケース２の通信量を低減する。各計算機Ａ〜Ｄが模擬するエージェントの挙動は、その周囲のエージェントから影響を受ける。そのため、各計算機Ａ〜Ｄのシミュレーション実行部１０２は、解析対象のエージェントの挙動を模擬する処理を実行するたびに、その周囲のエージェントの情報を参照する。その参照範囲は解析対象のエージェントの移動状態に応じて異なる。例えば、解析対象のエージェントが高速で走行している状態と信号などで停車している状態では、そのエージェントが参照している他のエージェントが存在する範囲は異なる。そのため、例えば、多数のエージェントが高速で走行することにより、仮想空間をまたいだ移動が増えるほど、計算すべきデータのやりとりが必要となり、計算機間の通信量が増える。本実施形態は、各エージェントの移動状態に基づいて、参照すべき他のエージェントの条件を決定し、その条件に該当するエージェントの情報のみを送受信することで、計算機間の通信量を低減することができる。
【００２３】
各計算機Ａ〜Ｄは、例えば、パーソナルコンピュータやサーバマシン等の汎用コンピュータに所定のプログラムをインストールすることによって実現することができる。また、汎用コンピュータに限らず、例えば、車載情報端末、携帯電話、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、家電製品等の電子機器に組み込まれたコンピュータによって計算機Ａ〜Ｄが形成されてもよい。
【００２４】
各計算機Ａ〜Ｄにおける、シミュレーション実行部１０２、条件決定部１０４、割当判別部１０５、エージェント情報要求部１０６、エージェント情報要求受付部１０７、被参照エージェント選択部１０８、エージェント情報出力部１０９、エージェント情報受付部１１０の各機能は、ＣＰＵ等のプロセッサが所定のプログラムを実行することによって実現される。したがって、上記の各機能をコンピュータで実現するためのプログラムまたはそれを記録した記録媒体も本発明の一実施態様である。また、記憶部１０１は、コンピュータの内蔵記憶装置またはこのコンピュータからアクセス可能な記憶装置によって具現化される。
【００２５】
次に、分散型シミュレーションシステムにおける各計算機Ａの動作例を、具体例を挙げながら説明する。ここでは、一例として、分散型シミュレーションシステムが、仮想空間を移動する個々の車両の挙動を模擬して交通流を再現するミクロシミュレータとして機能する場合について説明する。
【００２６】
ここでは、計算機Ａ及び計算機Ｂの動作例を説明する。図３は、本動作例におけるシミュレーション対象空間（仮想空間）の割り当て状況の一例を示す図である。図３に示す例では、仮想空間の一部の空間である対象領域ＲＡは計算機Ａに割り当てられ、対象領域ＲＢは、計算機Ｂに割り当てられている。計算機Ａ及び計算機Ｂは、それぞれ対象領域ＲＡ、及び対象空間ＲＢに存在するエージェントのシミュレーション処理を行う。また、計算機Ａ、Ｂは、領域割当情報として、分割された仮想空間（対象領域）が、どの計算機に割り当てられているかに関する情報を記憶部１０１に保持している。領域割当情報は、対象領域と計算機とを対応付けるデータである。
【００２７】
各計算機Ａ、Ｂは、例えば、図４に示すような地図情報を記憶部１０１に格納している。図４に示す例では、地図情報は、ノードとリンクを含む有向グラフで表現される。図４中に付与されたラベルは、ノード、及び、リンクのＩＤである。各ノードは、同じＩＤを持つ交差点に対応する。例えば、図４のノード００１、ノード００２、及び、リンク００１／００２は、それぞれ、図３の交差点００１、交差点００２、及び、交差点００１と交差点００２を結ぶ道路に対応する。ノードには、例えば、交差点の座標などの情報が付与されていてもよい。リンクには、例えば、道路の車線数などの情報が付与されていてもよい。
【００２８】
本例では、図５Ａおよび図５Ｂに示す２つの交通状況を対象とする。これらの交通状況の例においては、エージェントは全て車両である。図５Ａに示す交通状況例では、計算機Ａの対象領域ＲＡにおいて、車両ａは５ｍ／ｓの速度で、ＩＤ＝００１の交差点からＩＤ＝００２の交差点へ向って走行している。図５Ｂに示す交通状況例では、対象領域ＲＡにおいて、車両ａは２０ｍ／ｓの速度で、ＩＤ＝００１の交差点からＩＤ＝００２の交差点へ向かって走行している。領域ＲＡにおける車両ａの移動状態は、計算機Ａの記憶部１０１にエージェント情報として記憶することができる。また、計算機Ａの記憶部１０１に記憶されるエージェント情報は、車両ａのみではなく、対象領域ＲＡに存在する全ての車両について記憶される。
【００２９】
ここでは、一例として、計算機Ａが車両ａの挙動を模擬する際に参照するエージェントの情報を計算機Ｂに要求し、計算機Ｂから計算機Ａへ、エージェント情報を渡す場合の動作について説明する。図６は、エージェント情報を受け取る側（本例では計算機Ａ）の計算処理の一例を示すオペレーションチャートである。図７は、エージェント情報を送信する側、（本例では計算機Ｂ）の処理の一例を示すオペレーションチャートである。なお、逆方向の通信も同様に行うことができる。
【００３０】
図６に示すように、まず、計算機Ａでは、条件決定部１０４が、計算機Ａに割り当てられた空間（対象領域ＲＡ）に存在する全ての車両について（オペレーションＳ１０１でＮｏになるまで）、各車両の移動状態から参照が必要な車両の条件を決定する（オペレーションＳ１０２）。各車両の移動状態は、例えば、記憶部１０１のエージェント情報から得ることができる。条件決定部１０４は、例えば、車両は速度が大きいほど、模擬において参照する範囲が広くなるように条件を設定することができる。例えば、図５Ａ、図５Ｂの枠Ｗ１、Ｗ２は、車両ａを模擬する処理における参照範囲の例を示す。車両は速度が大きいほど、広い範囲の車両を参照して挙動を決定することで、現実に近いシミュレーションが可能になる。条件決定部１０４は、図５Ａに示す例では、車両ａの前方５０ｍ、図５Ｂに示す例では車両ａ前方２００ｍの範囲に存在する車両を参照する車両の条件とする。計算機Ａは、車両ａの存在する位置、及び、対象領域ＲＡの地図情報を保持しているため、参照する車両の条件を地図情報と関連付けて表現することができる。ここで、車両ａは、交差点００１から交差点００２に向かう道路の第１レーン上で、交差点００１から１０ｍの位置を走行しているとする。
【００３１】
図８Ａおよび図８Ｂは、図５Ａおよび図５Ｂに示す交通状況のそれぞれにおいて、車両ａが参照する車両の条件を表すデータの例である。本例では、参照車両の条件は、車両の走行する道路、レーン、車両の向きおよび範囲（開始位置と終了位置）で表される。図８Ａに示す条件は、交差点００１から交差点００２に向かう道路のレーン１上に存在し、交差点００１から１０ｍから６０ｍの範囲に存在する車両を参照車両とすることを表している。一方、図８Ｂに示す条件は、交差点００１から交差点００２に向う道路のレーン１において交差点００１から１０ｍを開始点として、終端（交差点００２）を終了位置とする範囲と、交差点００２から交差点１０２に向う道路のレーン１において、始端（交差点００２）を開始位置、始端から２０ｍの位置を終了位置とする範囲とのいずれかに存在する車両を参照車両とすることを表している。
【００３２】
次に、計算機Ａでは、割当判別部１０５が、条件決定部１０４で決定した条件を満たす車両がどの計算機に存在するかを判定する（オペレーションＳ１０３）。前述したように、各計算機は、分割された空間がどの計算機に割り当てられているかに関する情報を、領域割当情報として保持している。割当判別部１０５は、この領域割当情報を参照することにより、条件に含まれる交差点や道路の座標から、条件を満たす車両の存在し得る空間がどの計算機に割り当てられているのかを判定することができる。
【００３３】
条件を満たす車両が他の計算機に存在し得る場合（オペレーションＳ１０４）は、エージェント情報要求部１０５が、該当する他の計算機に対して、条件を満たす車両情報の送信要求を送信する（オペレーションＳ１０５）。この例の場合は、計算機Ｂに対して、図８Ａまたは図８Ｂで示した条件を満たす車両情報の送信を要求する。
【００３４】
ここで、計算機Ａの対象領域には、車両ａ以外にも車両は存在し得る。対象領域に複数の車両が存在する場合は、車両ごとに参照車両の条件が抽出される（オペレーションＳ１０１、Ｓ１０２）。このように複数の車両について、複数の条件が抽出された場合、条件決定部１０４は、これら複数の条件の論理和を計算してもよい。ここで、複数の条件の論理和は、複数の条件のいずれか少なくとも１つを満たす条件となる。この論理和を基に他の計算機を判定し、判定した計算機に車両情報を要求することで、マージ前の条件ごとに他の計算機に車両情報を要求する場合に比べて、通信量を削減することが可能になる。
【００３５】
ここで、複数の条件をマージする計算の具体例を説明する。例えば、図５Ａに示す車両ａの２０ｍ前方にもう一台車両ｘが存在し、車両ｘの挙動を模擬する際に参照する車両の条件が図８Ｃに示す条件であった場合を説明する。
【００３６】
図８Ａに示す車両ａの条件（ａ）と、図８Ｃに示す条件（ｘ）との論理和をとる場合、条件決定部１０４は、まず、道路、向き、およびレーンを条件（ａ）および条件（ｘ）間で比較する。道路、向き、およびレーンが同じである場合、条件決定部１０４は、開始位置および終了位置をそれぞれ比較する。開始位置は小さい方（ここでは、１０ｍ）、終了位置は大きい方（終端）が論理和の開始位置および終了位置として採用される。この例では、交差点００１から交差点００２に向かう道路（レーン１）については交差点００１（始端）から１０ｍの位置から終端（交差点００２）までが論理和の範囲となる。交差点００２から交差点１０２に向かう道路（レーン１）については交差点００２（始端）から５０ｍまの範囲に存在することが論理和の条件となる。なお、条件（ａ）および条件（ｘ）間で、道路、向き、レーンのいずれか１つが異なる場合は、条件（ａ）に条件（ｘ）をそのまま追加したものを論理和とすることができる。
【００３７】
このように、計算機Ａに割り当てられた空間に存在する車両ａ以外の車両が参照する車両が、計算機Ｂに存在しうる場合は、通信量削減の観点から、計算機Ａ側で事前に条件の論理和をとった後に車両情報の送信要求を送信するようにすることが好ましい。すなわち、条件決定部１０４は、対象領域内の複数のエージェントについて、参照するべき参照エージェントの条件を決定し、複数のエージェントにおける参照エージェントの条件の論理和を計算することが好ましい。この場合、割当判別部１０５は、前記条件の論理和に該当する参照エージェントが存在し得る領域が割り当てられた他の計算機を、領域割当情報を用いて判別する。これにより、複数のエージェントの条件をまとめたものを、他の計算機へエージェント情報の要求として送信することができる。その結果、他の計算機との通信量を節約することができる。
【００３８】
次に、車両情報の送信要求を受ける計算機Ｂの動作例を説明する。図７に示すように、計算機Ｂでは、エージェント情報要求受付部１０７が、計算機Ａから車両情報の送信要求を受信し（オペレーションＳ２０１）、被参照エージェント選択部１０８が、条件を満たす車両を選択する（オペレーションＳ２０２）。図５Ａの交通状況では、図８Ａに示す条件を満たす車両は車両ｂであり、図５Ｂの交通状況では、図８Ｂに示す条件を満たす車両は車両ｂと車両ｃである。被参照エージェント選択部１０８は、送信要求に含まれる条件と、計算機Ｂの記憶部１０１に記録された車両情報とを比較することにより、条件を満たす車両を選択することができる。例えば、条件が図８Ａ、８Ｂに示すように、道路、レーン、向き、範囲を示すデータである場合、記憶部１０１に記録された車両情報が示す各車両の位置情報および車両の向きが、条件の示す向きや範囲に含まれるかを判断することにより、各車両が条件を満たすか否かを判断することができる。計算機Ｂでは、エージェント情報出力部１０９が、条件を満たす車両の情報を計算機Ａに送信する（オペレーションＳ２０３）。
【００３９】
図６に示すように、計算機Ａでは、エージェント情報受付部１１０が、条件を満たす車両情報を計算機Ｂから受信すると（オペレーションＳ１０６）、シミュレーション実行部１０７が、自身に割り当てられた空間（対象領域）に存在する全ての車両について（オペレーションＳ１０７でＮｏになるまで）、計算機Ｂから受信した車両情報も考慮した上で、車両の挙動を決定する（オペレーションＳ１０８）。すなわち、計算機Ａのシミュレーション実行部１０２は、元々記憶部１０１に記録されていた車両情報および、計算機Ｂから受信した車両情報を参照して、対象領域内の車両の挙動を模擬することができる。
【００４０】
以上、本実施形態のように、車両の位置や速度を考慮することで、参照する車両を限定することができ、不必要な車両情報の送受信を抑制することが可能である。
【００４１】
（第２の実施形態）
図９は、第２の実施形態にかかる計算機のシステム構成の一例を示す機能ブロック図である。本実施形態では、第１の実施形態と同様、計算機Ａ、及び、計算機Ｂを用いて分散処理を行うこと例を説明する。シミュレーション対象空間の割り当て状況は第１の実施形態１と同じとする。
【００４２】
本実施形態では、図１０Ａおよび図１０Ｂに示す２つの交通状況を対象とする。これらの交通状況の例においては、エージェントは全て車両である。図１０Ａに示す交通状況の例では、車両ａは交差点００２まで４００ｍの位置を走行しており、一方、図１０Ｂの交通状況の例では、車両ａは交差点００２まで２００ｍの位置を走行しているとする。
【００４３】
図１１は、本実施形態にかかる分散処理型シミュレータシステムにおいて、エージェント情報を受信する側（本例では計算機Ａとする）の処理の一例を示すオペレーションチャートである。また、図１２は、エージェント情報を送信する側（本例では計算機Ｂとする）の計算リソースの処理の一例を示すオペレーションチャートである。これらのオペレーションチャートにおいて、実施例１と同じ処理は同一番号を付与し、説明も省略する。逆方向の通信も同様に行われるが、ここでの説明は省略する。
【００４４】
計算機Ａの条件決定部１０４は、車両の前方交差点への接近状況に応じて、道路・レーンに関連した条件を、参照する車両の条件として決定する（オペレーションＳ１０２）。例えば、図１０Ａの交通状況では、車両ａは、前方交差点００２まで一定距離、例えば、３００ｍ以上はなれているので、条件決定部１０４は、車両ａと同じ道路・レーンに存在する車両ｂを参照する車両の条件とする。一方、図１０Ｂに示す交通状況では、車両ａは、前方交差点００２まで３００ｍ以内なので、条件決定部１０４は、同じ道路・レーンに存在する車両ｂだけでなく、その先の道路・レーンに存在する車両ｃも参照する車両の条件とする。この例では、交差点への接近状況を、距離を基準にしているが、交差点への到達時間など、その他の基準を用いてもよい。図１０Ａおよび図１０Ｂに示す枠Ｗ３、Ｗ４は、それぞれ車両ａの参照する車両の存在する範囲を示す。また、参照する車両の条件には、車両の参照する車両の台数に関する条件も追加することも可能である。図１３Ａおよび図１３Ｂは、図１０Ａおよび図１０Ｂに示す交通状況それぞれにおいて、車両ａが参照する車両の条件のデータ例である。図１３Ａおよび図１３Ｂに示す例では、参照する車両の最大台数は２台としている。なお、その他の条件として、例えば、交差点からの距離を指定するなどして、道路・レーンの一部に存在する車両を参照する車両の条件としてもよい。
【００４５】
本実施形態では、図１１に示すように、計算機Ａの条件変更判定部２０１が、参照する車両の条件が変化したか否かを判断し（オペレーションＳ１０９）、エージェント情報要求部１０５は、条件が変化した場合に、計算機Ｂに対して、条件を満たす車両情報の送信要求を送信する（オペレーションＳ１０５）。
【００４６】
図１２に示すように、計算機Ｂは、エージェント情報要求受付部１０７が、計算機Ｂに対する車両情報の送信要求があるか否かを判断し（オペレーションＳ２０４）、送信要求がある場合、車両情報の送信要求を受け付ける（オペレーションＳ２０１）。被参照エージェント選択部１０８は、車両情報の送信要求を受信した場合は、参照する車両の条件を更新し（オペレーションＳ２０５）、そうでなければ、前回に計算機Ａから受け付けた条件を用いて、条件を満たす車両を選択する（オペレーションＳ２０２）。
【００４７】
車両の移動状態（走行状況）は刻々と変化するため、第１の実施形態のように車両から一定の距離以内の車両の情報を取得しようとすると、所定の周期で、毎回エージェント情報の要求を送信することが好ましい。しかしながら、車両の挙動は短い時間間隔（例えば、数ミリ秒〜数百ミリ秒）で更新されるため、エージェント情報の要求により発生する通信が原因で通信量が増加してしまう可能性がある。そのため、本実施形態のように、参照する車両の条件が変化した場合のみエージェント情報の要求を送信することにより、通信量の増加を抑制することができる。
【００４８】
（第３の実施形態）
以下、第３の実施形態における各計算機のシステム構成図は上記第２の実施形態において図９に示した構成と同様である。本実施形態では、第１の実施形態と同様、計算機Ａ、及び、計算機Ｂによる分散処理の例を説明する。シミュレーション対象空間の割り当て状況も第１の実施形態と同様とする。
【００４９】
本実施形態では、図１４Ａおよび図１４Ｂに示す２つの交通状況を例にあげて説明する。図１４Ａに示す交通状況では、車両ａは交差点００２を直進する経路（矢印Ｙ１で示される経路）を走行するのに対し、図１４Ｂに示す交通状況では、車両ａは交差点００２を右折する経路（矢印Ｙ２で示す経路）を走行する。本実施形態にかかる交通流シミュレータにおいて、エージェント情報を受信する側、送信する側の計算リソースの処理は第２の実施形態と同様であり、それぞれ、図１１、図１２で示す処理とすることができる。図１５Ａおよび図１５Ｂは、図１４Ａおよび図１４Ｂの交通状況のそれぞれにおいて、車両ａが参照する車両の条件のデータ例である。図１５Ａに示す交通状況では、同じ道路・レーンに存在する車両と、交差点００２より先の道路・レーンに存在する車両が参照する車両の条件である。車両ｂおよびｃがこの条件を満たす車両である。一方、図１５Ｂでは、同じ道路・レーンに存在する車両と、交差点００２の対向道路に存在し、交差点００２から２００ｍ以内に存在する車両が参照する車両の条件である。車両ｂ、ｃ、ｄ、ｅがこの条件を満たす車両である。
【００５０】
このように、条件決定部１０４は、車両の経路に応じて、参照する車両の条件を決定する（オペレーションＳ１０２）。走行中に車両の経路が変更された場合、変更判定部２０１は、参照する車両の条件が変化したことを検出し（オペレーションＳ１０９）、エージェント情報要求部１０５は、条件を満たす車両情報の送信要求を送信する（オペレーションＳ１０５）。例えば、図１４Ａに示す例では、車両ａの経路Ｙ１は、交差点００２を直進している。すなわち、経路Ｙ１は、交差点００１から交差点１０２（図示せず）へ向かっている。この場合、条件決定部１０４は、図５Ａに示すデータにアクセスして参照する車両の条件を取得し、取得した条件を満たす車両ｂ、ｃの車両情報を計算機Ｂに対して要求する。ここで、例えば、車両ａの経路が図１４Ｂに示すよう経路Ｙ２（すなわち、交差点００１から交差点１０３へ向う経路）に変化した場合、条件決定部１０４は、図５Ｂに示すデータにアクセスして参照する車両の条件を取得する。条件決定部１０４は、取得した条件を満たす車両ｂ、ｃ、ｄ、ｅの車両情報を計算機Ｂに対して要求する。
【００５１】
本実施形態のように、車両の経路を考慮することで、参照する車両を限定することができ、不必要な車両情報の送受信を抑制することが可能である。
【００５２】
（第４の実施形態）
本実施形態における各計算機のシステム構成図は第２の実施形態と同様とすることができる（図９参照）。また、エージェント情報を受信する側、送信する側の計算リソースの処理は第２の実施形態と同様にすることができる（それぞれ、図１１、図１２参照）。
【００５３】
本実施形態では、条件決定部１０４は、ドライバの運転行動に応じて、参照する車両の条件を決定する（オペレーションＳ１０２）。ドライバの運転行動としては、例えば、単独走行、追従走行、減速走行、停止、右車線変更、左車線変更、右折、左折などが挙げられる。通常、ドライバはこれらの運転行動を切り替えながら運転を継続している。条件決定部１０４は、ドライバの各運転行動において参照する車両の条件を異ならせることで、より現実に近いシミュレーションが可能になる。ドライバの運転行動が切り替わった場合、変更判定部２０１は、参照する車両の条件が変化したことを検出し（オペレーションＳ１０９）、エージェント情報要求出力部１０５は、条件を満たす車両情報の送信要求を送信する（オペレーションＳ１０５）。
【００５４】
図１６Ａ〜図１６Ｈに、各運転行動において参照する車両の例を示す。以下、図中の車両ａのドライバの各運転行動において参照する車両の条件について説明する。ただし、参照する車両の条件についてはここに記述したものに限定するものではない。参照する車両の条件は、これまでの実施例と同様、車両の存在する道路・レーン、さらに、範囲、台数などの組み合わせによって表現されるが、ここでは記述を省略する。
【００５５】
図１６Ａは単独走行の場合の例である。単独走行は、前走車両が存在しないか、一定範囲以上離れている場合に、ドライバが希望の速度で走行するという運転行動である。単独走行の場合、条件決定部１０４は、車両ａの前方の一定範囲内に存在し、もっとも車両aに近い１台、という条件を参照する車両の条件とすることができる。図１６Ａに示す例では、車両ａの前方の範囲Ｗ７にある１台の車両ｂが条件を満たすことになる。
【００５６】
図１６Ｂは追従走行の場合の例である。追従走行は、前走車両が存在し、一定範囲内に存在する場合に、前走車両と車間距離を保つように車両を制御するという運転行動である。通常、ドライバは数台先の車両の挙動も考慮していると考えられるので、条件決定部１０４は、車両ａの前方に一定範囲内に存在し、車両ａに近い方から数台（例えば、２台）、という条件を参照する車両の条件とすることができる。図１６Ｂに示す例では、車両ａの前方の範囲Ｗ８にある２台の車両ｂ、ｃが条件を満たすことになる。
【００５７】
図１６ＣおよびＤは、それぞれ右車線変更、及び、左車線変更の場合の例である。右車線変更、及び、左車線変更は、隣接車線に十分な空間が存在する場合に、隣接車線に移動するという運転行動である。通常、ドライバは現在の走行車線と、変更先車線に存在する周辺車両の挙動を考慮していると考えられるので、条件決定部１０４は、走行車線、及び、変更先車線上で、車両ａから前後の一定範囲内に存在し、前後それぞれで車両ａに近い１台、という条件を参照する車両の条件とすることができる。図１６Ｃ、Ｄに示す例では、車両ａの前後の範囲Ｗ９、Ｗ１０に存在する車両のうち、前後の最も近い２台の車両ｃ、ｄが条件を満たすことになる。
【００５８】
図１６Ｅは、減速行動の場合の例である。減速行動は、目標とする停止位置で車両が停止するように、車両を制御するという運転行動である。赤信号等に従った減速行動の場合は、目標とする停止位置は、停止線の手前である。通常、ドライバは停止線の手前で停止しようとする場合は、その交差点よりも先の車両の挙動はあまり考慮することはないと考えられる。そのため、条件設定部１０４は、車両ａの前方の交差点までに存在し、車両ａに近い方から数台（例えば、２台）、という条件を参照する車両の条件とする。図１６Ｅに示す例では、車両ａから交差点までの範囲Ｗ１１に存在する車両のうち、最も近い車両ｂが条件を満たすことになる。
【００５９】
図１６Ｆは、停止行動の場合の例である。停止行動は、現在の位置で停止を継続するという運転行動である。赤信号等に従った減速行動の場合は、後続車両か、先頭車両かによって、参照する車両が異なる。後続車両の場合は、発進可能か否かの判断のために、前に停止した数台の車両を監視していると考えられるので、条件決定部１０４は、車両ａの前方の交差点までに存在し、車両ａに近い方から数台（例えば、２台）、という条件を参照する車両の条件とすることができる。先頭車両の場合は、（信号無視などをして）交差点に接近してくる交差車両がないかを監視していると考えられるので、条件決定部１０４は、車両ａの前方の交差点内か、交差点に進入する交差道路・レーン上で交差点から一定範囲内に存在し、交差点に近いほうから数台、という条件を参照する車両の条件とすることができる。
【００６０】
図１６Ｆの上段に示す例では、車両ａから交差点までの範囲Ｗ１１に存在する車両のうち、近い方から２台の車両ｂ、ｃが条件を満たすことになる。図１６Ｒの下段に示す例では、車両ａの前方の交差点内および交差点から一定範囲内Ｗ１３において、最も近い車両ｂが条件を満たすことになる。
【００６１】
図１６Ｇおよび図１６Ｈは、それぞれ右折、及び、左折の場合の例である。右折、及び、左折は、交差点等で曲がることで、交差道路に移動するという運転行動である。右折の場合、交差点内の車両、対向道路から交差点に接近してくる車両、及び、右折先の道路の車両の挙動を考慮していると考えられる。そのため、条件決定部１０４は、車両ａの前方の交差点までに存在し、車両ａに近い方から数台（例えば、２台）、または、各対向車線上で、交差点から一定範囲内に存在し、交差点に近いほうから数台、または、右折先道路上で、交差点から一定範囲内に存在し、交差点に近いほうから数台、という条件を参照する車両の条件とすることができる。左折の場合、交差点内の車両、及び、左折先の道路の車両の挙動を考慮していると考えられる。そのため、条件決定部１０４は、車両ａの前方の交差点までに存在し、車両ａに近い方から数台（例えば、２台）、または、左折先道路上で、交差点から一定範囲内に存在し、交差点に近いほうから数台、という条件を参照する車両の条件とすることができる。なお、参照するのは車両だけでなく、横断歩道付近の歩行者などを含むようにしてもよい。
【００６２】
図１６Ｇは、左折の場合の例であり、車両ａから前方の交差点までの範囲Ｗ１４に存在し、車両ａに近い車両ｂ、または、左折先道路上で、交差点から一定範囲Ｗ１５内に存在し、交差点に近い車両ｃが条件を満たす。図１６Ｈは、右折の場合の例であり、車両から前方の交差点までの範囲Ｗ１６に存在し、車両ａに近い車両ｂ、または、各対向車線上で、交差点から一定範囲Ｗ１７内に存在し、交差点に近いほうから２台の車両ｃ、ｅ、または、右折先道路上で、交差点から一定範囲Ｗ１８内に存在し、交差点に近い１台の車両ｆが、条件を満たす。
【００６３】
本実施形態のように、ドライバの運転行動を考慮することで、参照する車両を限定することができ、不必要な車両情報の送受信を抑制することが可能である。
【００６４】
（第５の実施形態）
図１７は、第５の本実施形態における計算機のシステム構成の例を示す機能ブロック図である。本実施形態では、実施例１と同様、計算機Ａ、及び、計算機Ｂを用いて分散処理を行う場合について説明する。エージェント情報を受信する側（計算機Ａ）、送信する側（計算機Ｂ）の計算リソースの処理は第１の実施形態と同様にすることができる（それぞれ、図６、図７参照）。
【００６５】
本実施形態では、条件決定部１０４は、ドライバの視認可能な範囲に応じて、参照する車両の条件を決定する（オペレーションＳ１０２）。その際、視認可能範囲算出部３０１がドライバの視認可能な範囲を算出し、ドライバの視認可能な範囲外に存在する車両を、参照する車両から除外するように条件を設定する。ドライバの視認可能な範囲は、ドライバの頭部の向き、周辺の車両や建物などの障害物の存在に依存する。視認可能範囲算出部３０１は、シミュレーション実行部１０２で模擬されたドライバの頭部の向きや、周辺の車両や建物の位置、大きさを考慮して、ドライバの視認可能な範囲を厳密に算出してもよい。あるいは、視認可能範囲算出部３０１、処理量の低減のために、より簡単な方法で算出するようにしてもよい。例えば、ドライバの頭部の向きを考慮する代わりに、車の向きやその時点の運転行動を利用することができる。また、周辺の車両や建物の位置、大きさを考慮する代わりに、周辺車両の車種と距離、見通しのよい交差点か否かといった地図情報を利用することができる。
【００６６】
本実施形態の動作例を、図１８Ａ〜図１８Ｃに示す交通状況の場合を例に挙げて説明する。以下、図中の車両ａが参照する車両の条件について説明する。ただし、参照する車両の条件については一例であり、ここに記述したものに限定するものではない。図１８Ａ〜図１８Ｃにおいて、枠Ｗ７〜Ｗ９は、それぞれ車両ａの参照する車両の存在し得る範囲を示している。参照する車両の条件は、これまでの実施形態と同様、車両の存在し得る道路・レーン、さらに、範囲、台数などの組み合わせによって表現される。ここで、車両ａのドライバは、一例として、車両の前方方向１８０度を視認するものと仮定している。
【００６７】
図１８Ａに示す交通状況の例では、車両ａのドライバは、直進する道路、及び、交差点００２で交差する道路が視認可能な範囲Ｗ１９であり、条件決定部１０４は、それらの上に存在することを参照する車両の条件とすることができる。この例では、車両ｂ〜ｅが条件を満たす。
【００６８】
図１８Ｂに示す交通状況の例では、車両ａの前方を大型車両が走行しているため、車両ａのドライバは大型車両ｂよりも先が視認できない。対向道路についても、交差点００２より先は視認困難である。そのため、条件決定部１０４は、走行中の道路、及び、交差点００２よりも先の対向道路上に存在しないことを参照する車両の条件に追加することができる。すなわち、図１８Ｂに示す例では、車両ａの直進道路及び交差点で右側から交差する道路のうち、前方の大型車両ｂにより視界さえぎられる領域を除いた範囲Ｗ２０と、交差点で左側から交差する道路の一定範囲Ｗ２１とに存在する車両ｃが条件を満たす。
【００６９】
図１８Ｃに示す交通状況の例では、交差点００２の周囲に建物が存在するため、車両ａのドライバは交差道路上の車両を視認できない。そのため、条件決定部１０４は、交差道路上に存在しないことを参照する車両の条件に追加することができる。図１８Ｃに示す例では、建物Ｔにより車両ａの視界が遮られる範囲の車両は、条件を満たさない。すなわち、車両ａ前方の直進道路の一定範囲Ｗ２２に存在する車両ｂ、ｃ、ｄが条件を満たすことになる。
【００７０】
本実施形態のように、ドライバの視認可能範囲を考慮することで、参照する車両を限定することができ、不必要な車両情報の送受信を抑制することが可能である。
【００７１】
以上、上記実施形態において、各計算機は、各エージェントの参照範囲に基づいて、エージェントの挙動の模擬に必要なエージェント情報を選択し、他の計算機に対して要求を行う。これにより、計算機間での不必要なエージェント情報の送受信が行われることを防ぎ、通信量の増加を抑制することが可能になる。
【００７２】
上記実施形態に示したシミュレーションは、複数の計算機を用いた並列分散環境において、個々のエージェントの挙動を模擬するミクロ交通流シミュレータに適用することができるが、適用例はこれに限られない。
【符号の説明】
【００７３】
１０１  記憶部
１０２  シミュレーション実行部
１０３  表示部
１０４  条件決定部
１０５ 割当判別部
１０６  エージェント情報要求部
１０７ エージェント情報要求受付部
１０８  被参照エージェント選択部
１０９  エージェント情報出力部
１１０  エージェント情報受付部
２０１  変更判定部
３０１  視認可能範囲算出部
【図１】
2011018854.tif 000003
【図２】
2011018854.tif 000004
【図３】
2011018854.tif 000005
【図４】
2011018854.tif 000006
【図５Ａ】
2011018854.tif 000007
【図５Ｂ】
2011018854.tif 000008
【図６】
2011018854.tif 000009
【図７】
2011018854.tif 000010
【図８Ａ】
2011018854.tif 000011
【図８Ｂ】
2011018854.tif 000012
【図８Ｃ】
2011018854.tif 000013
【図８Ｄ】
2011018854.tif 000014
【図９】
2011018854.tif 000015
【図１０Ａ】
2011018854.tif 000016
【図１０Ｂ】
2011018854.tif 000017
【図１１】
2011018854.tif 000018
【図１２】
2011018854.tif 000019
【図１３Ａ】
2011018854.tif 000020
【図１３Ｂ】
2011018854.tif 000021
【図１４Ａ】
2011018854.tif 000022
【図１４Ｂ】
2011018854.tif 000023
【図１５Ａ】
2011018854.tif 000024
【図１５Ｂ】
2011018854.tif 000025
【図１６Ａ】
2011018854.tif 000026
【図１６Ｂ】
2011018854.tif 000027
【図１６Ｃ】
2011018854.tif 000028
【図１６Ｄ】
2011018854.tif 000029
【図１６Ｅ】
2011018854.tif 000030
【図１６Ｆ】
2011018854.tif 000031
【図１６Ｇ】
2011018854.tif 000032
【図１６Ｈ】
2011018854.tif 000033
【図１７】
2011018854.tif 000034
【図１８Ａ】
2011018854.tif 000035
【図１８Ｂ】
2011018854.tif 000036
【図１８Ｃ】
2011018854.tif 000037
【手続補正書】
【提出日】平成24年1月12日(2012.1.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想空間に存在する複数のエージェントの挙動の模擬を、複数の計算機を用いた分散処理により実現するシミュレータであって、
前記各計算機のシミュレータは、
前記仮想空間のうち当該計算機自身に割り当てられた対象領域の地図情報、エージェントの少なくとも位置に関する情報を含んだエージェント情報、及び他の計算機に割り当てられた領域を示す領域割当情報を記憶する記憶部にアクセス可能であり、
前記対象領域内の各エージェントの挙動を、他のエージェントのエージェント情報を参照して模擬し、前記各エージェントのエージェント情報を更新する処理を繰り返し実行するシミュレーション実行部と、
前記エージェントの位置に関する情報から得られる前記対象領域内のエージェントの移動状態に基づいて、前記シミュレーション実行部が前記各エージェントの挙動を模擬する処理において参照すべき参照エージェントの条件を決定する条件決定部と、
前記条件に該当する参照エージェントが存在し得る領域を割り当てられた他の計算機を、前記領域割当情報を用いて判別する割当判別部と、
割当判別部が判別した前記他の計算機から、前記参照エージェントの条件を満たす参照エージェントのエージェント情報を取得して前記記憶部に格納するエージェント情報取得部を備える、シミュレータ。
【請求項２】
前記エージェント情報取得部は、
割当判別部が判別した前記他の計算機に対して、前記参照エージェントの条件を出力するエージェント情報要求部と、
エージェント情報要求部が前記条件を出力した前記他の計算機から、エージェント情報を受け付け、前記記憶部に格納するエージェント情報受付部とを含み、
他の計算機のシミュレーション実行部が参照すべきエージェントの条件を、当該他の計算機から受け付けるエージェント情報要求受付部と、
前記エージェント情報要求受付部が受け付けた条件を満たすエージェント情報を前記記憶部から選択する被参照エージェント選択部と、
被参照エージェント選択部が選択したエージェント情報を、前記他の計算機に対して送信するエージェント情報出力部と、
をさらに備える、請求項１に記載のシミュレータ。
【請求項３】
前記条件決定部で決定された参照エージェントの条件が前回決定した条件から変更されているか否かを判定する変更判定部をさらに備え、
前記エージェント情報取得部は、前記変更判定部が、前記条件が変更されたと判定した場合に、前記他の計算機から前記条件を満たす前記参照エージェントのエージェント情報を取得する、請求項１または２に記載のシミュレータ。
【請求項４】
前記被参照エージェント選択部は、前記エージェント情報要求受付部が前記他の計算機から前記エージェントの条件を、前回受付時から所定時間内に受け付けなければ、前回の受け付けた条件を満たすエージェントを選択する、請求項２に記載のシミュレータ。
【請求項５】
エージェントの視認可能な範囲を算出する視認可能範囲算出部をさらに備え、前記条件決定部が決定する条件 には、前記視認可能範囲算出部で算出された前記視認可能な範囲内に存在するエージェントであることを条件が含まれる、請求項１〜４のいずれか１項に記載の シミュレータ。
【請求項６】
前記条件決定部は、前記対象領域内の複数のエージェントについて、参照するべき参照エージェントの条件を決定し、複数のエージェントにおける参照エージェントの条件の論理和を計算し、
割当判別部は、前記条件の論理和に該当する参照エージェントが存在し得る領域が割り当てられた他の計算機を、前記領域割当情報を用いて判別する、請求項１〜５のいずれか１項に記載のシミュレータ。
【請求項７】
前記エージェントは車両であって、
前記条件決定部は、エージェントの移動状態として、位置座標、速度、走行中の道路、走行中のレーン、経路、ドライバの運転行動のうち、少なくとも１つ以上に基づいて、前記参照エージェントの条件を決定する、請求項１〜６のいずれか１項に記載のシミュレータ。
【請求項８】
仮想空間に存在する複数のエージェントの挙動の模擬を、複数の計算機を用いた分散処理により実現するシミュレーションに用いられる計算機であって、
前記仮想空間のうち当該計算機自身に割り当てられた対象領域の地図情報、エージェントの少なくとも位置に関する情報を含んだエージェント情報、及び他の計算機に割り当てられた領域を示す領域割当情報を記憶する記憶部と、
前記対象領域内の各エージェントの挙動を、他のエージェントのエージェント情報を参照して模擬し、前記各エージェントのエージェント情報を更新する処理を繰り返し実行するシミュレーション実行部と、
前記エージェントの位置に関する情報から得られる前記対象領域内のエージェントの移動状態に基づいて、前記シミュレーション実行部が前記各エージェントの挙動を模擬する処理において参照すべき参照エージェントの条件を決定する条件決定部と、
前記条件に該当する参照エージェントが存在し得る領域を割り当てられた他の計算機を、前記領域割当情報を用いて判別する割当判別部と、
割当判別部が判別した前記他の計算機から、前記参照エージェントの条件を満たす参照エージェントのエージェント情報を取得して前記記憶部に格納するエージェント情報取得部を備える、計算機。
【請求項９】
仮想空間に存在する複数のエージェントの挙動の模擬を、複数のコンピュータを用いた分散処理により実現するためのシミュレーションプログラムを記憶したコンピュータ読取可能な記録媒体であって、
前記シミュレーションプログラムは、各計算機のコンピュータに、
前記仮想空間のうち当該計算機自身に割り当てられた対象領域の地図情報、エージェントの少なくとも位置に関する情報を含んだエージェント情報、及び他の計算機に割り当てられた領域示す領域割当情報を記憶する記憶部にアクセスする処理と、
前記エージェント情報を参照して前記対象領域内の各エージェントの挙動を模擬し、前記各エージェントのエージェント情報を更新する処理を繰り返し実行するシミュレーション実行処理と、
前記エージェントの位置に関する情報から得られる前記対象領域内のエージェントの移動状態に基づいて、前記各エージェントの挙動を模擬する処理において参照すべき参照エージェントの条件を決定する条件決定処理と、
前記条件に該当する参照エージェントが存在し得る領域を割り当てられた他の計算機を、前記領域割当情報を用いて判別する割当判別処理と、
割当判別処理で判別された前記他の計算機から、前記条件を満たす参照エージェントのエージェント情報を取得するエージェント情報取得処理とを、実行させる、シミュレーションプログラムを記憶したコンピュータ読取可能な記録媒体。
【請求項１０】
仮想空間に存在する複数のエージェントの挙動の模擬を、複数の計算機を用いた分散処理により実現する分散処理型シミュレーションを、前記計算機が実行するシミュレーション方法であって、
前記計算機は、前記仮想空間のうち当該計算機自身に割り当てられた対象領域の地図情報、エージェントの少なくとも位置に関する情報を含んだエージェント情報、及び他の計算機に割り当てられた領域示す領域割当情報を記憶する記憶部へアクセスする工程と、
前記エージェント情報を参照して前記対象領域内の各エージェントの挙動を模擬し、前記各エージェントのエージェント情報を更新する処理を繰り返し実行するシミュレーション実行工程と、
前記エージェントの位置に関する情報から得られる前記対象領域内のエージェントの移動状態に基づいて、前記各エージェントの挙動を模擬する処理において参照すべき参照エージェントの条件を決定する条件決定工程と、
前記条件に該当する参照エージェントが存在し得る領域を割り当てられた他の計算機を、前記領域割当情報を用いて判別する割当判別工程と、
割当判別工程で判別された前記他の計算機から、前記条件を満たす参照エージェントのエージェント情報を取得するエージェント情報取得工程とを実行する、シミュレーション方法。
【国際調査報告】
2011018854.tif 000038
2011018854.tif 000039
2011018854.tif 000040
2011018854.tif 000041