(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-19
(45)【発行日】2024-03-28
(54)【発明の名称】シミュレータ、シミュレーション方法及びシミュレーションプログラム
(51)【国際特許分類】
G06Q 10/04 20230101AFI20240321BHJP
【FI】
G06Q10/04
(21)【出願番号】P 2020038113
(22)【出願日】2020-03-05
【審査請求日】2023-03-02
(73)【特許権者】
【識別番号】000108085
【氏名又は名称】セコム株式会社
(74)【代理人】
【識別番号】100103850
【氏名又は名称】田中 秀▲てつ▼
(74)【代理人】
【識別番号】100114177
【氏名又は名称】小林 龍
(74)【代理人】
【識別番号】100066980
【氏名又は名称】森 哲也
(72)【発明者】
【氏名】古河 あゆみ
【審査官】阿部 潤
(56)【参考文献】
【文献】国際公開第2017/029698(WO,A1)
【文献】特開2019-125312(JP,A)
【文献】特表2010-531004(JP,A)
【文献】特開2019-219880(JP,A)
【文献】特開2019-219881(JP,A)
【文献】特開2019-21143(JP,A)
【文献】特開2013-250941(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
複数の行動目的を有するエージェントが、所定の空間において複数の目的地にて前記複数の行動目的を達成する行動を模擬するシミュレータであって、
前記複数の目的地の中から前記複数の行動目的の各々を達成する目的地の組合せを複数選択する組合せ選択手段と、
前記目的地の組合せ毎に、組み合わせた前記目的地で前記複数の行動目的を達成期限までに各々達成する確率の合計を、前記複数の行動目的を達成するのに要する各々の所要時間の確率密度分布に基づいて予測し、前記合計に応じて評価値を算出する評価値算出手段と、
前記目的地の複数の組合せの中から前記評価値に基づいて選択した目的地の組合せを順次訪れるように移動する前記エージェントの行動を模擬する行動模擬手段と、を備え、
前記評価値算出手段は、前記複数の行動目的のうち先に達成する行動目的の所要時間の確率密度分布と前記達成期限に応じて残り時間の確率密度分布を決定し、後に達成する行動目的を前記達成期限までに達成する確率を、前記残り時間の確率密度分布に基づいて予測する、
ことを特徴とするシミュレータ。
【請求項2】
前記評価値算出手段は、所定のサンプリング法によって前記残り時間の確率密度分布の標本を抽出し、当該標本と、前記後に達成する行動目的を達成するのに要する所要時間の確率密度分布とに基づいて、前記後に達成する行動目的を前記達成期限までに達成する確率を算出する、ことを特徴とする請求項1に記載のシミュレータ。
【請求項3】
前記評価値算出手段は、前記残り時間のヒストグラムと、前記後に達成する行動目的を達成するのに要する所要時間の累積分布関数とに基づいて、前記ヒストグラムの各区間における前記ヒストグラムの度数と前記累積分布関数の確率との積の合計を、前記後に達成する行動目的を前記達成期限までに達成する確率として算出する、
ことを特徴とする請求項2に記載のシミュレータ。
【請求項4】
前記評価値算出手段は、前記複数の行動目的の各々を達成する確率を前記複数の行動目的の効用で重み付けした確率の合計である前記評価値を算出することを特徴とする請求項1~3のいずれか一項に記載のシミュレータ。
【請求項5】
複数の行動目的を有するエージェントが、所定の空間において複数の目的地にて前記複数の行動目的をそれぞれ達成する行動を模擬するシミュレーション方法であって、
前記複数の目的地の中から前記複数の行動目的の各々を達成する目的地の組合せを複数選択する組合せ選択処理と、
前記目的地の組合せ毎に、組み合わせた前記目的地で前記複数の行動目的を達成期限までに各々達成する確率の合計を、前記複数の行動目的を達成するのに要する各々の所要時間の確率密度分布に基づいて予測し、前記合計に応じて評価値を算出する評価値算出処理と、
前記目的地の複数の組合せの中から前記評価値に基づいて選択した目的地の組合せを順次訪れるように移動する前記エージェントの行動を模擬する行動模擬処理と、
をコンピュータが実行し、
前記評価値算出処理において、前記複数の行動目的のうち先に達成する行動目的の所要時間の確率密度分布と前記達成期限に応じて残り時間の確率密度分布を決定し、後に達成する行動目的を前記達成期限までに達成する確率を、前記残り時間の確率密度分布に基づいて予測することを特徴とするシミュレーション方法。
【請求項6】
複数の行動目的を有するエージェントが、所定の空間において複数の目的地にて前記複数の行動目的をそれぞれ達成する行動を模擬するシミュレーションプログラムであって、
前記複数の目的地の中から前記複数の行動目的の各々を達成する目的地の組合せを複数選択する組合せ選択処理と、
前記目的地の組合せ毎に、組み合わせた前記目的地で前記複数の行動目的を達成期限までに各々達成する確率の合計を、前記複数の行動目的を達成するのに要する各々の所要時間の確率密度分布に基づいて予測し、前記合計に応じて評価値を算出する評価値算出処理と、
前記目的地の複数の組合せの中から前記評価値に基づいて選択した目的地の組合せを順次訪れるように移動する前記エージェントの行動を模擬する行動模擬処理と、
をコンピュータに実行させ、
前記評価値算出処理において、前記複数の行動目的のうち先に達成する行動目的の所要時間の確率密度分布と前記達成期限に応じて残り時間の確率密度分布を決定し、後に達成する行動目的を前記達成期限までに達成する確率を、前記残り時間の確率密度分布に基づいて予測することを特徴とするシミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、群集の行動を予測するシミュレータ、シミュレーション方法及びシミュレーションプログラムに関する。
【背景技術】
【0002】
近年、大勢の人々が集まる空間について、空間設計やその改善の効果、運用施策の導入やその改善等の効果を予測するために、群集の行動を予測するシミュレータが用いられている。また、そのようなシミュレータで用いる方法の一つとして、群集を構成する個体それぞれをエージェントと呼ばれるデータで表すマルチエージェントシミュレーションが知られている。
一般に、大勢の人々が集まる空間には複数の目的(行動目的)に対してそれを達成できる場所(目的地)が存在し、マルチエージェントシミュレーションではエージェントそれぞれの行動目的と目的地を決定する必要がある。
例えば特許文献1にはT字路の通行者を模した個体それぞれに対してA駅への移動、B駅への移動、観客席への移動等の目的と西側連絡口、東側連絡口、南側連絡口等の移動目標位置とをシミュレータの利用者が予め設定することが記載されている。また、例えば特許文献2には属性がリーダーである個体の選択目的と選択目的に対応する選択エリアを避難・出口エリアと消火・燃焼エリアの中から抽選によって決定することが記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2019-219880号公報
【文献】特開2019-185073号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、設計や施策等の試行錯誤を減ずるためにシミュレータには予測精度が要求され、予測精度を左右する要因のひとつに複数の行動目的を持った個体が時間制限の下で達成の可能性を考慮して行う選択(意思決定)がある。例えば、現実世界の劇場の15分休憩において、観客の一人は休憩時間内に確実にグッズを入手すべく買い物を優先してまず売店に向かい、その後用便のための時間が余る可能性が高ければトイレへの移動を予定し、時間が余る可能性が低ければ用便はあきらめるというように、先の行動目的を達成した場合に後の行動目的を達成できる可能性の高低を考えて優先順位決めや取捨選択をして目的地を選ぶ。
しかしながら、従来のシミュレータが行うマルチエージェントシミュレーションでは、各エージェントの行動目的や目的地をシミュレータの利用者が予め設定し、または各時点で抽選していた。このため、従来技術では、複数の行動目的を有するエージェントが時間制限の下で達成の可能性を考慮して行う順序決めと選択を反映した群集行動を模擬することが困難であった。
例えばシミュレータの利用者が予め設定する場合は個体と行動目的の組み合わせの数だけ設定しなければならない上、その一つひとつを先の行動目的と後の行動目的の達成可能性を考慮して設定しなければならない。また、例えば抽選による決定は複数の行動目的と目的地を決めるものではなく、先の行動目的と後の行動目的の達成可能性を考慮して決めるものでもなかった。
【0005】
本発明は、上記の問題点を鑑みてなされたものであり、複数の行動目的を有するエージェントが時間制限の下で達成の可能性を考慮して行う順序決めと選択を反映した群集行動を模擬するシミュレータ、シミュレーション方法及びシミュレーションプログラムを目的とする。
【課題を解決するための手段】
【0006】
本発明の一形態によれば、複数の行動目的を有するエージェントが、所定の空間において複数の目的地にて複数の行動目的をそれぞれ達成する行動を模擬するシミュレータが与えられる。シミュレータは、複数の目的地の中から複数の行動目的の各々を達成する目的地の組合せを複数選択する組合せ選択手段と、目的地の組合せ毎に、組み合わせた目的地で複数の行動目的を達成期限までに各々達成する確率の合計を、複数の行動目的を達成するのに要する各々の所要時間の確率密度分布に基づいて予測し、合計に応じて評価値を算出する評価値算出手段と、目的地の複数の組合せの中から評価値に基づいて選択した目的地の組合せを順次訪れるように移動するエージェントの行動を模擬する行動模擬手段と、を備える。評価値算出手段は、複数の行動目的のうち先に達成する行動目的の所要時間の確率密度分布と達成期限に応じて残り時間の確率密度分布を決定し、後に達成する行動目的を達成期限までに達成する確率を、残り時間の確率密度分布に基づいて予測する。
【0007】
本発明の他の形態によれば、複数の行動目的を有するエージェントが、所定の空間において複数の目的地にて複数の行動目的をそれぞれ達成する行動を模擬するシミュレーション方法が与えられる。シミュレーション方法では、複数の目的地の中から複数の行動目的の各々を達成する目的地の組合せを複数選択する組合せ選択処理と、目的地の組合せ毎に、組み合わせた目的地で複数の行動目的を達成期限までに各々達成する確率の合計を、複数の行動目的を達成するのに要する各々の所要時間の確率密度分布に基づいて予測し、合計に応じて評価値を算出する評価値算出処理と、目的地の複数の組合せの中から評価値に基づいて選択した目的地の組合せを順次訪れるように移動するエージェントの行動を模擬する行動模擬処理と、をコンピュータが実行する。評価値算出処理において、複数の行動目的のうち先に達成する行動目的の所要時間の確率密度分布と達成期限に応じて残り時間の確率密度分布を決定し、後に達成する行動目的を達成期限までに達成する確率を、残り時間の確率密度分布に基づいて予測する。
【0008】
本発明の更なる他の形態によれば、複数の行動目的を有するエージェントが、所定の空間において複数の目的地にて複数の行動目的をそれぞれ達成する行動を模擬するシミュレーションプログラムが与えられる。シミュレーションプログラムは、複数の目的地の中から複数の行動目的の各々を達成する目的地の組合せを複数選択する組合せ選択処理と、目的地の組合せ毎に、組み合わせた目的地で複数の行動目的を達成期限までに各々達成する確率の合計を、複数の行動目的を達成するのに要する各々の所要時間の確率密度分布に基づいて予測し、合計に応じて評価値を算出する評価値算出処理と、目的地の複数の組合せの中から評価値に基づいて選択した目的地の組合せを順次訪れるように移動するエージェントの行動を模擬する行動模擬処理と、をコンピュータに実行させる。評価値算出処理において、複数の行動目的のうち先に達成する行動目的の所要時間の確率密度分布と達成期限に応じて残り時間の確率密度分布を決定し、後に達成する行動目的を達成期限までに達成する確率を、残り時間の確率密度分布に基づいて予測する。
【発明の効果】
【0009】
本発明によれば、複数の行動目的を有するエージェントが時間制限の下で達成の可能性を考慮して行う順序決めと選択を反映した群集行動を模擬することができる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係るシミュレータの一例の概略構成図である。
【
図2】実施形態に係るシミュレータの一例の機能ブロック図である。
【
図3】空間情報記憶手段に記憶される対象空間の地図情報の一例の模式図である。
【
図4】空間情報記憶手段に記憶される空間情報(行動目的情報及び目的地情報)の一例を示す図である。
【
図5】エージェント情報記憶手段に記憶される第1のエージェント情報の一例を示す図である。
【
図6】エージェント情報記憶手段に記憶される第2のエージェント情報の一例を示す図である。
【
図7】エージェント情報記憶手段に記憶される第3のエージェント情報の一例を示す図である。
【
図8】エージェント情報記憶手段に記憶される第4のエージェント情報の一例を示す図である。
【
図9】統計情報記憶手段に記憶される統計情報の一例を示す図である。
【
図10】(a)及び(b)は1番目の行動目的を達成する成功確率の算出方法の一例の説明図である。
【
図11】(a)~(c)は2番目以降の行動目的を達成する成功確率の算出方法の一例の説明図である。
【
図12】(a)及び(b)は、統計情報記憶手段に記憶される確率分布が統計情報更新手段によって更新されて、エージェント毎に違いが生じる様子を説明する図である。
【
図13】第1実施形態のシミュレーション方法の全体処理の一例のフローチャートである。
【
図14】統計情報更新処理の一例のフローチャートである。
【
図15】統計情報更新処理の一例のフローチャートである。
【
図16】行動決定処理の一例のフローチャートである。
【
図17】評価値算出処理の一例のフローチャートである。
【
図18】エージェント状態更新処理の一例のフローチャートである。
【
図19】第2実施形態における目的地へのエージェントの到達数の予測方法の説明図である。
【
図20】第2実施形態における待ち時間算出手段の一例の機能ブロック図である。
【
図21】第2実施形態における所要時間分布算出処理の一例のフローチャートである。
【発明を実施するための形態】
【0011】
以下において、図面を参照して本発明の実施形態を説明する。なお、以下に示す本発明の実施形態は、本発明の技術的思想を具体化するための装置や方法を例示するものであって、本発明の技術的思想は、構成部品の構造、配置等を下記のものに特定するものではない。本発明の技術的思想は、特許請求の範囲に記載された請求項が規定する技術的範囲内において、種々の変更を加えることができる。
【0012】
本発明の実施形態として、客席、トイレおよび売店を有する劇場において複数の人が客席、トイレおよび売店を利用する行動を予測するシミュレータの例を示す。
すなわち、本実施形態において、シミュレーションの対象となる空間(対象空間)は劇場であり、群集を構成する個体は人であり、各個体の行動目的は、劇場の座席への「着席」と、「用便」と、「買い物」である。以下、シミュレータにおける個体のデータを「エージェント」と表記する。
【0013】
また、この実施形態においては、シミュレーションの実施者(以下「利用者」と表記する)が、シミュレータを用いて幕間時間の群集の行動を予測する例について説明する。また、複数回の幕間時間を経て群集の行動の予測が変化する例について説明する。ちなみに、簡単化のために、幕前、幕後は省略するものとする。
なお、本明細書において説明される劇場は、あくまで対象空間の一例であり、本発明の対象はこれに限定されるものではない。
【0014】
(第1実施形態)
(構成)
図1は、第1実施形態に係るシミュレータの一例の概略構成図である。
シミュレータ1は、操作入力部2、ファイル入出力部3、記憶部4、制御部5、および表示部6からなる。これらのうちのファイル入出力部3、記憶部4および制御部5はいわゆるコンピュータで実現でき、操作入力部2および表示部6は当該コンピュータの周辺機器として実現できる。
操作入力部2は、キーボード、マウス等のユーザーインターフェースであり、利用者に操作されてデータの入力等に用いられる。操作入力部2は、制御部5に接続され、利用者の操作を操作信号に変換して制御部5に出力する。
【0015】
ファイル入出力部3は、DVD(Digital Versatile Disc)ドライブ、USB(Universal Serial Bus)インターフェース、ネットワークインターフェース等であり、一方が不図示の外部機器、記録メディア、ネットワーク等に接続され、他方が制御部5に接続され、データをファイルとして制御部5に入力し、およびデータをファイルとして制御部5から出力する。
記憶部4は、ROM(Read Only Memory)、RAM(Random Access Memory)等のメモリ装置であり、各種プログラムや各種データを記憶する。記憶部4は、制御部5と接続されて制御部5との間でこれらの情報を入出力する。
【0016】
制御部5は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、MCU(Micro Control Unit)等の演算装置で構成される。制御部5は、記憶部4と接続され、記憶部4からプログラムを読み出して実行することにより各種処理部として動作し、各種データを記憶部4に記憶させ、読み出す。また、制御部5は、操作入力部2、ファイル入出力部3および表示部6とも接続され、利用者が操作入力部2を操作して入力されたデータを取得し、ファイル入出力部3を介して外部からファイルとしてデータを取得および出力し、所得したデータに基づいたシミュレーションを行って群集の行動を予測し、予測結果のデータをファイルとしてファイル入出力部3から出力させ、および/または予測結果のデータを画像化して表示部6に表示させる。
表示部6は、液晶ディスプレイ又はCRT(Cathode Ray Tube)ディスプレイ等のディスプレイ装置であり、制御部5と接続され、制御部5による予測結果を表示する。利用者は表示された予測結果を視認して群集の行動に関する考察等を行う。
【0017】
(シミュレータ1の機能)
図2は、第1実施形態に係るシミュレータ1の一例の機能ブロック図である。
操作入力部2は、条件設定手段20の一部等として機能し、ファイル入出力部3は条件設定手段20の一部および予測結果出力手段60の一部等として機能する。
記憶部4は模擬条件記憶手段40、空間情報記憶手段41、エージェント情報記憶手段42および統計情報記憶手段43等として機能する。
【0018】
制御部5は、CPU、DSP、MCU等の演算装置によって記憶部4に格納されたコンピュータプログラムを実行することにより、評価値算出手段50、目的地選択手段51、行動模擬手段52および統計情報更新手段53等として機能する。
条件設定手段20は、シミュレーションに必要な各種条件の入力を受け付け、入力された条件を模擬条件記憶手段40、空間情報記憶手段41、エージェント情報記憶手段42および統計情報記憶手段43に記憶させる。
【0019】
条件設定手段20は、例えば、操作入力部2および制御部5が協働して実現され、利用者が操作入力部2を操作して入力した値を、制御部5が記憶部4に記憶させる。条件設定手段20は、条件の一部または全部が記されたファイルを入力するファイル入出力部3を含んでもよく、利用者が操作入力部2を操作して指定したファイルを制御部5がファイル入出力部3を介して取得して当該ファイルに記された値を記憶部4に記憶させる。
条件設定手段20により入力されて模擬条件記憶手段40が記憶する条件は、例えば、仮想時刻の上限T、行動決定間隔、観測間隔、エージェント基本速さ(1時刻で進もうとする距離)の設定を含む。
【0020】
第1実施形態のシミュレーションは、仮想時刻を進めながら行われる。例えば、仮想時刻が(T-1)に達するまで仮想時刻を0から1ずつ増加させながら仮想時刻毎にエージェントの情報を更新する処理が繰り返される。操作入力部2にて利用者による終了指示の入力を受け付け、終了指示が入力された時点で強制終了する処理を加えてもよい。
仮想時刻は、実際の時間の経過を模擬したものであるが、シミュレータが1時刻分の演算を終えるたびに進められ、実際の時間の経過よりも高速に刻まれる。例えば、仮想時刻の1時刻を実際の0.1秒間に対応させ、仮想時刻を0から始まり1ずつ増加する整数で表す。
【0021】
空間情報記憶手段41は、対象空間を表す地図情報と、対象空間において達成可能な行動目的を定義する行動目的情報と、対象空間内において行動目的を達成可能な場所である目的地に関する目的地情報を含んだ空間情報を記憶する。なお、対象空間には、少なくとも1つの行動目的に対して、この行動目的を達成できる複数の目的地が存在している。
図3は地図情報100の一例の模式図であり、
図4は、行動目的情報110及び目的地情報111の一例を示す図である。これらの空間情報は、目的地情報111に含まれる「キュー」を除いて、条件設定手段20を用いた利用者による入力操作により予め設定される。
【0022】
図3に示す地図情報100において線分は壁を表しており、線分以外の領域が、エージェントが移動可能な移動可能領域である。
またローマ数字I~Xは、各目的地に付与される目的地IDであり、
図3の地図情報100において各目的地の場所を示している。
2重丸印Q1~Q10は、各目的地I~Xの位置を表す代表点の位置を示す。実際には領域である目的地I~Xの位置を、点情報として定義して取り扱いを容易にしている。
丸印Q11~Q21は、エージェントが壁を回避しながら移動可能領域を移動するために経由できる経由点を示す。移動可能領域でエージェントが移動する経路は、代表点同士、経由点同士、代表点と経由点を結ぶ局所的な経路(以下、「局所経路」と表記する)により定義される。
【0023】
図4を参照する。行動目的情報110は、行動目的ID(1~3)に対応付けて、各行動目的の「行動目的名」を含んでいる。
また、目的地情報111は、目的地ID(I~X)に対応付けて、各目的地の「目的地名」、「代表点」、「性別制限」、「サービス窓口数」、「達成可能な行動目的」、「サービス時間分布」及び「キュー」を含んでいる。
【0024】
「目的地名」は、当該目的地の名称である。例えば、目的地Iは「客席」であり、目的地IIは「女子トイレ1」であり、目的地IIIは「女子トイレ2」であり、目的地IVは「男子トイレ1」であり、目的地Vは「男子トイレ2」であり、目的地VI~Xは「売店1」~「売店5」である。
「代表点」は、上述した代表点Q1~Q10のXY座標値である。
【0025】
「性別制限」は、当該目的地を利用可能なエージェントの属性制限の一つであり、当該目的地を利用可能なエージェントの性別である。
「サービス窓口数」は、当該目的地を同時に利用可能なエージェントの最大数である。以下の説明において「サービス」とは、行動目的の達成のための目的地の利用を意味する。例えば、目的地が「トイレ」であればサービスは用便のための場所の提供であり、目的地が「売店」であればサービスは販売役務である。
【0026】
「達成可能な行動目的」は、当該目的地で達成可能な行動目的である。
「サービス時間分布」は、当該目的地におけるサービスの所要時間(以下「サービス時間」と表記する)を確率分布で表した統計情報である。例えば、サービス時間を正規分布で表したときの平均値と分散が記憶される。サービス時間分布は、当該目的地において各エージェントが行動目的を達成するのに要したサービス時間を決定するのに使用される。
【0027】
「キュー」は、当該目的地に滞在しているエージェントのエージェントIDを当該目的地への到達順に並べたバッファである。キューは、行動模擬手段52によって逐次更新される。
キュー内の順序がサービス窓口数以下であるエージェントが、目的地においてサービスを受けているエージェントであり、キュー内の順序がサービス窓口数より大きなエージェントが、サービス待ちのエージェントである。また、サービス待ちのエージェントの数が待機数(待ち数)である。
【0028】
図4の空間情報111の例では、売店1には4つのエージェント#9、#63、#39、#83が到達しており、サービス窓口数が1であることからキューの先頭のエージェント#9のみがサービスを受けている(例えば、レジで精算している)ことを示す。また、残りのエージェント#63、#39、#83はサービス待ちであり(商品を選んでいるかレジ待ち)、待機数は3であることを示す。
【0029】
図2を参照する。エージェント情報記憶手段42は、統計情報記憶手段43とともに群集を構成する複数のエージェントのそれぞれに関する情報を記憶する。以下、エージェント情報記憶手段42が記憶する情報を「エージェント情報」と表記する。
図5、
図6、
図7及び
図8に、それぞれエージェント情報120、121、122及び123の一例を示す。各図において数値の横にかぎ括弧で示した文字列は図の見易さを考慮して意味を付記したものである。
例えばエージェント情報120の初期位置において(4.55,14.00)「扉1」と表記した個所に実際に記憶されているのは値(4.55,14.00)であり、それは「扉1」の座標を意味する。なお、以下の説明では、値の表記を省略して代わりに意味で説明する場合もある。
【0030】
図5のエージェント情報120は、条件設定手段20を用いた利用者による入力操作により設定される情報の一部である。エージェント情報120としてエージェントID、生成時刻、初期位置及び性別の組合せが記憶される。初期位置は、エージェントの位置の初期値であり、生成時刻にエージェントを生成する位置を示す。
図5の例は、女性のエージェント#1が、「幕間1」内の仮想時刻0に「扉1」の座標に生成されることを示している。また「幕間2」及び「幕間3」については説明を省略する。さらに「幕間4」内の仮想時刻99600に「扉3」の座標に生成されること等を示している。第1実施形態のシミュレーションの例では、同一エージェントが複数回生成されることに注意されたい。
【0031】
図6のエージェント情報121も、条件設定手段20を用いた利用者により入力操作によって設定される。エージェント情報121は、エージェントIDと生成時刻の組合せに対応付けて、「行動目的ID」、「達成期限」、「希望達成度」、「終端目的フラグ」、「達成フラグ」の組合せを含んでいる。ただし、これらの情報のうち、達成フラグは行動模擬手段52によって適宜更新される。
【0032】
「行動目的ID」は、各場面(幕間)においてエージェントが対象空間で行動する目的(行動目的)のIDである。各場面において各エージェントに対して複数の行動目的を設定できる。
「達成期限」は、各場面のエージェントの各行動目的に対する達成期限であり、当該エージェントの生成時刻以降の仮想時刻が指定される。
「希望達成度」は、各場面のエージェントの各行動目的の達成に対する優先度合いである。例えば、希望達成度は、行動目的を達成したことによってエージェントが得ることができる主観的な満足度合い(効用)であってよい。希望達成度が高い行動目的ほど優先度合いが高い。
【0033】
「終端目的フラグ」は、各場面での行動の最後に必ず達成すべき行動目的を示すフラグである。終端目的フラグに値「1」が設定された行動目的は、その達成順序が最後の行動目的であると制約される。一方で、終端目的フラグに値「0」が設定された行動目的は、達成の順序は任意であり且つ達成するか否かは任意である。
「達成フラグ」は、各場面のエージェントの各行動目的が達成されたか否かを表すフラグである。達成フラグの初期値は「0」であり、値「0」は未達成、値「1」は達成済みを示す。
【0034】
図6の例は、「幕間1」の「エージェント#1」は、最後に「着席」を達成することを必達条件として、「用便」を「3分後」までに達成し、且つ「着席」と「買い物」を「10分後」までに達成することを目標としており、「着席」「用便」「買い物」の希望達成度はそれぞれ「35」「100」「40」であり、いずれの行動目的も未達成であること等を示している。
【0035】
図7のエージェント情報122は時刻毎に生成される情報である。エージェント情報122は、エージェントIDと仮想時刻との組合せに対応付けて、「目的地ID」、「局所経路」、「移動速度」、「位置」および「状況」の組合せを含む。
「目的地ID」は、仮想時刻が示す時点の各エージェントが移動の目標としている目的地のIDを示す。なお、第1実施形態のシミュレータ1の例では、生成時刻における目的地IDは空欄としている。
「局所経路」は、仮想時刻が示す時点の各エージェントが移動している局所経路を示す。なお、第1実施形態のシミュレータ1の例では、生成時刻および移動していない時刻における局所経路は空欄としている。
【0036】
「移動速度」は、仮想時刻が示す時点の各エージェントが単位時間(1仮想時刻)で移動しようとする移動量を示す。
図7のエージェント情報122の例では移動速度をベクトルで表現している。
移動速度は、あくまで各エージェントが意図する移動量であって、必ずしも仮想時刻が示す時点にエージェントが移動する移動量と一致するとは限らない。例えば、エージェント間の物理的な制約等によって、現時刻の位置が前時刻の位置に現時刻の移動速度を加えた値にならない場合もある。
また、便宜上、生成時刻における移動速度と、目的地に到達してから当該目的地で達成可能な行動目的を達成するまでの移動速度は0ベクトルとする。
【0037】
「位置」は、仮想時刻が示す時点の各エージェントの対象空間における位置である。各エージェントの位置の初期値は、上述したエージェント情報120を参照して当該エージェントの生成時刻に設定された初期位置である。
目的地に到達してから当該目的地で達成可能な行動目的を達成するまでは目的地の代表点の座標が設定される。
【0038】
「状況」は、仮想時刻が示す時点の各エージェントの状況であり、取り得る値は「移動中」「待機中」「処理中」「達成」である。
「移動中」は、目的地に未到達であり移動中であることを示す。
「待機中」は、目的地に到達したがサービス待ちであることを示す。
「処理中」は、目的地にてサービスを受けていることを示す。
「達成」は、目的地にてサービスを受け終わり行動目的を達成したことを示す。
第1実施形態のシミュレータ1の例では、便宜上、生成時刻における状況として「達成」を指定する。
【0039】
図7の例は、シミュレーション終了時点のエージェント情報122を例示している。
例えば「幕間1」の「エージェント#1」が「女子トイレ1」「売店2」「客席」の順に移動して、時刻「2909」「2969」において「売店2」「客席」で行動目的を達成したことが、その間の各時刻の移動速度、位置および状況とともに記録されている
また、その過程において、時刻「1322」から「2686」まで「売店2」でサービス待ちであったこと、時刻「2687」から「2908」までサービスを受けたことが記録されている。
【0040】
図8のエージェント情報123はサービスを受け終わったか否かを判定するために、行動模擬手段52により必要に応じて生成される。エージェント情報123は、エージェントIDに対応付けて、サービス完了時刻を含んでいる。エージェント情報123に含まれている情報は、該当するエージェントが現時刻の目的地でサービスを受けている間、保持され、サービスが完了すると消去される。
【0041】
「エージェントID」は、目的地でサービスを受けているエージェント(つまり状況が「処理中」のエージェント)を示す。サービスを受けている目的地はエージェント情報122により特定できる。
「サービス完了時刻」は、当該目的地にて当該エージェントがサービスを受け終わる時刻である。
図8のエージェント情報123には、
図4の空間情報111に例示した売店1~5のキューの先頭のエージェント#9、#34、#76、#5、#36などに対してサービス完了時刻が保持されている。
【0042】
エージェント情報121に含まれる達成フラグ、並びに、エージェント情報122に含まれる位置および状況は、状態値の一例であり、エージェントの状態を表す。
エージェント情報121に含まれる行動目的、行動目的毎の達成期限、行動目的毎の希望達成度および行動目的毎の終端目的フラグ、並びに、エージェント情報122に含まれる目的地、局所経路および移動速度は、行動パラメータの一例である。行動パラメータは、エージェントの状態値に作用するパラメータである。
なお、
図5~
図8に示したエージェント情報120、121、122及び123は、あくまで一例であり、本発明のエージェント情報の構成はこれに限定されるものではない。
【0043】
図2を参照する。統計情報記憶手段43はエージェント情報記憶手段42とともに、群集を構成する複数のエージェントのそれぞれに関する情報を記憶する。
統計情報記憶手段43が記憶する情報は、各目的地において行動目的を達成するのに要する所要時間に関する統計情報である。かかる統計情報を、エージェント毎に記憶することにより、実世界の各個体が所要時間について有する知識の違いを模擬することができる。すなわち、統計情報記憶手段43は、エージェント毎に、複数の目的地で行動目的を達成するのに要する各々の所要時間に関する統計情報を記憶する。
【0044】
行動目的毎の所要時間は、目的地に至る移動時間と、目的地における待ち時間と、目的地におけるサービス時間の和であると定義する。
目的地における待ち時間は、当該目的地における待ち数を当該目的地のサービス窓口数で除した結果と、サービス時間との積で算出されるとモデル化する。
【0045】
また、目的地に至る移動時間は、目的地に至る各局所経路の経路長を当該局所経路の移動速度で除した結果を総和することによって算出されるとモデル化される。
このため、統計情報記憶手段43は、エージェント毎に、目的地毎の待ち数の確率分布(待ち数分布)、目的地毎のサービス時間の確率分布(サービス時間分布)、局所経路毎の移動速度の確率分布(移動速度分布)を統計情報として記憶している。
例えば待ち数分布、サービス時間分布、移動速度分布のそれぞれを正規分布でモデル化する。そして各分布を観測値で更新するために待ち数分布、サービス時間分布、移動速度分布のそれぞれの正規分布のパラメータの同時確率分布を用いる。統計情報記憶手段43は、待ち数分布、サービス時間分布、移動速度分布のそれぞれ同時確率分布のパラメータである平均値μ、自由度ν、仮説的標本数κ、尺度母数λの4パラメータを記憶する。同時確率分布をΝ・χ―2(μ,ν,κ,λ)と表記する。
【0046】
これら待ち数分布、サービス時間分布および移動速度分布の初期値は、条件設定手段20を介して予め設定される。初期値は、経験や一般常識、実測した統計情報などを基に作成してよい。全エージェントに共通の初期値としてもよいし、エージェント毎に異なる初期値としてもよい。
また、エージェントと所要時間の組合せの一部を設定せず、当該組合せについて統計情報記憶手段43が記憶しない初期設定としてもよい。これにより、例えばエージェント#1が売店4の存在を知らないというような、実世界の個体における知識の欠落を模擬することができる。
本実施形態では、エージェント毎に各行動目的に対応する1以上の目的地に関する分布(待ち数分布、及びサービス時間分布)の初期値を記憶する初期設定とする。記憶される目的地は事前のランダム抽選により決定しておく。また、本実施形態では、局所経路に関してはエージェントと局所経路の全組合せについて局所経路に関する分布(移動速度分布)の初期値を記憶する初期設定とする。
また、本実施形態において統計情報記憶手段43は、エージェント毎の情報とは別に、目的地毎に当該目的地に関する分布の初期値を記憶する。この情報は各エージェントが目的地を初めて観測したときの初期値として利用される。
【0047】
後述するように、各エージェントの統計情報は、当該エージェントの行動に伴って得られる観測値によって個々に更新及び参照される。これにより、実世界において個体の経験知が個々に異なるがごとく、仮想時間が経過するに従って互いに異なるものとなる。
また、統計情報記憶手段43は、エージェントと所要時間の組合せのうちの記憶していない組合せについて(すなわち、エージェントが知らない目的地や局所経路について)、観測値が得られた時点で追加して記憶することで、実世界の個体における新たな知識の獲得を模擬してもよい。
【0048】
図9に、統計情報記憶手段43に記憶される統計情報130及び131の一例を示す。
統計情報130は、エージェントIDと目的地IDの組合せに対応付けられた「待ち数分布」と「サービス時間分布」を含む。
「待ち数分布」と「サービス時間分布」は、それぞれ当該エージェントが、当該目的地について記憶している「待ち数分布」と「サービス時間分布」の同時確率分布である。
図9の統計情報130の例では、エージェント#1について、客席、女子トイレ1、男子トイレ1、売店1、売店2および売店3の待ち数分布およびサービス時間分布が記憶され、女子トイレ2、男子トイレ2、売店4および売店5の分布は記憶されていない。
統計情報131は、エージェントIDと局所経路の組合せに対応付けられた「移動速度分布」を含む。「移動速度分布」は、当該エージェントが、当該局所経路について記憶している「移動速度分布」の同時確率分布である。
【0049】
図2を参照する。評価値算出手段50は、各場面(幕間)において各エージェントが行動目的を達成する目的地を選択するにあたって選択の基準とする評価値を算出する。
上記の通り、各場面においてエージェントが達成すべき行動目的が複数設定することがあるため、各場面において達成すべき行動目的は、複数設定された行動目的の順列(以下「行動パターン」と表記する)によって表現される。
また、同じ行動目的を達成できる複数の目的地が存在することがある。この場合には各々行動目的を達成する目的地には複数の選択肢がある。
評価値算出手段50は、各行動パターンに対して選択しうる目的地の選択肢毎に評価値を算出する。そして、エージェントと選択肢と評価値とを対応付けた評価値情報を目的地選択手段51に出力する。なお、行動パターンに対して選択しうる目的地の選択肢は目的地の順列となり、以下その順列を「目的地パターン」と表記する。
【0050】
そのために、まず、評価値算出手段50は行動パターンの情報を生成する。具体的には、評価値算出手段50は、エージェント情報121に記憶されているエージェントIDと生成時刻(各場面)の組合せのうち達成フラグが0である行動目的IDを有する各組合せについて、当該組合せに対応付けられた行動目的IDの中から達成フラグが0である行動目的IDを順に並べた順列を生成する。ただし、評価値算出手段50は、終端目的フラグが設定された行動目的を順列の最後に設定する。
例えば、
図6のエージェント情報121におけるエージェント#1であれば、仮想時刻が0の時の行動パターンは、P
1={用便,買い物,着席}、P
2={買い物,用便,着席}、P
3={用便,着席}、P
4={買い物,着席}、P
5={着席}の5通りとなる。
【0051】
次に、評価値算出手段50は目的地パターンの情報を生成する。具体的には、評価値算出手段50は、各行動パターンについて、空間情報111において「達成可能な行動目的」が当該行動パターンの各要素と合致し、性別制限を満たし、当該行動パターンが生成されたエージェントの統計情報130に記憶されている目的地IDを、当該行動パターンの各要素に対する目的地IDの選択肢とする。そして、評価値算出手段50は、各行動パターンについて、当該行動パターンの各要素に対して取得した選択肢から目的地IDを1つずつ選択し、選択された目的地IDを当該行動パターンの各要素の順で並べた目的地IDの順列を目的地パターンとして生成する。評価値算出手段50は、特許請求の範囲に記載の「組合せ選択手段」の一例である。
例えば、
図6のエージェント情報121における幕間1のエージェント#1の行動パターンP
1={用便,買い物,着席}に対し、
図4の空間情報111および
図9の統計情報130を参照して生成される目的地パターンは、M
11={女子トイレ1,売店1,客席}、M
12={女子トイレ1,売店2,客席}、M
13={女子トイレ1,売店3,客席}の3通りとなる。
【0052】
そして、評価値算出手段50は、目的地パターン毎の評価値Eを次式(1)~(4)に従って算出する。
【数1】
【数2】
【数3】
【数4】
【0053】
式(1)において、P
iは評価値を算出する対象のエージェントの各場面での行動パターンのうちi番目の行動パターンであり、M
ijは行動パターンP
iに対応する目的地パターンのうちのj番目の目的地パターンであり、N
iは行動パターンP
iに含まれる行動目的数である。
P
isは、行動パターンP
iの第s要素(すなわちs番目に実行する行動目的)を示す。
m
ijsは、目的地パターンM
ijの第s要素(すなわちs番目の目的地)を示す。
p(P
is,m
ijs)は、行動目的P
isの達成期限までに、行動目的P
isを目的地m
ijsで達成する確率である。以下、この確率を成功確率と称する。上記の通り、行動目的P
isの達成期限は、エージェント情報121として設定されており、
図6に示すとおり、エージェント毎に、各場面で達成すべき行動目的の行動目的ID毎にそれぞれ達成期限が指定されている。成功確率p(P
is,m
ijs)の算出方法の詳細は後述する。
【0054】
式(1)においてV(P
is)は、行動目的P
isの希望達成度である。上記の通り、希望達成度V(P
is)は、エージェント情報121として設定されており、
図6に示すとおり、エージェント毎に、各場面で達成すべき行動目的の行動目的ID毎にそれぞれ希望達成度V(P
is)が指定されている。
例えば、
図6のエージェント情報121における幕間1のエージェント#1の行動パターンP1に対する希望達成度は、s=1のとき100、s=2のとき40、s=3のとき35である。
【0055】
つまり、評価値は達成しようとする複数の行動目的に対応した各目的地の成功確率を当該目的地に対応する行動目的の希望達成度で重み付けて総和して算出できる。
なお、別の実施形態として希望達成度による重み付けを省略することもできる。
また、さらに別の実施形態として、重み付け成功確率の総和、または成功確率の総和に代えて、重み付け成功確率の積、または成功確率の積など、成功確率が高いほど評価値が高くなる他の増加関数を定義して用いることもできる。
【0056】
式(1)についての上記説明をまとめると次のようになる。
評価値算出手段50は、エージェント毎に、統計情報記憶手段43に記憶された統計情報に基づいて、行動目的Pisの達成期限までに複数の目的地mijsで行動目的Pisを達成する各々の成功確率p(Pis,mijs)を予測し、成功確率p(Pis,mijs)に応じて評価値Eを算出する。
このとき、複数の行動目的Pisを達成しようとするエージェントの目的地を選択するために、複数の目的地mijsの中から複数の行動目的Pisの各々を達成する目的地mijsの組合せである目的地パターンMijを複数選択して、目的地パターンMijに属する目的地mijsで複数の行動目的Pisをそれぞれ達成する確率p(Pis,mijs)に応じて評価値Eを算出する。
また、評価値算出手段50は、行動目的に対する優先度をエージェント毎に異ならせたことに関連して、エージェントによる優先度の違いに応じた目的地選択を可能とするために、複数の行動目的Pisの各々を達成する確率p(Pis,mijs)を複数の行動目的の希望達成度V(Pis)で重み付けて評価値Eを算出する。
【0057】
以下、式(2)~(4)が示す成功確率p(Pis,mijs)の算出方法について一例を説明する。
はじめに、評価値算出手段50は、式(3)及び式(4)を利用するために、目的地パターンMijに含まれる各目的地(mij1,mij2,…)において、各行動目的(Pi1,Pi2,…)を実行する場合の所要時間Tdの確率分布である所要時間分布(f1(Td),f2(Td),…)を算出する。
【0058】
ここで、所要時間分布fs(Td)は、s-1番目の目的地mij(s-1)からs番目の目的地mijsまで移動する際の移動時間分布と、目的地mijsでの待ち時間分布と、目的地mijsでの行動目的の達成に係るサービス時間分布の和で定義される。ただし、mij0はエージェントの現在位置である。
また、同時確率分布のパラメータ(平均値μ、自由度ν、仮説的標本数κ、尺度母数λ)とそれが表す正規分布N(μ,σ2)の間には分散σ2=λ/(ν-2)の関係がある。
また、各分布を正規分布で表した場合、和の分布の平均値は元の分布の平均値同士の和となり、和の分布の分散は元の分布の分散同士の和となる。
【0059】
fs(Td)の算出のために評価値算出手段50は移動時間分布を算出する。評価値算出手段50は、目的地mij(s-1)から目的地mijsまでに経由する局所経路の移動速度分布の同時確率分布のパラメータを統計情報記憶手段43が記憶している処理対象のエージェントの統計情報131の中から読み出し、読み出したパラメータから各局所経路の移動速度分布を表す正規分布を導出する。評価値算出手段50は、各局所経路の移動速度分布における速度軸を当該局所経路の距離との除算で時間軸に変換することにより各局所経路の移動時間分布を得、これら局所経路の移動時間分布を総和して目的地までの移動時間分布を算出する。
【0060】
fs(Td)の算出のために評価値算出手段50は待ち時間分布も算出する。評価値算出手段50は、目的地mijsの待ち数分布とサービス時間分布の同時確率分布のパラメータを統計情報記憶手段43が記憶している処理対象のエージェントの統計情報130の中から読み出すとともに目的地mijsのサービス窓口数を読み出す。評価値算出手段50は、読み出したパラメータから待ち数分布とサービス時間分布を表す正規分布を導出する。評価値算出手段50は、待ち数分布の平均値(これが待ち数となる)を読み出したサービス窓口数で除した結果にサービス時間分布を乗じて待ち時間分布を算出する。なお、平均値に代えて最頻値を用いてもよく、或いは待ち数分布が示す確率で当選するランダム抽選により決定した値を用いてもよい。また、目的地の待ち数は、処理対象のエージェントが現時刻に観測した値とすることもできる(該当する観測値が得られている場合に限る)。また、数時刻の間、目的地の待ち数の観測値を記憶部4に保持し、保持している値を利用してもよい。
【0061】
fs(Td)の算出のために評価値算出手段50はサービス時間分布も算出する。評価値算出手段50は、目的地mijsのサービス時間分布の同時確率分布のパラメータを統計情報記憶手段43が記憶している処理対象のエージェントの統計情報130の中から読み出し、読み出したパラメータからサービス時間分布を表す正規分布を導出する。
そして、評価値算出手段50は、sごとの移動時間分布と待ち時間分布とサービス時間分布との和を当該sについての所要時間分布fs(Td)として算出する。
【0062】
次に、評価値算出手段50は、式(4)に従って行動目的Pisの達成期限Tlim(PiS)までの残り時間Tr(Pis)を算出する。
s=1のときの残り時間、すなわち、行動パターンPiの1番目の行動目的Pi1の達成期限Tlim(Pi1)までの残り時間Tr(Pi1)はスカラとなる。評価値算出手段50は、s=1の場合、達成期限Tlim(Pi1)から現在時刻tcを減じた差を残り時間Tr(Pi1)として算出する。
s>1のときの残り時間、すなわち、行動パターンPiの2番目以降の行動目的Pi2、Pi3、…の達成期限までの残り時間は確率分布となる。つまり、2番目以降の行動目的Pi2、Pi3、…を達成するために残された時間は、その行動目的よりも前に実行される行動目的の所要時間T1
d,…,Ts-1
dに左右され、行動目的の所要時間T1
d,…,Ts-1
dは各々所要時間分布f1(Td)~fs-1(Td)に従う確率変数として定義されるから、2番目以降の行動目的Pi2、Pi3、…の残り時間Trもまた確率分布に従う確率変数として算出される。この確率分布を残り時間分布gs(Tr)と定義する。なお、所要時間分布が正規分布である本実施形態においては、残り時間分布もまた正規分布となる。
評価値算出手段50は、s>1の場合、s番目の行動目的Pisの達成期限Tlim(Pis)と現在時刻tcとの差を求め、さらに1番目からs-1番目の行動目的Pi1~Pi(s-1)の達成にかかる所要時間分布f1(Td)~fs-1(Td)の総和を求める。求めた分布を総和分布と称する。そして、評価値算出手段50は、上記差から上記総和分布の平均値を減じた値と、上記総和分布の分散を用いて残り時間分布gs(Tr)を算出する。つまり、残り時間分布gs(Tr)の平均値は上記差から上記総和分布の平均値を減じた値であり、残り時間分布gs(Tr)の分散は上記総和分布の分散である。
【0063】
次に、評価値算出手段50は、式(2)及び式(3)に従って成功確率p(Pis,mijs)を算出する。成功確率は、達成期限までに行動目的を達成する確率であるから「行動目的を達成するまでの所要時間が残り時間以下になる確率」と定義できる。
【0064】
s=1の場合、式(4)により算出した残り時間T
r(P
i1)がスカラであるから、式(3)が表す値F
s(T
r)も式(2)が表す成功確率p(P
i1,m
ij1)もスカラとなる。具体的には、評価値算出手段50は、所要時間分布f
s(T
d)が表す確率密度を所要時間T
dについて-∞から残り時間T
rの範囲で積分して得られる積分値F
s(T
r)を成功確率p(P
i1,m
ij1)として算出する。
本実施形態においては、積分値F
s(T
r)は、所要時間分布f
s(T
d)が正規分布であるため、式(3)に示すように所要時間分布f
s(T
d)の平均値μと分散σ
2と残り時間T
r(式(4)により算出したT
r(P
i1))とから算出することができる。式(3)におけるerfは誤差関数である。そして、式(2)に示すように、式(3)で算出した積分値F
s(T
r)がそのまま成功確率p(P
i1,m
ij1)となる。
図10の(a)は、1番目の行動目的P
i1の達成に要する所要時間分布f
1(T
d)の一例を示し、
図10の(b)は、所要時間分布f
1(T
d)の累積分布関数F
1(T
r)を示す。図中のμ
1は所要時間分布f
1(T
d)の平均値であり、所要時間がT
r(P
i1)のときの累積分布関数F
1(T
r)の値が成功確率p(P
i1,m
ij1)である。
【0065】
s>1の場合、式(4)により算出した残り時間Tr(Pis)は分布gs(Tr)になる。このため、成功確率p(Pis,mijs)は、式(2)に示すように、s-1番目までの行動目的を終えた時点での残り時間がTr(Pis)となる確率gs(Tr)に、残り時間Tr(Pis)でs番目の行動目的を達成できる確率Fs(Tr)を乗じて得られる確率を残り時間Trについて-∞から∞の範囲まで積分して得られる値となる。その際の確率Fs(Tr)は式(3)で算出される。
【0066】
この数式は解析的に解くことができないため、第1実施形態の評価値算出手段50は、例えば以下に説明するように数値解析的に成功確率p(Pis,mijs)を算出する。具体的には、サンプリング法によって残り時間の確率密度分布gs(Tr)の標本を抽出し、サンプリングで得られた標本と、s番目の行動目的Pisの達成に要する所要時間分布fs(Td)とに基づいて、成功確率p(Pis,mijs)を算出する。
本実施形態においては、評価値算出手段50は、s番目(s=2、3、…)の行動目的Pisの達成期限までの残り時間分布gs(Tr)を、任意の時間間隔で離散化してヒストグラムを算出する。
【0067】
図11の(a)は、残り時間分布g
s(T
r)の一例を示し、
図11の(b)は、残り時間分布g
s(T
r)のヒストグラムを示す。
図11の(c)は、s番目の行動目的P
isの達成に要する所要時間分布f
s(T
d)の累積分布関数F
s(T
r)を示す。図中のμ
remは、残り時間分布g
s(T
r)の平均値であり、μ
sは、所要時間分布f
s(T
d)の平均値である。
評価値算出手段50は、ヒストグラムの各ビン(各区間)b1~b5の生起確率(度数)と、各ビンb1~b5の代表値T
r1~T
r5の累積分布関数値F
s(T
r1)~F
s(T
r5)の積和を、成功確率p(P
is,m
ijs)として算出する。なお、ビンb1の生起確率は、ビンの幅をwとすると、残り時間分布g
s(T
r)の-∞からビンb1の右端T
r1+w/2までの積分値から残り時間分布g
s(T
r)の-∞からビンb1の左端T
r1-w/2までの積分値を減じることで算出できる。他のビンの生起確率も同様である。また、残り時間分布g
s(T
r)が正規分布である本実施形態において、式(3)と同様、ビンの右端までの積分値は時刻g
s(T
r)の平均値μおよび分散σ
2とビンの右端の時刻とを誤差関数に適用して算出でき、ビンの左端までの積分値はg
s(T
r)の平均値μおよび分散σ
2とビンの左端の時刻とを誤差関数に適用して算出できる。
【0068】
なお、上記の2番目以降の行動目的Pisの成功確率p(Pis,mijs)の算出方法は、あくまでも例示であって本発明はこれに限定されるものではない。他のサンプリング法を利用して近似計算を行う等の数値解析的な手法によって、成功確率p(Pis,mijs)を算出してもよい。例えば、ボックス=ミュラー法(対象分布が正規分布の場合)や棄却サンプリング法,MCMC法等のサンプリング法を用いることができる。
【0069】
式(2)~式(4)についての説明をまとめると次のようになる。
評価値算出手段50は、行動パターンPiに対応する目的地パターンMij毎に、目的地パターンMijに属する目的地mijsで行動目的Pisを達成期限までに各々達成する確率p(Pis,mijs)の合計を、複数の行動目的Pisの各々を達成するのに要する所要時間Tdの確率密度分布fs(Td)に基づいて予測する。
また、評価値算出手段50は、複数の行動目的Pisのうち先に達成する行動目的の所要時間の確率密度分布f1(Td)~fs-1(Td)と達成期限に応じて残り時間の確率密度分布gs(Tr)を決定し、残り時間の確率密度分布gs(Tr)に基づいて、後に達成する行動目的を達成期限までに達成する確率p(Pis,mijs)を予測する。
また、評価値算出手段50は、残り時間分布gs(Tr)のヒストグラムと、後に達成する行動目的を達成するのに要する所要時間分布fs(Td)の累積分布関数とに基づいて、ヒストグラムの各区間におけるヒストグラムの度数と累積分布関数の確率との積の合計を、確率p(Pis,mijs)として算出する。
また、評価値Eは、確率p(Pis,mijs)に応じて算出されるため、目的地での待ち時間が短いほど評価値Eは高くなる。
【0070】
評価値算出手段50は、上記の評価値Eを、エージェントの行動を決定する所定のタイミング(以下「行動決定タイミング」と表記する)が到来した時点で算出する。
行動決定タイミングは、例えば、各エージェントの生成時刻、行動目的の達成時(但し最後の行動目的を除く)、予め定めた行動決定間隔(例えば10仮想時刻)のいずれかが到来したタイミングであってよい。
【0071】
具体的には、評価値算出手段50は、エージェント情報120から対象空間に現存する「現存エージェント」を検出する。現存エージェントは、現在の仮想時刻(以下、現時刻)よりも前に生成され、且つ終端目的フラグが1であり、且つ達成フラグが0である行動目的IDが設定されているエージェントである。
評価値算出手段50は、エージェント情報122にて1時刻前の状況が「達成」であるエージェントを検出することにより、生成時刻の直後、行動目的を達成した直後の現存エージェントの行動決定タイミングが到来したことを判定する。
また、現時刻と生成時刻の差が行動決定間隔の倍数であることを以って、全ての現存エージェントに対して行動決定タイミングが到来したことを判定する。
【0072】
図2を参照する。目的地選択手段51は、評価値算出手段50から入力された評価値情報に基づいてエージェント毎に目的地を選択し、選択した目的地をエージェントIDと対応付けてエージェント情報記憶手段42内のエージェント情報122に記憶する。
具体的には、例えばエージェント毎に評価値が最高の目的地パターンM
ijを選択し、選択した目的地パターンM
ijにおける1番目の目的地のIDを、エージェントIDおよび現時刻と対応付けた現時刻データを新たに生成して、エージェント情報122に追記する。
現時刻が行動決定タイミングではない現存エージェントについては、1時刻前の目的地IDを、エージェントIDおよび現時刻と対応付けた現時刻データを新たに生成して、エージェント情報122に追記する。
【0073】
また例えば、各目的地パターンMijの評価値Eの高さに応じた確率で当選する抽選を行って、当選した目的地パターンを選択してもよい。
また例えば、各目的地パターンMijの評価値Eの順位に応じた確率で当選する抽選を行って、当選した目的地パターンを選択してもよい。この場合、順位と確率の関係は予め定めておく。
【0074】
上記のように、評価値が最高の目的地を選択する方法は現実世界の個体が行う合理的な選択行動に相当する。一方で、ランダム抽選で目的地を選択する方法は現実世界の個体が行う直感的な選択行動に相当する。これら、2つの方法のいずれを用いるかをエージェント毎に抽選して当選した方法によって目的地を選択してもよい。また、これら2つの方法のいずれを用いるかをエージェント毎に割り当てておき割り当てられた方法によって目的地を選択してもよい。
【0075】
図2を参照する。行動模擬手段52は、各仮想時刻tにおいて、空間情報記憶手段41が記憶している空間情報111およびエージェント情報記憶手段42が記憶しているエージェント情報を参照する。行動模擬手段52は、これらの情報に基づいて、選択した目的地へ複数のエージェントの各々が移動して行動目的を達成する行動を模擬する。
行動模擬手段52は、生成時刻が到来したエージェントを現存エージェントとして生成する。
【0076】
行動模擬手段52は、生成時刻が現時刻と一致するエージェントIDをエージェント情報120から読み出し、当該エージェントID、現時刻、初期位置及び状況「達成」を対応付けた現時刻データを生成して、エージェント情報122に追記する。
行動模擬手段52は、終端目的フラグが1である行動目的の達成フラグが1に更新されたエージェントを消去する。なお、第1実施形態のシミュレータ1では、エージェントを明示的に消去するのに代えて、次の仮想時刻以降のデータをエージェント情報122に追記しない。
【0077】
行動模擬手段52は、エージェント情報122から、現時刻のデータが記憶されているエージェント(すなわち現存エージェント)の状態を更新する。上記のとおり、現存エージェントについては目的地選択手段51によって現時刻のデータが生成されている。
行動模擬手段52は、現存エージェントの1時刻前のデータと現時刻のデータを抽出する。
【0078】
1時刻前の状況が「移動中」または「達成」である場合、行動模擬手段52は、当該エージェントの移動速度を算出して位置を更新する。
具体的には、行動模擬手段52は現時刻におけるエージェントの移動速度と位置を決定する。まず、行動模擬手段52は、空間情報111から、該当する各エージェントの現時刻tにおける目的地の代表点と、移動可能領域と、経由点を読み出す。
【0079】
行動模擬手段52は、移動可能領域内において、該当するエージェントiの1時刻前の位置xi(t-1)と代表点を結ぶ経路、および任意の経由点を介して位置xi(t-1)と代表点を結ぶ経路のうちの最短経路を選択する。
次に、行動模擬手段52は、選択した最短経路上の経由点と代表点のうちの位置xi(t-1)から最も近い点に向かい、大きさがエージェント基本速さに等しいベクトルを、目的地に近付ける移動速度として算出する。
【0080】
次に、行動模擬手段52は、位置xi(t-1)に、算出した移動速度を加算することによってエージェントiの現時刻の位置xi(t)を求めてエージェント情報122を更新する。なお、このとき、処理対象のエージェントとその近傍の壁や他のエージェントにソーシャルフォース(Social Force)モデルやRVO(Reciprocal Velocity Obstacles)等の歩行モデルを適用して移動速度を調整した上で加算するのが好適である。
【0081】
そして、現時刻の位置が目的地の代表点と一致しないエージェントについては、エージェント情報122における現時刻の状況を「移動中」に更新する。
一方で、現時刻の位置が目的地の代表点と一致したエージェント(目的地に到達したエージェント)については、以下のとおり、目的地のキュー(目的地に滞在しているエージェントの待ち行列)と状況を更新する。
【0082】
まず、空間情報111から現時刻の目的地のキューとサービス窓口数を読み出す。読み出したキューに目的地に到達したエージェントのIDを追加して空間情報111を更新する。
このとき、追加後のキュー内のエージェント数がサービス窓口数以下であればエージェント情報122における現時刻の状況を「処理中」に更新する。
さらに、空間情報111から当該目的地に関するサービス時間分布を読み出し、読み出した正規分布にボックス=ミュラー法を適用して当該目的地におけるサービス時間を算出する。
【0083】
すなわち、乱数を生成し、読み出した正規分布と乱数とを用いた抽選によって、当該正規分布に従った生起確率でランダムにサービス時間を決定する。
目的地に到達したエージェントのIDと、算出したサービス時間を現時刻に加算したサービス完了時刻の組をエージェント情報123に追記する。
一方で、追加後のキュー内のエージェント数がサービス窓口数より多ければエージェント情報122における現時刻の状況を「待機中」に更新する。
【0084】
1時刻前の状況が「待機中」であるエージェント(待機中のエージェント)については、行動模擬手段52は、現時刻における移動速度を0とし、1時刻前の位置を維持する。
また、他のエージェントが処理されることによって、キュー内における待機中のエージェントの順序がサービス窓口数以下になった場合には、待機中であったエージェント状況は「処理中」に更新される。それ以外の場合には状況は「待機中」を維持する。
【0085】
1時刻前の状況が「処理中」であるエージェント(処理中のエージェント)については、行動模擬手段52は、エージェント情報123からサービス完了時刻を読み出す。
現時刻がサービス完了時刻に達した場合、行動模擬手段52は、エージェント情報122における現時刻の状況を「達成」に更新する。また、エージェント情報121および空間情報111を参照し、エージェント情報121における、サービス完了時刻に達したエージェントの、生成時刻が現時刻以下、且つ現時刻の目的地に対応する行動目的のうち、現時刻に最も近い行動目的の達成フラグを1に更新する。また、エージェント情報123から当該エージェントのサービス完了時刻のデータを削除する。
【0086】
現時刻がサービス完了時刻に達した場合、行動模擬手段52は、さらに、空間情報111の、サービス完了時刻に達したエージェントがサービスを受けている目的地のキューに対して当該エージェントよりも後の順序のエージェントの順序を1ずつ前にずらす更新を行うとともに、同キューから当該エージェントのエージェントIDを削除する。さらに、行動模擬手段52は、更新後の同キューにおいて順序がサービス窓口数と一致するエージェントに対して、サービス時間を算出して、エージェントIDとサービス完了時刻の組合せをエージェント情報123に追記するとともに、エージェント情報122における当該エージェントの現時刻の状況を「処理中」に更新する。
【0087】
図2を参照する。統計情報更新手段53は、各目的地に係る所要時間の観測値に基づいて統計情報130(待ち数分布、サービス時間分布)及び統計情報131(移動速度分布)を更新する。
統計情報更新手段53は、各エージェントの統計情報130及び131を当該エージェントの所要時間に応じて更新してよい。つまり、エージェントが自身の所要時間を観測したものとみなす。
すなわち、複数のエージェントのうち処理対象のエージェント(対象エージェント)が行動目的を達成するのに要する所要時間の観測値に応じて、対象エージェントについて記憶された統計情報130及び131を更新してよい。
【0088】
また、統計情報更新手段53は、各エージェントの統計情報130及び131を当該エージェントが当該エージェント以外のエージェント(以下、他のエージェント)の所要時間を観測した値に応じて更新してよい。
すなわち、対象エージェントの統計情報130及び131を、他のエージェントが行動目的を達成するのに要する所要時間に関する観測値に応じて更新してよい。
【0089】
統計情報更新手段53は、各エージェントの視認範囲内に存在する目的地や同範囲内に存在するエージェントについて観測値を取得する。そのために統計情報更新手段53は、各エージェントの視認範囲を設定する。視認範囲の角度範囲や視認距離は、各エージェントの状況に応じて変更させてよい。例えば、待機中または処理中の視認範囲を、移動中の視認範囲よりも広く設定してよい。視認範囲の角度範囲や視認距離を、各エージェントの移動速度に応じて変更させてもよい。また、空間情報111を参照し、壁等の障害物に阻まれる領域(死角)を除外して視認範囲を設定する。
具体的には、統計情報更新手段53は、移動中のエージェントについては移動方向の左右90度の範囲から死角を除いた領域を、待機中または処理中のエージェントについては当該エージェント位置を中心とした360度の範囲から死角を除いた領域を、視認範囲として設定する。
【0090】
統計情報とそれを更新するための観測値及び観測タイミングは以下の通りである。
各エージェントの局所経路毎の知識として記憶される移動速度分布を更新するための観測値は、当該局所経路における当該エージェントの移動速度と他のエージェントの移動速度であり、所定の観測間隔(例えば10仮想時刻)で観測される。
本実施形態においては、全エージェントに共通した観測間隔が設定されるが、エージェント毎に異なる観測間隔を設定してもよい。
また、本実施形態においては、各エージェントの観測間隔の起点を当該エージェントの生成時刻とする。全エージェントに共通の起点としてもよい。
【0091】
各エージェントの目的地毎の知識として記憶される待ち数分布を更新するための観測値は、当該目的地における待ち数であり、上記観測間隔でキューを参照することにより観測される。
各エージェントの目的地毎の知識として記憶されるサービス時間分布を更新するための観測値は、当該目的地にて当該エージェントがサービスを受けるのに要したサービス時間であり、当該エージェントが目的地での行動目的を達成した時点で観測される。
【0092】
または、当該エージェントが待機中に位置している目的地における他のエージェントのサービス時間を観測値としてもよい。この場合、当該目的地のキュー内のエージェントの順位が変化した時点に観測値を観測してよい。この場合には、例えば行動模擬手段52が、キューが変化したエージェントと目的地とを統計情報更新手段53に通知し、通知を受けた統計情報更新手段53が通知時刻を記憶部4に記憶させて、前回通知からの経過時間をサービス時間として求める。
【0093】
また、統計情報更新手段53は、各個体が初見の目的地及び局所経路を知識に加える様子を模擬する。
すなわち統計情報更新手段53は、各エージェントの視認範囲内に存在するが、当該エージェントの統計情報130に含まれていない目的地及び当該エージェントの統計情報131に含まれていない局所経路の情報を統計情報130に追加する。
【0094】
具体的には、統計情報更新手段53は、各エージェントの視認範囲内に当該エージェントの統計情報130に含まれていない目的地が存在する場合に、当該エージェントのエージェントIDと当該目的地の目的地IDとの組合せに、待ち数分布、サービス時間分布の同時確率分布のパラメータの初期値を対応付けたデータを統計情報130に追加する。この初期値は上述したように目的地毎の初期値として統計情報記憶手段43が記憶している。
また、統計情報更新手段53は、各エージェントの視認範囲内に当該エージェントの統計情報131に含まれていない局所経路が存在する場合に、当該エージェントのエージェントIDと当該局所経路の両端地点との組合せに、移動速度分布の同時確率分布のパラメータの初期値を対応付けたデータを統計情報131に追加する。この初期値は上述したように目的地毎の初期値として統計情報記憶手段43が記憶している。
【0095】
統計情報更新手段53による同時確率分布のパラメータ(平均値μ、自由度ν、仮説的標本数κ、尺度母数λ)の更新は、例えば次式(5)~(8)で表されるベイズ推定法によって行われてよい。
【0096】
【0097】
【0098】
【0099】
【0100】
上式において、μ0、ν0、κ0、λ0は、統計情報記憶手段43に記憶されている同時確率分布のパラメータでありμ1、ν1、κ1、λ1は、更新後の当該同時確率分布パラメータである。また、Nは観測値数、xaは観測値の平均値である。
【0101】
次に
図12の(a)及び
図12の(b)を参照して、統計情報記憶手段43に記憶される確率分布が統計情報更新手段53によって更新されて、エージェント毎に違いが生じる様子を説明する。
確率分布140及び150は、エージェント#1と#59の売店2のサービス時間分布の初期値を示す。エージェント#1と#59の初期値はいずれもΝ(600, 2500)である。
【0102】
確率分布141及び151は、仮想時刻が経過して統計情報更新手段53により十分に更新された後のエージェント#1と#59の売店2のサービス時間分布を示す。エージェント#1のサービス時間分布141はΝ(480, 25700)となり、エージェント#59のサービス時間分布151はΝ(550, 17100)となっている。すなわち、サービス時間分布141よりもサービス時間分布151の方が平均値が大きく、分散が小さくなっている。
【0103】
このことから、エージェント#1にとっての売店2は、エージェント#59にとっての売店2よりも、平均的には迅速だが、その平均よりも大幅に迅速であったり大幅に遅延したりすることも多い不安定な店舗であることが分かる。この結果、例えば、エージェント#1は、残り時間が少なく他の売店の方が平均的にサービス時間が短い場合には、いちかばちかで売店2を選択するようになる。
一方で、エージェント#59にとっての売店2は、エージェント#1にとっての売店2よりも、平均的にはやや遅いが、サービス時間は安定している店舗であることが分かる。この結果、例えば、エージェント#59は残り時間が550時刻以上ある場合に売店2を選択しやすくなる。
【0104】
このように、同一の目的地であってもエージェントによって、所要時間の情報に差が生じる。同様に、同一エージェントであっても同一行動目的を達成するための目的地間で所要時間の情報に差が生じる。
所要時間の情報に差が生じることによりエージェント間で行動に違いを生じさせることができ、現実世界において個体毎の経験知の差によって行動に違いが生じることを模擬できる。
【0105】
図2を参照する。予測結果出力手段60は、シミュレーションの結果である予測結果を出力する。予測結果は、エージェント情報記憶手段42に記憶されている情報の一部または全部を少なくとも含み、好適には、さらに空間情報記憶手段41に記憶されている情報の一部または全部を含む。
予測結果出力手段60は、例えば、制御部5および表示部6が協働して実現され、記憶部4から読み出した予測結果を、表示部6に表示させる。また、予測結果出力手段60は、予測結果をデータファイルとして出力してもよいし、画像ファイルとして出力してもよいし、画像として表示してもよいし、これらのうちの1以上の形式で出力してもよい。
【0106】
例えば、予測結果出力手段60は、対象空間の地図を画像化するとともに当該画像上の各エージェントの位置と対応する座標にエージェントを表す図形を重畳描画して予測結果の画像を生成し、生成した画像をファイルとして出力し、および/または表示部6に出力する。
予測結果の出力タイミングは、シミュレーションを終えた時点の他に、シミュレーションの途中を含んでもよい。つまり、シミュレーションの途中までに得られた上記情報の一部または全部を中間予測結果として出力してもよい。
【0107】
(動作)
次に、第1実施形態のシミュレータ1によるシミュレーション方法について説明する。
図13は、第1実施形態のシミュレータ1によるシミュレーション方法の全体処理の一例のフローチャートである。
まず、ステップS1において利用者は、シミュレーション条件として模擬条件、空間情報、エージェント情報の初期値、及び統計情報の初期値を設定する。設定は条件設定手段20を通じて行われる。そして、ステップS2において仮想時刻tが0に初期化される。
【0108】
ステップS3においては生成時刻を迎えたエージェントが生成される。具体的には、行動模擬手段52が、現時刻tと同じ生成時刻が設定されたエージェントをエージェント情報120内から探索する。該当するエージェントが検出された場合、当該エージェントのIDを初期位置とともにエージェント情報122に追加する。追加されたエージェントは現存エージェントとなる。
ステップS4において、現存エージェント(仮想時刻よりも前に生成され、且つ達成フラグが0である行動目的IDが設定されているエージェント)が存在するか否かを判定する。現存エージェントが存在する場合(ステップS4:Y)に処理はステップS5へ進む。現存エージェントが存在しない場合(ステップS4:N)に処理はステップS8へ進む。
【0109】
ステップS5では、統計情報更新処理が行われる。統計情報更新処理では、現存エージェントが観測した観測値に基づいて、統計情報記憶手段43に記憶されている統計情報130及び131が更新される。統計情報更新処理の詳細は後述する。
ステップS6では、行動決定処理が行われる。行動決定処理では、エージェント情報121に設定された行動目的と、統計情報130及び131に設定された確率分布に基づいて、エージェントが到達を目指す目的地を選択する。行動決定処理の詳細は後述する。
【0110】
ステップS7では、エージェント状態更新処理が行われる。エージェント状態更新処理では、ステップS6で決定した目的地に応じて現存エージェントの状態を更新する。エージェント状態更新処理の詳細は後述する。
ステップS8では、仮想時刻tを「1」だけ増加する。
ステップS9では、仮想時刻tが模擬条件記憶手段40に記憶されているシミュレーション終了時刻Tに到達したか否かを判定する。仮想時刻tが終了時刻Tに到達した場合(ステップS9:Y)に処理はステップS10へ進む。仮想時刻tが終了時刻Tに到達していない場合(ステップS9:N)に処理はステップS3に戻る。
ステップS10では、シミュレーションの結果である予測結果を出力して、処理終了となる。
【0111】
次に、
図14及び
図15を参照して、ステップS5の統計情報更新処理について説明する。統計情報更新処理は、行動模擬手段52及び統計情報更新手段53によって実行される。
ステップS20において行動模擬手段52は、現存エージェントを順次選択し、処理対象の注目エージェントに設定する。
【0112】
ステップS21において行動模擬手段52は、注目エージェントに関して、統計情報130及び131を更新するための観測値の観測タイミングが到来したかを判定する。観測タイミングが到来した場合(ステップS21:Y)に処理はステップS22へ進む。観測タイミングが到来していない場合(ステップS21:N)に処理はステップS35へ進む。
ステップS22において統計情報更新手段53は、注目エージェントの視認範囲を設定する。統計情報更新手段53は、注目エージェントの統計情報130に含まれていない目的地が視認範囲内に存在するか否かを判定する。
【0113】
統計情報130に含まれていない目的地が視認範囲内に存在する場合(ステップS22:Y)に処理はステップS23へ進む。統計情報130に含まれていない目的地が視認範囲内に存在しない場合(ステップS22:N)に処理はステップS24へ進む。
ステップS23において統計情報更新手段53は、当該目的地のデータを注目エージェントの統計情報130に追加する。その後に処理はステップS24へ進む。
【0114】
ステップS24において統計情報更新手段53は、注目エージェントの統計情報131に含まれていない局所経路が視認範囲内に存在するか否かを判定する。統計情報131に含まれていない局所経路が視認範囲内に存在する場合(ステップS24:Y)に処理はステップS25へ進む。統計情報131に含まれていない局所経路が視認範囲内に存在しない場合(ステップS24:N)に処理はステップS26へ進む。
ステップS25において統計情報更新手段53は、当該局所経路のデータを注目エージェントの統計情報131に追加する。その後に処理はステップS26へ進む。
【0115】
ステップS26において統計情報更新手段53は、注目エージェントの状況が「移動中」であるか否かを判定する。注目エージェントの状況が「移動中」である場合(ステップS26:Y)に処理はステップS27へ進む。注目エージェントの状況が「移動中」でない場合(ステップS26:N)に処理はステップS28へ進む。
ステップS27において統計情報更新手段53は、注目エージェントの移動速度と局所経路を取得し、当該局所経路における速さを算出する。その後に処理はステップS28へ進む。
【0116】
ステップS28において統計情報更新手段53は、注目エージェントの視認範囲内に存在する他のエージェントの状況が「移動中」であるか否かを判定する。視認範囲内の他のエージェントの状況が「移動中」である場合(ステップS28:Y)に処理はステップS29へ進む。視認範囲内の他のエージェントの状況が「移動中」でない場合(ステップS28:N)に処理はステップS30へ進む。
ステップS29において統計情報更新手段53は、移動中であり且つ視認範囲内に存在する他のエージェントの移動速度と局所経路を取得し、当該局所経路における速さを算出する。その後に処理はステップS30へ進む。
【0117】
ステップS30において統計情報更新手段53は、ステップS27またはS29のいずれかで速さを算出したか否かを判定する。速さを算出した場合(ステップS30:Y)に処理はステップS31へ進む。速さを算出しない場合(ステップS30:N)に処理はステップS32へ進む。
ステップS31において統計情報更新手段53は、算出した速さを観測値として用いて、注目エージェントの統計情報131のうち速さを観測した局所経路の移動速度分布を更新する。その後に処理はステップS32へ進む。
【0118】
ステップS32において統計情報更新手段53は、注目エージェントの視認範囲内に目的地いずれかが存在するか否かを判定する。視認範囲内に目的地が存在する場合(ステップS32:Y)に処理はステップS33へ進む。視認範囲内に目的地が存在しない場合(ステップS32:N)に処理はステップS35へ進む。
ステップS33において統計情報更新手段53は、視認範囲内に存在する目的地の待ち数を取得する。ステップS34において統計情報更新手段53は、取得した待ち数を観測値として用いて、注目エージェントの統計情報130のうち待ち数を観測した目的地の待ち数分布を更新する。その後に処理はステップS35へ進む。
【0119】
ステップS35において統計情報更新手段53は、注目エージェントのサービス完了時刻が到来したかを判定する。サービス完了時刻が到来した場合(ステップS35:Y)に処理はステップS36へ進む。サービス完了時刻が到来しない場合(ステップS35:N)に処理はステップS37へ進む。
ステップS36において統計情報更新手段53は、注目エージェントに要したサービス時間を算出する。その後に処理はステップS37へ進む。
【0120】
ステップS37において統計情報更新手段53は、注目エージェントの状況が待機中であればそのキュー内の順序が更新されたか否かを判定する。順序が更新された場合(ステップS37:Y)に処理はステップS38へ進む。順序が更新されない場合(ステップS37:N)に処理はステップS39へ進む。
ステップS38において統計情報更新手段53は、注目エージェントのサービスを待っている目的地で、サービスが完了した他のエージェントに要したサービス時間を算出する。その後に処理はステップS39へ進む。
【0121】
ステップS39において統計情報更新手段53は、ステップS36またはS38のいずれかでサービス時間を算出したか否かを判定する。サービス時間を算出した場合(ステップS39:Y)に処理はステップS40へ進む。サービス時間を算出しない場合(ステップS39:N)に処理はステップS41へ進む。
ステップS40において統計情報更新手段53は、算出したサービス時間を観測値として用いて、注目エージェントの統計情報130のうちサービス時間を観測した目的地(すなわち注目エージェントがサービスを受ける目的地)のサービス時間分布を更新する。その後に処理はステップS41へ進む。
ステップS41において統計情報更新手段53は、全ての現存エージェントについてステップS21~S40の処理を実行したか否かを判定する。全ての現存エージェントについて処理を実行した場合(ステップS41:Y)に、統計情報更新処理は終了する。未処理の現存エージェントが存在する場合(ステップS41:N)に処理はステップS20へ戻る。
【0122】
次に、
図16を参照して、ステップS6の行動決定処理について説明する。行動決定処理は、評価値算出手段50及び目的地選択手段51によって実行される。
ステップS50において評価値算出手段50は、現存エージェントを順次選択し、処理対象の注目エージェントに設定する。
ステップS51において評価値算出手段50は、注目エージェントの行動決定タイミングが到来したか否かを判定する。行動決定タイミングが到来した場合(ステップS51:Y)に処理はステップS52へ進む。行動決定タイミングが到来していない場合(ステップS51:N)に処理はステップS59へ進む。
【0123】
ステップS52において評価値算出手段50は、1つ又は複数の行動パターンPiを生成する。
ステップS53において評価値算出手段50は、行動パターンPiの各々に対して1つ又は複数の目的地パターンMijを生成する。
ステップS54において評価値算出手段50は、目的地パターンMijを順次選択して、処理対象の注目パターンに設定する。
【0124】
ステップS55において評価値算出手段50は、評価値算出処理を行う。評価値算出処理では注目パターンについて評価値Eが算出される。評価値算出処理の詳細は後述する。
ステップS56において評価値算出手段50は、全ての目的地パターンMijが注目パターンに設定されたか否かを判定する。全ての目的地パターンMijが注目パターンに設定された場合(ステップS56:Y)に処理はステップS57へ進む。注目パターンに設定されていない目的地パターンMijが存在する場合(ステップS56:N)に処理はステップS54へ戻る。
【0125】
ステップS57において目的地選択手段51は、評価値に基づいていずれかの目的地パターンMijを選択する。
ステップS58において目的地選択手段51は、選択した目的地パターンMijにおける1番目の目的地のIDを、エージェントIDおよび現在の仮想時刻と対応付けた現時刻データを新たに生成して、エージェント情報122に追記する。その後に処理はステップS60へ進む。
【0126】
一方で、ステップS59において目的地選択手段51は、1時刻前の目的地IDを、エージェントIDおよび現在の仮想時刻と対応付けた現時刻データを新たに生成して、エージェント情報122に追記する。その後に処理はステップS60へ進む。
ステップS60において評価値算出手段50は、全ての現存エージェントについてステップS51~S59の処理を実行したか否かを判定する。全ての現存エージェントについて処理を実行した場合(ステップS60:Y)に行動決定処理は終了する。未処理の現存エージェントが存在する場合(ステップS60:N)に処理はステップS50へ戻る。
【0127】
図17を参照して、ステップS55の評価値算出処理について説明する。評価値算出処理は、評価値算出手段50によって実行される。
ステップS70において評価値算出手段50は、注目パターンに含まれる目的地毎に、目的地で行動目的を達成する場合の所要時間の確率分布である所要時間分布を算出する。
ステップS71において評価値算出手段50は、注目パターンに含まれる目的地の順位を示す変数sを「1」に初期化する。以下のステップS73~S77では、注目パターンに含まれるs番目の目的地で達成期限までに行動目的を達成する各々の成功確率を算出する。また、評価値算出手段50は、評価値Eを「0」に初期化する。
【0128】
ステップS72において評価値算出手段50は、変数sが「1」、すなわち1番目の目的地の成功確率を算出するか否かを判定する。変数sが「1」である場合(ステップS72:Y)に処理はステップS73へ進む。変数sが「1」でない場合(ステップS72:N)に処理はステップS75へ進む。
ステップS73において評価値算出手段50は、1番目の目的地で達成する行動目的の達成期限までの残り時間を算出する。
【0129】
ステップS74において評価値算出手段50は、残り時間と、1番目の目的地で行動目的所要時間分布に基づいて、成功確率を算出する。その後に処理はステップS78へ進む。
一方で、ステップS75において評価値算出手段50は、1番目からs-1番目までの目的地で行動目的達成に要する所要時間分布の合計を算出する。
【0130】
ステップS76において評価値算出手段50は、所要時間分布の合計に基づいて、s番目の目的地で達成する行動目的の達成期限までの残り時間分布を算出する。
ステップS77において評価値算出手段50は、残り時間分布と、s番目の目的地の所要時間分布に基づいて成功確率を算出する。その後に処理はステップS78へ進む。
ステップS78において評価値算出手段50は、ステップS74又はS77で算出した成功確率を希望達成度に乗じた積を評価値Eに加算する。
【0131】
ステップS79において評価値算出手段50は、変数sを「1」だけ増加する。
ステップS80において評価値算出手段50は、注目パターンの中の全ての目的地について、ステップS72~S79の処理を完了したか否かを判定する。全ての目的地について処理を完了した場合(ステップS80:Y)に処理はステップS81へ進む。未処理の目的地が存在する場合(ステップS80:N)に処理はステップS72へ戻る。
ステップS81において評価値算出手段50は、エージェントと注目パターンと評価値を対応付けた評価値情報を目的地選択手段51に出力する。その後に、評価値算出処理は終了する
【0132】
次に、
図18を参照してステップS7のエージェント状態更新処理を説明する。エージェント状態更新処理は、目的地選択手段51と、行動模擬手段52によって実現される。
ステップS90において行動模擬手段52は、現存エージェントを順次選択し、処理対象の注目エージェントに設定する。
ステップS91において行動模擬手段52は、目的地選択手段51が注目エージェントの目的地パターンを新しく選択したか否かを判定する。目的地パターンを新しく選択した場合(ステップS91:Y)に処理はステップS92へ進む。目的地パターンを新しく選択しない場合(ステップS91:N)に処理はステップS93へ進む。
【0133】
ステップS92において目的地選択手段51は、エージェント情報122に行動パラメータとして記憶されている目的地IDを、新しく選択した目的地パターンの先頭にある目的地IDに更新する。その後に処理はステップS93へ進む。
ステップS93において行動模擬手段52は、注目エージェントの状況を更新する。
【0134】
ステップS94において行動模擬手段52は、注目エージェントの状況が「移動中」又は「達成」であるか否かを判定する。状況が「移動中」又は「達成」である場合(ステップS94:Y)に処理はステップS95へ進む。状況が「移動中」又は「達成」でない場合(ステップS94:N)に処理はステップS96へ進む。
ステップS95において行動模擬手段52は、注目エージェントの移動速度を算出して位置を更新する。その後に処理はステップS96へ進む。
【0135】
ステップS96において行動模擬手段52は、注目エージェントが全ての行動目的を達成したか(すなわち、終端目的フラグが1である行動目的を達成したか)否かを判定する。全ての行動目的を達成した場合(ステップS96:Y)に処理はステップS97へ進む。未達成の行動目的が存在する場合(ステップS96:N)に処理はステップS98へ進む。
ステップS97において行動模擬手段52は、注目エージェントを消去する。その後に処理はステップS98へ進む。
ステップS98において行動模擬手段52は、全ての現存エージェントについてステップS91~S97の処理が完了したか否かを判定する。未処理の現存エージェントが存在する場合(ステップS98:N)に処理はステップS90へ戻る。全ての現存エージェントについて処理が完了した場合(ステップS98:Y)にエージェント状態更新処理は終了する。
【0136】
(変形例)
(1)第1実施形態では、所要時間を、移動時間と、待ち時間と、サービス時間の和として定義した。
これに代えて、移動時間を所要時間としてもよい(すなわち待ち時間とサービス時間が0)。これにより、配達のように待ち時間とサービス時間が0とみなせる行動目的についてのシミュレーションを行うことができる。
【0137】
(2)第1実施形態では、行動目的と目的地との関係が1対1および1対多の関係である場合を例示した。行動目的と目的地との関係は、多対1または多対多の関係であってもよい。例えば、同じ目的地で異なるサービス間でサービス時間に差が生じるシチュエーションを模擬することができる。この場合には、行動目的と目的地の組合せ毎にサービス時間分布の統計情報を記憶又は更新することが望ましい。
【0138】
(3)第1実施形態では、評価値算出手段50による評価値算出と目的地選択手段51による目的地選択を、行動決定間隔で繰り返す例を示して説明した。これに代えて、評価値算出と目的地選択を行動決定間隔で繰り返すことを省略してもよい。
この場合、例えば、目的地選択手段51が選択した目的地パターンをエージェント情報記憶手段42に記憶させ、行動模擬手段52は、各エージェントについて記憶されている目的地パターンの先頭の目的地から順次当該エージェントを移動させるように動作してよい。
【0139】
(4)第1実施形態では、行動目的毎に達成期限を設定する例を説明した。これに代えて又はこれに加えて、幕間毎かつエージェント毎に、単一の達成期限(すなわち複数の行動目的に共通の達成期限)を設定してもよい。例えば、幕間の終了時間を達成期限としてもよい。この場合、各幕間のエージェントそれぞれの全行動目的に対して同一の達成期限が設定されたものとして、上記実施形態と同様の処理を行えばよい。
さらには、幕間毎に全エージェントに共通の単一の達成期限を設定してもよい。
【0140】
(5)第1実施形態では、エージェントの視認範囲内に当該エージェントの統計情報130に含まれていない目的地が存在する場合に、当該目的地のデータを当該エージェントの統計情報130に追加する。これに代えて又はこれに加えて、目的地に関する情報をエージェントに知らせる看板等の情報源を対象空間内に設定してもよい。当該エージェントの統計情報130に含まれていない目的地を知らせる情報源がエージェントの視認範囲内の存在する場合に、当該目的地のデータを当該エージェントの統計情報130に追加してよい。同様に、目的地に関する情報を対象空間内に報知するアナウンスをシミュレートしてもよい。当該エージェントの統計情報130に含まれていない目的地を知らせるアナウンスが放送された場合に、当該目的地のデータを当該エージェントの統計情報130に追加してよい。
【0141】
(第2実施形態)
第1実施形態の評価値算出手段50は、所要時間分布を算出する際に、統計情報130に記憶される目的地の待ち数分布に基づいて待ち時間を予測する。また、視認範囲内の目的地については待ち数の観測値から待ち時間を予測している。
しかしながら、目的地に向かう他のエージェントの動きを観測することによって、待ち時間の予測が変わることがある。
そこで、第2実施形態の評価値算出手段50は、処理対象のエージェントの目的地パターンを選択する際に、他のエージェントの行動に基づいて、目的地での待ち時間を予測する。例えば、他のエージェントの移動方向に基づいて目的地での待ち時間を予測する。
【0142】
図19を参照する。いま、参照符号200は、待ち数分布を算出する処理対象の注目エージェント(すなわち、
図16の行動決定処理の注目エージェント)を示し、破線は、注目エージェント200の視認範囲を示す。
参照符号201a~201cは、注目エージェント200の視認範囲内の他のエージェントを示し、参照符号202は、視認範囲外の他のエージェントを示す。
【0143】
また、参照符号203a、204b、205aはそれぞれ目的地VI、VII、VIIIでサービスを受けているエージェントを示し、参照符号203b及び203cは目的地VIでサービスを待っているエージェント、参照符号204bは目的地VIIでサービスを待っているエージェント、参照符号205b及び205cは目的地VIIIでサービスを待っているエージェントを示す。
第2実施形態の評価値算出手段50は、視認範囲内の他のエージェント201a~201cの移動方向に基づいて、目的地VI、VII及びVIIIの待ち数を予測する。
【0144】
第2実施形態の評価値算出手段50は、
図20に示す待ち時間算出手段70を備える。待ち時間算出手段70は、エージェント選択手段71と、視認範囲設定手段72と、移動方向取得手段73と、到達数予測手段74と、待ち時間予測手段75を備える。
待ち時間算出手段70は、現存エージェントの中から、処理対象の注目エージェントを選択する。
【0145】
視認範囲設定手段72は、注目エージェントの視認範囲を設定する。視認範囲の角度範囲や視認距離は、注目エージェントの状況に応じて変更させてよい。例えば、待機中または処理中の視認範囲を、移動中の視認範囲よりも広く設定してよい。
例えば、注目エージェントが移動中であれば移動方向の左右90度の範囲を、待機中または処理中であればエージェント位置を中心とした360度の範囲としてよい。
視認範囲の角度範囲や視認距離を、各エージェントの移動速度に応じて変更させてもよい。また、好適には、空間情報記憶手段41に記憶されている空間情報111を利用し、視認範囲内の壁等の障害物に阻まれる領域を除外して視認範囲を設定する。
【0146】
移動方向取得手段73は、エージェント情報記憶手段42に記憶されているエージェント情報122から、視認範囲内にある他エージェントの移動速度を、他エージェントの移動方向として取得する。
到達数予測手段74は、視認範囲内にある他エージェントの移動方向と、空間情報111に記憶される目的地の代表点とに基づいて、注目エージェントの統計情報130に記憶されている目的地diへ他のエージェントが到達する到達数を予測する。例えば、到達数予測手段74は、次式(9)に基づいて他のエージェントが目的地へ到達する到達数Rdiを予測してよい。
【0147】
【0148】
式(9)において、aは統計情報130に記憶されている目的地d
iへ向かっていると判断される他エージェントである。例えば、到達数予測手段74は、
図19に示すように他エージェント201bの移動方向左右の所定角度θ内に目的地d
iが存在している場合、他エージェント201bは、目的地d
iに向かっていると判断してよい。また、式(9)において、r
aは、注目エージェントの統計情報130に記憶されている目的地のうち他エージェントaの移動方向左右の所定角度θ以内にある全ての目的地数を表す。
【0149】
待ち時間予測手段75は、注目エージェントの統計情報130に記憶されている目的地に対して、待ち時間分布を予測する。待ち時間分布は、目的地の将来待ち数をサービス窓口数で除した結果と、その目的地で行動目的を実行する際にかかるサービス時間分布の積とで算出する。
目的地が注目エージェントの視認範囲に存在する場合、待ち時間予測手段75は、目的地の待ち数に、目的地への到達数を加算した和を目的地の将来待ち数とする。すなわち、目的地に存在する他のエージェント数の観測結果と到達数に基づいて、待ち時間分布を予測する。
【0150】
目的地が注目エージェントの視認範囲に存在しない場合には、注目エージェントの統計情報130に記憶されている当該目的地の待ち人数分布より代表値をサンプリングし、目的地への到達数を代表値に加算した和を目的地の将来待ち数とする。
すなわち、目的地への到達数と、統計情報130に記憶されている目的地における待ち時間の統計情報とに基づいて、待ち時間分布を予測する。
【0151】
次に、
図21を参照して、第2実施形態の評価値算出手段50による所要時間分布算出処理を説明する。
ステップS100において評価値算出手段50は、注目エージェントの統計情報131に記憶されている局所経路の移動速度分布に基づいて、注目パターン(目的地パターン)に含まれる各目的地までの移動に要する移動時間分布を算出する。
【0152】
ステップS101において評価値算出手段50は、注目エージェントの統計情報130に記憶されている目的地でのサービス時間分布に基づいて、注目パターン(目的地パターン)に含まれる各目的地でのサービス時間分布を算出する。
ステップS102において到達数予測手段74は、注目エージェントの統計情報130に記憶されている目的地に向かう他のエージェントの到達数を予測する。
【0153】
ステップS103において待ち時間予測手段75は、目的地に向かうエージェントの到達数と目的地の待ち数の観測値、又は目的地に向かうエージェントの到達数と注目エージェントの統計情報130に記憶されている当該目的地の待ち人数分布の代表値に基づいて、目的地での将来待ち数を予測する。
【0154】
ステップS104において待ち時間予測手段75は、将来待ち数と、サービス窓口数と、サービス時間分布に基づいて目的地における待ち時間分布を算出する。
ステップS105において、評価値算出手段50は、移動時間分布と、サービス時間分布と、待ち時間分布の和を、所要時間として算出する。その後に所要時間分布算出処理は終了する。
【0155】
なお、上記各実施形態においては、待ち数分布、サービス時間分布、移動速度分布やそれに付随する各分布を正規分布として保持する例を示したが、これらの分布をヒストグラムとして保持してもよい。その場合、分布同士の演算は対応するビン同士の演算となり、観測値による分布の更新はビンの値の更新となる。また、各分布を正規分布以外の定式化された分布として保持することもでき、その場合、分布に対する演算をサンプリング法により行うなど、採用する分布に適した演算方法、更新方法を用いればよい。
【0156】
(実施形態の効果)
(1)シミュレータ1は、複数の行動目的を有するエージェントが、所定の空間において複数の目的地にて複数の行動目的をそれぞれ達成する行動を模擬する。
評価値算出手段50は、複数の目的地の中から複数の行動目的の各々を達成する目的地の組合せを複数選択し、目的地の組合せ毎に、組み合わせた目的地で複数の行動目的を達成期限までに各々達成する確率の合計を、複数の行動目的を達成するのに要する各々の所要時間の確率密度分布に基づいて予測し、合計に応じて評価値を算出する。
【0157】
行動模擬手段52は、目的地の複数の組合せの中から評価値に基づいて選択した目的地の組合せを順次訪れるように移動するエージェントの行動を模擬する。
評価値算出手段50は、複数の行動目的のうち先に達成する行動目的の所要時間の確率密度分布と達成期限に応じて残り時間の確率密度分布を決定し、後に達成する行動目的を達成期限までに達成する確率を、残り時間の確率密度分布に基づいて予測する。
【0158】
これにより、行動目的の所要時間に関する個々のエージェントの経験や知識の偏りを反映させて、エージェント自身が、行動目的の所要時間を判断して臨機応変に行動目的や目的地を変更する群集行動を模擬することができる。
【0159】
(2)評価値算出手段は、所定のサンプリング法によって残り時間の確率密度分布の標本をサンプリングし、当該標本と、後に達成する行動目的を達成するのに要する所要時間の確率密度分布とに基づいて、後に達成する行動目的を達成期限までに達成する確率を算出してよい。
これにより、複数の行動目的のうち後に達成する行動目的のための残り時間が確率密度分布となり、後に達成する行動目的を達成する確率の算出式を解析的に解くことができなくても、数値解析的に確率を求めることができる。
【0160】
(3)評価値算出手段は、残り時間のヒストグラムと、後に達成する行動目的を達成するのに要する所要時間の累積分布関数とに基づいて、ヒストグラムの各区間におけるヒストグラムの度数と累積分布関数の確率との積の合計を、後に達成する行動目的を達成期限までに達成する確率として算出してよい。
これにより、複数の行動目的のうち後に達成する行動目的のための残り時間が確率密度分布となり、後に達成する行動目的を達成する確率の算出式を解析的に解くことができなくても、数値解析的に確率を求めることができる。
【0161】
(4)評価値算出手段50は、複数の行動目的の各々を達成する確率を複数の行動目的の効用で重み付けした確率の合計である評価値を算出してよい。
これにより、エージェント毎に異なる行動目的の優先度に応じて目的地を選択する行動を模擬することができる。
【符号の説明】
【0162】
1…シミュレータ、2…操作入力部、3…ファイル入出力部、4…記憶部5…制御部、6…表示部、20…条件設定手段、40…模擬条件記憶手段、41…空間情報記憶手段、42…エージェント情報記憶手段、43…統計情報記憶手段、50…評価値算出手段、51…目的地選択手段、52…行動模擬手段、53…統計情報更新手段、60…予測結果出力手段、70…時間算出手段、71…エージェント選択手段、72…視認範囲設定手段、73…移動方向取得手段、74…到達数予測手段、75…時間予測手段、100…地図情報、110…行動目的情報、111…空間情報、120、121、122、123…エージェント情報、130、131…統計情報