(57)【特許請求の範囲】
【請求項１】
シミュレーション空間において移動体の進行方向を示す方向情報と、前記シミュレーション空間における１以上の移動開始地点のうちのいずれかに関する座標値と、が付与された移動体データを所定のタイミングで生成し、
一定周期で、移動体データごとに、
当該移動体データの座標値が示す位置から当該移動体データの方向情報が示す方向において所定の範囲に含まれる１以上の通過地点を特定し、
特定された１以上の通過地点の中から、当該移動体データとの位置関係、及び当該通過地点の待ち行列長に基づいて、１つの通過地点を選択し、当該移動体データの方向情報を、選択された通過地点の方向を示す値に更新し、
当該移動体データの方向情報が示す方向に当該移動体データが所定距離移動する場合の移動軌跡と、他の移動体データの方向情報が示す方向に当該他の移動体データが所定距離移動する場合の移動軌跡とが干渉するかを判定し、
前記移動軌跡が干渉すると判定された場合に、当該移動体データの方向情報を変更し、
当該移動体データの座標値を、当該移動体データの方向情報が示す方向に所定距離移動した後の座標値に更新する処理と、
複数の通過地点のうちのいずれかの通過地点の所定の範囲内にいずれかの移動体の座標値が含まれた場合に、当該通過地点の待ち行列長を増加させ、
各通過地点の通過時間に基づいて、各通過地点の待ち行列長を減少させる処理とをコンピュータに実行させる予測プログラム。
【請求項２】
前記座標値を移動体に付与する処理は、複数の移動開始地点の中から一つの移動開始地点を、各移動開始地点に設定された値の比率に基づいて選択し、選択された移動開始地点の座標値を移動体データに付与する請求項１記載の予測プログラム。
【請求項３】
シミュレーション空間において移動体の進行方向を示す方向情報と、前記シミュレーション空間における１以上の移動開始地点のうちのいずれかに関する座標値と、が付与された移動体データを所定のタイミングで生成する生成部と、
一定周期で、移動体データごとに、
当該移動体データの座標値が示す位置から当該移動体データの方向情報が示す方向において所定の範囲に含まれる１以上の通過地点を特定する特定部と、
特定された１以上の通過地点の中から、当該移動体データとの位置関係、及び当該通過地点の待ち行列長に基づいて、１つの通過地点を選択し、当該移動体データの方向情報を、選択された通過地点の方向を示す値に更新する選択部と、
当該移動体データの方向情報が示す方向に当該移動体データが所定距離移動する場合の移動軌跡と、他の移動体データの方向情報が示す方向に当該他の移動体データが所定距離移動する場合の移動軌跡とが干渉するかを判定し、前記移動軌跡が干渉すると判定された場合に、当該移動体データの方向情報を変更する変更部と、
当該移動体データの座標値を、当該移動体データの方向情報が示す方向に所定距離移動した後の座標値に更新する第一の更新部とを有し、
更に、
複数の通過地点のうちのいずれかの通過地点の所定の範囲内にいずれかの移動体の座標値が含まれた場合に、当該通過地点の待ち行列長を増加させ、各通過地点の通過時間に基づいて、各通過地点の待ち行列長を減少させる第二の更新部を有する予測装置。
【請求項４】
シミュレーション空間において移動体の進行方向を示す方向情報と、前記シミュレーション空間における１以上の移動開始地点のうちのいずれかに関する座標値と、が付与された移動体データを所定のタイミングで生成し、
一定周期で、移動体データごとに、
当該移動体データの座標値が示す位置から当該移動体データの方向情報が示す方向において所定の範囲に含まれる１以上の通過地点を特定し、
特定された１以上の通過地点の中から、当該移動体データとの位置関係、及び当該通過地点の待ち行列長に基づいて、１つの通過地点を選択し、当該移動体データの方向情報を、選択された通過地点の方向を示す値に更新し、
当該移動体データの方向情報が示す方向に当該移動体データが所定距離移動する場合の移動軌跡と、他の移動体データの方向情報が示す方向に当該他の移動体データが所定距離移動する場合の移動軌跡とが干渉するかを判定し、
前記移動軌跡が干渉すると判定された場合に、当該移動体データの方向情報を変更し、
当該移動体データの座標値を、当該移動体データの方向情報が示す方向に所定距離移動した後の座標値に更新する処理と、
複数の通過地点のうちのいずれかの通過地点の所定の範囲内にいずれかの移動体の座標値が含まれた場合に、当該通過地点の待ち行列長を増加させ、
各通過地点の通過時間に基づいて、各通過地点の待ち行列長を減少させる処理とをコンピュータが実行する予測方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、予測プログラム、予測装置、及び予測方法に関する。
【背景技術】
【０００２】
スーパーマーケットやホームセンター等の店舗において、レジの台数や配置レイアウトは、レジの周辺エリアの混雑に大きく影響する。
【０００３】
従来、レジの台数や配置レイアウト等の意思決定は、動線分析や待ち行列モデル等を利用して行われていた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−２８８７４０号公報
【特許文献２】特開２００９−２９５１０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、動線分析や待ち行列モデル等を利用した分析によって決定された台数及び配置レイアウトに基づいてレジを配置したとしても、実際に顧客がやってくると混雑状況が予想と大きくずれ、想定外の混雑が生じることがある。実際の混雑状況に応じて、レジの増設やレジの再配置を行うことにより、混雑を緩和することも可能であるが、費用がかかり、好ましい解決策であるとはいえない。
【０００６】
また、上記各特許文献についても、レジ周辺の混雑状況を予測するものではない。
【０００７】
本発明は、上記の点に鑑みてなされたものであって、複数の通過地点の待ち状況の予測精度を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
一つの案では、予測プログラムは、シミュレーション空間において移動体の進行方向を示す方向情報と、前記シミュレーション空間における１以上の移動開始地点のうちのいずれかに関する座標値と、が付与された移動体データを所定のタイミングで生成し、一定周期で、移動体データごとに、当該移動体データの座標値が示す位置から当該移動体データの方向情報が示す方向において所定の範囲に含まれる１以上の通過地点を特定し、特定された１以上の通過地点の中から、当該移動体データとの位置関係、及び当該通過地点の待ち行列長に基づいて、１つの通過地点を選択し、当該移動体データの方向情報を、選択された通過地点の方向を示す値に更新し、当該移動体データの方向情報が示す方向に所定距離移動する場合に、他の移動体データと所定の位置関係を形成するかを判定し、前記所定の位置関係を形成すると判定された場合に、当該移動動体データの方向情報を変更し、当該移動体データの座標値を、当該移動体データの方向情報が示す方向に所定距離移動した後の座標値に更新する処理と、複数の通過地点のうちのいずれかの通過地点の所定の範囲内にいずれかの移動体の座標値が含まれた場合に、当該通過地点の待ち行列長を増加させ、各通過地点の通過時間に基づいて、各通過地点の待ち行列長を減少させる処理とをコンピュータに実行させる。
【発明の効果】
【０００９】
一態様によれば、複数の通過地点の待ち状況の予測精度を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】第一の状況における観察結果の概要を説明するための図である。
【図２】第二の状況における観察結果の概要を説明するための図である。
【図３】第三の状況における観察結果の概要を説明するための図である。
【図４】待ち行列理論における代表的なＭ／Ｍ／Ｓモデルの概要を説明するための図である。
【図５】シミュレーション空間におけるエージェントの動作モデルを説明するためのフローチャートである。
【図６】本発明の実施の形態における予測装置のハードウェア構成例を示す図である。
【図７】本発明の実施の形態における予測装置の機能構成例を示す図である。
【図８】予測装置が実行する処理の全体フローの一例を説明するためのフローチャートである。
【図９】シミュレーション空間の表示例を示す図である。
【図１０】レジ履歴記憶部の構成例を示す図である。
【図１１】出現位置ごとのエージェントの出現処理の処理手順の一例を説明するためのフローチャートである。
【図１２】設定情報記憶部の構成例を示す図である。
【図１３】出現位置情報記憶部の構成例を示す図である。
【図１４】エージェント情報記憶部の構成例を示す図である。
【図１５】エージェントごとの移動先の算出処理の処理手順の一例を説明するためのフローチャートである。
【図１６】エージェントの視野の特定方法の一例を示す図である。
【図１７】レジ情報記憶部の構成例を示す図である。
【図１８】エージェント間の干渉の回避処理の処理手順の一例を説明するためのフローチャートである。
【図１９】現在位置を始点とし移動先位置を終点とするベクトルが交差又は重なる例を示す図である。
【図２０】回避ルールの一例を示す図である。
【図２１】エージェントごとの状態の更新処理の処理手順の一例を説明するためのフローチャートである。
【図２２】エージェント履歴記憶部の構成例を示す図である。
【図２３】本実施の形態におけるシミュレーションの条件設定の一部を示す図である。
【図２４】第一のシミュレーション結果を示す図である。
【図２５】第二のシミュレーション結果を示す図である。
【図２６】第三のシミュレーション結果を示す図である。
【図２７】第四のシミュレーション結果を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて本発明の実施の形態を説明する。まず、本実施の形態の概要について説明する。
【００１２】
本願発明者は、或る店舗のレジ周辺のエリア（以下、「チェックアウトエリア」という。）を実際に観察したところ、次のような観察結果を得た。
【００１３】
図１は、第一の状況における観察結果の概要を説明するための図である。図１は、昼前や夕方等、店舗内が混雑している状況下（以下、「状況Ａ」という。）における観察結果を示す。
【００１４】
なお、観察対象とされた店舗の入り口は、図中左側に有る。商品が配置されている商品棚は、図中上側に左右方向に複数配列されている。レジは、図中下側の左右方向に複数配置されている。また、図中において黒丸は、顧客を示す。
【００１５】
上記のようなレイアウトを有する観察対象の店舗においては、店内を右回りに移動し、入り口から遠い商品棚の間の通路から、チェックアウトエリアに入る顧客が多いことが分かった。また、このような導線の結果であると思われるが、入り口から遠いレジ、図中右側のレジの待ち行列長の方が、入り口に近いレジの待ち行列長より多くなる現象が観察された。本実施の形態において、待ち行列長は、レジに並んでいる人数をいう。
【００１６】
なお、本実施の形態において、店舗内の顧客の移動方向（図１では、右回り）を、「売り場特性」という。売り場特性は、入り口、レジ、及び商品棚の相対的な位置関係に依存すると考えられるが、各商品棚に配置されている商品の種類にも依存すると考えられる。顧客をどのような導線で店舗内を誘導したいかによって、商品の配列が決められることが多いからである。
【００１７】
図２は、第二の状況における観察結果の概要を説明するための図である。図２は、店舗が新規に開店する際や特売時等、顧客が通常の混雑時（例えば、図１の状況）よりも多い状況下（以下、「状況Ｂ」という。）における観察結果を示す。当該状況下では、左側のレジと右側のレジとの間における、待ち行列長の偏りがより顕著に観察された。すなわち、図２に示されるように、右側のレジの待ち行列長と左側の列の待ち行列長との差が更に大きくなった。
【００１８】
図３は、第三の状況における観察結果の概要を説明するための図である。図３は、混雑していない時間帯において、中央のレジの複数台の稼動を停止させた状況下（以下、「状況Ｃ」という。）における観察結果を示す。この状況においても、左側のレジと右側のレジとの間において、待ち行列長に偏りが観察された。すなわち、右側のレジの待ち行列長の方が、左側のレジの待ち行列長よりも長くなることが分かった。
【００１９】
図１〜図３に示されるように、各レジの待ち行列長は、必ずしも略均等ではなく、売り場特性に応じて偏りが生じうる。したがって、本願発明者は、待ち行列理論を用いて、チェックアウトエリアの混雑状況を事前に予測するのは困難であると考えた。待ち行列理論のモデルでは、来店客がチェックアウトエリアに出現し、各来店客がチェックアウトエリア周辺の状況を判断し、レジを選択することが表現できない。すなわち、待ち行列理論では、上記の観察された状況のように、レイアウトに依存した混雑状況が形成されることは想定されていないからである。
【００２０】
図４は、待ち行列理論における代表的なＭ／Ｍ／Ｓモデルの概要を説明するための図である。図４に示されるように、Ｍ／Ｍ／Ｓモデルでは、レジを待っている顧客は、複数の列に対して１列に並び、空いたレジに入るといった規則が前提とされる。したがって、待ち行列理論では、基本的に、レジ間に待ち行列長の偏りが生じることはない。よって、状況Ａ〜状況Ｃにおける観察結果を、待ち行列理論を用いて予測することは困難である。
【００２１】
そこで、本願発明者は、状況Ａ〜Ｃを再現可能なシミュレーションを実現するために、試行錯誤の末、シミュレーション空間において顧客として振る舞うエージェントに対して、以下の３つの特性を与えることに想到した。
【００２２】
第一の特性は、自身のいる位置から所定の範囲内のレジを選択対象とするという特性である。当該特性を、以下、「限定特性」という。
【００２３】
第二の特性は、選択対象の各レジに対して、「当該レジまでの距離」及び「当該レジに並んでいる待ち行列長」に基づいて当該レジに評価値を与え、評価値が最大であるレジを選択するという特性である。当該特性を、以下、「評価特性」という。
【００２４】
第三の特性は、選択したレジに移動する際に他のエージェントと所定の位置関係を形成する場合には移動方向を変え、同じ座標上に複数のエージェントが存在することを避けるという特性である。当該特性を、以下、「回避特性」という。
【００２５】
以上の３つの特性を有するエージェントは、店舗内の売り場を模したシミュレーション空間において、例えば、図５に示されるように振る舞うように見える。
【００２６】
図５は、シミュレーション空間におけるエージェントの動作モデルを説明するためのフローチャートである。
【００２７】
ステップＳ１１において、エージェントは、シミュレーション空間に出現する。シミュレーション空間は、例えば、シミュレーション対象の店舗内を表現する２次元空間である。エージェントの出現位置は、例えば、シミュレーション空間において、チェックアウトエリアに対する複数の入場位置のうちのいずれかである。チェックアウトエリアに対する入場位置は、商品棚の間の通路と、チェックアウトエリアが交わる位置である。但し、それ以外の場所に出現位置が設けられてもよい。
【００２８】
続いて、エージェントは、現在位置から進行方向において視野に含まれるレジ群を特定する（Ｓ１２）。当該レジ群を、「候補レジ群」という。なお、ステップＳ１２は、限定特性を実現するものである。
【００２９】
続いて、エージェントは、候補レジ群が更新されたか否かを判定する（Ｓ１３）。例えば、初めてステップＳ１２が実行された場合、当該エージェントに関しては、候補レジ群には要素が無い状態から要素が有る状態に更新されることになる。したがって、この場合、ステップＳ１３の判定は肯定的なもの（Ｙｅｓ）となる。また、ステップＳ１２の実行が２回目以降である場合、前回のステップＳ１２において選択された候補レジ群の内容と、今回のステップＳ１２において選択された候補レジ群の内容との一部又は全部が異なる場合、ステップＳ１３の判定は肯定的なもの（Ｙｅｓ）となる。候補レジ群の内容には、候補レジ群に含まれるレジの集合のみならず、各レジの待ち行列長も含まれる。したがって、候補レジ群に含まれるレジの集合が同じであったとしても、いずれかのレジに関して待ち行列長が変化している場合、ステップＳ１３の判定は肯定的なものとなる。
【００３０】
候補レジ群が更新された場合（Ｓ１３でＹｅｓ）、エージェントは、候補レジ群に含まれる各レジを所定の方法で評価し、評価値が最大である一つのレジを選択する（Ｓ１４）。例えば、エージェントと各レジとの位置関係、各レジの待ち行列長等に基づいて、各レジの評価値が算出される。ステップＳ１４において選択されるレジを「目的レジ」という。なお、ステップＳ１４は、評価特性を実現するものである。
【００３１】
一方、候補レジ群が更新されない場合（Ｓ１３でＮｏ）、ステップＳ１４は実行されない。
【００３２】
ステップＳ１５に進み、エージェントは、目的レジの方向に所定距離直進した場合、他のエージェントと所定の位置関係を形成するか、より具体的には、他のエージェントと干渉するか否かを判定する（Ｓ１５）。
【００３３】
干渉が予測される場合（Ｓ１５でＹｅｓ）、エージェントは、干渉を回避するために方向転換を行う（Ｓ１６）。したがって、当該エージェントの進行方向は変化する。なお、ステップＳ１６は、回避特性を実現するものである。続いて、エージェントは、方向転換後の進行方向において所定距離直進する（Ｓ１７）。一方、干渉が予測されない場合（Ｓ１５でＮｏ）、エージェントは、方向転換することなく、所定距離直進する（Ｓ１７）。
【００３４】
続いて、エージェントは、目的レジの待ち行列に到達したか否かを判定する（Ｓ１８）。目的レジの待ち行列に到達した場合（Ｓ１８でＹｅｓ）、当該目的レジの待ち行列長に１が加算される。一方、目的レジの待ち行列に到達していない場合（Ｓ１８でＮｏ）、ステップＳ１２以降が繰り返される。この際、ステップＳ１６においてエージェントの進行方向が変更されているため、又はステップＳ１７においてエージェントの位置が変化しているため、候補レジ群として選択されるレジは前回と異なる可能性が有る。
【００３５】
以下、本実施の形態において、上記のような動作モデルを有するエージェントをシミュレーション空間において実現し、各レジの待ち行列長を予測する予測装置１０等について具体的に説明する。
【００３６】
図６は、本発明の実施の形態における予測装置のハードウェア構成例を示す図である。図６の予測装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、インタフェース装置１０５、表示装置１０６、及び入力装置１０７等を有する。
【００３７】
予測装置１０での処理を実現するプログラムは、記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００３８】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って予測装置１０に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置１０７はキーボード及びマウス等であり、様々な操作指示を入力させるために用いられる。
【００３９】
なお、記録媒体１０１の一例としては、ＣＤ−ＲＯＭ、ＤＶＤディスク、又はＵＳＢメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置１０２の一例としては、ＨＤＤ（Hard Disk Drive）又はフラッシュメモリ等が挙げられる。記録媒体１０１及び補助記憶装置１０２のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
【００４０】
また、ネットワークに接続する必要が無い場合、予測装置１０は、インタフェース１０５を備えていなくてもよい。
【００４１】
図７は、本発明の実施の形態における予測装置の機能構成例を示す図である。図７において、予測装置１０は、表示制御部１１、出現処理部１２、候補レジ群特定部１３、目的レジ選択部１４、移動先算出部１５、干渉回避部１６、状態更新部１７、待ち行列更新部１８、及び情報出力部１９等を有する。これら各部は、予測装置１０にインストールされる１以上のプログラムがＣＰＵ１０４に実行させる処理によって実現される。
【００４２】
予測装置１０は、また、出現位置情報記憶部２１、レジ情報記憶部２２、エージェント情報記憶部２３、設定情報記憶部２４、レジ履歴記憶部２５、及びエージェント履歴記憶部２６等を利用する。これら記憶部は、補助記憶装置１０２、又は予測装置１０にネットワークを介して接続される記憶装置等を用いて実現可能である。
【００４３】
出現位置情報記憶部２１は、シミュレーション空間においてエージェントが出現する位置ごとに、座標値等の情報を記憶する。レジ情報記憶部２２は、シミュレーション空間に配置される各レジに関する情報を記憶する。例えば、レジの配置位置の座標値等、予め設定される情報や、レジの待ち行列長等、シミュレーションの進行に応じて変化する値等が、レジごとに記憶される。エージェント情報記憶部２３は、エージェントごとに、エージェントの現在位置、目的地、向き等の属性情報を記憶する。設定情報記憶部２４は、出現位置ごとやレジにごとの設定情報以外の各種の設定情報を記憶する。例えば、各エージェントに共通な視野を規定する情報や、エージェントの移動速度等が設定情報記憶部２４に記憶される。
【００４４】
表示制御部１１は、シミュレーション空間を表示装置１０６に表示させる。出現処理部１２は、エージェントを所定のタイミングでシミュレーション空間に出現させるための処理を実行する。具体的には、出現処理部１２は、所定のタイミングで、出現対象のエージェントに対応するレコードを、エージェント情報記憶部２３に生成する。候補レジ群特定部１３は、エージェントごとに、当該エージェントの現在位置、向き、及び視野等に基づいて、候補レジ群を特定する。目的レジ選択部１４は、エージェントごとに、候補レジ群に含まれる各レジについて、当該エージェントとの位置関係や待ち行列長等に基づいて評価を行い、評価値が最大であるレジを当該エージェントの目的レジとして選択する。
【００４５】
移動先算出部１５は、エージェントごとに、現在位置、向き、及び移動速度等に基づいて、所定時間後のエージェントの移動先を算出する。干渉回避部１６は、各エージェントを、移動先算出部１５によって算出された移動先に移動させた場合に、エージェント間で干渉が発生するか否かを判定する。干渉が発生すると判定された場合、干渉回避部１６は、干渉に係るエージェントに関して、向きを変更し、改めて、所定時間後の移動先を算出する。
【００４６】
状態更新部１７は、所定時間経過するたび（一定周期毎）に、各エージェントの状態を更新する。移動先算出部１５又は干渉回避部１６によって算出された移動先に、各エージェントを移動させる。各エージェントの移動は、エージェントごとにエージェント情報記憶部２３に記憶されている現在位置を更新することによって行われる。状態更新部１７は、また、レジ処理の終了したエージェントが発生した場合、当該エージェントをシミュレーション空間から消滅させる。
【００４７】
待ち行列更新部１８は、各レジの所定範囲へのエージェントの到達や、各レジにおけるレジ処理の終了等に応じて、各レジの待ち行列長を更新する。
【００４８】
出力情報記憶部は、シミュレーションの進行に応じて、各レジに関する履歴情報や、エージェントに関する履歴情報等を、レジ履歴記憶部２５又はエージェント履歴記憶部２６等に記憶する。レジ履歴記憶部２５は、一定周期ごとに、その時の各レジの待ち行列長を記憶する。エージェント履歴記憶部２６は、各エージェントの出現時期、及びレジの通過時期等を記憶する。
【００４９】
以下、予測装置１０が実行する処理手順について説明する。図８は、予測装置が実行する処理の全体フローの一例を説明するためのフローチャートである。図８の処理は、例えば、シミュレーションの開始指示の入力に応じて開始される。なお、図８において、ステップＳ１０３以降は、シミュレーションが終了するまでのループ処理である。１回のループごとに、シミュレーション空間における時間は、予め設定された時間（例えば、０．１秒）だけ進む。以下、１回分のループを、「１サイクル」といい、１サイクル実行されることにより進行する時間を、「サイクル時間」という。
【００５０】
ステップＳ１０１において、表示制御部１１は、シミュレーション空間の初期状態を表示装置１０６に表示させる。なお、シミュレーション空間における座標系は、予め設定される情報に基づいて定義される。座標系の単位は、例えば、メートルである。また、シミュレーション空間の大きさや形状についても、例えば、シミュレーション対象の店舗のレイアウト図等を参考に、予め設定される情報に基づく。
【００５１】
続いて、予測装置１０は、変数ｔの値を０に初期化する。変数ｔは、シミュレーション空間における経過時間を記憶するための変数である。続いて、予測装置１０は、シミュレーション空間における出現位置ごとに、エージェントの出現処理を実行する（Ｓ１０３）。ステップＳ１０３の処理の結果、いずれかの出現位置にエージェントが出現しうる。
【００５２】
続いて、予測装置１０は、シミュレーション空間に存在するエージェントごとに、移動先の算出処理を実行する（Ｓ１０４）。例えば、エージェントが、現在の進行方向において所定速度でサイクル時間分だけ移動した場合の移動先の座標値が算出される。
【００５３】
続いて、予測装置１０は、エージェント間の干渉の回避処理を実行する（Ｓ１０５）。すなわち、各エージェントに関して、ステップＳ１０４において算出された移動先に移動した場合、他のエージェントと干渉するか否かが判定される。また、干渉すると判定されたエージェントに関して、進行方向の変更が行われ、変更後の進行方向に基づいて、移動先が改めて算出される。
【００５４】
続いて、予測装置１０は、エージェントごとに、状態の更新処理を実行する（Ｓ１０６）。例えば、各エージェントについて、ステップＳ１０４又はＳ１０５において算出された移動先への移動、レジの待ち行列への追加、レジ処理の終了に伴うシミュレーション空間からの削除等が行われる。
【００５５】
続いて、表示制御部１１は、シミュレーション画面の表示状態を更新する（Ｓ１０７）。すなわち、シミュレーション画面に対して、ステップＳ１０６における処理の結果が反映される。
【００５６】
図９は、シミュレーション空間の表示例を示す図である。図９に示されるシミュレーション空間では、位置Ｐ１〜位置Ｐ８の８箇所がエージェントの出現位置とされる。また、レジｒ１〜ｒ１０の１０個のレジが配置されている。位置Ｐ１〜位置Ｐ８の位置や、レジｒ１〜ｒ１０の位置は、予め設定された情報に基づく。図９では、更に、エージェントａ１〜ａ３０の３０のエージェントがシミュレーション空間に存在する状態が示されている。このうち、エージェントａ３０は、移動中であり、他のエージェントは、いずれかのレジの待ち行列に並んでいる。各待ち行列において、先頭のエージェントである、エージェントａ１、ａ３、ａ６、ａ８、ａ１１、ａ１４、ａ１６、ａ２０、ａ２３、ａ２６は、レジ処理中のエージェントである。
【００５７】
なお、本実施の形態では、便宜上、図９において、横方向をＸ軸とし、縦方向をＹ軸とする。また、各エージェントは、矩形によって表現されている。これは、カートの形状を表現したものである。
【００５８】
続いて、情報出力部１９は、今回のサイクルの終了時における、各レジの待ち行列長を、レジ履歴記憶部２５に記憶する（Ｓ１０８）。
【００５９】
図１０は、レジ履歴記憶部の構成例を示す図である。図１０に示されるように、レジ履歴記憶部２５は、サイクルごとに、レジｒ１〜ｒ１０の各レジにおける待ち行列長を記憶する。レジ履歴記憶部２５が記憶する待ち行列情報は、後述されるシミュレーション結果の表示等に利用される。
【００６０】
続いて、予測装置１０は、変数ｔに、サイクル時間ｔｃｙｃｌｅを加算する（Ｓ１０９）。続いて、予測装置１０は、変数ｔの値が、予め設定された、終了時間ｔｅｎｄを超えているか否かを判定する（Ｓ１１０）。変数ｔの値が、終了時間ｔｅｎｄ以下である場合（Ｓ１１０でＮｏ）、次のサイクルが実行される。変数ｔの値が、終了時間ｔｅｎｄを超える場合（Ｓ１１０でＹｅｓ）、シミュレーションは、終了する。
【００６１】
続いて、ステップＳ１０３の詳細について説明する。図１１は、出現位置ごとのエージェントの出現処理の処理手順の一例を説明するためのフローチャートである。図１１では、一つの出現位置に関する処理が示されている。したがって、ステップＳ１０３では、出現位置Ｐ１〜Ｐ８のそれぞれについて、図１１の処理が実行される。図１１の説明において、処理対象とされている出現位置を、「対象出現位置」という。
【００６２】
ステップＳ２０１において、出現処理部１２は、設定情報記憶部２４に記憶されている、１時間あたりの出現数に基づいて、１サイクルあたりの出現数αを算出する。
【００６３】
図１２は、設定情報記憶部の構成例を示す図である。設定情報記憶部２４は、シミュレーション対象の店舗に合わせて予め設定される各種のパラメータを記憶する。例えば、図１２では、「出現数」、「買上点数情報」、「移動速度」、「視野情報」、及び「評価傾向情報」等が記憶される例が示されている。
【００６４】
このうち、ステップＳ２０１では、「出現数」が利用される。「出現数」は、１時間あたりの出現数である。したがって、ステップＳ２０１において、出現処理部１２は、設定情報記憶部２４の「出現数」の値を、１時間のサイクル数で除することにより、１時間当たりの出現数αを算出する。例えば、サイクル時間が０．１秒である場合、４００（人）÷３６０００（サイクル）の演算によって、出現数αが算出される。
【００６５】
なお、設定情報記憶部２４の「出現数」には、例えば、シミュレーションを行う時間帯における１時間当たり来店客数の予測値が設定される。
【００６６】
続いて、出現処理部１２は、対象出現位置に対する出現割合に基づいて、１サイクルあたりの対象出現位置に関する出現数の期待値βを算出する（Ｓ２０２）。各出現位置に対する出現割合は、出現位置情報記憶部２１に記憶されている。
【００６７】
図１３は、出現位置情報記憶部の構成例を示す図である。図１３において、出現位置情報記憶部２１は、出現位置ごとに、当該出現位置のＸ座標及びＹ座標と、「出現割合」等を記憶する。Ｘ座標及びＹ座標は、シミュレーション空間の座標系における当該出現位置のＸ座標及びＹ座標である。「出現割合」は、他の出現位置との相対的な関係において、当該出現位置からエージェントが出現する割合である。したがって、全ての出現位置の出現割合の合計は１００となる。出現割合は、図１において説明した売り場特性を表現するものである。したがって、シミュレーション対象の店舗の売り場特性に基づいて設定されてもよい。
【００６８】
ステップＳ２０２では、以下の演算が行われることにより、期待値βが算出される。
期待値β＝出現数α×対象出現位置に対する出現割合
続いて、出現処理部１２は、乱数を生成し、当該乱数と期待値βとに基づいて、エージェントの出現の要否を判定する（Ｓ２０３）。例えば、０〜１の範囲を有し、倍精度の乱数が生成される。但し、必ずしも倍精度でなくてもよい。当該乱数の値が、期待値β以下であれば、対象出現位置においてエージェントの発生が必要であると判定される。当該乱数の値が、期待値βを超える場合は、対象出現位置においてエージェントの発生は不要であると判定される。
【００６９】
エージェントの出現は不要であると判定された場合（Ｓ２０４でＮｏ）、対象出現位置に関して、図１１の処理は終了する。エージェントの出現は必要であると判定された場合（Ｓ２０４でＹｅｓ）、出現処理部１２は、エージェント情報記憶部２３に、新たなレコードを生成する（Ｓ２０５）。
【００７０】
図１４は、エージェント情報記憶部の構成例を示す図である。図１４において、エージェント情報記憶部２３は、出現してから消滅するまでのエージェントごとに、エージェントの属性情報を含むレコードを記憶する。属性情報には、「エージェントＩＤ」、「出現時期」、「現在位置」、「移動先位置」、「買上点数」、「状態」、「候補レジ群」、「評価傾向」、「目的レジ」、「目的地」、及び「向き」等が含まれる。
【００７１】
「エージェントＩＤ」は、各エージェントの識別情報であり、エージェント情報記憶部２３に対するレコードの追加に伴って割り当てられる。「出現時期」は、シミュレーション開始時を起点として、当該エージェントが出現した時期である。すなわち、当該レコードが追加された時期である。本実施の形態において、出現時期の単位は秒である。但し、サイクル数が単位とされてもよい。「現在位置」は、シミュレーション空間におけるエージェント現在位置のＸ座標及びＹ座標である。「移動先位置」は、現在位置から、現在の向きに所定速度でサイクル時間直進した場合の到達地点である。「買上点数」は、商品の買上点数である。「状態」は、移動中、待ち行列で待機中、又はレジで処理中のいずれかの状態であり、順番に、０、１、２によって表現される。「候補レジ群」は、現在の候補レジ群に含まれる各レジのレジＩＤ及び待ち行列長であり、初期値は空である。なお、図１４において、待ち行列長は、便宜上、省略されている。「評価傾向」は、候補レジ群の中から目的レジを選択する際に、移動距離の短さを重視するタイプか、待ち行列の短さを重視するタイプかを示す情報である。前者は、０、後者は、１によって表現される。「目的レジ」は、現在の目的レジのレジＩＤである。レジＩＤは、各レジの識別情報である。「目的地」は、現在において最終目的地としている位置のＸ座標及びＹ座標である。目的地は、必ずしも目的レジの座標値とは一致しない。目的レジに待ち行列が形成されている場合は、当該待ち行列の最後尾の位置が、目的地となるからである。「向き」は、進行方向である。「向き」は、例えば、シミュレーション空間における、Ｘ軸又はＹ軸に対する角度によって表現される。または、現在位置のＸ座標及びＹ座標を始点とし、目的地のＸ座標及びＹ座標を終点とするベクトルによって向きが表現されてもよい。
【００７２】
ステップＳ２０５では、このようなエージェント情報記憶部２３に新たなレコードが生成され、当該レコードの「エージェントＩＤ」、「出現時期」、「状態」、及び「向き」に値が記憶される。「出現時期」には、変数ｔの値が記憶される。「状態」には、「０（移動中）」が記憶される。「向き」には、例えば、Ｙ軸に対して平行な方向のうち、レジが配置されている方向を示す値が初期値として記憶される。以下、生成されたレコードを、「対象レコード」という。対象レコードに係るエージェントを、「対象エージェント」という。
【００７３】
続いて、出現処理部１２は、対象出現位置に関して出現位置情報記憶部２１（図１３）に記憶されているＸ座標及びＹ座標を、対象レコードの「現在位置」のＸ座標及びＹ座標に転記する（Ｓ２０６）。続いて、出現処理部１２は、設定情報記憶部２４（図１２）の「買上点数情報」に基づいて乱数を発生させ、当該乱数に基づいて、対象エージェントの買上点数を算出する（Ｓ２０７）。算出された買上点数は、対象レコードの「買上点数」に記憶される。なお、「買上点数情報」は、平均と標準偏差とを含む。平均は、買上点数の平均値である。標準偏差は、買上点数の標準偏差である。このような「買上点数情報」に基づく買上点数の算出方法は、公知のアルゴリズムに基づいて行われればよい。また、他の方法によって、買上点数がランダムに決定されてもよい。更に、全てのエージェントに対して、買上点数が共通とされてもよい。
【００７４】
続いて、出現処理部１２は、設定情報記憶部２４（図１２）の「評価傾向情報」に基づいて、対象エージェントの評価傾向を決定する（Ｓ２０８）。図１２に示される「評価傾向情報」では、「距離重視」の値が「２」であり、「待ち行列長重視」の値が「８」である。「距離重視」の値と「待ち行列長重視」とは、それぞれの傾向の出現割合を示す。すなわち、距離重視の傾向を有するエージェントを２割、待ち行列長重視の傾向を有するエージェントを８割出現させることを示す。距離重視とは、レジまでの距離が短いことを重視することをいい、待ち行列長重視とは、待ち行列長が短いことを重視することをいう。
【００７５】
「評価傾向情報」が図１２に示されるように設定されている場合、出現処理部１２は、例えば、０〜１の範囲の値を有する乱数を発生させ、当該乱数の値が０．２以下であれば、対象エージェントの評価傾向を、距離重視とする。一方、出現処理部１２は、当該乱数の値が０．２より大きく１以下であれば、対象エージェントの評価傾向を、待ち行列長重視とする。距離重視の場合、対象レコードの「評価傾向」には「０」が記憶され、待ち行列長重視の場合、対象レコードの「評価傾向」には「１」が記憶される。
【００７６】
なお、設定情報記憶部２４（図１２）における「評価傾向情報」は、例えば、シミュレーション対象の店舗の客層に応じて設定されてもよい。例えば、高齢者が多い店舗では、距離重視の割合を高くし、若者が多い店舗では、待ち行列長重視の割合を高くすることが考えられる。
【００７７】
以上で、対象エージェントは、シミュレーション空間において対象出現位置に出現したことになる。すなわち、対象エージェントの出現は、エージェント情報記憶部２３に対するレコードの生成によって実現される。
【００７８】
続いて、図８のステップＳ１０４の詳細について説明する。図１５は、エージェントごとの移動先の算出処理の処理手順の一例を説明するためのフローチャートである。図１５では、一つのエージェントに関する処理が示されている。したがって、ステップＳ１０４では、エージェント情報記憶部２３（図１４）に記憶されている各レコード（各エージェント）について、図１５の処理が実行される。図１５の説明において、処理対象とされているレコードを「対象レコード」といい、対象レコードに係るエージェントを「対象エージェント」という。
【００７９】
ステップＳ３０１において、候補レジ群特定部１３は、対象レコードの「状態」の値は「０」であるか、すなわち、対象エージェントは移動中であるか否かを判定する（Ｓ３０１）。対象レコードの「状態」の値が「０」である場合（Ｓ３０１でＹｅｓ）、候補レジ群特定部１３は、対象エージェントの現在位置及び向きと、設定情報記憶部２４（図１２）に記憶されている「視野情報」とに基づいて、対象エージェントの視野に含まれるレジを特定する（Ｓ３０２）。設定情報記憶部２４において、「視野情報」は、「視野角度」及び「視野距離」を含む。このような「視野情報」に基づいて、対象エージェントの視野は、例えば、図１６に示されるように特定される。
【００８０】
図１６は、エージェントの視野の特定方法の一例を示す図である。図１６において、円は、エージェントの現在位置を示す。円から左方向に伸びる矢印は、エージェント情報記憶部２３に記憶されている、θは、視野角度である。例えば、視野角度が１２０度の場合、エージェントの向きを中心として、左右の６０度が視野角度となる。ｄは、視野距離である。視野角度及び視野距離で形成される扇型が、エージェントの視野となる。
【００８１】
一方、各レジの配置位置は、レジ情報記憶部２２を参照して特定可能である。図１７は、レジ情報記憶部の構成例を示す図である。図１７において、レジ情報記憶部２２は、シミュレーション対象の店舗に設置されるレジごとに、「レジＩＤ」、「設置位置」、「待機位置」、「処理速度」、「待ち行列長」、「最後尾位置」、及び「処理終了時期」等を記憶する。このうち、「レジＩＤ」〜「処理速度」までは、例えば、シミュレーション対象の店舗に合わせて設定される設定項目である。「待ち行列長」〜「処理終了時期」は、シミュレーションの進行に応じて値が変化する項目である。
【００８２】
「レジＩＤ」は、各レジの識別情報である。「設置位置」は、レジが設置された位置に対応する、シミュレーション空間におけるＸ座標及びＹ座標である。「待機位置」は、レジ処理中の対象とされているエージェントが待機する位置に対応する、シミュレーション空間におけるＸ座標及びＹ座標である。「処理速度」は、商品１個あたりのレジ処理に要する時間である。「待ち行列長」は、現在の待ち行列長であり、初期値は０である。「最後尾位置」は、シミュレーション空間において、現在の待ち行列の最後尾の位置のＸ座標及びＹ座標であり、初期値は、「待機位置」に一致する。「処理終了時期」は、レジ処理中のエージェントに関してレジ処理が終了する時期である。「処理終了時期」の単位はサイクルであり、初期値は０である。
【００８３】
ステップＳ３０１では、図１６において説明したように特定される視野に、「設置位置」の座標値が含まれるレジＩＤ群が特定される。
【００８４】
続いて、候補レジ群特定部１３は、特定されたレジＩＤ群に係るレジ群（以下、「特定レジ群」という。）と、対象レコードの「候補レジ群」との間に関して、相違点の有無を判定する（Ｓ３０３）。具体的には、特定されたレジＩＤ群と、対象レコードの「候補レジ群」に含まれるレジＩＤ群との間に相違点が有るかが判定される。また、双方のレジＩＤ群の間に相違点が無い場合、特定されたレジＩＤ群に含まれる各レジＩＤに対応付けてレジ情報記憶部２２に記憶されている待ち行列長と、対象レコードの「候補レジ群」に記憶されている各候補レジの待ち行列長との間に相違点が有るか否かが判定される。すなわち、現在の待ち行列長と、１サイクル前の待ち行列長との間に相違点が有るかが判定される。
【００８５】
レジＩＤ群及び待ち行列長の少なくともいずれか一方に関して相違点が有る場合（Ｓ３０３でＹｅｓ）、候補レジ群特定部１３は、対象レコードの「候補レジ群」の値を更新する（Ｓ３０４）。すなわち、ステップＳ３０２において特定されたレジＩＤ群と、当該レジＩＤ群に含まれる各レジＩＤに対応付けてレジ情報記憶部２２に記憶されている「待ち行列長」の値とが、対象レコードの「候補レジ群」に記憶される。
【００８６】
続いて、目的レジ選択部１４は、対象レコードの「候補レジ群」に係る各レジについて、評価値を算出する（Ｓ３０５）。評価値は、例えば、以下の評価式に基づいて算出される。
【００８７】
評価値＝ｗ１×（１／Ｌｉｎｅ）＋ｗ２×（１／Ｄｉｓｔａｎｃｅ）
評価式において、Ｌｉｎｅは、レジの待ち行列長である。Ｄｉｓｔａｎｃｅは、対象エージェントの現在位置から、レジの配置位置までの距離である。当該距離は、対象レコードの「現在位置」のＸ座標及びＹ座標と、評価対象のレジに関してレジ情報記憶部２２に記憶されている「配置位置」のＸ座標及びＹ座標とに基づいて算出可能である。
【００８８】
また、ｗ１及びｗ２は、待ち行列長又は距離に対する重み係数である。本実施の形態では、ｗ１及びｗ２の値は、次のように設定される。
【００８９】
対象レコードの評価傾向が「０」、すなわち、対象エージェントが距離重視の場合、ｗ１＝０．２５、Ｗ２＝０．７５
対象レコードの評価傾向が「１」、すなわち、対象エージェントが待ち行列長重視の場合、ｗ１＝０．７５、Ｗ２＝０．２５
なお、本実施の形態において、ｗ１及びｗ２の値は、固定的に０．２５又は０．７５であるが、ｗ１及びｗ２に関しても、設定情報とされて、設定情報記憶部２４に記憶されてもよい。この場合、ｗ１及びｗ２の値は、シミュレーション対象の店舗の客層に応じて調整されてもよい。
【００９０】
続いて、目的レジ選択部１４は、評価値が最大となるレジを、目的レジに選択する（Ｓ３０６）。目的レジ選択部１４は、目的レジのレジＩＤを、対象レコードの「目的レジ」に記憶する。続いて、目的レジ選択部１４は、対象レコードの「目的地」のＸ座標及びＹ座標に、目的レジの「最後尾位置」のＸ座標及びＹ座標を転記する（Ｓ３０７）。続いて、目的レジ選択部１４は、対象エージェントの向きを、目的地の方向に変更する（Ｓ３０８）。具体的には、対象レコードの「現在位置」のＸ座標及びＹ座標を始点とし、「目的地」のＸ座標及びＹ座標を終点とするベクトル又は当該ベクトルの角度が、対象レコード「向き」に記憶される。
【００９１】
続いて、移動先算出部１５は、対象レコードの「向き」が示す方向に、サイクル時間分だけ移動した場合に到達する移動先の座標値を算出する（Ｓ３０９）。この際、移動速度は、設定情報記憶部２４（図１２）の「移動速度」に記憶されている値が利用される。本実施の形態において「移動速度」の値は、１秒当たりの移動距離、すなわち、秒速である。したがって、例えば、サイクル時間が０．１秒である場合、「移動速度」に０．１を乗じた値が、１サイクル分の移動距離となる。
【００９２】
移動先算出部１５は、算出された座標値のＸ座標及びＹ座標を、対象レコードの「移動先位置」のＸ座標及びＹ座標に記憶する。但し、移動先位置として算出されたＸ座標及びＹ座標が、対象レコードの「目的地」のＸ座標及びＹ座標を通過してしまう場合、対象レコードの「移動先位置」には、対象レコードの「目的地」のＸ座標及びＹ座標が転記される。
【００９３】
一方、ステップＳ３０３において、特定レジ群と、対象レコードの「候補レジ群」との間に相違点が無い場合（Ｓ３０３でＮｏ）、目的レジ選択部１４は、対象エージェントの目的レジの待ち行列の最後尾の位置と、対象エージェントの目的地の位置とが一致しているか否かを判定する（Ｓ３１０）。具体的には、対象レコードの「目的地」のＸ座標及びＹ座標と、対象レコードの「目的レジ」に記憶されているレジＩＤに関してレジ情報記憶部２２に記憶されている「最後尾位置」のＸ座標及びＹ座標とが一致しているか否かが判定される。１サイクルの間にレジの待ち行列長が短くなり、両者の間にずれが生じる可能性が有るためである。
【００９４】
対象エージェントの目的レジの待ち行列の最後尾の位置と、対象エージェントの目的地の位置とが一致していない場合（Ｓ３１０でＹｅｓ）、ステップＳ３０７以降が実行される。その結果、対象エージェントの目的レジの待ち行列の最後尾の位置と、対象エージェントの目的地の位置とは一致する。
【００９５】
更に、ステップＳ３０１において、対象レコードの「状態」の値が「０」でない場合（Ｓ３０１でＮｏ）、候補レジ群特定部１３は、対象レコードの「状態」の値が「１」であるか、すなわち、対象エージェントは待ち行列で待機中であるか否かを判定する（Ｓ３１１）。対象レコードの「状態」の値が「１」である場合（Ｓ３１１でＹｅｓ）、ステップＳ３０９が実行される。対象レコードの「状態」の値が「１」でない場合（Ｓ３１１でＮｏ）、すなわち、対象エージェントは、レジ処理中である場合、ステップＳ３０２以降は実行されずに、図１５の処理は終了する。
【００９６】
続いて、図８のステップＳ１０５の詳細について説明する。図１８は、エージェント間の干渉の回避処理の処理手順の一例を説明するためのフローチャートである。図１８の処理は、二つのエージェントを含む一組に関する処理が示されている。すなわち、ステップＳ１０５では、エージェント情報記憶部２３に記憶されているレコード（エージェント）のうちの二つを一組とする全ての組み合わせに関して、図１８の処理が実行される。
【００９７】
ステップＳ４０１において、干渉回避部１６は、二つのエージェントが、今回のサイクルの移動によって干渉するか否かを判定する。干渉の一形態としては、二つのエージェントの移動経路の一部が重なる例が挙げられる。この場合、二つのエージェントのそれぞれの現在位置を始点とし移動先位置を終点とする二つのベクトル又は線分が、交差するか、又は一部において重なるか否かが判定される。
【００９８】
図１９は、現在位置を始点とし移動先位置を終点とするベクトルが交差又は重なる例を示す図である。図１９において、円は、エージェントを示し、破線の矢印は、現在位置を始点とし、移動先位置を終点とするベクトルを示す。
【００９９】
（１）は、二つのベクトルが交差する例である。（２）は、二つのベクトルの一部が重なる例である。（２）は、特に、二つのエージェントが、待ち行列で待機中である場合に発生する可能性が有る。
【０１００】
当該二つのベクトルが、交差又は一部において重なる場合、二つのエージェントは干渉すると判定される。現在位置及び移動先位置は、それぞれのエージェントに関してエージェント情報記憶部２３（図４）の「現在位置」及び「移動先位置」より特定可能である。
【０１０１】
また、二つのエージェントのそれぞれの移動先位置において、二つのエージェントの範囲の少なくとも一部が重畳することが、干渉であるとされてもよい。すなわち、エージェントは、例えば、カート相当の範囲を有する。したがって、一方のエージェントの範囲の少なくとも一部が、他方のエージェントの範囲に重なる否かによって、干渉の有無が判定されてもよい。
【０１０２】
また、その他の方法によって干渉の有無が判定されてもよい。
【０１０３】
二つのエージェントが干渉する場合（Ｓ４０１でＹｅｓ）、干渉回避部１６は、二つのエージェントの一方を処理対象とする（Ｓ４０２）。以下、処理対象とされたエージェントを「対象エージェント」といい、対象エージェントに対応するエージェント情報記憶部２３（図４）のレコードを、「対象レコード」という。
【０１０４】
続いて、干渉回避部１６は、対象レコードの「状態」の値は「０」であるか、すなわち、対象エージェントは移動中であるか否かを判定する（Ｓ４０３）。対象レコードの「状態」の値が「０」である場合（Ｓ４０３でＹｅｓ）、干渉回避部１６は、所定の回避ルールに従って、対象レコードの「向き」の値を変更する（Ｓ４０４）。すなわち、対象エージェントの進行方向が変更される。回避ルールは、二つのエージェントの干渉が回避されればどのようなものでもよい。例えば、図２０に示されるような回避ルールが採用されてもよい。
【０１０５】
図２０は、回避ルールの一例を示す図である。図２０において、（１）は、干渉すると判定された状態を示す。（１）において、破線のベクトルは、現在の向きにおける移動方向及び移動距離を示す。（１）において、二つのベクトルは交差していないが、移動先位置での範囲の重畳の有無によって干渉の有無が判定される場合、干渉すると判定されうる。
【０１０６】
干渉すると判定された場合、（２）に示されるように、干渉する二つのエージェントの現在位置を直線で結び、当該直線上において干渉を回避する方向に、１サイクル分の移動距離の長さを有するベクトルが作成される。
【０１０７】
続いて、（３）に示されるように、双方のエージェントに関して、当初の移動方向のベクトルと、回避方向のベクトルとの和が求められる。（４）には、当該和が示されている。当該和の方向に、二つのエージェントの向きが変更される。但し、他の方法によって、二つのエージェントの干渉が回避されてもよい。例えば、一方のみのエージェントの向きを変えることで、干渉が回避されてもよい。
【０１０８】
なお、ステップＳ４０４では、ステップＳ４０２において処理対象とされた対象エージェントに関して、向きの変更が行われる。続いて、干渉回避部１６は、対象レコードの「向き」が示す方向に、サイクル時間分だけ移動した場合に到達する移動先の座標値を算出する（Ｓ４０５）。算出結果は、対象レコードの「移動先位置」に記憶される。なお、ステップＳ４０５の処理内容の詳細は、図１５のステップＳ３０９と同様である。
【０１０９】
一方、ステップＳ４０３において、対象レコードの「状態」が「０」でない場合（Ｓ４０３でＮｏ）、干渉回避部１６は、対象レコードの「状態」の値は「１」であるか、すなわち、対象エージェントは、待ち行列で待機中か否かを判定する（Ｓ４０６）。対象レコードの「状態」の値が「１」である場合（Ｓ４０６でＹｅｓ）、干渉回避部１６は、対象レコードの「現在位置」のＸ座標及びＹ座標を、対象レコードの「移動先位置」のＸ座標及びＹ座標に転記する（Ｓ４０７）。この場合、今回のサイクルにおいて、対象エージェントは移動しないことになる。すなわち、待ち行列で待機中のエージェントに関しては、移動しないことによって干渉が回避される。
【０１１０】
ステップＳ４０５又はＳ４０７に続いて、干渉回避部１６は、一組に含まれる二つのエージェントの双方について処理が完了したか否かを判定する（Ｓ４０８）。一方しか処理されていない場合（Ｓ４０８でＮｏ）、二つ目のエージェントについてステップＳ４０２以降が実行される。この際に、ステップＳ４０４が実行される場合であって、図２０に示した回避ルールが適用される場合は、一つ目のエージェントに関してステップＳ４０４が実行された際に、二つのエージェントに関して算出されたそれぞれのベクトルの和を保持していてもよい。二つ目のエージェントに関してステップＳ４０４が実行される場合は、保持されているベクトルの和のうち、当該二つ目のエージェントに関する和が利用されてもよい。二つ目のエージェントに関してステップＳ４０４が実行される時点では、既に一つ目のエージェントの移動先位置が更新されてしまっており、一つ目のエージェントに関して更新後の移動先位置を用いた場合、図２０の通りの回避ルールを適用できないからである。但し、一つ目のエージェントに関して更新後の移動先位置が用いられて、二つ目のエージェントに関して、図２０に示したとおりの演算が行われてもよい。
【０１１１】
一組に含まれる二つのエージェントの双方について処理が完了すると（Ｓ４０８でＹｅｓ）、図１８の処理は終了する。
【０１１２】
続いて、図８のステップＳ１０６の詳細について説明する。図２１は、エージェントごとの状態の更新処理の処理手順の一例を説明するためのフローチャートである。図２１では、一つのエージェントに関する処理が示されている。したがって、ステップＳ１０６では、エージェント情報記憶部２３（図１４）に記憶されている各レコード（各エージェント）について、図２１の処理が実行される。図２１の説明において、処理対象とされているレコードを「対象レコード」といい、対象レコードに係るエージェントを「対象エージェント」という。
【０１１３】
ステップＳ５０１において、状態更新部１７は、対象レコードの「移動先位置」のＸ座標及びＹ座標を、対象レコードの「現在位置」のＸ座標及びＹ座標に転記する。すなわち、対象エージェントが、シミュレーション空間において、現在位置から移動先位置に移動する。
【０１１４】
続いて、状態更新部１７は、対象レコードの「状態」の値は「０」であるか、すなわち、対象エージェントは移動中であるか否かを判定する（Ｓ５０２）。対象レコードの「状態」の値が「０」である場合（Ｓ５０２でＹｅｓ）、状態更新部１７は、対象エージェントが目的地に到達したか否かを判定する（Ｓ５０３）。具体的には、対象レコードの「現在位置」のＸ座標及びＹ座標が、「目的地」のＸ座標及びＹ座標に一致するか否かが判定される。
【０１１５】
対象エージェントが目的地に到達していない場合（Ｓ５０３でＮｏ）、対象エージェントに関して、図２１の処理は終了する。
【０１１６】
対象エージェントが目的地に到達した場合（Ｓ５０３でＹｅｓ）、状態更新部１７は、対象レコードの「目的地」、「状態」、及び「向き」を更新する（Ｓ５０４）。具体的には、「目的地」のＸ座標及びＹ座標には、目的レジに関してレジ情報記憶部２２（図１７）に記憶されている、「待機位置」のＸ座標及びＹ座標が転記される。すなわち、対象エージェントの目的地が、目的レジの待ち行列の最後尾から、目的レジの待機位置に変更される。また、対象レコードの「状態」の値が、「１（待機中）」に更新される。更に、対象レコードの「向き」が、現在位置のＸ座標及びＹ座標を始点とし、更新後の「目的地」のＸ座標及びＹ座標を終点とするベクトルの向き又は当該ベクトルの角度に更新される。
【０１１７】
続いて、待ち行列更新部１８は、対象エージェントの目的レジに関して、レジ情報記憶部２２（図１７）に記憶されている「待ち行列長」及び「最後尾位置」の値を更新する（Ｓ５０５）。具体的には、「待ち行列長」の値に対して１が加算される。また、「最後尾位置」のＸ座標及びＹ座標に、対象レコードの「現在位置」のＸ座標及びＹ座標が転記される。
【０１１８】
一方、対象レコードの「状態」の値が「０」でない場合（Ｓ５０２でＮｏ）、状態更新部１７は、対象レコードの「状態」の値は「１」であるか、すなわち、対象エージェントは待ち行列で待機中であるか否かを判定する（Ｓ５０６）。対象レコードの「状態」の値が「１」である場合（Ｓ５０６でＹｅｓ）、状態更新部１７は、対象エージェントが対象エージェントの目的レジの待ち行列において、最後尾であるか否かを判定する（Ｓ５０７）。対象エージェントが、当該待ち行列において最後尾であるか否かは、例えば、対象エージェントの目的レジの待ち行列に含まれる各エージェントの現在位置の中で、対象エージェントの現在位置が最後尾であるか否かが判定されればよい。対象エージェントの目的レジの待ち行列に含まれるエージェントは、例えば、エージェント情報記憶部２３（図１４）における「目的レジ」の値が、対象レコードの「目的レジ」の値に一致するレコードによって特定される。また、特定された各エージェントの現在位置は、エージェント情報記憶部２３（図１４）における「現在位置」によって特定される。
【０１１９】
対象エージェントが目的レジの待ち行列において最後尾である場合（Ｓ５０３でＹｅｓ）、状態更新部１７は、対象レコードの「現在位置」のＸ座標及びＹ座標を、レジ情報記憶部２２（図１７）において目的レジに対応するレコードの「最後尾位置」に転記する（Ｓ５０８）。
【０１２０】
続いて、状態更新部１７は、対象エージェントが目的地に到達したか否かを判定する（Ｓ５０９）。ステップＳ５０９における判定方法は、ステップＳ５０３と同様である。但し、待ち行列で待機中のエージェントの目的地は、目的レジの待機位置である。したがって、ステップＳ５０９の判定は、対象エージェントが目的レジの待機位置に到達したか否か、すなわち、レジ処理の順番が回ってきたか否かの判定を意味する。
【０１２１】
対象エージェントが目的地に到達していない場合（Ｓ５０９でＮｏ）、対象エージェントに関して、図２１の処理は終了する。
【０１２２】
対象エージェントが目的地に到達した場合（Ｓ５０９でＹｅｓ）、状態更新部１７は、対象エージェントに関してレジ処理の終了時期を算出する（Ｓ５１０）。具体的には、対象レコードの「買上点数」の値に、対象エージェントの目的レジに関してレジ情報記憶部２２（図１７）に記憶されている「処理速度」の値を乗じることにより、レジ処理の所要時間が算出される。当該所要時間を、サイクル時間で除した値を、現在のサイクル数に加算することにより、当該終了時期のサイクル数が算出される。算出された終了時期は、対象レコードの「処理終了時期」に記憶される。なお、現在のサイクル数は、例えば、変数ｔの値を、サイクル時間ｔｃｙｃｌｅで除することにより算出可能である。
【０１２３】
続いて、状態更新部１７は、対象レコードの「状態」の値を「２（処理中）」に更新する（Ｓ５１１）。
【０１２４】
一方、対象レコードの「状態」の値が「１」でない場合（Ｓ５０６でＮｏ）、状態更新部１７は、対象レコードの「状態」の値は「２」であるか、すなわち、対象エージェントはレジ処理中であるか否かを判定する（Ｓ５１２）。対象レコードの「状態」の値が「２」である場合（Ｓ５１２でＹｅｓ）、状態更新部１７は、対象エージェントのレジ処理は終了したか否かを判定する（Ｓ５１３）。具体的には、現在のサイクル数が、対象レコードの「処理終了時期」に記憶されているサイクル数以上であるか否かが判定される。
【０１２５】
現在のサイクル数が、対象レコードの「処理終了時期」に記憶されているサイクル数未満である場合（Ｓ５１３でＮｏ）、対象エージェントに関して、図２１の処理は終了する。
【０１２６】
現在のサイクル数が、対象レコードの「処理終了時期」に記憶されているサイクル数以上である場合（Ｓ５１３でＹｅｓ）、待ち行列更新部１８は、対象エージェントの目的レジに関して、レジ情報記憶部２２（図１７）に記憶されている「待ち行列長」の値から１を減算する（Ｓ５１４）。
【０１２７】
続いて、情報出力部１９は、対象エージェントに関する履歴情報を、対象エージェントのエージェントＩＤに対応付けてエージェント履歴記憶部２６に記憶する（Ｓ５１５）。
【０１２８】
図２２は、エージェント履歴記憶部の構成例を示す図である。図２２において、エージェント履歴記憶部２６は、エージェントごとに、「エージェントＩＤ」、「出現時期」、及び「レジ通過時期」等を記憶する。「出現時期」は、エージェントがシミュレーション空間に出現した時期である。「レジ通過時期」は、エージェントに関してレジ処理が終了した時期である。「出現時期」及び「レジ通過時期」の双方共、シミュレーション開始時からの経過秒数によって表現される。
【０１２９】
したがって、ステップＳ５１５では、対象エージェントに対応する新たなレコードがエージェント履歴記憶部２６に生成され、当該レコードの「出現時期」に、対象レコードの「出現時期」の値が記憶される。また、当該レコードの「レジ通過時期」には、変数ｔの値が記憶される。
【０１３０】
なお、エージェント履歴記憶部２６が記憶する履歴情報は、例えば、出現からレジ通過までの所要時間の分布の検証等に用いることができる。
【０１３１】
続いて、状態更新部１７は、対象レコードを、エージェント情報記憶部２３（図１４）より削除する（Ｓ５１６）。その結果、対象エージェントは、シミュレーション空間から消滅する。
【０１３２】
なお、図８のステップＳ１０７において、表示制御部１１は、エージェント情報記憶部２３に記憶されている情報に基づいて、シミュレーション空間の表示状態を更新する。すなわち、エージェント情報記憶部２３に記憶されているレコードごとに、当該レコードの「現在位置」のＸ座標及びＹ座標の位置に、エージェントを表示させる。サイクルが繰り返されることで、ユーザからは、限定特性、評価特性、及び回避特性を有するエージェントが、いずれかのレジに向かって移動しているように見える。
【０１３３】
以上で、シミュレーションに関する処理手順の説明は終了する。なお、上記では、設定情報記憶部２４に設定できる出現数は１種類（図１２の例では「４００」）である例を示した。しかし、例えば、１時間ごと又は３０分ごと等、時間の経過に対応させて出現数の設定が可能とされてもよい。この場合、変数ｔの値が、出現数が変化する時期になったタイミングで（例えば、１時間経過するごとに）、図１１のステップＳ２０１において使用される、１時間あたりの出現数の値が、設定された値に変更されればよい。
【０１３４】
また、エージェントの移動速度に関しても、エージェントごとに異なるようにしてもよい。この場合、図１１のステップＳ２０５のエージェントの生成時において、例えば、乱数等を利用して、エージェントの移動速度が決定されてもよい。この際、シミュレーション対象の店舗の客層に応じて、移動速度の分布が変化するようにしてもよい。
【０１３５】
更に、レジごと、かつ、シミュレーション開始時からの経過時間ごとに、レジ処理の処理速度が異なるようにしてもよい。レジの担当者の熟練度等によって、レジ処理の処理速度が異なる可能性が有るからである。この場合、レジ処理の処理速度は、レジ情報記憶部２２に記憶されてもよい。図２１のステップＳ５１０では、対象エージェントの目的レジ、及び変数ｔに対応する経過時間に対応する処理速度に基づいて、処理終了時期が算出されればよい。
【０１３６】
続いて、上記において説明した処理手順によって実現されるシミュレーションの実行結果について示す。
【０１３７】
シミュレーションの条件設定の一部は、以下の通りである。図２３は、本実施の形態におけるシミュレーションの条件設定の一部を示す図である。
【０１３８】
（Ａ）に示されるように、シミュレーション時間は、１０時間である。すなわち、（Ａ）における「時刻」は、シミュレーション開始時からの１時間単位の経過時間である。したがって、（Ａ）では、１時間ごとに出現数が変化することが示されている。なお、各時刻の出現数は、本願発明者による１０時から１９時までの観察結果に基づく。したがって、当該シミュレーションは、本願発明者によって観察された店舗について、１０時から１９時までの待ち行列に関するシミュレーションということになる。
【０１３９】
また、出現位置は１０箇所であり、各出現位置における出現割合は、（Ｂ）に示される通りである。
【０１４０】
また、レジは１０台であり、各レジの処理速度は、（Ｃ）に示される通りである。
【０１４１】
また、買上点数は、平均が１４．３、標準偏差が１０．２のガンマ分布に従う。エージェントの視野角度は、左右に１２０度（合計２４０度）、視野距離は１０００ｃｍである。エージェントによるレジの評価傾向は、「１（待ち行列長重視）」固定とし、レジの評価式におけるｗ１の値は、０．７５、ｗ２の値は、０．２５とする。
【０１４２】
なお、シミュレーションの目的は、時間の経過に応じた待ち行列長の変化が、観測結果に近似していること、並びに図２に示される状況Ｂ、及び図３に示される状況Ｃの再現を確認することである。状況Ｃの再現確認の際には、中央付近のレジｒ４、ｒ５、及びｒ６の稼動が停止される。レジの稼働の停止は、例えば、停止されるレジのレコードがレジ情報記憶部２２に登録されないようにしてもよい。または、レジ情報記憶部２２において、稼動中又は非稼動を示す項目を設け、非稼動のレジは、登録されていないものとして扱われてもよい。
【０１４３】
図２４は、第一のシミュレーション結果を示す図である。図２４には、（Ａ）、（Ｂ）、及び（Ｃ）の３つのグラフが示されている。各グラフの横軸は時間、縦軸は人数である。
【０１４４】
（Ａ）は、全てのレジの待ち行列長の合計を、時系列に示したものである。横軸における０〜９の数字は、図２３の（Ａ）の表の時刻に対応する。折れ線グラフは、シミュレーション結果、すなわち、レジ履歴記憶部２５（図１０）が記憶する各レジの待ち行列長を、行毎に合計した値である。なお、図２４では、限定特性、評価特性、及び回避特性の全ての特性が有効とされている。
【０１４５】
９個の白抜きの円（プロット）は、実際の観察結果である。（Ａ）より明らかなように、折れ線グラフは、各プロットの付近を通っている。すなわち、シミュレーション結果は、観察結果に近似しているといえる。
【０１４６】
（Ｂ）は、左右５台ずつの待ち行列長の平均を、時系列に示したものである。実線の折れ線は、右５台（レジｒ６〜ｒ１０）、破線の折れ線は、左５台（レジｒ１〜ｒ５）の待ち行列の平均を示す。（Ｂ）の横軸の時間の尺度は、（Ａ）と異なるが、（Ｂ）における二つの折れ線の違いをより明確に把握可能とするためである。
【０１４７】
（Ｂ）に示されるように、右５台のレジの方が、左５台のレジよりも待ち行列が長くなる傾向に有るというシミュレーション結果が得られた。すなわち、状況Ｂの再現が確認されたといえる。なお、（Ｂ）のグラフに関しても、レジ履歴記憶部２５に記憶された情報を用いて作成可能である。
【０１４８】
（Ｃ）は、状況Ｃの再現確認のためのシミュレーション結果である。すなわち、（Ｃ）は、中央付近のレジｒ４、ｒ５、及びｒ６が非稼動の状態で、右側のレジ４台、左側のレジ３台のそれぞれの待ち行列長の平均を、時系列に示したものである。したがって、（Ｃ）は、（Ａ）及び（Ｂ）とは別に実行されたシミュレーション結果である。
【０１４９】
（Ｃ）に示されるように、特に、シミュレーション開始時から２時間くらいまでの期間において、右側のレジの方が、左側のレジよりも待ち行列が長くなる傾向に有るというシミュレーション結果が得られた。すなわち、状況Ｃの再現が確認されたといえる。なお、（Ｃ）のグラフに関しても、レジ履歴記憶部２５に記憶された情報を用いて作成可能である。
【０１５０】
図２５は、第二のシミュレーション結果を示す図である。図２５は、限定特性、評価特性、及び回避特性のうち、評価特性及び回避特性が無効とされた場合のシミュレーション結果である。
【０１５１】
評価特性を無効とするためには、例えば、図１５のステップＳ３０５を実行せず、ステップＳ３０６において、候補レジ群の中からランダムに目的レジが選択されるようにすればよい。
【０１５２】
また、回避特性を無効とするためには、図１８のステップＳ４０４及びＳ４０５を実行しないようにすればよい。なお、図１８のステップＳ４０７は、本質的には回避特性を実現するための処理ではなく、待ち行列における並び順を維持するための処理である。
【０１５３】
図２５において、（Ａ）、（Ｂ）、及び（Ｃ）のグラフの意味は、図２４と同様である。但し、シミュレーション結果の都合上、各グラフの縦軸の尺度は、図２４と異なる。
【０１５４】
（Ａ）において、待ち行列長のミュレーション結果は、観測結果に対して大きなずれを有する。すなわち、シミュレーション結果において、待ち行列長は再現されていない。有効とされている限定特性によって、特定のレジにエージェントが集中し、待ち行列長が長くなってしまっているためであると考えられる。
【０１５５】
（Ｂ）では、左右のレジの間に待ち行列の偏りは確認される。但し、左側のレジと右側のレジとの待ち行列長の差が現実離れしており、状況Ｂは再現されていないといえる。
【０１５６】
（Ｃ）でも、左右のレジの間に待ち行列の偏りは確認される。但し、（Ｂ）と同様、左側のレジと右側のレジとの待ち行列長の差が現実離れしており、状況Ｃも再現されていないといえる。
【０１５７】
図２６は、第三のシミュレーション結果を示す図である。図２６は、限定特性、評価特性、及び回避特性のうち、限定特性及び回避特性が無効とされた場合のシミュレーション結果である。
【０１５８】
限定特性を無効とするためには、図１５のステップＳ３０２において、常に、全てのレジを候補レジ群とすればよい。
【０１５９】
図２６において、（Ａ）、（Ｂ）、及び（Ｃ）のグラフの意味は、図２４と同様である。但し、シミュレーション結果の都合上、（Ｂ）及び（Ｃ）のグラフの縦軸の尺度は、図２４と異なる。
【０１６０】
（Ａ）において、待ち行列長のシミュレーション結果は、観測結果に近似しているといえる。したがって、待ち行列長については、再現されているといえる。有効とされている評価特性により、各レジの待ち行列長は、ほぼ均等になるためであると考えられる。
【０１６１】
（Ｂ）では、右側のレジの方が、左側のレジよりも待ち行列長が長くなるといった傾向は見られない。したがって、評価特性のみでは、右側のレジへの偏りは生じず、状況Ｂは再現されないといえる。ほぼ同時に出現するエージェントは、出現時に待ち行列の短いレジに集中するため、突発的な偏りは生じるが、その偏りは、いずれのレジでも生じるためであると考えられる。
【０１６２】
（Ｃ）では、左右のレジの間に、待ち行列長の差はほとんど認められない。したがって、状況Ｃは再現されていないといえる。評価特性のみでは、各エージェントは、非稼動のレジを超えて移動するため、左右の間に差が生じないためであると考えられる。
【０１６３】
図２７は、第四のシミュレーション結果を示す図である。図２７は、限定特性、評価特性、及び回避特性のうち、回避特性が無効とされた場合のシミュレーション結果である。図２７において、（Ａ）、（Ｂ）、及び（Ｃ）のグラフの意味は、図２４と同様である。但し、シミュレーション結果の都合上、各グラフの縦軸の尺度は、図２４と異なる。
【０１６４】
（Ａ）において、待ち行列長のミュレーション結果は、観測結果に対して大きなずれを有する。すなわち、待ち行列長は再現されていない。評価特性によって、各レジに均等に並び易くなるが、限定特性によって、レジの選択範囲が限定され、それ以降方向転換が行われず、選択範囲外のレジには並ばなくなってしまうためであると考えられる。
【０１６５】
（Ｂ）において、左右のレジの待ち行列長の間には、定量的には乖離があるが、偏りが生じる状況、すなわち、状況Ｂは再現されているといえる。限定特性によって、レジの選択範囲が限定されることで、左右における待ち行列長の偏りが再現され、評価特性によって、特定のレジへ集中が避けられているためであると考えられる。
【０１６６】
（Ｃ）において、左右のレジの待ち行列長の間には、定量的には乖離があるが、偏りが生じる状況、すなわち、状況Ｃは再現されているといえる。限定特性によって、レジの選択範囲が限定されることで、左右における待ち行列長の偏りが再現され、評価特性によって、特定のレジへ集中が避けられているためであると考えられる。
【０１６７】
上記より、限定特性、評価特性、及び回避特性が揃うことにより、待ち行列長、状況Ｂ、及び状況Ｃの再現が可能になると考えられる。
【０１６８】
上述したように、本実施の形態によれば、シミュレーション空間において顧客の役割を担うエージェントに、限定特性、評価特性、及び回避特性を持たせることにより、実際の観察結果に近似したシミュレーション結果を得ることができる。したがって、本実施の形態の予測装置１０を用いることによって、実際の状況に近似した待ち行列長等を予測できる可能性が高いといえる。すなわち、本実施の形態によれば、複数のレジの待ち状況の予測精度を向上させることができるといえる。
【０１６９】
また、複数存在する出現位置ごとに出現率を変化させることができるため、売り場特性をも考慮して、待ち行列長等の予測を行うこともできる。
【０１７０】
但し、出現位置は、一つであってもよい。出現位置が一つの場合であっても、限定特定及び評価特性等によって、各レジの待ち行列長の偏りを再現可能であると考えられるからである。
【０１７１】
なお、本実施の形態では、店舗におけるレジでの待ち行列をシミュレーションの対象とされた例を示したが、本実施の形態と同様の方法で、他の状況に関してシミュレーションが行われてもよい。例えば、複数の改札が並べられた駅における改札の混雑状況や、複数のゲートが並べられた施設における入場時、又は退場時の各ゲートの混雑状況等のシミュレーションに、本実施の形態と同様の方法が用いられてもよい。また、例えば、高速道路のインターチェンジにおいて、配列された複数の料金所の混雑状況のシミュレーションに本実施の形態と同様の方法が用いられてよい。
【０１７２】
その他、移動体が複数箇所から出現し、複数の通過地点を通過するといった状況が生じうる施設に関して、本実施の形態が適用されてもよい。この場合、移動体は、上記の高速道路の例では、車両であるように、人に限られない。
【０１７３】
なお、本実施の形態において、レジは、通過地点の一例である。移動体データは、エージェント又はエージェント情報記憶部２３のレコードの一例である。出現処理部１２は、生成部の一例である。候補レジ群特定部１３は、特定部の一例である。目的レジ選択部１４は、選択部の一例である。干渉回避部１６は、変更部の一例である。状態更新部１７は、第一の更新部の一例である。待ち行列更新部１８は、第二の更新部の一例である。
【０１７４】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【０１７５】
以上の説明に関し、更に以下の項を開示する。
（付記１）
シミュレーション空間において移動体の進行方向を示す方向情報と、前記シミュレーション空間における１以上の移動開始地点のうちのいずれかに関する座標値と、が付与された移動体データを所定のタイミングで生成し、
一定周期で、移動体データごとに、
当該移動体データの座標値が示す位置から当該移動体データの方向情報が示す方向において所定の範囲に含まれる１以上の通過地点を特定し、
特定された１以上の通過地点の中から、当該移動体データとの位置関係、及び当該通過地点の待ち行列長に基づいて、１つの通過地点を選択し、当該移動体データの方向情報を、選択された通過地点の方向を示す値に更新し、
当該移動体データの方向情報が示す方向に所定距離移動する場合に、他の移動体データと所定の位置関係を形成するかを判定し、
前記所定の位置関係を形成すると判定された場合に、当該移動動体データの方向情報を変更し、
当該移動体データの座標値を、当該移動体データの方向情報が示す方向に所定距離移動した後の座標値に更新する処理と、
複数の通過地点のうちのいずれかの通過地点の所定の範囲内にいずれかの移動体の座標値が含まれた場合に、当該通過地点の待ち行列長を増加させ、
各通過地点の通過時間に基づいて、各通過地点の待ち行列長を減少させる処理とをコンピュータに実行させる予測プログラム。
（付記２）
前記座標値を移動体に付与する処理は、複数の移動開始地点の中から一つの移動開始地点を、各移動開始地点に設定された値の比率に基づいて選択し、選択された移動開始地点の座標値を移動体データに付与する付記１記載の予測プログラム。
（付記３）
シミュレーション空間において移動体の進行方向を示す方向情報と、前記シミュレーション空間における１以上の移動開始地点のうちのいずれかに関する座標値と、が付与された移動体データを所定のタイミングで生成する生成部と、
一定周期で、移動体データごとに、
当該移動体データの座標値が示す位置から当該移動体データの方向情報が示す方向において所定の範囲に含まれる１以上の通過地点を特定する特定部と、
特定された１以上の通過地点の中から、当該移動体データとの位置関係、及び当該通過地点の待ち行列長に基づいて、１つの通過地点を選択し、当該移動体データの方向情報を、選択された通過地点の方向を示す値に更新する選択部と、
当該移動体データの方向情報が示す方向に所定距離移動する場合に、他の移動体データと所定の位置関係を形成するかを判定し、前記所定の位置関係を形成すると判定された場合に、当該移動動体データの方向情報を変更する変更部と、
当該移動体データの座標値を、当該移動体データの方向情報が示す方向に所定距離移動した後の座標値に更新する第一の更新部とを有し、
更に、
複数の通過地点のうちのいずれかの通過地点の所定の範囲内にいずれかの移動体の座標値が含まれた場合に、当該通過地点の待ち行列長を増加させ、各通過地点の通過時間に基づいて、各通過地点の待ち行列長を減少させる第二の更新部を有する予測装置。
（付記４）
前記生成部は、複数の移動開始地点の中から一つの移動開始地点を、各移動開始地点に設定された値の比率に基づいて選択し、選択された移動開始地点の座標値を移動体データに付与する付記３記載の予測装置。
（付記５）
シミュレーション空間において移動体の進行方向を示す方向情報と、前記シミュレーション空間における１以上の移動開始地点のうちのいずれかに関する座標値と、が付与された移動体データを所定のタイミングで生成し、
一定周期で、移動体データごとに、
当該移動体データの座標値が示す位置から当該移動体データの方向情報が示す方向において所定の範囲に含まれる１以上の通過地点を特定し、
特定された１以上の通過地点の中から、当該移動体データとの位置関係、及び当該通過地点の待ち行列長に基づいて、１つの通過地点を選択し、当該移動体データの方向情報を、選択された通過地点の方向を示す値に更新し、
当該移動体データの方向情報が示す方向に所定距離移動する場合に、他の移動体データと所定の位置関係を形成するかを判定し、
前記所定の位置関係を形成すると判定された場合に、当該移動動体データの方向情報を変更し、
当該移動体データの座標値を、当該移動体データの方向情報が示す方向に所定距離移動した後の座標値に更新する処理と、
複数の通過地点のうちのいずれかの通過地点の所定の範囲内にいずれかの移動体の座標値が含まれた場合に、当該通過地点の待ち行列長を増加させ、
各通過地点の通過時間に基づいて、各通過地点の待ち行列長を減少させる処理とをコンピュータが実行する予測方法。
（付記６）
前記座標値を移動体に付与する処理は、複数の移動開始地点の中から一つの移動開始地点を、各移動開始地点に設定された値の比率に基づいて選択し、選択された移動開始地点の座標値を移動体データに付与する付記５記載の予測方法。
【符号の説明】
【０１７６】
１０          予測装置
１１          表示制御部
１２          出現処理部
１３          候補レジ群特定部
１４          目的レジ選択部
１５          移動先算出部
１６          干渉回避部
１７          状態更新部
１８          待ち行列更新部
１９          情報出力部
２１          出現位置情報記憶部
２２          レジ情報記憶部
２３          エージェント情報記憶部
２４        設定情報記憶部
２５          レジ履歴記憶部
２６          エージェント履歴記憶部
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１０６        表示装置
１０７        入力装置
Ｂ            バス
【図１】
0005949179.tif 000002
【図２】
0005949179.tif 000003
【図３】
0005949179.tif 000004
【図４】
0005949179.tif 000005
【図５】
0005949179.tif 000006
【図６】
0005949179.tif 000007
【図７】
0005949179.tif 000008
【図８】
0005949179.tif 000009
【図９】
0005949179.tif 000010
【図１０】
0005949179.tif 000011
【図１１】
0005949179.tif 000012
【図１２】
0005949179.tif 000013
【図１３】
0005949179.tif 000014
【図１４】
0005949179.tif 000015
【図１５】
0005949179.tif 000016
【図１６】
0005949179.tif 000017
【図１７】
0005949179.tif 000018
【図１８】
0005949179.tif 000019
【図１９】
0005949179.tif 000020
【図２０】
0005949179.tif 000021
【図２１】
0005949179.tif 000022
【図２２】
0005949179.tif 000023
【図２３】
0005949179.tif 000024
【図２４】
0005949179.tif 000025
【図２５】
0005949179.tif 000026
【図２６】
0005949179.tif 000027
【図２７】
0005949179.tif 000028