JP2022187776A - Multi-agent simulation system - Google Patents

Multi-agent simulation system Download PDF

Info

Publication number
JP2022187776A
JP2022187776A JP2021095949A JP2021095949A JP2022187776A JP 2022187776 A JP2022187776 A JP 2022187776A JP 2021095949 A JP2021095949 A JP 2021095949A JP 2021095949 A JP2021095949 A JP 2021095949A JP 2022187776 A JP2022187776 A JP 2022187776A
Authority
JP
Japan
Prior art keywords
agent
simulator
message
simulation
partition
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
JP2021095949A
Other languages
Japanese (ja)
Other versions
JP7491268B2 (en
Inventor
貴智 鳥越
Takatomo Torigoe
顕 吉岡
Akira Yoshioka
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.)
Toyota Motor Corp
Original Assignee
Toyota Motor 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 Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2021095949A priority Critical patent/JP7491268B2/en
Priority to US17/661,835 priority patent/US20220391661A1/en
Priority to CN202210629000.2A priority patent/CN115460283A/en
Publication of JP2022187776A publication Critical patent/JP2022187776A/en
Application granted granted Critical
Publication of JP7491268B2 publication Critical patent/JP7491268B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • G06F18/2178Validation; Performance evaluation; Active pattern learning techniques based on feedback of a supervisor
    • G06F18/2185Validation; Performance evaluation; Active pattern learning techniques based on feedback of a supervisor the supervisor being an automated module, e.g. intelligent oracle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/25Design optimisation, verification or simulation using particle-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/045Explanation of inference; Explainable artificial intelligence [XAI]; Interpretable artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

To flexibly operate a multi-agent simulation from viewpoints of suppression of a communication volume and suppression of a processing load.SOLUTION: A multi-agent simulation system performs simulation of a target world in which a plurality of agents interacting with each other exit. The multi-agent simulation system comprises: a plurality of agent simulators which perform simulation for the plurality of individual agents; and a center controller which performs communication with the plurality of agent simulators. Operation modes of the center controller include a first mode for performing no message filtering and a second mode for performing message filtering. The first mode is selected when the number of messages received by the center controller per unit time is a threshold or less. The second mode is selected when the number of messages received by the center controller per unit time exceeds the threshold.SELECTED DRAWING: Figure 13

Description

本開示は、相互作用する複数のエージェントが存在する対象世界をシミュレーションするマルチエージェントシミュレーション技術に関する。 The present disclosure relates to multi-agent simulation technology for simulating a target world in which multiple interacting agents exist.

特許文献1は、分散処理型シミュレータを開示している。その分散型シミュレータは、仮想空間に存在する複数のエージェントの挙動のシミュレーションを、複数の計算機を用いた分散処理により実現する。各計算機のシミュレータは、仮想空間のうち割り当てられた対象領域内の各エージェントの挙動を、他のエージェントのエージェント情報を参照してシミュレーションする。 Patent Literature 1 discloses a distributed processing simulator. The distributed simulator simulates the behavior of multiple agents existing in a virtual space through distributed processing using multiple computers. The simulator of each computer simulates the behavior of each agent within the assigned target area in the virtual space by referring to the agent information of other agents.

本開示の技術分野における出願時の技術レベルを示す文献として、特許文献2及び特許文献3も挙げられる。 Documents indicating the technical level of the technical field of the present disclosure at the time of filing include Patent Document 2 and Patent Document 3.

国際公開第2011/018854号WO2011/018854 国際公開第2015/132893号WO2015/132893 国際公開第2014/196073号WO2014/196073

相互作用する複数のエージェントが存在する対象世界をシミュレーションするマルチエージェントシミュレーション(Multi-Agent Simulation)について考える。マルチエージェントシミュレーションでは、複数のエージェントのそれぞれのシミュレーションを行う複数のエージェントシミュレータが設けられ、それら複数のエージェントシミュレータ間でメッセージのやり取りが行われる。そのために、複数のエージェントシミュレータ間に介在するセンターコントローラが設けられる。センターコントローラは、各エージェントシミュレータと通信を行い、あるエージェントシミュレータから受け取るメッセージを、他のエージェントシミュレータに配信(転送)する。このような構成において、センターコントローラから各エージェントシミュレータに全てのメッセージが配信されると、センターコントローラからエージェントシミュレータ全体への通信量が増大する。その一方で、通信量を抑制するためにセンターコントローラにおいてメッセージの選別を行うと、センターコントローラの処理負荷が増大する。 Consider Multi-Agent Simulation, which simulates a world of interest with multiple agents interacting with each other. In multi-agent simulation, a plurality of agent simulators are provided for simulating each of a plurality of agents, and messages are exchanged between the plurality of agent simulators. For this purpose, a central controller is provided between multiple agent simulators. The center controller communicates with each agent simulator and distributes (transfers) messages received from one agent simulator to other agent simulators. In such a configuration, when all messages are delivered from the center controller to each agent simulator, the amount of communication from the center controller to all agent simulators increases. On the other hand, when messages are sorted in the center controller in order to reduce the amount of communication, the processing load on the center controller increases.

本開示の一つの目的は、通信量の抑制と処理負荷の抑制の観点からマルチエージェントシミュレーションをフレキシブルに運用することができる技術を提供することにある。 One object of the present disclosure is to provide a technology that enables flexible operation of multi-agent simulation from the viewpoint of reducing communication traffic and processing load.

本開示の一つの観点は、相互作用する複数のエージェントが存在する対象世界のシミュレーションを行うマルチエージェントシミュレーションシステムに関連する。
マルチエージェントシミュレーションシステムは、
複数のエージェントのそれぞれのシミュレーションを行う複数のエージェントシミュレータと、
複数のエージェントシミュレータと通信を行うセンターコントローラと
を備える。
対象エージェントは、複数のエージェントシミュレータの各々に割り当てられるエージェントである。
センターコントローラは、各々のエージェントシミュレータに対して、対象エージェントと異なる少なくとも1つの他エージェントの状態を示す少なくとも1つの配信メッセージを配信する。
各々のエージェントシミュレータは、
配信メッセージで示される他エージェントの状態に基づいて、対象エージェントのシミュレーションを行って対象エージェントの状態を決定し、
シミュレーションの結果得られた対象エージェントの状態を示す結果メッセージをセンターコントローラに送信する。
センターコントローラの動作モードは、
各々のエージェントシミュレータから受け取る結果メッセージを選別することなく新たな配信メッセージとして配信する第1モードと、
各々のエージェントシミュレータから受け取る結果メッセージを選択的に新たな配信メッセージとして配信する第2モードと
を含む。
センターコントローラが単位時間あたりに受け取る結果メッセージの数が閾値以下である場合、センターコントローラは、第1モードを選択する。
センターコントローラが単位時間あたりに受け取る結果メッセージの数が閾値を超えた場合、センターコントーラは、第2モードを選択する。
One aspect of the present disclosure relates to a multi-agent simulation system that simulates a world of objects with multiple agents interacting with each other.
A multi-agent simulation system
a plurality of agent simulators for simulating each of a plurality of agents;
and a center controller that communicates with a plurality of agent simulators.
A target agent is an agent assigned to each of a plurality of agent simulators.
The center controller distributes to each agent simulator at least one distribution message indicating the state of at least one other agent different from the target agent.
Each agent simulator is
determine the state of the target agent by simulating the target agent based on the state of the other agent indicated in the delivery message;
A result message indicating the state of the target agent obtained as a result of the simulation is sent to the center controller.
The operation mode of the center controller is
a first mode in which a result message received from each agent simulator is delivered as a new delivery message without sorting;
and a second mode for selectively delivering result messages received from each agent simulator as new delivery messages.
If the number of result messages received by the center controller per unit time is less than or equal to the threshold, the center controller selects the first mode.
When the number of result messages received by the center controller per unit time exceeds the threshold, the center controller selects the second mode.

本開示によれば、センターコントローラの動作モードは、メッセージフィルタリングを行わない第1モードと、メッセージフィルタリングを行う第2モードとを含む。センターコントローラは、センターコントローラが単位時間あたりに受け取る結果メッセージの数に応じて、第1モードと第2モードを切り替える。第1モードでは、メッセージフィルタリングが行われないため、センターコントローラにおける処理負荷が抑制される。一方、第2モードでは、メッセージフィルタリングが行われるため、センターコントローラからエージェントシミュレータ全体への通信量が効果的に削減される。このように、通信量の抑制と処理負荷の抑制の観点からフレキシブルな運用が可能となる。 According to the present disclosure, the operation modes of the center controller include a first mode without message filtering and a second mode with message filtering. The center controller switches between the first mode and the second mode according to the number of result messages received by the center controller per unit time. In the first mode, since message filtering is not performed, the processing load on the center controller is suppressed. On the other hand, in the second mode, since message filtering is performed, the amount of communication from the center controller to the entire agent simulator is effectively reduced. In this way, flexible operation is possible from the viewpoint of suppressing the amount of communication and suppressing the processing load.

本開示の実施形態に係るマルチエージェントシミュレーションシステムの概要を示す図である。1 is a diagram showing an overview of a multi-agent simulation system according to an embodiment of the present disclosure; FIG. 本開示の実施形態に係るマルチエージェントシミュレーションシステムの概要を示す図である。1 is a diagram showing an overview of a multi-agent simulation system according to an embodiment of the present disclosure; FIG. 本開示の実施形態に係るマルチエージェントシミュレーションシステムにおけるメッセージ交換の一例を説明するための図である。FIG. 4 is a diagram for explaining an example of message exchange in the multi-agent simulation system according to the embodiment of the present disclosure; FIG. 本開示の実施形態に係る時間的観点に基づくメッセージフィルタリングの一例を説明するための図である。FIG. 4 is a diagram for explaining an example of message filtering based on a temporal perspective according to an embodiment of the present disclosure; FIG. 本開示の実施形態に係る時間的観点に基づくメッセージフィルタリングを説明するためのブロック図である。4 is a block diagram for explaining message filtering based on a temporal perspective according to embodiments of the present disclosure; FIG. 本開示の実施形態に係る時間的観点に基づくメッセージフィルタリングに関連する構成例を示すブロック図である。FIG. 4 is a block diagram illustrating an example configuration related to message filtering based on a temporal perspective according to embodiments of the present disclosure; 本開示の実施形態に係る時間的観点に基づくメッセージフィルタリングに関連する構成例を示すブロック図である。FIG. 4 is a block diagram illustrating an example configuration related to message filtering based on a temporal perspective according to embodiments of the present disclosure; 本開示の実施形態に係る空間的観点に基づくメッセージフィルタリングの概要を説明するための概念図である。FIG. 2 is a conceptual diagram for explaining an overview of message filtering based on a spatial perspective according to an embodiment of the present disclosure; FIG. 本開示の実施形態に係る空間的観点に基づくメッセージフィルタリングの概要を説明するためのブロック図である。FIG. 3 is a block diagram for explaining an overview of message filtering based on a spatial perspective according to an embodiment of the present disclosure; FIG. 本開示の実施形態に係る空間的観点に基づくメッセージフィルタリングの概要を説明するための図である。FIG. 2 is a diagram for explaining an overview of message filtering based on a spatial perspective according to an embodiment of the present disclosure; FIG. 本開示の実施形態に係る空間的観点に基づくメッセージフィルタリングに関連する第1の構成例を示すブロック図である。1 is a block diagram illustrating a first configuration example related to message filtering based on a spatial perspective according to embodiments of the present disclosure; FIG. 本開示の実施形態に係る空間的観点に基づくメッセージフィルタリングに関連する第2の構成例を示すブロック図である。FIG. 10 is a block diagram illustrating a second configuration example related to message filtering based on a spatial perspective according to embodiments of the present disclosure; 本開示の実施形態に係るセンターコントローラにおけるモード切り替えの一例を説明するための概念図である。4 is a conceptual diagram for explaining an example of mode switching in the center controller according to the embodiment of the present disclosure; FIG. 本開示の実施形態に係るマルチエージェントシミュレーションシステムの全体構成と情報の流れを示すブロック図である。1 is a block diagram showing the overall configuration and information flow of a multi-agent simulation system according to an embodiment of the present disclosure; FIG. 本開示の実施形態に係る歩行者エージェント用のエージェントシミュレータの構成と情報の流れを示すブロック図である。1 is a block diagram showing the configuration and information flow of an agent simulator for pedestrian agents according to an embodiment of the present disclosure; FIG. 本開示の実施形態に係る自律移動体エージェント用のエージェントシミュレータの構成と情報の流れを示すブロック図である。1 is a block diagram showing the configuration and information flow of an agent simulator for an autonomous mobile agent according to an embodiment of the present disclosure; FIG. 本開示の実施形態に係るVR歩行者エージェント用のエージェントシミュレータの構成と情報の流れを示すブロック図である。1 is a block diagram showing the configuration and information flow of an agent simulator for a VR pedestrian agent according to an embodiment of the present disclosure; FIG. 本開示の実施形態に係る路側センサエージェント用のエージェントシミュレータの構成と情報の流れを示すブロック図である。1 is a block diagram showing the configuration and information flow of an agent simulator for a roadside sensor agent according to an embodiment of the present disclosure; FIG. 本開示の実施形態に係るマルチエージェントシミュレーションシステムの物理構成の例を示す図である。1 is a diagram illustrating an example physical configuration of a multi-agent simulation system according to an embodiment of the present disclosure; FIG.

以下、図面を参照して本開示の実施形態について説明する。 Embodiments of the present disclosure will be described below with reference to the drawings.

1.マルチエージェントシミュレーションシステムの概要
図1乃至図3を用いて、本開示の実施形態に係るマルチエージェントシミュレーションシステム(Multi-Agent Simulation System)の概要を説明する。以下、マルチエージェントシミュレーションシステムをMASシステムと省略して表記する。
1. Outline of Multi-Agent Simulation System An outline of a multi-agent simulation system according to an embodiment of the present disclosure will be described with reference to FIGS. 1 to 3. FIG. Hereinafter, the multi-agent simulation system will be abbreviated as the MAS system.

1-1.MASシステムの概要
図1は、本実施形態のMASシステム100の概略構成を示す。MASシステム100は、複数のエージェント4を相互作用させることによって、シミュレーションの対象であるシミュレーション対象世界2をシミュレーションする。シミュレーション対象世界2は特に限定されない。例えば、シミュレーション対象世界2は、人が移動体(例えば、ロボットや車両)と共存し、移動体を用いた様々なサービスの提供を受けることができる世界である。例えば、シミュレーション対象世界2は、一つの街である。シミュレーション対象世界2において提供されるサービスとしては、例えば、自律運転車両を用いたオンデマンドバスや定期運行型バスなどのモビリティサービスや、自律移動型のロボットを用いて荷物を配送する物流サービスを挙げることができる。
1-1. Overview of MAS System FIG. 1 shows a schematic configuration of a MAS system 100 of this embodiment. The MAS system 100 simulates a simulation target world 2 by having a plurality of agents 4 interact with each other. The simulation target world 2 is not particularly limited. For example, the simulation target world 2 is a world where people can coexist with mobile objects (for example, robots and vehicles) and receive various services using mobile objects. For example, the simulation target world 2 is one town. Services provided in the simulation target world 2 include, for example, mobility services such as on-demand buses using autonomously driven vehicles and regularly operated buses, and logistics services that deliver packages using autonomous mobile robots. be able to.

シミュレーション対象世界2には、多数且つ多種類のエージェント4が存在する。シミュレーション対象世界2を構成するエージェント4には、移動物体を表すエージェント4と、定置物体を表すエージェント4とが含まれる。エージェント4として表される移動物体としては、歩行者、ロボット、低速モビリティ、車両、実在の人がVRシステムを用いて参加する歩行者、エレベータ等が例示される。エージェント4として表される定置物体としては、カメラを含むセンサや自動ドア等が例示される。 A large number and many types of agents 4 exist in the simulation target world 2 . The agents 4 that make up the world 2 to be simulated include agents 4 that represent moving objects and agents 4 that represent stationary objects. Examples of moving objects represented by agents 4 include pedestrians, robots, low-speed mobility vehicles, pedestrians in which real people participate using the VR system, elevators, and the like. A stationary object represented by the agent 4 is exemplified by a sensor including a camera, an automatic door, and the like.

図1に示される例では、シミュレーション対象世界2には3つのエージェント4A、4B、4Cが存在する。このうちエージェント4A、4Bはロボットを表し、エージェント4Cは歩行者を表している。なお、エージェント4Aとエージェント4Bとは、ロボットという同じカテゴリーに属するが、大きさや形状、走行速度や動作などにおいて違いがある。よって、エージェント4Aとエージェント4Bとは、歩行者であるエージェント4Cがそれらから取得できる視覚情報において違いがある。 In the example shown in FIG. 1, there are three agents 4A, 4B, and 4C in the world 2 to be simulated. Among them, agents 4A and 4B represent robots, and agent 4C represents a pedestrian. Although the agents 4A and 4B belong to the same category of robots, they differ in size, shape, running speed, motion, and the like. Therefore, agents 4A and 4B differ in the visual information that agent 4C, a pedestrian, can obtain from them.

以下の説明において、仮想の世界であるシミュレーション対象世界2を、実世界と区別して仮想世界2と呼ぶ場合がある。 In the following description, the simulation target world 2, which is a virtual world, may be called a virtual world 2 to distinguish it from the real world.

MASシステム100は、複数のエージェントシミュレータ200を備える。エージェントシミュレータ200は、エージェント4毎に設けられ、各エージェント4のシミュレーションを行う。図1に示される例では、エージェントシミュレータ200-A、200-B、200-Cが、エージェント4A、4B、4Cのそれぞれに対して設けられ、エージェント4A、4B、4Cのそれぞれのシミュレーションを行う。各エージェントシミュレータ200は、対象とするエージェントの種類に応じた構成の違いを有している。例えば、ロボットに関するエージェント4A、4Bのエージェントシミュレータ200-A、200-Bは互いに類似した構成を有しているが、歩行者に関するエージェント4Cのエージェントシミュレータ200-Cは、エージェントシミュレータ200-A、200-Bとは異なる構成を有している。エージェント4の種類別のエージェントシミュレータ200の構成については追って詳述する。 The MAS system 100 comprises multiple agent simulators 200 . The agent simulator 200 is provided for each agent 4 and simulates each agent 4 . In the example shown in FIG. 1, agent simulators 200-A, 200-B, 200-C are provided for agents 4A, 4B, 4C, respectively, and simulate agents 4A, 4B, 4C, respectively. Each agent simulator 200 has a different configuration depending on the type of target agent. For example, agent simulators 200-A and 200-B for agents 4A and 4B related to robots have mutually similar configurations, but agent simulators 200-C for agent 4C related to pedestrians have similar configurations. -B has a different configuration. The configuration of the agent simulator 200 for each type of agent 4 will be detailed later.

複数のエージェントシミュレータ200は、メッセージの交換によって複数のエージェント4を相互作用させながら複数のエージェント4の状態をシミュレーションする。エージェントシミュレータ200間で交換されるメッセージは、エージェント4の仮想世界2内での位置・移動に関する情報(移動情報)を含む。移動情報は、エージェントの位置・移動に関する現状および将来計画に関する情報を含む。現状に関する情報とは、例えば、現在時刻における位置、方向、速度、加速度である。将来計画に関する情報とは、例えば、将来時刻における位置と、方向と、速度と、加速度のリストである。以下、エージェントシミュレータ200間で交換されるエージェント4の位置・移動に関するメッセージを移動メッセージと称する。 A plurality of agent simulators 200 simulate the states of a plurality of agents 4 while interacting with a plurality of agents 4 by exchanging messages. The messages exchanged between the agent simulators 200 include information (movement information) regarding the position and movement of the agent 4 within the virtual world 2 . The movement information includes information on the current status and future plans regarding the location and movement of the agent. Information about the current situation is, for example, the position, direction, velocity, and acceleration at the current time. Information about future plans is, for example, a list of positions, directions, velocities, and accelerations at future times. Hereinafter, messages regarding the position and movement of the agent 4 exchanged between the agent simulators 200 are referred to as movement messages.

各エージェントシミュレータ200は、シミュレーションの対象である対象エージェント(自エージェント)の状態を周囲のエージェントの状態に基づいて演算する。周囲エージェントは、自エージェントの周囲に存在し、自エージェントと相互作用する相互作用エージェントである。そして、周囲エージェントの状態を表す情報が移動メッセージである。各エージェントシミュレータ200は、他のエージェントシミュレータ200と移動メッセージを交換しあうことで、周囲エージェントの状態を把握することができる。 Each agent simulator 200 calculates the state of a target agent (own agent), which is the object of simulation, based on the states of surrounding agents. Surrounding agents are interacting agents that exist around their own agents and interact with their own agents. Information representing the states of surrounding agents is a movement message. Each agent simulator 200 can grasp the states of surrounding agents by exchanging movement messages with other agent simulators 200 .

図1に示す例では、エージェントシミュレータ200-Aは、エージェントシミュレータ200-B、200-Cから受け取った移動メッセージからエージェント4B、4Cの状態を把握し、エージェント4B、4Cの状態に基づいてエージェント4Aの状態を更新する。そして、エージェントシミュレータ200-Aは、更新されたエージェント4Aの状態を表す移動メッセージをエージェントシミュレータ200-B、200-Cに送信する。同様な処理はエージェントシミュレータ200-B、200-Cにおいても行われる。これによりエージェント4A、4B、4C同士を相互作用させながら各エージェント4A、4B、4Cの状態がシミュレーションされる。 In the example shown in FIG. 1, the agent simulator 200-A grasps the states of the agents 4B and 4C from the movement messages received from the agent simulators 200-B and 200-C, and based on the states of the agents 4B and 4C, the agent 4A. update the state of Agent simulator 200-A then transmits a movement message representing the updated state of agent 4A to agent simulators 200-B and 200-C. Similar processing is performed in agent simulators 200-B and 200-C. As a result, the states of the respective agents 4A, 4B, 4C are simulated while the agents 4A, 4B, 4C interact with each other.

エージェントシミュレータ200によるエージェントの状態の更新には、一定の時間間隔で更新する方法と、何らかのイベントが検知された場合に更新する方法とがある。ただし、後者の方法でも、あまりに長時間状態が更新されないと周囲エージェントへの影響が大きいことから、一定時間間隔ごとに状態を更新するよう強制的にイベントを発生させることが行われる。エージェントシミュレータ200によるエージェントの状態の更新の時間間隔は、時間粒度と呼ばれる。 The agent simulator 200 can update the state of the agent by a method of updating at regular time intervals or a method of updating when some event is detected. However, even in the latter method, if the state is not updated for too long, the effect on surrounding agents is large, so an event is forced to update the state at regular time intervals. The time interval for updating the state of the agent by the agent simulator 200 is called time granularity.

MASシステム100によるシミュレーションの対象である仮想世界2には、多数のエージェント4が存在する。ただし、それらの時間粒度は同一ではない。もし、全てのエージェント4の時間粒度が同一であるとすると、MASの実行性能を維持するためには、各エージェント4の時間粒度は状態の変化速度が最も速い対象に合わせて設定する必要がある。しかし、この場合、対象の状態の変化速度の遅いエージェント4では、必要な時間粒度よりも小さい時間粒度で演算が行われることになる。MASでは、エージェント4間の相互作用は移動メッセージの交換により行われるため、時間粒度が小さくなれば、それだけ移動メッセージの送信時間間隔も短くなる。その結果、移動メッセージの量がシステム全体として増大し、計算資源を無駄に消費することになる。 A large number of agents 4 exist in the virtual world 2 that is the object of simulation by the MAS system 100 . However, their time granularity is not the same. If the time granularity of all agents 4 is the same, in order to maintain the execution performance of MAS, it is necessary to set the time granularity of each agent 4 according to the target with the fastest rate of state change. . However, in this case, the agent 4 whose target state changes at a slow speed will perform calculations with a time granularity smaller than the required time granularity. In MAS, interaction between agents 4 is performed by exchanging mobile messages, so the smaller the time granularity, the shorter the time intervals between mobile message transmissions. As a result, the amount of mobile messages increases throughout the system, wasting computational resources.

そこで、MASシステム100では、エージェント4の時間粒度はエージェント4の種類によって異なっていてもよい。例えば、現実の世界における歩行者の歩行速度は1m/sec程度である。ゆえに、エージェント4が歩行者の場合、時間粒度は1secオーダー或いは100msecオーダーでよい。一方、エージェント4がロボットの場合、大きくても100msecオーダーの時間粒度、好ましくは10msecオーダーの時間粒度が欲しい。これは、ロボットには歩行者よりも素早く正確な動作が求められるためである。現実の世界では、ロボットに要求される動作速度が速いほど、短い時間間隔で制御しないと制御自体が成立しなくなる。このことはシミュレーションにも当てはまり、要求される動作速度に応じて時間粒度を小さくしなければ、求められているロボットの動作をシミュレーションすることができない。 Therefore, in the MAS system 100, the time granularity of the agent 4 may differ depending on the type of the agent 4. FIG. For example, the walking speed of a pedestrian in the real world is approximately 1 m/sec. Therefore, when the agent 4 is a pedestrian, the time granularity may be on the order of 1 sec or 100 msec. On the other hand, if the agent 4 is a robot, a time granularity on the order of 100 msec at most, preferably on the order of 10 msec is desired. This is because robots are required to move faster and more accurately than pedestrians. In the real world, the faster the robot is required to operate, the shorter the time interval required for control. This also applies to simulation, and unless the time granularity is reduced in accordance with the required motion speed, the required motion of the robot cannot be simulated.

図1に示す例では、仮想世界2におけるロボットエージェント4A、4Bの時間粒度は20msecであり、歩行者エージェント4Cの時間粒度は100msecとされている。各エージェントシミュレータ200-A、200-B、200-Cは、担当するエージェント4A、4B、4Cの時間粒度に応じた制御周期でシミュレーションを実行する。なお、図1に示す2つのロボットエージェント4A、4Bの時間粒度は同一であるが、同じ種類のエージェントであっても、その目的によって時間粒度に違いが設けられる場合もある。 In the example shown in FIG. 1, the time granularity of the robot agents 4A and 4B in the virtual world 2 is 20 msec, and the time granularity of the pedestrian agent 4C is 100 msec. Each of the agent simulators 200-A, 200-B, 200-C executes simulations at a control cycle corresponding to the time granularity of the agents 4A, 4B, 4C in charge. Although the two robot agents 4A and 4B shown in FIG. 1 have the same time granularity, even agents of the same type may have different time granularities depending on their purposes.

MASシステム100では、エージェントシミュレータ200間の移動メッセージの交換によってシミュレーションが実行される。ただし、シミュレーションのための移動メッセージの交換は、エージェントシミュレータ200間で直接は行われない。MASシステム100は、各エージェントシミュレータ200と通信するセンターコントローラ300を備える。移動メッセージは、センターコントローラ300により中継されてエージェントシミュレータ200間で交換される。 In the MAS system 100 , simulation is performed by exchanging movement messages between agent simulators 200 . However, exchange of movement messages for simulation is not performed directly between agent simulators 200 . The MAS system 100 has a central controller 300 that communicates with each agent simulator 200 . The movement message is relayed by center controller 300 and exchanged between agent simulators 200 .

図1に示す例では、エージェントシミュレータ200-Aから出力された移動メッセージはセンターコントローラ300が受信する。そして、センターコントローラ300は、エージェントシミュレータ200-B、200-Cに対してエージェントシミュレータ200-Aの移動メッセージを送信する。同様に、エージェントシミュレータ200-Bの移動メッセージは、センターコントローラ300によってエージェントシミュレータ200-A、200-Cに送信され、エージェントシミュレータ200-Cの移動メッセージは、センターコントローラ300によってエージェントシミュレータ200-A、200-Bに送信される。 In the example shown in FIG. 1, center controller 300 receives the movement message output from agent simulator 200-A. Then, center controller 300 transmits a movement message for agent simulator 200-A to agent simulators 200-B and 200-C. Similarly, the movement message of agent simulator 200-B is transmitted by center controller 300 to agent simulators 200-A and 200-C, and the movement message of agent simulator 200-C is transmitted by center controller 300 to agent simulators 200-A and 200-C. 200-B.

1-2.MASシステムにおける移動メッセージの交換
図2は、MASシステム100において行われる移動メッセージの交換の概要を示す。MASシステム100では、各エージェントシミュレータ200は、エージェントシミュレータ200間で同一の時間間隔ではなく、シミュレーションするエージェントの時間粒度に応じた時間間隔で移動メッセージを送信する。各エージェント4A、4B、4Cの時間粒度が図1に示す通りであるとすると、エージェントシミュレータ200-A、200-Bは20msecの時間間隔で移動メッセージを送信し、エージェントシミュレータ200-Cは100msecの時間間隔で移動メッセージを送信する。
1-2. Mobility Message Exchange in MAS System FIG. 2 shows an overview of the mobility message exchange that takes place in the MAS system 100 . In the MAS system 100, each agent simulator 200 transmits movement messages not at the same time interval among the agent simulators 200, but at time intervals according to the time granularity of the agent being simulated. Assuming that the time granularity of each agent 4A, 4B, and 4C is as shown in FIG. 1, agent simulators 200-A and 200-B send movement messages at time intervals of 20 msec, and agent simulator 200-C sends movement messages at 100 msec intervals. Send moving messages at timed intervals.

エージェントシミュレータ200-A、200-B、200-Cから移動メッセージを受信したセンターコントローラ300は、受信した移動メッセージをそのままの時間間隔でブロードキャストによって送信する。これにより、エージェントシミュレータ200-Aには、20msecの時間間隔でエージェントシミュレータ200-Bからの移動メッセージが送信されるとともに、100msecの時間間隔でエージェントシミュレータ200-Cからの移動メッセージが送信される。同様に、エージェントシミュレータ200-Bには、20msecの時間間隔でエージェントシミュレータ200-Aからの移動メッセージが送信されるとともに、100msecの時間間隔でエージェントシミュレータ200-Cからの移動メッセージが送信される。また、エージェントシミュレータ200-Cには、20msecの時間間隔でエージェントシミュレータ200-A、200-Bからの移動メッセージが送信される。 Center controller 300, which has received movement messages from agent simulators 200-A, 200-B, and 200-C, broadcasts the received movement messages at the same time intervals. As a result, to agent simulator 200-A, a movement message is transmitted from agent simulator 200-B at time intervals of 20 msec, and a movement message is transmitted from agent simulator 200-C at time intervals of 100 msec. Similarly, agent simulator 200-B receives movement messages from agent simulator 200-A at time intervals of 20 msec and movement messages from agent simulator 200-C at time intervals of 100 msec. Further, agent simulators 200-A and 200-B send movement messages to agent simulator 200-C at intervals of 20 msec.

以上のように、MASシステム100では、各エージェントシミュレータ200は、エージェントシミュレータ200間で同一の送信時間間隔ではなく、シミュレーションするエージェント4の時間粒度に応じた送信時間間隔で移動メッセージを送信する。これにより、MASの実行性能を維持しながら、エージェントシミュレータ200間で交換するメッセージの量の増大を抑えることができる。また、センターコントローラ300は、受信した移動メッセージをそのままの時間間隔で送信するので、古い移動メッセージが新しい移動メッセージよりも先に送信先のエージェントシミュレータ200に届くことを防ぐことができる。さらに、センターコントローラ300による移動メッセージの送信方法としてブロードキャストが用いられることで、センターコントローラ300の負荷は低減される。 As described above, in the MAS system 100, each agent simulator 200 transmits a movement message not at the same transmission time interval among the agent simulators 200 but at transmission time intervals according to the time granularity of the agents 4 to be simulated. As a result, an increase in the amount of messages exchanged between agent simulators 200 can be suppressed while maintaining the execution performance of the MAS. Also, since the center controller 300 transmits the received movement messages at the same time intervals, it is possible to prevent the old movement messages from reaching the destination agent simulator 200 earlier than the new movement messages. Furthermore, the load on the center controller 300 is reduced because the center controller 300 uses broadcasting as a method of transmitting the movement message.

ところで、現実の世界では、ある実体の現在の状態は、相互作用する他の実体の現在の状態との関係で決まる。よって、仮想世界2におけるエージェントの現在の状態をシミュレーションするためには、相互作用する周囲エージェントの現在の状態に関する情報が欲しい。しかし、MASシステム100では、担当するエージェントの時間粒度の違いによって、移動メッセージを送信する送信時間間隔にエージェントシミュレータ200間で違いがある。また、移動メッセージの送信は離散的に行われるため、送信時間間隔が同一のエージェントシミュレータ200間でも、移動メッセージの交換のタイミングがずれてしまう場合がある。さらに、CPUの処理能力やネットワーク容量に依存して、センターコントローラ300を介したエージェントシミュレータ200間の移動メッセージの送受信に時間遅れが生じる場合もある。 By the way, in the real world, the current state of an entity is determined in relation to the current states of other entities with which it interacts. Therefore, in order to simulate the current state of the agents in the virtual world 2, we want information about the current states of the interacting surrounding agents. However, in the MAS system 100, the agent simulators 200 have different transmission time intervals for transmitting movement messages due to differences in the time granularity of the agents in charge. In addition, since movement messages are transmitted discretely, even between agent simulators 200 whose transmission time intervals are the same, the timing of exchanging movement messages may deviate. Furthermore, depending on the processing power of the CPU and the network capacity, a time delay may occur in transmitting and receiving movement messages between the agent simulators 200 via the center controller 300 .

そこで、MASシステム100では、担当する自エージェントの現在の状態を各エージェントシミュレータ200がシミュレーションする際、以下の第1乃至第6の処理が実行される。 Therefore, in the MAS system 100, when each agent simulator 200 simulates the current state of its own agent in charge, the following first to sixth processes are executed.

第1の処理では、エージェントシミュレータ200は、センターコントローラ300から送信される移動メッセージに基づき、移動メッセージの取得時刻における周囲エージェントの状態を生成する。第2の処理では、エージェントシミュレータ200は、第1の処理で生成された周囲エージェントの状態をメモリに記憶する。 In the first process, the agent simulator 200 generates the state of surrounding agents at the time when the movement message is acquired based on the movement message sent from the center controller 300 . In the second process, the agent simulator 200 stores in memory the states of surrounding agents generated in the first process.

第3の処理では、エージェントシミュレータ200は、第2の処理でメモリに記憶された周囲エージェントの過去の状態から周囲エージェントの現在の状態を推定する。メモリに記憶された周囲エージェントの過去の状態の数が2つ以上の場合、エージェントシミュレータ200は、周囲エージェントの最新の2つ以上の過去の状態に基づく線形外挿によって周囲エージェントの現在の状態を推定する。メモリに記憶された周囲エージェントの過去の状態の数が1つの場合、エージェントシミュレータ200は、周囲エージェントの唯一の過去の状態を周囲エージェントの現在の状態として推定する。 In the third process, the agent simulator 200 estimates the current state of the surrounding agents from the past states of the surrounding agents stored in the memory in the second process. When the number of past states of the surrounding agents stored in the memory is two or more, the agent simulator 200 calculates the current state of the surrounding agents by linear extrapolation based on the latest two or more past states of the surrounding agents. presume. If the number of past states of surrounding agents stored in the memory is one, the agent simulator 200 estimates only one past state of the surrounding agents as the current state of the surrounding agents.

第4の処理では、エージェントシミュレータ200は、第3の処理で推定された周囲エージェントの現在の状態を用いて自エージェントの現在の状態をシミュレーションする。第5の処理では、エージェントシミュレータ200は、第4の処理でシミュレーションされた自エージェントの現在の状態に基づいて移動メッセージを作成する。そして、第6の処理では、エージェントシミュレータ200は、第5の処理で作成された移動メッセージをセンターコントローラ300に送信する。 In the fourth process, the agent simulator 200 simulates the current state of its own agent using the current states of surrounding agents estimated in the third process. In the fifth process, agent simulator 200 creates a movement message based on the current state of its own agent simulated in the fourth process. Then, in the sixth process, agent simulator 200 transmits the movement message created in the fifth process to center controller 300 .

MASシステム100では、以上のような処理が各エージェントシミュレータ200で実行される。これにより、センターコントローラ300を介したエージェントシミュレータ200間の移動メッセージの送受信に時間遅れがあるとしても、各エージェントの現在の状態を精度よくシミュレーションすることができる。また、移動メッセージの送信タイミングにエージェントシミュレータ200間でずれがあるとしても、各エージェントの現在の状態を精度よくシミュレーションすることができる。さらに、エージェント間の時間粒度の違いによって移動メッセージを送信する送信時間間隔にエージェントシミュレータ200間で違いがあるとしても、各エージェントの現在の状態を精度よくシミュレーションすることができる。 In the MAS system 100, each agent simulator 200 executes the processing described above. As a result, even if there is a time delay in transmitting and receiving movement messages between the agent simulators 200 via the center controller 300, the current state of each agent can be accurately simulated. In addition, even if there is a gap between the agent simulators 200 in the transmission timing of movement messages, the current state of each agent can be accurately simulated. Furthermore, even if the agent simulators 200 have different transmission time intervals for transmitting movement messages due to differences in time granularity between agents, the current state of each agent can be accurately simulated.

1-3.メッセージ交換の一例
図3は、MASシステム100において行われるエージェントシミュレータ200-A、200-B、200-C間の移動メッセージの交換の一例を示す。ただし、説明を簡単にするため、エージェントシミュレータ200-A、200-B、200-C間で移動メッセージの送受信を中継するセンターコントローラ300は省略されている。各エージェント4A、4B、4Cの時間粒度が図1に示す通りであるとすると、エージェントシミュレータ200-A、200-Bは20msecの時間間隔で移動メッセージを送信し、エージェントシミュレータ200-Cは100msecの時間間隔で移動メッセージを送信する。
1-3. An Example of Message Exchange FIG. 3 shows an example of the exchange of mobility messages between agent simulators 200-A, 200-B, and 200-C that takes place in MAS system 100. As shown in FIG. However, for simplicity of explanation, center controller 300, which relays transmission and reception of movement messages among agent simulators 200-A, 200-B, and 200-C, is omitted. Assuming that the time granularity of each agent 4A, 4B, and 4C is as shown in FIG. 1, agent simulators 200-A and 200-B send movement messages at time intervals of 20 msec, and agent simulator 200-C sends movement messages at 100 msec intervals. Send moving messages at timed intervals.

ここでは、エージェントシミュレータ200-Aとエージェントシミュレータ200-Bとの間には12msecの時間遅れが認められている。エージェントシミュレータ200-Aとエージェントシミュレータ200-Cとの間には14msecの時間遅れが認められている。そして、エージェントシミュレータ200-Bとエージェントシミュレータ200-Cとの間には10msecの時間遅れが認められている。 Here, a time delay of 12 msec is recognized between agent simulator 200-A and agent simulator 200-B. A time delay of 14 msec is allowed between agent simulator 200-A and agent simulator 200-C. A time delay of 10 msec is allowed between agent simulator 200-B and agent simulator 200-C.

各エージェントシミュレータ200-A、200-B、200-Cは、時刻t=0でシミュレーションを開始する。ただし、エージェントシミュレータ200-A、200-B、200-Cとして機能するコンピュータの内部時計の時間は必ずしも一致していない。このため、エージェントシミュレータ200-A、200-B、200-C間でシミュレーションの開始時刻にずれが生じる場合がある。MASシステム100では、シミュレーションの開始時刻のずれを前提にして、エージェントシミュレータ200-A、200-B、200-C間の移動メッセージの交換が行われる。 Each agent simulator 200-A, 200-B, 200-C starts simulation at time t=0. However, the times of the internal clocks of the computers functioning as agent simulators 200-A, 200-B, and 200-C do not necessarily match. For this reason, there may be a difference in simulation start time between the agent simulators 200-A, 200-B, and 200-C. In the MAS system 100, migration messages are exchanged among the agent simulators 200-A, 200-B, and 200-C on the premise that the simulation start times are shifted.

以下の説明では、簡単のため、A[t]は時刻tにおけるエージェント4Aの状態を表す移動メッセージを意味する。B[t]は時刻tにおけるエージェント4Bの状態を表す移動メッセージを意味する。C[t]は時刻tにおけるエージェント4Cの状態を表す移動メッセージである。以下、エージェントシミュレータ200-A、200-B、200-Cによる処理を時系列に説明する。 In the following description, for simplicity, A[t] means a movement message representing the state of agent 4A at time t. B[t] denotes a movement message representing the state of agent 4B at time t. C[t] is a movement message representing the state of agent 4C at time t. Processing by the agent simulators 200-A, 200-B, and 200-C will be described below in chronological order.

まず、各エージェントシミュレータ200-A、200-B、200-Cから各エージェント4A、4B、4Cの初期状態を表す移動メッセージA[0]、B[0]、C[0]が送信される。初期状態では、各エージェントシミュレータ200-A、200-B、200-Cは周囲エージェントの存在を認識できないため、周囲エージェントが存在しない仮定の下で移動メッセージA[0]、B[0]、C[0]を生成する。 First, the agent simulators 200-A, 200-B, 200-C transmit movement messages A[0], B[0], C[0] representing initial states of the agents 4A, 4B, 4C. In the initial state, each of the agent simulators 200-A, 200-B, and 200-C cannot recognize the presence of surrounding agents. Generate [0].

エージェントシミュレータ200-Aの次回の送信時刻は時刻t=20である。エージェントシミュレータ200-Aは、時刻t=20の前に移動メッセージB[0]及びC[0]を受信する。エージェントシミュレータ200-Aは、移動メッセージB[0]から時刻t=0におけるエージェント4Bの状態を認識し、エージェント4Bの時刻t=0の状態をエージェント4Bの現在の状態として推定する。また、エージェントシミュレータ200-Aは、移動メッセージC[0]から時刻t=0におけるエージェント4Cの状態を認識し、エージェント4Cの時刻t=0の状態をエージェント4Cの現在の状態として推定する。エージェントシミュレータ200-Aは、推定されたエージェント4B、4Cの状態を用いたシミュレーションによって、エージェント4Aの時刻t=20における状態を決定し、移動メッセージA[20]を送信する。 The next transmission time of agent simulator 200-A is time t=20. Agent simulator 200-A receives move messages B[0] and C[0] before time t=20. Agent simulator 200-A recognizes the state of agent 4B at time t=0 from movement message B[0], and estimates the state of agent 4B at time t=0 as the current state of agent 4B. Agent simulator 200-A also recognizes the state of agent 4C at time t=0 from movement message C[0], and estimates the state of agent 4C at time t=0 as the current state of agent 4C. Agent simulator 200-A determines the state of agent 4A at time t=20 through simulation using the estimated states of agents 4B and 4C, and transmits movement message A[20].

エージェントシミュレータ200-Aの次回の送信時刻は時刻t=40である。エージェントシミュレータ200-Aは、時刻t=40の前にエージェントシミュレータ200-Bから新たに移動メッセージB[20]を受信するが、エージェントシミュレータ200-Cからは新たな移動メッセージは受信していない。エージェントシミュレータ200-Aは、移動メッセージB[20]から時刻t=20におけるエージェント4Bの状態を認識し、時刻t=0と時刻t=20のエージェント4Bの状態に基づく線形外挿によってエージェント4Bの現在の状態を推定する。また、エージェントシミュレータ200-Aは、エージェント4Cの時刻t=0の状態をエージェント4Cの現在の状態として推定する。エージェントシミュレータ200-Aは、推定されたエージェント4B、4Cの状態を用いたシミュレーションによって、エージェント4Aの時刻t=40における状態を決定し、移動メッセージA[40]を送信する。 The next transmission time of agent simulator 200-A is time t=40. Agent simulator 200-A newly receives movement message B[20] from agent simulator 200-B before time t=40, but does not receive a new movement message from agent simulator 200-C. Agent simulator 200-A recognizes the state of agent 4B at time t=20 from movement message B[20], and performs linear extrapolation based on the state of agent 4B at time t=0 and time t=20. Estimate the current state. Agent simulator 200-A also estimates the state of agent 4C at time t=0 as the current state of agent 4C. Agent simulator 200-A determines the state of agent 4A at time t=40 through simulation using the estimated states of agents 4B and 4C, and transmits movement message A[40].

エージェントシミュレータ200-Aの次回の送信時刻は時刻t=60である。エージェントシミュレータ200-Aは、時刻t=60の前にエージェントシミュレータ200-Bから新たに移動メッセージB[40]を受信するが、エージェントシミュレータ200-Cからは新たな移動メッセージは受信していない。エージェントシミュレータ200-Aは、時刻t=20と時刻t=40のエージェント4Bの状態に基づく線形外挿によってエージェント4Bの現在の状態を推定する。また、エージェントシミュレータ200-Aは、エージェント4Cの時刻t=0の状態をエージェント4Cの現在の状態として推定する。エージェントシミュレータ200-Aは、推定されたエージェント4B、4Cの状態を用いたシミュレーションによって、エージェント4Aの時刻t=60における状態を決定し、移動メッセージA[60]を送信する。 The next transmission time of agent simulator 200-A is time t=60. Agent simulator 200-A newly receives move message B[40] from agent simulator 200-B before time t=60, but does not receive a new move message from agent simulator 200-C. Agent simulator 200-A estimates the current state of agent 4B by linear extrapolation based on the states of agent 4B at time t=20 and time t=40. Agent simulator 200-A also estimates the state of agent 4C at time t=0 as the current state of agent 4C. Agent simulator 200-A determines the state of agent 4A at time t=60 through simulation using the estimated states of agents 4B and 4C, and transmits movement message A[60].

エージェントシミュレータ200-Aの次回の送信時刻は時刻t=80である。エージェントシミュレータ200-Aは、時刻t=80の前にエージェントシミュレータ200-Bから新たに移動メッセージB[60]を受信するが、エージェントシミュレータ200-Cからは新たな移動メッセージは受信していない。エージェントシミュレータ200-Aは、時刻t=40と時刻t=60のエージェント4Bの状態に基づく線形外挿によってエージェント4Bの現在の状態を推定する。また、エージェントシミュレータ200-Aは、エージェント4Cの時刻t=0の状態をエージェント4Cの現在の状態として推定する。エージェントシミュレータ200-Aは、推定されたエージェント4B、4Cの状態を用いたシミュレーションによって、エージェント4Aの時刻t=80における状態を決定し、移動メッセージA[80]を送信する。 The next transmission time of agent simulator 200-A is time t=80. Agent simulator 200-A newly receives movement message B[60] from agent simulator 200-B before time t=80, but does not receive a new movement message from agent simulator 200-C. Agent simulator 200-A estimates the current state of agent 4B by linear extrapolation based on the states of agent 4B at time t=40 and time t=60. Agent simulator 200-A also estimates the state of agent 4C at time t=0 as the current state of agent 4C. Agent simulator 200-A determines the state of agent 4A at time t=80 through simulation using the estimated states of agents 4B and 4C, and transmits movement message A[80].

エージェントシミュレータ200-Aの次回の送信時刻は時刻t=100である。エージェントシミュレータ200-Aは、時刻t=100の前にエージェントシミュレータ200-Bから新たに移動メッセージB[80]を受信するが、エージェントシミュレータ200-Cからは新たな移動メッセージは受信していない。エージェントシミュレータ200-Aは、時刻t=60と時刻t=80のエージェント4Bの状態に基づく線形外挿によってエージェント4Bの現在の状態を推定する。また、エージェントシミュレータ200-Aは、エージェント4Cの時刻t=0の状態をエージェント4Cの現在の状態として推定する。エージェントシミュレータ200-Aは、このように推定されたエージェント4B、4Cの状態を用いたシミュレーションによって、エージェント4Aの時刻t=100における状態を決定し、移動メッセージA[100]を送信する。 The next transmission time of agent simulator 200-A is time t=100. Agent simulator 200-A newly receives move message B[80] from agent simulator 200-B before time t=100, but does not receive a new move message from agent simulator 200-C. Agent simulator 200-A estimates the current state of agent 4B by linear extrapolation based on the states of agent 4B at time t=60 and time t=80. Agent simulator 200-A also estimates the state of agent 4C at time t=0 as the current state of agent 4C. Agent simulator 200-A determines the state of agent 4A at time t=100 through simulation using the states of agents 4B and 4C thus estimated, and transmits movement message A[100].

エージェントシミュレータ200-Aの次回の送信時刻は時刻t=120である。エージェントシミュレータ200-Aは、時刻t=120の前にエージェントシミュレータ200-Bから新たに移動メッセージB[100]を受信し、エージェントシミュレータ200-Cからも新たに移動メッセージC[100]を受信する。エージェントシミュレータ200-Aは、移動メッセージB[100]から時刻t=100におけるエージェント4Bの状態を認識し、時刻t=80と時刻t=100のエージェント4Bの状態に基づく線形外挿によってエージェント4Bの現在の状態を推定する。また、エージェントシミュレータ200-Aは、移動メッセージC[100]から時刻t=100におけるエージェント4Cの状態を認識し、時刻t=0と時刻t=100のエージェント4Cの状態に基づく線形外挿によってエージェント4Cの現在の状態を推定する。エージェントシミュレータ200-Aは、このように推定されたエージェント4B、4Cの状態を用いたシミュレーションによって、エージェント4Aの時刻t=120における状態を決定し、移動メッセージA[120]を送信する。 The next transmission time of agent simulator 200-A is time t=120. Agent simulator 200-A newly receives movement message B[100] from agent simulator 200-B before time t=120, and also receives movement message C[100] newly from agent simulator 200-C. . Agent simulator 200-A recognizes the state of agent 4B at time t=100 from movement message B[100], and performs linear extrapolation based on the state of agent 4B at time t=80 and time t=100. Estimate the current state. Agent simulator 200-A also recognizes the state of agent 4C at time t=100 from movement message C[100], and linearly extrapolates the state of agent 4C at time t=0 and time t=100 to Estimate the current state of 4C. Agent simulator 200-A determines the state of agent 4A at time t=120 by simulation using the states of agents 4B and 4C thus estimated, and transmits movement message A[120].

エージェントシミュレータ200-Bの処理は、エージェントシミュレータ200-Aの場合と同様である。エージェントシミュれーた200-Bは、エージェント4Bの時刻t=20、40、60、80、100、120、140における状態を決定する。そして、エージェントシミュレータ200-Bは、それぞれの時刻の状態を表す移動メッセージB[20]、B[40]、B[60]、B[80]、B[100]、B[120]、B[140]を送信する。 The processing of agent simulator 200-B is the same as that of agent simulator 200-A. Agent simulated 200-B determines the state of agent 4B at times t=20, 40, 60, 80, 100, 120, 140. Then, the agent simulator 200-B generates movement messages B[20], B[40], B[60], B[80], B[100], B[120], B[ 140].

エージェントシミュレータ200-Cの次回の送信時刻は時刻t=100である。エージェントシミュレータ200-Cは、時刻t=100の前にエージェントシミュレータ200-Aから移動メッセージA[0]、A[20]、A[40]、A[60]、A[80]を受信する。エージェントシミュレータ200-Cは、最新の2つの過去の状態、すなわち、時刻t=60と時刻t=80のエージェント4Aの状態に基づく線形外挿によってエージェント4Aの現在の状態を推定する。また、エージェントシミュレータ200-Cは、時刻t=100の前にエージェントシミュレータ200-Bから移動メッセージB[0]、B[20]、B[40]、B[60]、B[80]を受信する。エージェントシミュレータ200-Cは、最新の2つの過去の状態、すなわち、時刻t=60と時刻t=80のエージェント4Bの状態に基づく線形外挿によってエージェント4Bの現在の状態を推定する。エージェントシミュレータ200-Cは、このように推定されたエージェント4A、4Bの状態を用いたシミュレーションによって、エージェント4Cの時刻t=100における状態を決定する。そして、エージェントシミュレータ200-Cは、移動メッセージC[100]を送信する。 The next transmission time of agent simulator 200-C is time t=100. Agent simulator 200-C receives movement messages A[0], A[20], A[40], A[60], A[80] from agent simulator 200-A before time t=100. Agent simulator 200-C estimates the current state of agent 4A by linear extrapolation based on the two most recent past states, namely the states of agent 4A at time t=60 and time t=80. Agent simulator 200-C also receives movement messages B[0], B[20], B[40], B[60], B[80] from agent simulator 200-B before time t=100. do. Agent simulator 200-C estimates the current state of agent 4B by linear extrapolation based on the two most recent past states of agent 4B at times t=60 and t=80. Agent simulator 200-C determines the state of agent 4C at time t=100 by simulation using the states of agents 4A and 4B thus estimated. Agent simulator 200-C then transmits movement message C[100].

2.メッセージフィルタリング
各エージェントシミュレータ200-i(i=1~N)に割り当てられるエージェント4を、以下、「対象エージェント4i」と呼ぶ。ここで、Nは、エージェントシミュレータ200の総数であり、2以上の整数である。各エージェントシミュレータ200-iは、割り当てられた対象エージェント4iのシミュレーションを行う。上述の通り、シミュレーションにはメッセージが用いられる。便宜上、センターコントローラ300からエージェントシミュレータ200-iに配信されるメッセージを、以下、「配信メッセージMD-i」と呼ぶ。一方、エージェントシミュレータ200-iにおけるシミュレーションの結果得られる、対象エージェント4iの状態を示すメッセージを、以下、「結果メッセージMR-i」と呼ぶ。
2. Message Filtering Agents 4 assigned to each agent simulator 200-i (i=1 to N) are hereinafter referred to as "target agents 4i". Here, N is the total number of agent simulators 200 and is an integer of 2 or more. Each agent simulator 200-i simulates the assigned target agent 4i. As mentioned above, messages are used in the simulation. For convenience, the message distributed from the center controller 300 to the agent simulator 200-i is hereinafter referred to as "distributed message MD-i". On the other hand, a message indicating the state of the target agent 4i obtained as a result of the simulation in the agent simulator 200-i is hereinafter referred to as "result message MR-i".

センターコントローラ300は、エージェントシミュレータ200-iに対して配信メッセージMD-iを配信する。エージェントシミュレータ200-iに配信される配信メッセージMD-iは、対象エージェント4iと異なる少なくとも1つの他エージェント4j(j=1~N、j≠i)の状態を示す少なくとも1つの結果メッセージMR-jを含む。エージェントシミュレータ200-iは、配信メッセージMD-iで示される他エージェント4jの状態に基づいて、対象エージェント4iのシミュレーションを行って、対象エージェント4iの状態を決定する。そして、エージェントシミュレータ200-iは、シミュレーションの結果得られた対象エージェント4iの状態を示す結果メッセージMR-iをセンターコントローラ300に送信する。センターコントローラ300は、エージェントシミュレータ200-iから受け取る結果メッセージMR-iを、新たな配信メッセージMDとして配信(転送)する。 Center controller 300 distributes distribution message MD-i to agent simulator 200-i. The distribution message MD-i distributed to the agent simulator 200-i is at least one result message MR-j indicating the state of at least one other agent 4j (j=1 to N, j≠i) different from the target agent 4i. including. The agent simulator 200-i determines the state of the target agent 4i by simulating the target agent 4i based on the state of the other agent 4j indicated by the distribution message MD-i. The agent simulator 200-i then transmits to the center controller 300 a result message MR-i indicating the state of the target agent 4i obtained as a result of the simulation. The center controller 300 distributes (transfers) the result message MR-i received from the agent simulator 200-i as a new distribution message MD.

このような構成において、センターコントローラ300から各エージェントシミュレータ200-iに全てのメッセージが配信されると、センターコントローラ300からエージェントシミュレータ200全体への通信量が増大する。通信量の不必要な増大は、通信リソースの不必要な消費を招く。そこで、本実施の形態に係るセンターコントローラ300は、通信量の不必要な増大を抑制するために、配信メッセージMDとして配信(転送)する結果メッセージMRを適宜選別する処理を行う。このような処理を、以下、「メッセージフィルタリング」と呼ぶ。 In such a configuration, when all messages are delivered from the center controller 300 to each agent simulator 200-i, the amount of communication from the center controller 300 to the agent simulators 200 as a whole increases. An unnecessary increase in communication traffic results in unnecessary consumption of communication resources. Therefore, the center controller 300 according to the present embodiment performs processing for appropriately selecting the result message MR to be distributed (transferred) as the distribution message MD in order to suppress an unnecessary increase in communication traffic. Such processing is hereinafter referred to as "message filtering".

以下、本実施の形態に係るメッセージフィルタリングについて説明する。特に、時間的観点に基づくメッセージフィルタリングと、空間的観点に基づくメッセージフィルタリングの二種類について詳しく説明する。 Message filtering according to this embodiment will be described below. In particular, two types of message filtering based on temporal perspective and message filtering based on spatial perspective will be described in detail.

2-1.時間的観点に基づくメッセージフィルタリング
2-1-1.概要
まず、時間的観点に基づくメッセージフィルタリングについて説明する。上述の通り、複数のエージェントシミュレータ200は、処理時間間隔(時間粒度)の異なるものを含み得る。この場合、処理時間間隔が比較的長いエージェントシミュレータ200に対しては、全ての結果メッセージMRを配信メッセージMDとして配信する必要は無く、メッセージフィルタリングを行ってもよい。
2-1. Message filtering based on temporal perspective 2-1-1. Overview First, we describe message filtering based on a temporal perspective. As described above, a plurality of agent simulators 200 can include those with different processing time intervals (time granularity). In this case, it is not necessary to deliver all the result messages MR as the delivery messages MD to the agent simulator 200 having a relatively long processing time interval, and message filtering may be performed.

一例として、上記図3で示されたケースを考える。エージェントシミュレータ200-Aの処理時間間隔TAは、20msecである。エージェントシミュレータ200-Bの処理時間間隔TBは、20msecである。エージェントシミュレータ200-Cの処理時間間隔TCは、100msecである。つまり、エージェントシミュレータ200-Cの処理時間間隔TCは、比較的長い。そのエージェントシミュレータ200-Cは、エージェントシミュレータ200-Aから移動メッセージA[0]、A[20]、A[40]、A[60]、A[80]を受け取り、エージェントシミュレータ200-Bから移動メッセージB[0]、B[20]、B[40]、B[60]、B[80]を受け取る。しかしながら、対象エージェント4Cのシミュレーションに用いられるのは、移動メッセージA[60]、A[80]、B[60]、B[80]である。その他の移動メッセージA[0]、A[20]、A[40]、B[0]、B[20]、B[40]は、シミュレーションには不要である。すなわち、処理時間間隔TCの長いエージェントシミュレータ200-Cに対して移動メッセージA[0]、A[20]、A[40]、B[0]、B[20]、B[40]を配信することは、通信量を不必要に増大させている。 As an example, consider the case illustrated in FIG. 3 above. The processing time interval TA of agent simulator 200-A is 20 msec. The processing time interval TB of agent simulator 200-B is 20 msec. The processing time interval TC of agent simulator 200-C is 100 msec. In other words, the processing time interval TC of agent simulator 200-C is relatively long. The agent simulator 200-C receives movement messages A[0], A[20], A[40], A[60], A[80] from the agent simulator 200-A and moves from the agent simulator 200-B. Receive messages B[0], B[20], B[40], B[60], B[80]. However, the migration messages A[60], A[80], B[60], B[80] are used for the simulation of the subject agent 4C. Other mobility messages A[0], A[20], A[40], B[0], B[20], B[40] are not required for the simulation. That is, the mobile messages A[0], A[20], A[40], B[0], B[20], B[40] are delivered to the agent simulator 200-C having a long processing time interval TC. This unnecessarily increases the amount of communication.

そこで、センターコントローラ300は、図4に示されるようにメッセージフィルタリングを行う。すなわち、センターコントローラ300は、エージェントシミュレータ200-Aから移動メッセージA[0]、A[20]、A[40]、A[60]、A[80]を受信するが、それらのうち移動メッセージA[0]、A[20]、A[40]をエージェントシミュレータ200-Cには配信せず、移動メッセージA[60]、A[80]を選択的にエージェントシミュレータ200-Cに配信(転送)する。同様に、センターコントローラ300は、エージェントシミュレータ200-Bから移動メッセージB[0]、B[20]、B[40]、B[60]、B[80]を受信するが、それらのうち移動メッセージB[0]、B[20]、B[40]をエージェントシミュレータ200-Cには配信せず、移動メッセージB[60]、B[80]を選択的にエージェントシミュレータ200-Cに配信(転送)する。これにより、通信量の不必要な増大が抑制され、通信リソースの不必要な消費が抑制される。尚、このようなメッセージフィルタリングが行われても、エージェントシミュレータ200-Cにおけるシミュレーション精度に変わりはない。 Therefore, the center controller 300 performs message filtering as shown in FIG. That is, center controller 300 receives movement messages A[0], A[20], A[40], A[60], A[80] from agent simulator 200-A. [0], A[20], and A[40] are not delivered to the agent simulator 200-C, and the movement messages A[60] and A[80] are selectively delivered (transferred) to the agent simulator 200-C. do. Similarly, center controller 300 receives move messages B[0], B[20], B[40], B[60], B[80] from agent simulator 200-B. B[0], B[20], and B[40] are not distributed to agent simulator 200-C, and movement messages B[60] and B[80] are selectively distributed (transferred) to agent simulator 200-C. )do. As a result, unnecessary increase in communication traffic is suppressed, and unnecessary consumption of communication resources is suppressed. Even if such message filtering is performed, the accuracy of the simulation in the agent simulator 200-C does not change.

一般化すると次の通りである。図5に示される2つのエージェントシミュレータ200、つまり、第1エージェントシミュレータ200-Xと第2エージェントシミュレータ200-Yについて考える。第1エージェントシミュレータ200-Xは、第1処理時間間隔TXで第1エージェント(対象エージェント)4Xのシミュレーションを行う。一方、第2エージェントシミュレータ200-Yは、第2処理時間間隔TYで第2エージェント(対象エージェント)4Yのシミュレーションを行う。第2処理時間間隔TYは、第1処理時間間隔TXよりも長い。この場合、センターコントローラ300は、第2エージェントシミュレータ200-Yに対して単位時間当たりに配信する第2配信メッセージMD-Yの数を、第1エージェントシミュレータ200-Xに対して単位時間当たりに配信する第1配信メッセージMD-Xの数よりも少なく設定する。これにより、通信量の不必要な増大が抑制される。 The generalization is as follows. Consider two agent simulators 200 shown in FIG. 5, a first agent simulator 200-X and a second agent simulator 200-Y. The first agent simulator 200-X simulates the first agent (target agent) 4X at the first processing time interval TX. On the other hand, the second agent simulator 200-Y simulates the second agent (target agent) 4Y at the second processing time interval TY. The second processing time interval TY is longer than the first processing time interval TX. In this case, the center controller 300 distributes the number of second distribution messages MD-Y to the second agent simulator 200-Y per unit time to the first agent simulator 200-X per unit time. set to be less than the number of first delivery messages MD-X to be sent. This suppresses an unnecessary increase in communication traffic.

より詳細には、第1エージェントシミュレータ200-Xは、第1エージェント4Xに関する第1結果メッセージMR-Xを、第1処理時間間隔TXに応じた第1頻度でセンターコントローラ300に送信する。センターコントローラ300は、第1処理時間間隔TXに応じた第1頻度で第1結果メッセージMR-Xを受信する。しかしながら、処理時間間隔の長い第2エージェントシミュレータ200-Yに対して同じ第1頻度で第1結果メッセージMR-Xを配信する必要はない。第2エージェントシミュレータ200-Yに対しては、第2処理時間間隔TYに応じた第2頻度で第1結果メッセージMR-Xを配信すれば十分である。第2処理時間間隔TYに応じた第2頻度は、第1処理時間間隔TXに応じた第1頻度よりも低い。センターコントローラ300は、第1エージェントシミュレータ200-Xから受け取る第1結果メッセージMR-Xの一部だけを第2配信メッセージMD-Yとして選択し、選択した第2配信メッセージMD-Yを第2エージェントシミュレータ200-Yに配信する。つまり、センターコントローラ300は、第1頻度よりも低い第2頻度で、第2配信メッセージMD-Yを第2エージェントシミュレータ200-Yに配信する。 More specifically, the first agent simulator 200-X transmits the first result message MR-X regarding the first agent 4X to the center controller 300 with the first frequency corresponding to the first processing time interval TX. The center controller 300 receives the first result message MR-X with a first frequency according to the first processing time interval TX. However, it is not necessary to deliver the first result message MR-X with the same first frequency to the second agent simulator 200-Y having a long processing time interval. It is sufficient to deliver the first result message MR-X to the second agent simulator 200-Y at a second frequency corresponding to the second processing time interval TY. The second frequency corresponding to the second processing time interval TY is lower than the first frequency corresponding to the first processing time interval TX. The center controller 300 selects only a part of the first result message MR-X received from the first agent simulator 200-X as the second distribution message MD-Y, and transmits the selected second distribution message MD-Y to the second agent simulator 200-X. Distribute to the simulator 200-Y. That is, the center controller 300 distributes the second distribution message MD-Y to the second agent simulator 200-Y with the second frequency lower than the first frequency.

第2エージェントシミュレータ200-Yは、第2処理時間間隔TYで、第2エージェント4Yの状態を決定する。センターコントローラ300は、第1エージェントシミュレータ200-Xから受け取る第1結果メッセージMR-Xの一部を第2配信メッセージMD-Yとして選択する。このとき、センターコントローラ300は、第2エージェントシミュレータ200-Yが第2エージェント4Yの状態を決定するタイミングより前の最新の第1結果メッセージMR-Xを少なくとも含むように、第2配信メッセージMD-Yを選択することが好ましい(図4参照)。図4で示された例では、最新の2つの第1結果メッセージMR-X(例:A[60]、A[80])が第2配信メッセージMD-Yとして選択されている。最新の第1結果メッセージMR-Xを少なくとも含むように第2配信メッセージMD-Yを選択することにより、第2エージェントシミュレータ200-Yにおける第2エージェント4Yに関するシミュレーション精度が向上する。 The second agent simulator 200-Y determines the state of the second agent 4Y at the second processing time interval TY. The center controller 300 selects a portion of the first result message MR-X received from the first agent simulator 200-X as the second delivery message MD-Y. At this time, the center controller 300 distributes the second distribution message MD- to include at least the latest first result message MR-X before the timing when the second agent simulator 200-Y determines the state of the second agent 4Y. It is preferable to choose Y (see FIG. 4). In the example shown in FIG. 4, the latest two first result messages MR-X (eg A[60], A[80]) are selected as second delivery messages MD-Y. By selecting the second delivery message MD-Y to include at least the most recent first result message MR-X, the simulation accuracy for the second agent 4Y in the second agent simulator 200-Y is improved.

第2エージェントシミュレータ200-Yは、第2エージェント4Yに関する第2結果メッセージMR-Yを、第2処理時間間隔TYに応じた第2頻度でセンターコントローラ300に送信する。センターコントローラ300は、第2処理時間間隔TYに応じた第2頻度で第2結果メッセージMR-Yを受信する。センターコントローラ300は、全ての第2結果メッセージMR-Yを第1配信メッセージMD-Xとして第1エージェントシミュレータ200-Xに配信してもよい。 The second agent simulator 200-Y transmits a second result message MR-Y regarding the second agent 4Y to the center controller 300 with a second frequency corresponding to the second processing time interval TY. The center controller 300 receives the second result message MR-Y with a second frequency according to the second processing time interval TY. The center controller 300 may deliver all the second result messages MR-Y to the first agent simulator 200-X as the first delivery messages MD-X.

センターコントローラ300は、各エージェントシミュレータ200-iにおける処理時間間隔を示す「参照情報REF1」を保持している。例えば、各エージェントシミュレータ200-iにおける処理時間間隔は予め設定され、参照情報REF1は予めセンターコントローラ300に提供される。その参照情報REF1に基づいて、センターコントローラ300は、各エージェントシミュレータ200-iにおける処理時間間隔を把握し、各エージェントシミュレータ200-iに配信する配信メッセージMDを調整する。つまり、センターコントローラ300は、各エージェントシミュレータ200-iにおける処理時間間隔に応じて、各エージェントシミュレータ200-iに配信する配信メッセージMDを選別する。 The center controller 300 holds "reference information REF1" indicating the processing time interval in each agent simulator 200-i. For example, the processing time interval in each agent simulator 200-i is set in advance, and the reference information REF1 is provided to the center controller 300 in advance. Based on the reference information REF1, the center controller 300 grasps the processing time interval in each agent simulator 200-i and adjusts the distribution message MD to be distributed to each agent simulator 200-i. That is, the center controller 300 selects the distribution message MD to be distributed to each agent simulator 200-i according to the processing time interval in each agent simulator 200-i.

2-1-2.構成例
図6は、時間的観点に基づくメッセージフィルタリングに関連する構成例を示すブロック図である。図6に示される例では、センターコントローラ300は、複数のメッセージフィルタ311-1~311-Nを含んでいる。複数のメッセージフィルタ311-1~311-Nは、それぞれ、複数のエージェントシミュレータ200-1~200-Nに対して設けられており、複数のエージェントシミュレータ200-1~200-Nに関するメッセージフィルタリングを行う。すなわち、複数のメッセージフィルタ311-1~311-Nは、それぞれ、複数のエージェントシミュレータ200-1~200-Nに配信する配信メッセージMD-1~MD-Nの数を調整する。
2-1-2. Example Configurations FIG. 6 is a block diagram illustrating an example configuration related to message filtering based on a temporal perspective. In the example shown in FIG. 6, the center controller 300 includes multiple message filters 311-1 through 311-N. A plurality of message filters 311-1 to 311-N are provided for the plurality of agent simulators 200-1 to 200-N, respectively, and perform message filtering regarding the plurality of agent simulators 200-1 to 200-N. . That is, the plurality of message filters 311-1 to 311-N respectively adjust the number of delivery messages MD-1 to MD-N to be delivered to the plurality of agent simulators 200-1 to 200-N.

より詳細には、複数のメッセージフィルタ311-1~311-Nは、それぞれ、複数のエージェントシミュレータ200-1~200-Nの処理時間間隔T1~TNに関する情報(参照情報REF1)を保持している。メッセージフィルタ311-iは、処理時間間隔Tiの情報に基づいて、エージェントシミュレータ200-iに配信する配信メッセージMD-iの数を調整する。図5に示された例の場合、第1メッセージフィルタ311-Xは、第1処理時間間隔TXの情報に基づいて、第1エージェントシミュレータ200-Xに配信する第1配信メッセージMD-Xの数を調整する。第2メッセージフィルタ311-Yは、第2処理時間間隔TYの情報に基づいて、第2エージェントシミュレータ200-Yに配信する第2配信メッセージMD-Yの数を調整する。各メッセージフィルタ311-iは、配信メッセージMD-iの数を調整するためのメッセージキューを含んでいる。 More specifically, the plurality of message filters 311-1 to 311-N respectively hold information (reference information REF1) regarding processing time intervals T1 to TN of the plurality of agent simulators 200-1 to 200-N. . The message filter 311-i adjusts the number of distribution messages MD-i to be distributed to the agent simulator 200-i based on the processing time interval Ti information. In the example shown in FIG. 5, the first message filter 311-X determines the number of first delivery messages MD-X to be delivered to the first agent simulator 200-X based on the information of the first processing time interval TX. to adjust. The second message filter 311-Y adjusts the number of second distribution messages MD-Y to be distributed to the second agent simulator 200-Y based on the information of the second processing time interval TY. Each message filter 311-i includes a message queue for regulating the number of delivery messages MD-i.

図7は、エージェントシミュレータ200とメッセージフィルタ311の配置の一例を示している。複数のメッセージフィルタ311-1~311-Nは、同一サブネット内に配置されている。その同一サブネット内にエージェントシミュレータ200が存在していてもよい。同一サブネット内に存在するエージェントシミュレータ200は、ブロードキャストにより結果メッセージMRを複数のメッセージフィルタ311-1~311-Nに送信する。同一サブネット外に存在するエージェントシミュレータ200は、ゲートウェイ40を介して当該サブネットに接続されている。ゲートウェイ40は、当該エージェントシミュレータ200から結果メッセージMRを受け取り、受け取った結果メッセージMRをブロードキャストにより複数のメッセージフィルタ311-1~311-Nに送信する。ブロードキャストを利用することにより、結果メッセージMRを各メッセージフィルタ311-iに効率的に分配することが可能となる。 FIG. 7 shows an example of arrangement of the agent simulator 200 and the message filter 311. As shown in FIG. A plurality of message filters 311-1 to 311-N are arranged within the same subnet. The agent simulator 200 may exist within the same subnet. The agent simulators 200 existing within the same subnet broadcast the result message MR to a plurality of message filters 311-1 to 311-N. Agent simulators 200 existing outside the same subnet are connected to the subnet through gateway 40 . The gateway 40 receives the result message MR from the agent simulator 200, and broadcasts the received result message MR to the plurality of message filters 311-1 to 311-N. By using broadcasting, it is possible to efficiently distribute the result message MR to each message filter 311-i.

2-1-3.効果
以上に説明されたように、一実施形態において、センターコントローラ300は、各エージェントシミュレータ200-iの処理時間間隔Tiに基づいて、メッセージフィルタリングを行う。より詳細には、センターコントローラ300は、処理時間間隔が比較的長いエージェントシミュレータ200に対して単位時間あたり配信する配信メッセージMDの数を比較的少なく設定する。これにより、センターコントローラ300からエージェントシミュレータ200に配信されるメッセージ量が全体として削減される。すなわち、通信量の不必要な増大が抑制され、通信リソースの不必要な消費が抑制される。
2-1-3. Effect As described above, in one embodiment, the center controller 300 performs message filtering based on the processing time interval Ti of each agent simulator 200-i. More specifically, the center controller 300 sets a relatively small number of delivery messages MD to be delivered per unit time to agent simulators 200 with relatively long processing time intervals. As a result, the amount of messages distributed from the center controller 300 to the agent simulator 200 is reduced as a whole. That is, unnecessary increase in communication traffic is suppressed, and unnecessary consumption of communication resources is suppressed.

2-2.空間的観点に基づくメッセージフィルタリング
2-2-1.概要
次に、空間的観点に基づくメッセージフィルタリングについて説明する。シミュレーション対象世界2におけるエージェント4間の距離は様々である。遠く離れたエージェント4間では、全てのメッセージをやりとりする必要は無く、メッセージフィルタリングを行ってもよい。
2-2. Message filtering based on spatial point of view 2-2-1. Overview We now describe message filtering based on a spatial perspective. The distance between the agents 4 in the simulated world 2 varies. Not all messages need to be exchanged between remote agents 4, and message filtering may be performed.

ここで、エージェント4間の距離が短いとは、エージェント4間の相互作用の度合いが高いことを意味し、エージェント4間の距離が長いとは、エージェント4間の相互作用の度合いが低いことを意味する。エージェント4間の距離は、エージェント4間の相互作用の度合いの逆数であると言うこともできる。例えば、2つのエージェント4が見通し環境(Line Of Sight)にある場合、2つのエージェント4間の「直線距離(ユークリッド距離)」あるいは「マンハッタン距離」が用いられる。 Here, a short distance between the agents 4 means that the degree of interaction between the agents 4 is high, and a long distance between the agents 4 means that the degree of interaction between the agents 4 is low. means. It can also be said that the distance between agents 4 is the reciprocal of the degree of interaction between agents 4 . For example, when two agents 4 are in line of sight (Line Of Sight), the "Euclidean distance" or "Manhattan distance" between the two agents 4 is used.

2つのエージェント4が非見通し環境(Non Line OF Sight)にある場合の距離は次の通りである。例えば、他のエージェント4を見ることを前提としたシミュレーションの場合、2つのエージェント4は互いに見ることができないため、それらの間の距離を無限大とみなしてもよい。他の例として、他のエージェント4が発した音を聞くことを前提としたシミュレーションの場合、音の伝搬がレイトレーシングにより模擬され、最短レイの長さ(最短伝搬経路長)が距離として用いられる。 The distance when two agents 4 are in a non-line-of-sight environment (Non Line OF Sight) is as follows. For example, in a simulation that assumes that other agents 4 can be seen, two agents 4 cannot see each other, so the distance between them may be considered infinite. As another example, in the case of a simulation premised on listening to sounds emitted by other agents 4, sound propagation is simulated by ray tracing, and the length of the shortest ray (shortest propagation path length) is used as the distance. .

各エージェントシミュレータ200-iからセンターコントローラ300に送られる結果メッセージMR-iは、シミュレーション対象世界2における各エージェント4iの最新の位置情報を含んでいる。センターコントローラ300は、シミュレーション対象世界2の空間構成情報を保持している。その空間構成情報と各エージェント4iの位置情報に基づいて、センターコントローラ300は、シミュレーション対象世界2におけるエージェント4間の距離を算出することができる。 A result message MR-i sent from each agent simulator 200-i to the center controller 300 contains the latest location information of each agent 4i in the world 2 to be simulated. The center controller 300 holds spatial configuration information of the simulation target world 2 . The center controller 300 can calculate the distance between the agents 4 in the simulation target world 2 based on the spatial configuration information and the position information of each agent 4i.

図8及び図9は、空間的観点に基づくメッセージフィルタリングの概要を説明するための概念図である。ここでは、3つのエージェント4X、4Y、4Zと、3つのエージェントシミュレータ200-X、200-Y、200-Zについて考える。シミュレーション対象世界2において、第1エージェント4Xと第3エージェント4Zとの間の距離Dxzは、第2エージェント4Yと第3エージェント4Zとの間の距離Dyzよりも大きい。 8 and 9 are conceptual diagrams for explaining an outline of message filtering based on a spatial point of view. Here, consider three agents 4X, 4Y, 4Z and three agent simulators 200-X, 200-Y, 200-Z. In the simulation target world 2, the distance Dxz between the first agent 4X and the third agent 4Z is greater than the distance Dyz between the second agent 4Y and the third agent 4Z.

第1エージェントシミュレータ200-Xは、第1エージェント(対象エージェント)4Xのシミュレーションを行う。第2エージェントシミュレータ200-Yは、第2エージェント(対象エージェント)4Yのシミュレーションを行う。第3エージェントシミュレータ200-Zは、第3エージェント(対象エージェント)4Zのシミュレーションを行う。第1エージェントシミュレータ200-Xは、第1エージェント4Xに関する第1結果メッセージMR-Xをセンターコントローラ300に送信する。第2エージェントシミュレータ200-Yは、第2エージェント4Yに関する第2結果メッセージMR-Yをセンターコントローラ300に送信する。センターコントローラ300は、第1エージェントシミュレータ200-Xから第1結果メッセージMR-Xを受け取り、第1結果メッセージMR-Xの少なくとも一部を第3配信メッセージMD-Zとして第3エージェントシミュレータ200-Zに配信する。また、センターコントローラ300は、第2エージェントシミュレータ200-Yから第2結果メッセージMR-Yを受け取り、第2結果メッセージMR-Yの少なくとも一部を第3配信メッセージMD-Zとして第3エージェントシミュレータ200-Zに配信する。 The first agent simulator 200-X simulates the first agent (target agent) 4X. The second agent simulator 200-Y simulates the second agent (target agent) 4Y. The third agent simulator 200-Z simulates a third agent (target agent) 4Z. The first agent simulator 200-X transmits to the center controller 300 the first result message MR-X regarding the first agent 4X. The second agent simulator 200-Y transmits to the center controller 300 a second result message MR-Y regarding the second agent 4Y. The center controller 300 receives the first result message MR-X from the first agent simulator 200-X, converts at least part of the first result message MR-X into the third distribution message MD-Z, and distributes it to the third agent simulator 200-Z. deliver to Also, the center controller 300 receives the second result message MR-Y from the second agent simulator 200-Y, and converts at least part of the second result message MR-Y into the third distribution message MD-Z to the third agent simulator 200. - Deliver to Z.

図8及び図9で示される例では、第1エージェント4Xと第3エージェント4Zとの間の距離Dxzは、第2エージェント4Yと第3エージェント4Zとの間の距離Dyzよりも大きい。この場合、センターコントローラ300は、第3エージェントシミュレータ200-Zに対する第1結果メッセージMR-Xの配信頻度を、第3エージェントシミュレータ200-Zに対する第2結果メッセージMR-Yの配信頻度よりも低く設定する。これにより、通信量の不必要な増大が抑制され、通信リソースの不必要な消費が抑制される。尚、遠い第1エージェント4Xに関する第1結果メッセージMR-Xの配信頻度が低くなっても、第3エージェントシミュレータ200-Zにおけるシミュレーション精度はさほど低下しない。 In the examples shown in FIGS. 8 and 9, the distance Dxz between the first agent 4X and the third agent 4Z is greater than the distance Dyz between the second agent 4Y and the third agent 4Z. In this case, the center controller 300 sets the delivery frequency of the first result message MR-X to the third agent simulator 200-Z lower than the delivery frequency of the second result message MR-Y to the third agent simulator 200-Z. do. As a result, unnecessary increase in communication traffic is suppressed, and unnecessary consumption of communication resources is suppressed. Even if the delivery frequency of the first result message MR-X relating to the distant first agent 4X becomes low, the accuracy of the simulation in the third agent simulator 200-Z does not deteriorate so much.

図9に示されるように、センターコントローラ300は、参照情報REF2を保持している。参照情報REF2は、シミュレーション対象世界2の空間構成情報を含んでいる。センターコントローラ300は、その空間構成情報と結果メッセージMRに含まれる各エージェント4iの位置情報に基づいて、エージェント4間の距離を把握することができる。更に、参照情報REF2は、エージェント4間の距離と配信頻度との対応関係を示す関数情報を含んでいる。関数情報は、ユーザのポリシーに従って予め作成される。センターコントローラ300は、その関数情報に基づいて、エージェント4間の距離に応じた配信頻度を設定する。 As shown in FIG. 9, the center controller 300 holds reference information REF2. The reference information REF2 includes spatial configuration information of the world 2 to be simulated. The center controller 300 can grasp the distance between the agents 4 based on the spatial configuration information and the position information of each agent 4i included in the result message MR. Furthermore, the reference information REF2 includes function information indicating the correspondence between the distance between the agents 4 and the distribution frequency. Function information is created in advance according to the user's policy. The center controller 300 sets the distribution frequency according to the distance between the agents 4 based on the function information.

2-2-2.パーティション分割
図10に示されるように、シミュレーション対象世界2の空間は、複数のパーティションP(ボクセル)に分割されてもよい。パーティション構成は、固定であってもよいし、動的に変動してもよい。例えば、パーティション構成は、エージェント4の疎密に応じて動的に設定されてもよい。その場合、図10に例示されるように、エージェント4の密度が高い領域はより多くのパーティションPに分割され、各パーティションPのサイズは小さくなる。パーティション構成は、周知の空間分割アルゴリズムにより決定される。
2-2-2. Partitioning As shown in FIG. 10, the space of the simulated world 2 may be divided into multiple partitions P (voxels). The partition configuration may be fixed or may vary dynamically. For example, the partition configuration may be dynamically set according to the density of the agents 4 . In that case, as illustrated in FIG. 10, the area with high density of agents 4 is divided into more partitions P, and the size of each partition P is reduced. The partition scheme is determined by well-known spatial division algorithms.

センターコントローラ300は、パーティションP間の距離に応じて、パーティションP単位でメッセージフィルタリングを行ってもよい。2つのパーティションP間の距離は、例えば、2つのパーティションPの重心間の距離である。他の例として、2つのパーティションP間の距離は、2つのパーティションPのそれぞれに属する2点間の距離の最大値である。更に他の例として、2つのパーティションP間の距離は、2つのパーティションPのそれぞれに属する2点間の距離の最小値である。 The center controller 300 may perform message filtering for each partition P according to the distance between the partitions P. The distance between two partitions P is the distance between the centroids of the two partitions P, for example. As another example, the distance between two partitions P is the maximum distance between two points belonging to each of the two partitions P. As yet another example, the distance between two partitions P is the minimum distance between two points belonging to the two partitions P respectively.

センターコントローラ300は、周知の空間分割アルゴリズムによりパーティション構成を決定する。上述の参照情報REF2には、シミュレーション対象世界2の空間構成情報に加えて、パーティション構成の情報も追加される。センターコントローラ300は、参照情報REF2に基づいて、パーティションP間の距離を算出する。更に、参照情報REF2は、パーティションP間の距離と配信頻度との対応関係を示す関数情報を含んでいる。関数情報は、ユーザのポリシーに従って予め作成される。センターコントローラ300は、その関数情報に基づいて、パーティションP間の距離に応じた配信頻度を設定する。 Center controller 300 determines the partition configuration by a well-known space division algorithm. In addition to the spatial configuration information of the simulation target world 2, partition configuration information is also added to the reference information REF2 described above. The center controller 300 calculates the distance between the partitions P based on the reference information REF2. Further, the reference information REF2 includes function information indicating the correspondence between the distance between the partitions P and the distribution frequency. Function information is created in advance according to the user's policy. The center controller 300 sets the distribution frequency according to the distance between the partitions P based on the function information.

一例として、図10に示される3つのパーティションPX、PY、PZについて考える。シミュレーション対象世界2において、第1パーティションPXと第3パーティションPZとの間の距離は、第2パーティションPYと第3パーティションPZとの間の距離よりも大きい。 As an example, consider the three partitions PX, PY, PZ shown in FIG. In the simulation target world 2, the distance between the first partition PX and the third partition PZ is greater than the distance between the second partition PY and the third partition PZ.

センターコントローラ300は、第1パーティションPXに属する各エージェント4のシミュレーションを行う各エージェントシミュレータ200から第1結果メッセージMR-Xを受け取る。また、センターコントローラ300は、第2パーティションPYに属する各エージェント4のシミュレーションを行う各エージェントシミュレータ200から第2結果メッセージMR-Yを受け取る。センターコントローラ300は、第1結果メッセージMR-Xと第2結果メッセージMR-Yの少なくとも一部を、第3パーティションPZに対する第3配信メッセージMD-Zとして選択する。そして、センターコントローラ300は、第3配信メッセージMD-Zを、第3パーティションPZに属する各エージェント4のシミュレーションを行う各エージェントシミュレータ200に配信する。図10に示される例では、第1パーティションPXと第3パーティションPZとの間の距離は、第2パーティションPYと第3パーティションPZとの間の距離よりも大きい。この場合、センターコントローラ300は、第1結果メッセージMR-Xを第3配信メッセージMD-Zとして配信する配信頻度を、第2結果メッセージMR-Yを第3配信メッセージMD-Zとして配信する配信頻度よりも低く設定する。 The center controller 300 receives the first result message MR-X from each agent simulator 200 that simulates each agent 4 belonging to the first partition PX. Also, the center controller 300 receives a second result message MR-Y from each agent simulator 200 that simulates each agent 4 belonging to the second partition PY. The center controller 300 selects at least part of the first result message MR-X and the second result message MR-Y as the third distribution message MD-Z for the third partition PZ. Then, the center controller 300 distributes the third distribution message MD-Z to each agent simulator 200 that simulates each agent 4 belonging to the third partition PZ. In the example shown in FIG. 10, the distance between the first partition PX and the third partition PZ is greater than the distance between the second partition PY and the third partition PZ. In this case, the center controller 300 sets the delivery frequency for delivering the first result message MR-X as the third delivery message MD-Z, and the delivery frequency for delivering the second result message MR-Y as the third delivery message MD-Z. set lower than

例えば、図11に示されるように、センターコントローラ300は、第1パーティション受信キュー312-Xと、第2パーティション受信キュー312-Yと、第3パーティション送信キュー313-Zとを含む。第1パーティション受信キュー312-Xは、第1パーティションPXに属する各エージェント4のシミュレーションを行う各エージェントシミュレータ200から受け取る第1結果メッセージMR-Xを格納する。第2パーティション受信キュー312-Yは、第2パーティションPYに属する各エージェント4のシミュレーションを行う各エージェントシミュレータ200から受け取る第2結果メッセージMR-Yを格納する。第3パーティション送信キュー313-Zは、第3パーティションPZに属する各エージェント4のシミュレーションを行う各エージェントシミュレータ200に配信される第3配信メッセージMD-Zを格納する。センターコントローラ300は、第1パーティション受信キュー312-Xに格納された第1結果メッセージMR-Xのうち必要なものを第3パーティション送信キュー313-Zに転送する。また、センターコントローラ300は、第2パーティション受信キュー312-Yに格納された第2結果メッセージMR-Yのうち必要なものを第3パーティション送信キュー313-Zに転送する。図10に示される例では、第1パーティションPXと第3パーティションPZとの間の距離は、第2パーティションPYと第3パーティションPZとの間の距離よりも大きい。この場合、センターコントローラ300は、第1パーティション受信キュー312-Xから第3パーティション送信キュー313-Zへの第1結果メッセージMR-Xの転送頻度を、第2パーティション受信キュー312-Yから第3パーティション送信キュー313-Zへの第2結果メッセージMR-Yの転送頻度よりも低く設定する。 For example, as shown in FIG. 11, the center controller 300 includes a first partition receive queue 312-X, a second partition receive queue 312-Y, and a third partition transmit queue 313-Z. The first partition reception queue 312-X stores the first result message MR-X received from each agent simulator 200 that simulates each agent 4 belonging to the first partition PX. The second partition reception queue 312-Y stores second result messages MR-Y received from each agent simulator 200 that simulates each agent 4 belonging to the second partition PY. The third partition transmission queue 313-Z stores the third distribution message MD-Z to be distributed to each agent simulator 200 that simulates each agent 4 belonging to the third partition PZ. The center controller 300 transfers the necessary first result messages MR-X stored in the first partition reception queue 312-X to the third partition transmission queue 313-Z. Also, the center controller 300 transfers the necessary second result messages MR-Y stored in the second partition reception queue 312-Y to the third partition transmission queue 313-Z. In the example shown in FIG. 10, the distance between the first partition PX and the third partition PZ is greater than the distance between the second partition PY and the third partition PZ. In this case, the center controller 300 changes the transfer frequency of the first result message MR-X from the first partition reception queue 312-X to the third partition transmission queue 313-Z to the third partition reception queue 312-Y from the second partition reception queue 312-Y. It is set lower than the transfer frequency of the second result message MR-Y to the partition transmission queue 313-Z.

このように、シミュレーション対象世界2の空間が複数のパーティションPに分割される場合、パーティションP単位でメッセージフィルタリングが行われる。これによっても、通信量の不必要な増大が抑制され、通信リソースの不必要な消費が抑制される。 In this way, when the space of the simulation target world 2 is divided into a plurality of partitions P, message filtering is performed for each partition P. This also suppresses unnecessary increase in communication traffic, and suppresses unnecessary consumption of communication resources.

また、パーティションP単位でメッセージフィルタリングを行うことにより、計算処理負荷を軽減することが可能となる。例えば、エージェント4の総数が1000であり、パーティションPの総数が10である場合を考える。エージェント4毎にメッセージフィルタリングを行う場合、エージェント4の全てのペアについて距離を算出するために約10回の計算処理が必要である。一方、パーティションP毎にメッセージフィルタリングを行う場合、パーティションPの全てのペアについて距離を算出するために必要な計算処理の回数は90回である。計算処理負荷が軽減されることは、シミュレーション速度及びシミュレーションコストの観点から好適である。 Also, by performing message filtering on a partition P basis, it is possible to reduce the computational processing load. For example, consider the case where the total number of agents 4 is 1000 and the total number of partitions P is 10. When message filtering is performed for each agent 4 , approximately 10 6 calculations are required to calculate distances for all pairs of agents 4 . On the other hand, when message filtering is performed for each partition P, the number of calculation processes required to calculate distances for all pairs of partition P is 90 times. Reducing the computational processing load is preferable from the viewpoint of simulation speed and simulation cost.

2-2-3.構成例
図11は、空間的観点に基づくメッセージフィルタリングに関連する第1の構成例を示すブロック図である。第1の構成例では、センターコントローラ300は、「Publish/Subscribeモデル」に基づいてメッセージフィルタリングを行うように設計されている。より詳細には、センターコントローラ300は、複数の受信キュー312、複数の送信キュー313、及び転送部314を含んでいる。
2-2-3. Configuration Example FIG. 11 is a block diagram illustrating a first configuration example related to message filtering based on a spatial perspective. In the first configuration example, the center controller 300 is designed to perform message filtering based on the "publish/subscribe model". More specifically, the center controller 300 includes multiple receive queues 312 , multiple transmit queues 313 and a transfer section 314 .

複数の受信キュー312は、それぞれ、複数のパーティションPに対して設けられている。同様に、複数の送信キュー313は、それぞれ、複数のパーティションPに対して設けられている。すなわち、受信キュー312と送信キュー313が、各パーティションP毎に設けられている。各受信キュー312は、対応するパーティションPに属する各エージェント4のシミュレーションを行うエージェントシミュレータ200から受け取る結果メッセージMRを格納する。各送信キュー313は、対応するパーティションPに属する各エージェント4のシミュレーションを行うエージェントシミュレータ200に配信される配信メッセージMDを格納する。 A plurality of reception queues 312 are provided for a plurality of partitions P, respectively. Similarly, multiple transmission queues 313 are provided for multiple partitions P, respectively. That is, a reception queue 312 and a transmission queue 313 are provided for each partition P. FIG. Each reception queue 312 stores a result message MR received from the agent simulator 200 that simulates each agent 4 belonging to the corresponding partition P. FIG. Each transmission queue 313 stores a distribution message MD to be distributed to the agent simulator 200 that simulates each agent 4 belonging to the corresponding partition P. FIG.

各エージェントシミュレータ200-iは、エージェント4iに関する結果メッセージMR-iをセンターコントローラ300に送信する(Publish)。その結果メッセージMR-iは、シミュレーション対象世界2におけるエージェント4iの位置情報を含んでいる。センターコントローラ300は、エージェント4iの位置情報とパーティション構成に基づいて、決定木等の手段により、エージェント4iが属するパーティションPを認識する。すなわち、センターコントローラ300は、決定木等の手段により、結果メッセージMR-iをエージェント4iが属するパーティションPに対応する受信キュー312に振り分ける。 Each agent simulator 200-i transmits (Publishes) a result message MR-i regarding the agent 4i to the center controller 300. FIG. As a result, the message MR-i contains the location information of the agent 4i in the world 2 to be simulated. The center controller 300 recognizes the partition P to which the agent 4i belongs by means of a decision tree or the like based on the location information of the agent 4i and the partition configuration. That is, the center controller 300 distributes the result message MR-i to the reception queue 312 corresponding to the partition P to which the agent 4i belongs, by means of a decision tree or the like.

また、各エージェントシミュレータ200-iは、エージェント4iに関する配信メッセージMD-iをセンターコントローラ300から取得する(Subscribe)。例えば、各エージェントシミュレータ200-iは、エージェント4iの位置情報とパーティション構成に基づいて、決定木等の手段により、エージェント4iが属するパーティションPを認識する。すなわち、各エージェントシミュレータ200-iは、決定木等の手段により、エージェント4iに関する配信メッセージMD-iが格納されている送信キュー313を認識する。そして、各エージェントシミュレータ200-iは、その送信キュー313からエージェント4iに関する配信メッセージMD-iを取得(Pull)する。尚、Subscribeの方式は、Pull方式に限られない。他の例として、Push方式のSubscrieが行われてもよい。 Also, each agent simulator 200-i acquires (subscribes to) the delivery message MD-i regarding the agent 4i from the center controller 300. FIG. For example, each agent simulator 200-i recognizes the partition P to which the agent 4i belongs by means of a decision tree or the like based on the location information of the agent 4i and the partition configuration. That is, each agent simulator 200-i recognizes the transmission queue 313 storing the delivery message MD-i regarding the agent 4i by means of a decision tree or the like. Then, each agent simulator 200-i acquires (Pulls) the delivery message MD-i regarding the agent 4i from the transmission queue 313 thereof. Note that the Subscribe method is not limited to the Pull method. As another example, Push-type subscription may be performed.

転送部314は、各受信キュー312に格納される結果メッセージMRのうち必要なものを必要な送信キュー313に転送する。この転送部314の機能は、上述のメッセージフィルタリングの観点から設定される。すなわち、転送部314は、受信キュー312と送信キュー313の組み合わせ毎に、パーティションP間の距離に応じて結果メッセージMRの転送頻度を設定する。上述の通り、参照情報REF2は、パーティション構成の情報、及び、パーティションP間の距離と配信頻度との対応関係を示す関数情報を含んでいる。センターコントローラ300は、その参照情報REF2に基づいて、転送部314の機能を設定することができる。 The transfer unit 314 transfers a necessary result message MR stored in each reception queue 312 to a necessary transmission queue 313 . The function of this forwarding unit 314 is set from the viewpoint of message filtering described above. That is, the transfer unit 314 sets the transfer frequency of the result message MR according to the distance between the partitions P for each combination of the reception queue 312 and the transmission queue 313 . As described above, the reference information REF2 includes partition configuration information and function information indicating the correspondence relationship between the distance between partitions P and the distribution frequency. The center controller 300 can set the functions of the transfer section 314 based on the reference information REF2.

上述の図10で示された例では、第1パーティションPXと第3パーティションPZとの間の距離は、第2パーティションPYと第3パーティションPZとの間の距離よりも大きい。この場合、センターコントローラ300は、第1パーティション受信キュー312-Xから第3パーティション送信キュー313-Zへの第1結果メッセージMR-Xの転送頻度を、第2パーティション受信キュー312-Yから第3パーティション送信キュー313-Zへの第2結果メッセージMR-Yの転送頻度よりも低く設定する。尚、第3パーティション受信キュー312-Zから第3パーティション送信キュー313-Zへの転送頻度が最も高い。 In the example shown in FIG. 10 above, the distance between the first partition PX and the third partition PZ is greater than the distance between the second partition PY and the third partition PZ. In this case, the center controller 300 changes the transfer frequency of the first result message MR-X from the first partition reception queue 312-X to the third partition transmission queue 313-Z to the third partition reception queue 312-Y from the second partition reception queue 312-Y. It is set lower than the transfer frequency of the second result message MR-Y to the partition transmission queue 313-Z. The transfer frequency from the third partition reception queue 312-Z to the third partition transmission queue 313-Z is the highest.

図12は、空間的観点に基づくメッセージフィルタリングに関連する第2の構成例を示すブロック図である。第2の構成例では、センターコントローラ300は、複数のメッセージフィルタ315-1~315-Nを含んでいる。複数のメッセージフィルタ315-1~315-Nは、それぞれ、複数のエージェントシミュレータ200-1~200-Nに対して設けられており、複数のエージェントシミュレータ200-1~200-Nに関するメッセージフィルタリングを行う。すなわち、複数のメッセージフィルタ315-1~315-Nは、それぞれ、複数のエージェントシミュレータ200-1~200-Nに配信する配信メッセージMD-1~MD-Nの数を調整する。 FIG. 12 is a block diagram illustrating a second configuration example related to message filtering based on a spatial perspective. In the second configuration example, the center controller 300 includes multiple message filters 315-1 to 315-N. A plurality of message filters 315-1 to 315-N are provided for the plurality of agent simulators 200-1 to 200-N, respectively, and perform message filtering regarding the plurality of agent simulators 200-1 to 200-N. . That is, the plurality of message filters 315-1 to 315-N respectively adjust the number of delivery messages MD-1 to MD-N to be delivered to the plurality of agent simulators 200-1 to 200-N.

より詳細には、各メッセージフィルタ315-iは、複数のエージェントシミュレータ200-1~200-Nから結果メッセージMR-1~MR-Nを受け取る。各結果メッセージMRは、各エージェント4の位置情報を含んでいる。また、各メッセージフィルタ315-iは、参照情報REF2(空間構成情報、関数情報)を保持している。各メッセージフィルタ315-iは、参照情報REF2(空間構成情報)と結果メッセージMRに含まれる位置情報に基づいて、対象エージェント4iと他のエージェント4との間の距離を算出する。更に、各メッセージフィルタ315-iは、参照情報REF2(関数情報)に基づいて、結果メッセージMR-1~MR-N毎に、距離に応じた配信頻度を設定する。そして、各メッセージフィルタ315-iは、設定した配信頻度に従って、結果メッセージMR-1~MR-Nを配信メッセージMD-iとしてエージェントシミュレータ200-iに配信する。各メッセージフィルタ315-iは、配信メッセージMD-iの数を調整するためのメッセージキューを含んでいる。 More specifically, each message filter 315-i receives result messages MR-1 through MR-N from multiple agent simulators 200-1 through 200-N. Each result message MR contains location information for each agent 4 . Each message filter 315-i also holds reference information REF2 (spatial configuration information, function information). Each message filter 315-i calculates the distance between the target agent 4i and another agent 4 based on the reference information REF2 (spatial configuration information) and the location information contained in the result message MR. Furthermore, each message filter 315-i sets the delivery frequency according to the distance for each of the result messages MR-1 to MR-N based on the reference information REF2 (function information). Then, each message filter 315-i distributes the result messages MR-1 to MR-N as distribution messages MD-i to the agent simulator 200-i according to the set distribution frequency. Each message filter 315-i includes a message queue for regulating the number of delivered messages MD-i.

エージェントシミュレータ200とメッセージフィルタ315の配置例としては、上述の図7で示されたものが挙げられる。 An example arrangement of the agent simulator 200 and the message filter 315 is shown in FIG. 7 above.

2-2-4.効果
以上に説明されたように、一実施形態において、センターコントローラ300は、エージェント4間の距離に基づいて、メッセージフィルタリングを行う。より詳細には、センターコントローラ300は、遠く離れたエージェント4のシミュレーションを行うエージェントシミュレータ200間では、配信メッセージMDの配信頻度を低く設定する。これにより、センターコントローラ300からエージェントシミュレータ200に配信されるメッセージ量が全体として削減される。すなわち、通信量の不必要な増大が抑制され、通信リソースの不必要な消費が抑制される。
2-2-4. Effect As described above, in one embodiment, the central controller 300 performs message filtering based on the distance between the agents 4 . More specifically, the center controller 300 sets the delivery frequency of the delivery message MD low between the agent simulators 200 that simulate the agents 4 that are far away. As a result, the amount of messages distributed from the center controller 300 to the agent simulator 200 is reduced as a whole. That is, unnecessary increase in communication traffic is suppressed, and unnecessary consumption of communication resources is suppressed.

シミュレーション対象世界2の空間は、複数のパーティションPに分割されてもよい(図10参照)。この場合、パーティションP単位でメッセージフィルタリングが行われる(図11参照)。この場合であっても、通信量の不必要な増大が抑制され、通信リソースの不必要な消費が抑制される。更に、パーティションP単位でメッセージフィルタリングを行うことにより、計算処理負荷を軽減することが可能となる。計算処理負荷が軽減されることは、シミュレーション速度及びシミュレーションコストの観点から好適である。 The space of the simulation target world 2 may be divided into a plurality of partitions P (see FIG. 10). In this case, message filtering is performed for each partition P (see FIG. 11). Even in this case, unnecessary increase in communication traffic is suppressed, and unnecessary consumption of communication resources is suppressed. Furthermore, by performing message filtering on a partition P basis, it is possible to reduce the computational processing load. Reducing the computational processing load is preferable from the viewpoint of simulation speed and simulation cost.

2-3.モード切り替え
センターコントローラ300は、メッセージフィルタリングをON/OFF可能に構成されていてもよい。その場合、センターコントローラ300の動作モードは、メッセージフィルタリングを行わない「第1モード」と、メッセージフィルタリングを行う「第2モード」を含む。第1モードでは、センターコントローラ300は、各エージェントシミュレータ200から受け取る結果メッセージMRを選別することなく新たな配信メッセージMDとして配信する。一方、第2モードでは、センターコントローラ300は、各エージェントシミュレータ200から受け取る結果メッセージMRを選択的に新たな配信メッセージMDとして配信する。
2-3. Mode Switching The center controller 300 may be configured to enable message filtering ON/OFF. In that case, the operation mode of the center controller 300 includes a "first mode" in which message filtering is not performed and a "second mode" in which message filtering is performed. In the first mode, the center controller 300 distributes the result message MR received from each agent simulator 200 as a new distribution message MD without screening. On the other hand, in the second mode, the center controller 300 selectively distributes the result message MR received from each agent simulator 200 as a new distribution message MD.

センターコントローラ300は、状況に応じて動作モードを第1モードと第2モードとの間で切り替える。例えば、センターコントローラ300は、「通信量の抑制」と「センターコントローラ300における処理負荷の抑制」のバランスの観点からモード切り替えを行う。 The center controller 300 switches the operation mode between the first mode and the second mode depending on the situation. For example, the center controller 300 performs mode switching from the viewpoint of a balance between "control of communication traffic" and "control of processing load on the center controller 300".

図13は、センターコントローラ300におけるモード切り替えの一例を説明するための概念図である。図13に示される例では、センターコントローラ300は、センターコントローラ300が単位時間あたりに受け取る結果メッセージMRの数に基づいて、モード切り替えを行う。 FIG. 13 is a conceptual diagram for explaining an example of mode switching in the center controller 300. As shown in FIG. In the example shown in FIG. 13, the center controller 300 switches modes based on the number of result messages MR received by the center controller 300 per unit time.

より詳細には、センターコントローラ300が単位時間あたりに受け取る結果メッセージMRの数が少ない場合、結果メッセージMRをそのまま配信メッセージMDとして配信しても、その配信メッセージMDが通信容量を圧迫することはない。そこで、センターコントローラ300が単位時間あたりに受け取る結果メッセージMRの数が閾値以下である場合、センターコントローラ300は、メッセージフィルタリングを行わない第1モードを選択する。具体的には、センターコントローラ300は、上記セクション2-1あるいはセクション2-2で説明されたメッセージフィルタリングの機能をOFFする。メッセージフィルタリングが行われないため、センターコントローラ300における処理負荷が抑制される。 More specifically, when the number of result messages MR received by the center controller 300 per unit time is small, even if the result messages MR are distributed as they are as the distribution messages MD, the distribution messages MD will not put pressure on the communication capacity. . Therefore, when the number of result messages MR received by the center controller 300 per unit time is equal to or less than the threshold, the center controller 300 selects the first mode in which message filtering is not performed. Specifically, the center controller 300 turns off the message filtering function described in Section 2-1 or Section 2-2 above. Since message filtering is not performed, the processing load on the center controller 300 is suppressed.

一方、センターコントローラ300が単位時間あたりに受け取る結果メッセージMRの数が多い場合、結果メッセージMRをそのまま配信メッセージMDとして配信すると、センターコントローラ300からエージェントシミュレータ200全体への通信量が増大する。そこで、センターコントローラ300が単位時間あたりに受け取る結果メッセージMRの数が閾値を超えた場合、センターコントローラ300は、メッセージフィルタリングを行う第2モードを選択する。このとき、メッセージフィルタリングは、時間的観点に基づいて行われてもよいし(セクション2-1参照)、空間的観点に基づいて行われてもよい(セクション2-2参照)。メッセージフィルタリングが行われるため、センターコントローラ300からエージェントシミュレータ200全体への通信量が効果的に削減される。 On the other hand, when the number of result messages MR received by the center controller 300 per unit time is large, the amount of communication from the center controller 300 to the entire agent simulator 200 increases if the result messages MR are distributed as they are as distribution messages MD. Therefore, when the number of result messages MR received by the center controller 300 per unit time exceeds the threshold, the center controller 300 selects the second mode for message filtering. At this time, message filtering may be performed based on a temporal perspective (see Section 2-1) or based on a spatial perspective (see Section 2-2). Since message filtering is performed, the amount of communication from the center controller 300 to the entire agent simulator 200 is effectively reduced.

モード切り替えを行う際、センターコントローラ300は、MASシステム100全体にシミュレーションの一時中断を指示してもよい。シミュレーションの一時停止後、センターコントローラ300は、モード切り替えを実行する。各エージェントシミュレータ200は、再開準備が整ったら、再開Readyをセンターコントローラ300に通知する。センターコントローラ300は、全てのエージェントシミュレータ200から再開Readyを受け取ると、シミュレーションの再開を指示する。 When switching modes, the center controller 300 may instruct the entire MAS system 100 to temporarily suspend the simulation. After pausing the simulation, the center controller 300 executes mode switching. Each agent simulator 200 notifies the center controller 300 of restart ready when restart preparations are complete. When the center controller 300 receives restart Ready from all the agent simulators 200, it instructs to restart the simulation.

MASシステム100のユーザが、モード切り替えをセンターコントローラ300に指示してもよい。例えば、ユーザは、シミュレーションの一時中断をセンターコントローラ300に指示する。シミュレーションの一時停止後、ユーザは、動作モードを指定するモード設定ファイルを書き換える。その後、ユーザは、シミュレーション再開をセンターコントローラ300に指示する。 A user of the MAS system 100 may instruct the center controller 300 to switch modes. For example, the user instructs the center controller 300 to suspend the simulation. After pausing the simulation, the user rewrites the mode setting file that specifies the operation mode. After that, the user instructs the center controller 300 to restart the simulation.

以上に説明されたように、一実施形態において、センターコントローラ300の動作モードは、メッセージフィルタリングを行わない第1モードと、メッセージフィルタリングを行う第2モードを含む。センターコントローラ300は、状況に応じて、第1モードと第2モードを切り替える。これにより、通信量の抑制と処理負荷の抑制の観点からフレキシブルな運用が可能となる。 As described above, in one embodiment, the operation modes of the center controller 300 include a first mode without message filtering and a second mode with message filtering. The center controller 300 switches between the first mode and the second mode depending on the situation. This enables flexible operation from the viewpoint of reducing communication traffic and processing load.

3.MASシステムの全体構成例
以下、MASシステム100の全体構成と情報の流れについて図14を用いて説明する。図14に示すように、MASシステム100は、複数のエージェントシミュレータ200と、1つのセンターコントローラ300と、複数のサービスシステム用のバックエンドサーバ400とを備えている。詳細については後述するが、これらは複数のコンピュータに分散して設けられる。つまり、MASシステム100は、複数のコンピュータによる並列分散処理を前提とするシステムである。
3. Overall Configuration Example of MAS System The overall configuration and information flow of the MAS system 100 will be described below with reference to FIG. As shown in FIG. 14, the MAS system 100 comprises multiple agent simulators 200, one center controller 300, and multiple backend servers 400 for service systems. Although the details will be described later, these are distributed to a plurality of computers. In other words, the MAS system 100 is a system that assumes parallel distributed processing by a plurality of computers.

センターコントローラ300は、その機能として、移動メッセージディスパッチャ310と、シミュレーションコンダクタ320とを備える。センターコントローラ300は、コンピュータにインストールされたアプリケーションソフトウェアである。移動メッセージディスパッチャ310とシミュレーションコンダクタ320とは、アプリケーションソフトウェアを構成するプログラムである。センターコントローラ300は、1又は複数のエージェントシミュレータ200とハードウェアであるコンピュータを共用することもできるが、好ましくは、1つのコンピュータを専用する。 The center controller 300 has, as its functions, a mobile message dispatcher 310 and a simulation conductor 320 . The center controller 300 is application software installed in a computer. Mobile message dispatcher 310 and simulation conductor 320 are programs that make up application software. The center controller 300 can share a computer, which is hardware, with one or more agent simulators 200, but preferably one computer is dedicated.

移動メッセージディスパッチャ310は、エージェントシミュレータ200間の移動メッセージの送受信を中継する。エージェントシミュレータ200と移動メッセージディスパッチャ310との間において実線で示される情報の流れは移動メッセージの流れを示している。センターコントローラ300が備える上述の移動メッセージの交換機能は、移動メッセージディスパッチャ310が担っている。移動メッセージディスパッチャ310は、MASシステム100を構成する全てのエージェントシミュレータ200との間で通信を行う。また、移動メッセージディスパッチャ310は、上述のメッセージフィルタリングの機能を備えている。 The mobile message dispatcher 310 relays the transmission and reception of mobile messages between the agent simulators 200 . The solid line information flow between agent simulator 200 and mobile message dispatcher 310 indicates mobile message flow. The mobile message dispatcher 310 is responsible for the mobile message exchange function of the center controller 300 . Mobile message dispatcher 310 communicates with all agent simulators 200 that make up MAS system 100 . The mobile message dispatcher 310 also has the function of message filtering as described above.

シミュレーションコンダクタ320は、各エージェントシミュレータ200の初期設定を行う。また、シミュレーションコンダクタ320は、エージェントシミュレータ200との間でのシミュレーション制御メッセージの交換によってエージェントシミュレータ200によるシミュレーションを制御する。エージェントシミュレータ200とシミュレーションコンダクタ320との間において破線で示される情報の流れはシミュレーション制御メッセージの流れである。シミュレーションコンダクタ320は、MASシステム100を構成する全てのエージェントシミュレータ200との間で通信を行い、シミュレーション制御メッセージを交換する。移動メッセージが移動メッセージディスパッチャ310を介して複数のエージェントシミュレータ200間で交換されるのと異なり、シミュレーション制御メッセージは、シミュレーションコンダクタ320と個々のエージェントシミュレータ200との間で個別に交換される。シミュレーション制御メッセージの交換により、例えば、シミュレーション速度、シミュレーションの停止、シミュレーションの休止、シミュレーションの再開、及びシミュレーションの時間粒度が制御される。シミュレーション速度は、MASシステム100全体として制御されるのに対し、シミュレーションの停止、シミュレーションの休止、シミュレーションの再開、及びシミュレーションの時間粒度は、エージェントシミュレータ200毎に制御される。 The simulation conductor 320 initializes each agent simulator 200 . Simulation conductor 320 also controls simulation by agent simulator 200 by exchanging simulation control messages with agent simulator 200 . The information flow indicated by the dashed line between agent simulator 200 and simulation conductor 320 is the simulation control message flow. Simulation conductor 320 communicates with all agent simulators 200 that make up MAS system 100 to exchange simulation control messages. Unlike mobility messages exchanged between multiple agent simulators 200 via the mobility message dispatcher 310 , simulation control messages are exchanged individually between the simulation conductor 320 and individual agent simulators 200 . The exchange of simulation control messages controls, for example, simulation speed, simulation stop, simulation pause, simulation restart, and simulation time granularity. Simulation speed is controlled by the MAS system 100 as a whole, while simulation stop, simulation pause, simulation restart, and simulation time granularity are controlled for each agent simulator 200 .

バックエンドサーバ400は、現実世界のサービスシステムにおいて実際に用いられるものと同じバックエンドサーバである。現実世界のバックエンドサーバ400を仮想世界に持ち込むことで、サービスシステムにより提供されるサービスを高精度にシミュレーションすることができる。MASシステム100でシミュレーションされるサービスとしては、例えば、自律運転車両を用いたオンデマンドバスや定期運行型バスなどのモビリティサービスや、自律移動型のロボットを用いて荷物を配送する物流サービスを挙げることができる。また、MASシステム100でシミュレーションされるサービスは、例えば、ユーザがユーザ端末においてサービスアプリを操作することによって利用可能となるサービスである。 The backend server 400 is the same backend server that is actually used in the real world service system. By bringing the real-world backend server 400 into the virtual world, it is possible to highly accurately simulate the services provided by the service system. Examples of services simulated by the MAS system 100 include mobility services such as on-demand buses using autonomously driven vehicles and regularly operated buses, and logistics services that deliver packages using autonomously mobile robots. can be done. Further, the services simulated by the MAS system 100 are, for example, services that can be used by the user by operating a service application on the user terminal.

MASシステム100は異なるサービスシステム用の複数のバックエンドサーバ400を備え、仮想世界2において同時に複数種類のサービスをシミュレーションすることができる。サービスのシミュレーションは、バックエンドサーバ400とエージェントシミュレータ200との間でのサービスメッセージの交換によって行われる。エージェントシミュレータ200とバックエンドサーバ400との間において点線で示される情報の流れはサービスメッセージの流れを示している。各バックエンドサーバ400は、サービスの提供に関係するエージェントシミュレータ200との間でサービスメッセージを交換する。 The MAS system 100 comprises multiple backend servers 400 for different service systems, and can simulate multiple types of services in the virtual world 2 at the same time. Service simulation is performed by exchanging service messages between the backend server 400 and the agent simulator 200 . The flow of information indicated by dotted lines between the agent simulator 200 and the backend server 400 indicates the flow of service messages. Each backend server 400 exchanges service messages with agent simulators 200 involved in providing services.

交換されるサービスメッセージの内容は、エージェントシミュレータ200が担当するエージェントの種類によって異なる。例えば、エージェントがサービスを利用するユーザ(歩行者)である場合、バックエンドサーバ400は、サービス利用情報を含むサービスメッセージをエージェントシミュレータ200から受信し、サービス提供状態情報を含むサービスメッセージをエージェントシミュレータ200に送信する。サービス利用情報とは、ユーザのサービスシステムの利用に関する現状および将来計画に関する情報であり、現在の利用状態とアプリ操作による入力情報を含む。サービス提供状態情報とは、サービスシステムにおけるユーザの状態に関する情報であり、ユーザ端末のサービスアプリを通じて提供される情報である。 The content of the exchanged service messages differs depending on the type of agent that the agent simulator 200 is in charge of. For example, if the agent is a user (pedestrian) who uses the service, the backend server 400 receives a service message including service usage information from the agent simulator 200 and sends a service message including service provision status information to the agent simulator 200. Send to The service usage information is information about the current status and future plans regarding the usage of the service system by the user, and includes the current usage status and information input by operating the application. The service provision status information is information relating to the status of the user in the service system, and is information provided through the service application of the user terminal.

エージェントがサービスの提供に用いられる自律ロボットや自律車両である場合、バックエンドサーバ400は、動作状態情報を含むサービスメッセージをエージェントシミュレータ200から受信し、動作指示情報を含むサービスメッセージをエージェントシミュレータ200に送信する。動作状態情報とは、自律ロボットや自律車両の現状および将来計画に関する情報である。現状に関する情報とは、例えば、搭載センサのステータス、測定データ、搭載アクチュエータのステータス、行動決定に関するステータスである。将来計画に関する情報とは、例えば、将来時刻と、アクチュエータのステータスと、行動決定に関するステータスのリストである。動作指示情報は、自律ロボットや自律車両を用いてサービスを提供するための将来計画の全部或いは一部を含む情報である。例えば、自律ロボットや自律車両が移動すべき目標地点や経路は動作指示情報に含まれる。 When the agent is an autonomous robot or autonomous vehicle used to provide a service, the backend server 400 receives a service message containing operation state information from the agent simulator 200 and sends a service message containing operation instruction information to the agent simulator 200. Send. Operational state information is information about the current status and future plans of autonomous robots and autonomous vehicles. The information about the current situation is, for example, the status of mounted sensors, measurement data, the status of mounted actuators, and the status of action determination. The information about future plans is, for example, a list of future times, statuses of actuators, and statuses about action decisions. The action instruction information is information including all or part of future plans for providing services using autonomous robots and autonomous vehicles. For example, the action instruction information includes a target point and a route along which the autonomous robot or autonomous vehicle should move.

仮想世界2に存在するエージェントには、カメラを含む路側センサや自動ドアのような定置物体が含まれる。例えば、エージェントが固定カメラである場合、バックエンドサーバ400は、自律ロボットの位置情報の計算に必要な固定カメラの画像情報を含むサービスメッセージをエージェントシミュレータ200から受信する。また、エージェントが自動ドアである場合、バックエンドサーバ400は、自律ロボットの通行のための開扉の指示を含むサービスメッセージをエージェントシミュレータ200に送信する。 Agents existing in the virtual world 2 include stationary objects such as roadside sensors including cameras and automatic doors. For example, if the agent is a fixed camera, the back-end server 400 receives from the agent simulator 200 a service message containing the image information of the fixed camera necessary for calculating the position information of the autonomous robot. Also, if the agent is an automatic door, the backend server 400 sends a service message to the agent simulator 200 including an instruction to open the door for passage by the autonomous robot.

また、バックエンドサーバ400は、他のバックエンドサーバ400との間でそれぞれの取り決めのもとでサービスメッセージの交換を行う。バックエンドサーバ400間において点線で示される情報の流れはサービスメッセージの流れを示している。このとき交換されるサービスメッセージには、例えば、それぞれのサービスにおけるユーザの利用状態やサービスの提供状況が含まれる。複数のバックエンドサーバ400間でサービスメッセージを交換することによって、仮想世界2において提供されるサービスを互いに連携させることができる。 Also, the backend server 400 exchanges service messages with other backend servers 400 under their respective agreements. The flow of information indicated by dotted lines between the backend servers 400 indicates the flow of service messages. The service messages exchanged at this time include, for example, the usage status of each service and the service provision status. By exchanging service messages among a plurality of backend servers 400, services provided in the virtual world 2 can be coordinated with each other.

複数のサービスの連携の一つの例として、オンデマンドバスサービスと、バス停から自宅までユーザに代わって自律ロボットが荷物を運ぶ物流サービスとの連携を挙げることができる。オンデマンドバスサービスでは、ユーザは、希望する時刻に希望する場所でバスから降車することができる。オンデマンドバスサービスと物流サービスとを連携させることで、ユーザが到着する前に自律ロボットを降車場所に到着させて、降車場所でユーザの到着を待たせておくことができる。また、渋滞などによりバスが遅れた場合や、ユーザがバスに乗り遅れた場合には、バックエンドサーバ400間でサービスメッセージを交換することにより、自律ロボットを降車場所に向かわせる時間をユーザの到着時間に合わせることができる。 One example of cooperation between multiple services is cooperation between an on-demand bus service and a logistics service in which an autonomous robot carries luggage from a bus stop to a user's home on behalf of the user. An on-demand bus service allows a user to get off the bus at a desired time and place. By linking the on-demand bus service and the logistics service, the autonomous robot can be made to arrive at the drop-off location before the user arrives and wait for the user's arrival at the drop-off location. In addition, when the bus is delayed due to traffic congestion or when the user misses the bus, service messages are exchanged between the back-end servers 400 to make the autonomous robot head to the drop-off location. can be adjusted to

エージェントシミュレータ200は、担当するエージェントの種類に応じて複数の種類が存在する。例えば、歩行者エージェント用のエージェントシミュレータ201、自律ロボット/車両エージェント用のエージェントシミュレータ202、VR歩行者エージェント用のエージェントシミュレータ203、及び路側センサエージェント用のエージェントシミュレータ204が存在する。以下、エージェントシミュレータ200とは、これら複数種類のエージェントシミュレータ201、202、203、204の総称とする。 A plurality of types of agent simulators 200 exist according to the types of agents in charge. For example, there is an agent simulator 201 for pedestrian agents, an agent simulator 202 for autonomous robot/vehicle agents, an agent simulator 203 for VR pedestrian agents, and an agent simulator 204 for roadside sensor agents. Hereinafter, the agent simulator 200 is a general term for these multiple types of agent simulators 201 , 202 , 203 and 204 .

エージェントシミュレータ200は、その機能として、送受信コントローラ210、3D物理エンジン220、サービスシステムクライアントシミュレータ230、及びシミュレータコア240を備える。エージェントシミュレータ200は、コンピュータにインストールされたアプリケーションソフトウェアである。送受信コントローラ210、3D物理エンジン220、サービスシステムクライアントシミュレータ230、及びシミュレータコア240は、アプリケーションソフトウェアを構成するプログラムである。これらの機能は、エージェントシミュレータ201、202、203、204の間で異なっている。ここでは、エージェントシミュレータ201、202、203、204間で概ね共通する機能について説明し、それぞれのエージェントシミュレータ201、202、203、204の機能の詳細については後述する。 The agent simulator 200 includes a transmission/reception controller 210, a 3D physics engine 220, a service system client simulator 230, and a simulator core 240 as its functions. The agent simulator 200 is application software installed on a computer. The transmission/reception controller 210, the 3D physics engine 220, the service system client simulator 230, and the simulator core 240 are programs that constitute application software. These functions are different among agent simulators 201 , 202 , 203 and 204 . Here, functions that are generally common among the agent simulators 201, 202, 203, and 204 will be described, and details of the functions of the respective agent simulators 201, 202, 203, and 204 will be described later.

送受信コントローラ210は、エージェントシミュレータ200と他のプログラムとの間のインタフェースである。送受信コントローラ210は、移動メッセージディスパッチャ310からの移動メッセージの受信と、移動メッセージディスパッチャ310への移動メッセージの送信とを行う。ただし、エージェントシミュレータ204においては、移動メッセージの受信のみが行われる。送受信コントローラ210は、シミュレーションコンダクタ320からのシミュレーション制御メッセージの受信と、シミュレーションコンダクタ320へのシミュレーション制御メッセージの送信とを行う。また、送受信コントローラ210は、バックエンドサーバ400からのサービスメッセージの受信と、バックエンドサーバ400へのサービスメッセージの送信とを行う。ただし、エージェントシミュレータ204においては、サービスメッセージの送信のみが行われる。 Transceiver controller 210 is an interface between agent simulator 200 and other programs. The transmit/receive controller 210 receives mobile messages from the mobile message dispatcher 310 and sends mobile messages to the mobile message dispatcher 310 . However, agent simulator 204 only receives movement messages. Transceiver controller 210 receives simulation control messages from simulation conductor 320 and transmits simulation control messages to simulation conductor 320 . The transmission/reception controller 210 also receives service messages from the backend server 400 and transmits service messages to the backend server 400 . However, the agent simulator 204 only transmits service messages.

3D物理エンジン220は、他のエージェントシミュレータ200から受信した移動メッセージに基づいて3次元空間における周囲エージェントの現在の状態を推定する。図3を用いて説明した周囲エージェントの過去の状態に基づく現在の状態の推定は、3D物理エンジン220によって行われる。3D物理エンジン220は、周囲エージェントの現在の状態に基づいて自エージェントからの観測で得られる周辺情報を生成する。また、3D物理エンジン220は、後述するシミュレータコア240によるシミュレーション結果に基づいて3次元空間における自エージェントの状態を更新し、自エージェントの状態を表した移動メッセージを生成する。ただし、エージェントシミュレータ204においては、担当するエージェントは不動であるために自エージェントの状態の更新と移動メッセージの生成とは行われない。 The 3D physics engine 220 estimates the current state of surrounding agents in 3D space based on movement messages received from other agent simulators 200 . The 3D physics engine 220 performs the estimation of the current state based on the past states of the surrounding agents described with reference to FIG. The 3D physics engine 220 generates peripheral information obtained by observation from its own agent based on the current state of the surrounding agents. The 3D physics engine 220 also updates the state of its own agent in the three-dimensional space based on the simulation results of the simulator core 240, which will be described later, and generates a movement message representing the state of its own agent. However, in the agent simulator 204, since the agent in charge is immobile, updating the state of the own agent and generating a move message are not performed.

サービスシステムクライアントシミュレータ230は、バックエンドサーバ400に係るサービスシステムのクライアントとしての自エージェントの振る舞いをシミュレーションする。送受信コントローラ210で受信されたサービスメッセージは、サービスシステムクライアントシミュレータ230に入力される。そして、サービスシステムクライアントシミュレータ230で生成されたサービスメッセージが送受信コントローラ210から送信される。ただし、エージェントシミュレータ204においては、サービスメッセージの生成のみが行われる。 The service system client simulator 230 simulates the behavior of its own agent as a client of the service system related to the backend server 400 . A service message received by the transmit/receive controller 210 is input to the service system client simulator 230 . Then, the service message generated by the service system client simulator 230 is transmitted from the transmission/reception controller 210 . However, the agent simulator 204 only generates service messages.

シミュレータコア240は、次のタイムステップにおける自エージェントの状態をシミュレーションする。自エージェントの状態を算出するタイムステップの時間間隔が上述の時間粒度である。シミュレータコア240におけるシミュレーションの内容は、エージェントシミュレータ200の種類毎に異なる。なお、エージェントシミュレータ204は、担当するエージェントが不動であり自エージェントの状態のシミュレーションは不要であるため、シミュレータコア240を有していない。 Simulator core 240 simulates the state of its own agent at the next time step. The time interval between time steps for calculating the state of the own agent is the time granularity described above. The contents of the simulation in simulator core 240 differ for each type of agent simulator 200 . Note that the agent simulator 204 does not have the simulator core 240 because the agent in charge is immobile and there is no need to simulate the state of the own agent.

4.エージェントシミュレータの具体例
次に、MASシステム100を構成する各種類のエージェントシミュレータ201、202、203、204の詳細な構成と情報の流れについて図15乃至図18を用いて説明する。なお、図15乃至図18において、実線で示すブロック間の情報の流れは移動メッセージの流れを示している。また、点線で示すブロック間の情報の流れはサービスメッセージの流れを示している。そして、破線で示すブロック間の情報の流れはシミュレーション制御メッセージの流れを示している。
4. Specific Examples of Agent Simulator Next, the detailed configuration and information flow of each type of agent simulators 201, 202, 203, and 204 constituting the MAS system 100 will be described with reference to FIGS. 15 to 18. FIG. In FIGS. 15 to 18, the flow of information between blocks indicated by solid lines indicates the flow of mobile messages. The flow of information between blocks indicated by dotted lines indicates the flow of service messages. The flow of information between blocks indicated by dashed lines indicates the flow of simulation control messages.

4-1.歩行者エージェント用エージェントシミュレータ
図15は、歩行者エージェント用のエージェントシミュレータ201の構成と情報の流れを示すブロック図である。以下、歩行者エージェント用のエージェントシミュレータ201の全体構成と各部の詳細、及びエージェントシミュレータ201における情報の流れについて説明する。
4-1. Pedestrian Agent Agent Simulator FIG. 15 is a block diagram showing the configuration and information flow of the agent simulator 201 for pedestrian agents. The overall configuration of the agent simulator 201 for pedestrian agents, the details of each part, and the flow of information in the agent simulator 201 will be described below.

4-1-1.歩行者エージェント用エージェントシミュレータの全体構成
エージェントシミュレータ201は、その機能として、送受信コントローラ211、3D物理エンジン221、サービスシステムクライアントシミュレータ231、及びシミュレータコア241を備える。これらの機能は、概念として、それぞれ送受信コントローラ210、3D物理エンジン220、サービスシステムクライアントシミュレータ230、及びシミュレータコア240に含まれる。
4-1-1. Overall Configuration of Pedestrian Agent Agent Simulator The agent simulator 201 includes a transmission/reception controller 211, a 3D physics engine 221, a service system client simulator 231, and a simulator core 241 as its functions. These functions are conceptually contained in Transceiver Controller 210, 3D Physics Engine 220, Service System Client Simulator 230, and Simulator Core 240, respectively.

送受信コントローラ211は、各種メッセージを受信する機能として、移動メッセージ受信部211a、サービスメッセージ受信部211b、及びコントロールメッセージ受信部211cを備える。また、送受信コントローラ211は、各種メッセージを送信する機能として、移動メッセージ送信部211d、サービスメッセージ送信部211e、及びコントロールメッセージ送信部211fを備える。さらに、送受信コントローラ211は、シミュレーション動作制御部211hを備える。送受信コントローラ211を構成する各部211a~211hは、それぞれがプログラム或いはプログラムの一部である。 The transmission/reception controller 211 includes a movement message reception section 211a, a service message reception section 211b, and a control message reception section 211c as functions for receiving various messages. The transmission/reception controller 211 also includes a movement message transmission section 211d, a service message transmission section 211e, and a control message transmission section 211f as functions for transmitting various messages. Further, the transmission/reception controller 211 includes a simulation operation control section 211h. Each unit 211a to 211h constituting the transmission/reception controller 211 is a program or part of a program.

3D物理エンジン221は、その機能として、周囲エージェント状態更新部221a、視覚情報生成部221b、及び自エージェント状態更新部221cを備える。3D物理エンジン221を構成する各部221a、221b、221cは、それぞれがプログラム或いはプログラムの一部である。 The 3D physics engine 221 has, as its functions, a surrounding agent state updater 221a, a visual information generator 221b, and a self agent state updater 221c. Each unit 221a, 221b, 221c that constitutes the 3D physics engine 221 is a program or a part of the program.

サービスシステムクライアントシミュレータ231は、その機能として、サービス提供状態情報処理部231aとサービス利用情報生成部231bとを備える。サービスシステムクライアントシミュレータ231を構成する各部231a、231bは、それぞれがプログラム或いはプログラムの一部である。 The service system client simulator 231 includes, as its functions, a service provision status information processing section 231a and a service usage information generation section 231b. Each of the units 231a and 231b constituting the service system client simulator 231 is a program or a part of the program.

シミュレータコア241は、その機能として、全体移動方針決定部241a、行動決定部241b、次タイムステップ状態算出部241d、及びサービス利用行動決定部241eを備える。シミュレータコア241を構成する各部241a、241b、241d、241eは、それぞれがプログラム或いはプログラムの一部である。 The simulator core 241 has, as its functions, an overall movement policy determination section 241a, an action determination section 241b, a next time step state calculation section 241d, and a service usage action determination section 241e. Each unit 241a, 241b, 241d, and 241e constituting the simulator core 241 is a program or a part of the program.

4-1-2.送受信コントローラの詳細
送受信コントローラ211において、移動メッセージ受信部211aは、移動メッセージディスパッチャ310から移動メッセージを受信する。移動メッセージ受信部211aは、受信した移動メッセージを3D物理エンジン221の周囲エージェント状態更新部221aに出力する。
4-1-2. Details of Transmit/Receive Controller In the transmit/receive controller 211 , the move message receiver 211 a receives move messages from the move message dispatcher 310 . The movement message receiving unit 211 a outputs the received movement message to the surrounding agent state updating unit 221 a of the 3D physics engine 221 .

サービスメッセージ受信部211bは、バックエンドサーバ400からサービスメッセージを受信する。サービスメッセージ受信部211bは、受信したサービスメッセージをサービスシステムクライアントシミュレータ231のサービス提供状態情報処理部231aに出力する。 The service message receiving unit 211b receives service messages from the backend server 400 . The service message receiving section 211 b outputs the received service message to the service provision state information processing section 231 a of the service system client simulator 231 .

コントロールメッセージ受信部211cは、シミュレーションコンダクタ320からシミュレーション制御メッセージを受信する。コントロールメッセージ受信部211cは、受信したシミュレーション制御メッセージをシミュレーション動作制御部211hに出力する。 Control message receiver 211 c receives a simulation control message from simulation conductor 320 . The control message receiving unit 211c outputs the received simulation control message to the simulation operation control unit 211h.

移動メッセージ送信部211dは、3D物理エンジン221の自エージェント状態更新部221cから自エージェントの現在の状態を含む移動メッセージを取得する。移動メッセージ送信部211dは、取得した移動メッセージを移動メッセージディスパッチャ310に送信する。 The movement message transmitting unit 211d acquires a movement message including the current state of the own agent from the own agent state updating unit 221c of the 3D physics engine 221 . The move message transmitting unit 211 d transmits the acquired move message to the move message dispatcher 310 .

サービスメッセージ送信部211eは、サービスシステムクライアントシミュレータ231のサービス利用情報生成部231bからサービス利用情報を含むサービスメッセージを取得する。サービスメッセージ送信部211eは、取得したサービスメッセージをバックエンドサーバ400に送信する。 The service message transmission unit 211e acquires a service message including service use information from the service use information generation unit 231b of the service system client simulator 231. FIG. The service message transmission unit 211 e transmits the acquired service message to the backend server 400 .

コントロールメッセージ送信部211fは、シミュレーション動作制御部211hからエージェントシミュレータ201の制御状態を含むシミュレーション制御メッセージを取得する。コントロールメッセージ送信部211fは、シミュレーション動作制御部211hとから取得したシミュレーション制御メッセージをシミュレーションコンダクタ320に送信する。 The control message transmission unit 211f acquires a simulation control message including the control state of the agent simulator 201 from the simulation operation control unit 211h. The control message transmission unit 211f transmits the simulation control message acquired from the simulation operation control unit 211h to the simulation conductor 320. FIG.

シミュレーション動作制御部211hは、コントロールメッセージ受信部211cからシミュレーション制御メッセージを取得する。シミュレーション動作制御部211hは、シミュレーション制御メッセージに含まれる指示に従ってエージェントシミュレータ201のシミュレーション動作を制御する。例えば、シミュレーションの時間粒度の変更が指示された場合、シミュレーション動作制御部211hは、エージェントシミュレータ201によるシミュレーションの時間粒度を初期値から指示された時間粒度に変更する。時間粒度の初期値はエージェントシミュレータ201に設定値として記憶されている。また、時間粒度の上限値と下限値は、エージェントの種類ごとにシミュレーションコンダクタ320に記憶されている。 The simulation operation control unit 211h acquires a simulation control message from the control message reception unit 211c. The simulation operation control section 211h controls the simulation operation of the agent simulator 201 according to instructions included in the simulation control message. For example, when a change in the time granularity of the simulation is instructed, the simulation operation control unit 211h changes the time granularity of the simulation by the agent simulator 201 from the initial value to the instructed time granularity. The initial value of the time granularity is stored in the agent simulator 201 as a set value. Also, the upper and lower limits of the time granularity are stored in the simulation conductor 320 for each type of agent.

シミュレーション制御メッセージによる指示内容がシミュレーション速度である場合、シミュレーション動作制御部211hは、3D物理エンジン221やシミュレータコア241の動作周波数を変化させてシミュレーション速度を加速或いは減速させる。なお、シミュレーション速度は、実世界の時間の流れに対する仮想世界2の時間の流れの速度比を意味する。シミュレーションの停止が指示された場合、シミュレーション動作制御部211hは、エージェントシミュレータ201によるシミュレーションを停止させる。シミュレーションの休止が指示された場合にはシミュレーションを休止させ、再開が指示された場合にシミュレーションを再開させる。シミュレーション動作制御部211hは、エージェントシミュレータ201の現在の制御状態を含むシミュレーション制御メッセージをコントロールメッセージ送信部211fに出力する。 When the instruction content of the simulation control message is the simulation speed, the simulation operation control unit 211h changes the operating frequencies of the 3D physics engine 221 and the simulator core 241 to accelerate or decelerate the simulation speed. It should be noted that the simulation speed means the speed ratio of the flow of time in the virtual world 2 to the flow of time in the real world. When the stop of the simulation is instructed, the simulation operation control unit 211h stops the simulation by the agent simulator 201. FIG. The simulation is paused when the pause of the simulation is instructed, and the simulation is restarted when the restart is instructed. The simulation operation control section 211h outputs a simulation control message including the current control state of the agent simulator 201 to the control message transmission section 211f.

4-1-3.3D物理エンジンの詳細
3D物理エンジン221において、周囲エージェント状態更新部221aは、移動メッセージ受信部211aから移動メッセージを取得する。移動メッセージ受信部211aから取得される移動メッセージは、移動メッセージディスパッチャ310を経由して他のエージェントシミュレータから送られた移動メッセージである。周囲エージェント状態更新部221aは、取得した移動メッセージに基づいて自エージェントの周囲に存在する周囲エージェントの現在の状態を推定する。
4-1-3.Details of 3D Physics Engine In the 3D physics engine 221, the ambient agent status updating unit 221a acquires the movement message from the movement message receiving unit 211a. The movement message obtained from the movement message receiving section 211a is a movement message sent from another agent simulator via the movement message dispatcher 310. FIG. The surrounding agent state update unit 221a estimates the current state of surrounding agents existing around the own agent based on the acquired movement message.

周囲エージェントの現在の状態を過去の状態から推定する場合、周囲エージェント状態更新部221aは、ログに保存されている周囲エージェントの過去の状態を使用する。周囲エージェントの過去の状態を用いて現在の状態を推定する方法は図3を用いて説明した通りである。周囲エージェント状態更新部221aは、推定した周囲エージェントの現在の状態を視覚情報生成部221bに出力するとともに、ログを更新する。 When estimating the current state of the surrounding agents from the past state, the surrounding agent state updating unit 221a uses the past states of the surrounding agents stored in the log. The method of estimating the current state using the past states of surrounding agents is as described with reference to FIG. The surrounding agent state update unit 221a outputs the estimated current state of the surrounding agents to the visual information generation unit 221b and updates the log.

視覚情報生成部221bは、周囲エージェント状態更新部221aから周囲エージェントの現在の状態を取得する。視覚情報生成部221bは、周囲エージェントの現在の状態に基づいて自エージェントからの観測で得られる周辺情報を生成する。自エージェントは歩行者であるので、観測で得られる周辺情報とは、歩行者の目で捉えられる視覚情報を意味する。視覚情報生成部221bは、生成された視覚情報をシミュレータコア241の全体移動方針決定部241a、行動決定部241b、及びサービス利用行動決定部241eに出力する。 The visual information generator 221b acquires the current state of surrounding agents from the surrounding agent state updater 221a. The visual information generation unit 221b generates peripheral information obtained by observation from the own agent based on the current state of the surrounding agents. Since the own agent is a pedestrian, the peripheral information obtained by observation means visual information captured by the pedestrian's eyes. The visual information generation unit 221b outputs the generated visual information to the overall movement policy determination unit 241a, the behavior determination unit 241b, and the service utilization behavior determination unit 241e of the simulator core 241. FIG.

自エージェント状態更新部221cは、シミュレータコア241の次タイムステップ状態算出部241dから、シミュレータコア241でシミュレーションされた次タイムステップにおける自エージェントの状態を取得する。自エージェント状態更新部221cは、シミュレータコア241によるシミュレーション結果に基づいて3次元空間における自エージェントの状態を更新する。自エージェント状態更新部221cは、更新された自エージェントの状態を含む移動メッセージを送受信コントローラ211の移動メッセージ送信部211dに出力する。移動メッセージに含まれる自エージェントの状態には、今回タイムステップにおける位置、方向、速度、加速度と、次タイムステップにおける位置、方向、速度、加速度とが含まれる。また、自エージェント状態更新部221cは、更新された自エージェントの状態に関する情報をサービスシステムクライアントシミュレータ231のサービス利用情報生成部231bに出力する。 The self-agent state update unit 221 c acquires the state of the self-agent at the next time step simulated by the simulator core 241 from the next time step state calculation unit 241 d of the simulator core 241 . The self-agent state update unit 221c updates the state of the self-agent in the three-dimensional space based on the simulation result by the simulator core 241. FIG. The self-agent state update unit 221c outputs a movement message including the updated state of the self-agent to the movement message transmission unit 211d of the transmission/reception controller 211. FIG. The state of the own agent included in the movement message includes the position, direction, speed, and acceleration at the current time step and the position, direction, speed, and acceleration at the next time step. Further, the self-agent state updating unit 221c outputs information on the updated state of the self-agent to the service utilization information generating unit 231b of the service system client simulator 231. FIG.

4-1-4.サービスシステムクライアントシミュレータの詳細
サービスシステムクライアントシミュレータ231において、サービス提供状態情報処理部231aは、サービスメッセージ受信部211bからサービスメッセージを取得する。サービスメッセージ受信部211bから取得されるサービスメッセージはサービス提供状態情報を含む。サービス提供状態情報処理部231aは、サービス提供状態情報を処理し、サービスシステムのユーザとしての自エージェントの状態に関する情報と、ユーザ端末のサービスアプリへの入力項目とを取得する。自エージェントのユーザとしての状態に関する情報はユーザ端末に提示される情報であり、入力項目は自エージェントがサービスを利用するために入力を依頼される情報である。サービス提供状態情報処理部231aは、自エージェントのユーザとしての状態に関する情報と、ユーザ端末のサービスアプリへの入力項目とをシミュレータコア241の全体移動方針決定部241a及びサービス利用行動決定部241eに出力する。
4-1-4. Details of Service System Client Simulator In the service system client simulator 231, the service provision status information processing section 231a acquires a service message from the service message reception section 211b. The service message obtained from the service message receiver 211b includes service provision status information. The service provision state information processing unit 231a processes the service provision state information, and acquires information regarding the state of the own agent as a user of the service system and input items to the service application of the user terminal. The information on the status of the agent as a user is information presented on the user terminal, and the input items are information requested to be input by the agent in order to use the service. The service provision status information processing section 231a outputs information about the status of the agent as a user and input items to the service application of the user terminal to the overall movement policy determination section 241a and the service usage behavior determination section 241e of the simulator core 241. do.

サービス利用情報生成部231bは、シミュレータコア241のサービス利用行動決定部241eから自エージェントのサービス利用行動の決定結果を取得する。また、サービス利用情報生成部231bは、3D物理エンジン221の自エージェント状態更新部221cから3次元空間における自エージェントの状態を取得する。サービス利用情報生成部231bは、取得されたこれらの情報に基づいてサービス利用情報を生成するとともに、自エージェントのサービスの利用状態を更新する。サービス利用情報生成部231bは、サービス利用情報を含むサービスメッセージを送受信コントローラ211のサービスメッセージ送信部211eに出力する。 The service usage information generation unit 231b acquires the decision result of the service usage behavior of its own agent from the service usage behavior determination unit 241e of the simulator core 241 . Further, the service utilization information generation unit 231b acquires the state of the own agent in the three-dimensional space from the own agent state update unit 221c of the 3D physics engine 221. FIG. The service usage information generation unit 231b generates service usage information based on the acquired information, and updates the service usage status of its own agent. The service usage information generator 231b outputs a service message including the service usage information to the service message transmitter 211e of the transmission/reception controller 211. FIG.

4-1-5.シミュレータコアの詳細
シミュレータコア241において、全体移動方針決定部241aは、3D物理エンジン221の視覚情報生成部221bから視覚情報を取得する。また、全体移動方針決定部241aは、サービスシステムクライアントシミュレータ231のサービス提供状態情報処理部231aから自エージェントのユーザとしての状態に関する情報と、ユーザ端末のサービスアプリへの入力項目とを取得する。全体移動方針決定部241aは、取得されたこれらの情報に基づいて自エージェントの仮想世界2における全体的な移動方針を決定する。全体移動方針決定部241aは、決定された全体的な移動方針を行動決定部241bに出力する。
4-1-5. Details of Simulator Core In the simulator core 241 , the overall movement policy determination unit 241 a acquires visual information from the visual information generation unit 221 b of the 3D physics engine 221 . Further, the overall movement policy determination unit 241a acquires information on the state of the agent as a user and input items to the service application of the user terminal from the service provision state information processing unit 231a of the service system client simulator 231. FIG. The overall movement policy determination unit 241a determines the overall movement policy in the virtual world 2 of the own agent based on the acquired information. The overall movement policy determination unit 241a outputs the determined overall movement policy to the action determination unit 241b.

行動決定部241bは、全体移動方針決定部241aから全体的な移動方針を取得するとともに、3D物理エンジン221の視覚情報生成部221bから視覚情報を取得する。行動決定部241bは、全体的な移動方針と視覚情報とを移動モデル241cに入力することによって自エージェントの行動を決定する。移動モデル241cは、一定の移動方針のもと歩行者の目に映る周辺の状況に応じて歩行者がどのように移動するのかをモデル化したシミュレーションモデルである。行動決定部241bは、決定した自エージェントの行動を次タイムステップ状態算出部241dに出力する。 The action determination unit 241b acquires the overall movement policy from the overall movement policy determination unit 241a and acquires visual information from the visual information generation unit 221b of the 3D physics engine 221 . The behavior determination unit 241b determines the behavior of its own agent by inputting the overall movement policy and visual information into the movement model 241c. The movement model 241c is a simulation model that models how the pedestrian moves according to the surrounding conditions seen by the pedestrian based on a certain movement policy. The behavior determination unit 241b outputs the determined behavior of the own agent to the next time step state calculation unit 241d.

次タイムステップ状態算出部241dは、行動決定部241bで決定された自エージェントの行動を取得する。次タイムステップ状態算出部241dは、自エージェントの行動に基づいて次タイムステップにおける自エージェントの状態を算出する。算出される自エージェントの状態は、次タイムステップにおける自エージェントの位置、方向、速度、及び加速度を含む。次タイムステップ状態算出部241dは、算出された次タイムステップにおける自エージェントの状態を3D物理エンジン221の自エージェント状態更新部221cに出力する。 The next time step state calculation unit 241d acquires the action of the own agent determined by the action determination unit 241b. The next time step state calculator 241d calculates the state of the own agent in the next time step based on the action of the own agent. The calculated self-agent state includes the position, direction, velocity, and acceleration of the self-agent at the next time step. The next time step state calculator 241 d outputs the calculated state of the own agent at the next time step to the own agent state update unit 221 c of the 3D physics engine 221 .

サービス利用行動決定部241eは、3D物理エンジン221の視覚情報生成部221bから視覚情報を取得する。また、サービス利用行動決定部241eは、サービスシステムクライアントシミュレータ231のサービス提供状態情報処理部231aから自エージェントのユーザとしての状態に関する情報と、ユーザ端末のサービスアプリへの入力項目とを取得する。サービス利用行動決定部241eは、取得したこれらの情報を行動モデル241fに入力することによって自エージェントのサービスシステムのユーザとしての行動(サービス利用行動)を決定する。行動モデル241fは、ユーザにサービスに関する情報が提示され、ユーザ端末のサービスアプリへの入力が依頼された場合に、ユーザの目に映る周辺の状況に応じてユーザがどのように移動するのかをモデル化したシミュレーションモデルである。サービス利用行動決定部241eは、決定したサービス利用行動をサービス利用情報生成部231bに出力する。 The service usage behavior determination unit 241e acquires visual information from the visual information generation unit 221b of the 3D physics engine 221. FIG. In addition, the service use behavior determining unit 241e acquires information on the state of the agent as a user and input items to the service application of the user terminal from the service provision state information processing unit 231a of the service system client simulator 231. FIG. The service usage behavior determination unit 241e determines the behavior (service usage behavior) of the own agent as a user of the service system by inputting the acquired information into the behavior model 241f. The behavior model 241f is a model of how the user will move according to the surrounding conditions seen by the user when information about the service is presented to the user and the user is requested to input to the service application of the user terminal. This is a modified simulation model. The service usage behavior determination unit 241e outputs the determined service usage behavior to the service usage information generation unit 231b.

4-2.自律ロボット/車両エージェント用エージェントシミュレータ
図16は、自律ロボット/車両エージェント用のエージェントシミュレータ202の構成と情報の流れを示すブロック図である。自律ロボット/車両エージェントとは、バックエンドサーバ400が関係するサービスシステムにおいてサービスの提供に用いられる自律ロボット又は自律車両のエージェントである。以下、自律ロボット/車両エージェント用のエージェントシミュレータ202の全体構成と各部の詳細、及びエージェントシミュレータ202における情報の流れについて説明する。
4-2. Agent Simulator for Autonomous Robot/Vehicle Agent FIG. 16 is a block diagram showing the configuration and information flow of the agent simulator 202 for the autonomous robot/vehicle agent. An autonomous robot/vehicle agent is an agent of an autonomous robot or vehicle used to provide services in the service system with which the backend server 400 is involved. The overall configuration and details of each part of the agent simulator 202 for autonomous robot/vehicle agent, and the flow of information in the agent simulator 202 will be described below.

4-2-1.自律ロボット/車両エージェント用エージェントシミュレータの全体構成
エージェントシミュレータ202は、その機能として、送受信コントローラ212、3D物理エンジン222、サービスシステムクライアントシミュレータ232、及びシミュレータコア242を備える。これらの機能は、概念として、それぞれ送受信コントローラ210、3D物理エンジン220、サービスシステムクライアントシミュレータ230、及びシミュレータコア240に含まれる。
4-2-1. Overall Configuration of Agent Simulator for Autonomous Robot/Vehicle Agent The agent simulator 202 includes a transmission/reception controller 212, a 3D physics engine 222, a service system client simulator 232, and a simulator core 242 as its functions. These functions are conceptually contained in Transceiver Controller 210, 3D Physics Engine 220, Service System Client Simulator 230, and Simulator Core 240, respectively.

送受信コントローラ212は、各種メッセージを受信する機能として、移動メッセージ受信部212a、サービスメッセージ受信部212b、及びコントロールメッセージ受信部212cを備える。また、送受信コントローラ212は、各種メッセージを送信する機能として、移動メッセージ送信部212d、サービスメッセージ送信部212e、及びコントロールメッセージ送信部212fを備える。さらに、送受信コントローラ212は、シミュレーション動作制御部212hを備える。送受信コントローラ211を構成する各部212a~212hは、それぞれがプログラム或いはプログラムの一部である。 The transmission/reception controller 212 includes a movement message reception section 212a, a service message reception section 212b, and a control message reception section 212c as functions for receiving various messages. The transmission/reception controller 212 also includes a movement message transmission section 212d, a service message transmission section 212e, and a control message transmission section 212f as functions for transmitting various messages. Further, the transmission/reception controller 212 includes a simulation operation control section 212h. Each unit 212a to 212h constituting the transmission/reception controller 211 is a program or part of a program.

3D物理エンジン222は、その機能として、周囲エージェント状態更新部222a、センサ情報生成部222b、及び自エージェント状態更新部222cを備える。3D物理エンジン222を構成する各部222a、222b、222cは、それぞれがプログラム或いはプログラムの一部である。 The 3D physics engine 222 has, as its functions, a surrounding agent state updater 222a, a sensor information generator 222b, and an own agent state updater 222c. Each unit 222a, 222b, 222c that configures the 3D physics engine 222 is a program or part of a program.

サービスシステムクライアントシミュレータ232は、その機能として、経路計画用情報受信部232aと動作状態情報生成部232bとを備える。サービスシステムクライアントシミュレータ232を構成する各部232a、232bは、それぞれがプログラム或いはプログラムの一部である。 The service system client simulator 232 has, as its functions, a route planning information receiving section 232a and an operating state information generating section 232b. Each unit 232a, 232b that constitutes the service system client simulator 232 is a program or part of a program.

シミュレータコア242は、その機能として、全体的経路計画部242a、局所的経路計画部242b、アクチュエータ操作量決定部242c、及び次タイムステップ状態算出部242dを備える。シミュレータコア242を構成する各部242a、242b、242c、242dは、それぞれがプログラム或いはプログラムの一部である。 The simulator core 242 has, as its functions, an overall route planner 242a, a local route planner 242b, an actuator operation amount determiner 242c, and a next time step state calculator 242d. Each unit 242a, 242b, 242c, 242d that constitutes the simulator core 242 is a program or a part of the program.

4-2-2.送受信コントローラの詳細
送受信コントローラ212において、移動メッセージ受信部212aは、移動メッセージディスパッチャ310から移動メッセージを受信する。移動メッセージ受信部212aは、受信した移動メッセージを3D物理エンジン222の周囲エージェント状態更新部222aに出力する。
4-2-2. Transmit/Receive Controller Details In the transmit/receive controller 212 , a mobile message receiver 212 a receives mobile messages from the mobile message dispatcher 310 . The movement message reception unit 212a outputs the received movement message to the surrounding agent state update unit 222a of the 3D physics engine 222. FIG.

サービスメッセージ受信部212bは、バックエンドサーバ400からサービスメッセージを受信する。サービスメッセージ受信部212bは、受信したサービスメッセージをサービスシステムクライアントシミュレータ232の経路計画用情報受信部232aに出力する。 The service message receiving unit 212b receives service messages from the backend server 400. FIG. The service message receiving section 212 b outputs the received service message to the route planning information receiving section 232 a of the service system client simulator 232 .

コントロールメッセージ受信部212cは、シミュレーションコンダクタ320からシミュレーション制御メッセージを受信する。コントロールメッセージ受信部212cは、受信したミュレーション制御メッセージをシミュレーション動作制御部212hに出力する。 Control message receiver 212 c receives simulation control messages from simulation conductor 320 . The control message receiving unit 212c outputs the received simulation control message to the simulation operation control unit 212h.

移動メッセージ送信部212dは、3D物理エンジン222の自エージェント状態更新部222cから自エージェントの現在の状態を含む移動メッセージを取得する。移動メッセージ送信部212dは、取得した移動メッセージを移動メッセージディスパッチャ310に送信する。 The movement message transmitting unit 212d acquires a movement message including the current state of the own agent from the own agent state updating unit 222c of the 3D physics engine 222. FIG. The move message transmitting unit 212 d transmits the acquired move message to the move message dispatcher 310 .

サービスメッセージ送信部212eは、サービスシステムクライアントシミュレータ232の動作状態情報生成部232bから動作状態情報を含むサービスメッセージを取得する。サービスメッセージ送信部212eは、取得したサービスメッセージをバックエンドサーバ400に送信する。 The service message transmitting unit 212e acquires a service message including operating state information from the operating state information generating unit 232b of the service system client simulator 232. FIG. The service message transmission unit 212e transmits the acquired service message to the backend server 400. FIG.

コントロールメッセージ送信部212fは、シミュレーション動作制御部212hからエージェントシミュレータ202の制御状態を含むシミュレーション制御メッセージを取得する。コントロールメッセージ送信部212fは、シミュレーション動作制御部212hから取得したシミュレーション制御メッセージをシミュレーションコンダクタ320に送信する。 The control message transmission unit 212f acquires a simulation control message including the control state of the agent simulator 202 from the simulation operation control unit 212h. The control message transmission unit 212f transmits the simulation control message acquired from the simulation operation control unit 212h to the simulation conductor 320. FIG.

シミュレーション動作制御部212hは、コントロールメッセージ受信部212cからシミュレーション制御メッセージを取得する。シミュレーション動作制御部212hは、シミュレーション制御メッセージに含まれる指示に従ってエージェントシミュレータ202のシミュレーション動作を制御する。例えば、シミュレーションの時間粒度の変更が指示された場合、シミュレーション動作制御部212hは、エージェントシミュレータ202によるシミュレーションの時間粒度を初期値から指示された時間粒度に変更する。時間粒度の初期値はエージェントシミュレータ202に設定値として記憶されている。また、時間粒度の上限値と下限値は、エージェントの種類ごとにシミュレーションコンダクタ320に記憶されている。 The simulation operation control unit 212h acquires the simulation control message from the control message reception unit 212c. The simulation operation control section 212h controls the simulation operation of the agent simulator 202 according to instructions included in the simulation control message. For example, when a change in the time granularity of the simulation is instructed, the simulation operation control unit 212h changes the time granularity of the simulation by the agent simulator 202 from the initial value to the instructed time granularity. The initial value of time granularity is stored in the agent simulator 202 as a set value. Also, the upper and lower limits of the time granularity are stored in the simulation conductor 320 for each type of agent.

シミュレーション制御メッセージによる指示内容がシミュレーション速度である場合、シミュレーション動作制御部212hは、3D物理エンジン222やシミュレータコア242の動作周波数を指示されたシミュレーション速度に従って変化させ、エージェントシミュレータ202の演算速度を加速或いは減速する。シミュレーションの停止が指示された場合、シミュレーション動作制御部212hは、エージェントシミュレータ202によるシミュレーションを停止させる。シミュレーションの休止が指示された場合にはシミュレーションを休止させ、再開が指示された場合にシミュレーションを再開させる。シミュレーション動作制御部212hは、エージェントシミュレータ202の現在の制御状態を含むシミュレーション制御メッセージをコントロールメッセージ送信部212fに出力する。 When the instruction content of the simulation control message is the simulation speed, the simulation operation control unit 212h changes the operating frequencies of the 3D physics engine 222 and the simulator core 242 in accordance with the instructed simulation speed to accelerate or accelerate the calculation speed of the agent simulator 202. slow down. When the stop of the simulation is instructed, the simulation operation control unit 212h stops the simulation by the agent simulator 202. FIG. The simulation is paused when the pause of the simulation is instructed, and the simulation is restarted when the restart is instructed. The simulation operation control section 212h outputs a simulation control message including the current control state of the agent simulator 202 to the control message transmission section 212f.

4-2-3.3D物理エンジンの詳細
3D物理エンジン222において、周囲エージェント状態更新部222aは、移動メッセージ受信部212aから移動メッセージを取得する。移動メッセージ受信部212aから取得される移動メッセージは、移動メッセージディスパッチャ310を経由して他のエージェントシミュレータから送られた移動メッセージである。周囲エージェント状態更新部222aは、取得した移動メッセージに基づいて自エージェントの周囲に存在する周囲エージェントの現在の状態を推定する。
4-2-3.Details of 3D Physics Engine In the 3D physics engine 222, the ambient agent status updater 222a acquires the movement message from the movement message receiver 212a. The movement message obtained from the movement message receiving section 212a is a movement message sent from another agent simulator via the movement message dispatcher 310. FIG. The surrounding agent state update unit 222a estimates the current state of surrounding agents existing around the own agent based on the acquired movement message.

周囲エージェントの現在の状態を過去の状態から推定する場合、周囲エージェント状態更新部222aは、ログに保存されている周囲エージェントの過去の状態を使用する。周囲エージェントの過去の状態を用いて現在の状態を推定する方法は図3を用いて説明した通りである。周囲エージェント状態更新部222aは、推定した周囲エージェントの現在の状態をセンサ情報生成部222bに出力するとともに、ログを更新する。 When estimating the current state of the surrounding agents from the past state, the surrounding agent state update unit 222a uses the past states of the surrounding agents stored in the log. The method of estimating the current state using the past states of surrounding agents is as described with reference to FIG. The surrounding agent state update unit 222a outputs the estimated current state of the surrounding agents to the sensor information generation unit 222b and updates the log.

センサ情報生成部222bは、周囲エージェント状態更新部222aから周囲エージェントの現在の状態を取得する。センサ情報生成部222bは、周囲エージェントの現在の状態に基づいて自エージェントからの観測で得られる周辺情報を生成する。自エージェントは自律ロボット或いは自律車両であるので、観測で得られる周辺情報とは、自律ロボット或いは自律車両のセンサで捉えられるセンサ情報を意味する。センサ情報生成部222bは、生成されたセンサ情報をシミュレータコア242の全体的経路計画部242a、及びサービスシステムクライアントシミュレータ232の動作状態情報生成部232bに出力する。 The sensor information generator 222b acquires the current state of surrounding agents from the surrounding agent state updater 222a. The sensor information generation unit 222b generates peripheral information obtained by observation from the own agent based on the current state of the surrounding agents. Since the own agent is an autonomous robot or an autonomous vehicle, the peripheral information obtained by observation means sensor information captured by the sensors of the autonomous robot or autonomous vehicle. The sensor information generation unit 222b outputs the generated sensor information to the overall route planning unit 242a of the simulator core 242 and the operating state information generation unit 232b of the service system client simulator 232. FIG.

自エージェント状態更新部222cは、シミュレータコア242の次タイムステップ状態算出部242dから、シミュレータコア242で演算された次タイムステップにおける自エージェントの状態を取得する。自エージェント状態更新部222cは、シミュレータコア242による演算結果に基づいて3次元空間における自エージェントの状態を更新する。自エージェント状態更新部222cは、更新された自エージェントの状態を含む移動メッセージを送受信コントローラ212の移動メッセージ送信部212dに出力する。移動メッセージに含まれる自エージェントの状態には、今回タイムステップにおける位置、方向、速度、加速度と、次タイムステップにおける位置、方向、速度、加速度とが含まれる。また、自エージェント状態更新部222cは、更新された自エージェントの状態に関する情報をサービスシステムクライアントシミュレータ232の動作状態情報生成部232bに出力する。 The own agent state updating unit 222c acquires the state of the own agent at the next time step calculated by the simulator core 242 from the next time step state calculating unit 242d of the simulator core 242 . The self-agent state update unit 222c updates the state of the self-agent in the three-dimensional space based on the calculation result by the simulator core 242. FIG. The self-agent state update unit 222c outputs a movement message including the updated state of the self-agent to the movement message transmission unit 212d of the transmission/reception controller 212. FIG. The state of the own agent included in the movement message includes the position, direction, speed, and acceleration at the current time step and the position, direction, speed, and acceleration at the next time step. Also, the self-agent state update unit 222c outputs the information on the updated state of the self-agent to the operation state information generation unit 232b of the service system client simulator 232. FIG.

4-2-4.サービスシステムクライアントシミュレータの詳細
サービスシステムクライアントシミュレータ232において、経路計画用情報受信部232aは、サービスメッセージ受信部211bからサービスメッセージを取得する。サービスメッセージ受信部212bから取得されるサービスメッセージは、サービスシステムが自律ロボット/車両を用いてサービスを提供するための動作指示情報と他のサービスシステムに関する情報とを含む。経路計画用情報受信部232aは、動作指示情報と他サービスシステム情報とをシミュレータコア242の全体的経路計画部242aに出力する。
4-2-4. Details of Service System Client Simulator In the service system client simulator 232, the route planning information receiver 232a acquires a service message from the service message receiver 211b. The service message obtained from the service message receiving unit 212b includes operation instruction information for the service system to provide the service using the autonomous robot/vehicle and information on other service systems. The route planning information receiving section 232 a outputs the operation instruction information and other service system information to the overall route planning section 242 a of the simulator core 242 .

動作状態情報生成部232bは、シミュレータコア242のアクチュエータ操作量決定部242cから自エージェントの次タイムステップにおけるアクチュエータ操作量を取得する。また、動作状態情報生成部232bは、3D物理エンジン222のセンサ情報生成部222bからセンサ情報を取得するとともに、自エージェント状態更新部222cから3次元空間における自エージェントの状態を取得する。動作状態情報生成部232bは、取得されたこれらの情報に基づいてサービスの提供に係る自エージェントの動作状態を表す動作状態情報を生成する。動作状態情報生成部232bは、動作状態情報を含むサービスメッセージを送受信コントローラ212のサービスメッセージ送信部212eに出力する。 The operating state information generation unit 232b acquires the actuator operation amount of the own agent at the next time step from the actuator operation amount determination unit 242c of the simulator core 242. FIG. Further, the motion state information generation unit 232b acquires sensor information from the sensor information generation unit 222b of the 3D physics engine 222, and acquires the state of the own agent in the three-dimensional space from the own agent state update unit 222c. The operating state information generation unit 232b generates operating state information representing the operating state of the self-agent involved in providing the service based on the acquired information. The operation state information generator 232b outputs a service message including the operation state information to the service message transmitter 212e of the transmission/reception controller 212. FIG.

4-2-5.シミュレータコアの詳細
シミュレータコア242において、全体的経路計画部242aは、3D物理エンジン222のセンサ情報生成部222bからセンサ情報を取得する。また、全体的経路計画部242aは、サービスシステムクライアントシミュレータ232の経路計画用情報受信部232aから動作指示情報と他サービスシステム情報とを取得する。全体的経路計画部242aは、取得されたこれらの情報に基づいて仮想世界2における自エージェントの全体的な経路を計画する。全体的な経路とは、自エージェントの現在位置から目標地点までの経路を意味する。センサ情報生成部222bと経路計画用情報受信部232aとから取得される情報は毎回変化するので、全体的経路計画部242aは、タイムステップ毎に全体的経路計画を立て直す。全体的経路計画部242aは、決定された全体的経路計画を局所的経路計画部242bに出力する。
4-2-5. Details of the Simulator Core In the simulator core 242 , the global path planner 242 a obtains sensor information from the sensor information generator 222 b of the 3D physics engine 222 . Also, the overall route planning unit 242 a acquires operation instruction information and other service system information from the route planning information receiving unit 232 a of the service system client simulator 232 . The overall route planning unit 242a plans the overall route of the own agent in the virtual world 2 based on the acquired information. The overall route means the route from the current position of the own agent to the target point. Since the information acquired from the sensor information generating section 222b and the route planning information receiving section 232a changes each time, the overall route planning section 242a reconstructs the overall route planning for each time step. The global route planner 242a outputs the determined global route plan to the local route planner 242b.

局所的経路計画部242bは、全体的経路計画部242aから全体的経路計画を取得する。局所的経路計画部242bは、全体的経路計画に基づいて局所的な経路計画を立てる。局所的な経路とは、例えば、現時点から所定タイムステップ後までの経路、或いは、現在位置から所定距離までの経路を意味する。局所的経路計画は、例えば、自エージェントが辿るべき位置の集合と、各位置における速度或いは加速度とで表される。局所的経路計画部242bは、決定された局所的経路計画をアクチュエータ操作量決定部242cに出力する。 The local route planner 242b obtains the global route plan from the global route planner 242a. The local route planner 242b makes a local route plan based on the global route plan. A local route means, for example, a route from the current point to a predetermined time step later, or a route from the current position to a predetermined distance. A local route plan is represented, for example, by a set of positions to be followed by the own agent and the velocity or acceleration at each position. The local route planning section 242b outputs the determined local route planning to the actuator manipulated variable determining section 242c.

アクチュエータ操作量決定部242cは、局所的経路計画部242bから局所的経路計画を取得する。アクチュエータ操作量決定部242cは、局所的経路計画に基づいて次タイムステップにおける自エージェントのアクチュエータ操作量を決定する。ここでいうアクチュエータとは、自エージェントの方向、速度、及び加速度を制御するアクチュエータである。自エージェントが車輪で走行する自律ロボット或いは自律車両である場合、例えば、制動装置、駆動装置、操舵装置などのアクチュエータが操作対象となる。アクチュエータ操作量決定部242cは、決定したアクチュエータ操作量を次タイムステップ状態算出部242d、及びサービスシステムクライアントシミュレータ232の動作状態情報生成部232bに出力する。 The actuator operation amount determination unit 242c acquires the local route plan from the local route plan unit 242b. The actuator operation amount determination unit 242c determines the actuator operation amount of the own agent in the next time step based on the local route planning. The actuator here is an actuator that controls the direction, velocity, and acceleration of its own agent. When the own agent is an autonomous robot or an autonomous vehicle that runs on wheels, for example, actuators such as a braking device, a driving device, and a steering device are to be operated. The actuator operation amount determination unit 242 c outputs the determined actuator operation amount to the next time step state calculation unit 242 d and the operation state information generation unit 232 b of the service system client simulator 232 .

次タイムステップ状態算出部242dは、アクチュエータ操作量決定部242cで決定されたアクチュエータ操作量を取得する。次タイムステップ状態算出部242dは、アクチュエータ操作量に基づいて次タイムステップにおける自エージェントの状態を算出する。算出される自エージェントの状態は、次タイムステップにおける自エージェントの位置、方向、速度、及び加速度を含む。次タイムステップ状態算出部242dは、算出された次タイムステップにおける自エージェントの状態を3D物理エンジン222の自エージェント状態更新部222cに出力する。 The next time step state calculation unit 242d acquires the actuator operation amount determined by the actuator operation amount determination unit 242c. The next time step state calculator 242d calculates the state of the own agent at the next time step based on the actuator operation amount. The calculated self-agent state includes the position, direction, velocity, and acceleration of the self-agent at the next time step. The next time step state calculator 242 d outputs the calculated state of the own agent at the next time step to the own agent state update unit 222 c of the 3D physics engine 222 .

4-3.VR歩行者エージェント用エージェントシミュレータ
図17は、VR歩行者エージェント用のエージェントシミュレータ203の構成と情報の流れを示すブロック図である。VR歩行者エージェントとは、実在の人がVR(Virtual Reality)システムを用いてシミュレーションの対象である仮想世界2に参加するための歩行者エージェントである。以下、VR歩行者エージェント用のエージェントシミュレータ203の全体構成と各部の詳細、及びエージェントシミュレータ203における情報の流れについて説明する。
4-3. Agent Simulator for VR Pedestrian Agent FIG. 17 is a block diagram showing the configuration and information flow of the agent simulator 203 for the VR pedestrian agent. A VR pedestrian agent is a pedestrian agent for a real person to participate in the virtual world 2 which is the object of simulation using a VR (Virtual Reality) system. The overall configuration of the agent simulator 203 for the VR pedestrian agent, the details of each part, and the flow of information in the agent simulator 203 will be described below.

4-3-1.VR歩行者エージェント用エージェントシミュレータの全体構成
エージェントシミュレータ203は、その機能として、送受信コントローラ213、3D物理エンジン223、サービスシステムクライアントシミュレータ233、及びシミュレータコア243を備える。これらの機能は、概念として、それぞれ送受信コントローラ210、3D物理エンジン220、サービスシステムクライアントシミュレータ230、及びシミュレータコア240に含まれる。
4-3-1. Overall Configuration of Agent Simulator for VR Pedestrian Agent The agent simulator 203 includes a transmission/reception controller 213, a 3D physics engine 223, a service system client simulator 233, and a simulator core 243 as its functions. These functions are conceptually contained in Transceiver Controller 210, 3D Physics Engine 220, Service System Client Simulator 230, and Simulator Core 240, respectively.

送受信コントローラ213は、各種メッセージを受信する機能として、移動メッセージ受信部213a、サービスメッセージ受信部213b、及びコントロールメッセージ受信部213cを備える。また、送受信コントローラ213は、各種メッセージを送信する機能として、移動メッセージ送信部213d、サービスメッセージ送信部213e、及びコントロールメッセージ送信部213fを備える。さらに、送受信コントローラ213は、シミュレーション動作制御部213hを備える。送受信コントローラ213を構成する各部213a~213hは、それぞれがプログラム或いはプログラムの一部である。 The transmission/reception controller 213 includes a movement message reception section 213a, a service message reception section 213b, and a control message reception section 213c as functions for receiving various messages. The transmission/reception controller 213 also includes a movement message transmission section 213d, a service message transmission section 213e, and a control message transmission section 213f as functions for transmitting various messages. Further, the transmission/reception controller 213 includes a simulation operation control section 213h. Each unit 213a to 213h constituting the transmission/reception controller 213 is a program or part of a program.

3D物理エンジン223は、その機能として、周囲エージェント状態更新部223a、視覚情報生成部223b、及び自エージェント状態更新部223cを備える。3D物理エンジン223を構成する各部223a、223b、223cは、それぞれがプログラム或いはプログラムの一部である。 The 3D physics engine 223 has, as its functions, a surrounding agent state updater 223a, a visual information generator 223b, and an own agent state updater 223c. Each unit 223a, 223b, 223c that constitutes the 3D physics engine 223 is a program or a part of the program.

サービスシステムクライアントシミュレータ233は、その機能として、サービス提供状態情報処理部233aとサービス利用情報生成部233bとを備える。サービスシステムクライアントシミュレータ231を構成する各部233a、233bは、それぞれがプログラム或いはプログラムの一部である。 The service system client simulator 233 includes, as its functions, a service provision state information processing section 233a and a service usage information generation section 233b. Each of the units 233a and 233b constituting the service system client simulator 231 is a program or a part of the program.

シミュレータコア243は、その機能として、認知判断用情報提示部243a、移動操作受付部243b、次タイムステップ状態算出部243c、及びアプリ操作受付部243dを備える。シミュレータコア243を構成する各部243a、243b、243c、243dは、それぞれがプログラム或いはプログラムの一部である。 The simulator core 243 has, as its functions, a recognition determination information presentation unit 243a, a movement operation reception unit 243b, a next time step state calculation unit 243c, and an application operation reception unit 243d. Each unit 243a, 243b, 243c, 243d that constitutes the simulator core 243 is a program or a part of the program.

4-3-2.送受信コントローラの詳細
送受信コントローラ213において、移動メッセージ受信部213aは、移動メッセージディスパッチャ310から移動メッセージを受信する。移動メッセージ受信部213aは、受信した移動メッセージを3D物理エンジン223の周囲エージェント状態更新部223aに出力する。
4-3-2. Details of Transmit/Receive Controller In the transmit/receive controller 213 , the move message receiver 213 a receives move messages from the move message dispatcher 310 . The movement message receiving unit 213 a outputs the received movement message to the surrounding agent state updating unit 223 a of the 3D physics engine 223 .

サービスメッセージ受信部213bは、バックエンドサーバ400からサービスメッセージを受信する。サービスメッセージ受信部213bは、受信したサービスメッセージをサービスシステムクライアントシミュレータ233のサービス提供状態情報処理部233aに出力する。 The service message receiving unit 213b receives a service message from the backend server 400. FIG. The service message receiving section 213b outputs the received service message to the service provision state information processing section 233a of the service system client simulator 233. FIG.

コントロールメッセージ受信部213cは、シミュレーションコンダクタ320からシミュレーション制御メッセージを受信する。コントロールメッセージ受信部213cは、受信したミュレーション制御メッセージをシミュレーション動作制御部213hに出力する。 Control message receiver 213 c receives a simulation control message from simulation conductor 320 . The control message receiving unit 213c outputs the received simulation control message to the simulation operation control unit 213h.

移動メッセージ送信部213dは、3D物理エンジン223の自エージェント状態更新部223cから自エージェントの現在の状態を含む移動メッセージを取得する。移動メッセージ送信部213dは、取得した移動メッセージを移動メッセージディスパッチャ310に送信する。 The movement message transmitting unit 213d acquires a movement message including the current state of the own agent from the own agent state updating unit 223c of the 3D physics engine 223 . The move message transmitting unit 213 d transmits the acquired move message to the move message dispatcher 310 .

サービスメッセージ送信部213eは、サービスシステムクライアントシミュレータ233のサービス利用情報生成部233bからサービス利用情報を含むサービスメッセージを取得する。サービスメッセージ送信部213eは、取得したサービスメッセージをバックエンドサーバ400に送信する。 The service message transmission unit 213e acquires a service message including service use information from the service use information generation unit 233b of the service system client simulator 233. FIG. The service message transmission unit 213 e transmits the acquired service message to the backend server 400 .

コントロールメッセージ送信部213fは、シミュレーション動作制御部213hからエージェントシミュレータ203の制御状態を含むシミュレーション制御メッセージを取得する。コントロールメッセージ送信部213fは、シミュレーション動作制御部213hから取得したシミュレーション制御メッセージをシミュレーションコンダクタ320に送信する。 The control message transmission unit 213f acquires a simulation control message including the control state of the agent simulator 203 from the simulation operation control unit 213h. The control message transmission unit 213f transmits the simulation control message acquired from the simulation operation control unit 213h to the simulation conductor 320. FIG.

シミュレーション動作制御部213hは、コントロールメッセージ受信部213cからシミュレーション制御メッセージを取得する。シミュレーション動作制御部213hは、シミュレーション制御メッセージに含まれる指示に従ってエージェントシミュレータ203のシミュレーション動作を制御する。VR歩行者エージェントの仮想世界2への参加条件が満たされない場合、シミュレーションコンダクタ320からエージェントシミュレータ203に対してシミュレーションの停止が指示される。 The simulation operation control unit 213h acquires a simulation control message from the control message reception unit 213c. The simulation operation control unit 213h controls the simulation operation of the agent simulator 203 according to instructions included in the simulation control message. If the conditions for participation of the VR pedestrian agent in the virtual world 2 are not satisfied, the simulation conductor 320 instructs the agent simulator 203 to stop the simulation.

前述のエージェントシミュレータ201、202及び後述するエージェントシミュレータ204は、必要に応じてシミュレーション速度を変更することができる。しかし、シミュレーション速度が変更された場合、VR歩行者エージェントを介して仮想世界2に参加している実在の参加者は、実世界とは異なる時間の流れに対して強い違和感を覚える虞がある。ゆえに、MASシステム100では、シミュレーションが実時間で行われていることを参加条件として、仮想世界2へのVR歩行者エージェントの参加が許容される。実世界の時間の流れよりもシミュレーション速度が加速或いは減速される場合、シミュレーションコンダクタ320は、エージェントシミュレータ203によるシミュレーションを停止させる。シミュレーション動作制御部213hは、エージェントシミュレータ203の現在の制御状態を含むシミュレーション制御メッセージをコントロールメッセージ送信部213fに出力する。 The agent simulators 201 and 202 described above and the agent simulator 204 described later can change the simulation speed as necessary. However, if the simulation speed is changed, a real participant who participates in the virtual world 2 via the VR pedestrian agent may feel a strong sense of incongruity with the flow of time different from that in the real world. Therefore, in the MAS system 100, the participation of the VR pedestrian agent in the virtual world 2 is permitted under the participation condition that the simulation is being performed in real time. The simulation conductor 320 stops the simulation by the agent simulator 203 when the simulation speed is accelerated or decelerated relative to the real-world time flow. The simulation operation control section 213h outputs a simulation control message including the current control state of the agent simulator 203 to the control message transmission section 213f.

4-3-3.3D物理エンジンの詳細
3D物理エンジン223において、周囲エージェント状態更新部223aは、移動メッセージ受信部213aから移動メッセージを取得する。移動メッセージ受信部213aから取得される移動メッセージは、移動メッセージディスパッチャ310を経由して他のエージェントシミュレータから送られた移動メッセージである。周囲エージェント状態更新部223aは、取得した移動メッセージに基づいて自エージェントの周囲に存在する周囲エージェントの現在の状態を推定する。
4-3-3.Details of 3D Physics Engine In the 3D physics engine 223, the ambient agent status updater 223a acquires the movement message from the movement message receiver 213a. The movement message obtained from the movement message receiving section 213a is a movement message sent from another agent simulator via the movement message dispatcher 310. FIG. The surrounding agent state update unit 223a estimates the current state of surrounding agents existing around the own agent based on the acquired movement message.

周囲エージェントの現在の状態を過去の状態から推定する場合、周囲エージェント状態更新部223aは、ログに保存されている周囲エージェントの過去の状態を使用する。周囲エージェントの過去の状態を用いて現在の状態を推定する方法は図3を用いて説明した通りである。周囲エージェント状態更新部223aは、推定した周囲エージェントの現在の状態を視覚情報生成部223bに出力するとともに、ログを更新する。 When estimating the current state of the surrounding agents from the past state, the surrounding agent state updating unit 223a uses the past states of the surrounding agents stored in the log. The method of estimating the current state using the past states of surrounding agents is as described with reference to FIG. The surrounding agent state update unit 223a outputs the estimated current state of the surrounding agents to the visual information generation unit 223b, and updates the log.

視覚情報生成部223bは、周囲エージェント状態更新部223aから周囲エージェントの現在の状態を取得する。視覚情報生成部223bは、周囲エージェントの現在の状態に基づいて自エージェントからの観測で得られる周辺情報を生成する。自エージェントは歩行者であるので、観測で得られる周辺情報とは、歩行者の目で捉えられる視覚情報を意味する。視覚情報生成部223bは、生成された視覚情報をシミュレータコア243の認知判断用情報提示部243a、及び移動操作受付部243bに出力する。 The visual information generator 223b acquires the current state of surrounding agents from the surrounding agent state updater 223a. The visual information generation unit 223b generates peripheral information obtained by observation from the own agent based on the current state of the surrounding agents. Since the own agent is a pedestrian, the peripheral information obtained by observation means visual information captured by the pedestrian's eyes. The visual information generation unit 223b outputs the generated visual information to the recognition determination information presentation unit 243a of the simulator core 243 and the movement operation reception unit 243b.

自エージェント状態更新部223cは、シミュレータコア243の次タイムステップ状態算出部243cから、シミュレータコア243で演算された次タイムステップにおける自エージェントの状態を取得する。自エージェント状態更新部223cは、シミュレータコア243による演算結果に基づいて3次元空間における自エージェントの状態を更新する。自エージェント状態更新部223cは、更新された自エージェントの状態を含む移動メッセージを送受信コントローラ213の移動メッセージ送信部213dに出力する。移動メッセージに含まれる自エージェントの状態には、今回タイムステップにおける位置、方向、速度、加速度と、次タイムステップにおける位置、方向、速度、加速度とが含まれる。また、自エージェント状態更新部223cは、更新された自エージェントの状態に関する情報をサービスシステムクライアントシミュレータ233のサービス利用情報生成部233bに出力する。 The self-agent state update unit 223 c acquires the state of the self-agent at the next time step calculated by the simulator core 243 from the next time step state calculation unit 243 c of the simulator core 243 . The self-agent state update unit 223c updates the state of the self-agent in the three-dimensional space based on the calculation result by the simulator core 243. FIG. The self-agent state update unit 223c outputs a movement message including the updated state of the self-agent to the movement message transmission unit 213d of the transmission/reception controller 213. FIG. The state of the own agent included in the movement message includes the position, direction, speed, and acceleration at the current time step and the position, direction, speed, and acceleration at the next time step. Further, the self-agent state update unit 223c outputs the information on the updated state of the self-agent to the service utilization information generation unit 233b of the service system client simulator 233. FIG.

4-3-4.サービスシステムクライアントシミュレータの詳細
サービスシステムクライアントシミュレータ233において、サービス提供状態情報処理部233aは、サービスメッセージ受信部213bからサービスメッセージを取得する。サービスメッセージ受信部213bから取得されるサービスメッセージはサービス提供状態情報を含む。サービス提供状態情報処理部233aは、サービス提供状態情報を処理し、サービスシステムのユーザとしての自エージェントの状態に関する情報と、ユーザ端末のサービスアプリへの入力項目とを取得する。自エージェントのユーザとしての状態に関する情報はユーザ端末に提示される情報であり、入力項目は自エージェントがサービスを利用するために入力を依頼される情報である。サービス提供状態情報処理部233aは、自エージェントのユーザとしての状態に関する情報と、ユーザ端末のサービスアプリへの入力項目とをシミュレータコア243の認知判断用情報提示部243a及びアプリ操作受付部243dに出力する。
4-3-4. Details of Service System Client Simulator In the service system client simulator 233, the service provision status information processing section 233a acquires a service message from the service message reception section 213b. The service message obtained from the service message receiver 213b includes service provision status information. The service provision state information processing unit 233a processes the service provision state information and acquires information regarding the state of the own agent as a user of the service system and input items to the service application of the user terminal. The information on the status of the agent as a user is information presented on the user terminal, and the input items are information requested to be input by the agent in order to use the service. The service provision status information processing unit 233a outputs information about the agent's status as a user and input items to the service application of the user terminal to the recognition determination information presentation unit 243a and the application operation reception unit 243d of the simulator core 243. do.

サービス利用情報生成部233bは、シミュレータコア243のアプリ操作受付部243dから、VR歩行者エージェントを介して仮想世界2に参加している実在の参加者によるVR上でのサービスアプリの操作を取得する。また、サービス利用情報生成部233bは、3D物理エンジン223の自エージェント状態更新部223cから3次元空間における自エージェントの状態を取得する。サービス利用情報生成部233bは、取得されたこれらの情報に基づいてサービス利用情報を生成するとともに、自エージェントのサービスの利用状態を更新する。サービス利用情報生成部233bは、サービス利用情報を含むサービスメッセージを送受信コントローラ213のサービスメッセージ送信部213eに出力する。 The service usage information generation unit 233b acquires, from the application operation reception unit 243d of the simulator core 243, the operation of the service application on the VR by the actual participant participating in the virtual world 2 via the VR pedestrian agent. . Further, the service utilization information generation unit 233b acquires the state of the own agent in the three-dimensional space from the own agent state update unit 223c of the 3D physics engine 223. FIG. The service usage information generation unit 233b generates service usage information based on the acquired information, and updates the service usage status of the own agent. The service usage information generator 233b outputs a service message including the service usage information to the service message transmitter 213e of the transmission/reception controller 213. FIG.

4-3-5.シミュレータコアの詳細
シミュレータコア243において、認知判断用情報提示部243aは、3D物理エンジン223の視覚情報生成部223bから視覚情報を取得する。また、認知判断用情報提示部243aは、サービスシステムクライアントシミュレータ231のサービス提供状態情報処理部233aから自エージェントのユーザとしての状態に関する情報と、ユーザ端末のサービスアプリへの入力項目とを取得する。取得されたこれらの情報は、VR歩行者エージェントを介して仮想世界2に参加している実在の参加者にとっての認知判断用の情報である。認知判断用情報提示部243aは、認知判断用の情報を実在参加者に対してVRシステムを通じて提示する。
4-3-5. Details of Simulator Core In the simulator core 243 , the cognitive judgment information presenting unit 243 a acquires visual information from the visual information generating unit 223 b of the 3D physics engine 223 . In addition, the recognition determination information presenting unit 243a acquires information on the state of the agent as a user and input items to the service application of the user terminal from the service provision state information processing unit 233a of the service system client simulator 231. FIG. These pieces of acquired information are information for cognitive judgment for real participants participating in the virtual world 2 via the VR pedestrian agent. The cognitive judgment information presenting unit 243a presents information for cognitive judgment to the real participant through the VR system.

移動操作受付部243bは、3D物理エンジン223の視覚情報生成部223bから視覚情報を取得する。そして、移動操作受付部243bは、VRシステムを通じて視覚情報を実在参加者に提示しながら、実在参加者によるVR上での移動操作を受け付ける。移動操作受付部243bは、受け付けた実在参加者によるVR上での移動操作を次タイムステップ状態算出部243dに出力する。 The movement operation reception unit 243 b acquires visual information from the visual information generation unit 223 b of the 3D physical engine 223 . Then, the movement operation reception unit 243b receives a movement operation on the VR by the real participant while presenting visual information to the real participant through the VR system. The movement operation reception unit 243b outputs the received movement operation on the VR by the real participant to the next time step state calculation unit 243d.

次タイムステップ状態算出部243dは、移動操作受付部243bから実在参加者によるVR上での移動操作を取得する。次タイムステップ状態算出部243dは、実在参加者によるVR上での移動操作に基づいて次タイムステップにおける自エージェントの状態を算出する。算出される自エージェントの状態は、次タイムステップにおける自エージェントの位置、方向、速度、及び加速度を含む。次タイムステップ状態算出部243dは、算出された次タイムステップにおける自エージェントの状態を3D物理エンジン223の自エージェント状態更新部223cに出力する。 The next time step state calculation unit 243d acquires a move operation on the VR by the real participant from the move operation reception unit 243b. The next time step state calculation unit 243d calculates the state of the own agent in the next time step based on the movement operation on the VR by the real participant. The calculated self-agent state includes the position, direction, velocity, and acceleration of the self-agent at the next time step. The next time step state calculator 243 d outputs the calculated state of the own agent at the next time step to the own agent state update unit 223 c of the 3D physics engine 223 .

アプリ操作受付部243dは、3D物理エンジン223の視覚情報生成部223bから視覚情報を取得する。また、アプリ操作受付部243dは、サービスシステムクライアントシミュレータ233のサービス提供状態情報処理部233aから自エージェントのユーザとしての状態に関する情報と、ユーザ端末のサービスアプリへの入力項目とを取得する。アプリ操作受付部243dは、取得したこれらの情報を実在参加者に対してVRシステムを通じて提示しながら、実在参加者によるVR上でのサービスアプリの操作を受け付ける。アプリ操作受付部243dは、受け付けた実在参加者によるVR上でのサービスアプリの操作をサービスシステムクライアントシミュレータ233のサービス利用情報生成部233bに出力する。 The application operation reception unit 243 d acquires visual information from the visual information generation unit 223 b of the 3D physical engine 223 . The application operation receiving unit 243d also acquires information on the state of the agent as a user and input items to the service application of the user terminal from the service provision state information processing unit 233a of the service system client simulator 233. FIG. The application operation reception unit 243d receives the operation of the service application on VR by the real participant while presenting the acquired information to the real participant through the VR system. The application operation receiving unit 243 d outputs the received operation of the service application on VR by the actual participant to the service usage information generating unit 233 b of the service system client simulator 233 .

4-4.路側センサエージェント用エージェントシミュレータ
図18は、路側センサエージェント用のエージェントシミュレータ204の構成と情報の流れを示すブロック図である。路側センサエージェントとは、自律ロボット/車両エージェントの仮想世界2における位置情報の取得に用いられる路側センサのエージェントである。路側センサエージェントにより取得される自律ロボット/車両エージェントの位置情報は、バックエンドサーバ400が関係するサービスシステムにおいて使用される。以下、路側センサエージェント用のエージェントシミュレータ204の全体構成と各部の詳細、及びエージェントシミュレータ204における情報の流れについて説明する。
4-4. Agent Simulator for Roadside Sensor Agent FIG. 18 is a block diagram showing the configuration and information flow of the agent simulator 204 for the roadside sensor agent. A roadside sensor agent is an agent of a roadside sensor used to acquire position information in the virtual world 2 of an autonomous robot/vehicle agent. The location information of the autonomous robot/vehicle agent obtained by the roadside sensor agent is used in the service system with which the backend server 400 is involved. The overall configuration and details of each part of the agent simulator 204 for the roadside sensor agent and the flow of information in the agent simulator 204 will be described below.

4-4-1.路側センサエージェント用エージェントシミュレータの全体構成
エージェントシミュレータ204は、その機能として、送受信コントローラ214、3D物理エンジン224、及びサービスシステムクライアントシミュレータ234を備える。これらの機能は、概念として、それぞれ送受信コントローラ210、3D物理エンジン220、及びシミュレータコア240に含まれる。エージェントシミュレータ204は、他のエージェントシミュレータとは異なりシミュレータコアは備えない。
4-4-1. Overall Configuration of Agent Simulator for Roadside Sensor Agent The agent simulator 204 includes a transmission/reception controller 214, a 3D physics engine 224, and a service system client simulator 234 as its functions. These functions are conceptually contained in transmit/receive controller 210, 3D physics engine 220, and simulator core 240, respectively. The agent simulator 204 does not have a simulator core unlike other agent simulators.

送受信コントローラ214は、各種メッセージを受信する機能として、移動メッセージ受信部214a、及びコントロールメッセージ受信部214bを備える。また、送受信コントローラ212は、各種メッセージを送信する機能として、サービスメッセージ送信部214e、及びコントロールメッセージ送信部214fを備える。さらに、送受信コントローラ212は、シミュレーション動作制御部214hを備える。送受信コントローラ214を構成する各部214a~214hは、それぞれがプログラム或いはプログラムの一部である。 The transmission/reception controller 214 includes a movement message reception section 214a and a control message reception section 214b as functions for receiving various messages. The transmission/reception controller 212 also includes a service message transmission section 214e and a control message transmission section 214f as functions for transmitting various messages. Further, the transmission/reception controller 212 includes a simulation operation control section 214h. Each unit 214a to 214h constituting the transmission/reception controller 214 is a program or part of a program.

3D物理エンジン224は、その機能として、周囲エージェント状態更新部224a、及びセンサ情報生成部224bを備える。3D物理エンジン224を構成する各部224a、224bは、それぞれがプログラム或いはプログラムの一部である。 The 3D physics engine 224 has, as its functions, a surrounding agent state updating unit 224a and a sensor information generating unit 224b. Each part 224a, 224b that constitutes the 3D physics engine 224 is a program or a part of the program.

サービスシステムクライアントシミュレータ234は、その機能として、サービスメッセージ生成部234aを備える。サービスシステムクライアントシミュレータ234を構成するサービスメッセージ生成部234aは、プログラム或いはプログラムの一部である。 The service system client simulator 234 has a service message generator 234a as its function. The service message generator 234a that constitutes the service system client simulator 234 is a program or a part of the program.

4-4-2.送受信コントローラの詳細
送受信コントローラ214において、移動メッセージ受信部214aは、移動メッセージディスパッチャ310から移動メッセージを受信する。移動メッセージ受信部214aは、受信した移動メッセージを3D物理エンジン224の周囲エージェント状態更新部224aに出力する。
4-4-2. Transmit/Receive Controller Details In the transmit/receive controller 214 , a mobile message receiver 214 a receives mobile messages from the mobile message dispatcher 310 . The movement message receiving unit 214 a outputs the received movement message to the surrounding agent state updating unit 224 a of the 3D physics engine 224 .

コントロールメッセージ受信部214cは、シミュレーションコンダクタ320からシミュレーション制御メッセージを受信する。コントロールメッセージ受信部214cは、受信したミュレーション制御メッセージをシミュレーション動作制御部214hに出力する。 Control message receiver 214 c receives simulation control messages from simulation conductor 320 . The control message receiving unit 214c outputs the received simulation control message to the simulation operation control unit 214h.

サービスメッセージ送信部214eは、サービスシステムクライアントシミュレータ234のサービスメッセージ生成部234aからセンサ情報を含むサービスメッセージを取得する。サービスメッセージ送信部214eは、取得したサービスメッセージをバックエンドサーバ400に送信する。 The service message transmitter 214e acquires a service message including sensor information from the service message generator 234a of the service system client simulator 234. FIG. The service message transmission unit 214 e transmits the acquired service message to the backend server 400 .

コントロールメッセージ送信部214fは、シミュレーション動作制御部214hからエージェントシミュレータ202の制御状態を含むシミュレーション制御メッセージを取得する。コントロールメッセージ送信部214fは、シミュレーション動作制御部214hから取得したシミュレーション制御メッセージをシミュレーションコンダクタ320に送信する。 The control message transmission unit 214f acquires a simulation control message including the control state of the agent simulator 202 from the simulation operation control unit 214h. The control message transmission unit 214f transmits the simulation control message acquired from the simulation operation control unit 214h to the simulation conductor 320. FIG.

シミュレーション動作制御部214hは、コントロールメッセージ受信部214cからシミュレーション制御メッセージを取得する。シミュレーション動作制御部214hは、シミュレーション制御メッセージに含まれる指示に従ってエージェントシミュレータ202のシミュレーション動作を制御する。例えば、シミュレーションの時間粒度の変更が指示された場合、シミュレーション動作制御部214hは、エージェントシミュレータ202によるシミュレーションの時間粒度を初期値から指示された時間粒度に変更する。時間粒度の初期値はエージェントシミュレータ204に設定値として記憶されている。また、時間粒度の上限値と下限値は、エージェントの種類ごとにシミュレーションコンダクタ320に記憶されている。 The simulation operation control unit 214h acquires the simulation control message from the control message reception unit 214c. The simulation operation control unit 214h controls the simulation operation of the agent simulator 202 according to instructions included in the simulation control message. For example, when a change of the time granularity of the simulation is instructed, the simulation operation control unit 214h changes the time granularity of the simulation by the agent simulator 202 from the initial value to the instructed time granularity. The initial value of time granularity is stored in the agent simulator 204 as a set value. Also, the upper and lower limits of the time granularity are stored in the simulation conductor 320 for each type of agent.

シミュレーション制御メッセージによる指示内容がシミュレーション速度である場合、シミュレーション動作制御部214hは、3D物理エンジン224の動作周波数を指示されたシミュレーション速度に従って変化させ、エージェントシミュレータ204の演算速度を加速或いは減速する。シミュレーションの停止が指示された場合、シミュレーション動作制御部214hは、エージェントシミュレータ204によるシミュレーションを停止させる。シミュレーションの休止が指示された場合にはシミュレーションを休止させ、再開が指示された場合にシミュレーションを再開させる。シミュレーション動作制御部214hは、エージェントシミュレータ204の現在の制御状態を含むシミュレーション制御メッセージをコントロールメッセージ送信部214fに出力する。 If the simulation control message instructs the simulation speed, the simulation operation control unit 214h changes the operating frequency of the 3D physics engine 224 according to the instructed simulation speed, thereby accelerating or decelerating the calculation speed of the agent simulator 204. When the stop of the simulation is instructed, the simulation operation control unit 214h stops the simulation by the agent simulator 204. FIG. The simulation is paused when the pause of the simulation is instructed, and the simulation is restarted when the restart is instructed. The simulation operation control section 214h outputs a simulation control message including the current control state of the agent simulator 204 to the control message transmission section 214f.

4-4-3.3D物理エンジンの詳細
3D物理エンジン224において、周囲エージェント状態更新部224aは、移動メッセージ受信部214aから移動メッセージを取得する。移動メッセージ受信部214aから取得される移動メッセージは、移動メッセージディスパッチャ310を経由して他のエージェントシミュレータから送られた移動メッセージである。周囲エージェント状態更新部224aは、取得した移動メッセージに基づいて自エージェントの周囲に存在する周囲エージェントの現在の状態を推定する。
4-4-3.Details of 3D Physics Engine In the 3D physics engine 224, the ambient agent status updater 224a acquires the movement message from the movement message receiver 214a. The mobile message acquired from the mobile message receiver 214a is a mobile message sent from another agent simulator via the mobile message dispatcher 310. FIG. The surrounding agent state update unit 224a estimates the current state of surrounding agents existing around the own agent based on the acquired movement message.

周囲エージェントの現在の状態を過去の状態から推定する場合、周囲エージェント状態更新部224aは、ログに保存されている周囲エージェントの過去の状態を使用する。周囲エージェントの過去の状態を用いて現在の状態を推定する方法は図3を用いて説明した通りである。周囲エージェント状態更新部224aは、推定した周囲エージェントの現在の状態をセンサ情報生成部224bに出力するとともに、ログを更新する。 When estimating the current state of the surrounding agents from the past state, the surrounding agent state update unit 224a uses the past states of the surrounding agents stored in the log. The method of estimating the current state using the past states of surrounding agents is as described with reference to FIG. The surrounding agent state update unit 224a outputs the estimated current state of the surrounding agents to the sensor information generation unit 224b and updates the log.

センサ情報生成部224bは、周囲エージェント状態更新部224aから周囲エージェントの現在の状態を取得する。センサ情報生成部224bは、周囲エージェントの現在の状態に基づいて自エージェントからの観測で得られる周辺情報を生成する。自エージェントはカメラのような定置型の路側センサであるので、観測で得られる周辺情報とは、路側センサで捉えられるセンサ情報を意味する。センサ情報生成部224bは、生成されたセンサ情報をサービスシステムクライアントシミュレータ234のサービスメッセージ生成部234aに出力する。 The sensor information generator 224b acquires the current state of surrounding agents from the surrounding agent state updater 224a. The sensor information generation unit 224b generates surrounding information obtained by observation from the own agent based on the current state of the surrounding agents. Since the own agent is a stationary roadside sensor such as a camera, the peripheral information obtained by observation means sensor information captured by the roadside sensor. The sensor information generator 224 b outputs the generated sensor information to the service message generator 234 a of the service system client simulator 234 .

4-4-4.サービスシステムクライアントシミュレータの詳細
サービスシステムクライアントシミュレータ234において、サービスメッセージ生成部234aは、3D物理エンジン224のセンサ情報生成部224bからセンサ情報を取得する。サービスメッセージ生成部234aは、取得されたセンサ情報を含むサービスメッセージを送受信コントローラ214のサービスメッセージ送信部214eに出力する。
4-4-4. Details of Service System Client Simulator In the service system client simulator 234 , the service message generator 234 a acquires sensor information from the sensor information generator 224 b of the 3D physics engine 224 . The service message generation unit 234a outputs a service message including the acquired sensor information to the service message transmission unit 214e of the transmission/reception controller 214. FIG.

5.MASシステムの物理構成
MASシステム100の物理構成について説明する。図19は、MASシステム100の物理構成の一例を示す図である。MASシステム100は、例えば、同一のサブネット30上に配置された複数のコンピュータ10で構成することができる。さらに、サブネット30と別のサブネット32とをゲートウェイ40によって接続することにより、サブネット32上に配置された複数のコンピュータ10までMASシステム100を拡大することができる。
5. Physical Configuration of MAS System The physical configuration of the MAS system 100 will be described. FIG. 19 is a diagram showing an example of the physical configuration of the MAS system 100. As shown in FIG. The MAS system 100 can be composed of multiple computers 10 arranged on the same subnet 30, for example. Further, by connecting a subnet 30 to another subnet 32 via a gateway 40, the MAS system 100 can be extended to multiple computers 10 located on the subnet 32. FIG.

図19に示す例では、ソフトウェアであるセンターコントローラ300は1つのコンピュータ10にインストールされている。ただし、センターコントローラ300の機能を複数のコンピュータ10に分散させてもよい。 In the example shown in FIG. 19, the center controller 300 as software is installed in one computer 10 . However, the functions of the center controller 300 may be distributed among multiple computers 10 .

また、MASシステム100は、複数のバックエンドサーバ400を備えている。図19に示す例では、それぞれのバックエンドサーバ400が別々のコンピュータ10にインストールされている。ただし、バックエンドサーバ400の機能を複数のコンピュータ10に分散させてもよい。また、1つのサーバを複数サーバに分割する仮想化技術によって、1つのコンピュータ10に複数のバックエンドサーバ400をインストールしてもよい。 The MAS system 100 also includes multiple backend servers 400 . In the example shown in FIG. 19, each backend server 400 is installed on separate computers 10 . However, the functions of the backend server 400 may be distributed among multiple computers 10 . Also, a plurality of backend servers 400 may be installed in one computer 10 by virtualization technology that divides one server into a plurality of servers.

図19に示す例では、1つのコンピュータ10に複数のエージェントシミュレータ200がインストールされている。1つのコンピュータ10の上で複数のエージェントシミュレータ200を独立して動作させる手法としては仮想化技術を用いることができる。仮想化技術としては仮想マシンでもよいしコンテナ仮想化でもよい。1つのコンピュータ10に同一種類の複数のエージェントシミュレータ200をインストールしてもよいし、種類の異なる複数のエージェントシミュレータ200をインストールしてもよい。なお、1つのコンピュータ10に1つのエージェントシミュレータ200のみがインストールされていてもよい。 In the example shown in FIG. 19, multiple agent simulators 200 are installed in one computer 10 . A virtualization technique can be used as a technique for independently operating a plurality of agent simulators 200 on one computer 10 . The virtualization technology may be a virtual machine or container virtualization. A plurality of agent simulators 200 of the same type may be installed in one computer 10, or a plurality of agent simulators 200 of different types may be installed. Note that only one agent simulator 200 may be installed in one computer 10 .

以上のように、MASシステム100は、単一のコンピュータによる処理ではなく、複数のコンピュータ10を用いた並列分散処理を採用する。これにより、コンピュータの処理能力によって仮想世界2に搭乗させるエージェントの数が制限されることや、コンピュータの処理能力によって仮想世界2で提供されるサービスの数が制限されることを防ぐことができる。つまり、MASシステム100によれば、並列分散処理による大規模なシミュレーションが可能である。 As described above, the MAS system 100 employs parallel distributed processing using a plurality of computers 10 instead of processing by a single computer. As a result, it is possible to prevent the number of agents to board the virtual world 2 from being limited by the processing power of the computer, and the number of services provided in the virtual world 2 from being limited by the processing power of the computer. In other words, according to the MAS system 100, large-scale simulation by parallel distributed processing is possible.

6.その他
仮想世界2を外から観察するための観察用エージェントを設けても良い。観察用エージェントは、例えば、街角カメラのような定置物体でもよく、カメラを備えたドローンのような移動物体であってもよい。
6. Others An observation agent may be provided for observing the virtual world 2 from the outside. Observing agents can be, for example, stationary objects, such as street cameras, or moving objects, such as drones equipped with cameras.

2 シミュレーション対象世界(仮想世界)
4 エージェント
10 コンピュータ
100 マルチエージェントシミュレーションシステム
200 エージェントシミュレータ
210 送受信コントローラ
220 3D物理エンジン
230 サービスシステムクライアントシミュレータ
240 シミュレータコア
300 センターコントローラ
310 移動メッセージディスパッチャ
311 メッセージフィルタ
312 受信キュー
313 送信キュー
314 転送部
315 メッセージフィルタ
320 シミュレーションコンダクタ
400 サービスシステム用バックエンドサーバ
MR 結果メッセージ
MD 配信メッセージ
REF1 参照情報
REF2 参照情報
2 Simulation target world (virtual world)
4 agents 10 computer 100 multi-agent simulation system 200 agent simulator 210 transmission/reception controller 220 3D physical engine 230 service system client simulator 240 simulator core 300 center controller 310 movement message dispatcher 311 message filter 312 reception queue 313 transmission queue 314 transfer unit 315 message filter 320 Simulation Conductor 400 Backend Server for Service System MR Result Message MD Delivery Message REF1 Reference Information REF2 Reference Information

Claims (4)

相互作用する複数のエージェントが存在する対象世界のシミュレーションを行うマルチエージェントシミュレーションシステムであって、
前記複数のエージェントのそれぞれのシミュレーションを行う複数のエージェントシミュレータと、
前記複数のエージェントシミュレータと通信を行うセンターコントローラと
を備え、
対象エージェントは、前記複数のエージェントシミュレータの各々に割り当てられるエージェントであり、
前記センターコントローラは、前記各々のエージェントシミュレータに対して、前記対象エージェントと異なる少なくとも1つの他エージェントの状態を示す少なくとも1つの配信メッセージを配信し、
前記各々のエージェントシミュレータは、
前記配信メッセージで示される前記他エージェントの前記状態に基づいて、前記対象エージェントのシミュレーションを行って前記対象エージェントの状態を決定し、
前記シミュレーションの結果得られた前記対象エージェントの前記状態を示す結果メッセージを前記センターコントローラに送信し、
前記センターコントローラの動作モードは、
前記各々のエージェントシミュレータから受け取る前記結果メッセージを選別することなく新たな前記配信メッセージとして配信する第1モードと、
前記各々のエージェントシミュレータから受け取る前記結果メッセージを選択的に新たな前記配信メッセージとして配信する第2モードと
を含み、
前記センターコントローラが単位時間あたりに受け取る前記結果メッセージの数が閾値以下である場合、前記センターコントローラは、前記第1モードを選択し、
前記センターコントローラが単位時間あたりに受け取る前記結果メッセージの数が前記閾値を超えた場合、前記センターコントーラは、前記第2モードを選択する
マルチエージェントシミュレーションシステム。
A multi-agent simulation system for simulating a target world in which multiple interacting agents exist,
a plurality of agent simulators for simulating each of the plurality of agents;
a center controller that communicates with the plurality of agent simulators,
the target agent is an agent assigned to each of the plurality of agent simulators;
The center controller delivers to each of the agent simulators at least one delivery message indicating a state of at least one other agent different from the target agent;
Each agent simulator,
determining the state of the target agent by simulating the target agent based on the state of the other agent indicated by the delivery message;
sending a result message indicating the state of the target agent obtained as a result of the simulation to the center controller;
The operation mode of the center controller is
a first mode in which the result messages received from each of the agent simulators are delivered as new delivery messages without selection;
a second mode of selectively delivering the result message received from each of the agent simulators as a new delivery message;
if the number of result messages received by the center controller per unit time is less than or equal to a threshold, the center controller selects the first mode;
The multi-agent simulation system, wherein the center controller selects the second mode when the number of result messages received by the center controller per unit time exceeds the threshold.
請求項1に記載のマルチエージェントシミュレーションシステムであって、
前記複数のエージェントシミュレータは、
第1処理時間間隔で第1エージェントのシミュレーションを行う第1エージェントシミュレータと、
前記第1処理時間間隔よりも長い第2処理時間間隔で前記第1エージェントと異なる第2エージェントのシミュレーションを行う第2エージェントシミュレータと
を含み、
前記第2モードにおいて、前記センターコントローラは、前記第2エージェントシミュレータに対して単位時間あたりに配信する第2配信メッセージの数を、前記第1エージェントシミュレータに対して単位時間あたりに配信する第1配信メッセージの数よりも少なく設定する
マルチエージェントシミュレーションシステム。
A multi-agent simulation system according to claim 1,
The plurality of agent simulators are
a first agent simulator for simulating a first agent at a first processing time interval;
a second agent simulator that simulates a second agent different from the first agent at a second processing time interval longer than the first processing time interval;
In the second mode, the center controller sets the number of second delivery messages to be delivered to the second agent simulator per unit time to the first delivery to the first agent simulator. A multi-agent simulation system that sets less than the number of messages.
請求項1に記載のマルチエージェントシミュレーションシステムであって、
前記対象世界の空間は、複数のパーティションに分割され、
前記複数のパーティションは、第1パーティション、第2パーティション、及び第3パーティションを含み、
前記センターコントローラは、
前記第1パーティションに属するエージェントのシミュレーションを行うエージェントシミュレータから受け取る前記結果メッセージを格納する第1パーティション受信キューと、
前記第2パーティションに属するエージェントのシミュレーションを行うエージェントシミュレータから受け取る前記結果メッセージを格納する第2パーティション受信キューと、
前記第3パーティションに属するエージェントのシミュレーションを行うエージェントシミュレータに配信される前記配信メッセージを格納する第3パーティション送信キューと
を含み、
前記対象世界において、前記第1パーティションと前記第3パーティションとの間の距離は、前記第2パーティションと前記第3パーティションとの間の距離よりも大きく、
前記第2モードにおいて、前記センターコントローラは、前記第1パーティション受信キューから前記第3パーティション送信キューへの前記結果メッセージの転送頻度を、前記第2パーティション受信キューから前記第3パーティション送信キューへの前記結果メッセージの転送頻度よりも低く設定する
マルチエージェントシミュレーションシステム。
A multi-agent simulation system according to claim 1,
the object world space is divided into a plurality of partitions,
The plurality of partitions includes a first partition, a second partition, and a third partition;
The center controller
a first partition reception queue for storing the result message received from the agent simulator that simulates the agent belonging to the first partition;
a second partition reception queue for storing the result message received from the agent simulator that simulates the agent belonging to the second partition;
a third partition transmission queue that stores the delivery message to be delivered to an agent simulator that simulates an agent belonging to the third partition;
In the target world, the distance between the first partition and the third partition is greater than the distance between the second partition and the third partition,
In the second mode, the center controller sets the transfer frequency of the result message from the first partition reception queue to the third partition transmission queue to the frequency of transfer from the second partition reception queue to the third partition transmission queue. A multi-agent simulation system that is set lower than the transmission frequency of result messages.
請求項1に記載のマルチエージェントシミュレーションシステムであって、
前記複数のエージェントシミュレータは、
第1エージェントのシミュレーションを行う第1エージェントシミュレータと、
第2エージェントのシミュレーションを行う第2エージェントシミュレータと、
第3エージェントのシミュレーションを行う第3エージェントシミュレータと
を含み、
前記対象世界において、前記第1エージェントと前記第3エージェントとの間の距離は、前記第2エージェントと前記第3エージェントとの間の距離よりも大きく、
前記第2モードにおいて、前記センターコントローラは、
前記第1エージェントに関する第1結果メッセージを前記第1エージェントシミュレータから受け取り、前記第1結果メッセージの少なくとも一部を前記配信メッセージとして前記第3エージェントシミュレータに配信し、
前記第2エージェントに関する第2結果メッセージを前記第2エージェントシミュレータから受け取り、前記第2結果メッセージの少なくとも一部を前記配信メッセージとして前記第3エージェントシミュレータに配信し、
前記第3エージェントシミュレータに対する前記第1結果メッセージの配信頻度を、前記第3エージェントシミュレータに対する前記第2結果メッセージの配信頻度よりも低く設定する
マルチエージェントシミュレーションシステム。
A multi-agent simulation system according to claim 1,
The plurality of agent simulators are
a first agent simulator for simulating a first agent;
a second agent simulator for simulating a second agent;
a third agent simulator for simulating a third agent;
In the object world, the distance between the first agent and the third agent is greater than the distance between the second agent and the third agent;
In the second mode, the center controller
receiving a first result message for the first agent from the first agent simulator, delivering at least a portion of the first result message as the delivery message to the third agent simulator;
receiving a second result message for the second agent from the second agent simulator, delivering at least a portion of the second result message as the delivery message to the third agent simulator;
A multi-agent simulation system, wherein the delivery frequency of the first result message to the third agent simulator is set lower than the delivery frequency of the second result message to the third agent simulator.
JP2021095949A 2021-06-08 2021-06-08 Multi-agent Simulation System Active JP7491268B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021095949A JP7491268B2 (en) 2021-06-08 2021-06-08 Multi-agent Simulation System
US17/661,835 US20220391661A1 (en) 2021-06-08 2022-05-03 Multi-agent simulation system
CN202210629000.2A CN115460283A (en) 2021-06-08 2022-06-06 Multi-body simulation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021095949A JP7491268B2 (en) 2021-06-08 2021-06-08 Multi-agent Simulation System

Publications (2)

Publication Number Publication Date
JP2022187776A true JP2022187776A (en) 2022-12-20
JP7491268B2 JP7491268B2 (en) 2024-05-28

Family

ID=84284675

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021095949A Active JP7491268B2 (en) 2021-06-08 2021-06-08 Multi-agent Simulation System

Country Status (3)

Country Link
US (1) US20220391661A1 (en)
JP (1) JP7491268B2 (en)
CN (1) CN115460283A (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4292965B2 (en) 2003-11-28 2009-07-08 ソニー株式会社 Receiving device and receiving method
JP5132058B2 (en) 2006-01-16 2013-01-30 株式会社ソニー・コンピュータエンタテインメント Simulator system
JP5052911B2 (en) 2007-02-14 2012-10-17 三菱電機株式会社 Simulation method

Also Published As

Publication number Publication date
JP7491268B2 (en) 2024-05-28
CN115460283A (en) 2022-12-09
US20220391661A1 (en) 2022-12-08

Similar Documents

Publication Publication Date Title
EP3399426B1 (en) Method and device for training model in distributed system
CN104375882B (en) The multistage nested data being matched with high-performance computer structure drives method of calculation
CN108983633A (en) Simulation system, the method and apparatus of more objects in a kind of virtual environment
US10878146B2 (en) Handover techniques for simulation systems and methods
CN108737569B (en) Service selection method facing mobile edge computing environment
Talpur et al. DRLD-SP: A deep-reinforcement-learning-based dynamic service placement in edge-enabled internet of vehicles
US20090204563A1 (en) Generic ai architecture for a multi-agent system
US10643010B2 (en) Scalable simulation system with scalable data propagation
CN113660681A (en) Multi-agent resource optimization method applied to unmanned aerial vehicle cluster auxiliary transmission
US20190018915A1 (en) Simulation Systems and Methods Using Query-Based Interest
Karaboga et al. A new emigrant creation strategy for parallel artificial bee colony algorithm
JP7491268B2 (en) Multi-agent Simulation System
JP7491269B2 (en) Multi-agent Simulation System
JP2022187778A (en) Multi-agent simulation system
JP7494802B2 (en) Multi-agent simulation system and multi-agent simulation method
Lee et al. Decoupling cognitive agents and virtual environments
CN115618532A (en) Network system simulation method and related device
CN110727511B (en) Control method for application program, network side device and computer readable storage medium
CN109298932B (en) OpenFlow-based resource scheduling method, scheduler and system
JP2017208757A (en) Device and method for traffic prediction
JP7494803B2 (en) Multi-agent simulation system and multi-agent simulation method
Li et al. Consistency-aware zone mapping and client assignment in multi-server distributed virtual environments
Gütlein et al. Performance gains in V2X experiments using distributed simulation in the veins framework
JP2022187780A (en) Multi-agent simulation system and multi-agent simulation method
US20220391554A1 (en) Multi-agent simulation system and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230719

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240321

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240404

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: 20240416

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240429

R150 Certificate of patent or registration of utility model

Ref document number: 7491268

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150