JP2017211721A - Multi-agent simulation device, multi-agent simulation method, and multi-agent simulation program - Google Patents

Multi-agent simulation device, multi-agent simulation method, and multi-agent simulation program Download PDF

Info

Publication number
JP2017211721A
JP2017211721A JP2016102693A JP2016102693A JP2017211721A JP 2017211721 A JP2017211721 A JP 2017211721A JP 2016102693 A JP2016102693 A JP 2016102693A JP 2016102693 A JP2016102693 A JP 2016102693A JP 2017211721 A JP2017211721 A JP 2017211721A
Authority
JP
Japan
Prior art keywords
agent
repulsive force
determined
range
shoulder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016102693A
Other languages
Japanese (ja)
Other versions
JP6561013B2 (en
Inventor
達史 松林
Tatsufumi Matsubayashi
達史 松林
川添 雄彦
Katsuhiko Kawazoe
雄彦 川添
寛 清武
Hiroshi Kiyotake
寛 清武
匡宏 幸島
Masahiro Kojima
匡宏 幸島
澤田 宏
Hiroshi Sawada
宏 澤田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2016102693A priority Critical patent/JP6561013B2/en
Publication of JP2017211721A publication Critical patent/JP2017211721A/en
Application granted granted Critical
Publication of JP6561013B2 publication Critical patent/JP6561013B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

PROBLEM TO BE SOLVED: To reduce the amount of calculation in a multi-agent simulation.SOLUTION: When, with an agent i as a point of reference, an other agent is located in a nearby area 90, a resultant force of body repulsive force and shoulder repulsive force is set as a repulsive force that the agent i receives from the other agent; when the other agent is located in an intermediate area 92, the shoulder repulsive force is ignored and only the body repulsive force is set as the resultant repulsive force; when the other agent is located in a far area 94, the body repulsive force and the shoulder repulsive force are ignored and the position of the agent i is calculated, in which way a multi-agent simulation is performed. Thus, the shoulder repulsive force may be ignored, or the body repulsive force and the shoulder repulsive force may be ignored, and the amount of calculation can thereby be reduced.SELECTED DRAWING: Figure 10

Description

本発明は、マルチエージェントシミュレーション装置、マルチエージェントシミュレーション方法、及びマルチエージェントシミュレーションプログラムに関する。   The present invention relates to a multi-agent simulation apparatus, a multi-agent simulation method, and a multi-agent simulation program.

近年、経済学をはじめとする社会科学分野において様々な社会現象をシミュレートするために、マルチエージェントシミュレーション(Multi Agent−Simulation: MAS)が用いられるようになった。マルチエージェントシミュレーションとは、多数のエージェントが影響しあうことを繰り返し、これにより引き起こされるマクロな現象をシミュレートするものである。例えば、狭い建物内に配置した複数の人間を表すエージェントを定義し、緊急時の人間の避難状況をシミュレートする場合や、交差点内に配置した複数の車を表すエージェントを定義し、渋滞発生と緩和をシミュレートする場合などがある。   In recent years, in order to simulate various social phenomena in the field of social science including economics, multi-agent simulation (MAS) has been used. Multi-agent simulation is to simulate a macro phenomenon caused by repeated effects of many agents. For example, if you define an agent that represents multiple people placed in a narrow building to simulate an emergency human evacuation situation, or define an agent that represents multiple vehicles placed in an intersection, There are cases where relaxation is simulated.

図11には、人の大きさのモデルが示されている。例えば、人の動きをシミュレートするマルチエージェントシミュレーションにおいて、人を、図11に示すように、上方(又は下方)から見た「肩幅60cm× 厚み45cm」の楕円要素として表現する。   FIG. 11 shows a model of the size of a person. For example, in a multi-agent simulation that simulates the movement of a person, as shown in FIG. 11, the person is expressed as an elliptical element having a “shoulder width of 60 cm × thickness of 45 cm” viewed from above (or below).

非特許文献1における拡張個別要素法(Extended Distinct Element Method(EDEM))では、任意の2つの楕円体のペアの衝突判定を行っている。下記のような4段階の接触判定を用いることで、従来の楕円要素同士の衝突判定より計算を簡略化している。図12には、あるエージェントを中心とする3つの仮想円が示されている。   According to the Extended Distinct Element Method (EDEM) in Non-Patent Document 1, collision determination of any two pairs of ellipsoids is performed. By using the following four-step contact determination, the calculation is simplified compared to the conventional collision determination between elliptical elements. FIG. 12 shows three virtual circles centered on a certain agent.

第1のステップで、あるエージェントを中心とする第1の仮想円100(パーソナルスペースの半径rの3倍の半径の円)内で、他のエージェントと接触しているのかを判定する。   In the first step, it is determined whether the agent is in contact with another agent in the first virtual circle 100 (a circle having a radius three times the radius r of the personal space) centered on a certain agent.

第1のステップが肯定判定の場合に、第2のステップで、上記のあるエージェントを中心とする第2の仮想円102(パーソナルスペースの半径の円)内で、他のエージェントと接触しているのかを判定する。   If the first step is affirmative, the second step is in contact with another agent in the second virtual circle 102 (circle of the radius of the personal space) centered on the agent described above. It is determined whether.

第2のステップが肯定判定の場合に、第3のステップで、上記のあるエージェントを中心とする第3の仮想円104(肩幅を直径とした円)内で、他のエージェントと接触しているのかを判定する。   If the second step is affirmative, the third step is in contact with another agent in the third virtual circle 104 (a circle having a shoulder width as a diameter) centered on the agent described above. It is determined whether.

第3のステップが肯定判定の場合に、第4のステップで、上記のあるエージェントと他のエージェントの上記楕円要素(図1参照)同士が接触しているのかを判定する。   When the third step is affirmative, it is determined in the fourth step whether the above-mentioned elliptical elements (see FIG. 1) of one agent and another agent are in contact with each other.

非特許文献2における楕円型RVO(Elliptical Reciprocal Velocity Obstacles(ERVO))モデルでは、任意の2つの楕円体の衝突判定を行うために、下記のステップ(STEP)を用いる。図13には、ERVOモデルを使ったシミュレーションにおける各STEPでの概念図が示されている。楕円要素同士の衝突の判定のための計算量は、円要素同士の衝突の判定のための計算量よりもはるかに多いので、座標変換行列を用いて、楕円要素を円要素に変換する。STEP1における楕円要素Aを、STEP2に示すように、円A′に変換する。当該座標変換行列を用いて、楕円要素Bは、歪楕円要素B′になる。   In the elliptical RVO (Elliptical Reciprocal Velocity Obstacles (ERVO)) model in Non-Patent Document 2, the following steps (STEP) are used to perform collision determination between any two ellipsoids. FIG. 13 shows a conceptual diagram at each STEP in the simulation using the ERVO model. Since the calculation amount for determining the collision between the ellipse elements is much larger than the calculation amount for determining the collision between the circular elements, the ellipse element is converted into a circular element using a coordinate conversion matrix. As shown in STEP2, the elliptic element A in STEP1 is converted into a circle A '. Using the coordinate transformation matrix, the ellipse element B becomes a distorted ellipse element B ′.

STEP3で、円A′の半径を歪楕円要素B′に加算することにより、歪楕円要素B′を歪楕円要素Dに変換する。これにより、点Cと歪楕円要素Dとの衝突判定に置換される。   In STEP 3, the distorted ellipse element B ′ is converted into the distorted ellipse element D by adding the radius of the circle A ′ to the distorted ellipse element B ′. This replaces the collision determination between the point C and the distorted ellipse element D.

STEP4で、点C、歪楕円要素Dを、点C′、円要素D′に変換し、STEP5で、点C′と円要素D′とが衝突するか否か判断し、点C′と円要素D′とが衝突すると判断した場合には、楕円要素Aと楕円要素Bとが衝突すると判断する。   At STEP 4, the point C and the distorted ellipse element D are converted to the point C ′ and the circular element D ′. At STEP 5, it is determined whether the point C ′ and the circular element D ′ collide with each other. If it is determined that the element D ′ collides, it is determined that the elliptical element A and the elliptical element B collide.

杉本太一、目黒公郎著、「都市施設の安全性評価を目的とした群衆挙動の解析的研究」、生産研究56.3 (2004)、p.223-226Taichi Sugimoto, Kimuro Meguro, “Analytical study of crowd behavior for the purpose of safety assessment of urban facilities”, Production Research 56.3 (2004), p.223-226 安福健祐著、「楕円型RVO モデルを用いた高密度群集流動の再現」、日本建築学会技術報告集17.35 (2011)、p.187-190Kensuke Yasufuku, “Reproduction of high-density crowd flow using an elliptical RVO model”, Architectural Institute of Japan Technical Report 17.35 (2011), p. 187-190

ところで、非特許文献1の発明では、上記第1のステップ〜第3のステップの何れかが否定判定された場合には、第4のステップでの楕円要素同士が接触しているのかの判定が実行されないので、全てのペアで楕円要素同士の接触判定を回避している。しかし、エージェントが他のエージェントと接触する場合には、4度の接触判定を行っているため、計算量が多くなる。   By the way, in the invention of Non-Patent Document 1, when any of the first step to the third step is negatively determined, it is determined whether the elliptical elements are in contact with each other in the fourth step. Since it is not executed, contact determination between ellipse elements is avoided in all pairs. However, when the agent contacts another agent, the contact determination is performed four times, so that the calculation amount increases.

また、非特許文献2の発明では、直接楕円要素同士の距離を求めずに、空間の変換を計算して衝突の判定を行っている。座標変換行列を用いて、変換した空間での距離を計算している。しかし、全ての楕円体のペア間で距離の計算を行うには計算量が非常に多くなり、近傍のエージェント間での計算でも比較的計算量が多くなる。   In the invention of Non-Patent Document 2, collision determination is performed by calculating a spatial transformation without directly obtaining the distance between the elliptical elements. Using the coordinate transformation matrix, the distance in the transformed space is calculated. However, the calculation amount is very large for calculating the distance between all pairs of ellipsoids, and the calculation amount is relatively large even in the calculation between neighboring agents.

本発明は、上記の課題に鑑みてなされたもので、マルチエージェントシミュレーションにおいて計算量を少なくすることができるマルチエージェントシミュレーション装置、マルチエージェントシミュレーション方法、及びマルチエージェントシミュレーションプログラムを提供することを目的とする。   The present invention has been made in view of the above problems, and an object of the present invention is to provide a multi-agent simulation apparatus, a multi-agent simulation method, and a multi-agent simulation program that can reduce the amount of calculation in multi-agent simulation. .

上記の目的を達成するために請求項1に記載の発明に係るマルチエージェントシミュレーション装置は、各々体と肩とを点で表現することにより人をモデル化した複数のエージェントの各々について、他のエージェントから受ける反発力として、前記他のエージェントとの体間の距離が長くなれば小さくなるように定めた体反発力と、前記他のエージェントとの肩間の距離が長くなれば小さくなるように定めた肩反発力との合力を設定する反発力設定部と、前記複数のエージェントの各々について、前記設定された反発力と予め設定された進行方向に進もうとする力とに基づいて、前記エージェントの位置を計算する計算部と、を備えている。   In order to achieve the above object, the multi-agent simulation apparatus according to the first aspect of the present invention provides another agent for each of a plurality of agents that model a person by expressing a body and a shoulder as points. The repulsive force received from the body is determined to decrease as the distance between the body and the other agent increases, and to decrease as the distance between the shoulder and the other agent increases. A repulsive force setting unit for setting a resultant force with the shoulder repulsive force, and for each of the plurality of agents, the agent is based on the set repulsive force and a force to advance in a predetermined traveling direction. And a calculation unit for calculating the position of.

反発力設定部は、各々体と肩とを点で表現することにより人をモデル化した複数のエージェントの各々について、他のエージェントから受ける反発力として、前記他のエージェントとの体間の距離が長くなれば小さくなるように定めた体反発力と、前記他のエージェントとの肩間の距離が長くなれば小さくなるように定めた肩反発力との合力を設定する。   The repulsive force setting unit, for each of a plurality of agents that modeled a person by expressing the body and shoulders as points, represents the repulsive force received from other agents as the distance between the other agents and the body. A resultant force is set between a body repulsive force determined to decrease as the length increases and a shoulder repulsive force determined to decrease as the distance between the shoulders with the other agents increases.

計算部は、前記複数のエージェントの各々について、前記設定された反発力と予め設定された進行方向に進もうとする力とに基づいて、前記エージェントの位置を計算する。   The calculation unit calculates the position of the agent for each of the plurality of agents based on the set repulsive force and a force to advance in a preset traveling direction.

このように、複数のエージェントの各々において、体と肩とを点で表現することにより人をモデル化し、他のエージェントから受ける反発力を設定し、設定された反発力と予め設定された進行方向に進もうとする力とに基づいて、前記エージェントの位置を計算する。よって、座標変換などの計算をしないことができ、計算量を少なくすることができる。   In this way, in each of a plurality of agents, a person is modeled by expressing the body and shoulders as points, the repulsive force received from other agents is set, the set repulsive force and the preset traveling direction The position of the agent is calculated on the basis of the force to go to. Therefore, calculations such as coordinate conversion can be omitted, and the amount of calculation can be reduced.

請求項2に記載の発明に係るマルチエージェントシミュレーション装置は、請求項1に記載の発明において、前記複数のエージェントの各々について、他のエージェントが、前記エージェントの位置を基準とした第1の範囲の中に存在するか否かを判断する判断部を更に備え、前記反発力設定部は、前記他のエージェントが前記第1の範囲の中に存在すると判断された場合には、前記他のエージェントから受ける反発力として、前記体反発力と、前記肩反発力との合力を設定し、前記他のエージェントが前記第1の範囲の中に存在すると判断されなかった場合には、前記反発力として、前記体反発力のみを設定する。   A multi-agent simulation apparatus according to a second aspect of the present invention is the multi-agent simulation apparatus according to the first aspect, wherein for each of the plurality of agents, another agent has a first range based on the position of the agent. The repulsive force setting unit determines whether the other agent is present in the first range from the other agent when it is determined that the other agent exists in the first range. As the repulsive force to be received, the resultant force of the body repulsive force and the shoulder repulsive force is set, and when it is not determined that the other agent exists in the first range, Only the body repulsive force is set.

このように、前記他のエージェントが前記第1の範囲の中に存在すると判断された場合には、前記他のエージェントから受ける反発力として、前記体反発力と、前記肩反発力との合力を設定する。しかし、前記他のエージェントが前記第1の範囲の中に存在すると判断されなかった場合には、前記反発力として、前記体反発力のみを設定する。従って、前記他のエージェントが前記第1の範囲の中に存在すると判断されなかった場合には、前記反発力として、前記体反発力のみを考慮し、肩反発力を考慮しないので、計算量を少なくすることができる。   As described above, when it is determined that the other agent exists within the first range, the resultant force of the body repulsive force and the shoulder repulsive force is obtained as the repulsive force received from the other agent. Set. However, if it is not determined that the other agent exists in the first range, only the body repulsive force is set as the repulsive force. Therefore, when it is not determined that the other agent is present in the first range, only the body repulsive force is considered as the repulsive force, and the shoulder repulsive force is not considered. Can be reduced.

請求項3に記載の発明に係るマルチエージェントシミュレーション装置は、請求項2に記載の発明において、前記判断部は、前記他のエージェントが前記第1の範囲の中に存在すると判断されなかった場合には、前記他のエージェントが、前記第1の範囲より外側の所定の面積の第2の範囲の中に存在するか否かを更に判断し、前記反発力設定部は、前記他のエージェントが前記第2の範囲の中に存在すると判断された場合にのみ、前記反発力として、前記体反発力のみを設定し、前記計算部は、前記他のエージェントが前記第2の範囲の中に存在すると判断されなかった場合には、前記進行方向に進もうとする力のみに基づいて、前記エージェントの位置を計算する。   A multi-agent simulation apparatus according to a third aspect of the present invention is the multi-agent simulation apparatus according to the second aspect, wherein the determination unit determines that the other agent is not present in the first range. Further determines whether or not the other agent exists in a second range having a predetermined area outside the first range, and the repulsive force setting unit determines that the other agent Only when it is determined that it exists in the second range, only the body repulsive force is set as the repulsive force, and the calculation unit determines that the other agent exists in the second range. If not determined, the position of the agent is calculated based only on the force to advance in the direction of travel.

このように、前記他のエージェントが前記第2の範囲の中に存在すると判断された場合にのみ、前記反発力として、前記体反発力のみを設定する。しかし、前記他のエージェントが前記第2の範囲の中に存在すると判断されなかった場合には、前記進行方向に進もうとする力のみに基づいて、前記エージェントの位置を計算する。従って、前記他のエージェントが前記第2の範囲の中に存在すると判断されなかった場合には、反発力を考慮しないので、計算量を更に少なくすることができる。   In this way, only the body repulsive force is set as the repulsive force only when it is determined that the other agent exists within the second range. However, if it is not determined that the other agent is present in the second range, the position of the agent is calculated based only on the force to move in the traveling direction. Therefore, when it is not determined that the other agent exists in the second range, the repulsive force is not taken into consideration, so that the calculation amount can be further reduced.

本発明に係るマルチエージェントシミュレーションプログラムは、コンピュータを、請求項1〜請求項3の何れか1項に記載のマルチエージェントシミュレーション装置の各部として機能させるためのプログラムである。   The multi-agent simulation program according to the present invention is a program for causing a computer to function as each part of the multi-agent simulation apparatus according to any one of claims 1 to 3.

以上説明したように、本発明の、マルチエージェントシミュレーション装置、方法、及びプログラムによれば、マルチエージェントシミュレーションにおいて計算量を少なくすることができる、という効果が得られる。   As described above, according to the multi-agent simulation apparatus, method, and program of the present invention, it is possible to reduce the amount of calculation in the multi-agent simulation.

マルチエージェントシミュレーションシステム10のブロック図である。1 is a block diagram of a multi-agent simulation system 10. FIG. エージェントiがエージェントjから受ける反発力Fijの概念図である。It is a conceptual diagram of the repulsive force Fij which the agent i receives from the agent j. エージェントiがエージェントjから受ける反発力Fijと、エージェントiがエージェントj から受ける体全体の体反発力fbody ij及びエージェントiの各肩がエージェントjの各肩から受ける反発力fshold ijとの関係を示す図である。The repulsive force F ij that the agent i receives from the agent j, the body repulsive force f body ij that the agent i receives from the agent j, and the repulsive force f hold ij that each shoulder of the agent i receives from each shoulder of the agent j It is a figure which shows a relationship. α=1、β=3として、人(エージェントi)が別の人(エージェントj)から受ける反発力Fijを計算した結果を示す図である。It is a figure which shows the result of having calculated the repulsive force Fij which a person (agent i) receives from another person (agent j) as (alpha) = 1 and (beta) = 3. マルチエージェントシミュレーション装置12が実行するマルチエージェントシミュレーションプログラムを示すフローチャートである。It is a flowchart which shows the multi agent simulation program which the multi agent simulation apparatus 12 performs. マルチエージェントシミュレーションのための初期処理を説明する図である。It is a figure explaining the initial process for multi-agent simulation. 周期境界条件を説明する図である。It is a figure explaining a periodic boundary condition. 肩を考慮せずに体からの反発力のみを計算したケースでのシミュレーション結果を示す図である。It is a figure which shows the simulation result in the case where only the repulsive force from the body was calculated without considering the shoulder. 肩を考慮して計算をしたケースでのシミュレーション結果を示す図である。It is a figure which shows the simulation result in the case where it calculated in consideration of the shoulder. 変形例におけるエージェントiに対してエージェントjが遠方、中間位置、近傍に位置しているかを判断する方法を説明する図である。It is a figure explaining the method to judge whether the agent j is located in a distant place, an intermediate position, and the vicinity with respect to the agent i in a modification. 人の大きさのモデルを示す図である。It is a figure which shows the model of a person's size. あるエージェントを中心とする3つの仮想円を示す図である。It is a figure which shows three virtual circles centering on a certain agent. RVOモデルを使ったシミュレーションにおける各STEPの概念図である。It is a conceptual diagram of each STEP in the simulation using an RVO model.

以下、図面を参照して本発明の実施の形態を詳細に説明する。
(構成)
図1には、マルチエージェントシミュレーションシステム10のブロック図が示されている。図1に示すように、マルチエージェントシミュレーションシステム10は、マルチエージェントシミュレーション装置12と、表示装置14とを備えている。マルチエージェントシミュレーション装置12は、後述するマルチエージェントシミュレーションにおける初期処理を実行する初期処理部16と、マルチエージェントシミュレーションの回数を更新する回数更新部18と、を備えている。マルチエージェントシミュレーション装置12は、初期処理終了後に、エージェントの位置を判断する判断部26、後述する反発力を設定する反発力設定部20と、設定された反発力に基づいて、エージェントの位置を計算する計算部22とを備えている。マルチエージェントシミュレーション装置12は、計算された位置にエージェントが画面上で移動するように表示装置14を制御する制御部24を備えている。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
(Constitution)
FIG. 1 shows a block diagram of a multi-agent simulation system 10. As shown in FIG. 1, the multi-agent simulation system 10 includes a multi-agent simulation device 12 and a display device 14. The multi-agent simulation apparatus 12 includes an initial processing unit 16 that executes initial processing in multi-agent simulation described later, and a number update unit 18 that updates the number of multi-agent simulations. The multi-agent simulation apparatus 12 calculates the position of the agent based on the set repulsive force after the initial processing is completed, the determination unit 26 that determines the position of the agent, the repulsive force setting unit 20 that sets the repulsive force described later. And a calculation unit 22 that performs the calculation. The multi-agent simulation device 12 includes a control unit 24 that controls the display device 14 so that the agent moves on the screen to the calculated position.

マルチエージェントシミュレーション装置12は、図示しないCPU、ROM、メモリ、及び後述するマルチエージェントシミュレーションプログラムを記憶する記憶装置などを含んで構成されている。CPUが記憶装置に記憶されたマルチエージェントシミュレーションプログラムを実行することで、CPUは、上記各部(16〜26)として機能する。   The multi-agent simulation apparatus 12 includes a CPU, a ROM, a memory (not shown), and a storage device that stores a multi-agent simulation program to be described later. When the CPU executes the multi-agent simulation program stored in the storage device, the CPU functions as each of the units (16 to 26).

次に、反発力について説明する。人は、正面から自分の方に近づく別の人とぶつからないように、事前に自分の進行方向を変える。このように人が自分の進行方向を変えるのは、別の人とぶつかって受ける物理的な力によるもではない。これは、お互いのパーソナルスペースを保とうとするため、もしくはぶつかるのを避けるために、自分と別の人との間に距離を保とうと心理的に作用する力によるものである。本実施の形態では、このように心理的に作用する力を反発力という。本実施の形態では、この反発力は、エージェントの部位と別のエージェントの部位との間の距離が長くなれば小さくなるように定めている。具体的には、エージェントiがエージェントjから受ける反発力Fijは、 Next, the repulsive force will be described. The person changes his / her direction in advance so that he / she does not collide with another person approaching himself / herself from the front. It is not due to the physical force that a person encounters with another person that changes his or her own direction of travel. This is due to the force acting psychologically to keep a distance between yourself and another person in order to keep each other's personal space or to avoid colliding. In the present embodiment, such a psychologically acting force is called a repulsive force. In the present embodiment, the repulsive force is determined so as to decrease as the distance between the agent site and another agent site increases. Specifically, the repulsive force F ij that the agent i receives from the agent j is

と表す。ここで、fbody ijは、エージェントiがエージェントj から受ける体全体の体反発力である。fshold ijは、エージェントiの各肩がエージェントjの各肩から受ける肩反発力である。a、b は体反発力及び肩反発力のそれぞれにおける係数である。α、β はそれぞれの反発力の関数を冪関数の冪指数である。rijはエージェントiとエージェントjの相対距離ベクトルで、エージェントi、jの座標をそれぞれ、xi、xjとした場合、rijは以下となる。なお、xi、xjは、各エージェントの体の所定の水平面内の中心位置を基準に定められている。なお、高さ方向の位置は考慮されてはいない。 It expresses. Here, f body ij is the body repulsive force of the whole body that agent i receives from agent j. f hold ij is a shoulder repulsion force that each shoulder of agent i receives from each shoulder of agent j. a and b are coefficients in body repulsive force and shoulder repulsive force, respectively. α and β are the functions of the repulsive forces, and the power exponents of the power functions. r ij is a relative distance vector between the agent i and the agent j. When the coordinates of the agents i and j are x i and x j , respectively, r ij is as follows. Note that x i and x j are determined based on the center position in a predetermined horizontal plane of the body of each agent. Note that the position in the height direction is not considered.

shold ijにおけるrrr ij はエージェントiの右肩とエージェントjの右肩の相対距離ベクトルである。rrl ij はエージェントiの右肩とエージェントjの左肩の相対距離ベクトルである。rlr ij はエージェントiの左肩とエージェントjの右肩の相対距離ベクトルである。rll ij はエージェントiの左肩とエージェントjの左肩の相対距離ベクトルである。これらの相対距離ベクトルは、エージェントiの右肩、左肩をそれぞれ、xright i、xleft i とし、エージェントjの右肩、左肩をそれぞれ、xright j、xleft jとすると、次の通りである。 r rr ij in f shold ij is the right shoulder of the relative distance vector of the right shoulder and agent j agent i. r rl ij is a relative distance vector between the right shoulder of agent i and the left shoulder of agent j. r lr ij is a relative distance vector between the left shoulder of agent i and the right shoulder of agent j. r ll ij is a relative distance vector between the left shoulder of agent i and the left shoulder of agent j. These relative distance vectors are as follows, assuming that the right shoulder and left shoulder of agent i are x right i and x left i , respectively, and the right shoulder and left shoulder of agent j are x right j and x left j respectively. is there.

ここで、エージェントの右肩は、エージェントの進行方向に対する右側の肩であり、エージェントの左肩は、エージェントの進行方向に対する左側の肩である。xright i、xleft i 、xright j、xleft jは、各エージェントの各肩の部分の所定の水平面内の中心位置を基準に定められている。なお、高さ方向の位置は考慮されてはいない。 Here, the right shoulder of the agent is the right shoulder with respect to the traveling direction of the agent, and the left shoulder of the agent is the left shoulder with respect to the traveling direction of the agent. xright i , x left i , x right j , and x left j are determined based on the center position in a predetermined horizontal plane of each shoulder portion of each agent. Note that the position in the height direction is not considered.

本実施の形態では、人を、体の所定の水平面内の中心位置、及び各肩の部分の所定の水平面内の中心位置の3点で表している。   In the present embodiment, a person is represented by three points: a center position in a predetermined horizontal plane of the body and a center position in a predetermined horizontal plane of each shoulder portion.

図2には、エージェントiがエージェントjから受ける反発力Fijの概念が示されている。図3には、エージェントiがエージェントjから受ける反発力Fijと、エージェントiがエージェントj から受ける体全体の体反発力fbody ij及びエージェントiの各肩がエージェントjの各肩から受ける反発力fshold ijとの関係が示されている。エージェントiがエージェントjから受ける反発力Fijは、エージェントiがエージェントjから受ける体全体の体反発力fbody ijと、エージェントiの各肩がエージェントjの各肩から受ける肩反発力fshold ijとの合力である。 FIG. 2 shows the concept of the repulsive force F ij that the agent i receives from the agent j. FIG. 3 shows the repulsive force F ij that the agent i receives from the agent j, the body repulsive force f body ij that the agent i receives from the agent j, and the repulsive force that each shoulder of the agent i receives from each shoulder of the agent j. The relationship with f hold ij is shown. The repulsive force F ij that the agent i receives from the agent j includes the body repulsive force f body ij that the agent i receives from the agent j and the shoulder repulsive force f hold ij that each shoulder of the agent i receives from each shoulder of the agent j. Is the combined force.

次に、本実施の形態において、マルチエージェントシミュレーションにおいて計算量を少なくする方法を説明する。   Next, a method for reducing the amount of calculation in the multi-agent simulation in the present embodiment will be described.

(第1の方法)
人は、別の人が自分の近傍に位置していると、体同士がぶつからないことばかりではなく、肩同士がぶつからないことも考慮して、自分の進行方向を変える。よって、別の人が自分の近傍に位置していると、人が別の人から受ける反発力は、体全体の体反発力と、肩反発力とにより定まる。一方、別の人が近傍より遠方に位置すると、体同士がぶつからないことを考慮するが、肩同士がぶつからないことは考慮しない。よって、別の人が近傍より遠方に位置すると、人が別の人から受ける反発力Fijは、体全体の体反発力のみにより定まる。以上から、本実施の形態では、体全体の体反発力fbody ij、肩反発力fshold ijにおける冪指数については、α<βとする。この場合、別の人が近傍より遠方に位置すると、体全体の体反発力fbody ijに比べて、肩反発力fshold ijは、無視できるぐらい小さくなる。そこで、マルチエージェントシミュレーションでは、まず、別の人が近傍に位置する場合には、人が別の人から受ける反発力Fijとして、体全体の体反発力fbody ijと、肩反発力fshold ijとを設定する。しかし、別の人が近傍より遠方に位置する場合には、人が別の人から受ける反発力Fijとして、体全体の体反発力fbody ijのみを設定、即ち、近似して、肩反発力fshold ijは無視することにより、計算量を少なくすることができる。
(First method)
When another person is located in the vicinity of the person, the person changes his / her direction of travel considering not only that the bodies do not collide with each other but also that the shoulders do not collide. Therefore, when another person is located in the vicinity of himself / herself, the repulsive force that the person receives from another person is determined by the body repulsive force of the whole body and the shoulder repulsive force. On the other hand, when another person is located far from the vicinity, it is considered that the bodies do not collide, but the shoulders do not collide. Therefore, when another person is located far from the vicinity, the repulsive force F ij that the person receives from another person is determined only by the body repulsive force of the whole body. From the above, in the present embodiment, it is assumed that α <β for the heel index in the body repulsive force f body ij and the shoulder repulsive force f hold ij of the whole body. In this case, when another person is located farther from the vicinity, the shoulder repulsive force f hold ij is smaller than the total body repelling force f body ij so that it can be ignored. Therefore, in the multi-agent simulation, first, when another person is located in the vicinity, as the repulsive force F ij that the person receives from another person, the body repulsive force f body ij of the whole body and the shoulder repulsive force f hold ij is set. However, when another person is located far from the vicinity, only the body repulsive force f body ij of the whole body is set as the repulsive force F ij that the person receives from another person. By ignoring the force f hold ij , the amount of calculation can be reduced.

図4には、α=1、β=3として、第1の方法に従って、人(エージェントi)が別の人(エージェントj)から受ける反発力Fijを計算した結果が示されている。図4のx軸、y軸は上記水平面の位置を示し、高さは、反発力Fijを示す。なお、x軸、y軸の1は、30cmである。(x、y)=(0、0)にエージェントiが位置する。エージェントjがx−y平面の各位置に位置する場合、図4に示すように、近傍では肩からの反発力が効く反面、遠ざかると体からの反発力fbody ijのみの影響になっていることが分かる。 FIG. 4 shows the result of calculating the repulsive force F ij that a person (agent i) receives from another person (agent j) according to the first method, with α = 1 and β = 3. The x-axis and y-axis in FIG. 4 indicate the position of the horizontal plane, and the height indicates the repulsive force Fij . Note that 1 in the x-axis and y-axis is 30 cm. Agent i is located at (x, y) = (0, 0). When the agent j is located at each position on the xy plane, as shown in FIG. 4, the repulsive force from the shoulder is effective in the vicinity, while the rebounding force f body ij from the body is only affected when moving away. I understand that.

(第2の方法)
上記第1の方法では、別の人が近傍より遠方(周辺)に位置する場合には、人が別の人から受ける反発力Fijとして、体全体の体反発力fbody ijのみを計算し、肩反発力fshold ijは計算しないことにより、計算量を少なくしている。しかし、別の人が、周辺よりも更に遠方に位置すると、体同士がぶつからないことをも考慮しない。そこで、マルチエージェントシミュレーションでは、別の人が近傍に位置する場合には、人が別の人から受ける反発力Fijとして、体全体の体反発力fbody ijと、肩反発力fshold ijとを設定する。別の人が近傍より遠方(周辺:中間位置)に位置する場合には、人が別の人から受ける反発力Fijとして、体全体の体反発力fbody ijのみを設定し、肩反発力fshold ijは無視する。別の人が中間位置より更に遠方に位置する場合には、人が別の人から受ける反発力Fij自体を計算しない。このように、別の人が周辺より遠方に位置する場合には、人が別の人から受ける反発力Fij自体を計算しないことにより、計算量を、第1の方法より少なくすることができる。なお、具体的には、例えば、2<α<βとする。
(Second method)
In the first method, when another person is located far from (near) the vicinity, only the body repulsive force f body ij of the whole body is calculated as the repulsive force F ij that the person receives from another person. The calculation amount is reduced by not calculating the shoulder repulsive force f hold ij . However, it does not take into account that when another person is located farther away than the surroundings, the bodies do not collide with each other. Therefore, in the multi-agent simulation, when another person is located in the vicinity, as the repulsive force F ij that the person receives from another person, the body repulsive force f body ij and the shoulder repulsive force f hold ij Set. When another person is located far from the vicinity (periphery: intermediate position), only the body repulsive force f body ij of the whole body is set as the repulsive force F ij that the person receives from another person, and the shoulder repulsive force f hold ij is ignored. When another person is located farther from the intermediate position, the repulsive force F ij that the person receives from another person is not calculated. In this way, when another person is located far from the surroundings, the calculation amount can be made smaller than that in the first method by not calculating the repulsive force F ij itself that the person receives from another person. . Specifically, for example, 2 <α <β.

(作用)
次に、本実施の形態の作用を説明する。
図5は、マルチエージェントシミュレーション装置12が実行するマルチエージェントシミュレーションプログラムを示すフローチャートである。
図5のステップ32〜38で、初期処理部16は、初期処理を実行する。図6は、マルチエージェントシミュレーションのための初期処理を説明する図である。図7は、周期境界条件を説明する図である。
(Function)
Next, the operation of the present embodiment will be described.
FIG. 5 is a flowchart showing a multi-agent simulation program executed by the multi-agent simulation apparatus 12.
In steps 32 to 38 in FIG. 5, the initial processing unit 16 executes initial processing. FIG. 6 is a diagram illustrating an initial process for multi-agent simulation. FIG. 7 is a diagram for explaining the periodic boundary condition.

初期処理部16は、図5のステップ32で、図6に示すように、右に進むエージェント群72を生成し、ステップ34で、左に進むエージェント群74を生成する。具体的には、初期処理部16は、右に進むエージェント群72には右方向に進もうとする力を設定し、左に進むエージェント群74には左方向に進もうとする力を設定する。ステップ36で、各エージェントの初期配置(エージェントの位置と右肩の位置と左肩の位置)をランダムに設定する。   As shown in FIG. 6, the initial processing unit 16 generates an agent group 72 that proceeds to the right as shown in FIG. 6, and generates an agent group 74 that proceeds to the left at step 34. Specifically, the initial processing unit 16 sets a force to move in the right direction to the agent group 72 that moves to the right, and sets a force to move in the left direction to the agent group 74 that moves to the left. . In step 36, the initial arrangement of each agent (agent position, right shoulder position, and left shoulder position) is randomly set.

ステップ38で、初期処理部16は、境界条件を設定する。図6に示すように、境界条件として、エージェントの横方向への進行を規制する壁76、78を与え、左右の両端80には周期境界条件として右端から左端へ、左端から右端へ移動可能とする。図7に示すように、壁76、78、左右の両端80により区切られる領域82において、左右の両端80では、エージェントが右端から左端へ、左端から右端へ移動可能となっている。なお、領域82には、ターゲットとなるI個のエージェントが存在する。   In step 38, the initial processing unit 16 sets a boundary condition. As shown in FIG. 6, walls 76 and 78 that restrict the agent from moving in the lateral direction are provided as boundary conditions, and the left and right ends 80 can move from the right end to the left end and from the left end to the right end as periodic boundary conditions. To do. As shown in FIG. 7, in the area 82 delimited by the walls 76 and 78 and the left and right ends 80, the agent can move from the right end to the left end and from the left end to the right end at the left and right ends 80. In the area 82, there are I agents as targets.

図5のステップ40で、回数更新部18は、シミュレーションの回数を識別する変数tを0に初期化し、ステップ42で、回数更新部18は、変数tを1インクリメントする。   In step 40 of FIG. 5, the number updating unit 18 initializes a variable t for identifying the number of simulations to 0, and in step 42, the number updating unit 18 increments the variable t by 1.

ステップ44で、反発力設定部20は、上記領域82の中にいる合計I個のエージェントの各々を識別する変数i、上記領域82の中にいる、変数iで識別されるエージェント以外の合計J個(=I−1)のエージェントを識別する変数jを0に初期化する。ステップ46で、反発力設定部20は、変数iを1インクリメントし、ステップ48で、反発力設定部20は、変数jを1インクリメントする。   In step 44, the repulsive force setting unit 20 determines a variable i for identifying each of the total I agents in the area 82, and a total J other than the agents identified in the area 82 by the variable i. A variable j for identifying (= I−1) agents is initialized to zero. In step 46, the repulsive force setting unit 20 increments the variable i by 1. In step 48, the repulsive force setting unit 20 increments the variable j by 1.

ここで、エージェントiを基準にエージェントjがどこに位置するのかが、反発力の計算量の減少には重要である。エージェントiを基準にエージェントjが、近傍、遠方、近傍と遠方との中間位置に位置するかを判断する。   Here, where agent j is located with respect to agent i is important for reducing the amount of calculation of repulsive force. Based on the agent i, it is determined whether the agent j is located in the vicinity, the distance, or an intermediate position between the vicinity and the distance.

そこで、本実施の形態では、まず、ステップ50で、反発力設定部20は、上記ステップ38で設定された、又は後述するステップ64で計算されたエージェントi及びエージェントjの位置に基づいて、エージェントiとエージェントjとのユークリッド距離rijを計算する。 Therefore, in the present embodiment, first, in step 50, the repulsive force setting unit 20 determines the agent based on the positions of the agent i and the agent j set in step 38 or calculated in step 64 described later. Euclidean distance r ij between i and agent j is calculated.

そして、ステップ52で、判断部26は、ユークリッド距離rijが第1の距離r以上か否かを判断することにより、エージェントiに対してエージェントjが遠方に位置しているかを判断する。エージェントiに対してエージェントjが遠方に位置していると判断された場合には、ステップ54で、反発力設定部20は、エージェントjから受けるエージェントiの反発力Fijに0を設定する。なお、その後、処理はステップ62に進む。 In step 52, the determination unit 26 determines whether the agent j is located far from the agent i by determining whether the Euclidean distance r ij is equal to or greater than the first distance r 1 . When it is determined that the agent j is located far from the agent i, the repulsive force setting unit 20 sets 0 to the repulsive force F ij of the agent i received from the agent j in step 54. Thereafter, the process proceeds to step 62.

エージェントiに対してエージェントjが遠方に位置していると判断されなかった場合には、ステップ56で、判断部26は、エージェントiに対してエージェントjが、中間位置(第2の範囲)に位置するかを判断する。具体的には、判断部26は、ユークリッド距離rijが、第1の距離rよりも短く、かつ第1の距離rよりも短い第2の距離r以上か否かを判断する。エージェントiに対してエージェントjが中間位置に位置すると判断された場合には、ステップ58で、反発力設定部20は、上記ステップ50で計算されたユークリッド距離rijと、エージェントi及びエージェントjの位置とに基づいて、エージェントjから受けるエージェントiの反発力Fijに、体反発力fbody ijを設定する。なお、その後、処理はステップ62に進む。 If it is not determined that the agent j is located far from the agent i, in step 56, the determination unit 26 determines that the agent j is in the intermediate position (second range) with respect to the agent i. Determine if it is located. Specifically, the determination unit 26, the Euclidean distance r ij is shorter than the first distance r 1, and determines whether or not shorter second distance r 0 or more than the first distance r 1. If it is determined that the agent j is located at the intermediate position with respect to the agent i, the repulsive force setting unit 20 determines in step 58 the Euclidean distance r ij calculated in step 50 and the agent i and agent j. Based on the position, the body repulsive force f body ij is set as the repulsive force F ij of the agent i received from the agent j. Thereafter, the process proceeds to step 62.

エージェントiに対してエージェントjが中間位置に位置すると判断されなかった場合には、エージェントiに対してエージェントjが近傍(第1の範囲)に位置していると判断できるので、ステップ60で、反発力設定部20は、上記ステップ50で計算されたユークリッド距離rijと、エージェントi及びエージェントjの位置と、右肩の位置と、左肩の位置とに基づいて、エージェントjから受けるエージェントiの反発力Fijに、fbody ij(体反発力)+fshold ij(肩反発力)を設定する。なお、その後、処理はステップ62に進む。 If it is not determined that the agent j is located at the intermediate position with respect to the agent i, it can be determined that the agent j is located in the vicinity (first range) with respect to the agent i. The repulsive force setting unit 20 determines the agent i received from the agent j based on the Euclidean distance r ij calculated in step 50, the positions of the agent i and the agent j, the position of the right shoulder, and the position of the left shoulder. For the repulsive force F ij , f body ij (body repulsive force) + f hold ij (shoulder repulsive force) is set. Thereafter, the process proceeds to step 62.

ステップ62で、反発力設定部20は、変数jが、上記領域82の中にいる、変数iで識別されるエージェント以外のエージェントの合計の数である総数J(=I−1)か否かを判断する。変数jが総数Jでないと判断された場合には、エージェントiに対する反発力が設定されていないエージェントがあるので、処理はステップ48に戻って、以上の処理(ステップ48〜62)を繰り返す。変数jが総数Jであると判断された場合には、エージェントiに反発力が設定されていないエージェントがないので、処理はステップ64に進む。   In step 62, the repulsive force setting unit 20 determines whether or not the variable j is the total number J (= I-1), which is the total number of agents other than the agent identified by the variable i in the area 82. Judging. If it is determined that the variable j is not the total number J, since there is an agent for which the repulsive force for the agent i is not set, the processing returns to step 48 and repeats the above processing (steps 48 to 62). If it is determined that the variable j is the total number J, there is no agent for which no repulsive force is set for the agent i, and the process proceeds to step 64.

ステップ64で、計算部22は、以下の式(9)〜(11)を計算して、エージェントiの位置xi(t+1)を計算すると共に、エージェントiの右肩の位置及び左肩の位置を計算する。 In step 64, the calculation unit 22 calculates the following formulas (9) to (11) to calculate the position x i (t + 1) of the agent i, and calculates the right shoulder position and the left shoulder position of the agent i. calculate.

i(t) は、前回のシミュレーション時(t−1)におけるエージェントiの座標である。Vi(t) は前回のシミュレーション時(t−1)におけるエージェントiの速度である。γは、速度を距離に変換する係数である。Fi(t) は、エージェントiにかかる力である。具体的には、Fi(t) は、他の全てのエージェント(j=1〜J)から受け、かつ上記設定された反発力Fijの合力、上記初期処理で設定された進行方向に進もうとする力、及び壁76、78から受ける反発力の合力である。δは、力を速度に変換する係数である。Vmax は、エージェントの速度の絶対値の上限である。 x i (t) is the coordinate of agent i at the time of the previous simulation (t−1). V i (t) is the speed of agent i at the time of the previous simulation (t−1). γ is a coefficient for converting speed into distance. F i (t) is the force applied to agent i. Specifically, F i (t) is received from all other agents (j = 1 to J) and proceeds in the traveling direction set in the initial process, the resultant force of the set repulsive force F ij. The resultant force and the resultant repulsive force received from the walls 76 and 78. δ is a coefficient for converting force into velocity. V max is the upper limit of the absolute value of the agent speed.

ステップ66で、反発力設定部20は、変数iが総数Iに等しいか否かを判断する。変数iが総数Iに等しくない場合には、今回のシミュレーション時(t)において反発力が設定されずに、位置が計算されていないエージェントがあるので、処理はステップ46に戻って、以上の処理(ステップ46〜66)を実行する。   In step 66, the repulsive force setting unit 20 determines whether or not the variable i is equal to the total number I. If the variable i is not equal to the total number I, the repulsive force is not set at the time of this simulation (t), and there is an agent whose position has not been calculated. (Steps 46 to 66) are executed.

変数iが総数Iに等しいと判断された場合には、今回のシミュレーション時(t)において、全てのエージェントについて位置が計算されたので、ステップ68で、制御部24は、各エージェント(j=1〜J)が、位置xi(t+1)に画面上で移動するように、表示装置14を制御する。 If it is determined that the variable i is equal to the total number I, the position is calculated for all the agents at the time of this simulation (t). Therefore, in step 68, the control unit 24 determines each agent (j = 1). -J) controls the display device 14 to move to the position x i (t + 1) on the screen.

ステップ70で、回数更新部18は、変数tがシミュレーションの回数の総数T(例えば、10000回 )に等しいか否かを判断する。変数tが総数Tに等しくない場合には、シミュレーションする必要があるので、処理はステップ42に戻って、以上の処理(ステップ42〜70)を実行する。変数tが総数Tに等しい場合には、シミュレーションする必要がないので、本マルチエージェントシミュレーションプログラムの実行を終了する。   In step 70, the number updating unit 18 determines whether or not the variable t is equal to the total number T of simulations (for example, 10,000 times). If the variable t is not equal to the total number T, it is necessary to perform simulation, so the processing returns to step 42 and the above processing (steps 42 to 70) is executed. When the variable t is equal to the total number T, it is not necessary to perform simulation, so the execution of the multi-agent simulation program is terminated.

図8には、肩を考慮せずに体からの反発力のみを計算したケースでのシミュレーション結果が示されている。図9には、肩を考慮して計算をしたケースでのシミュレーション結果が示されている。図9に示すように、肩が当たることを考慮した方が、肩を考慮しない場合(図8)より、エージェント同士の正面衝突を回避する傾向があり、かつ同じ方向に進むエージェント同士では並んで進もうとする傾向が強くなる。より現実的な『狭い通路での混雑状況では、列を作って並んで人が流れる』という現象を再現することができる。   FIG. 8 shows a simulation result in a case where only the repulsive force from the body is calculated without considering the shoulder. FIG. 9 shows a simulation result in a case where calculation is performed in consideration of the shoulder. As shown in FIG. 9, it is more prone to avoid a frontal collision between agents when the shoulder is in contact than when the shoulder is not considered (FIG. 8), and agents traveling in the same direction are lined up. The tendency to move forward becomes stronger. It is possible to reproduce the more realistic phenomenon of "people flowing side by side in a crowded situation in a narrow passage".

(効果)
以上説明したように、第1の実施の形態によれば、両肩及び体を点として人が別の人から受ける反発力Fijを計算するので、座標変換などの計算をしないことができ、計算量を少なくすることができる。
(effect)
As described above, according to the first embodiment, the repulsive force F ij that a person receives from another person with both shoulders and body as points is calculated. The amount of calculation can be reduced.

第1の実施の形態では、別の人が周辺に位置する場合には、人が別の人から受ける反発力Fijとして、体反発力fbody ijのみを計算し、肩反発力fshold ijは計算しないことにより、計算量を少なくすることができる。計算の効率化も図ることができる。 In the first embodiment, when another person is located in the vicinity, only the body repulsive force f body ij is calculated as the repulsive force F ij that the person receives from another person, and the shoulder repulsive force f hold ij is calculated. The calculation amount can be reduced by not calculating. Calculation efficiency can also be improved.

また、第1の実施の形態では、別の人が周辺より遠方に位置する場合には、人が別の人から受ける反発力Fij自体を計算しないことにより、計算量を更に少なくすることができる。計算の効率化も更に図ることができる。 Further, in the first embodiment, when another person is located far from the periphery, the calculation amount may be further reduced by not calculating the repulsive force F ij itself that the person receives from another person. it can. Calculation efficiency can be further improved.

(変形例)
以上説明した実施の形態では、エージェントiに対してエージェントjが遠方、中間位置、近傍に位置しているかの判断を次のよう実行している。即ち、ステップ50で、反発力設定部20は、エージェントiとエージェントjとのユークリッド距離rijを計算する。ステップ52、56で、計算されたユークリッド距離rijと、第1の距離r、第2の距離rとを比較して、エージェントiに対してエージェントjが遠方、中間位置に位置しているかの判断をしている。本発明では、これに限定されず、次のように判断することができる。
(Modification)
In the embodiment described above, it is determined whether the agent j is located far away, in the middle position, or near the agent i as follows. That is, in step 50, the repulsive force setting unit 20 calculates the Euclidean distance r ij between the agent i and the agent j. In steps 52 and 56, the calculated Euclidean distance r ij is compared with the first distance r 1 and the second distance r 0, and the agent j is located farther and intermediate than the agent i. Judgment is made. The present invention is not limited to this, and can be determined as follows.

図10には、エージェントiに対してエージェントjが遠方、中間位置、近傍に位置しているかを判断する別の方法を説明する図である。図10に示すように、領域82を、各々面積が等しい正方形の複数の小領域に予め分割しておく。   FIG. 10 is a diagram for explaining another method for determining whether the agent j is located far away, at an intermediate position, or in the vicinity of the agent i. As shown in FIG. 10, the region 82 is divided in advance into a plurality of square small regions having the same area.

ステップ50では、反発力設定部20は、ユークリッド距離rijを計算することに代えて、エージェントiの位置を基準に、近傍の領域90、中間位置の領域92、遠方の領域94を設定する。例えば、エージェントiの位置に対応する小領域を取り囲む8個の小領域を近傍の領域90として設定する。近傍の領域90を取り囲む16個の小領域と、16個の小領域を取り囲む24個の小領域とを、中間位置の領域92として設定する。中間位置の領域の外側の全ての小領域を遠方の領域94として設定する。 In step 50, instead of calculating the Euclidean distance r ij , the repulsive force setting unit 20 sets a near area 90, an intermediate position area 92, and a far area 94 based on the position of the agent i. For example, eight small areas surrounding the small area corresponding to the position of the agent i are set as the neighboring areas 90. The 16 small areas surrounding the neighboring area 90 and the 24 small areas surrounding the 16 small areas are set as the intermediate position area 92. All the small areas outside the intermediate position area are set as the far areas 94.

ステップ52では、反発力設定部20は、エージェントjに対応する小領域が遠方の領域94に位置するか否かを判断する。また、ステップ56では、反発力設定部20は、エージェントjに対応する小領域が中間位置の領域92に位置するか否かを判断する。   In step 52, the repulsive force setting unit 20 determines whether or not the small region corresponding to the agent j is located in the far region 94. In step 56, the repulsive force setting unit 20 determines whether or not the small area corresponding to the agent j is located in the intermediate area 92.

このように、エージェントjに対応する小領域が近傍の領域90、中間位置の領域92、遠方の領域94の何れに位置するかを判断すれば、ユークリッド距離を計算しかつ第1の距離r1、第2の距離r0と比較することよりも、計算量を少なくすることができる。   Thus, if it is determined whether the small region corresponding to the agent j is located in the nearby region 90, the intermediate region 92, or the far region 94, the Euclidean distance is calculated and the first distance r1, Compared with the second distance r0, the amount of calculation can be reduced.

図10に示す変形例では、中間位置の領域92を、各々面積が等しい正方形の複数の小領域に予め分割している。本発明では、これに限定されず、次のようにすることができる。中間位置の領域92内において、より外側の領域の小領域の面積をより大きくする。例えば、近傍の領域90を取り囲む16個の小領域を取り囲む領域を、16個の小領域の各々の2倍の面積の小領域に分割する。即ち、図10の中間位置の領域92における上記24個の小領域を2個併せた、各々2倍の面積の合計12個の小領域に分割する。そして、2倍の面積の小領域に、複数のエージェントが位置する場合には、反発力Fijを近似計算する。即ち、2倍の面積の小領域に位置する複数のエージェント、例えば、3個のエージェントの内、最も内側に位置するエージェントとの反発力を計算し、計算した反発力を3倍する。また、本願発明は、当該最も内側に位置するエージェントとの反発力を3倍することに限定されない。例えば、3個のエージェントの重心座標を用いて反発力を計算する。更に、本願発明は、上記のように、近傍の領域90を取り囲む16個の小領域を取り囲む領域を、16個の小領域の各々の2倍の面積の小領域に分割して、上記のように反発力を計算することに限定されない。例えば、上記少領域内に複数のエージェントがある場合には、重心座標を用いて反発力を計算する。以上のように反発力を近似計算するので、計算量をより少なくすることができる。なお、近傍の領域90は、「第1の範囲」に対応する。中間位置の領域92は、「第2の範囲」に対応する。 In the modification shown in FIG. 10, the region 92 at the intermediate position is divided in advance into a plurality of square small regions having the same area. In this invention, it is not limited to this, It can do as follows. In the region 92 at the intermediate position, the area of the small region in the outer region is increased. For example, a region surrounding 16 small regions surrounding the neighboring region 90 is divided into small regions each having an area twice as large as each of the 16 small regions. That is, the 24 small regions in the region 92 at the intermediate position in FIG. 10 are combined and divided into 12 small regions each having a doubled area. When a plurality of agents are located in a small area having a double area, the repulsive force F ij is approximately calculated. That is, the repulsive force with a plurality of agents located in a small area having a double area, for example, the agent located in the innermost of the three agents is calculated, and the calculated repulsive force is tripled. The present invention is not limited to triple the repulsive force with the innermost agent. For example, the repulsive force is calculated using the barycentric coordinates of three agents. Further, in the present invention, as described above, the area surrounding the 16 small areas surrounding the adjacent area 90 is divided into small areas each having twice the area of each of the 16 small areas, as described above. It is not limited to calculating the repulsive force. For example, when there are a plurality of agents in the small area, the repulsive force is calculated using the barycentric coordinates. Since the repulsive force is approximately calculated as described above, the amount of calculation can be further reduced. The neighboring region 90 corresponds to the “first range”. The region 92 at the intermediate position corresponds to the “second range”.

また、前述して実施の形態では、肩反発力を、エージェントiの両肩とエージェントjの両肩との関係で定めている。本願発明はこれに限定されない。エージェントiの両肩とエージェントjの両肩の内、ぶつかりやすい最も近い肩のペアのみの関係で定めるようにしてもよい。   In the embodiment described above, the shoulder repulsion force is determined by the relationship between both shoulders of agent i and agent j. The present invention is not limited to this. You may make it determine only the pair of the nearest shoulder which is easy to collide among both shoulders of the agent i and the shoulders of the agent j.

なお、マルチエージェントシミュレーションプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。   Note that the multi-agent simulation program may be recorded on a computer-readable recording medium, and the program recorded on the recording medium may be read by a computer system and executed. Here, the “computer system” may include an OS and hardware such as peripheral devices. Further, the “computer system” includes a homepage providing environment (or display environment) if a WWW system is used. The “computer-readable recording medium” means a flexible disk, a magneto-optical disk, a ROM, a writable nonvolatile memory such as a flash memory, a portable medium such as a CD-ROM, a hard disk built in a computer system, etc. This is a storage device.

さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。   Further, the “computer-readable recording medium” means a volatile memory (for example, DRAM (Dynamic DRAM) in a computer system that becomes a server or a client when a program is transmitted through a network such as the Internet or a communication line such as a telephone line. Random Access Memory)) is also included that holds a program for a certain period of time. The program may be transmitted from a computer system storing the program in a storage device or the like to another computer system via a transmission medium or by a transmission wave in the transmission medium. Here, the “transmission medium” for transmitting the program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line. The program may be for realizing a part of the functions described above. Furthermore, what can implement | achieve the function mentioned above in combination with the program already recorded on the computer system, and what is called a difference file (difference program) may be sufficient.

以上、この発明の実施の形態について図面を参照して詳述してきたが、具体的な構成はこの実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。   The embodiment of the present invention has been described in detail with reference to the drawings. However, the specific configuration is not limited to this embodiment, and includes a design and the like within a scope not departing from the gist of the present invention. .

(応用例)
以上説明した実施の形態は、マルチエージェントシミュレーションの分野において、特に通路や、駅のホーム、混雑しているイベント会場付近での人の流れの解析分野などに応用することができる。
(Application examples)
The embodiment described above can be applied in the field of multi-agent simulation, especially in the field of analyzing passages, station platforms, crowded event venues, and the like.

10 マルチエージェントシミュレーションシステム
12 マルチエージェントシミュレーション装置
14 表示装置
16 初期処理部
18 回数更新部
20 反発力設定部
22 計算部
24 制御部
26 判断部
DESCRIPTION OF SYMBOLS 10 Multi agent simulation system 12 Multi agent simulation apparatus 14 Display apparatus 16 Initial process part 18 Count update part 20 Repulsive force setting part 22 Calculation part 24 Control part 26 Judgment part

Claims (7)

各々体と肩とを点で表現することにより人をモデル化した複数のエージェントの各々について、他のエージェントから受ける反発力として、前記他のエージェントとの体間の距離が長くなれば小さくなるように定めた体反発力と、前記他のエージェントとの肩間の距離が長くなれば小さくなるように定めた肩反発力との合力を設定する反発力設定部と、
前記複数のエージェントの各々について、前記設定された反発力と予め設定された進行方向に進もうとする力とに基づいて、前記エージェントの位置を計算する計算部と、
を備えるマルチエージェントシミュレーション装置。
For each of a plurality of agents who modeled a person by expressing their body and shoulders as points, the repulsive force received from other agents will decrease as the distance between the other agents increases. A repulsive force setting unit that sets a resultant force between the body repulsive force determined in (1) and the shoulder repulsive force determined so as to decrease as the distance between the shoulders with the other agent increases.
For each of the plurality of agents, a calculation unit that calculates the position of the agent based on the set repulsive force and a force to advance in a preset traveling direction;
A multi-agent simulation apparatus comprising:
前記複数のエージェントの各々について、他のエージェントが、前記エージェントの位置を基準とした第1の範囲の中に存在するか否かを判断する判断部を更に備え、
前記反発力設定部は、前記他のエージェントが前記第1の範囲の中に存在すると判断された場合には、前記他のエージェントから受ける反発力として、前記体反発力と、前記肩反発力との合力を設定し、前記他のエージェントが前記第1の範囲の中に存在すると判断されなかった場合には、前記反発力として、前記体反発力のみを設定する請求項1記載のマルチエージェントシミュレーション装置。
For each of the plurality of agents, further comprising: a determination unit that determines whether another agent exists within a first range based on the position of the agent;
When it is determined that the other agent is present in the first range, the repulsive force setting unit includes the body repulsive force and the shoulder repulsive force as repulsive forces received from the other agent. 2. The multi-agent simulation according to claim 1, wherein if the other agent is not determined to be in the first range, only the body repulsive force is set as the repulsive force. apparatus.
前記判断部は、前記他のエージェントが前記第1の範囲の中に存在すると判断されなかった場合には、前記他のエージェントが、前記第1の範囲より外側の所定の面積の第2の範囲の中に存在するか否かを更に判断し、
前記反発力設定部は、前記他のエージェントが前記第2の範囲の中に存在すると判断された場合にのみ、前記反発力として、前記体反発力のみを設定し、
前記計算部は、前記他のエージェントが前記第2の範囲の中に存在すると判断されなかった場合には、前記進行方向に進もうとする力のみに基づいて、前記エージェントの位置を計算する、
請求項2記載のマルチエージェントシミュレーション装置。
If it is not determined that the other agent exists in the first range, the determining unit determines that the other agent has a second area having a predetermined area outside the first range. To further determine whether it exists in
The repulsive force setting unit sets only the body repulsive force as the repulsive force only when it is determined that the other agent exists in the second range,
The calculation unit calculates the position of the agent based on only the force to move in the traveling direction when it is not determined that the other agent exists in the second range.
The multi-agent simulation apparatus according to claim 2.
各々体と肩とを点で表現することにより人をモデル化した複数のエージェントの各々について、他のエージェントから受ける反発力として、前記他のエージェントとの体間の距離が長くなれば小さくなるように定めた体反発力と、前記他のエージェントとの肩間の距離が長くなれば小さくなるように定めた肩反発力との合力を設定し、
前記複数のエージェントの各々について、前記設定された反発力と予め設定された進行方向に進もうとする力とに基づいて、前記エージェントの位置を計算する、
マルチエージェントシミュレーション方法。
For each of a plurality of agents who modeled a person by expressing their body and shoulders as points, the repulsive force received from other agents will decrease as the distance between the other agents increases. And set the resultant force of the body repulsive force determined to be smaller and the shoulder repulsive force determined to be smaller if the distance between the shoulders with the other agent is longer,
For each of the plurality of agents, the position of the agent is calculated based on the set repulsive force and a force to advance in a preset traveling direction.
Multi-agent simulation method.
前記複数のエージェントの各々について、他のエージェントが、前記エージェントの位置を基準とした第1の範囲の中に存在するか否かを判断し、
前記他のエージェントが前記第1の範囲の中に存在すると判断された場合には、前記他のエージェントから受ける反発力として、前記体反発力と、前記肩反発力との合力を設定し、前記他のエージェントが前記第1の範囲の中に存在すると判断されなかった場合には、前記反発力として、前記体反発力のみを設定する請求項4記載のマルチエージェントシミュレーション方法。
For each of the plurality of agents, determine whether another agent exists within a first range based on the position of the agent;
When it is determined that the other agent is present in the first range, a resultant force of the body repulsive force and the shoulder repulsive force is set as a repulsive force received from the other agent, 5. The multi-agent simulation method according to claim 4, wherein, when it is not determined that another agent exists in the first range, only the body repulsive force is set as the repulsive force.
前記他のエージェントが前記第1の範囲の中に存在すると判断されなかった場合には、前記他のエージェントが、前記第1の範囲より外側の所定の面積の第2の範囲の中に存在するか否かを更に判断し、
前記他のエージェントが前記第2の範囲の中に存在すると判断された場合にのみ、前記反発力として、前記体反発力のみを設定し、
前記他のエージェントが前記第2の範囲の中に存在すると判断されなかった場合には、前記進行方向に進もうとする力のみに基づいて、前記エージェントの位置を計算する、
請求項5記載のマルチエージェントシミュレーション方法。
If it is not determined that the other agent exists in the first range, the other agent exists in the second range having a predetermined area outside the first range. Whether or not
Only when it is determined that the other agent exists in the second range, only the body repulsive force is set as the repulsive force,
If it is not determined that the other agent is in the second range, calculate the position of the agent based only on the force to advance in the direction of travel;
The multi-agent simulation method according to claim 5.
コンピュータを、請求項1〜請求項3の何れか1項に記載のマルチエージェントシミュレーション装置の各部として機能させるためのマルチエージェントシミュレーションプログラム。   The multi-agent simulation program for functioning a computer as each part of the multi-agent simulation apparatus of any one of Claims 1-3.
JP2016102693A 2016-05-23 2016-05-23 Multi-agent simulation apparatus, multi-agent simulation method, and multi-agent simulation program Active JP6561013B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016102693A JP6561013B2 (en) 2016-05-23 2016-05-23 Multi-agent simulation apparatus, multi-agent simulation method, and multi-agent simulation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016102693A JP6561013B2 (en) 2016-05-23 2016-05-23 Multi-agent simulation apparatus, multi-agent simulation method, and multi-agent simulation program

Publications (2)

Publication Number Publication Date
JP2017211721A true JP2017211721A (en) 2017-11-30
JP6561013B2 JP6561013B2 (en) 2019-08-14

Family

ID=60475508

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016102693A Active JP6561013B2 (en) 2016-05-23 2016-05-23 Multi-agent simulation apparatus, multi-agent simulation method, and multi-agent simulation program

Country Status (1)

Country Link
JP (1) JP6561013B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022097246A1 (en) * 2020-11-05 2022-05-12 日本電信電話株式会社 Movement prediction device, movement prediction method, and movement prediction program

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040059548A1 (en) * 2002-09-09 2004-03-25 Marios Kagarlis Method of simulating movement of an autonomous entity through an environment
JP2006174930A (en) * 2004-12-21 2006-07-06 Koei:Kk Character group movement control program, storage medium and game device
US20090306946A1 (en) * 2008-04-08 2009-12-10 Norman I Badler Methods and systems for simulation and representation of agents in a high-density autonomous crowd
US20130033500A1 (en) * 2011-08-01 2013-02-07 Michael Girard Dynamic collision avoidance for crowd simulation over structured paths that intersect at waypoints
CN104331917A (en) * 2014-10-22 2015-02-04 电子科技大学 Panic crowd escape simulation method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040059548A1 (en) * 2002-09-09 2004-03-25 Marios Kagarlis Method of simulating movement of an autonomous entity through an environment
JP2006174930A (en) * 2004-12-21 2006-07-06 Koei:Kk Character group movement control program, storage medium and game device
US20090306946A1 (en) * 2008-04-08 2009-12-10 Norman I Badler Methods and systems for simulation and representation of agents in a high-density autonomous crowd
US20130033500A1 (en) * 2011-08-01 2013-02-07 Michael Girard Dynamic collision avoidance for crowd simulation over structured paths that intersect at waypoints
CN104331917A (en) * 2014-10-22 2015-02-04 电子科技大学 Panic crowd escape simulation method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
安福 健祐: "楕円型RVOモデルを用いた高密度群集流動の再現", 日本建築学会技術報告集, vol. 17, no. 35, JPN6019027045, February 2011 (2011-02-01), pages 187 - 190, ISSN: 0004075159 *
猪鹿倉 貴史: "パーソナルスペースを考慮した群集挙動モデリング", システム/制御/情報, vol. 57, no. 10, JPN6019027046, 15 October 2013 (2013-10-15), pages 345 - 354, ISSN: 0004075160 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022097246A1 (en) * 2020-11-05 2022-05-12 日本電信電話株式会社 Movement prediction device, movement prediction method, and movement prediction program
JP7435820B2 (en) 2020-11-05 2024-02-21 日本電信電話株式会社 Movement prediction device, movement prediction method, and movement prediction program

Also Published As

Publication number Publication date
JP6561013B2 (en) 2019-08-14

Similar Documents

Publication Publication Date Title
CN105740514B (en) A kind of large-scale crowd evacuation computer simulation system and its method
Pelechano et al. Modeling crowd and trained leader behavior during building evacuation
Jiang et al. Continuum crowd simulation in complex environments
CN104239636B (en) Fire emergency evacuation simulation method
Cassol et al. Evaluating and optimizing evacuation plans for crowd egress
CN110795833B (en) Crowd evacuation simulation method, system, medium and equipment based on cat swarm algorithm
CN107665282B (en) Crowd evacuation simulation method and system based on heterogeneous emotional infection model
CN109974737A (en) Route planning method and system based on combination of safety evacuation signs and reinforcement learning
Oğuz et al. Emergency crowd simulation for outdoor environments
CN111639809A (en) Multi-agent evacuation simulation method and system based on leaders and panic emotions
TWI512679B (en) Method of computing a collision-free velocity for an agent in a crowd simulation environment
CN107704667B (en) Crowd movement simulation method, device and system for simulating clustering
CN105468801A (en) Simulation method and system for crowd evacuation in public place
CN108446469B (en) Video-driven group behavior evacuation simulation method and device
CN104317297A (en) Robot obstacle avoidance method under unknown environment
Liu et al. A perception‐based emotion contagion model in crowd emergent evacuation simulation
Chu et al. Incorporating individual behavior, knowledge, and roles in simulating evacuation
JP6561013B2 (en) Multi-agent simulation apparatus, multi-agent simulation method, and multi-agent simulation program
CN115577574A (en) Method, device and equipment for calculating position of diversion rail and readable storage medium
Nasir et al. A survey on simulating real-time crowd simulation
Ruan et al. Dynamic cellular learning automata for evacuation simulation
Bao Room evacuation in the presence of obstacles using an agent-based model with turning behavior
CN112257258A (en) Crowd movement simulation method based on Boids cluster movement model
Baig et al. Realistic modeling of agents in crowd simulations
KR101267570B1 (en) Virtual character steering behaviors simulation method and apparatus based on attractive field with 2d texture image, and virtual ecology park visualization method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180524

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190716

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190722

R150 Certificate of patent or registration of utility model

Ref document number: 6561013

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150