Multi-agent simulation system and multi-agent simulation method

By managing the multi-agent simulation system through a central controller and utilizing message exchange and delay detection, the problem of reduced accuracy caused by excessive simulation speed is solved, and efficient simulation speed control and accuracy maintenance are achieved in poor computing/network environments.

CN115454232BActive Publication Date: 2025-10-21TOYOTA JIDOSHA KK
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202210552201.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-06-08
Filing Date
2022-05-19
Publication Date
2025-10-21
Estimated Expiration
2042-05-19

AI Technical Summary

Technical Problem

In the case of poor computing/network environment, the simulation speed of the multi-agent simulation system is too fast, resulting in reduced simulation accuracy and inability to effectively catch up with the flow of real time.

Method used

A central controller is used to manage multiple agent simulators. Through message exchange and delay detection, the simulation speed and time granularity are controlled, and some agent simulators are allowed to be disconnected from the simulation, ensuring simulation accuracy and accelerating the simulation process.

Benefits of technology

While maintaining simulation accuracy, the simulation speed is improved, simulation failures due to delays are avoided, and the existence of important agents is ensured not to affect the simulation results.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115454232B_ABST
    Figure CN115454232B_ABST
Patent Text Reader

Abstract

The present disclosure provides a multi-agent simulation system and a multi-agent simulation method. A multi-agent simulation (MAS) system capable of maintaining the precision of simulation and performing simulation at high speed is provided. The MAS system (100) is provided with an agent simulator (200A to 200C) set for each agent and a central controller (300). The agent simulator (200A to 200C) simulates the state of each agent while causing the agents to interact with each other through the exchange of messages. The central controller (300) manages the participation and disengagement of the agent simulator (200A to 200C) from the simulation of the target world, and causes the agent simulator (200B) that is unable to keep up with the flow of time of the target world to disengage from the simulation of the target world.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a multi-agent simulation system and a multi-agent simulation method for simulating an object world using a plurality of interacting agents. Background Art

[0002] Multi-agent simulations, which use multiple interacting agents to simulate an object world, are known. For example, Patent Document 1 discloses an invention for varying the time interval at which an agent notifies other agents of their status in a multi-agent simulation. In the present invention, for example, when information rarely changes, the frequency of notifications is reduced to advance the simulation quickly.

[0003] Furthermore, as documents representing the technical level at the time of filing in the technical field of the present disclosure, in addition to the above-mentioned Patent Document 1, the following Patent Document 2, Patent Document 3, and Patent Document 4 can be cited as examples.

[0004] Prior art literature

[0005] Patent Literature

[0006] Patent Document 1: Japanese Patent Application Laid-Open No. 2015-022378

[0007] Patent Document 2: Japanese Patent Application Laid-Open No. 2004-272693

[0008] Patent Document 3: Japanese Patent Application Laid-Open No. 2008-203913

[0009] Patent Document 4: Japanese Patent Application Laid-Open No. 2009-151634 Summary of the Invention

[0010] The passage of time in the world you wish to simulate does not necessarily mirror the passage of time in reality. By making the passage of time in a simulation faster than in reality, you can achieve high-speed simulation. However, the achievable simulation speed depends on the computing and network environment.

[0011] In multi-agent simulations, agents interact through message exchanges. If the sum of the computation time and message exchange time in each agent converges to the time granularity set for each agent, the simulation accuracy of each agent can be maintained.

[0012] However, in poor computing / network environments, messages from other agents may not arrive before the required processing time, or conversely, messages may arrive from other agents in the future before they are sent to them. In other words, in poor computing / network environments, the simulation speed may be too high, resulting in agents whose processing time in the simulated object world cannot keep up with the time granularity. In such cases, the accuracy of the object world simulation will naturally decrease.

[0013] The present disclosure has been made in view of the above-mentioned problems and aims to provide a multi-agent simulation system and method capable of maintaining simulation accuracy and executing simulation at high speed.

[0014] The present disclosure provides a multi-agent simulation system that uses multiple interacting agents to simulate an object world. The system includes multiple agent simulators, each of which is configured for each of the multiple agents, and a central controller. The multiple agent simulators are programmed to simulate the states of each agent while interacting with each other through message exchange. The central controller is programmed to manage the multiple agent simulators' participation in and withdrawal from the object world simulation, preventing any agent simulators that cannot keep up with the flow of time in the object world from being simulated.

[0015] In the system disclosed herein, when a certain agent simulator is removed from the simulation of the target world, the central controller may notify the remaining agent simulators of the removal. This allows the remaining agent simulators to proceed without having to wait for messages from the removed agent simulator.

[0016] In the disclosed system, a central controller can also control the sending and receiving of messages between multiple agent simulators. If an agent simulator is detected to be experiencing message transmission delays, the central controller can cause that agent simulator to disconnect from the simulation of the target world. This allows the central controller to determine whether an agent simulator is unable to keep up with the flow of time in the target world.

[0017] In the system disclosed herein, each of the multiple agent simulators can determine its processing delay relative to other agent simulators and, if a delay is detected, request a disengagement from the central controller. In this case, the central controller can also cause the agent simulator requesting disengagement to disengage from the simulation of the target world. This allows the agent simulator to disengage from the simulation of the target world by determining that it is unable to keep up with the flow of time in the target world.

[0018] In the system disclosed herein, the multi-agent simulation system can also be configured to make the speed ratio of the flow of time in the object world relative to the flow of time in the real world variable. In this case, the central controller can also increase the speed ratio while causing the agent simulator that cannot keep up with the flow of time in the object world to be separated from the simulation of the object world. In this way, the speed of the simulation can be increased while maintaining the accuracy of the simulation of the object world. In addition, the central controller can also increase the speed ratio as long as a specific agent simulator does not separate. In this way, the simulation can be performed at the highest possible speed within the range of allowing unimportant agents in the object world (such as individuals in a crowd) to disappear from the object world and preventing important agents in the object world (such as vehicles) from disappearing.

[0019] In the system disclosed herein, multiple agent simulators may also include a variable-time-granularity agent simulator capable of adjusting the time granularity of message transmission. In this case, the variable-time-granularity agent simulator can also increase the time granularity within a predetermined tolerance range when processing cannot keep up with the flow of time in the object world. Increasing the time granularity at which the agent simulator sends messages makes changes in the state of agents in the object world more discontinuous, but creates a margin for the flow of time in the object world. This can reduce the number of agent simulators that become disconnected from the object world simulation due to processing failing to keep up with the flow of time in the object world.

[0020] In the system disclosed herein, the central controller can also interrupt the target world simulation if a predetermined number of the multiple proxy simulators have left the target world simulation, and then resume the target world simulation after returning to a predetermined time. If the speed ratio is inappropriate from the initial stage, the load increases dramatically due to a rapid increase in proxies, or overall communication delays increase dramatically due to temporary network anomalies, many proxy simulators may leave, making it difficult to continue the target world simulation. However, by returning to the time before many proxy simulators left and resuming the target world simulation, the target world simulation can be continued.

[0021] The present disclosure provides a multi-agent simulation method for simulating an object world using multiple interacting agents. The method includes exchanging messages between multiple agent simulators, each of which is assigned to a plurality of agents. This message exchange enables the agents to interact with each other while simulating the states of each agent. Furthermore, the method includes managing the participation and withdrawal of the multiple agent simulators in and out of the object world simulation through a central controller, allowing agent simulators that cannot keep up with the flow of time in the object world to withdraw from the object world simulation.

[0022] In the method of the present disclosure, when a certain agent simulator is separated from the simulation of the target world, the central controller may notify the remaining agent simulators of the separation.

[0023] In the method disclosed herein, the central controller may control the transmission and reception of messages between multiple agent simulators. Furthermore, if an agent simulator is detected to be delaying message transmission, the agent simulator may be removed from the simulation of the target world.

[0024] Furthermore, in the method disclosed herein, each of the plurality of proxy simulators may determine a processing delay relative to other proxy simulators. Furthermore, upon detecting a processing delay relative to other proxy simulators, the proxy simulator may request a disengagement from the central controller. Furthermore, the proxy simulator that has requested a disengagement may be disengaged from the simulation of the target world.

[0025] Furthermore, in the disclosed method, the speed ratio of the flow of time in the target world relative to the flow of time in the real world can be made variable. In this case, the speed ratio can be increased while the proxy simulator that cannot keep up with the flow of time in the target world is disconnected from the simulation of the target world. Alternatively, the speed ratio can be increased as long as a specific proxy simulator does not disconnect.

[0026] Furthermore, in the method disclosed herein, the plurality of proxy simulators may include a variable time granularity proxy simulator capable of adjusting the time granularity of message transmission. Alternatively, if the processing of the variable time granularity proxy simulator cannot keep up with the flow of time in the object world, the time granularity may be increased within a predetermined allowable range.

[0027] Furthermore, in the method disclosed herein, the simulation of the target world may be interrupted when a predetermined number of the plurality of agent simulators have left the simulation of the target world, and the simulation of the target world may be restarted after returning to a state where a predetermined time has elapsed.

[0028] In the multi-agent simulation system and method disclosed herein, simulation of the object world is performed by enabling agents to interact with each other through message exchange. Therefore, if an agent simulator's processing fails to keep up with the flow of time in the object world, the delay in this processing also affects the processing of other agent simulators, reducing the accuracy of the object world simulation. According to the multi-agent simulation system and method disclosed herein, by separating the agent simulator whose processing fails to keep up with the flow of time in the object world from the object world simulation, it is possible to suppress the reduction in the accuracy of the object world simulation and create room for improving the simulation speed. BRIEF DESCRIPTION OF THE DRAWINGS

[0029] Figure 1 This is a diagram showing an overview of a multi-agent simulation system according to an embodiment of the present disclosure.

[0030] Figure 2 This is a diagram showing an overview of a multi-agent simulation system according to an embodiment of the present disclosure.

[0031] Figure 3 This is a diagram showing an overview of a multi-agent simulation system according to an embodiment of the present disclosure.

[0032] Figure 4 This is a timing chart showing an ideal situation among simulation situations assumed in the agent simulator according to the embodiment of the present disclosure.

[0033] Figure 5 This is a timing chart showing a situation of agent simulator delay in another part of the simulation situation assumed in the agent simulator according to the embodiment of the present disclosure.

[0034] Figure 6 This is a timing chart showing a situation slightly delayed compared to other agent simulators among simulation situations assumed in the agent simulator according to the embodiment of the present disclosure.

[0035] Figure 7 This is a timing chart showing a situation in which the agent simulator according to the embodiment of the present disclosure is significantly delayed compared to other agent simulators, among simulation situations assumed in the agent simulator.

[0036] Figure 8 This is a flowchart showing the flow of adjustment of simulation speed and determination of exiting simulation by an agent simulator according to an embodiment of the present disclosure.

[0037] Figure 9 This is a flowchart showing a process of adjusting the simulation speed of an agent simulator by a simulation commander according to an embodiment of the present disclosure.

[0038] Figure 10 This is a flowchart showing a process for determining, by a simulation commander, to instruct an agent simulator to exit from simulation according to an embodiment of the present disclosure.

[0039] Figure 11 This is a sequence diagram showing a flow of returning and restarting a simulation by a simulation commander according to an embodiment of the present disclosure.

[0040] Figure 12 This is a block diagram showing the structure of a multi-agent simulation system according to an embodiment of the present disclosure.

[0041] Figure 13This is a block diagram showing the structure of an agent simulator for a pedestrian agent and the flow of information according to an embodiment of the present disclosure.

[0042] Figure 14 This is a block diagram showing the structure of an agent simulator for an autonomous mobile agent and the flow of information according to an embodiment of the present disclosure.

[0043] Figure 15 This is a block diagram showing the structure of an agent simulator for a VR pedestrian agent and the flow of information according to an embodiment of the present disclosure.

[0044] Figure 16 This is a block diagram showing the structure of an agent simulator for a roadside sensor agent and the flow of information according to an embodiment of the present disclosure.

[0045] Figure 17 1 is a block diagram illustrating a structure for aggregating and evaluating simulation results using a multi-agent simulation system according to an embodiment of the present disclosure.

[0046] Figure 18 This is a diagram showing an example of the physical structure of a multi-agent simulation system according to an embodiment of the present disclosure.

[0047] (Explanation of Symbols)

[0048] 2: Virtual world (simulated object world); 4A, 4B, 4C: Agent; 10: Computer; 30, 32: Subnet; 40: Gateway; 100: Multi-agent simulation system; 200: Agent simulator; 201: Agent simulator for pedestrian agent; 202: Agent simulator for autonomous robot / vehicle agent; 203: Agent simulator for VR pedestrian agent; 204: Agent simulator for roadside sensor agent; 210: Transmitter / receiver controller; 220: 3D physics engine; 230: Service system client simulator; 240: Simulator core; 300: Central controller; 310: Mobile message scheduler; 320: Simulation commander; 400: Back-end server for service system. DETAILED DESCRIPTION

[0049] The following describes embodiments of the present disclosure with reference to the accompanying drawings. However, when reference is made to the number, quantity, amount, range, or other numerical values ​​of various elements in the embodiments described below, the concepts of the present disclosure are not limited to the numerical values ​​mentioned, unless otherwise specifically stated or clearly determined in principle. Furthermore, the structures and the like described in the embodiments described below are not necessarily required by the concepts of the present disclosure, unless otherwise specifically stated or clearly determined in principle.

[0050] 1. Overview of Multi-Agent Simulation System

[0051] use Figures 1 to 3 The following describes an overview of a multi-agent simulation system according to an embodiment of the present disclosure. Hereinafter, the multi-agent simulation system will be abbreviated as a MAS system.

[0052] 1-1. Overview of MAS System Structure and Functions

[0053] Figure 1 The schematic structure of the MAS system 100 of the present embodiment is shown. The MAS system 100 simulates a world (simulation object world) 2 as a simulation object by causing a plurality of agents 4A, 4B, and 4C to interact with each other. The simulation object world using the MAS system disclosed herein is not limited. However, the MAS system 100 of the present embodiment uses a world in which people and autonomous moving bodies, such as robots or vehicles, coexist and can receive various services using autonomous moving bodies as the simulation object world 2. As services provided in the simulation object world 2, for example, there can be cited mobility services such as on-demand buses and scheduled buses using autonomous driving vehicles, and logistics services that use autonomous moving robots to deliver goods.

[0054] The simulated object world 2 is composed of multiple agents. These agents include agents representing mobile objects and agents representing stationary objects. Examples of mobile objects represented as agents include pedestrians, robots, low-speed mobile devices, vehicles, actual people using a VR system, and elevators. Examples of stationary objects represented as agents include sensors such as cameras and automatic doors.

[0055] However, in Figure 1 In order to simplify the explanation, only three agents 4A, 4B, and 4C are shown in the simulated object world 2. Agents 4A and 4B represent robots, and agent 4C represents a pedestrian. Figure 1 The simulated world 2 shown shows two types of agents: a robot and a pedestrian. Agents 4A and 4B belong to the same category, robots, but differ in size, shape, speed, and movement. Therefore, agents 4A and 4B differ in the visual information that pedestrian agent 4C can obtain from them. Hereinafter, in this specification, agent 4A will be referred to simply as agent A. Similarly, agent 4B will be referred to simply as agent B, and agent 4C will be referred to simply as agent C. Hereinafter, the simulated world 2, as a virtual world, will be distinguished from the real world and referred to as virtual world 2.

[0056] The MAS system 100 includes multiple agent simulators 200. An agent simulator 200 is provided for each of agents A, B, and C. Hereinafter, when distinguishing between agent simulators 200, the agent simulator 200 simulating the state of agent A will be referred to as agent simulator A. Similarly, the agent simulators 200 simulating the states of agents B and C will be referred to as agent simulators B and C. Each agent simulator 200 has a different structure depending on the type of agent being used. For example, agent simulators B and C for robot agents B and C have similar structures, but agent simulator A for pedestrian agent A has a different structure from agent simulators B and C. The structure of the agent simulator 200 for each agent type will be described in detail later.

[0057] Agent simulator 200 simulates the states of agents A, B, and C by enabling them to interact with each other through the exchange of messages. Messages exchanged between agent simulators 200 include information regarding the agent's position and movement within virtual world 2 (movement information). Movement information includes both current and future plans related to the agent's position and movement. Current information includes, for example, the current position, direction, velocity, and acceleration. Future plan information includes, for example, a list of future positions, directions, velocities, and accelerations. Hereinafter, messages regarding the agent's position and movement exchanged between agent simulators 200 are referred to as movement messages.

[0058] The agent simulator 200 calculates the state of the target agent (the agent itself), the target of the simulation, based on the state of surrounding agents. Surrounding agents are interacting agents that exist around the agent and interact with it. Furthermore, information indicating the state of surrounding agents is a movement message. Each agent simulator 200 can understand the state of surrounding agents by exchanging movement messages with other agent simulators 200.

[0059] exist Figure 1 In the example shown, agent simulator A understands the states of agents B and C based on movement messages received from agent simulators B and C, and updates the state of agent A based on the states of agents B and C. Agent simulator A then sends a movement message indicating the updated state of agent A to agent simulators B and C. Similar processing is performed by agent simulators B and C. In this way, the states of each agent A, B, and C are simulated while agents A, B, and C interact with each other.

[0060] Agent status updates using agent simulator 200 can be performed at regular intervals or upon detection of certain events. However, even with the latter method, if the status is not updated for an extended period, it can significantly impact surrounding agents. Therefore, updating the status at regular intervals is a method that forcibly generates events. The intervals between agent status updates using agent simulator 200 are referred to as time granularity.

[0061] exist Figure 1 In the example shown, the time granularity for each agent A, B, and C in virtual world 2 is 20 msec. However, the time granularity can be changed depending on the agent type. For example, since pedestrian agent C moves more slowly than robot agents A and B, the time granularity for pedestrian agent C can be larger than that for robot agents A and B. Each agent simulator A, B, and C executes the simulation with a control cycle corresponding to the time granularity of the agent A, B, and C in charge.

[0062] In the MAS system 100, simulation is performed by exchanging mobile messages between agent simulators 200. However, the mobile messages used for simulation are not exchanged directly between agent simulators 200. The MAS system 100 includes a central controller 300 that communicates with the agent simulators 200. The central controller 300 includes a mobile message dispatcher 310 that distributes received mobile messages. Mobile messages are exchanged between agent simulators 200 via the mobile message dispatcher 310.

[0063] exist Figure 1 In the example shown, mobile message dispatcher 310 receives a mobile message output from agent simulator A. Then, mobile message dispatcher 310 sends the mobile message of agent simulator A to agent simulators B and C. Similarly, mobile message dispatcher 310 sends the mobile message of agent simulator B to agent simulators A and C, and mobile message dispatcher 310 sends the mobile message of agent simulator C to agent simulators A and B.

[0064] The speed of mobile message exchange between agent simulators 200 is initially set so that the time granularity set for each agent matches the time interval in the real world. That is, in the initial setting of the mobile message exchange speed, the flow of time in the real world and the flow of time in the virtual world 2 are aligned. When the mobile message exchange speed is increased from this initial state, the speed ratio of the flow of time in the virtual world 2 to the flow of time in the real world increases. The mobile message exchange speed is determined by the interval between mobile messages sent from each agent simulator 200. For example, if the interval between mobile messages is halved, the mobile message exchange speed is doubled. If the mobile message exchange speed is doubled, the agent's movement speed is also doubled, and the simulation proceeds at twice the speed. In other words, the mobile message exchange speed represents the simulation speed.

[0065] If the interval at which each agent simulator 200 sends movement messages is independently varied, there is a risk of a discrepancy between the operating speeds of the agent itself and those of surrounding agents. Furthermore, this could result in a failure to obtain information about the states of surrounding agents when the agent's state is updated, or in a failure to transmit information about the agent's state when surrounding agents update their states, leading to simulation failure. Therefore, it is necessary to control the interval at which each agent simulator 200 sends movement messages for all agent simulators 200.

[0066] The transmission interval of the mobile message transmitted by the agent simulator 200 is controlled by the center controller 300. Specifically, the center controller 300 includes a simulation director 320 that controls the simulation using each agent simulator 200.

[0067] The simulation leader 320 controls simulations using the agent simulators 200 by exchanging simulation control messages with the agent simulators 200. The simulation leader 320 communicates with all agent simulators 200 that comprise the MAS system 100, exchanging simulation control messages. Through the exchange of simulation control messages, for example, simulation speed, stopping, pausing, and resuming simulations, as well as the simulation time granularity, are controlled. The simulation speed is controlled collectively for all agent simulators 200. Conversely, stopping, pausing, and resuming simulations, as well as the simulation time granularity, are controlled for each agent simulator 200.

[0068] 1-2. Overview of Simulation Speed ​​Control in MAS Systems

[0069] Figure 2 as well as Figure 3The following is an overview of the simulation speed control performed in the MAS system 100. In the MAS system 100, each agent simulator 200 sends a movement message at a time interval corresponding to the time granularity of the simulated agent. Figure 1 As shown, each agent simulator 200 sends a move message at a time interval of 20 msec.

[0070] To increase the simulation speed, the central controller 300 (more specifically, the simulation director 320) instructs each agent simulator 200 to shorten the interval between sending movement messages, thereby increasing the speed ratio of the flow of time in the virtual world 2 relative to the flow of time in the real world. As this speed ratio increases, the simulation speed increases, allowing the simulation to be completed in a shorter time.

[0071] However, depending on the computing / network environment in which the agent simulator 200 operates, there is a possibility that the agent simulator 200 may not be able to keep up with the flow of time in the virtual world 2. Figure 3 In the example shown, the transmission intervals of the mobile messages transmitted from the agent simulators A and C are shortened, but the transmission interval of the mobile message transmitted from the agent simulator B is not shortened. In other words, a delay occurs in the agent simulator B.

[0072] The agent simulator 200 uses information about the states of surrounding agents to update the state of the agent itself. Figure 3 In the example shown, agent simulator A updates its own agent state using movement messages sent from simulators B and C. Furthermore, agent simulator C updates its own agent state using movement messages sent from simulators A and B. Therefore, the delay of agent simulator B is not solely a problem for agent simulator B; it also adversely affects agent simulators A and C, which exchange movement messages with agent simulator B. In other words, the presence of agent simulator B, which cannot keep up with the flow of time in virtual world 2, reduces the accuracy of simulations using the MAS system 100.

[0073] Therefore, the central controller 300 (specifically, the simulation director 320) removes agent simulator B, which has experienced a delay, from the simulation. By removing agent simulator B from the simulation, agent B disappears from virtual world 2. As a result, for example, agent A interacts only with agent C, so agent simulator A is not affected by agent simulator B, and can continue the simulation. This prevents agent simulator B from becoming the speed limit, creating room for further improvement in the simulation speeds of agent simulators A and C.

[0074] As described above, in the MAS system 100, the simulation speed is increased by shortening the interval between movement messages sent between agent simulators 200, allowing delayed agent simulators 200 to exit the simulation. However, whether or not this can be done depends on the type of agent. For example, even if a pedestrian agent in a crowd suddenly disappears from virtual world 2 due to the agent simulator 200's departure, the impact on the simulation is negligible. On the other hand, if a vehicle agent carrying a passenger suddenly disappears from virtual world 2, leaving the passenger behind, the simulation would be invalid at that point. In other words, agents whose presence or absence significantly affects other agents cannot be exited from the simulation. Therefore, in the MAS system 100, it is necessary to shorten the simulation time by increasing the simulation speed while maintaining the simulation speed within an appropriate speed range.

[0075] The MAS system 100 uses the "remaining time rate" as an indicator for determining the adequacy of simulation speed. The remaining time rate is defined as the ratio of remaining time to the update interval for updating agent status. Remaining time is the time obtained by subtracting the processing time for the update process from the update interval. The MAS system 100 calculates the remaining time rate for each agent simulator 200. The simulation director 320 comprehensively controls the speed ratio of the flow of time in the virtual world 2 relative to the flow of time in the real world for each agent simulator 200 based on the remaining time rate.

[0076] 1-3. Details of analog speed control in the MAS system

[0077] Next, use Figures 4 to 10 The following describes the details of the simulation speed control performed in the MAS system 100. First, four examples of simulation situations assumed to be performed by the agent simulator 200 will be described.

[0078] 1-3-1. Example of simulation status of agent simulator

[0079] Scenario 1. Ideal situation

[0080] Case 1 is an ideal simulation situation for the agent simulator 200. Hereinafter, focusing on one agent simulator among the plurality of agent simulators 200 will be referred to as focusing on the agent simulator. Figure 4 This is a timing chart showing various timings related to the update of the agent's state under ideal conditions for the agent simulator. The timings indicated by symbols on the time axis are defined as follows.

[0081] Ta(N): The starting time for calculating the state update of this agent in this time step

[0082] Ta(N+1): The starting time for calculating the state update of this agent in the next time step

[0083] Tc(N): The production of mobile messages in this time step is completed

[0084] Td(N): The time when the mobile message is sent in this time step

[0085] Te_first(N): The time of receipt of the first received movement message among the movement messages of the surrounding agents required for the calculation of the state update of this agent in the next time step

[0086] Te_last(N): The time of receipt of the last received movement message among the movement messages of the surrounding agents required for the calculation of the state update of this agent in the next time step

[0087] In Case 1, the timing Te_last(N) is before the timing Ta(N+1). That is, before the calculation for updating the state of the current agent at the next time step begins, all movement messages from surrounding agents required for the calculation are received. This means that there is no delay in other agent simulators relative to the target agent simulator.

[0088] Furthermore, in Case 1, the timing Te_first(N+1) does not precede the timing Ta(N+1). That is, before the calculation for updating the state of the own agent at the next time step begins, movement messages from surrounding agents, necessary for this calculation, have not yet begun to be received. This means that the agent simulator does not experience a delay relative to other agent simulators.

[0089] Here, the remaining time rate is explained. The remaining time rate is calculated using the remaining time and the update time interval using the following formula.

[0090] Remaining time rate = Remaining time / Update interval

[0091] Remaining time = Ta(N+1)-Te_last(N)

[0092] Update time interval = Ta(N+1)-Ta(N)

[0093] A remaining time rate is calculated for each agent simulator 200. The remaining time rate is an indicator that indicates the margin of update speed of the latest agent simulator among other agent simulators related to the agent simulator being targeted, relative to the agent simulator itself. When the remaining time rate is positive, the larger the remaining time rate, the greater the margin of update speed of the other agent simulators relative to the agent simulator being targeted. When the remaining time rate is negative, at least one other agent simulator is lagging behind the agent simulator being targeted.

[0094] If the remaining time rate is positive in all agent simulators 200, no delay occurs in any agent simulator 200. If the remaining time rate is sufficiently high, there is room for further increasing the simulation speed. However, if the remaining time rate is low, further increasing the simulation speed may cause delays in any agent simulator 200. Furthermore, if the remaining time rate is too close to zero, it may become negative due to deterioration of the computing / network environment. Therefore, to maintain simulation accuracy and execute the simulation as quickly as possible, it is ideal to keep the remaining time rate calculated by each agent simulator 200 within a certain range.

[0095] Case 2. Other parts of the proxy simulator are delayed

[0096] Case 2 is a situation where a portion of the proxy simulators among other proxy simulators related to the target proxy simulator is delayed. Figure 5 This is a timing chart showing various timings related to the update of the status of the own agent in this situation.

[0097] In case 2, the timing Te_first(N) is before the timing Ta(N+1). That is, before starting the calculation for the state update of the own agent at the next time step, at least one movement message of the surrounding agents required for the calculation is received.

[0098] However, in Case 2, the timing Te_last(N) is not before the timing Ta(N+1). That is, all movement messages from surrounding agents required for calculation of the current agent's state update at the next time step have not been received before the calculation of the current agent's state update at the next time step begins. At least one movement message is received after the calculation of the current agent's state update at the next time step begins. This indicates that a delay has occurred in some of the other agent simulators related to the target agent simulator.

[0099] In case 2, the timing Te_last(N) is slower than the timing Ta(N+1), so the remaining time rate becomes negative. By making the remaining time rate negative in any proxy simulator, including the focused proxy simulator, the presence of a proxy simulator with a relative overall delay can be confirmed.

[0100] Case 3: Slightly delayed compared to other proxy simulators

[0101] Case 3 is a situation where the agent simulator is slightly delayed compared to other agent simulators related to itself. Figure 6 This is a timing chart showing various timings related to the update of the status of the own agent in this situation.

[0102] In Case 3, the timing Te_first(N+1) is before the timing Ta(N+1). That is, before the calculation for the state update of the own agent at the next time step begins, the movement message of the surrounding agents required for the calculation of the state update of the own agent at the next time step is received. As a result, the other agent simulators are observed to operate earlier than the target agent simulator.

[0103] However, in Case 3, the timing Td(N) is before the timing Te_first(N+1). This means that the movement message related to the updated state of the own agent in the current time step is sent before the movement message from the surrounding agents required for calculating the state update of the own agent in the next time step is received. This means that while the agent simulator is delayed compared to other agent simulators, it is not significantly delayed. This degree of delay is considered acceptable.

[0104] Case 4: Significant delay compared to other proxy simulators

[0105] Case 4 is a situation where the agent simulator is significantly delayed compared to other agent simulators related to itself. Figure 7 This is a timing chart showing various timings related to the update of the status of the own agent in this situation.

[0106] In scenario 4, the timing Te_first(N+1) is before the timing Td(N). That is, the movement messages of the surrounding agents required for calculating the updated state of the current agent in the next time step are received before the movement message related to the updated state of the current agent is sent. The other agent simulators would have used the state of the current agent sent by the focus agent simulator at timing Td(N) to update the states of the surrounding agents in the next time step. Therefore, in scenario 4, the focus agent simulator is indeed delayed by one cycle relative to the other agent simulators.

[0107] Here, the delay time is defined by the following formula: The delay time can be used as an index value indicating the degree of delay of a proxy simulator relative to other proxy simulators.

[0108] Delay time = Td(N) - Te_first(N+1)

[0109] In case 3, timing Td(N) is earlier than timing Te_first(N+1), so the delay time is a negative value. On the other hand, in case 4, timing Td(N) is later than timing Te_first(N+1), so the delay time is a positive value. If the delay time is a positive value and exceeds a predetermined threshold, it can be determined that the agent simulator is delayed to an unacceptable degree relative to the other agent simulators.

[0110] 1-3-2. Processing in the agent simulator for simulating speed control

[0111] The MAS system 100 controls the simulation speed with the goal of the ideal state shown in Case 1 of the four cases described above. The simulation speed control by the MAS system 100 is performed through the coordination between the agent simulator 200 and the simulation director 320 .

[0112] First, the process in the agent simulator 200 for simulating speed control will be described. Figure 8 This is a flowchart showing a routine executed by the agent simulator 200 for simulation speed control. Specifically, the flowchart shows the flow of simulation speed adjustment and simulation exit determination by the agent simulator 200. The agent simulator 200 repeatedly executes the routine shown in the flowchart at a fixed cycle.

[0113] In step S100, it is determined whether the timing Te_last(N) is detected after the current time step. Figures 4 to 6 and Figure 7 As can be seen from the comparison, whether the timing Te_last(N) is detected after the current time step becomes a criterion for judging whether the agent simulator 200 is delayed to an unacceptable degree relative to other agent simulators.

[0114] If the time Te_last(N) is detected after the current time step, that is, if the agent simulator 200 is not unacceptably delayed relative to the other agent simulators, the process proceeds to step S102. In step S102, it is determined whether the remaining time is a positive value. A positive remaining time indicates that the agent simulator 200 is not delayed and that the other agent simulators are not delayed either.

[0115] If the remaining time is a positive value, the process proceeds to step S104. In step S104, the remaining time rate is calculated. In the flowchart, the remaining time rate is sometimes referred to as RTR. Next, in step S106, the remaining time rate calculated in step S104 is sent to simulation leader 320 along with the simulation control message "Normal Status." The messages in the flowchart are simulation control messages. The simulation control message "Normal Status" is used to notify simulation leader 320 that neither the agent simulator 200 nor the other agent simulators are in a delayed state. In the flowchart, the simulation leader is referred to as SC.

[0116] If the determination result in step S100 is negative, that is, if the timing Te_last(N) has not been detected after the current time step, the process proceeds to step S108. Furthermore, if the determination result in step S102 is negative, that is, if the remaining time is not a positive value, the process proceeds to step S108. In step S108, it is determined whether the delay time is greater than or equal to the delay time threshold ThD. The delay time threshold ThD is the criterion for determining whether the delay of the agent simulator 200 is fatal. For example, the delay time threshold ThD can be set to half the time step, or time granularity, of the agent simulator 200.

[0117] If the delay time is greater than or equal to the delay time threshold ThD, in step S110, the value of the fatal delay state counter CountFD is incremented by 1. The fatal delay state counter is a counter used to count the duration of the fatal delay state of the agent simulator 200. The fatal delay state counter is initially set to zero and is reset when the process of step S120, described later, is executed. If the delay time is less than the delay time threshold ThD, step S110 is skipped.

[0118] Next, in step S112, it is determined whether the agent simulator 200 is an agent simulator that can adjust the time interval of the simulation, that is, the time granularity. Basically, the agent simulator 200 can adjust the time granularity. However, the adjustment range of the time granularity is limited depending on the type of agent. For example, if the agent is a robot, the robot is required to perform precise movements, so it is difficult to simulate when the time granularity exceeds the level of 100msec. If the agent is a pedestrian, even a time granularity of 1sec is sufficient, but even so, the time granularity cannot be increased excessively. Therefore, in step S112, it is determined whether the time granularity can be adjusted based on the type of agent and the current time granularity.

[0119] If the agent simulator 200 is capable of adjusting the time granularity, the time granularity is expanded in step S114. For example, the value obtained by multiplying the current time granularity by a predetermined expansion factor is set as the new time granularity. The expansion factor can be a fixed value (e.g., 2) or a variable that decreases with each expansion. In addition, the expansion factor can be a different value for each type of agent. Then, in step S116, the time granularity expanded in step S114 is sent to the simulation commander 320 along with the simulation control message "Time Granularity Expanded." The simulation control message "Time Granularity Expanded" is a simulation control message used to notify the simulation commander 320 that the time granularity has been expanded. If the agent simulator 200 cannot adjust the time granularity, steps S114 and S116 are skipped.

[0120] Next, in step S118, a determination is made as to whether the value of the fatal delay state counter CountFD is greater than a count threshold ThNfd. The count threshold ThNfd is used to determine whether the fatal delay state of the agent simulator 200 has stabilized. The count threshold ThNfd can be set to different values ​​depending on whether the agent simulator 200 can adjust the time granularity. For example, the count threshold ThNfd set for an agent simulator that can adjust the time granularity can be greater than the count threshold ThNfd set for an agent simulator that cannot adjust the time granularity. As a specific example, the former can be set to 5 times, while the latter can be set to 3 times.

[0121] If the fatal delay state counter is greater than the number threshold ThNfd, a simulation control message "Disengage" is sent to the simulation leader 320 in step S120. The simulation control message "Disengage" is a simulation control message used to notify the simulation leader 320 that the agent simulator 200 has disengaged from the simulation. The agent simulator that has sent the simulation control message "Disengage" disengages from the simulation. If the fatal delay state counter is less than the number threshold ThNfd, step S120 is skipped.

[0122] In step S122, a simulation control message "Delay Detection" is sent to simulation leader 320. This message is used to inform simulation leader 320 which of the proxy simulator 200 and the other proxy simulators is in a delayed state. Even if the time granularity has been adjusted in step S114, the simulation control message "Delay Detection" is always sent once. That is, before the proxy simulator 200 exits the simulation, either the simulation control message "Normal Status" or the simulation control message "Delay Detection" is always sent to simulation leader 320.

[0123] 1-3-3. Processing in the analog controller for analog speed control

[0124] Next, the processing in the simulation commander 320 for simulating speed control will be described. Figure 9 This is a flowchart showing a routine executed by simulation commander 320 for simulation speed control. Specifically, the flowchart shows the process of adjusting the simulation speed of proxy simulator 200 by simulation commander 320. Simulation commander 320 repeatedly executes the routine shown in the flowchart at a fixed cycle.

[0125] First, in step S202, the simulation leader 320 receives simulation control messages from all agent simulators 200. In the flowchart, the agent simulators are referred to as ASs. In the flowchart, the messages refer to simulation control messages.

[0126] In step S204, it is determined whether the contents of all simulation control messages obtained in step S202 indicate "normal status." If all simulation control messages obtained from all agent simulators 200 indicate "normal status," no agent simulator 200 is experiencing a delay. In this case, the remaining time rate is obtained from all agent simulators 200 along with the simulation control messages.

[0127] If the result of the determination in step S204 is positive, the minimum value RTR_min of the remaining time rate is calculated in step S206. The minimum value of the remaining time rate is the smallest value among all the remaining time rates acquired from all the agent simulators 200.

[0128] Next, in step S208, a determination is made as to whether the minimum value of the remaining time rate, RTR_min, is greater than the maximum allowable value of the remaining time rate, RTRA_max (a first threshold value). An allowable range corresponding to the ideal simulation speed is set for the remaining time rate. If the remaining time rate exceeds the maximum value of the allowable range, this indicates that excess time has occurred in the calculations of the agent simulator 200. In other words, there is room for increasing the simulation speed.

[0129] If the minimum value RTR_min of the remaining time rate is greater than the maximum allowable value RTRA_max, in step S210, the value of the acceleration-capable state counter CountAP is incremented by 1. The acceleration-capable state counter is initially set to zero and is reset when the processing of step S214 described later is executed or when the determination result of step S208 is negative.

[0130] Next, in step S212, it is determined whether the value of the acceleration-capable state counter CountAP is greater than the acceleration determination threshold ThNap. The acceleration determination threshold ThNap is a threshold used to determine whether the acceleration-capable state has continued for a certain period of time. The acceleration determination threshold ThNap can also be set to a fixed value (for example, 3).

[0131] If the acceleration-capable state counter exceeds the acceleration determination threshold ThNap, in step S214, a simulation control message "Accelerate" and a new speed ratio are sent to the full-agent simulator 200. The new speed ratio sent here refers to the ratio of the flow of time in the virtual world 2 to the flow of time in the real world after acceleration. The simulation control message "Accelerate" instructs each agent simulator 200 to accelerate, and the new speed ratio sent simultaneously is the indicated value. Alternatively, the new speed ratio can be increased significantly as the minimum value of the remaining time rate calculated in step S206 increases. This allows for greater margin in the remaining time rate, allowing for a greater acceleration of the simulation speed.

[0132] On the other hand, if the acceleration possible state counter is below the acceleration determination threshold ThNap, in step S218, a simulation control message "no acceleration / deceleration" is sent to the full agent simulator 200. The simulation control message "no acceleration / deceleration" is an instruction to maintain the current speed ratio for each agent simulator 200.

[0133] If the result of the determination in step S208 indicates that the minimum remaining time rate value RTR_min is less than the maximum allowable value RTRA_max, then in step S216, a determination is made as to whether the minimum remaining time rate value RTR_min is less than the minimum allowable value RTRA_min (a second threshold value) of the remaining time rate. If the remaining time rate is less than the minimum value within the allowable range of the remaining time rate, this means that there is no room for calculation time in the agent simulator 200. In other words, the simulation speed should be reduced to avoid delays.

[0134] If the minimum remaining time rate (RTR_min) is less than the maximum allowable value (RTRA_max), a simulation control message "Slow Down" and a new speed ratio are sent to the full-agent simulator 200 in step S228. The new speed ratio sent here refers to the speed ratio at which the flow of time in the virtual world 2 is decelerated relative to the flow of time in the real world. The simulation control message "Slow Down" instructs each agent simulator 200 to decelerate, and the new speed ratio sent simultaneously is the indicated value. Alternatively, the new speed ratio may be reduced significantly as the minimum remaining time rate calculated in step S206 approaches zero. This allows for a more significant reduction in the simulation speed, as the remaining time rate becomes less tolerant.

[0135] On the other hand, when the minimum value RTR_min of the remaining time rate is equal to or greater than the maximum allowable value RTRA_max, a simulation control message “no acceleration / deceleration” is transmitted to each agent simulator 200 in step S218 .

[0136] If the result of step S204 is negative, that is, if the content of at least one simulation control message is not "normal state", step S220 is performed. In step S220, it is determined whether the simulation control message "time granularity expansion" has been received from any agent simulator 200.

[0137] If the result of step S220 is affirmative, a simulation control message "Proxy Simulator Parameter Change" and accompanying information are sent to all proxy simulators 200 in step S222. The accompanying information includes the number of proxy simulators for which the time granularity has been increased, the ID of each proxy simulator for which the time granularity has been increased, and the new time granularity. In other words, in step S222, the simulation control message is sent to inform each proxy simulator 200 of information regarding the time granularity adjustment. If the result of step S220 is negative, step S222 is skipped.

[0138] Next, in step S224, it is determined whether a simulation control message "Leave" is received from any agent simulator 200. That is, the simulation control message "Leave" is used to detect the departure determined by the agent simulator 200 itself.

[0139] If the result of step S224 is affirmative, a simulation control message "Proxy Simulator Detachment" and accompanying information are sent to each proxy simulator 200 in step S226. This accompanying information includes the number of proxy simulators that have departed from the simulation and the ID of each departing proxy simulator. In other words, in step S226, the simulation control message is sent to notify the agent simulator 200 of its departure. If the result of step S224 is negative, step S226 is skipped. Then, the process of step S228 is executed.

[0140] In the above routine, the decision to exit from the simulation is made by the agent simulator 200 itself. In parallel with this, the simulation leader 320 also makes a decision to exit the agent simulator 200 from the simulation. Figure 10 This flowchart shows the routine executed by simulation leader 320 to issue a withdrawal instruction to agent simulator 200. Specifically, the flowchart shows the process by which simulation leader 320 determines to instruct agent simulator 200 to withdraw from simulation. Simulation leader 320 repeatedly executes the routine shown in the flowchart at a fixed interval.

[0141] First, in step S302, it is determined whether an alarm message has been received from the mobile message dispatcher 310. The mobile message dispatcher is referred to as MMD in the flowchart. Each agent simulator 200 sends mobile messages to the mobile message dispatcher 310 at intervals corresponding to the agent's time granularity. If a delay exceeding a certain threshold is detected in the reception of a mobile message, the mobile message dispatcher 310 transmits alarm information related to the agent simulator 200 to the simulation commander 320.

[0142] Furthermore, in step S302, the full agent simulator 200 determines whether a simulation control message has been received from the agent simulator 200. The messages in the flowchart represent simulation control messages. If no alarm information has been received from the mobile message dispatcher 310 and a simulation control message has been received from the agent simulator 200, the subsequent processing is skipped.

[0143] If an alarm message is received from the mobile message dispatcher 310, or if no simulation control message is received from the agent simulator 200, the process proceeds to step S304. In step S304, for the agent simulator 200 corresponding to the affirmative determination in step S302, the value of the separation determination counter CountDC set for each agent simulator 200 is decremented by 1. The initial value of the separation determination counter is set to the maximum allowable number of times (e.g., 3).

[0144] In step S306, a determination is made as to whether the value of each of the separation determination counters has fallen below zero. The processing of the subsequent step S308 is skipped until the value of the separation determination counter has fallen below zero. If the value of the separation determination counter has fallen below zero, in step S308, the agent simulator 200 whose separation determination counter has fallen below zero is placed in a separation indication waiting state.

[0145] Next, in step S310, a list of agents 200 waiting for a withdrawal instruction is created. Then, in step S312, a simulation control message "Agent Simulator Withdrawal" and accompanying information are sent to all agent simulators 200. The accompanying information sent includes the number of agent simulators withdrawing from the simulation and the ID of each withdrawing agent simulator. The agent simulators included in the list receive the simulation control message "Agent Simulator Withdrawal" and withdraw from the simulation.

[0146] 1-3-4. Processing for resuming simulation after interruption

[0147] As described above, in the MAS system 100, proxy simulators 200 that are in a delayed state are removed from the simulation by their own decision or by the simulation commander 320. This prevents proxy simulators 200 in a delayed state from becoming the speed limit when the simulation speed is increased. However, as the number of proxy simulators 200 removed from the simulation increases, the simulation becomes increasingly difficult to complete.

[0148] Therefore, the simulation leader 320 determines whether the number of agent simulators 200 that have exited the simulation exceeds a predetermined threshold. If the number of exiting agents exceeds the threshold for a predetermined number of times or more, the simulation leader 320 sends a simulation control message "Interrupt" to all agent simulators 200. The simulation control message "Interrupt" instructs each agent simulator 200 to interrupt the simulation.

[0149] After the simulation is interrupted, the simulation director 320 returns the time of the simulation to the past and starts the simulation again. Figure 11 This is a sequence diagram showing the flow of determining whether to return to simulation and restarting it by the simulation leader 320. Although three agent simulators 200 appear in the sequence diagram, only the processing executed by one agent simulator 200 is shown representatively.

[0150] When the simulation commander 320 sends a simulation control message "Abort" to the agent simulators 200, each agent simulator 200 terminates the simulation (step S902). Next, each agent simulator 200 searches the simulation data log for the last time at which the remaining time remained positive (step S904). The last time found is the last time at which the simulation can be restarted. Each agent simulator 200 sends a simulation control message "Restartable Time" to the simulation commander 320, including the last time found as the restartable time.

[0151] The simulation leader 320 confirms receipt of simulation control messages ("resumable time" or "possible") from a number of proxy simulators 200 exceeding a threshold ratio (step S802). The simulation leader 320 calculates the latest of the received possible restart times and sets it as the simulation restart time (step S804). The simulation leader 320 transmits the restart time along with the simulation control message "resume wait" to the proxy simulators 200 that received the simulation control message in step S802.

[0152] Each agent simulator 200 reads the state at the designated restart time from the data log and resets the state of the agent simulator 200 (step S906). When the simulation restart preparation is complete, the agent simulator 200 immediately sends a simulation control message "resume ready" to the simulation director 320.

[0153] The simulation leader 320 confirms receipt of the simulation control message "Ready to Restart" from all the proxy simulators 200 that received the simulation control message in step S802 (step S806). The simulation leader 320 sends the simulation control message "Restart" to the proxy simulators 200 that received the simulation control message in step S802.

[0154] The agent simulator 200 that has received the simulation control message "resume" resumes the simulation from the state reset in step S906 (step S908).

[0155] 2. The overall structure of the MAS system and the flow of information

[0156] use Figure 12 , which illustrates the overall structure and information flow of the MAS system 100 capable of executing the above-described simulation speed adjustment. Figure 12 As shown, the MAS system 100 includes multiple agent simulators 200, a central controller 300, and multiple backend servers 400 for service systems. These are distributed across multiple computers, as will be described in detail later. In other words, the MAS system 100 is based on parallel distributed processing using multiple computers.

[0157] The central controller 300 includes, as its functions, a mobile message dispatcher 310 and a simulation director 320. The central controller 300 is application software installed on a computer. The mobile message dispatcher 310 and simulation director 320 are programs that constitute the application software. While the central controller 300 can share the same computer hardware with one or more agent simulators 200, it is preferable to use a dedicated computer.

[0158] Mobile message dispatcher 310 relays the transmission and reception of mobile messages between agent simulators 200. The flow of information between agent simulators 200 and mobile message dispatcher 310, indicated by a solid line, represents the flow of mobile messages. Mobile message dispatcher 310 assumes the mobile message exchange function previously described by central controller 300. Mobile message dispatcher 310 communicates with all agent simulators 200 that comprise MAS system 100.

[0159] Simulation leader 320 exchanges simulation control messages with agent simulators 200. The flow of information between agent simulators 200 and simulation leader 320, indicated by a dotted line, represents the flow of simulation control messages. Unlike the exchange of mobility messages between multiple agent simulators 200 via mobility message dispatcher 310, simulation control messages are exchanged individually between simulation leader 320 and each agent simulator 200.

[0160] Backend server 400 is the same backend server actually used in the real-world service system. By bringing the real-world backend server 400 into the virtual world, the services provided by the service system can be simulated with high precision. Examples of services simulated by MAS system 100 include mobility services such as on-demand buses and scheduled buses using autonomous vehicles, and logistics services using autonomous mobile robots to deliver goods. Furthermore, services simulated by MAS system 100 are, for example, services that users can access by operating service applications on their user terminals.

[0161] The MAS system 100 includes multiple backend servers 400 for different service systems, enabling simultaneous simulation of multiple types of services in the virtual world 2. Service simulation is performed through the exchange of service messages between the backend servers 400 and the agent simulator 200. The flow of information between the agent simulator 200 and the backend servers 400, indicated by dotted lines, represents the flow of service messages. Each backend server 400 exchanges service messages with the agent simulator 200 related to the provision of services.

[0162] The content of the exchanged service messages varies depending on the type of agent for which agent simulator 200 is responsible. For example, if the agent is a user (pedestrian) utilizing a service, backend server 400 receives a service message containing service utilization information from agent simulator 200 and transmits a service message containing service provision status information to agent simulator 200. Service utilization information refers to information regarding the current status and future plans of a user's use of the service system, including current usage status and input information from application operations. Service provision status information refers to information regarding the user's status within the service system and is provided by the service application on the user's terminal.

[0163] In the case where the agent is an autonomous robot or autonomous vehicle used to provide services, the backend server 400 receives a service message including action status information from the agent simulator 200 and sends a service message including action instruction information to the agent simulator 200. Action status information refers to information related to the current state and future plans of the autonomous robot or autonomous vehicle. Information related to the current state includes, for example, the current state of mounted sensors, measurement data, the current state of mounted actuators, and current states related to action decisions. Information related to future plans includes, for example, future times, the current state of actuators, and a list of current states related to action decisions. Action instruction information includes all or part of a future plan for providing services using the autonomous robot or autonomous vehicle. For example, the target location and path to which the autonomous robot or autonomous vehicle should move are included in the action instruction information.

[0164] Among the agents existing in virtual world 2 are stationary objects such as roadside sensors including cameras or automatic doors. For example, if the agent is a fixed camera, backend server 400 receives a service message from agent simulator 200 containing image information from the fixed camera required for calculating the position of the autonomous robot. Alternatively, if the agent is an automatic door, backend server 400 transmits a service message to agent simulator 200 containing an instruction to open the door for passage by the autonomous robot.

[0165] Backend server 400 also exchanges service messages with other backend servers 400 according to various protocols. The flow of information between backend servers 400, represented by dotted lines, represents the flow of service messages. The service messages exchanged at this time include, for example, information about user usage status of each service and the status of service provision. By exchanging service messages between multiple backend servers 400, services provided in the virtual world 2 can be coordinated with each other.

[0166] An example of the collaboration of multiple services is the collaboration between an on-demand bus service and a logistics service where a master robot transports goods from a bus stop to a user's home on their behalf. With the on-demand bus service, users can disembark from the bus at their desired location at a desired time. By collaborating with the on-demand bus service and the logistics service, an autonomous robot can arrive at the disembarkation location before the user arrives and wait for the user there. Furthermore, if the bus is delayed due to congestion or other factors, or if the user is late boarding the bus, service messages exchanged between backend servers 400 can align the autonomous robot's arrival time with the user's arrival time.

[0167] However, there are also cases where the backend servers actually used in real-world service systems cannot adjust their processing speed. When using such backend servers to provide time-dependent services in the virtual world 2, changing the speed ratio of time in the virtual world 2 to time in the real world makes it impossible to simulate the services provided by the service system. Therefore, when simulating by changing the speed ratio, it is preferable that the services provided in the virtual world 2 be timeless.

[0168] Agent simulators 200 come in multiple types depending on the type of agent they are responsible for. For example, there are agent simulators 201 for pedestrian agents, agent simulators 202 for autonomous robots / vehicles, agent simulators 203 for VR pedestrian agents, and agent simulators 204 for roadside sensor agents. Hereinafter, agent simulator 200 is a general term for these multiple types of agent simulators 201, 202, 203, and 204.

[0169] The agent simulator 200 includes, as its functions, a transmission and reception controller 210, a 3D physics engine 220, a service system client simulator 230, and a simulator core 240. The agent simulator 200 is application software installed on a computer. The transmission and reception controller 210, 3D physics engine 220, service system client simulator 230, and simulator core 240 are programs that constitute the application software. These functions differ between the agent simulators 201, 202, 203, and 204. Here, we will describe the functions that are generally common to the agent simulators 201, 202, 203, and 204. The details of the functions of each agent simulator 201, 202, 203, and 204 will be described later.

[0170] The send / receive controller 210 serves as an interface between the proxy simulator 200 and other programs. The send / receive controller 210 receives mobile messages from the mobile message dispatcher 310 and sends mobile messages to the mobile message dispatcher 310. However, in the proxy simulator 204, only mobile messages are received. The send / receive controller 210 receives simulation control messages from the simulation director 320 and sends simulation control messages to the simulation director 320. Furthermore, the send / receive controller 210 receives service messages from the backend server 400 and sends service messages to the backend server 400. However, in the proxy simulator 204, only service messages are sent.

[0171] The 3D physics engine 220 infers the current state of surrounding agents in three-dimensional space based on movement messages received from other agent simulators 200. The 3D physics engine 220 infers the current state based on the past states of surrounding agents. Based on the current state of surrounding agents, the 3D physics engine 220 generates surrounding information obtained through observation by its own agent. Furthermore, the 3D physics engine 220 updates the state of its own agent in three-dimensional space based on simulation results generated by the simulator core 240, described later, and generates movement messages indicating its own state. However, in the agent simulator 204, since the responsible agent is immobile, no state updates or movement message generation are performed on its own agent.

[0172] The service system client simulator 230 simulates the behavior of the agent as a client of the service system associated with the backend server 400. Service messages received by the transmission and reception controller 210 are input to the service system client simulator 230. The service messages generated by the service system client simulator 230 are then transmitted from the transmission and reception controller 210. However, the agent simulator 204 only generates service messages.

[0173] Simulator core 240 simulates the state of the agent in the next time step. The time interval between time steps for calculating the state of the agent is the aforementioned time granularity. The content of the simulation in simulator core 240 varies for each type of agent simulator 200. Furthermore, since the responsible agent does not move and simulation of the agent's state is not necessary, agent simulator 204 does not include simulator core 240.

[0174] 3. Detailed structure and information flow of the agent simulator

[0175] Next, use Figures 13 to 16 , describes the detailed structure and information flow of various types of agent simulators 201, 202, 203, and 204 that constitute the MAS system 100. Figures 13 to 16 In the diagram, the flow of information between blocks shown by solid lines represents the flow of mobile messages. Furthermore, the flow of information between blocks shown by dotted lines represents the flow of service messages. Furthermore, the flow of information between blocks shown by dashed lines represents the flow of analog control messages.

[0176] 3-1. Agent Simulator for Pedestrian Agents

[0177] Figure 13 This is a block diagram showing the structure and information flow of the agent simulator 201 for pedestrian proxy. The overall structure and details of each component of the agent simulator 201 for pedestrian proxy, as well as the information flow in the agent simulator 201, will be described below.

[0178] 3-1-1. Overall structure of the agent simulator for pedestrian agents

[0179] The agent simulator 201 includes, as its functions, a transmission and reception controller 211, a 3D physics engine 221, a service system client simulator 231, and a simulator core 241. These functions are conceptually encompassed by the transmission and reception controller 210, the 3D physics engine 220, the service system client simulator 230, and the simulator core 240, respectively.

[0180] The transmission and reception controller 211 includes a mobile message receiving unit 211a, a service message receiving unit 211b, and a control message receiving unit 211c for receiving various messages. Furthermore, the transmission and reception controller 211 includes a mobile message sending unit 211d, a service message sending unit 211e, and a control message sending unit 211f for sending various messages. Furthermore, the transmission and reception controller 211 includes a remaining time rate calculation unit 211g and a simulation action control unit 211h. Each of the components 211a to 211h that comprise the transmission and reception controller 211 is a program or a portion of a program. The descriptions within the blocks are examples of representative functions of each component and do not necessarily correspond to the names of the components.

[0181] The 3D physics engine 221 includes, as its functions, a surrounding agent state update unit 221a, a visual information generation unit 221b, and a local agent state update unit 221c. Each component 221a, 221b, and 221c that constitutes the 3D physics engine 221 is a program or a portion of a program. The descriptions within the blocks are examples of representative functions of each component and do not necessarily correspond to the names of the components.

[0182] The service system client simulator 231 includes a service provision status information processing unit 231a and a service usage information generation unit 231b as its functions. Each component 231a and 231b that constitutes the service system client simulator 231 is a program or a portion of a program. The descriptions within the blocks are examples of representative functions of each component and do not necessarily correspond to the names of the components.

[0183] The simulator core 241 includes, as its functions, an overall movement policy determination unit 241a, an action determination unit 241b, a next time step state calculation unit 241d, a service utilization action determination unit 241e, and a speed adjustment unit 241g. Each component 241a, 241b, 241d, 241f, and 241g that constitutes the simulator core 241 is a program or a portion of a program. The descriptions within the blocks are examples of representative functions of each component and do not necessarily correspond to the names of the components.

[0184] 3-1-2. Details of the sender and receiver controllers

[0185] In the transmission and reception controller 211, the mobile message receiving unit 211a receives a mobile message from the mobile message scheduler 310. The mobile message receiving unit 211a outputs the received mobile message to the surrounding agent state updating unit 221a of the 3D physics engine 221. The mobile message receiving unit 211a also outputs information including the time when the mobile message was received to the remaining time rate calculation unit 211g.

[0186] The service message receiving unit 211b receives a service message from the backend server 400. The service message receiving unit 211b outputs the received service message to the service provision state information processing unit 231a of the service system client simulator 231.

[0187] The control message receiving unit 211c receives the simulation control message from the simulation director 320. The control message receiving unit 211c outputs the received simulation control message to the simulation operation control unit 211h.

[0188] The movement message sending unit 211d obtains a movement message including the current state of the agent from the agent state updating unit 221c of the 3D physics engine 221. The movement message sending unit 211d transmits the obtained movement message to the movement message scheduler 310. Furthermore, the movement message sending unit 211d transmits information including the time at which the movement message was sent to the remaining time rate calculation unit 211g.

[0189] The service message transmitting unit 211 e acquires a service message including service usage information from the service usage information generating unit 231 b of the service system client simulator 231. The service message transmitting unit 211 e transmits the acquired service message to the backend server 400.

[0190] The control message transmitter 211f receives a simulation control message containing information about the simulated speed status from the remaining time rate calculator 211g. Furthermore, the control message transmitter 211f receives a simulation control message containing the control status of the agent simulator 201 from the simulation motion controller 211h. The control message transmitter 211f transmits the simulation control messages received from the remaining time rate calculator 211g and the simulation motion controller 211h to the simulation commander 320.

[0191] The remaining time rate calculator 211g obtains information including the time the mobile message was received from the mobile message receiver 211a. Furthermore, the remaining time rate calculator 211g obtains information including the time the mobile message was sent from the mobile message transmitter 211d. Furthermore, the remaining time rate calculator 211g obtains the start time for calculating the state update for its own agent from the next time step state calculator 241d of the simulator core 241.

[0192] The remaining time rate calculation unit 211g outputs a simulation control message including the remaining time, remaining time rate, and delay time to the control message transmission unit 211f. The remaining time, remaining time rate, and delay time are information related to the speed of the simulation. Upon receiving the simulation control message including this information, the simulation commander 320 determines the control details to be instructed to the proxy simulator 201. These control details to be instructed to the proxy simulator 201 include, for example, the simulation speed, stopping the simulation, pausing the simulation, and resuming the simulation. The simulation commander 320 creates a simulation control message including the control details to be instructed and transmits it to the proxy simulator 201.

[0193] The simulation action control unit 211h receives a simulation control message from the control message receiving unit 211c. The simulation action control unit 211h controls the simulation action of the agent simulator 201 according to the instructions contained in the simulation control message. For example, if instructed to change the time granularity of the simulation, the simulation action control unit 211h changes the time granularity of the simulation performed by the agent simulator 201 from the initial value to the instructed time granularity. The initial value of the time granularity is stored as a setting in the agent simulator 201. Furthermore, the upper and lower limits of the time granularity are stored in the simulation director 320 for each agent type.

[0194] If the simulation control message indicates simulation speed, the simulation action control unit 211h changes the operating frequency of the 3D physics engine 221 and the simulator core 241 to accelerate or decelerate the simulation speed. For example, the simulation action control unit 211h outputs the indicated simulation speed to the simulator core 241's speed adjustment unit 241g. Furthermore, simulation speed refers to the ratio of the flow of time in the virtual world 2 to the flow of time in the real world. If instructed to stop the simulation, the simulation action control unit 211h stops the simulation using the proxy simulator 201. If instructed to pause the simulation, the simulation is paused; if instructed to resume the simulation, the simulation is resumed. The simulation action control unit 211h outputs a simulation control message including the current control state of the proxy simulator 201 to the control message sending unit 211f.

[0195] 3-1-3. Details of the 3D Physics Engine

[0196] In the 3D physics engine 221, the surrounding agent state update unit 221a receives a movement message from the movement message receiver 211a. The movement message received from the movement message receiver 211a is a movement message sent from another agent simulator via the movement message dispatcher 310. Based on the received movement message, the surrounding agent state update unit 221a estimates the current state of the surrounding agents surrounding the current agent.

[0197] When estimating the current state of a surrounding agent based on its past state, the surrounding agent state update unit 221a uses the past states of the surrounding agent stored in the log. For example, the current state of the surrounding agent can be estimated through linear extrapolation based on the two or more most recent past states of the surrounding agent. If the number of past states of the surrounding agent is one, this single past state can also be estimated as the current state of the surrounding agent. The surrounding agent state update unit 221a outputs the estimated current state of the surrounding agent to the visual information generation unit 221b and updates the log.

[0198] The visual information generation unit 221b obtains the current state of the surrounding agents from the surrounding agent state update unit 221a. Based on the current state of the surrounding agents, the visual information generation unit 221b generates surrounding information observed by its own agent. Since the present agent is a pedestrian, the surrounding information observed is 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 action determination unit 241b, and the service utilization action determination unit 241e of the simulator core 241.

[0199] The agent state update unit 221c obtains the agent state for the next time step simulated by the simulator core 241 from the next time step state calculation unit 241d of the simulator core 241. Based on the simulation results of the simulator core 241, the agent state update unit 221c updates the agent state in three-dimensional space. The agent state update unit 221c outputs a movement message containing the updated agent state to the movement message transmission unit 211d of the transmission and reception controller 211. The agent state included in the movement message includes the position, direction, velocity, and acceleration for the current time step, as well as the position, direction, velocity, and acceleration for the next time step. Furthermore, the agent state update unit 221c outputs information regarding the updated agent state to the service utilization information generation unit 231b of the service system client simulator 231.

[0200] 3-1-4. Details of the service system client simulator

[0201] In the service system client simulator 231, the service provision status information processing unit 231a receives service messages from the service message receiving unit 211b. The service messages received from the service message receiving unit 211b include service provision status information. The service provision status information processing unit 231a processes the service provision status information, obtaining information related to the agent's status as a user of the service system and input items for service applications to the user terminal. Information related to the agent's status as a user is information presented to the user terminal, and input items are information requested for the agent to utilize the service. The service provision status information processing unit 231a outputs the information related to the agent's status as a user and the input items for service applications to the user terminal to the overall movement policy determination unit 241a and service utilization action determination unit 241e of the simulator core 241.

[0202] The service utilization information generation unit 231b obtains the results of the agent's service utilization action decision from the service utilization action determination unit 241e of the simulator core 241. Furthermore, the service utilization information generation unit 231b obtains the agent's state in three-dimensional space from the agent's state update unit 221c of the 3D physics engine 221. Based on this information, the service utilization information generation unit 231b generates service utilization information and updates the agent's service utilization state. The service utilization information generation unit 231b outputs a service message containing the service utilization information to the service message transmission unit 211e of the transmission and reception controller 211.

[0203] 3-1-5. Details of the simulator core

[0204] In the simulator core 241, the overall movement policy determination unit 241a obtains visual information from the visual information generation unit 221b of the 3D physics engine 221. Furthermore, the overall movement policy determination unit 241a obtains information related to the agent's status as a user and input items for the service application to the user terminal from the service provision status information processing unit 231a of the service system client simulator 231. Based on this information, the overall movement policy determination unit 241a determines the overall movement policy of the agent in the virtual world 2. The overall movement policy determination unit 241a outputs the determined overall movement policy to the action determination unit 241b.

[0205] The action decision unit 241b receives the overall movement policy from the overall movement policy decision unit 241a and visual information from the visual information generation unit 221b of the 3D physics engine 221. The action decision unit 241b inputs the overall movement policy and visual information into the movement model 241c to determine the action of the agent. The movement model 241c is a simulation model that models how pedestrians move according to a specific movement policy based on the surrounding conditions reflected by the pedestrian's eyes. The action decision unit 241b outputs the determined action of the agent to the next time step state calculation unit 241d.

[0206] The next-time-step state calculation unit 241d obtains the agent's action determined by the action determination unit 241b. Based on the agent's action, the next-time-step state calculation unit 241d calculates the agent's state for the next time step. The calculated agent state includes the agent's position, direction, velocity, and acceleration for the next time step. The next-time-step state calculation unit 241d outputs the calculated agent state for the next time step to the agent state update unit 221c of the 3D physics engine 221. Furthermore, the next-time-step state calculation unit 241d outputs the start time for calculating the agent's state update to the remaining time rate calculation unit 211g of the transmission / reception controller 211.

[0207] The service utilization action determination unit 241e obtains visual information from the visual information generation unit 221b of the 3D physics engine 221. Furthermore, the service utilization action determination unit 241e obtains information related to the agent's status as a user and input items to the service application on the user's terminal from the service provision status information processing unit 231a of the service system client simulator 231. The service utilization action determination unit 241e inputs this information into the action model 241f to determine the agent's actions as a user of the service system (service utilization action). The action model 241f is a simulation model that models how the user moves based on the surrounding conditions that are reflected in the user's eyes when providing the user with information related to the service and entrusting the input to the service application on the user's terminal. The service utilization action determination unit 241e outputs the determined service utilization action to the service utilization information generation unit 231b.

[0208] The speed adjustment unit 241g obtains the simulation speed from the simulation operation control unit 211h. The simulation speed obtained from the simulation operation control unit 211h is the simulation speed instructed by the simulation commander 320. The speed adjustment unit 241g accelerates or decelerates the simulation speed of the simulator core 241 simulating its own agent in accordance with the instruction from the simulation commander 320.

[0209] 3-2. Agent Simulator for Autonomous Robot / Vehicle Agents

[0210] Figure 14 This is a block diagram illustrating the structure and information flow of agent simulator 202 for autonomous robot / vehicle agents. An autonomous robot / vehicle agent is an agent for an autonomous robot or vehicle that provides services in a service system associated with backend server 400. The following describes the overall structure of agent simulator 202 for autonomous robot / vehicle agents, details of each component, and the information flow within agent simulator 202.

[0211] 3-2-1. Overall structure of the agent simulator for autonomous robot / vehicle agents

[0212] The agent simulator 202 includes, as its functions, a transmission and reception controller 212, a 3D physics engine 222, a service system client simulator 232, and a simulator core 242. These functions are conceptually included in the transmission and reception controller 210, the 3D physics engine 220, the service system client simulator 230, and the simulator core 240, respectively.

[0213] The transmission and reception controller 212 includes a mobile message receiving unit 212a, a service message receiving unit 212b, and a control message receiving unit 212c for receiving various messages. Furthermore, the transmission and reception controller 212 includes a mobile message sending unit 212d, a service message sending unit 212e, and a control message sending unit 212f for sending various messages. Furthermore, the transmission and reception controller 212 includes a remaining time rate calculation unit 212g and a simulation action control unit 212h. Each of the components 212a to 212h that make up the transmission and reception controller 211 is a program or a portion of a program. The descriptions within the blocks are examples of representative functions of each component and do not necessarily correspond to the names of the components.

[0214] The 3D physics engine 222 includes, as its functions, a surrounding agent state update unit 222a, a sensor information generation unit 222b, and a local agent state update unit 222c. Each component 222a, 222b, and 222c that constitutes the 3D physics engine 222 is a program or a portion of a program. The descriptions within the blocks are examples of representative functions of each component and do not necessarily correspond to the names of the components.

[0215] The service system client simulator 232 includes a route planning information receiving unit 232a and an operation status information generating unit 232b as its functions. Each component 232a and 232b that constitutes the service system client simulator 232 is a program or a portion of a program. The descriptions within the blocks are examples of representative functions of each component and do not necessarily correspond to the names of the components.

[0216] The simulator core 242 includes, as its functions, an overall path planning unit 242a, a local path planning unit 242b, an actuator operation variable determination unit 242c, and a next time step state calculation unit 242d. Each component 242a, 242b, 242c, and 242d that constitutes the simulator core 242 is a program or a portion of a program. The descriptions within the blocks are examples of representative functions of each component and do not necessarily correspond to the names of the components.

[0217] 3-2-2. Details of the send and receive controllers

[0218] In the transmission and reception controller 212, the mobile message receiving unit 212a receives the mobile message from the mobile message scheduler 310. The mobile message receiving unit 212a outputs the received mobile message to the surrounding agent state updating unit 222a of the 3D physics engine 222. The mobile message receiving unit 212a also outputs information including the time when the mobile message was received to the remaining time rate calculation unit 212g.

[0219] The service message receiving unit 212b receives a service message from the backend server 400. The service message receiving unit 212b outputs the received service message to the route planning information receiving unit 232a of the service system client simulator 232.

[0220] The control message receiving unit 212c receives the simulation control message from the simulation director 320. The control message receiving unit 212c outputs the received simulation control message to the simulation operation control unit 212h.

[0221] The movement message sending unit 212d obtains a movement message including the current state of the agent from the agent state updating unit 222c of the 3D physics engine 222. The movement message sending unit 212d sends the obtained movement message to the movement message scheduler 310. The movement message sending unit 212d also sends information including the time when the movement message was sent to the remaining time rate calculation unit 212g.

[0222] The service message sending unit 212e obtains a service message including the operation status information from the operation status information generating unit 232b of the service system client simulator 232. The service message sending unit 212e sends the obtained service message to the backend server 400.

[0223] The control message transmitter 212f receives a simulation control message including information related to the simulated speed status from the remaining time rate calculator 212g. Furthermore, the control message transmitter 212f receives a simulation control message including the control status of the agent simulator 202 from the simulation motion controller 212h. The control message transmitter 212f transmits the simulation control messages received from the remaining time rate calculator 212g and the simulation motion controller 212h to the simulation commander 320.

[0224] The remaining time rate calculator 212g obtains information including the time the mobile message was received from the mobile message receiver 212a. Furthermore, the remaining time rate calculator 212g obtains information including the time the mobile message was sent from the mobile message transmitter 212d. Furthermore, the remaining time rate calculator 212g obtains the start time for calculating the state update for its own agent from the next time step state calculator 242d of the simulator core 242.

[0225] Based on the acquired information, the remaining time rate calculation unit 212g calculates the remaining time, remaining time rate, and delay time using the aforementioned equations. The remaining time rate calculation unit 212g outputs a simulation control message including the remaining time, remaining time rate, and delay time to the control message transmission unit 212f. Upon receiving the simulation control message including this information, the simulation commander 320 creates a simulation control message including the control details to be instructed to the proxy simulator 202 and transmits it to the proxy simulator 202.

[0226] The simulation action control unit 212h receives a simulation control message from the control message receiving unit 212c. The simulation action control unit 212h controls the simulation action of the agent simulator 202 according to the instructions contained in the simulation control message. For example, if instructed to change the time granularity of the simulation, the simulation action control unit 212h changes the time granularity of the simulation performed by the agent simulator 202 from the initial value to the instructed time granularity. The initial value of the time granularity is stored as a setting value in the agent simulator 202. Furthermore, the upper and lower limits of the time granularity are stored in the simulation director 320 for each agent type.

[0227] If the simulation control message specifies a simulation speed, the simulation action control unit 212h changes the operating frequency of the 3D physics engine 222 and simulator core 242 in accordance with the specified simulation speed, accelerating or decelerating the computational speed of the proxy simulator 202. If instructed to stop the simulation, the simulation action control unit 212h stops the simulation using the proxy simulator 202. If instructed to pause the simulation, the simulation is paused, and if instructed to resume the simulation, the simulation is resumed. The simulation action control unit 212h outputs a simulation control message containing the current control state of the proxy simulator 202 to the control message transmitter 212f.

[0228] 3-2-3. Details of the 3D Physics Engine

[0229] In the 3D physics engine 222, the surrounding agent state update unit 222a receives a movement message from the movement message receiver 212a. The movement message received from the movement message receiver 212a is a movement message sent from another agent simulator via the movement message dispatcher 310. Based on the received movement message, the surrounding agent state update unit 222a estimates the current state of the surrounding agents surrounding the current agent.

[0230] When estimating the current state of the surrounding agent based on its past state, the surrounding agent state updater 222a uses the past state of the surrounding agent stored in the log. The method for estimating the current state using the past state of the surrounding agent is as described above. The surrounding agent state updater 222a outputs the estimated current state of the surrounding agent to the sensor information generator 222b and updates the log.

[0231] The sensor information generation unit 222b obtains the current state of the surrounding agents from the surrounding agent state update unit 222a. Based on the current state of the surrounding agents, the sensor information generation unit 222b generates surrounding information observed by the agent itself. Since the agent itself is an autonomous robot or vehicle, the observed surrounding information refers to sensor information captured by the autonomous robot or vehicle's sensors. The sensor information generation unit 222b outputs the generated sensor information to the overall path planning unit 242a of the simulator core 242 and the action state information generation unit 232b of the service system client simulator 232.

[0232] The agent state update unit 222c obtains the agent state for the next time step calculated by the simulator core 242 from the next time step state calculation unit 242d of the simulator core 242. The agent state update unit 222c updates the agent state in three-dimensional space based on the calculation results simulated by the simulator core 242. The agent state update unit 222c outputs a movement message containing the updated agent state to the movement message transmission unit 212d of the transmission and reception controller 212. The agent state included in the movement message includes the position, direction, velocity, and acceleration for the current time step, as well as the position, direction, velocity, and acceleration for the next time step. Furthermore, the agent state update unit 222c outputs information regarding the updated agent state to the action state information generation unit 232b of the service system client simulator 232.

[0233] 3-2-4. Details of the service system client simulator

[0234] In the service system client simulator 232, the route planning information receiver 232a receives service messages from the service message receiver 211b. The service messages received from the service message receiver 212b include action instructions for the service system to provide services using the autonomous robot / vehicle and information related to other service systems. The route planning information receiver 232a outputs the action instructions and other service system information to the overall route planning unit 242a of the simulator core 242.

[0235] The action state information generation unit 232b obtains the actuator operation amount for the next time step of the agent from the actuator operation amount determination unit 242c of the simulator core 242. Furthermore, the action state information generation unit 232b obtains sensor information from the sensor information generation unit 222b of the 3D physics engine 222 and obtains the state of the agent in three-dimensional space from the agent state update unit 222c. Based on this information, the action state information generation unit 232b generates action state information indicating the action state of the agent related to the provision of the service. The action state information generation unit 232b outputs a service message including the action state information to the service message transmission unit 212e of the transmission and reception controller 212.

[0236] 3-2-5. Details of the simulator core

[0237] In the simulator core 242, the overall path planning unit 242a obtains sensor information from the sensor information generation unit 222b of the 3D physics engine 222. Furthermore, the overall path planning unit 242a obtains action instruction information and other service system information from the path planning information receiving unit 232a of the service system client simulator 232. Based on this information, the overall path planning unit 242a plans the overall path of the agent in the virtual world 2. The overall path refers to the path from the agent's current location to the target location. Because the information obtained from the sensor information generation unit 222b and the path planning information receiving unit 232a changes, the overall path planning unit 242a re-defines the overall path plan for each time step. The overall path planning unit 242a outputs the determined overall path plan to the local path planning unit 242b.

[0238] The local path planning unit 242b obtains the overall path plan from the overall path planning unit 242a. Based on the overall path plan, the local path planning unit 242b formulates a local path plan. A local path refers to, for example, a path from the current time point to a predetermined time step later, or a path from the current position to a predetermined distance. A local path plan is represented, for example, by a set of locations that the agent should pass through, and the velocity or acceleration at each location. The local path planning unit 242b outputs the determined local path plan to the actuator operation amount determination unit 242c.

[0239] The actuator operation variable determination unit 242c obtains the local path plan from the local path planning unit 242b. Based on the local path plan, the actuator operation variable determination unit 242c determines the actuator operation variable for the agent in the next time step. The actuator referred to here refers to an actuator that controls the direction, speed, and acceleration of the agent. If the agent is an autonomous robot or vehicle that travels on wheels, actuators such as brakes, drives, and steering systems are the objects of operation. The actuator operation variable determination unit 242c outputs the determined actuator operation variable to the next time step state calculation unit 242d and the action state information generation unit 232b of the service system client simulator 232.

[0240] The next-time-step state calculator 242d obtains the actuator operation amount determined by the actuator operation amount determiner 242c. Based on the actuator operation amount, the next-time-step state calculator 242d calculates the agent's state for the next time step. The calculated agent state includes the agent's position, direction, velocity, and acceleration for the next time step. The next-time-step state calculator 242d outputs the calculated agent state for the next time step to the agent state updater 222c of the 3D physics engine 222. Furthermore, the next-time-step state calculator 242d outputs the start time for calculating the agent's state update to the remaining time rate calculator 212g of the transmission / reception controller 212.

[0241] 3-3. Agent Simulator for VR Pedestrian Agents

[0242] Figure 15 This is a block diagram showing the structure and information flow of the agent simulator 203 for VR pedestrian agents. VR pedestrian agents are pedestrian agents used by real people to participate in the virtual world 2 being simulated using a VR (Virtual Reality) system. The following describes the overall structure of the agent simulator 203 for VR pedestrian agents, details of each component, and the flow of information within the agent simulator 203.

[0243] 3-3-1. Overall structure of the agent simulator for VR pedestrian agents

[0244] The agent simulator 203 includes, as its functions, a transmission and reception controller 213, a 3D physics engine 223, a service system client simulator 233, and a simulator core 243. These functions are conceptually included in the transmission and reception controller 210, the 3D physics engine 220, the service system client simulator 230, and the simulator core 240, respectively.

[0245] The transmission and reception controller 213 includes a mobile message receiving unit 213a, a service message receiving unit 213b, and a control message receiving unit 213c for receiving various messages. Furthermore, the transmission and reception controller 213 includes a mobile message sending unit 213d, a service message sending unit 213e, and a control message sending unit 213f for sending various messages. Furthermore, the transmission and reception controller 213 includes a simulation action control unit 213h. Each of the components 213a to 213f and 213h that comprise the transmission and reception controller 213 is a program or a portion of a program. The descriptions within the blocks are examples of representative functions of each component and do not necessarily correspond to the names of the components.

[0246] The 3D physics engine 223 includes, as its functions, a surrounding agent state update unit 223a, a visual information generation unit 223b, and a local agent state update unit 223c. Each component 223a, 223b, and 223c that constitutes the 3D physics engine 223 is a program or a portion of a program. The descriptions within the blocks are examples of representative functions of each component and do not necessarily correspond to the names of the components.

[0247] The service system client simulator 233 includes a service provision status information processing unit 233a and a service usage information generation unit 233b as its functions. Each component 233a and 233b that constitutes the service system client simulator 231 is a program or a portion of a program. The descriptions within the blocks are examples of representative functions of each component and do not necessarily correspond to the names of the components.

[0248] The simulator core 243 includes, as its functions, a recognition judgment information presentation unit 243a, a movement operation accepting unit 243b, a next time step state calculation unit 243c, and an application operation accepting unit 243d. Each component 243a, 243b, 243c, and 243d that constitutes the simulator core 243 is a program or a portion of a program. The descriptions within the blocks are examples of representative functions of each component and do not necessarily correspond to the names of the components.

[0249] 3-3-2. Details of the send and receive controller

[0250] In the transmission and reception controller 213 , the mobile message receiving unit 213 a receives a mobile message from the mobile message scheduler 310 . The mobile message receiving unit 213 a outputs the received mobile message to the surrounding agent state updating unit 223 a of the 3D physics engine 223 .

[0251] The service message receiving unit 213b receives a service message from the backend server 400. The service message receiving unit 213b outputs the received service message to the service provision state information processing unit 233a of the service system client simulator 233.

[0252] The control message receiving unit 213c receives the simulation control message from the simulation director 320. The control message receiving unit 213c outputs the received simulation control message to the simulation operation control unit 213h.

[0253] The move message sending unit 213d obtains a move 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 sending unit 213d sends the obtained move message to the move message dispatcher 310.

[0254] The service message sending unit 213e acquires a service message including service usage information from the service usage information generating unit 233b of the service system client simulator 233. The service message sending unit 213e transmits the acquired service message to the backend server 400.

[0255] The control message transmitter 213f obtains from the simulation operation control unit 213h a simulation control message including the control state of the proxy simulator 203. The control message transmitter 213f transmits to the simulation commander 320 the simulation control message obtained from the simulation operation control unit 213h.

[0256] The simulation action control unit 213h receives a simulation control message from the control message receiving unit 213c. The simulation action control unit 213h controls the simulation actions of the agent simulator 203 according to the instructions contained in the simulation control message. If the conditions for the VR pedestrian agent to join the virtual world 2 are not met, the simulation commander 320 instructs the agent simulator 203 to stop the simulation.

[0257] The agent simulators 201 and 202, as well as the agent simulator 204 described later, can change the simulation speed as needed. However, if the simulation speed is changed, actual participants participating in the virtual world 2 via VR pedestrian agents may experience a strong sense of discomfort due to the different flow of time from the real world. Therefore, in the MAS system 100, VR pedestrian agents are permitted to participate in the virtual world 2, conditional on the simulation being performed in real time. If the simulation speed accelerates or decelerates compared to the flow of time in the real world, the simulation commander 320 stops the simulation using the agent simulator 203. The simulation action control unit 213h outputs a simulation control message including the current control state of the agent simulator 203 to the control message transmission unit 213f.

[0258] 3-3-3. Details of the 3D Physics Engine

[0259] In the 3D physics engine 223, the surrounding agent state update unit 223a receives a movement message from the movement message receiver 213a. The movement message received from the movement message receiver 213a is a movement message sent from another agent simulator via the movement message dispatcher 310. Based on the received movement message, the surrounding agent state update unit 223a estimates the current state of the surrounding agents surrounding the current agent.

[0260] When estimating the current state of the surrounding agents based on their past states, the surrounding agent state update unit 223a uses the past states of the surrounding agents stored in the log. The method for estimating the current state using the past states of the surrounding agents is as described above. 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.

[0261] The visual information generation unit 223b obtains the current state of the surrounding agents from the surrounding agent state update unit 223a. Based on the current state of the surrounding agents, the visual information generation unit 223b generates surrounding information observed by its own agent. Since the own agent is a pedestrian, the surrounding information observed refers to visual information captured by the pedestrian's eyes. The visual information generation unit 223b outputs the generated visual information to the cognitive judgment information presentation unit 243a and the movement operation reception unit 243b of the simulator core 243.

[0262] The agent state update unit 223c obtains the agent state for the next time step calculated by the simulator core 243 from the next time step state calculation unit 243c of the simulator core 243. The agent state update unit 223c updates the agent state in three-dimensional space based on the simulation results performed by the simulator core 243. The agent state update unit 223c outputs a movement message containing the updated agent state to the movement message transmission unit 213d of the transmission and reception controller 213. The agent state included in the movement message includes the position, direction, velocity, and acceleration for the current time step, as well as the position, direction, velocity, and acceleration for the next time step. Furthermore, the agent state update unit 223c outputs information regarding the updated agent state to the service utilization information generation unit 233b of the service system client simulator 233.

[0263] 3-3-4. Details of the service system client simulator

[0264] In the service system client simulator 233, the service provision status information processing unit 233a receives service messages from the service message receiving unit 213b. The service messages received from the service message receiving unit 213b include service provision status information. The service provision status information processing unit 233a processes the service provision status information, obtaining information related to the agent's status as a user of the service system and input items for service applications to the user terminal. Information related to the agent's status as a user is information presented to the user terminal, and input items are information requested for the agent to use the service. The service provision status information processing unit 233a outputs the information related to the agent's status as a user and the input items for service applications to the user terminal to the cognitive judgment information presenting unit 243a and the application operation accepting unit 243d of the simulator core 243.

[0265] The service utilization information generation unit 233b obtains, from the application operation reception unit 243d of the simulator core 243, information about VR service application operations performed by actual participants participating in the virtual world 2 via the VR pedestrian agent. Furthermore, the service utilization information generation unit 233b obtains the agent's state in three-dimensional space from the agent state update unit 223c of the 3D physics engine 223. Based on this information, the service utilization information generation unit 233b generates service utilization information and updates the agent's service utilization state. The service utilization information generation unit 233b outputs a service message containing the service utilization information to the service message transmission unit 213e of the transmission and reception controller 213.

[0266] 3-3-5. Details of the simulator core

[0267] In the simulator core 243, the cognitive judgment information presentation unit 243a obtains visual information from the visual information generation unit 223b of the 3D physics engine 223. Furthermore, the cognitive judgment information presentation unit 243a obtains information related to the agent's user status and input items for the service application to the user terminal from the service provision status information processing unit 233a of the service system client simulator 231. This acquired information is used for cognitive judgment by real participants participating in the virtual world 2 via the VR pedestrian agent. The cognitive judgment information presentation unit 243a presents this cognitive judgment information to real participants via the VR system.

[0268] The movement operation accepting unit 243b obtains visual information from the visual information generating unit 223b of the 3D physics engine 223. The movement operation accepting unit 243b then accepts VR movement operations performed by the actual participants while presenting the visual information to them via the VR system. The movement operation accepting unit 243b outputs the accepted VR movement operations performed by the actual participants to the next time step state calculating unit 243d.

[0269] The next time step state calculation unit 243d receives VR movement operations performed by the actual participant from the movement operation reception unit 243b. Based on the VR movement operations performed by the actual participant, the next time step state calculation unit 243d calculates the agent's state for the next time step. The calculated agent state includes the agent's position, direction, velocity, and acceleration for the next time step. The next time step state calculation unit 243d outputs the calculated agent state for the next time step to the agent state update unit 223c of the 3D physics engine 223.

[0270] The application operation accepting unit 243d obtains visual information from the visual information generating unit 223b of the 3D physics engine 223. Furthermore, the application operation accepting unit 243d obtains information related to the agent's status as a user and input items for the service application to the user terminal from the service provision status information processing unit 233a of the service system client simulator 233. The application operation accepting unit 243d accepts VR-based service application operations performed by the actual participants, while providing this information to the VR system prompts. The application operation accepting unit 243d outputs the accepted VR-based service application operations performed by the actual participants to the service utilization information generating unit 233b of the service system client simulator 233.

[0271] 3-4. Agent Simulator for Roadside Sensor Agents

[0272] Figure 16 This is a block diagram illustrating the structure and information flow of the agent simulator 204 for roadside sensor agents. Roadside sensor agents are agents of roadside sensors used to obtain positional information of autonomous robot / vehicle agents in the virtual world 2. The positional information obtained by the roadside sensor agents is used by service systems associated with the backend server 400. The following describes the overall structure of the agent simulator 204 for roadside sensor agents, details of each component, and the information flow within the agent simulator 204.

[0273] 3-4-1. Overall structure of the agent simulator for roadside sensor agents

[0274] Proxy simulator 204 includes, as its functions, a transmission / reception controller 214, a 3D physics engine 224, and a service system client simulator 234. These functions are conceptually encompassed by transmission / reception controller 210, 3D physics engine 220, and simulator core 240, respectively. Unlike other proxy simulators, proxy simulator 204 does not include a simulator core.

[0275] The transmission / reception controller 214 includes a mobile message receiving unit 214a and a control message receiving unit 214b as functions for receiving various messages. Furthermore, the transmission / reception controller 212 includes a service message sending unit 214e and a control message sending unit 214f ​​as functions for sending various messages. Furthermore, the transmission / reception controller 212 includes a remaining time rate calculation unit 214g and a simulation action control unit 214h. Each of the components 212a, 214c, 214e, 214f, 214g, and 214h that comprise the transmission / reception controller 214 is a program or a portion of a program.

[0276] The 3D physics engine 224 includes a surrounding agent state update unit 224a and a sensor information generation unit 224b as its functions. Each of the components 224a and 224b constituting the 3D physics engine 224 is a program or a part of a program.

[0277] The service system client simulator 234 includes a service message generation unit 234a as its function. The service message generation unit 234a constituting the service system client simulator 234 is a program or a part of a program.

[0278] 3-4-2. Details of the send and receive controllers

[0279] In the transmission and reception controller 214, the mobile message receiving unit 214a receives the mobile message from the mobile message scheduler 310. The mobile message receiving unit 214a outputs the received mobile message to the surrounding agent state updating unit 224a of the 3D physics engine 224. The mobile message receiving unit 214a also outputs information including the time when the mobile message was received to the remaining time rate calculation unit 214g.

[0280] The control message receiving unit 214c receives the simulation control message from the simulation director 320. The control message receiving unit 214c outputs the received simulation control message to the simulation operation control unit 214h.

[0281] The service message sending unit 214e acquires the service message including the sensor information from the service message generating unit 234a of the service system client simulator 234. The service message sending unit 214e transmits the acquired service message to the backend server 400.

[0282] The control message transmitter 214f ​​receives a simulation control message including information related to the simulated speed status from the remaining time rate calculator 214g. Furthermore, the control message transmitter 214f ​​receives a simulation control message including the control status of the agent simulator 202 from the simulation motion controller 214h. The control message transmitter 214f ​​transmits the simulation control messages received from the remaining time rate calculator 214g and the simulation motion controller 214h to the simulation commander 320.

[0283] The remaining time rate calculator 214g obtains information including the mobile message reception time from the mobile message receiver 214a. Furthermore, the remaining time rate calculator 214g obtains information including the service message transmission completion time from the service message transmitter 214e. Based on the obtained information, the remaining time rate calculator 214g calculates the remaining time, remaining time rate, and delay time using the aforementioned equations. However, in calculating the remaining time and remaining time rate, Ta(N+1) and Ta(N) are calculated based on the agent simulator 202's operating frequency. Furthermore, Td(N) uses the service message transmission completion time instead of the mobile message transmission completion time in the current time step.

[0284] The remaining time rate calculator 214g outputs a simulation control message including the remaining time, remaining time rate, and delay time to the control message transmitter 214f. Upon receiving the simulation control message including this information, the simulation commander 320 creates a simulation control message including the control details to be instructed to the proxy simulator 204 and transmits it to the proxy simulator 204.

[0285] The simulation action control unit 214h receives a simulation control message from the control message receiving unit 214c. The simulation action control unit 214h controls the simulation action of the agent simulator 202 according to the instructions contained in the simulation control message. For example, if instructed to change the time granularity of the simulation, the simulation action control unit 214h changes the time granularity of the simulation performed by the agent simulator 202 from the initial value to the instructed time granularity. The initial value of the time granularity is stored as a setting value in the agent simulator 204. Furthermore, the upper and lower limits of the time granularity are stored for each agent type in the simulation director 320.

[0286] If the simulation control message specifies a simulation speed, the simulation action control unit 214h changes the operating frequency of the 3D physics engine 224 in accordance with the specified simulation speed, accelerating or decelerating the computational speed of the proxy simulator 204. If instructed to stop the simulation, the simulation action control unit 214h stops the simulation by the proxy simulator 204. If instructed to pause the simulation, the simulation is paused, and if instructed to resume the simulation, the simulation is resumed. The simulation action control unit 214h outputs a simulation control message containing the current control state of the proxy simulator 204 to the control message transmitter 214f.

[0287] 3-4-3. Details of the 3D Physics Engine

[0288] In the 3D physics engine 224, the surrounding agent state update unit 224a receives a movement message from the movement message receiver 214a. The movement message received from the movement message receiver 214a is a movement message sent from another agent simulator via the movement message dispatcher 310. Based on the received movement message, the surrounding agent state update unit 224a estimates the current state of the surrounding agents surrounding the current agent.

[0289] When estimating the current state of the surrounding agent based on its past state, the surrounding agent state updater 224a uses the past state of the surrounding agent stored in the log. The method for estimating the current state using the past state of the surrounding agent is as described above. The surrounding agent state updater 224a outputs the estimated current state of the surrounding agent to the sensor information generator 224b and updates the log.

[0290] The sensor information generation unit 224b obtains the current state of the surrounding agents from the surrounding agent state update unit 224a. Based on the current state of the surrounding agents, the sensor information generation unit 224b generates surrounding information obtained through observation by the agent itself. Since the agent itself is a fixed roadside sensor such as a camera, the surrounding information obtained through observation refers to sensor information captured by the roadside sensor. The sensor information generation unit 224b outputs the generated sensor information to the service message generation unit 234a of the service system client simulator 234.

[0291] 3-4-4. Details of the Service System Client Simulator

[0292] In the service system client simulator 234, the service message generator 234a obtains sensor information from the sensor information generator 224b of the 3D physics engine 224. The service message generator 234a outputs a service message including the obtained sensor information to the service message transmitter 214e of the transmission and reception controller 214.

[0293] 4. Collection and evaluation of simulation results using the MAS system

[0294] By performing simulation using the MAS system 100 , various data related to the simulated target world can be obtained. Figure 17 A structure for compiling and evaluating simulation results using the MAS system 100 is shown.

[0295] The MAS system 100 includes data loggers at various locations that store logs of data obtained through simulation. The agent simulator 200 is equipped with data loggers 250, 260, 270, and 280. Data logger 250 stores data logs within the send / receive controller 210 (controller log). Data logger 260 stores data logs within the 3D physics engine 220 (3D physics engine log). Data logger 270 stores data logs within the service system client simulator 230 (service simulation log). Data logger 280 stores data logs within the simulator core 240 (simulation core log).

[0296] The central controller 300 is provided with data loggers 330 and 340. The data logger 330 stores a data log (mobile message dispatcher log) in the mobile message dispatcher 310. The data logger 340 stores a data log (commander log) in the simulation commander 320.

[0297] The backend server 400 is provided with a data logger 410. The data logger 410 stores data logs (service system logs) in the backend server 400.

[0298] When the simulation is interrupted, the simulation director 320 can return to an arbitrary point in the past and restart the simulation by using the data logs stored in the above-mentioned data loggers.

[0299] The MAS system 100 also includes a service system log collection unit 500, an agent movement log collection unit 510, a simulation core log collection unit 520, an asset information database 530, a spatiotemporal database 540, and a viewer 550. These are installed on a computer for simulation result evaluation.

[0300] The service system log collection unit 500 collects data logs from data loggers 270 and 410. These data logs are related to the service system. These data logs can be used to evaluate whether services are being provided correctly. Furthermore, they can be used to evaluate service delivery performance, including the operating rate of service resources, such as logistics robots.

[0301] The agent movement log collection unit 510 collects data logs from data loggers 250, 260, 330, and 340. These data logs collected by the agent movement log collection unit 510 are related to agent movement. These data logs can be used to confirm the normal operation of the agents. Furthermore, they can be used to check for issues such as agent overlap. If an error occurs during a simulation, the time range during which the simulation was assumed to be valid can be output from the data logs.

[0302] The simulation core log collection unit 520 collects data logs from the data logger 280 and the proxy movement log collection unit 510. These data logs collected by the simulation core log collection unit 520 are relevant to the simulation focus. Based on these data logs, pedestrian simulations can be used to evaluate human density, while robot simulations can be used to evaluate internal judgment results and other key points.

[0303] The asset information database 530 stores BIM / CIM data or three-dimensional information of fixed objects such as buildings converted from BIM / CIM data, and three-dimensional information of each agent.

[0304] Virtual data for simulation is stored in the spatiotemporal database 540. Evaluation results based on the data logs collected by the service system log collection unit 500, the proxy migration log collection unit 510, and the simulation core log collection unit 520 are reflected in the virtual data in the spatiotemporal database 540.

[0305] The viewer 550 displays the virtual world 2 on a monitor using the three-dimensional information of the fixed objects or agents stored in the asset information database 530 and the virtual data stored in the spatiotemporal database 540 .

[0306] 5. Physical structure of MAS system

[0307] The physical structure of the MAS system 100 is described. Figure 18 1 is a diagram showing an example of the physical structure of the MAS system 100. The MAS system 100 can be composed of, for example, multiple computers 10 configured on the same subnet 30. Furthermore, by connecting the subnet 30 to another subnet 32 ​​using a gateway 40, the MAS system 100 can be expanded to multiple computers 10 configured on the subnet 32.

[0308] exist Figure 18 In the illustrated example, the center controller 300 as software is installed on one computer 10. However, the functions of the center controller 300 may be distributed among a plurality of computers 10.

[0309] In addition, the MAS system 100 includes a plurality of backend servers 400. Figure 10In the example shown, each backend server 400 is installed in each computer 10. However, the functions of the backend server 400 may be distributed across multiple computers 10. Alternatively, multiple backend servers 400 may be installed in one computer 10 using virtualization technology that divides one server into multiple servers.

[0310] exist Figure 18 In the example shown, multiple agent simulators 200 are installed on a single computer 10. Virtualization technology can be used to enable multiple agent simulators 200 to operate independently on a single computer 10. Virtual machines or container virtualization can be used as virtualization technology. Multiple agent simulators 200 of the same type or different types can be installed on a single computer 10. Furthermore, only one agent simulator 200 can be installed on a single computer 10.

[0311] As described above, the MAS system 100 employs parallel distributed processing using multiple computers 10, rather than processing using a single computer. This prevents the number of agents installed in the virtual world 2 from being limited by the computer's processing power, nor does it prevent the number of services provided by the virtual world 2 from being limited by the computer's processing power. In other words, the MAS system 100 enables large-scale simulations through parallel distributed processing.

[0312] 6. Others

[0313] An observation agent can also be provided to observe the virtual world 2 from the outside. For example, the observation agent can be a fixed object such as a street corner camera, a mobile object such as a drone equipped with a camera, or even a pedestrian. By connecting the output of the physics engine included in the observation agent to a monitor, the virtual world 2 can be observed from the observation agent's perspective.

[0314] In the above embodiment, the remaining time rate itself is used as an indicator value for controlling the speed ratio. However, any other numerical value related to the remaining time rate can be used as an indicator value. For example, even a value obtained by subtracting the remaining time rate from 1 can be used as an indicator value.

Claims

1. A multi-agent simulation system that uses multiple interacting agents to simulate the object world, characterized in that: The multi-agent simulation system has: a plurality of agent simulators, each provided for the plurality of agents, simulating the state of each agent while causing the agents to interact with each other through message exchange; and a central controller that manages the plurality of agent simulators joining and leaving the simulation of the object world; The central controller is configured to separate the proxy simulator whose processing cannot keep up with the flow of time in the target world from the simulation of the target world. When the central controller has caused a certain agent simulator to leave the simulation of the target world, the central controller notifies the remaining agent simulators of the departure of the certain agent simulator, thereby allowing the remaining agent simulators to advance processing without continuously waiting for a message from the departed agent simulator.

2. The multi-agent simulation system according to claim 1, characterized in that: The central controller is configured to control the transmission and reception of messages between the plurality of agent simulators, and, when detecting an agent simulator that has delayed message transmission, to disconnect the agent simulator from the simulation of the target world.

3. The multi-agent simulation system according to claim 1 or 2, characterized in that: Each of the plurality of agent simulators is configured to determine a processing delay relative to another agent simulator, and when a processing delay relative to the other agent simulator is determined, request a separation from the central controller. The central controller is configured to cause the agent simulator that has proposed the withdrawal to withdraw from the simulation of the target world.

4. The multi-agent simulation system according to claim 1 or 2, characterized in that: The multi-agent simulation system is configured to make the speed ratio of the flow of time in the target world relative to the flow of time in the real world variable. The central controller is configured to increase the speed ratio while removing the proxy simulator whose processing cannot keep up with the flow of time in the target world from the simulation of the target world.

5. The multi-agent simulation system according to claim 1 or 2, characterized in that: The plurality of agent simulators include a variable time granularity agent simulator capable of adjusting a time granularity of sending messages, The variable time granularity proxy simulator is configured to increase the time granularity within a predetermined allowable range when processing cannot keep up with the flow of time in the target world.

6. The multi-agent simulation system according to claim 1 or 2, characterized in that: The central controller is configured to interrupt the simulation of the target world when a predetermined number of the plurality of agent simulators have left the simulation of the target world, and restart the simulation of the target world after returning to a state where a predetermined time has elapsed.

7. A multi-agent simulation method for simulating an object world using multiple agents interacting with each other, characterized in that: The multi-agent simulation method comprises: exchanging messages between a plurality of agent simulators provided for each of the plurality of agents; Simulating the state of each agent while causing the agents to interact with each other through the exchange of the messages; and Managing the participation of the plurality of agent simulators in and the withdrawal from the simulation of the object world by a central controller, Managing the separation includes separating the agent simulator that cannot keep up with the flow of time in the target world from the simulation of the target world, Managing the separation includes, when a certain agent simulator is separated from the simulation of the target world, notifying the remaining agent simulators of the separation, thereby allowing the remaining agent simulators to advance processing without continuously waiting for a message from the separated agent simulator.

8. The multi-agent simulation method according to claim 7, characterized in that: Managing the disengagement includes: controlling the sending and receiving of messages between the plurality of agent simulators; and When an agent simulator is detected to have delayed message transmission, the agent simulator is disconnected from the simulation of the target world.

9. The multi-agent simulation method according to claim 7 or 8, characterized in that: Managing the disengagement includes: each of the plurality of agent simulators determines a processing delay relative to other agent simulators, and when a processing delay relative to the other agent simulators is confirmed, requests separation from the central controller; The central controller causes the agent simulator that proposes the separation to separate from the simulation of the object world.

10. The multi-agent simulation method according to claim 7 or 8, characterized in that: Also includes: making the speed ratio of the flow of time in the object world relative to the flow of time in the real world variable; and The central controller is caused to execute the operation of increasing the speed ratio while separating the proxy simulator, which cannot keep up with the flow of time in the target world, from the simulation of the target world.

11. The multi-agent simulation method according to claim 7 or 8, characterized in that: The plurality of agent simulators include a variable time granularity agent simulator capable of adjusting a time granularity of sending messages, The multi-agent simulation method further includes: when the processing of the variable time granularity agent simulator cannot keep up with the flow of time in the object world, increasing the time granularity of the variable time granularity agent simulator within a predetermined allowable range.

12. The multi-agent simulation method according to claim 7 or 8, characterized in that: Also includes: causing the central controller to interrupt the simulation of the target world when a predetermined number of the plurality of the agent simulators have been separated from the simulation of the target world; and After returning to a state where a predetermined time has elapsed, the simulation of the object world is started again.

Citation Information

Patent Citations

  • Traffic flow simulation apparatus

    JP2008203913A

  • Inconsistent process detecting apparatus, inconsistent process detecting program, and inconsistent process detecting method

    JP2009151634A

  • Simulation apparatus, method thereof, and program

    JP2015022378A

  • Automated player control takeover in a video game

    CN111744201A

  • Simulation system and simulation method

    JP2004272693A