(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-14
(45)【発行日】2022-11-22
(54)【発明の名称】移動予測装置、移動予測方法、及び移動予測プログラム
(51)【国際特許分類】
G06Q 10/04 20120101AFI20221115BHJP
【FI】
G06Q10/04
(21)【出願番号】P 2021541840
(86)(22)【出願日】2019-08-27
(86)【国際出願番号】 JP2019033519
(87)【国際公開番号】W WO2021038720
(87)【国際公開日】2021-03-04
【審査請求日】2021-12-20
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】細田 真道
(72)【発明者】
【氏名】納谷 麻衣子
(72)【発明者】
【氏名】中山 彰
(72)【発明者】
【氏名】宮本 勝
【審査官】宮地 匡人
(56)【参考文献】
【文献】国際公開第2018/138803(WO,A1)
【文献】清水 仁,ベイズ的最適化による最適集団誘導探索,電子情報通信学会技術研究報告,2018年10月29日,Vol.118 No.284,pp.99-104,ISSN 2432-6380
【文献】印南 潤二,群集シミュレーション手法を活用した大規模ターミナル駅周辺の避難誘導情報の施策検討,土木計画学研究・講演集(CD-ROM),2012年06月,Vol.45,pp.1-8
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
JSTPlus(JDreamIII)
JST7580(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
各ノードを結ぶ経路を示すエッジの各々に関するエッジ情報と、複数のエージェントの各々についての、出発時刻、前記各ノードのうちの出発地、前記各ノードのうちの目的地、前記エージェントの自由歩行速度、及び前記エージェントの大きさの倍率を定めたエージェント情報との入力を受け付け、
前記エージェント情報の前記出発時刻に応じて前記出発地から出発する移動エージェントの各々を記録するエージェント発生部と、
前記移動エージェントの各々について、前記エージェントの位置と、前記エージェント情報の前記目的地と、前記エッジ情報とに基づいて、前記移動エージェントが移動するエッジを選択するエッジ選択部と、
前記移動エージェントの各々について、前記移動エージェントの位置から、予め設定された前方の長さまでの区間の面積と、前記区間に存在する他のエージェントの前記大きさの倍率とに基づいて、人口密度を計算する前方密度計算部と、
前記移動エージェントの各々について、前記エージェント情報の前記自由歩行速度と、計算した前記人口密度と、予め定めたパラメータとに基づいて、前記移動エージェントの移動速度を計算する移動速度計算部と、
前記移動エージェントの各々について、計算した前記移動速度に基づいて、前記移動エージェントの前記位置を更新する位置更新部と、
所定の条件を満たすまで、前記エージェント発生部、前記エッジ選択部、前記前方密度計算部、前記移動速度計算部、及び前記位置更新部の各処理によるシミュレーションを繰り返す判定部と、
を含む移動予測装置。
【請求項2】
前記大きさの倍率は、前記エージェントの属性に応じて定められており、
前記パラメータは、時刻に応じて変化する前記エッジごとの属性に応じて調整する請求項1に記載の移動予測装置。
【請求項3】
各ノードを結ぶ経路を示すエッジの各々に関するエッジ情報と、複数のエージェントの各々についての、出発時刻、前記各ノードのうちの出発地、前記各ノードのうちの目的地、前記エージェントの自由歩行速度、及び前記エージェントの大きさの倍率を定めたエージェント情報との入力を受け付け、
前記エージェント情報の前記出発時刻に応じて前記出発地から出発する移動エージェントの各々を記録し、
前記移動エージェントの各々について、前記エージェントの位置と、前記エージェント情報の前記目的地と、前記エッジ情報とに基づいて、前記移動エージェントが移動するエッジを選択し、
前記移動エージェントの各々について、前記移動エージェントの位置から、予め設定された前方の長さまでの区間の面積と、前記区間に存在する他のエージェントの前記大きさの倍率とに基づいて、人口密度を計算し、
前記移動エージェントの各々について、前記エージェント情報の前記自由歩行速度と、計算した前記人口密度と、予め定めたパラメータとに基づいて、前記移動エージェントの移動速度を計算し、
前記移動エージェントの各々について、計算した前記移動速度に基づいて、前記移動エージェントの前記位置を更新し、
所定の条件を満たすまで、各処理によるシミュレーションを繰り返す、
ことを含む処理をコンピュータが実行することを特徴とする移動予測方法。
【請求項4】
前記大きさの倍率は、前記エージェントの属性に応じて定められており、
前記パラメータは、時刻に応じて変化する前記エッジごとの属性に応じ調整する請求項3に記載の移動予測方法。
【請求項5】
各ノードを結ぶ経路を示すエッジの各々に関するエッジ情報と、複数のエージェントの各々についての、出発時刻、前記各ノードの各々のうちの出発地、前記各ノードの各々のうちの目的地、前記エージェントの自由歩行速度、及び前記エージェントの大きさの倍率を定めたエージェント情報との入力を受け付け、
前記エージェント情報の前記出発時刻に応じて前記出発地から出発する移動エージェントの各々を記録し、
前記移動エージェントの各々について、前記エージェントの位置と、前記エージェント情報の前記目的地と、前記エッジ情報とに基づいて、前記移動エージェントが移動するエッジを選択し、
前記移動エージェントの各々について、前記移動エージェントの位置から、予め設定された前方の長さまでの区間の面積と、前記区間に存在する他の移動エージェントの前記大きさの倍率とに基づいて、人口密度を計算し、
前記移動エージェントの各々について、前記エージェント情報の前記自由歩行速度と、計算した前記人口密度と、予め定めたパラメータとに基づいて、前記移動エージェントの移動速度を計算し、
前記移動エージェントの各々について、計算した前記移動速度に基づいて、前記移動エージェントの前記位置を更新し、
所定の条件を満たすまで、各処理によるシミュレーションを繰り返す、
ことをコンピュータに実行させる移動予測プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、移動予測装置、移動予測方法、及び移動予測プログラムに関する。
【背景技術】
【0002】
従来より、多数の人が移動する様子をシミュレーションによって予測する手法がある。
【0003】
例えば、各エージェントの移動速度を求める手法がある(非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0004】
【文献】印南潤二, 正垣隆祥, 筧文彦, 福井潔, 山田武志. 群集シミュレーション手法を活用した大規模ターミナル駅周辺の避難誘導情報の施策検討. 土木計画学研究・講演集, Vol. 45, 2012年6月.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、エージェントごとに特有の条件について考慮できておらず、予測精度が十分でない、という課題があった。
【0006】
本開示は、エージェントの属性を用いて精度よく移動をシミュレーションできる移動予測装置、移動予測方法、及び移動予測プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本開示の第1態様は、移動予測装置であって、各ノードを結ぶ経路を示すエッジの各々に関するエッジ情報と、複数のエージェントの各々についての、出発時刻、前記各ノードのうちの出発地、前記各ノードのうちの目的地、前記エージェントの自由歩行速度、及び前記エージェントの大きさの倍率を定めたエージェント情報との入力を受け付け、前記エージェント情報の前記出発時刻に応じて前記出発地から出発する移動エージェントの各々を記録するエージェント発生部と、前記移動エージェントの各々について、前記エージェントの位置と、前記エージェント情報の前記目的地と、前記エッジ情報とに基づいて、前記移動エージェントが移動するエッジを選択するエッジ選択部と、前記移動エージェントの各々について、前記移動エージェントの位置から、予め設定された前方の長さまでの区間の面積と、前記区間に存在する他のエージェントの前記大きさの倍率とに基づいて、人口密度を計算する前方密度計算部と、前記移動エージェントの各々について、前記エージェント情報の前記自由歩行速度と、計算した前記人口密度と、予め定めたパラメータとに基づいて、前記移動エージェントの移動速度を計算する移動速度計算部と、前記移動エージェントの各々について、計算した前記移動速度に基づいて、前記移動エージェントの前記位置を更新する位置更新部と、所定の条件を満たすまで、前記エージェント発生部、前記エッジ選択部、前記前方密度計算部、前記移動速度計算部、及び前記位置更新部の各処理によるシミュレーションを繰り返す判定部と、を含む。
【0008】
本開示の第2態様は、移動予測方法であって、各ノードを結ぶ経路を示すエッジの各々に関するエッジ情報と、複数のエージェントの各々についての、出発時刻、前記各ノードのうちの出発地、前記各ノードのうちの目的地、前記エージェントの自由歩行速度、及び前記エージェントの大きさの倍率を定めたエージェント情報との入力を受け付け、前記エージェント情報の前記出発時刻に応じて前記出発地から出発する移動エージェントの各々を記録し、前記移動エージェントの各々について、前記エージェントの位置と、前記エージェント情報の前記目的地と、前記エッジ情報とに基づいて、前記移動エージェントが移動するエッジを選択し、前記移動エージェントの各々について、前記移動エージェントの位置から、予め設定された前方の長さまでの区間の面積と、前記区間に存在する他のエージェントの前記大きさの倍率とに基づいて、人口密度を計算し、前記移動エージェントの各々について、前記エージェント情報の前記自由歩行速度と、計算した前記人口密度と、予め定めたパラメータとに基づいて、前記移動エージェントの移動速度を計算し、前記移動エージェントの各々について、計算した前記移動速度に基づいて、前記移動エージェントの前記位置を更新し、所定の条件を満たすまで、各処理によるシミュレーションを繰り返す、ことを含む処理をコンピュータが実行することを特徴とする。
【0009】
本開示の第3態様は、移動予測プログラムであって、各ノードを結ぶ経路を示すエッジの各々に関するエッジ情報と、複数のエージェントの各々についての、出発時刻、前記各ノードのうちの出発地、前記各ノードのうちの目的地、前記エージェントの自由歩行速度、及び前記エージェントの大きさの倍率を定めたエージェント情報との入力を受け付け、前記エージェント情報の前記出発時刻に応じて前記出発地から出発する移動エージェントの各々を記録し、前記移動エージェントの各々について、前記エージェントの位置と、前記エージェント情報の前記目的地と、前記エッジ情報とに基づいて、前記移動エージェントが移動するエッジを選択し、前記移動エージェントの各々について、前記移動エージェントの位置から、予め設定された前方の長さまでの区間の面積と、前記区間に存在する他のエージェントの前記大きさの倍率とに基づいて、人口密度を計算し、前記移動エージェントの各々について、前記エージェント情報の前記自由歩行速度と、計算した前記人口密度と、予め定めたパラメータとに基づいて、前記移動エージェントの移動速度を計算し、前記移動エージェントの各々について、計算した前記移動速度に基づいて、前記移動エージェントの前記位置を更新し、所定の条件を満たすまで、各処理によるシミュレーションを繰り返す、ことをコンピュータに実行させる。
【発明の効果】
【0010】
開示の技術によれば、エージェントの属性を用いて精度よく移動をシミュレーションできる。
【図面の簡単な説明】
【0011】
【
図1】本実施形態の移動予測装置の構成を示すブロック図である。
【
図2】移動予測装置のハードウェア構成を示すブロック図である。
【
図3】移動予測装置による移動予測処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、開示の技術の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0013】
まず、本開示の背景及び前提となる技術を説明した上で、本開示の概要について説明する。
【0014】
大規模イベント等では、多数の人が集まるため混雑し、スムーズに目的地まで移動できない場合がある。また、このような状況では、危険な状態が発生して事故につながる場合もある。こうした課題の対策として、事前検討として、混雑する場所、及び時間帯はどこか、どのような誘導を行えば混雑の緩和が可能か、トラブルの想定とその対応策などが検討される。この際、人の流れ(以下、人流)がどのようになるか確かめるため、人流シミュレータを用いて、多数の人が移動する様子をシミュレーションすることが行われる。
【0015】
人流シミュレータには、いくつかの方式がある。例えば、各歩行者をエージェントとしたマルチエージェントシミュレーション(以下、MAS)がある。この中には、通路、及び交差点の物理的な形状を細部までシミュレータ上で再現し、各エージェントそれぞれについて多岐にわたる特性を付与した、詳細な物理モデルによるシミュレーションを行うものがある。しかし、シミュレーションの実施に大きな計算量、大きなメモリ容量が必要となり、時間がかかってしまうという課題がある。一方で、単純なモデルとして、通路をエッジ、通路が分岐及び合流する場所をノードとしたモデル(以下、ノードエッジモデルと記載する)で通路網を再現する方法がある(非特許文献1参照)。この方法では、エージェントの挙動も単純な速度モデルとすることで計算量を削減し、高速なシミュレーションを行っている。
【0016】
非特許文献1では、各エージェントは自身の移動速度vi[m/s]を以下の式(1)で決定している。
【0017】
【0018】
ここで、ρはエージェント前方L[m]における人口密度[人/m2]である。エージェント前方L[m]の幅員がW[m]で、その中の人数(他のエージェントの数)がn[人]であった場合、人口密度ρは、以下、式(2)となる。
【0019】
【0020】
前方Lは全体で一つの設定であり、幅員Wはそのエージェントが存在するエッジの幅である。
【0021】
ρiはVi=1.8ρi
-1-0.3を満たす密度であり、自由歩行速度Viを元にエージェント個々に定めた密度である。Lは非特許文献1では6mとしており、Wはエッジごとに設定している。
【0022】
以上により、各エージェントは、前方が空いているときは個々に設定された自由歩行速度Vi(最高速度)で移動し、前方が混み始めると密度に応じて速度が低下していき、一定以上の混雑となった場合は停止する、といった状況を再現している。
【0023】
また、年齢、及び土地勘の有無など人の属性をエージェントに反映するため、各エージェント個々に設定する自由歩行速度Viを変え、それらが混在したシミュレーションを行える。また、各属性が混在する比率及び分布などを変更したシミュレーションも可能である。
【0024】
もっとも、非特許文献1の方法では、各エージェント個々に設定できるパラメータは自由歩行速度Viのみである。これによって各エージェント個々の最高速度を個別に設定してシミュレーションできる。しかし、人口密度を用いた計算になっているため、各エージェント個々の「大きさ」は考慮されていない。例えば、車いすで移動している人は、通常の歩行をしている人よりも専有面積が広いため、より少ない人数で空間が混雑し、速度が停止してしまうが、人口密度の計算では車いすの専有面積が反映できない。また、小さい子供は大人よりも専有面積が狭いが、こちらも人口密度の計算には反映できない。このような、車いす、小さな子供など、大きさが異なる人々が混在する状態のシミュレーションを行うのは困難である。また、これらの混在の比率及び分布などを変更したシミュレーションを行うのは困難である。
【0025】
ノードエッジモデルではない詳細なモデルに基づくシミュレーションであればエージェントの大きさに関する課題は発生しないが、シミュレーションに時間がかかってしまうという課題がある。
【0026】
そこで、本実施形態では、ノードエッジモデルにおいて、エージェント情報として、エージェントの大きさの倍率siを追加し、大きさの倍率siを考慮した密度の計算を行う。
【0027】
以下、本実施形態の構成について説明する。
【0028】
図1は、本実施形態の移動予測装置の構成を示すブロック図である。
【0029】
図1に示すように、移動予測装置100は、エージェント発生部110と、位置記録部120と、エッジ選択部130と、前方密度計算部140と、移動速度計算部150と、位置更新部160と、判定部170とを含んで構成されている。
【0030】
図2は、移動予測装置100のハードウェア構成を示すブロック図である。
【0031】
図2に示すように、移動予測装置100は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ストレージ14、入力部15、表示部16及び通信インタフェース(I/F)17を有する。各構成は、バス19を介して相互に通信可能に接続されている。
【0032】
CPU11は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU11は、ROM12又はストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。CPU11は、ROM12又はストレージ14に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。本実施形態では、ROM12又はストレージ14には、移動予測プログラムが格納されている。
【0033】
ROM12は、各種プログラム及び各種データを格納する。RAM13は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ14は、HDD(Hard Disk Drive)又はSSD(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0034】
入力部15は、マウス等のポインティングデバイス、及びキーボードを含み、各種の入力を行うために使用される。
【0035】
表示部16は、例えば、液晶ディスプレイであり、各種の情報を表示する。表示部16は、タッチパネル方式を採用して、入力部15として機能してもよい。
【0036】
通信インタフェース17は、端末等の他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
【0037】
次に、移動予測装置100の各機能構成について説明する。各機能構成は、CPU11がROM12又はストレージ14に記憶された移動予測プログラムを読み出し、RAM13に展開して実行することにより実現される。
【0038】
移動予測装置100は、入力として、エージェント情報と、エッジ情報とを受け付ける。
【0039】
エージェント情報は、全エージェント(全歩行者)について、それぞれエージェント番号i(i=1,2,3,…,mの通し番号)が与えられる。エージェント情報として、エージェントごとに、出発時刻、出発地のノード番号、目的地のノード番号、自由歩行速度Vi、大きさの倍率siが設定される。出発地は、各ノードのうちの出発地である。目的地は、各ノードのうちの目的地である。エージェント情報は、歩行者の属性に応じてVi及び大きさの倍率siの分布が異なる複数のエージェント群を任意の比率で混在させるように設定できる。
【0040】
エッジ情報は、全エッジについて、始点ノード番号、終点ノード番号、エッジの長さ、エッジの幅W、及び速度係数のパラメータα,β,γを設定したエッジの各々に関する情報である。計算を高速化するため同一のノード間をつなぐエッジ情報を方向別に2つ用意してもよい。つまり、ノード1番とノード2番とをつなぐエッジとしては、「始点ノード番号1、終点ノード番号2」であるエッジと「始点ノード番号2、終点ノード番号1」である2つのエッジ情報を持つ。前者はノード番号1からノード番号2の方向に進むエージェントが使い、後者はノード番号2からノード番号1の方向に進むエージェントが使う。
【0041】
移動予測装置100では、エージェント発生部110と、エッジ選択部130と、前方密度計算部140と、移動速度計算部150と、位置更新部160とをシミュレータとして、シミュレーションを実行する。移動予測装置100は、シミュレーション実行前に位置記録部120に、全てのエージェントが未出発である旨を格納してからシミュレーションを開始する。そして時刻ごとに、例えば秒を単位としてt=0の計算を行い、それが完了したら1秒後となるt=1の計算を行う、という処理を繰り返す。実行時間をjとするj秒間のシミュレーションであれば、t=jの計算が完了したらシミュレーション完了とする。以下、移動予測装置100の各部について説明する。以下では、時刻ごとに行われる動作としてt=kの時の動作を説明する。
【0042】
エージェント発生部110は、エージェント情報の出発時刻に応じて出発地から出発する移動エージェントの各々を位置記録部120に記録する。以下、位置記録部120に記録した移動を行うエージェントを移動エージェントと記載する。以下にエージェント発生部110の動作例を説明する。
【0043】
エージェント発生部110は、まず、エージェント情報の全エージェントのうち出発時刻がkになっているエージェントを検索する。検索により、位置記録部120に対して、時刻t=kにおける該当エージェントのエージェント番号と、位置情報と、当該エージェントが出発した旨とを記録する。当該記録により、移動エージェントを追跡できるようになる。位置情報は、「最後に通過したノード番号」、「次に通過予定のノード番号」、及び「最後に通過したノードから進んだ距離」、の組合せである。つまり、出発時においては、「最後に通過したノード番号」としてエージェント情報の出発地ノード番号、「次に通過予定のノード番号」として未定、「最後に通過したノードからの距離」として0、を記録する。これらの位置情報は、シミュレーションによって各時刻について記録される。「最後に通過したノード番号」が、エッジ選択部130の処理において参照する移動エージェントの位置である。
【0044】
エッジ選択部130は、移動エージェントの各々について、前記移動エージェントの位置と、エージェント情報の目的地と、エッジ情報とに基づいて、移動エージェントが移動するエッジを選択する。以下にエッジ選択部130の動作例を説明する。
【0045】
エッジ選択部130は、まず、位置記録部120から、すべての歩行中(出発済かつ未到着)の移動エージェントについて位置情報を取得する。エッジ選択部130は、取得した位置情報で「次に通過予定のノード番号」が未定、つまりどのエッジに進むか選択されていない状態であったら、エッジ情報を参照して当該ノードに接続されているエッジを探し、そのうちのどのエッジに進むかを選択する。エッジ選択部130は、選択したエッジのエッジ情報にある終点ノード番号を、位置情報の「次に通過予定のノード番号」に格納する。選択の方法は、任意であるが、例えば、目的地に最も近い距離で到達できるエッジを探し出して選択する。また、目的地まで到達するための距離が短いエッジほど選択される確率が高くなるようにランダムでエッジを選択してもよいし、いずれのエッジも同じ確率になるようにランダムでエッジを選択してもよい。
【0046】
前方密度計算部140は、移動エージェントの各々について、人口密度ρを計算する。人口密度ρの計算においては、まず、前方の長さL及び当該移動エージェントが存在するエッジの幅Wとについての区間の面積を求める。前方の長さLは、当該移動エージェントが存在する位置から予め設定されている前方の長さである。前方密度計算部140は、求めた区間の面積と、当該移動エージェントが存在する位置から前方の距離L[m]先までの区間にいる他のエージェントの大きさの倍率siとに基づいて、人口密度ρを計算する。前方の長さLは、例えば、6mとする。以下に前方密度計算部140の動作例を説明する。
【0047】
前方密度計算部140は、まず、移動エージェントごとに、移動エージェントが存在する位置から前方の距離L[m]先までの区間の面積を求め、求めた区間の面積を元に、人口密度ρを計算する。ここで計算する人口密度は、人口密度ρの計算を式(2)の人口密度計算ではなく、各エージェントの大きさを考慮して換算される人口密度である。この計算では、各エージェント個々に設定された大きさの倍率siを用いる。これは、通常の歩行者であればsi=1.0とする。車いすのように通常の歩行者よりも専有面積が大きくなる場合は1.0よりも大きくしている。例えば、専有面積が1.5倍であればsi=1.5とし、専有面積が2.0倍であればsi=2.0とする。逆に、子供のように通常の歩行者よりも専有面積が小さい場合は1.0よりも小さくする。例えば、専有面積が0.75倍であればsi=0.75とし、専有面積が0.5倍であればsi=0.5とする。このように、大きさの倍率siは、エージェントの属性に応じて定められている。以上のように設定されている大きさの倍率siを用いて人口密度ρを以下の式(3)で計算する。
【0048】
【0049】
nは移動エージェントが存在する位置から前方の距離L[m]先までの区間に存在する他エージェントの数であり、大きさの倍率siは当該他エージェントの各々に設定されている値を用いる。式(3)の分母L×Wは区間の面積である。この式(3)は式(2)に比べると計算量は増えているものの増加分はごくわずかであり、詳細な物理モデルによるシミュレーションに比べれば非常に小さい計算量、及びメモリ消費となっている。
【0050】
移動エージェントの位置からエッジ終点までの距離がL[m]よりも短い場合は、エッジ終点までを人口密度計算の区間としてもよい。また、エッジ終点のノードに他のエッジが接続されているのであれば、接続先のいずれかのエッジまで含め、エッジを跨いで区間の面積を求め、人口密度を計算してもよい。
【0051】
人口密度の計算例について説明する。長さ25m、幅W=2[m]のエッジがあるとする。そのエッジ上にA~Eの5人の移動エージェントがいるとする。それぞれの位置について次のようになっている。エージェントAが、エッジ始点から10mの位置とする。エージェントBが、エッジ始点から14mの位置とする。エージェントCが、エッジ始点から15mの位置とする。エージェントDがエッジ始点から19mの位置とする。エージェントEがエッジ始点から22mの位置とする。
【0052】
この場合、L=6[m]とすると、エージェントAの人口密度計算は、A自身がいる10mから前方6m先の16mまで、つまり10m~16mの位置にいるBとCの2人が計算対象となる。A自身は対象外とし、D及びEは前方の長さ6mよりも先にいるので対象外となる。
【0053】
エージェントAの人口密度計算に使う面積はL×W=6×2=12[m2]となり、人数だけで計算する従来法であれば人口密度は人数÷面積=2÷12=0.167[人/m2]と計算できる。
【0054】
また、エージェントBの人口密度計算は、B自身がいる14mから前方6m先の20mまで、つまり14m~20mの位置にいるCとDの2人が計算対象である。Bより後方にいるA、B自身、6mよりも先にいるEは対象外となる。以上が人口密度の計算例である。
【0055】
移動速度計算部150は、移動エージェントの各々について、移動エージェントの移動速度を計算する。移動エージェントの移動速度は、エージェント情報の自由歩行速度Viと、前方密度計算部140で計算した人口密度ρと、速度係数のパラメータとに基づいて計算する。以下に移動速度計算部150の動作例を説明する。
【0056】
移動速度計算部150は、移動エージェントごとに、移動エージェントの移動速度viを計算する。この計算は式(1)のままでもよいし、以下の式(4)のように書き換えたものを使用してもよい。
【0057】
【0058】
式(4)のmax及びminについては以下のように定める。
【0059】
【0060】
速度係数のパラメータα,β,γは、選択されたエッジのエッジ情報に設定されている速度定数であり、例えば、α=1.8,β=0.3,γ=1.0であれば式(1)と同じである。パラメータα,β,γは、非特許文献1では単に全エッジで共通の固定値を使っているが、本実施形態では、エッジごとの属性に応じて可変となるように定める。例えば、雨の日は傘をさすので、人口密度が低くても急速に速度低下して停止する、という状況を再現する等のためにαを大きくする。αを大きくすると、人口密度の増加に伴う速度の低下率が大きくなる。また、αによって速度の低下率を決定した後に、どの程度の人口密度で、移動を停止させたいかに応じてβを定める。例えば、雨の日でも地下道やアーケードなど屋根のあるエッジでは、晴天時と同じα及びβを用いればよい。また、γは、夜間の暗さの変化に応じて減少させる等の使い方をする。夜間でも明るいエッジはあまり減少させない、というように調整する。そのため、α、β、γはエッジごとの設定である。また、シミュレーション中に時間経過で日没する、天候変化で急に雨が降ってくるなどを再現するため、各エッジのα、β、γを時刻によって変更してもよい。このように、移動速度計算部150では、時刻に応じて変化するエッジごとの属性に応じてパラメータα,β,γを調整するように設定する。
【0061】
位置更新部160は、移動エージェントの各々について、移動速度計算部150で計算した移動速度に基づいて、位置記録部120の移動エージェントの位置を更新する。以下に位置更新部160の動作例を説明する。
【0062】
位置更新部160は、移動エージェントごとに、位置記録部120に記録されているt=kでの位置情報と、移動速度計算部150が計算した移動速度viを用いて、t=k+1の位置情報を計算する。そして位置記録部120に、移動エージェントの各々についての時刻t=k+1におけるエージェント番号と位置情報とを記録する。目的地に到達した移動エージェントがあれば、当該移動エージェントが到着済である旨を記録する。
【0063】
判定部170は、所定の条件を満たすまで、エージェント発生部110、エッジ選択部130、前方密度計算部140、移動速度計算部150、及び位置更新部160の各処理によるシミュレーションを繰り返す。判定部170では、すべての移動エージェントに対して位置情報の更新が完了したらt=kの動作は完了し、時刻をインクリメントして次の時刻における動作を行う、という動作を繰り返す。実行時間jに到達していた場合はシミュレーションを終了する。
【0064】
移動予測装置100は、位置記録部120から移動エージェントの各々のシミュレーション結果を読み出して出力する。シミュレーション結果は、各移動エージェントの各時刻t=0,2,3,…における、各エージェントi=1,2,3,…,mの位置情報を出力する。
【0065】
次に、移動予測装置100の作用について説明する。
【0066】
図3は、移動予測装置100による移動予測処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14から移動予測プログラムを読み出して、RAM13に展開して実行することにより、移動予測処理が行なわれる。移動予測装置100は、入力として、エッジ情報及びエージェント情報を受け付けて以下の処理を行う。
【0067】
ステップS100において、CPU11は、シミュレーションの実行時刻jを設定すると共に、時刻t=0と設定する。
【0068】
ステップS102において、CPU11は、エージェント情報の出発時刻に応じて出発地から出発する移動エージェントの各々を位置記録部120に記録する。ここでは、エージェント情報の出発時刻をkとして、t=kであるエージェントが移動エージェントとなる。
【0069】
ステップS104において、CPU11は、移動エージェントの各々について、当該移動エージェントの位置と、エージェント情報の目的地と、エッジ情報とに基づいて、移動エージェントが移動するエッジを選択する。
【0070】
ステップS106において、CPU11は、移動エージェントの各々について、人口密度ρを計算する。人口密度ρは、上記式(3)に従って、当該移動エージェントの位置からの前方の長さL及び当該移動エージェントが存在するエッジの幅Wについて求まる区間の面積と、当該区間に存在する他のエージェントの大きさの倍率siとに基づいて、計算する。
【0071】
ステップS108において、CPU11は、移動エージェントの各々について、移動エージェントの移動速度を計算する。移動エージェントの移動速度は、エージェント情報の自由歩行速度Viと、前方密度計算部140で計算した人口密度ρと、速度係数のパラメータとに基づいて上記(4)式に従って計算する。速度係数のパラメータは、α、β,γであり、時刻に応じて変化するエッジごとの属性に応じて調整される。
【0072】
ステップS110において、CPU11は、移動エージェントの各々について、ステップS108で計算した移動速度に基づいて、位置記録部120の移動エージェントの位置を更新する。
【0073】
ステップS112において、CPU11は、t=jであるか否かを判定し、t=jであればステップS116へ移行し、t=jでなければステップS114へ移行する。
【0074】
ステップS114において、CPU11は、t=t+1とインクリメントして、ステップS102に移行して処理を繰り返す。
【0075】
ステップS116において、CPU11は、位置記録部120から移動エージェントの各々のシミュレーション結果を読み出して出力し、処理を終了する。
【0076】
以上説明したように本実施形態の移動予測装置100によれば、エージェントの属性の大きさを用いて精度よく移動をシミュレーションできる。
【0077】
ノードエッジモデルの単純で高速という特徴を生かしたまま、各エージェント個々の「大きさ」を考慮したシミュレーションが可能となる。例えば、車いすで移動している人は、通常の歩行をしている人よりも専有面積が広いため、より少ない人数で空間が混雑し、速度が停止してしまうことを再現できるようになる。また、小さい子供は大人よりも専有面積が狭く、この影響を再現できるようになる。
【0078】
このような、車いす、小さな子供など、大きさが異なる人々が混在する状態のシミュレーションを行うこと、混在の比率や分布などを変更したシミュレーションを行うことができるようになる。
【0079】
また、ノードエッジモデルではない詳細な物理モデルによるシミュレーションならば「大きさ」を考慮したシミュレーションは可能であるが、本実施形態の手法は、それよりも計算量がより少なく、高速かつ低メモリでシミュレーションが行えるメリットがある。
【0080】
なお、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した移動予測処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、移動予測処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0081】
また、上記各実施形態では、移動予測プログラムがストレージ14に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的(non-transitory)記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【0082】
以上の実施形態に関し、更に以下の付記を開示する。
【0083】
(付記項1)
メモリと、
前記メモリに接続された少なくとも1つのプロセッサと、
を含み、
前記プロセッサは、
各ノードを結ぶ経路を示すエッジの各々に関するエッジ情報と、複数のエージェントの各々についての、出発時刻、前記各ノードのうちの出発地、前記各ノードのうちの目的地、前記エージェントの自由歩行速度、及び前記エージェントの大きさの倍率を定めたエージェント情報との入力を受け付け、
前記エージェント情報の前記出発時刻に応じて前記出発地から出発する移動エージェントの各々を記録し、
前記移動エージェントの各々について、前記エージェントの位置と、前記エージェント情報の前記目的地と、前記エッジ情報とに基づいて、前記移動エージェントが移動するエッジを選択し、
前記移動エージェントの各々について、前記移動エージェントの位置から、予め設定された前方の長さまでの区間の面積と、前記区間に存在する他のエージェントの前記大きさの倍率とに基づいて、人口密度を計算し、
前記移動エージェントの各々について、前記エージェント情報の前記自由歩行速度と、計算した前記人口密度と、予め定めたパラメータとに基づいて、前記移動エージェントの移動速度を計算し、
前記移動エージェントの各々について、計算した前記移動速度に基づいて、前記移動エージェントの前記位置を更新し、
所定の条件を満たすまで、各処理によるシミュレーションを繰り返す、
ように構成されている移動予測装置。
【0084】
(付記項2)
各ノードを結ぶ経路を示すエッジの各々に関するエッジ情報と、複数のエージェントの各々についての、出発時刻、前記各ノードのうちの出発地、前記各ノードのうちの目的地、前記エージェントの自由歩行速度、及び前記エージェントの大きさの倍率を定めたエージェント情報との入力を受け付け、
前記エージェント情報の前記出発時刻に応じて前記出発地から出発する移動エージェントの各々を記録し、
前記移動エージェントの各々について、前記エージェントの位置と、前記エージェント情報の前記目的地と、前記エッジ情報とに基づいて、前記移動エージェントが移動するエッジを選択し、
前記移動エージェントの各々について、前記移動エージェントの位置から、予め設定された前方の長さまでの区間の面積と、前記区間に存在する他のエージェントの前記大きさの倍率とに基づいて、人口密度を計算し、
前記移動エージェントの各々について、前記エージェント情報の前記自由歩行速度と、計算した前記人口密度と、予め定めたパラメータとに基づいて、前記移動エージェントの移動速度を計算し、
前記移動エージェントの各々について、計算した前記移動速度に基づいて、前記移動エージェントの前記位置を更新し、
所定の条件を満たすまで、各処理によるシミュレーションを繰り返す、
ことをコンピュータに実行させる移動予測プログラムを記憶した非一時的記憶媒体。
【符号の説明】
【0085】
100 移動予測装置
110 エージェント発生部
120 位置記録部
130 エッジ選択部
140 前方密度計算部
150 移動速度計算部
160 位置更新部
160 位置更新部
170 判定部