Multi-agent simulation system and procedures

DE102022110210B4Active Publication Date: 2026-08-06TOYOTA JIDOSHA KK
View PDF 15 Cites 0 Cited by

Patent Information

Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
TOYOTA JIDOSHA KK
Filing Date
2022-04-27
Publication Date
2026-08-06

AI Technical Summary

Technical Problem

Multi-agent simulations face challenges in maintaining accuracy while increasing simulation speed, particularly in environments with poor computing or network conditions, leading to discrepancies in message exchange times and agent processing delays.

Method used

A multi-agent simulation system with a center controller that manages agent simulators, separates delayed or disconnected agents, adjusts time granularity, and varies simulation speed to maintain accuracy and increase speed by disconnecting agents that lag in processing time.

Benefits of technology

The system enhances simulation speed while preserving accuracy by managing agent interactions and adjusting simulation parameters, allowing for faster simulations without loss of detail.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

System for simulating a target world using a plurality of agents (4A, 4B, 4C) interacting with each other, comprising: a plurality of agent simulators (200, 201, 202, 203, 204) provided for each of the plurality of agents (4A, 4B, 4C) and configured to simulate a state of each of the plurality of agents (4A, 4B, 4C), while the plurality of agents (4A, 4B, 4C) are caused to interact with each other by exchanging messages;and a center controller (300) configured to manage the participation of the majority of agent simulators (200, 201, 202, 203, 204) in a simulation of the target world and the separation of the majority of agent simulators (200, 201, 202, 203, 204) from the simulation of the target world, wherein the center controller (300) is configured to separate an agent simulator whose processing does not keep pace with a time flow in the target world from the simulation of the target world, and wherein the center controller (300) is configured to notify the remaining agent simulators of the separation of the one agent simulator when responding to a separation of an agent simulator from the simulation of the target world.
Need to check novelty before this filing date? Find Prior Art

Description

Cross-reference to related registration

[0001] The present application claims priority over JP 2021 - 095 954, which was filed on June 8, 2021, and the contents of which are incorporated herein in their entirety by reference. Background area

[0002] The present disclosure relates to a multi-agent simulation system and a multi-agent simulation method for simulating a target world using a plurality of agents that interact with each other. General state of the art

[0003] Multi-agent simulation is a known technique. It is used to simulate a target world using multiple agents interacting with each other. For example, JP 2015-022378A discloses prior art in which the time interval for notifying other agents of an agent's status in a multi-agent simulation is modified. In this prior art, for instance, the notification frequency is reduced for minor changes in information in order to speed up the simulation.

[0004] Documents that demonstrate the state of the art at the time of filing the present application in the technical field of the present disclosure include, by way of example, JP 2015 - 022 378 A, JP 2004 - 272 693 A, JP 2008 - 203 913 A and JP 2009 - 151 634 A. Summary

[0005] The passage of time in a simulated target world does not necessarily have to correspond to the flow of time in the real world. By making the time flow faster in the simulation than in the real world, the simulation can be run at high speed. However, the achievable simulation speed depends on the computing / network environment.

[0006] In multi-agent simulation, interaction between agents is achieved through the exchange of messages. If the sum of the computation time for each agent and the time required for message exchange falls within the time granularity defined for each agent, the accuracy of the simulation can be maintained for each agent.

[0007] However, if the computing / network environment is poor, messages from other agents may arrive only at the required processing time, or conversely, future messages from other agents may arrive before messages are transmitted to other agents. In other words, if the computing / network environment is poor, the simulation speed may be too high, which can lead to agents whose processing time in the target world falls outside the time granularity. In such a case, the accuracy of the simulation in the target world is naturally reduced.

[0008] The present disclosure was made in consideration of the problems described above. It is an objective of the present disclosure to provide a multi-agent simulation system and method capable of performing a simulation at high speed while maintaining the accuracy of the simulation.

[0009] The present disclosure provides a multi-agent simulation system that simulates a target world using a plurality of agents interacting with one another. The system of this disclosure comprises a plurality of agent simulators, one for each agent within the plurality, and a central controller. The plurality of agent simulators are programmed to simulate the state of each agent within the plurality, while the plurality of agents are caused to interact with one another by exchanging messages. The central controller is programmed to manage the participation of the plurality of agent simulators in a simulation of the target world and to maintain the separation of the plurality of agent simulators from the simulation of the target world.Furthermore, the center controller is programmed in such a way that it separates an agent simulator, whose processing does not keep pace with the time flow in the target world, from the simulation of the target world.

[0010] In the system of the present disclosure, the center controller can be programmed such that, upon responding to a disconnection of one agent simulator from the simulation of the target world, it notifies the remaining agent simulators of the disconnection. This allows the remaining agent simulators to continue processing without waiting for the message from the disconnected agent simulator.

[0011] In the system described in this disclosure, the center controller can be programmed to control the sending and receiving of messages between the plurality of agent simulators and, upon detecting a delayed agent simulator that is late in sending messages, to disconnect the delayed agent simulator from the simulation of the target world. This makes it possible to separate the agent simulator, whose processing does not keep pace with the time flow in the target world, from the simulation of the target world according to the determination of the center controller.

[0012] In the system described in this disclosure, each of the multiple agent simulators can be programmed to determine a processing delay relative to other agent simulators and, upon detecting this delay, offer the center controller the option to disconnect. In this case, the center controller is programmed to disconnect or separate an agent simulator that offers to disconnect from the simulation of the target world. This allows an agent simulator whose processing does not keep pace with the time flow in the target world to disconnect from the simulation of the target world according to its own specifications.

[0013] In the system described in this disclosure, the system can be configured to vary the speed ratio of a time flow in the target world to a time flow in a real world. In this case, the center controller can be programmed to increase the speed ratio while disconnecting the agent simulator, whose processing does not keep pace with the time flow in the target world, from the simulation of the target world. This allows the simulation speed to be increased while maintaining the accuracy of the simulation of the target world. Furthermore, the center controller can be programmed to increase the speed ratio as long as a specific agent simulator remains connected to the simulation.This allows the simulation to be executed as quickly as possible without causing agents that are important in the target world (for example, a vehicle) to disappear from the target world, while allowing agents that are not important in the target world (for example, a person in a crowd) to disappear from the target world.

[0014] In the system of the present disclosure, the plurality of agent simulators may include a variable-time granular agent simulator, which can adjust the time granularity for sending messages. In this case, the variable-time granular agent simulator may be programmed to increase the time granularity within a predetermined permissible range in response to the fact that the processing within the variable-time granular agent simulator does not keep pace with the time flow of the target world. When an agent simulator increases the time granularity for sending messages, the state of the agent for which the single agent simulator in the target world is responsible tends to change discontinuously, but the single agent simulator may have some leeway with respect to the time flow in the target world.This reduces the number of agent simulators that cannot perform processing to keep pace with the flow of time in the target world and must therefore disengage from the simulation of the target world.

[0015] In the system described in this disclosure, the center controller is programmed to stop the simulation of the target world when a predetermined number of agent simulators disconnect from the simulation, and to restart the simulation after returning to a previous state for a predetermined duration. If the initial speed ratio is unsuitable, a sudden increase in computational load due to a sudden increase in the number of agents, or a sudden increase in overall communication delay due to a temporary network anomaly, will make it difficult to continue the simulation of the target world, as a result of a large number of agent simulators disconnecting from the simulation.However, by rewinding time to before the multitude of agent simulators separated from the simulation and restarting the simulation of the target world, it becomes possible to continue the simulation of the target world.

[0016] The present disclosure provides a multi-agent simulation method for simulating a target world using a plurality of agents that interact with one another. The method of the present disclosure includes exchanging messages between a plurality of agent simulators, each provided for one of the plurality of agents, and simulating the state of each of the plurality of agents while the plurality of agents are caused to interact with one another by exchanging the messages. The method of the present disclosure also includes managing the participation of the plurality of agent simulators in a simulation of the target world and separating the plurality of agent simulators from the simulation of the target world by a center controller.In the process of the present disclosure, managing the separation includes separating an agent simulator, whose processing does not keep pace with a time flow in the target world, from the simulation of the target world.

[0017] In the process of the present disclosure, managing the separation in responding to a separation of one agent simulator from the simulation of the target world may include notifying remaining agent simulators of the separation of the one agent simulator.

[0018] In the method of the present disclosure, managing the separation can include controlling the sending and receiving of messages between the plurality of agent simulators, and, in responding to the detection of a delayed agent simulator that is late in sending messages, separating the delayed agent simulator from the simulation of the target world.

[0019] In the method of the present disclosure, managing the separation can include causing each of the plurality of agent simulators to determine a processing delay with respect to other agent simulators and, in response to a detection of the processing delay, offering the separation to the center controller for other agent simulators, and separating an agent simulator from the simulation of the target world that offers the separation.

[0020] The method of the present disclosure may further include varying a speed ratio of a time flow in the target world to a time flow in a real world, and increasing the speed ratio while the agent simulator, whose processing does not keep pace with the time flow in the target world, is separated from the simulation of the target world.

[0021] In the method of the present disclosure, the plurality of agent simulators can include a variable-time granular agent simulator that can adjust the time granularity for sending messages. In this case, the method of the present disclosure can further include causing the variable-time granular agent simulator to increase its time granularity within a predetermined permissible range in response to the fact that the processing in the variable-time granular agent simulator does not keep pace with the time flow of the target world.

[0022] The method of the present disclosure may further include stopping the simulation of the target world in response to a predetermined number of agent simulators from the plurality of agent simulators disconnecting from the simulation of the target world, and restarting the simulation of the target world after returning to a past state for a predetermined period of time.

[0023] In the multi-agent simulation system and method of this disclosure, the simulation of the target world is performed by causing agents to interact with each other through the exchange of messages. If there is an agent simulator whose processing does not keep pace with the time flow in the target world, the processing delay therefore affects the processing of other agent simulators and reduces the accuracy of the target world simulation. According to the multi-agent simulation system and method of this disclosure, the agent simulator whose processing does not keep pace with the time flow in the target world is decoupled or separated from the target world simulation, thereby suppressing the decrease in the accuracy of the target world simulation and creating space to increase the simulation speed. List of characters Fig.Figure 1 is a figure that provides an overview of a multi-agent simulation system according to an embodiment of the present disclosure. Fig. Figure 2 is a figure that provides an overview of the multi-agent simulation system according to the embodiment of the present disclosure. Fig. Figure 3 is an illustration that provides an overview of the multi-agent simulation system according to the embodiment of the present disclosure. Fig. Figure 4 is a time diagram representing a desired simulation state assumed in an agent simulator according to the embodiment of the present disclosure. Fig.Figure 5 is a time diagram representing a simulation state assumed in an agent simulator according to the embodiment of the present disclosure, in which some of the other agent simulators are delayed compared to the agent simulator. Fig. Figure 6 is a time diagram representing a simulation state assumed in an agent simulator according to the embodiment of the present disclosure, in which the agent simulator is slightly delayed compared to other agent simulators. Fig. Figure 7 is a time diagram representing a simulation state assumed in an agent simulator according to the embodiment of the present disclosure, in which the agent simulator is significantly delayed compared to other agent simulators. Fig.Figure 8 is a flowchart which illustrates a process for both determining an adjustment of a simulation speed and separating or cutting off a simulation by an agent simulator according to the embodiment of the present disclosure. Fig. Figure 9 is a flowchart which represents a process of adjusting a simulation speed of an agent simulator by a simulation guide according to the embodiment of the present disclosure. Fig. Figure 10 is a flowchart which represents a process for instructing an agent simulator to disconnect from a simulation according to a determination of a simulation guide according to the embodiment of the present disclosure. Fig.Figure 11 is a sequence diagram which represents a process for rewinding and restarting a simulation according to a determination of a simulation guide according to the embodiment of the present disclosure. Fig. Figure 12 is a block diagram representing a configuration of the multi-agent simulation system according to the embodiment of the present disclosure. Fig. Figure 13 is a block diagram which represents a configuration and information flows of an agent simulator for a pedestrian agent according to the embodiment of the present disclosure. Fig. Figure 14 is a block diagram which represents a configuration and information flows of an agent simulator for an autonomous mobile agent according to the embodiment of the present disclosure. Fig.Figure 15 is a block diagram which represents a configuration and information flows of an agent simulator for a VR pedestrian agent according to the embodiment of the present disclosure. Fig. Figure 16 is a block diagram which represents a configuration and information flows of an agent simulator for a roadside sensor agent according to the embodiment of the present disclosure. Fig. Figure 17 is a block diagram which represents a configuration for an aggregation and evaluation or assessment of simulation results by the multi-agent simulation system according to the embodiment of the present disclosure. Fig. Figure 18 is an illustration which shows an example of a physical configuration of the multi-agent simulation system according to the embodiment of the present disclosure. Detailed description

[0024] An embodiment of the present disclosure is described below with reference to the figures. It should be noted that when the digits of numbers, quantities, amounts, ranges, and the like are mentioned for respective elements in the embodiment shown below, the present disclosure is not limited to the digits mentioned unless expressly stated otherwise or the disclosure is expressly theoretically defined by the digits. Furthermore, structures and processes described in the embodiments shown below are not always essential to the disclosure unless expressly shown otherwise or the disclosure is expressly theoretically defined by the structures or processes. 1. Overview of the multi-agent simulation system

[0025] With reference to the Fig. 1 to Fig.Section 3 provides 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 the MAS system. 1-1. Overview of the configuration and functions of the MAS system

[0026] Fig.Figure 1 shows a schematic configuration of the MAS system 100 of the present embodiment. The MAS system 100 simulates a world (simulation target world) 2, which corresponds to the simulation goal, by causing a plurality of agents 4A, 4B, 4C to interact with each other. The simulation target world provided by the MAS system of the present disclosure is not limited. However, the simulation target world 2 of the MAS system 100 of the present embodiment corresponds to a world in which a person coexists with an autonomous mobile, for example, a robot or a vehicle, and can receive various services using the autonomous mobile. The services provided in the simulation target world 2 include, for example, mobility services such as on-demand buses and ferry-like buses using autonomously driving vehicles, as well as logistics services for delivering packages using autonomous mobile robots.

[0027] Simulation Target World 2 features a large number and many types of agents. These agents include those representing moving objects and those representing stationary objects. Examples of moving objects represented as agents include pedestrians, robots, slow-moving vehicles, cars, pedestrians (including real people using VR systems), elevators, and so on. Examples of stationary objects represented as agents include sensors (including cameras), automatic doors, and so on.

[0028] In Fig. However, for illustrative purposes, only three agents 4A, 4B, and 4C are shown in the simulation target world 2. Of these, agents 4A and 4B represent robots, and agent 4C represents a pedestrian. That is to say, in the Fig.In the simulation target world 2 shown in Figure 1, two types of agents—robots and pedestrians—are depicted. Although Agent 4A and Agent 4B belong to the same category of robots, they differ in size, shape, speed, and movement. Therefore, there are differences between Agent 4A and Agent 4B in the visual information that Agent 4C, a pedestrian, can obtain from them. 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. In the following, the simulation target world 2, which corresponds to a virtual world, will be referred to as Virtual World 2 to distinguish it from the real world.

[0029] The MAS system 100 comprises multiple agent simulators 200. An agent simulator 200 is provided for each agent A, B, and C. In the following, when distinguishing between each agent simulator 200, the agent simulator 200 that simulates the state of agent A is referred to as agent simulator A. Similarly, the agent simulator 200 that simulates the state of agents B and C is referred to as agent simulators B and C. Each agent simulator 200 has a different configuration, depending on the type of agent targeted. For example, agent simulators B and C for robot agents B and C have similar configurations, but agent simulator A for pedestrian agent A has a different configuration than agent simulators B and C. The configuration of the agent simulator 200 for each agent type is described in detail later.

[0030] Agent Simulator 200 simulates the state of each agent A, B, and C as they interact by exchanging messages. The messages exchanged between Agent Simulators 200 contain movement information, which corresponds to information about the agent's location and movement within Virtual World 2. This movement information includes details about the agent's current state and future plans. For example, current state information includes the agent's location, direction, speed, and acceleration at the present time. Future plan information includes, for example, a list of locations, directions, speeds, and accelerations at future times.In the following, messages relating to the location and movement of agents, which are exchanged between the Agent Simulators 200, are referred to as movement messages.

[0031] The Agent Simulator 200 calculates the simulated state of the target agent (ego agent) based on the states of surrounding agents. These surrounding agents are interactive agents that exist around the ego agent and interact with it. The information representing the states of surrounding agents consists of movement messages. Each Agent Simulator 200 can acquire the states of surrounding agents by exchanging movement messages with other Agent Simulators 200.

[0032] In the Fig.In the example shown, agent simulator A captures the states of agents B and C from motion messages received by agent simulators B and C and updates the states of agent A based on the states of agents B and C. Agent simulator A transmits a motion message, representing the updated state of agent A, to agent simulators B and C. Similar processing is also performed at agent simulators B and C. Therefore, the states of agents A, B, and C are simulated while agents A, B, and C interact with each other.

[0033] The agent simulator 200's state update procedure includes a method for updating the state at regular time intervals and a method for updating the state when any event is detected. However, the latter method also forces the generation of an event to update the state at regular intervals, as the effect on surrounding agents is significant if the state remains unupdated for too long. The time interval between agent state updates by the agent simulator 200 is referred to as the time granularity.

[0034] In the Fig.In the example shown, the time granularity of each agent A, B, C in virtual world 2 is set to 20 ms. However, it is possible to change the time granularity according to the agent type. Since the pedestrian agent C moves more slowly compared to the robot agents A, B, its time granularity can be higher than that of the robot agents A, B. Each agent simulator A, B, C executes the simulation with a control cycle corresponding to the time granularity of the agents A, B, C for which it is responsible.

[0035] In the MAS system 100, the simulation is performed by exchanging movement messages between the agent simulators 200. However, this exchange of movement messages for the simulation does not occur directly between the agent simulators 200. The MAS system 100 includes a center controller 300, which communicates with the agent simulators 200. The center controller 300 includes a movement message dispatcher 310 for distributing the received movement messages. Movement messages are forwarded by the movement message dispatcher 310 and exchanged between the agent simulators 200.

[0036] In the Fig.In the example shown, a movement message issued by agent simulator A is received by movement message dispatcher 310. Movement message dispatcher 310 transmits the movement message from agent simulator A to agent simulators B and C. Likewise, the movement message from agent simulator B is transmitted by movement message dispatcher 310 to agent simulators A and C, and the movement message from agent simulator C is transmitted by movement message dispatcher 310 to agent simulators A and B.

[0037] The speed at which motion messages are exchanged between the agent simulators 200 is initially set such that the time granularity configured for each agent matches the time interval in the real world. In other words, according to the initial setting of the motion message exchange speed, the time flow in virtual world 2 is consistent with the time flow in the real world. If the motion message exchange speed is increased from this initial state, the rate ratio of the time flow in virtual world 2 to the time flow in the real world increases. The motion message exchange speed depends on the time interval at which motion messages are transmitted by each agent simulator 200.For example, if the transmission interval of movement messages is halved, the exchange rate of mobile messages doubles. Doubling the exchange rate of movement messages also doubles the operational speed of the agents, causing the simulation to run twice as fast. In other words, the exchange rate of movement messages represents the simulation speed.

[0038] If each Agent Simulator 200 independently modifies the transmission interval of movement messages, a discrepancy in operating speed can occur between the ego agent and surrounding agents. Additionally, there is a possibility that information about the states of surrounding agents cannot be received when the ego agent's state is updated, or that information about the ego agent's state cannot be transmitted when the states of surrounding agents are updated, leading to simulation failure. Therefore, the transmission interval of movement messages must be controlled collectively for all Agent Simulators 200.

[0039] The transmission interval of movement messages by each Agent Simulator 200 is controlled by the Center Controller 300. The Center Controller 300 specifically includes a Simulation Guide 320, which controls the simulation by each Agent Simulator 200.

[0040] The Simulation Guide 320 controls the simulation via the Agent Simulator 200 by exchanging simulation control messages with the Agent Simulator 200. The Simulation Guide 320 communicates with all Agent Simulators 200 that are part of the MAS System 100 and exchanges simulation control messages with them. This exchange of simulation control messages is used, for example, to control the simulation speed, stopping, pausing, and restarting the simulation, as well as the simulation's time granularity. The simulation speed is controlled collectively for all Agent Simulators 200. In contrast, stopping, pausing, restarting, and adjusting the simulation's time granularity are controlled individually for each Agent Simulator 200. 1-2. Overview of the simulation speed control in the MAS system

[0041] The Fig. 2 and Fig. Figure 3 shows an overview of the simulation speed control performed in the MAS system 100. In the MAS system 100, each agent simulator 200 transmits a motion message at a time interval corresponding to the time granularity of the agent being simulated. Assuming that the time granularity of each agent A, B, C is as shown in Figure 3, the following applies: Fig. As shown in Figure 1, each agent simulator transmits 200 movement messages at intervals of 20 ms.

[0042] When the simulation speed is increased, the Center Controller 300 (specifically the Simulation Guide 320) increases the speed ratio of the time flow in the virtual world 2 to the time flow in the real world by causing each Agent Simulator 200 to shorten the transmission interval of motion messages. The higher the speed ratio, the higher the simulation speed and the shorter the time required to complete the simulation.

[0043] However, depending on the computing / network environment in which Agent Simulator 200 operates, there may be an Agent Simulator 200 that cannot keep pace with the flow of time in virtual world 2. In the Fig.In example 3, the transmission interval of the movement messages transmitted by agent simulators A and C has shortened, but the transmission interval of the movement messages transmitted by agent simulator B has not. In other words, there is a delay at agent simulator B.

[0044] Agent Simulator 200 uses information about the states of surrounding agents to update the state of the ego agent. In the Fig.In the example shown, agent simulator A uses the motion messages transmitted by each of simulators B and C to update the state of the ego agent. Agent simulator C also uses the motion messages transmitted by each of simulators A and B to update the state of the ego agent. Therefore, the delay of agent simulator B is not only a problem for agent simulator B itself, but also a problem affecting agent simulators A and C, which exchange motion messages with agent simulator B. That is, the presence of agent simulator B, whose processing does not keep pace with the time flow in virtual world 2, reduces the accuracy of the simulation by the MAS system 100.

[0045] Therefore, the Center Controller 300 (specifically the Simulation Guide 320) disconnects the delayed Agent Simulator B from the simulation. Agent B disappears from virtual world 2 by disconnecting Agent Simulator B from the simulation. Consequently, Agent A can only interact with Agent C and continue the simulation without being affected by Agent Simulator B. This prevents Agent Simulator B from becoming a rate limiter and creates space for a further increase in the simulation speed of Agent Simulators A and C.

[0046] As described above, in the MAS system 100, the simulation speed is increased by shortening the transmission interval of motion messages between the agent simulators 200 and by separating the delayed agent simulator 200 from the simulation. Whether or not the simulation should be separated, however, depends on the type of agent. For example, the effect on the simulation is negligible even if one of the pedestrian agents suddenly disappears from virtual world 2 due to the separation of agent simulator 200. On the other hand, if the vehicle agent carrying a passenger suddenly disappears from virtual world 2 while the passenger is being released, the simulation is not created at that time. In other words, an agent whose presence or absence has a significant effect on the simulation cannot be separated from it.Therefore, the MAS system 100 must maintain the simulation speed within a suitable speed range and shorten the simulation time by accelerating the simulation speed.

[0047] In the MAS system 100, a "remaining time rate" is used as an index value to determine the appropriateness of the simulation speed. The remaining time rate is defined as the ratio of a remaining time to an update time interval, at which the agent state is updated. The remaining time corresponds to the time obtained by subtracting the processing time for an update operation from the update time interval. In the MAS system 100, the remaining time rate is calculated for each agent simulator 200. The simulation guide 320 comprehensively controls the speed ratio of the time flow in the virtual world 2 to the time flow in the real world, based on the remaining time rate for each agent simulator 200. 1-3. Details of the simulation speed control in the MAS system

[0048] Next, details of the simulation speed control performed in the MAS system 100 will be given with reference to the Fig. 4 to Fig. 10. This is first described using four examples, which are assumed to be the simulation state of the agent simulator 200. 1-3-1. Examples of simulation states of the agent simulator. Case 1: Desired state

[0049] Case 1 corresponds to a desired simulation state for Agent Simulator 200. The following discussion focuses on one Agent Simulator from the majority of Agent Simulators 200, which is referred to as a target Agent Simulator. In this case, an agent simulated by the target Agent Simulator is defined as an ego agent. Fig.Figure 4 is a time diagram representing various points in time related to the state update of the ego agent to a desired state for the target agent simulator. Each point in time, marked by a symbol on the timeline, is defined as follows. Ta(N): Calculation start time for a state update of an ego agent in the current time step Ta(N+1): Calculation start time for a state update of an ego agent in the next time step Tc(N): Creation completion time of a motion message in the current time step Td(N): Transmission completion time of a movement message in the current time step Te_first(N): Reception time of the first received movement message from movement messages of surrounding agents, which is necessary for calculating a state update of an ego agent in the next time step. Te last(N): Reception time of the last received movement message from movement messages of surrounding agents, which is necessary for calculating a state update of an ego agent at the next time step.

[0050] In case 1, time Te_lasteN) precedes time Ta(N+1). This means that before the calculation for a state update of the ego agent is started at the next time step, all movement messages from surrounding agents necessary for the calculation have been received. This means that there is no delay for other agent simulators that relate to the target agent simulator.

[0051] Furthermore, in case 1, the time Te_first(N) does not precede the time Ta(N+1). This means that before the calculation for the Ego agent's state update at the next time step begins, the process of receiving movement messages from surrounding agents, which are necessary for the calculation, has not yet started. This means that the target agent simulator is not delayed relative to other agent simulators.

[0052] The remaining time rate is described in detail here. The remaining time rate is calculated using the remaining time and the update time interval, according to the following equations. Remaining time rate = Remaining time / Update time interval Remaining time = Ta(N+1) − Te_last(N) Update time interval=Ta(N+1)−Ta(N)

[0053] The residual time rate is calculated for each agent simulator 200. The residual time rate corresponds to an index value that indicates the margin of error of the last agent simulator among other agent simulators related to the target agent simulator, relative to the target agent simulator's update rate. If the residual time rate value is positive, the margin of error of other agent simulators relative to the target agent simulator's update rate is greater the higher the residual time rate. If the residual time rate value is negative, at least one other agent simulator is delayed relative to the target agent simulator.

[0054] If the remaining time rate is positive in all agent simulators 200, there is no delay in any agent simulator 200. If the remaining time rate is large enough, there is room for further increasing the simulation speed. However, if the remaining time rate is small, there is a possibility that further increasing the simulation speed will introduce a delay in any of the agent simulators 200. Additionally, the remaining time rate can drift to a negative value due to a deterioration of the computing / network environment if the remaining time rate is too close to zero. Therefore, for the fastest possible simulation execution while maintaining simulation accuracy, it is desirable that the remaining time rates calculated by each agent simulator 200 all remain within a specific range. Case 2: A state in which some are delayed by other agent simulators.

[0055] Case 2 corresponds to a state in which some agent simulators are delayed from other agent simulators with respect to the target agent simulator. Fig. Figure 5 is a time diagram that represents different points in time with reference to the state update of the ego agent in that state.

[0056] In case 2, time Te_first(N) precedes time Ta(N+1). This means that before the calculation for the state update of the ego agent is started in the next time step, at least one of the movement messages from surrounding agents, which are necessary for the calculation, has been received.

[0057] In case 2, however, time Te_last(N) is not before time Ta(N+1). This means that before the calculation for the Ego agent's state update in the next time step is started, not all movement messages from surrounding agents necessary for the calculation have been received. At least one movement message was received after the calculation for the Ego agent's state update in the next time step was started. This means that some are delayed from other agent simulators with respect to the target agent simulator.

[0058] In case 2, the value of the remaining time rate is negative because time Te_last(N) is after time Ta(N+1). The existence of the agent simulator delayed with respect to the whole can be confirmed by the negative value of the remaining time rate for any agent simulator, including the target agent simulator. Case 3: State in which the target agent simulator is slightly delayed compared to other agent simulators

[0059] Case 3 corresponds to a state in which the target agent simulator is slightly delayed compared to other agent simulators with respect to the target agent simulator. Fig. Figure 6 is a time diagram that represents different points in time with reference to the state update of the ego agent in this state.

[0060] In case 3, time Te_first(N+1) precedes time Ta(N+1). This means that before the calculation for the ego agent's state update in the next-but-one time step is started, the necessary movement messages from surrounding agents have already been received. Consequently, it is observed that other agent simulators operate faster than the target agent simulator.

[0061] In case 3, however, time Td(N) precedes time Te_first(N+1). This means that before the movement messages from surrounding agents, necessary for calculating the state update of the ego agent in the next-but-one time step, are received, the movement message for the ego agent's state, updated in the current time step, has already been transmitted. This means that the target agent simulator is delayed compared to other agent simulators, but not significantly. This degree of delay may be acceptable. Case 4: State in which the target agent simulator is significantly delayed compared to other agent simulators

[0062] Case 4 is a state in which the target agent simulator is significantly delayed compared to other agent simulators with respect to the target agent simulator. Fig.Figure 7 is a time diagram that represents different points in time with reference to the state update of the ego agent in this state.

[0063] In Case 4, time Te_first(N+1) precedes time Td(N). This means that before the transmission of the movement message with respect to the ego agent's state updated in the current step is complete, the movement messages from a surrounding agent required for calculating the ego agent's state update in the next time step have already been received. Other agent simulators initially update the state of surrounding agents in the next time step using the ego agent's state transmitted by the target agent simulator at time Td(N). Therefore, in Case 4, the target agent simulator is definitely delayed by one cycle compared to the other agent simulators.

[0064] Here, a delay time is defined by the following equation. The delay time can be used as an index value to indicate the degree of delay of the target agent simulator relative to other agent simulators. Delay time=Td(N)−Te_first(N+1)

[0065] Since in Case 3 the time Td(N) is before the time Te_first(N+1), the delay time is negative. Conversely, since in Case 4 the time Td(N) is after the time Te_first(N+1), the delay time is positive. If the delay time is positive and exceeds a predetermined threshold, it can be determined that the target agent simulator is delayed to an unacceptable degree relative to other agent simulators. 1-3-2. Processing in the agent simulator for simulation speed control

[0066] The MAS system 100 controls the simulation speed with the aim of achieving the desired state depicted in Case 1 of the four cases described above. The simulation speed control by the MAS system 100 is carried out through a cooperation between the agent simulator 200 and the simulation guide 320.

[0067] First, the processing in Agent Simulator 200 for simulation speed control is described. Fig. Figure 8 is a flowchart depicting a routine executed by Agent Simulator 200 for controlling the simulation speed. Specifically, the flowchart illustrates the process of determining whether the simulation speed is adjusted and how Agent Simulator 200 separates or disconnects from the simulation. Agent Simulator 200 executes the routine shown in the flowchart repeatedly at regular intervals.

[0068] Step S100 determines whether the time Te_last(N) was recorded after the current time step or not. This is similar to the comparison between the... Fig. 4 to Fig. 6 and Fig. As can be seen from section 7, the question of whether the time Te_last(N) can be recorded after the current time step or not corresponds to a criterion for determining whether the agent simulator 200 is delayed to an unacceptable extent with respect to other agent simulators or not.

[0069] If the time Te_last(N) can be determined after the current time step, that is, if agent simulator 200 is not delayed to an unacceptable degree relative to other agent simulators, the process proceeds to step S102. In step S102, it is determined whether the value of the remaining time described above is positive or not. If the value of the remaining time is positive, this means that agent simulator 200 is not delayed and that other agent simulators are also not delayed.

[0070] If the remaining time value is positive, the process proceeds to step S104. In step S104, the remaining time rate described above is calculated. In the flowchart, the remaining time rate may be labeled RTR. Subsequently, in step S106, the remaining time rate calculated in step S104, along with the simulation control message "normal state," is transmitted to the simulation guide 320. Messages in the flowchart refer to simulation control messages. The simulation control message "normal state" corresponds to a simulation control message reporting to the simulation guide 320 that neither the agent simulator 200 nor any other agent simulators are in a delayed state. In the flowchart, the simulation guides are labeled SC.

[0071] If the result of step S100 is negative, meaning that the time Te_last(N) can be determined after the current time step, the process proceeds to step S108. Furthermore, if the result of step S102 is negative, meaning that the remaining time value is not positive, the process proceeds to step S108. In step S108, it is determined whether the delay time described above is greater than or equal to a delay time threshold ThD. The delay time threshold ThD corresponds to a criterion for determining whether the delay of agent simulator 200 is severe. For example, the time step of agent simulator 200, i.e., half the time granularity, can be set as a delay time threshold ThD.

[0072] If the delay time is greater than or equal to the delay time threshold ThD, the value of a critical delay state counter CountFD in step 110 is incremented by 1. The critical delay state counter corresponds to a counter used to measure the duration of a critical delay state in Agent Simulator 200. The initial value of the critical delay state counter is zero and is reset when the processing described later in step S120 is executed. If the delay time is less than the delay time threshold ThD, step S110 is skipped.

[0073] Step S112 determines whether Agent Simulator 200 is an agent simulator capable of varying the simulation's time interval, i.e., whether it can vary the time granularity. Agent Simulator 200 can, in principle, vary its time granularity. However, the range of variation is limited depending on the agent type. For example, if the agent is a robot, precise operation is required. Therefore, creating the simulation becomes difficult if the time granularity exceeds 100 ms. If the agent is a pedestrian, a time granularity on the order of 1 second is sufficient, but it is not permissible to make the time granularity too large.Therefore, in step S112, based on the type of agent and the current time granularity, it is determined whether the time granularity can be varied.

[0074] If Agent Simulator 200 is a variable-time granular agent simulator, meaning its time granularity can be varied, the time granularity is increased in step S114. For example, a value obtained by multiplying the current time granularity by a predetermined magnification factor is set as the new time granularity. The magnification factor can be a fixed value (e.g., 2) or a variable that decreases with each execution. The magnification factor can also be different for each agent type. Then, in step S116, the increased time granularity from step S114, along with the simulation control message "Magnification Time Granularity," is transferred to Simulation Guide 320.The simulation control message "Increased time granularity" corresponds to a simulation control message for reporting to the simulation guide 320 that the time granularity has been increased. If the agent simulator 200 is not a variable time granular agent simulator, steps S114 and S116 are skipped.

[0075] Step S118 determines whether the value of the CountFD counter for a severe delay condition is greater than or equal to a counter threshold ThNfd. The counter threshold ThNfd is a threshold used to determine that the severe delay condition of Agent Simulator 200 is steady-state. The counter threshold ThNfd can be set to a different value depending on whether Agent Simulator 200 is a variable-time granular agent simulator. For example, the counter threshold ThNfd set for a variable-time granular agent simulator can be greater than the counter threshold ThNfd set for a non-variable-time granular agent simulator, which cannot vary its time granularity.As a specific example, the counter threshold ThNfd set for an agent simulator with variable time granularity can be set to five times or five, and the counter threshold ThNfd set for an agent simulator with non-variable time granularity can be set to three times or three.

[0076] If the counter for a critical delay condition is greater than or equal to the counter threshold ThNfd, a simulation control message "Disconnection" is transmitted to the simulation leader 320 at step S120. The simulation control message "Disconnection" is used to report to the simulation leader 320 that the agent simulator 200 is being disconnected from the simulation. The agent simulator transmitting the simulation control message "Disconnection" disconnects itself from the simulation. If the counter for a critical delay condition is less than the counter threshold ThNfd, step S120 is skipped.

[0077] In step S122, a simulation control message "Delay Detected" is transmitted to the simulation guide 320. This message informs the simulation guide 320 that either the agent simulator 200 or other agent simulators are in a delayed state. Even if the time granularity is varied in step S114, the transmission of the simulation control message "Delay Detected" is always performed only once. This means that until the agent simulator 200 disconnects from the simulation, either the simulation control message "Normal State" or the simulation control message "Delay Detected" is always transmitted to the simulation guide 320. 1-3-3. Processing in the simulation guide for simulation speed control

[0078] Next, the processing in Simulation Guide 320 for simulation speed control is described. Fig. Figure 9 is a flowchart depicting a routine performed by the simulation guide 320 for controlling the simulation speed. Specifically, the flowchart illustrates how the simulation speed of the agent simulator is adjusted by the simulation guide 320. The simulation guide 320 executes the routine shown in the flowchart at regular intervals.

[0079] First, in step S202, the simulation guide 320 receives simulation control messages from all agent simulators 200. The agent simulator is labeled AS in the flowchart. Furthermore, messages in the flowchart refer to simulation control messages.

[0080] Step S204 determines whether the content of all simulation control messages obtained in step S202 corresponds to "normal state". If all simulation control messages received from all agent simulators 200 are "normal state", then no agent simulator 200 has a delay. In this case, the remaining time rate is obtained along with the simulation control messages from all agent simulators 200.

[0081] If the result of step S204 is positive, a minimum value RTR_min for the remaining time rate is calculated in step S206. This minimum value corresponds to the smallest value among all remaining time rates obtained from all agent simulators 200.

[0082] In step S208, it is then determined whether the minimum value RTR min of the remaining time rate is greater than a permissible maximum value RTRA_max (first threshold) of the remaining time rate. A permissible range corresponding to a desired simulation speed is set for the remaining time rate. If the remaining time rate is greater than the maximum value within the permissible range, this means that an idle time occurs during the calculation of agent simulator 200. This indicates that there is room for increasing the simulation speed.

[0083] If the minimum value RTR_min of the remaining time rate is greater than the permissible maximum value RTRA_max, the value of a counter CountAP for an acceleration-eligible state in step S210 is incremented by 1. The initial value of the counter for an acceleration-eligible state is zero. If the processing of step S214, which will be described later, is executed and the determination result of step S208 becomes negative, it is reset.

[0084] In step S212, it is determined whether the value of the counter CountAP for an acceleration-capable state is greater than an acceleration determination threshold ThNap. The acceleration determination threshold ThNap corresponds to a threshold for determining that the acceleration-capable state lasts for a specific period of time. The acceleration determination threshold ThNap can be set to a fixed value (for example, 3).

[0085] If the counter for an acceleration-capable state is greater than the acceleration determination threshold ThNap, a simulation control message "Acceleration" and a new velocity ratio are transmitted to all agent simulators 200 at step S214. The new velocity ratio transmitted here represents the velocity ratio after the acceleration of the time flow in virtual world 2 to the time flow in the real world. The simulation control message "Acceleration" corresponds to an acceleration notification for each agent simulator 200, and the new velocity ratio transmitted at the same time corresponds to a display value of this. The higher the minimum value of the remaining time rate calculated by step S206, the higher the new velocity ratio can be. Therefore, it is possible to accelerate the simulation speed more significantly, as there is some leeway in the remaining time rate.

[0086] If, on the other hand, the counter for an acceleration-capable state is less than or equal to the acceleration determination threshold ThNap, a simulation control message "no acceleration / deceleration" is transmitted to all agent simulators 200 in step S218. The simulation control message "no acceleration / deceleration" corresponds to an instruction to maintain the current velocity ratio for each agent simulator 200.

[0087] As a result of the determination in step S208, if the minimum value RTR_min of the remaining time rate is less than or equal to the permissible maximum value RTRA_max, step S216 determines whether the minimum value RTR_min of the remaining time rate is less than the permissible minimum value RTRA_min (second threshold) of the remaining time rate. If the remaining time rate is less than the minimum value of the permissible range of the remaining time rate, this means that there is no room for error in the agent simulator's computation time. This means that the simulation speed should be slowed down to eliminate the delay.

[0088] If the minimum value RTR_min of the remaining time rate is less than the permissible maximum value RTRA_max, the simulation control message "Delay" and a new speed ratio are transmitted to all agent simulators 200 in step S228. The new speed ratio transmitted here represents the speed ratio after the delay of the time flow in virtual world 2 to the time flow in the real world. The simulation control message "Delay" corresponds to a delay indicator for each agent simulator 200, and the new speed ratio transmitted at the same time corresponds to its displayed value. If the minimum value of the remaining time rate calculated in step S206 is closer to zero, the new speed ratio can be further reduced. This allows for a greater delay in the simulation speed when the margin for error in the remaining time rate is smaller.

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

[0090] Furthermore, 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. Step S220 determines whether the simulation control message "Magnification Time Granularity" was received by any of the agent simulators 200.

[0091] If the result of step S220 is positive, step S222 transmits a simulation control message "Agent Simulator Parameter Change" and associated information for all agent simulators. This information includes the number of agent simulators with increased time granularity, the ID of each agent simulator with increased time granularity, and the new time granularity value. In other words, step S222 transmits a simulation control message to inform each agent simulator about the time granularity adjustment. If the result of step S220 is negative, step S222 is skipped.

[0092] In step S224, it is determined whether the simulation control message "Separation" was received by any of the agent simulators 200. That is, the separation based on the determination of the agent simulator 200 itself is detected by the simulation control message "Separation".

[0093] If the result of step S224 is positive, step S226 transmits a simulation control message "Agent Simulator Separation" and associated information for each agent simulator 200. This information includes the number of agent simulators that have left the simulation and the ID of each agent simulator that has left. In other words, step S226 transmits the simulation control message to inform each agent simulator 200 about the separation of an agent simulator 200. If the result of step S224 is negative, step S226 is skipped. The process of step S228 is then executed.

[0094] In the routine described above, the Agent Simulator 200 itself determines when to disconnect from the simulation. Simultaneously, the Simulation Guide 320 makes a decision to instruct the Agent Simulator 200 to disconnect from the simulation. Fig. Figure 10 is a flowchart depicting a routine executed by the simulation guide 320 to initiate a separation at the agent simulator 200. Specifically, the sequence of instructions to separate the agent simulator 200 from the simulation is illustrated by the flowchart, which determines the execution of the simulation guide 320. The simulation guide 320 executes the routine shown in the flowchart at regular intervals.

[0095] First, in step S302, it is determined whether alarm information has been received by the movement message dispatcher 310. In the flowchart, the movement message dispatcher is referred to as MMD. Movement messages are transmitted from each agent simulator 200 to the movement message dispatcher 310 at time intervals corresponding to the agent's time granularity. If a delay greater than a predetermined time is detected when receiving a movement message, the movement message dispatcher 310 transmits alarm information via the agent simulator 200 that transmitted the delayed movement message to the simulation leader 320.

[0096] Furthermore, in step S302, it is determined for all agent simulators 200 whether a simulation control message has been received from any of them. Messages in the flowchart refer to simulation control messages. If no alarm information has been received from the movement message dispatcher 310 and a simulation control message has been received from any of the agent simulators 200, further processing is skipped.

[0097] The process proceeds to step S304 if alarm information is received from the motion message dispatcher 310 or if no simulation control message is received from any of the agent simulators. In step S304, for agent simulator 200, the value of a separation determination counter CountDC, which is provided for each agent simulator 200, is decreased by 1 according to the positive determination in step S302. The initial value of the separation determination counter is set to the maximum permissible number (for example, 3).

[0098] In step S306, it is determined for each separation determination counter whether its value is less than or equal to zero. The process of the following step S308 is skipped until the value of the separation determination counter is less than or equal to zero. If the value of the separation determination counter becomes zero or less, a separation instruction wait state is set in agent simulator 200 in step S308, where the value of the separation determination counter becomes zero or less.

[0099] In the following step S310, a list of Agent 200 is created that has entered the separation instruction wait state. Then, in step S312, a simulation control message "Agent-Simulator Separation" and associated information for all Agent Simulators 200 are transmitted. This information includes the number of Agent Simulators to be separated from the simulation and the ID of each Agent Simulator to be separated. The Agent Simulator in the list is separated from the simulation upon receiving the simulation control message "Agent-Simulator Separation". 1-3-4. Process to restart the simulation after a stop

[0100] As described above, in the MAS system 100, the agent simulator 200 detaches from the simulation in the delayed state either through its own determination of agent simulator 200 or through the determination of the simulation guide 320. This prevents the agent simulator 200 from becoming rate-limiting in the delayed state when the simulation speed is increased. However, if the number of agent simulators 200 detaching from the simulation increases, it becomes increasingly difficult to complete the simulation.

[0101] Therefore, the simulation guide 320 determines whether the number of agent simulators 200 that have disconnected from the simulation has exceeded a predetermined threshold. If the condition in which the number of disconnected agent simulators exceeds the predetermined threshold persists for a number greater than or equal to the threshold, the simulation guide 320 transmits a simulation control message "Stop" to all agent simulators 200. The simulation control message "Stop" corresponds to an instruction to stop the simulation for each agent simulator 200.

[0102] After the simulation is stopped, the Simulation Guide 320 rewinds the simulation time in the past to restart the simulation. Fig. Figure 11 is a sequence diagram illustrating the process of rewinding and restarting the simulation according to the specifications of the simulation guide 320. Although three agent simulators 200 appear in the sequence diagram, only the processing performed by one agent simulator 200 is shown as a representative example.

[0103] Each Agent Simulator 200 stops the simulation (S902 of steps) when the simulation control message "Stop" is transmitted by the Simulation Leader 320. Each Agent Simulator 200 then retrieves from the simulation's data log the last time at which the aforementioned remaining time had a positive value (step S904). The retrieved last time corresponds to the last time at which the simulation can be restarted. Each Agent Simulator 200 transmits a simulation control message "Restartable Time" to the Simulation Leader 320, including the retrieved last time as the restartable time.

[0104] The simulation guide 320 acknowledges receipt of simulation control messages "restartable time" from the number of agent simulators (200) that exceed a threshold ratio (step S802). The simulation guide 320 calculates the latest time from the received restartable times and sets it to a simulation restart time (step S804). The simulation guide 320 transmits the restart time, along with a simulation control message "Restart Waiting," to the agent simulator (200) that received the simulation control message in step S802.

[0105] Each Agent Simulator 200 reads the state at the instructed restart time from the data log and resets the Agent Simulator 200's state (step S906). Once the simulation is ready for a restart, the Agent Simulator 200 transmits a simulation control message "ready for restart" to the Simulation Guide 320.

[0106] The simulation guide 320 acknowledges receipt of simulation control messages "ready for restart" from all agent simulators 200 that received the simulation control message at step S802 (step S806). The simulation guide 320 then transmits a simulation control message "restart" to the agent simulator 200 that received the simulation control message at step S802.

[0107] As soon as the simulation control message "Restart" is received, the agent simulator 200 restarts the simulation from the state reset at step S906 (step S908). 2. Overall configuration and information flow of the MAS system

[0108] The following describes the overall configuration of the MAS system 100, which is capable of performing the simulation speed control described above, and information flows with reference to Fig. 12 described. As in Fig. As shown in Figure 12, the MAS system 100 comprises a plurality of agent simulators 200, a center controller 300, and a back-end server 400 for a plurality of service systems. As described in detail later, these are distributed across a plurality of computers. That is, the MAS system 100 corresponds to a system based on parallel distributed processing by a plurality of computers.

[0109] The Center Controller 300 includes, as a function, a Movement Message Dispatcher 310 and a Simulation Guide 320. The Center Controller 300 corresponds to application software installed on the computer. The Movement Message Dispatcher 310 and the Simulation Guide 320 correspond to programs that incorporate the application software. The Center Controller 300 can share a computer, which corresponds to hardware, with one or more Agent Simulators 200, but preferably uses only one computer.

[0110] The motion message dispatcher 310 manages the transmission and reception of motion messages between the agent simulators 200. The information flows between the agent simulators 200 and the motion message dispatcher 310, represented by solid lines, indicate the flow of motion messages. The motion message dispatcher 310 is responsible for exchanging the motion messages provided by the center controller 300, as described above. The motion message dispatcher 310 communicates with all agent simulators 200 that are part of the MAS system 100.

[0111] The Simulation Guide 320 exchanges simulation control messages with the Agent Simulators 200. The information flow between the Agent Simulator 200 and the Simulation Guide 320, indicated by dashed lines, corresponds to the flow of simulation control messages. Unlike movement messages, which are exchanged between the majority of Agent Simulators 200 via the Movement Message Dispatcher 310, simulation control messages are exchanged separately between the Simulation Guide 320 and the individual Agent Simulators 200.

[0112] The Back-End Server 400 is the same back-end server actually used in the real-world service system. By bringing the Back-End Server 400 from the real world into the virtual world, the service provided by the service system can be simulated with high accuracy. The services simulated in the MAS System 100 can include, for example, mobility services such as on-demand buses and ferry-like buses using autonomous vehicles, as well as logistics services for package delivery using autonomous mobile robots. The service simulated by the MAS System 100 is, for example, a service that can be used by a user operating a service application on a user device.

[0113] The MAS system 100 comprises multiple back-end servers 400 for different service systems and can uniformly simulate several types of services in virtual world 2. Service simulation is performed through the exchange of service messages between the back-end server 400 and the agent simulator 200. Information flows between the agent simulators 200 and the back-end servers 400, indicated by dotted lines, show the flow of service messages. Each back-end server 400 exchanges service messages with the agent simulator 200 related to service provisioning.

[0114] The content of the exchanged service messages depends on the agent type for which Agent Simulator 200 is responsible. For example, if the agent is a user (a pedestrian) utilizing services, the Back-End Server 400 receives service messages, including service usage information, from Agent Simulator 200 and transmits service messages, including service provisioning status information, to Agent Simulator 200. The service usage information corresponds to information about the current state and future plan of the user's use of the service system and includes current usage status and input information from an application operator. The service provisioning status information corresponds to information about the user's state within the service system and corresponds to information provided by a service application on the user's terminal device.

[0115] If the agent is an autonomous robot or vehicle used to provide services, the back-end server 400 receives service messages, including operational status information, from the agent simulator 200 and transmits service messages, including operating instruction information, to the agent simulator 200. The operational status information corresponds to information about the current state and future plan of an autonomous robot or vehicle. The current state information includes, for example, the status of mounted sensors, measurement data, the status of mounted actuators, and the status regarding an action decision. The future plan information includes, for example, a list of future times, the status of actuators, and the status of action decisions.The operating instructions information corresponds to information that encompasses all or part of the future plan for providing services using an autonomous robot or autonomous vehicle. For example, the operating instructions include target points and paths to which or along which an autonomous robot or autonomous vehicle is to move.

[0116] The agents present in virtual world 2 include stationary objects, such as roadside sensors (including cameras) and automatic doors. For example, if the agent is a designated camera, back-end server 400 receives service messages from agent simulator 200 containing image information from that camera, which is necessary for calculating the autonomous robot's location information. Similarly, if the agent is an automatic door, back-end server 400 also transmits service messages to agent simulator 200 containing instructions to open the door for the autonomous robot to pass through.

[0117] Back-End Server 400 exchanges service messages with other Back-End Servers 400 according to their respective agreements. Information flows, indicated by dashed lines between Back-End Servers 400, show the flow of service messages. The service messages exchanged at any given time include, for example, the user's usage status for each service and the service's provisioning status. The exchange of service messages between the majority of Back-End Servers 400 enables the services provided in Virtual World 2 to be interconnected.

[0118] An example of connecting multiple services is the link between an on-demand bus service and a logistics service, where autonomous robots transport packages from bus stops to users' homes. With the on-demand bus service, a user can get off the bus at a desired time and location. By linking the on-demand bus service and the logistics service, the autonomous robot can arrive at the drop-off point before the user and wait for them to arrive. Furthermore, if the bus is delayed due to traffic congestion or similar reasons, or if the user is delayed on the bus, the exchange of service messages between the 400 back-end servers allows the autonomous robot's dispatch time to the drop-off point to be adjusted to the user's arrival time.

[0119] However, some back-end servers actually used in real-world service systems cannot adjust their processing speed. If a time-dependent service is deployed in Virtual World 2 using such a back-end server, a change in the speed ratio of the time flow in Virtual World 2 to the time flow in the real world will prevent the service provided by the service system from being simulated. Therefore, when running the simulation under a change in the speed ratio, it is preferable for the service deployed in Virtual World 2 to be equivalent to a service without the concept of time.

[0120] There are multiple types of Agent Simulator 200, corresponding to the types of agents they are responsible for. For example, there is an Agent Simulator 201 for a pedestrian agent, an Agent Simulator 202 for an autonomous robot / vehicle agent, an Agent Simulator 203 for a VR pedestrian agent, and an Agent Simulator 204 for a street-side sensor agent. Hereinafter, Agent Simulator 200 is a generic term for the multiple types of Agent Simulators 201, 202, 203, and 204.

[0121] Agent Simulator 200 comprises, as a function, a transmit / receive controller 210, a 3D physics engine 220, a service system client simulator 230, and a simulator core 240. Agent Simulator 200 corresponds to application software installed on the computer. The transmit / receive controller 210, the 3D physics engine 220, the service system client simulator 230, and the simulator core 240 are programs that comprise the application software. These functions differ in Agent Simulators 201, 202, 203, and 204. This section describes the functions that are generally common to agent simulators 201, 202, 203, and 204, and details of the functions of agent simulators 201, 202, 203, and 204 will be described later.

[0122] The transmit / receive controller 210 serves as an interface between the agent simulator 200 and other programs. The transmit / receive controller 210 receives movement messages from the movement message dispatcher 310 and transmits or sends movement messages to the movement message dispatcher 310. However, the agent simulator 204 only receives movement messages. The transmit / receive controller 210 receives simulation control messages from the simulation leader 320 and transmits simulation control messages to the simulation leader 320. The transmit / receive controller 210 receives service messages from the back-end server 400 and transmits service messages to the back-end server 400. However, the agent simulator 204 only transmits or sends service messages.

[0123] The 3D physics engine 220 estimates the current states of surrounding agents in three-dimensional space based on motion messages received from other agent simulators 200. The estimation of the current states of surrounding agents based on previous states is performed by the 3D physics engine 220. The 3D physics engine 220 generates peripheral information obtained by the ego agent through observation based on the current states of surrounding agents. The 3D physics engine 220 updates the state of the ego agent in three-dimensional space based on the simulation result of the simulator core 240 (described later) and generates motion messages representing the ego agent's state.However, in Agent Simulator 204, the status of the ego agent is not updated and no movement messages are generated, because the agent for whom Agent Simulator 204 is responsible is fixed.

[0124] The Service System Client Simulator 230 simulates the behavior of the Ego agent as a client of the service system connected to the back-end server 400. Service messages received by the send / receive controller 210 are entered into the Service System Client Simulator 230. Service messages generated by the Service System Client Simulator 230 are transmitted by the send / receive controller 210. However, the Agent Simulator 204 only performs the generation of service messages.

[0125] Simulator kernel 240 simulates the state of the ego agent in the next time step. The time interval of the time step for calculating the ego agent's state corresponds to the aforementioned time granularity. The content of the simulation in simulator kernel 240 differs for each type of agent simulator 200. It should be noted that agent simulator 204 does not have simulator kernel 240, as the agent for which agent simulator 204 is responsible is fixed, and simulating the ego agent's state is not necessary. 3. Detailed configuration and information flow of the agent simulator

[0126] The following is a detailed configuration and information flows of the various agent simulators 201, 202, 203, 204, which the MAS system 100 features, with reference to the Fig. 13 to Fig. 16 described. In the Fig. 13 to Fig. 16. Information flows between blocks, indicated by solid lines, represent flows of movement messages. Information flows between blocks, indicated by dotted lines, represent flows of service messages. Information flows between blocks, indicated by dashed lines, represent flows of simulation control messages. 3-1. Agent Simulator for Pedestrian Agents

[0127] Fig. Figure 13 is a block diagram illustrating the configuration and information flows of Agent Simulator 201 for a pedestrian agent. The following sections describe the overall configuration of Agent Simulator 201 for the pedestrian agent, the details of each component, and the information flows within Agent Simulator 201. 3-1-1. Overall configuration of an agent simulator for a pedestrian agent

[0128] The agent simulator 201 includes as functions a transmit / receive controller 211, a 3D physics engine 221, a service system client simulator 231, and a simulator core 241. These functions are conceptually encompassed in the transmit / receive controller 210, the 3D physics engine 220, the service system client simulator 230, and the simulator core 240, respectively.

[0129] The transmit / receive controller 211 comprises a motion message receiver unit 211a, a service message receiver unit 211b, and a control message receiver unit 211c as functions for receiving various messages. The transmit / receive controller 211 also comprises a motion message transmitter unit 211d, a service message transmitter unit 211e, and a control message transmitter unit 211f as functions for transmitting various messages. Furthermore, the transmit / receive controller 211 includes a residual time rate calculation unit 211g and a simulation operation control unit 211h. Each of the units 211a to 211h that the transmit / receive controller 211 has corresponds to a program or a part of a program. It should be noted that the description in each block describes a representative function of each unit and does not necessarily correspond to the name of the respective unit.

[0130] The 3D physics engine 221 comprises, as functions, an update unit 221a for the state of a surrounding agent, a generation unit 221b for visual information, and an update unit 221c for an ego-agent state. Each of the units 221a, 221b, and 221c that the 3D physics engine 221 has corresponds to a program or a part of a program. It should be noted that the description in each block describes a representative function of each unit and does not necessarily correspond to the name of the respective unit.

[0131] The Service System Client Simulator 231 comprises, as functions, a Service Provisioning State Information Processing Unit 231a and a Service Usage Information Generation Unit 231b. Each of the units 231a and 231b that the Service System Client Simulator 231 has corresponds to a program or a part of a program. It should be noted that the description in each block describes a representative function of each unit and does not necessarily correspond to the name of the respective unit.

[0132] The simulator kernel 241 comprises the following functions: a determination unit 241a for a global motion concept, a behavior determination unit 241b, a state calculation unit 241d for a next time step, a service usage behavior determination unit 241le, and a speed adjustment unit 241g. Each of the units 241a, 241b, 241d, 241e, and 241g that the simulator kernel 241 has corresponds to a program or a part of a program. It should be noted that the description in each block describes a representative function of each unit and does not necessarily correspond to the name of the respective unit. 3-1-2. Details of the transmit / receive controller

[0133] In the transmit / receive controller 211, the motion message receiver unit 211a receives a motion message from the motion message dispatcher 310. The motion message receiver unit 211a outputs the received motion message to the update unit 221a for the state of a surrounding agent of the 3D physics engine 221. Additionally, the motion message receiver unit 211a outputs information, including the time at which the motion message is received, to the remaining time rate calculation unit 211g.

[0134] The service message receiver 211b receives a service message from the back-end server 400. The service message receiver 211b outputs the received service message to the service provisioning status information processing unit 231a of the service system client simulator 231.

[0135] The control message receiver 211c receives a simulation control message from the simulation guide 320. The control message receiver 211c outputs the received simulation control message to the simulation operation control unit 211h.

[0136] The motion message transmitter unit 211d receives a motion message, including the current state of the ego agent, from the update unit 221c for an ego agent state of the 3D physics engine 221. The motion message transmitter unit 211d transmits the received motion message to the motion message dispatcher 310. Additionally, the motion message transmitter unit 211d transmits information, including the transmission completion time of the motion message, to the remaining time rate calculation unit 211g.

[0137] The service message transmitter unit 211e receives a service message, including service usage information, from the service usage information generation unit 231b of the service system client simulator 231. The service message transmitter unit 211e then transmits the received service message to the back-end server 400.

[0138] The control message transmitter 211f receives a simulation control message, including information about the velocity state of the simulation, from the residual time rate computation unit 211g. The control message transmitter 211f also receives a simulation control message, including the control state of the agent simulator 201, from the simulation operation control unit 211h. The control message transmitter 211f then transmits the simulation control messages received from the residual time rate computation unit 211g and the simulation operation control unit 211h to the simulation guide 320.

[0139] The residual time rate calculation unit 211g obtains information, including the reception time of the movement message, from the movement message receiving unit 211a. The residual time rate calculation unit 211g also obtains information, including the transmission completion time of the movement message, from the movement message sending unit 211d. Furthermore, the residual time rate calculation unit 211g obtains the calculation start time for updating the state of the ego agent from the state calculation unit 241d for the next time step of the simulator core 241.

[0140] The remaining time rate calculation unit 211g outputs a simulation control message, including the remaining time, the remaining time rate, and the delay time, to the control message transmitter unit 211f. The remaining time, the remaining time rate, and the delay time correspond to information about the speed state of the simulation. The simulation guide 320, which has received the simulation control message including the above information, determines control contents to be instructed at the agent simulator 201. The control contents to be instructed at the agent simulator 201 correspond, for example, to the simulation speed, stopping the simulation, pausing the simulation, and restarting the simulation. The simulation guide 320 creates a simulation control message containing the control contents to be instructed and transmits or sends it to the agent simulator 201.

[0141] The simulation operation control unit 211h receives a simulation control message from the control message receiver unit 211c. The simulation operation control unit 211h controls the simulation operation of the agent simulator 201 according to an instruction contained in the simulation control message. For example, if a change in the simulation's time granularity is instructed, the simulation operation control unit 211h changes the simulation's time granularity through the agent simulator 201 from its initial value to the instructed time granularity. The initial time granularity value is stored as a setting in the agent simulator 201. The upper and lower limits of the time granularity are stored for each agent type in the simulation guide 320.

[0142] If the instruction content of the simulation control message corresponds to the simulation speed, the simulation operation control unit 211h accelerates or decelerates the simulation speed by changing the operating frequency of the 3D physics engine 221 and the simulator cores 241. For example, the instructed simulation speed is output to the speed adjustment unit 241g of the simulator core 241. The simulation speed represents a speed ratio of the time flow in the virtual world 2 to the time flow in the real world. If the simulation is instructed to stop, the simulation operation control unit 211h stops the simulation via the agent simulator 201.When a simulation restart is instructed, the simulation operation control unit 211h restarts the simulation. The simulation operation control unit 211h outputs a simulation control message, including the current control state of the agent simulator 201, to the control message transmitter unit 211f. 3-1-3. Details of the 3D physics engine

[0143] In the 3D physics engine 221, the update unit 221a receives a movement message from the movement message receiver unit 211a regarding the state of a nearby agent. The movement message received by the movement message receiver unit 211a corresponds to a movement message transmitted by another agent simulator via the movement message dispatcher 310. The update unit 221a estimates the current state of any nearby agent existing around the ego agent based on the received movement message.

[0144] When the current state of a surrounding agent is estimated from a past state, the update unit 221a for a surrounding agent state uses the past state of the surrounding agent stored in the log. The current state of the surrounding agent can be estimated, for example, by linear extrapolation based on the last two or more past states of the surrounding agent. If the number of past states of the surrounding agent is one, the single past state can be estimated as the current state of the surrounding agent. The update unit 221a for a surrounding agent state outputs the estimated current state of the surrounding agent to the visual information generation unit 221b and updates the log.

[0145] The visual information generation unit 221b obtains the current state of the surrounding agent from the update unit 221a for the state of a surrounding agent. Visual information generation unit 221b generates peripheral information obtained through observation by the ego agent, based on the current state of the surrounding agent. Since the ego agent is a pedestrian, the peripheral information obtained through observation represents visual information perceived by the pedestrian's eyes. Visual information generation unit 221b outputs the generated visual information to the determination unit 241a for a global movement concept, the behavior determination unit 241b, and the service usage behavior determination unit 241e of the simulator core 241.

[0146] The update unit 221c for an ego-agent state obtains the ego-agent's state for the next time step, simulated by the simulator core 241, from the state calculation unit 241d for the next time step of the simulator core 241. The update unit 221c for an ego-agent state updates the ego-agent's state in three-dimensional space based on the simulation result from the simulator core 241. The update unit 221c for an ego-agent state outputs a motion message, including the updated state of the ego-agent, to the motion message transmitter unit 211d of the transmit / receive controller 211. The ego-agent's state contained in the motion message includes the location, direction, velocity, and acceleration in the current time step, and the location, direction, velocity, and acceleration in the next time step.In addition, the update unit 221c for an Ego agent state outputs information about the updated state of the Ego agent to the service usage information generation unit 231b of the service system client simulator 231. 3-1-4. Details of the Service System Client Simulator

[0147] In the service system client simulator 231, the service provisioning state information processing unit 231a receives a service message from the service message receiver unit 211b. The service message received from the service message receiver unit 211b contains service provisioning state information. The service provisioning state information processing unit 231a processes this information and obtains information about the state of the ego agent as a user of the service system and the input elements required for the service application on the user terminal. The information about the ego agent's state as a user corresponds to information presented to the user terminal, and the input elements correspond to information that is requested so that the ego agent can use the service.The service provisioning state information processing unit 231a outputs the information about the state of the ego agent as user and the input elements in the service application of the user terminal to the determination unit 241a for a global movement concept and the service usage behavior determination unit 241e of the simulator core 241.

[0148] The service usage information generation unit 231b obtains the determination result of the ego agent's service usage behavior from the service usage behavior determination unit 241e of the simulator core 241. Additionally, the service usage information generation unit 231b obtains the ego agent's state in three-dimensional space from the update unit 221c for an ego agent state of the 3D physics engine 221. Based on the obtained information, the service usage information generation unit 231b generates service usage information and updates the ego agent's service usage state. The service usage information generation unit 231b outputs a service message, including the service usage information, to the service message sending unit 211e of the transmit / receive controller 211. 3-1-5. Details of the simulator core

[0149] In the simulator core 241, the determination unit 241a for a global motion concept obtains visual information from the visual information generation unit 221b of the 3D physics engine 221. The determination unit 241a for a global motion concept also obtains information about the state of the ego agent as a user and the input elements of the service application of the user terminal from the service provisioning state information processing unit 231a of the service system client simulator 231. Based on the obtained information, the determination unit 241a for a global motion concept determines a global motion concept of the ego agent in the virtual world 2. The determination unit 241a for a global motion concept outputs the determined global motion concept to the behavior determination unit 241b.

[0150] The behavior determination unit 241b obtains the global motion concept from the determination unit 241a for a global motion concept and obtains visual information from the generation unit 221b for visual information of the 3D physics engine 221. The behavior determination unit 241b determines the behavior of the ego agent by inputting the global motion concept and the visual information into a motion model 241c. The motion model 241c corresponds to a simulation model that models how a pedestrian moves in accordance with environmental conditions as perceived by the pedestrian under a specific motion concept. The behavior determination unit 241b outputs the determined behavior of the ego agent to the state calculation unit 241d for the next time step.The behavior determination unit 241b outputs the specified behavior of the ego agent to the state calculation unit 241d for the next time step.

[0151] The state calculation unit 241d for the next time step obtains the behavior of the ego agent, which is determined by the behavior determination unit 241b. The state calculation unit 241d for the next time step calculates the state of the ego agent in the next time step based on the ego agent's behavior. The calculated state of the ego agent includes the ego agent's location, direction, velocity, and acceleration in the next time step. The state calculation unit 241d for the next time step outputs the calculated state of the ego agent in the next time step to the update unit 221c for an ego agent state of the 3D physics engine 221. The state calculation unit 241d for the next time step outputs the start time of the calculation for updating the state of the ego agent to the residual time rate calculation unit 211g of the transmit / receive controller 211.

[0152] The service usage behavior determination unit 241e obtains visual information from the visual information generation unit 221b of the 3D physics engine 221. Additionally, the service usage behavior determination unit 241e obtains information about the state of the ego agent as a user and the input elements in the service application of the user terminal from the service provisioning state information processing unit 231a of the service system client simulator 231. The service usage behavior determination unit 241e inputs the obtained information into a behavior model 241f to determine the behavior of the ego agent as a user of the service system (service usage behavior).The behavioral model 241f is a simulation model that models how a user behaves according to environmental conditions that appear to the user when information about the service is presented to the user and input is requested from the service application on the user's terminal device. The service usage behavior determination unit 241e outputs the determined service usage behavior to the service usage information generation unit 231b.

[0153] 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 corresponds to the simulation speed instructed by the simulation guide 320. The speed adjustment unit 241g accelerates or decelerates the simulation speed of the ego agent via the simulator core 241 according to an instruction from the simulation guide 320. 3-2. Agent Simulator for Autonomous Robot / Vehicle Agents

[0154] Fig. Figure 14 is a block diagram depicting the configuration and information flows of Agent Simulator 202 for an autonomous robot / vehicle agent. The autonomous robot / vehicle agent corresponds to an agent for an autonomous robot or vehicle, which is used to provide services within the service system to which the back-end server 400 refers. The following sections describe the overall configuration of Agent Simulator 202 for the autonomous robot / vehicle agent, the details of each component, and the information flows within Agent Simulator 202. 3-2-1. Overall configuration of an agent simulator for autonomous robot / vehicle agents

[0155] The agent simulator 202 includes as functions a transmit / receive controller 212, a 3D physics engine 222, a service system client simulator 232, and a simulator core 242. These functions are conceptually encompassed in the transmit / receive controller 210, the 3D physics engine 220, the service system client simulator 230, and the simulator core 240, respectively.

[0156] The transmit / receive controller 212 comprises a motion message receiver unit 212a, a service message receiver unit 212b, and a control message receiver unit 212c as functions for receiving various messages. The transmit / receive controller 212 comprises a motion message transmitter unit 212d, a service message transmitter unit 212e, and a control message transmitter unit 212f as functions for transmitting various messages. The transmit / receive controller 212 further comprises a residual time rate calculation unit 212g and a simulation operation control unit 212h. Each of the units 212a to 212h that the transmit / receive controller 212 has corresponds to a program or a part of a program. It should be noted that the description in each block describes a representative function of each unit and does not necessarily correspond to the name of the respective unit.

[0157] The 3D physics engine 222 comprises, as functions, an update unit 222a for the state of a surrounding agent, a sensor information generation unit 222b, and an update unit 222c for an ego-agent state. Each of the units 222a, 222b, and 222c that the 3D physics engine 222 has corresponds to a program or a part of a program. It should be noted that the description in each block describes a representative function of each unit and does not necessarily correspond to the name of the respective unit.

[0158] The Service System Client Simulator 232 comprises, as functions, a path planning information receiving unit 232a and an operating state information generating unit 232b. Each of the units 232a and 232b that the Service System Client Simulator 232 has corresponds to a program or a part of a program. It should be noted that the description in each block describes a representative function of each unit and does not necessarily correspond to the name of the respective unit.

[0159] The simulator kernel 242 comprises the following functions: a planning unit 242a for a global path, a planning unit 242b for a local path, an actuator actuation amount determination unit 242c, and a state calculation unit 242d for the next time step. Each of the units 242a, 242b, 242c, and 242d that the simulator kernel 242 has corresponds to a program or a part of a program. It should be noted that the description in each block describes a representative function of each unit and does not necessarily correspond to the name of the respective unit. 3-2-2. Details of the transmit / receive controller

[0160] In the transmit / receive controller 212, the motion message receiver unit 212a receives a motion message from the motion message dispatcher 310. The motion message receiver unit 212a outputs the received motion message to the update unit 222a for the state of a surrounding agent of the 3D physics engine 222. Additionally, the motion message receiver unit 212a outputs information, including the time at which the motion message is received, to the remaining time rate calculation unit 212g.

[0161] The service message receiver 212b receives a service message from the back-end server 400. The service message receiver 212b outputs the received service message to the path planning information receiver 232a of the service system client simulator 232.

[0162] The control message receiver 212c receives a simulation control message from the simulation guide 320. The control message receiver 212c outputs the received simulation control message to the simulation operation control unit 212h.

[0163] The motion message transmitter unit 212d receives a motion message, including the current state of the ego agent, from the update unit 222c for an ego agent state of the 3D physics engine 222. The motion message transmitter unit 212d transmits the received motion message to the motion message dispatcher 310. Additionally, the motion message transmitter unit 212d transmits information, including the transmission completion time of the motion message, to the remaining time rate calculation unit 212g.

[0164] The service message transmitter unit 212e receives a service message, including operational status information, from the operational status information generation unit 232b of the service system client simulator 232. The service message transmitter unit 212e transmits the received service message to the back-end server 400.

[0165] The control message transmitter 212f receives a simulation control message, including information about the velocity state of the simulation, from the residual time rate calculation unit 212g. The control message transmitter 212f also receives a simulation control message, including the control state of the agent simulator 202, from the simulation operation control unit 212h. The control message transmitter 212f then transmits the simulation control messages received from the residual time rate calculation unit 212g and the simulation operation control unit 212h to the simulation guide 320.

[0166] The residual time rate calculation unit 212g obtains information, including the reception time of the movement message, from the movement message receiving unit 212a. The residual time rate calculation unit 212g also obtains information, including the transmission completion time of the movement message, from the movement message sending unit 212d. Furthermore, the residual time rate calculation unit 212g obtains the start time of the calculation for updating the state of the ego agent from the state calculation unit 242d for the next time step of the simulator core 242.

[0167] The remaining time rate calculation unit 212g calculates the remaining time, the remaining time rate, and the delay time based on the information obtained through the equations described above. The remaining time rate calculation unit 212g outputs a simulation control message, including the remaining time, the remaining time rate, and the delay time, to the control message transmitter unit 212f. Upon receiving the simulation control message, including the aforementioned information, the simulation guide 320 creates a simulation control message containing the control content to be instructed at the agent simulator 202 and transmits the simulation control message to the agent simulator 202.

[0168] The simulation operation control unit 212h receives a simulation control message from the control message receiver unit 212c. The simulation operation control unit 212h controls the simulation operation of the agent simulator 202 according to an instruction contained in the simulation control message. For example, if a change in the simulation's time granularity is instructed, the simulation operation control unit 212h changes the simulation's time granularity through the agent simulator 202 from its initial value to the instructed time granularity. The initial time granularity value is stored as a setting in the agent simulator 202. The upper and lower limits of the time granularity are stored for each agent type in the simulation guide 320.

[0169] If the instruction content of the simulation control message corresponds to the simulation speed, the simulation operation control unit 212h changes the operating frequency of the 3D physics engine 222 and the simulator cores 242 according to the instructed simulation speed and accelerates or decelerates the operating speed of the agent simulator 202. If the simulation is instructed to stop, the simulation operation control unit 212h stops the simulation via the agent simulator 202. If the simulation is instructed to stop, the simulation operation control unit 212h stops the simulation. If the simulation is instructed to restart, the simulation operation control unit 212h restarts the simulation. The simulation operation control unit 212h outputs a simulation control message, including the current control state of the agent simulator 202, to the control message transmitter unit 212f. 3-2-3. Details of the 3D physics engine

[0170] In the 3D physics engine 222, the update unit 222a receives a movement message from the movement message receiver unit 212a for the state of a nearby agent. The movement message received by the movement message receiver unit 212a corresponds to a movement message transmitted by another agent simulator via the movement message dispatcher 310. The update unit 222a estimates the current state of any nearby agent existing around the ego agent based on the received movement message.

[0171] When the current state of the surrounding agent is estimated from its past state, the update unit 222a for a surrounding agent state uses the past state of the surrounding agent, which is stored in the log. The procedure for estimating the current state of the surrounding agent using the past state is designed as described above. The update unit 222a for a surrounding agent state outputs the estimated current state of the surrounding agent to the sensor information generation unit 222b and updates the log.

[0172] The sensor information generation unit 222b obtains the current state of the surrounding agent from the update unit 222a for a state of a surrounding agent. The sensor information generation unit 222b generates peripheral information obtained through an observation by the ego agent based on the current state of the surrounding agent. Since the ego agent is an autonomous robot or vehicle, peripheral information obtained through an observation represents sensor information acquired by a sensor mounted on the autonomous robot or vehicle. The sensor information generation unit 222b outputs the generated sensor information to the planning unit 242a for a global path of the simulator kernel 242 and to the operational state information generation unit 232b of the service system client simulator 232.

[0173] The update unit 222c for an ego-agent state obtains the ego-agent's state for the next time step, simulated by the simulator core 242, from the state calculation unit 242d for the next time step of the simulator core 242. The update unit 222c for an ego-agent state updates the ego-agent's state in three-dimensional space based on the calculation result from the simulator core 242. The update unit 222c for an ego-agent state outputs a motion message, including the updated state of the ego-agent, to the motion message transmitter unit 212d of the transmit / receive controller 212. The ego-agent's state contained in the motion message includes the location, direction, velocity, and acceleration in the current time step, and the location, direction, velocity, and acceleration in the next time step.In addition, the update unit 222c for an Ego agent state outputs the updated information about the Ego agent state to the operational state information generation unit 232b of the service system client simulator 232. 3-2-4. Details of the Service System Client Simulator

[0174] In the service system client simulator 232, the path planning information receiver 232a receives a service message from the service message receiver 212b. The service message received from the service message receiver 212b includes operating instruction information for the service system to provide services using the autonomous robot / vehicle, and information relating to other service systems. The path planning information receiver 232a outputs the operating instruction information and the other service system information to the planning unit 242a for a global path of the simulator core 242.

[0175] The operational state information generation unit 232b obtains the actuator actuation amount in the next time step of the ego agent from the actuator actuation amount determination unit 242c of the simulator core 242. The operational state information generation unit 232b also obtains sensor information from the sensor information generation unit 222b of the 3D physics engine 222, and obtains the state of the ego agent in three-dimensional space from the update unit 222c for an ego agent state. Based on the obtained information, the operational state information generation unit 232b generates operational state information that represents the operational state of the ego agent with respect to service provision. The operating status information generation unit 232b outputs a service message including the operating status information to the service message transmission unit 212e of the transmit / receive controller 212. 3-2-5. Details of the simulator core

[0176] In the simulator core 242, the global path planning unit 242a obtains sensor information from the sensor information generation unit 222b of the 3D physics engine 222. The global path planning unit 242a obtains the operating instruction information and other service system information from the path planning information receiver unit 232a of the service system client simulator 232. Based on the obtained information, the global path planning unit 242a plans the ego agent's global path in virtual world 2. The global path refers to the path from the ego agent's current location to the destination point. Since the information obtained from the sensor information generation unit 222b and the path planning information receiver unit 232a changes at all times, the global path planning unit 242a determines a global path plan for each time step.The path planning information receiver unit 232a outputs the specified global path plan to the planning unit 242b for a local path.

[0177] Planning unit 242b for a local path obtains the global path plan from planning unit 242a for a global path. Planning unit 242b for a local path determines a local path plan based on the global path plan. The local path plan represents, for example, a path from the current time to a time after a predetermined time step, or a path from the current position to a position separated by a predetermined distance. A local path plan is represented, for example, by a set or series of locations that the ego agent is to traverse and a speed or acceleration at each location. Planning unit 242b for a local path outputs the determined local path plan to actuator actuation amount determination unit 242c.

[0178] The actuator actuation amount determination unit 242c obtains the local path plan from the planning unit 242b for a given local path. Based on this local path plan, the actuator actuation amount determination unit 242c determines the actuator actuation amounts of the ego agent in the next time step. The actuators in this context include those that control the direction, speed, and acceleration of the ego agent. For example, if the ego agent is an autonomous robot / vehicle that travels on wheels, actuators such as a braking device, a drive device, and a steering device will be actuated. The actuator actuation amount determination unit 242c outputs the determined actuator actuation amounts to the state calculation unit 242d for the next time step and to the operational state information generation unit 232b of the service system client simulator 232.

[0179] The state calculation unit 242d for the next time step obtains the actuator actuation amounts determined by the actuator actuation amount determination unit 242c. The state calculation unit 242d for the next time step calculates the state of the ego agent in the next time step based on these actuator actuation amounts. The calculated state of the ego agent includes its location, direction, velocity, and acceleration in the next time step. The state calculation unit 242d for the next time step outputs the calculated state of the ego agent in the next time step to the update unit 222c for an ego agent state of the 3D physics engine 222. The state calculation unit 242d for a next time step outputs the start time of the calculation to update the state of the ego agent to the remaining time rate calculation unit 212g of the transmit / receive controller 212. 3-3. Agent Simulator for VR Pedestrian Agents

[0180] Fig. Figure 15 is a block diagram depicting the configuration and information flow of an agent simulator 203 for a VR pedestrian agent. The VR pedestrian agent is a pedestrian agent for a real person to participate in the virtual world 2, which is the target of the simulation using the VR (Virtual Reality) system. The following describes the overall configuration of the agent simulator 203 for the VR pedestrian agent, the details of each part, and the information flow within the agent simulator 203. 3-3-1. Overall configuration of an agent simulator for a VR pedestrian agent

[0181] The agent simulator 203 includes as functions a transmit / receive controller 213, a 3D physics engine 223, a service system client simulator 233, and a simulator core 243. These functions are conceptually encompassed in the transmit / receive controller 210, the 3D physics engine 220, the service system client simulator 230, and the simulator core 240, respectively.

[0182] The transmit / receive controller 213 comprises a motion message receiver unit 213a, a service message receiver unit 213b, and a control message receiver unit 213c as functions for receiving various messages. The transmit / receive controller 213 comprises a motion message transmitter unit 213d, a service message transmitter unit 213e, and a control message transmitter unit 213f as functions for transmitting various messages. The transmit / receive controller 213 further comprises a simulation operation control unit 213h. Each of the units 213a to 213f and 213h that the transmit / receive controller 213 has corresponds to a program or a part of a program. It should be noted that the description in each block describes a representative function of each unit and does not necessarily correspond to the name of the respective unit.

[0183] The 3D physics engine 223 comprises, as functions, an update unit 223a for the state of a surrounding agent, a generation unit 223b for visual information, and an update unit 223c for an ego-agent state. Each of the units 223a, 223b, and 223c that the 3D physics engine 223 has corresponds to a program or a part of a program. It should be noted that the description in each block describes a representative function of each unit and does not necessarily correspond to the name of the respective unit.

[0184] The Service System Client Simulator 233 comprises, as functions, a Service Provisioning State Information Processing Unit 233a and a Service Usage Information Generation Unit 233b. Each of the units 233a and 233b that the Service System Client Simulator 233 has corresponds to a program or a part of a program. It should be noted that the description in each block describes a representative function of each unit and does not necessarily correspond to the name of the respective unit.

[0185] The simulator kernel 243 comprises the following functions: a recognition determination information display unit 243a, a motion operation acceptance unit 243b, a state calculation unit 243c for the next time step, and an application operation acceptance unit 243d. Each of the units 243a, 243b, 243c, and 243d that the simulator kernel 243 has corresponds to a program or a part of a program. It should be noted that the description in each block describes a representative function of each unit and does not necessarily correspond to the name of the respective unit. 3-3-2. Details of the transmit / receive controller

[0186] In the transmit / receive controller 213, the motion message receiver unit 213a receives a motion message from the motion message dispatcher 310. The motion message receiver unit 213a outputs the received motion message to the update unit 223a for a state of a surrounding agent of the 3D physics engine 223.

[0187] The service message receiver 213b receives a service message from the back-end server 400. The service message receiver 213b outputs the received service message to the service provisioning status information processing unit 233a of the service system client simulator 233.

[0188] The control message receiver 213c receives a simulation control message from the simulation guide 320. The control message receiver 213c outputs the received simulation control message to the simulation operation control unit 213h.

[0189] The motion message transmitter unit 213d receives a motion message, including the current state of the ego agent, from the update unit 223c for an ego agent state of the 3D physics engine 223. The motion message transmitter unit 213d then transmits the received motion message to the motion message dispatcher 310.

[0190] The service message transmitter unit 213e receives a service message, including service usage information, from the service usage information generation unit 233b of the service system client simulator 233. The service message transmitter unit 213e transmits the received service message to the back-end server 400.

[0191] The control message transmitter 213f receives a simulation control message, including the control state of the agent simulator 203, from the simulation operation control unit 213h. The control message transmitter 213f then transmits the simulation control message received from the simulation operation control unit 213h to the simulation guide 320.

[0192] The simulation operations control unit 213h receives a simulation control message from the control message receiver unit 213c. The simulation operations control unit 213h controls the simulation operation of the agent simulator 203 according to an instruction contained in the simulation control message. If the VR pedestrian agent does not meet the participation condition in virtual world 2, the simulation guide 320 instructs the agent simulator 203 to terminate the simulation.

[0193] The agent simulators 201, 202, and agent simulator 204, described above, can change the simulation speed as needed. However, if the simulation speed is changed, a real-world participant in virtual world 2 via the VR pedestrian agent may experience significant discomfort due to the time flow deviating from that of the real world. Therefore, in the MAS system 100, the VR pedestrian agent's participation in virtual world 2 is permitted only if the simulation is conducted in real time. If the simulation speed is accelerated or decelerated more than the time flow in the real world, the simulation guide 320 stops the simulation by agent simulator 203.The simulation operation control unit 213h outputs a simulation control message including the current control state of the agent simulator 203 to the control message transmitter unit 213f. 3-3-3. Details of the 3D physics engine

[0194] In the 3D physics engine 223, the update unit 223a receives a movement message from the movement message receiver unit 213a for the state of a nearby agent. The movement message received by the movement message receiver unit 213a corresponds to a movement message transmitted by another agent simulator via the movement message dispatcher 310. The update unit 223a estimates the current state of any nearby agent existing around the ego agent based on the received movement message.

[0195] When the current state of the surrounding agent is estimated from its past state, the update unit 223a for a surrounding agent state uses the surrounding agent's past state, which is stored in the log. The procedure for estimating the current state using the surrounding agent's past state is designed as described above. The update unit 223a for a surrounding agent state outputs the estimated current state of the surrounding agent to the visual information generation unit 223b and updates the log.

[0196] The visual information generation unit 223b obtains the current state of the surrounding agent from the update unit 223a for the state of a surrounding agent. The visual information generation unit 223b generates peripheral information obtained through observation by the ego agent, based on the current state of the surrounding agent. Since the ego agent is a pedestrian, the peripheral information obtained through observation represents visual information perceived by the pedestrian's eyes. The visual information generation unit 223b outputs the generated visual information to the recognition determination information display unit 243a and the motion operation acceptance unit 243b of the simulator core 243.

[0197] The update unit 223c for an ego-agent state obtains the state of the ego-agent in the next time step, calculated by the simulator core 243, from the state calculation unit 243c for the next time step of the simulator core 243. The update unit 223c for an ego-agent state updates the state of the ego-agent in three-dimensional space based on the calculation result by the simulator core 243. The update unit 223c for an ego-agent state outputs a motion message, including the updated state of the ego-agent, to the motion message transmitter unit 213d of the transmit / receive controller 213. The state of the ego-agent contained in the motion message includes the location, direction, velocity, and acceleration in the current time step, and the location, direction, velocity, and acceleration in the next time step.In addition, the update unit 223c for an Ego agent state outputs information about the updated state of the Ego agent to the service usage information generation unit 233b of the service system client simulator 233. 3-3-4. Details of the Service System Client Simulator

[0198] In the service system client simulator 233, the service provisioning state information processing unit 233a receives a service message from the service message receiver unit 213b. The service message received from the service message receiver unit 213b contains service provisioning state information. The service provisioning state information processing unit 233a processes this information and obtains information about the state of the ego agent as a user of the service system and the input elements required for the service application on the user terminal. The information about the ego agent's state as a user corresponds to information presented to the user terminal, and the input elements correspond to information that is requested so that the ego agent can use the service.The service provisioning status information processing unit 233a outputs the information about the state of the ego agent as user and the input elements in the service application of the user terminal to the recognition determination information display unit 243a and the application operation acceptance unit 243d of the simulator core 243.

[0199] The service usage information generation unit 233b obtains the operation of the service application in VR by a real participant, who is participating in the virtual world 2 via the VR pedestrian agent, from the application operation acceptance unit 243d of the simulator core 243. Furthermore, the service usage information generation unit 233b obtains the state of the ego agent in three-dimensional space from the update unit 223c for the state of an ego agent of the 3D physics engine 223. The service usage information generation unit 233b generates service usage information based on the obtained information and updates the usage state of the ego agent's service. The service usage information generation unit 233b outputs a service message, including the service usage information, to the service message sending unit 213e of the transmit / receive controller 213. 3-3-5. Details of the simulator core

[0200] In the simulator core 243, the recognition determination information display unit 243a obtains visual information from the visual information generation unit 223b of the 3D physics engine 223. The recognition determination information display unit 243a also obtains information about the state of the ego agent as a user and the input elements of the user device's service application from the service provisioning state information processing unit 233a of the service system client simulator 233. The obtained information corresponds to information for recognizing a determination for the real participant in the virtual world 2 via the VR pedestrian agent. The recognition determination information display unit 243a presents the recognition determination information to the real participant via the VR system.

[0201] The motion operation acceptance unit 243b receives visual information from the generation unit 223b for visual information of the 3D physics engine 223. The motion operation acceptance unit 243b accepts a motion operation in VR by the real participant, while the visual information about the VR system is presented to the real participant. The motion operation acceptance unit 243b outputs the accepted motion operation in VR by the real participant to the state calculation unit 243c for the next time step.

[0202] The state calculation unit 243c for the next time step obtains the movement operation in VR by the real participant from the movement operation acceptance unit 243b. The state calculation unit 243c for the next time step calculates the state of the ego agent in the next time step based on the movement operation in VR by the real participant. The calculated state of the ego agent includes the location, direction, velocity, and acceleration of the ego agent in the next time step. The state calculation unit 243c for the next time step outputs the calculated state of the ego agent in the next time step to the update unit 223c for an ego agent state of the 3D physics engine 223.

[0203] The application operation acceptance unit 243d obtains visual information from the generation unit 223b for visual information of the 3D physics engine 223. The application operation acceptance unit 243d also obtains information about the state of the ego agent as a user and the input elements of the service application on the user's terminal device from the service provisioning state information processing unit 233a of the service system client simulator 233. The application operation acceptance unit 243d accepts the operation of the service application in VR by the real participant, while the information obtained about the VR system is presented to the real participant. The application operation acceptance unit 243d outputs the accepted operation of the service application in VR by the real participant to the service usage information generation unit 233b of the service system client simulator 233. 3-4. Agent simulator for roadside sensor agent

[0204] Fig. Figure 16 is a block diagram illustrating the configuration and information flows of Agent Simulator 204 for a roadside sensor agent. The roadside sensor agent corresponds to an agent of a roadside sensor, which is used to obtain location information for an autonomous robot / vehicle agent in virtual world 2. The location information of the autonomous robot / vehicle agent, obtained by the roadside sensor agent, is used in the service system linked to back-end server 400. The following sections describe the overall configuration of Agent Simulator 204 for the roadside sensor agent, the details of each part, and the information flows within Agent Simulator 204. 3-4-1. Overall configuration of the agent simulator for the roadside sensor agent

[0205] Agent Simulator 204 includes the following functions: a transmit / receive controller 214, a 3D physics engine 224, and a service system client simulator 234. These functions are conceptually encompassed by the transmit / receive controller 210, the 3D physics engine 220, and the simulator core 240, respectively. Unlike other agent simulators, Agent Simulator 204 does not have a simulator core.

[0206] The transmit / receive controller 214 comprises a motion message receiver unit 214a and a control message receiver unit 214c as functions for receiving various messages. The transmit / receive controller 214 comprises a service message transmitter unit 214e and a control message transmitter unit 214f ​​as functions for transmitting various messages. The transmit / receive controller 214 further comprises a residual time rate calculation unit 214g and a simulation operation control unit 214h. Each of the units 214a, 214c, and 214e through 214h that the transmit / receive controller 214 has corresponds to a program or a part of a program. It should be noted that the description in each block describes a representative function of each unit and does not necessarily correspond to the name of the respective unit.

[0207] The 3D physics engine 224 comprises, as functions, an update unit 224a for the state of a surrounding agent and a sensor information generation unit 224b. Each of the units 224a and 224b that the 3D physics engine 224 has corresponds to a program or a part of a program. It should be noted that the description in each block describes a representative function of each unit and does not necessarily correspond to the name of the respective unit.

[0208] The Service System Client Simulator 234 includes a Service Message Generation Unit 234a as a function thereof. The Service Message Generation Unit 234a, which the Service System Client Simulator 234 has, corresponds to a program or a part of a program. It should be noted that the description in each block describes a representative function of each unit and does not necessarily correspond to the name of the respective unit. 3-4-2. Details of the transmit / receive controller

[0209] In the transmit / receive controller 214, the motion message receiver unit 214a receives a motion message from the motion message dispatcher 310. The motion message receiver unit 214a outputs the received motion message to the update unit 224a for the state of a surrounding agent of the 3D physics engine 224. Additionally, the motion message receiver unit 214a outputs information, including the time at which the motion message is received, to the remaining time rate calculation unit 214g.

[0210] The control message receiver 214c receives a simulation control message from the simulation guide 320. The control message receiver 214c outputs the received simulation control message to the simulation operation control unit 214h.

[0211] The service message transmitter unit 214e receives a service message, including sensor information, from the service message generator unit 234a of the service system client simulator 234. The service message transmitter unit 214e then transmits the received service message to the back-end server 400.

[0212] The control message transmitter 214f ​​receives a simulation control message, including information about the velocity state of the simulation, from the residual time rate calculation unit 214g. The control message transmitter 214f ​​also receives a simulation control message, including the control state of the agent simulator 204, from the simulation operation control unit 214h. The control message transmitter 214f ​​then transmits the simulation control messages received from the residual time rate calculation unit 214g and the simulation operation control unit 214h to the simulation guide 320.

[0213] The residual time rate calculation unit 214g obtains information, including the reception time of the motion message, from the motion message receiving unit 214a. The residual time rate calculation unit 214g also obtains information, including the transmission completion time of the service message, from the service message transmitting unit 214e. Based on the information obtained, the residual time rate calculation unit 214g calculates the residual time, residual time rate, and delay time using the equations described above. However, when calculating the residual time and residual time rate, the value calculated from the operating frequency of the agent simulator 204 is used for Ta(N+1) and Ta(N). Furthermore, the transmission completion time of the service message is used instead of the transmission completion time of the motion message in the current time step in Td(N).

[0214] The remaining time rate calculation unit 214g outputs a simulation control message, including the remaining time, the remaining time rate, and the delay time, to the control message transmitter unit 214f. Upon receiving the simulation control message, including the aforementioned information, the simulation guide 320 creates a simulation control message containing the control content to be instructed at the agent simulator 204 and transmits the simulation control message to the agent simulator 204.

[0215] The simulation operation control unit 214h receives a simulation control message from the control message receiver unit 214c. The simulation operation control unit 214h controls the simulation operation of the agent simulator 204 according to an instruction contained in the simulation control message. For example, if a change in the simulation's time granularity is instructed, the simulation operation control unit 214h changes the simulation's time granularity through the agent simulator 204 from its initial value to the instructed time granularity. The initial time granularity value is stored as a setting in the agent simulator 204. The upper and lower limits of the time granularity are stored for each agent type in the simulation guide 320.

[0216] If the instruction content of the simulation control message corresponds to the simulation speed, the simulation operation control unit 214h changes the operating frequency of the 3D physics engine 224 according to the instructed simulation speed and accelerates or decelerates the operating speed of the agent simulator 204. If the simulation is instructed to stop, the simulation operation control unit 214h stops the simulation via the agent simulator 204. If the simulation is instructed to stop, the simulation operation control unit 214h stops the simulation. If the simulation is instructed to restart, the simulation operation control unit 214h restarts the simulation. The simulation operation control unit 214h outputs a simulation control message, including the current control state of the agent simulator 204, to the control message transmitter unit 214f. 3-4-3. Details of the 3D physics engine

[0217] In the 3D physics engine 224, the update unit 224a receives a movement message from the movement message receiver unit 214a for the state of a nearby agent. The movement message received by the movement message receiver unit 214a corresponds to a movement message transmitted by another agent simulator via the movement message dispatcher 310. The update unit 224a estimates the current state of any nearby agent existing around the ego agent based on the received movement message.

[0218] When the current state of the surrounding agent is estimated from its past state, the update unit 224a for a surrounding agent state uses the past state of the surrounding agent, which is stored in the log. The procedure for estimating the current state using the past state of the surrounding agent is designed as described above. The update unit 224a for a surrounding agent state outputs the estimated current state of the surrounding agent to the sensor information generation unit 224b and updates the log.

[0219] The Sensor Information Generation Unit 224b obtains the current state of the surrounding agent from the Update Unit 224a for a state of a surrounding agent. The Sensor Information Generation Unit 224b generates peripheral information obtained through observation by the ego agent based on the current state of the surrounding agent. Since the ego agent is a stationary, street-side sensor, such as a camera, peripheral information obtained through observation represents sensor information acquired by the street-side 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. 3-4-4. Details of the Service System Client Simulator

[0220] In the service system client simulator 234, the service message generation unit 234a obtains sensor information from the sensor information generation unit 224b of the 3D physics engine 224. The service message generation unit 234a outputs a service message, including the obtained sensor information, to the service message transmission unit 214e of the transmit / receive controller 214. 4. Aggregation and evaluation of simulation results by the MAS system

[0221] By performing the simulation with the MAS system 100, various data about the target world of the simulation can be obtained. Fig. Figure 17 shows a configuration for aggregating and evaluating simulation results using the MAS system 100.

[0222] The MAS System 100 provides a data logger at each location to record simulated data. The Agent Simulator 200 is equipped with a Data Logger 250, 260, 270, or 280. Data Logger 250 stores data logs in the Transmit / Receive Controller 210 (Controller Logs). Data Logger 260 stores data logs in the 3D Physics Engine 220 (3D Physics Engine Logs). Data Logger 270 stores data logs in the Service System Client Simulator 230 (Service Simulation Logs). Data Logger 280 stores data logs in the Simulator Core 240 (Simulation Core Logs).

[0223] The Center Controller 300 is equipped with data loggers 330 and 340. Data logger 330 stores data logs in the motion message dispatcher 310 (motion message dispatcher logs). Data logger 340 stores data logs in the simulation guide 320 (guide logs).

[0224] The back-end server 400 is equipped with a data logger 410. The data logger 410 stores data logs (service system logs) on the back-end server 400.

[0225] If the simulation is stopped, the Simulation Guide 320 can rewind the simulation and restart it at any time in the past by using the data logs stored in each of the data loggers described above.

[0226] The MAS system 100 comprises a service system protocol aggregation unit 500, an agent movement protocol aggregation unit 510, a simulator control protocol aggregation unit 520, an asset information database 530, a space-time database 540, and a viewer 550. These are installed on a computer for evaluating simulation results.

[0227] The Service System Protocol Aggregation Unit 500 collects data logs from data loggers 270 and 410. These data logs, collected in the Service System Protocol Aggregation Unit 500, correspond to data logs related to the service system. These data logs can be used to evaluate whether the service was provided correctly. It is also possible to evaluate points of interest in service provisioning, including the utilization of service resources such as logistics robots.

[0228] The agent movement log aggregation unit 510 collects data logs from data loggers 250, 260, 330, and 340. These data logs, collected in the agent movement log aggregation unit 510, correspond to data logs relating to agent movement. The correct operation of the agent can be verified using these data logs. It is also possible to check for problems such as overlapping agents. If an error occurs during the simulation, the time range in which the simulation content is considered valid can be output from the data logs.

[0229] The Simulation Core Protocol Aggregation Unit 520 collects data logs from the Data Logger 280 and the Agent Movement Protocol Aggregation Unit 510. These data logs, collected in the Simulation Core Protocol Aggregation Unit 520, relate to the points of interest in the simulation. From these data logs, it is possible to evaluate the points of interest, such as the density of a person if the simulation involves a pedestrian, and the internal assessment result if the simulation involves a robot.

[0230] The Asset Information Database 530 stores BIM / CIM data or three-dimensional information of a specified object, such as a building, converted from BIM / CIM data, and stores three-dimensional information of each agent.

[0231] The space-time database 540 stores virtual data for the simulation. The evaluation results, which are based on the data logs aggregated by the service system protocol aggregation unit 500, the agent movement protocol aggregation unit 510, and the simulation core protocol aggregation unit 520, are reflected back to the virtual data in the space-time database 540.

[0232] The Viewer 550 displays the virtual world 2 on the monitor using the three-dimensional information of the specified object and agent stored in the Asset Information Database 530 and the virtual data stored in the Space-Time Database 540. 5. Physical configuration of the MAS system

[0233] The physical configuration of the MAS system 100 is described. Fig. Figure 18 is an illustration showing an example of a physical configuration of the MAS system 100. The MAS system 100 can, for example, have multiple computers 10 located on the same subnet 30. Furthermore, the MAS system 100 can be extended to include multiple computers 10 located on subnet 32 ​​by connecting subnet 30 to another subnet 32 ​​via a gateway 40.

[0234] In the Fig. In the example shown in Figure 18, the Center-Controller 300, which corresponds to software, is installed on one computer (10). However, the functions of the Center-Controller 300 can be distributed across multiple computers (10).

[0235] The MAS system 100 comprises a plurality of back-end servers (400). In the Fig. In the example shown in Figure 18, each back-end server 400 is installed on a separate computer 10. However, the functionality of the back-end server 400 can be distributed across multiple computers 10. Furthermore, multiple back-end servers 400 can be installed on a single computer 10 using virtualization technology to divide one server into multiple servers.

[0236] In the Fig.In the example shown, a plurality of Agent Simulator 200 are installed on a single computer. Virtualization technology can be used as a method for independently running a plurality of Agent Simulator 200 on a single computer. The virtualization technology can be a virtual machine or container virtualization. A plurality of Agent Simulator 200 of the same type can be installed on a single computer, or a plurality of Agent Simulator 200 of different types can be installed. Note that only one Agent Simulator 200 can be installed on a single computer.

[0237] As described above, the MAS system 100 employs parallel distributed processing using multiple computers 10 instead of processing by a single computer. This prevents computing power from limiting the number of agents appearing in virtual world 2 and from limiting the number of services provided in virtual world 2. That is, according to the MAS system 100, large-scale simulation is possible through parallel distributed processing. 6. Further embodiment

[0238] An observation agent can be deployed to observe virtual world 2 from the outside. The observation agent can be, for example, a stationary object, such as a camera on a street corner, or a moving object, such as a drone with a camera. By connecting the output of the observation agent's physics engine to the monitor, virtual world 2 can be observed from the observation agent's perspective.

[0239] Although in the embodiment described above the remaining time rate itself is used as an index value for controlling the speed ratio, other numerical values ​​can also correspond to an index value, as long as it is a value corresponding to the remaining time rate. For example, a value obtained by subtracting the remaining time rate from 1 can also be used as an index value. QUOTES INCLUDED IN THE DESCRIPTION

[0000] This list of documents cited by the applicant was automatically generated and is included solely for the reader's convenience. The list is not part of the German patent or utility model application. The DPMA accepts no liability for any errors or omissions. Cited patent literature

[0000] JP 2021095954

[0001] JP 2015022378 A [0003, 0004] JP 2004272693 A

[0004] JP 2008203913 A

[0004] JP 2009151634 A

[0004]

Claims

[1] System for simulating a target world using a plurality of agents (4A, 4B, 4C) which interact with each other, comprising: a plurality of agent simulators (200, 201, 202, 203, 204) which are provided for each of the plurality of agents (4A, 4B, 4C) and configured to simulate a state of each of the plurality of agents (4A, 4B, 4C), while the plurality of agents (4A, 4B, 4C) are caused to interact with each other by exchanging messages; and a Center Controller (300) configured to manage the participation of the majority of agent simulators (200, 201, 202, 203, 204) in a simulation of the target world and the separation of the majority of agent simulators (200, 201, 202, 203, 204) from the simulation of the target world, wherein the center controller (300) is configured to separate an agent simulator whose processing does not keep pace with a time flow in the target world from the simulation of the target world. [2] System according to claim 1, wherein the center controller (300) is configured such that, in response to a separation of one agent simulator from the simulation of the target world, it notifies remaining agent simulators of the separation of the one agent simulator. [3] System according to claim 1 or 2, wherein the center controller (300) is configured to control the sending and receiving of messages between the plurality of agent simulators (200, 201, 202, 203, 204) and, in response to the detection of a delayed agent simulator which is late in sending messages, separates the delayed agent simulator from the simulation of the target world. [4] System according to any one of claims 1 to 3, wherein: Each of the multiple agent simulators (200, 201, 202, 203, 204) is configured to determine a processing delay with respect to other agent simulators and to offer separation to the center controller in response to a detection of the processing delay for other agent simulators; and the Center Controller (300) is configured to separate an agent simulator, which offers separation from the simulation of the target world. [5] System according to any one of claims 1 to 4, wherein: the system is configured in such a way that it varies the speed ratio of a time flow in the target world to a time flow in a real world; and the center controller (300) is configured to increase the speed ratio, while the agent simulator, whose processing does not keep pace with the time flow in the target world, is separated from the simulation of the target world. [6] System according to any one of claims 1 to 5, wherein: the majority of agent simulators (200, 201, 202, 203, 204) include an agent simulator (201, 202, 204) with variable time granularity, which can adjust a time granularity for sending messages; and The agent simulator (201, 202, 204) with variable time granularity is configured such that it increases the time granularity in response to the fact that the processing in the agent simulator with variable time granularity does not keep pace with the time flow of the target world, within a predetermined permissible range. [7] System according to any one of claims 1 to 6, wherein the center controller (300) is configured such that it stops the simulation of the target world in response to a predetermined number of agent simulators from the plurality of agent simulators (200, 201, 202, 203, 204) disconnecting from the simulation of the target world, and restarts the simulation of the target world after returning to a previous state for a predetermined period of time. [8] Method for simulating a target world using a plurality of agents (4A, 4B, 4C) which interact with each other, comprising: Exchanging messages between a plurality of agent simulators (200, 201, 202, 203, 204), which are provided for each of the plurality of agents (4A, 4B, 4C); Simulating a state of each of the plurality of agents (4A, 4B, 4C), while the plurality of agents (4A, 4B, 4C) are caused to interact with each other by exchanging messages; and Managing the participation of a majority of agent simulators (200, 201, 202, 203, 204) in a simulation of the target world and separating the majority of agent simulators (200, 201, 202, 203, 204) from the simulation of the target world by a center controller (300), where managing the separation involves separating an agent simulator, whose processing does not keep pace with a time flow in the target world, from the simulation of the target world. [9] Method according to claim 8, wherein managing the separation in response to a separation of one agent simulator from the simulation of the target world comprises notifying remaining agent simulators of the separation of the one agent simulator. [10] Method according to claim 8 or 9, wherein managing the separation comprises: Controlling the sending and receiving of messages between the majority of agent simulators (200, 201, 202, 203, 204); and In response to the detection of a delayed agent simulator that is late in sending messages, disconnect the delayed agent simulator from the simulation of the target world. [11] Method according to any one of claims 8 to 10, wherein managing the separation comprises: To cause each of the plurality of agent simulators (200, 201, 202, 203, 204) to determine a processing delay with respect to other agent simulators and, in response to a detection of the processing delay, to offer the separation to the center controller for other agent simulators; and Separating an agent simulator from the simulation of the target world, which offers the separation. [12] Method according to any one of claims 8 to 11, further comprising: Varying the speed ratio of a time flow in the target world to a time flow in a real world; and Increasing the speed ratio while the agent simulator, whose processing does not keep pace with the time flow in the target world, is separated from the simulation of the target world. [13] Method according to any one of claims 8 to 12, wherein the plurality of agent simulators (200, 201, 202, 203, 204) comprises an agent simulator (201, 202, 204) with variable time granularity which can adjust a time granularity for sending messages, and the method further comprises causing the agent simulator (201, 202, 204) with variable time granularity to increase the time granularity within a predetermined permissible range in response to the fact that the processing in the agent simulator with variable time granularity does not keep pace with the time flow of the target world. [14] Method according to any one of claims 8 to 13, further comprising: Stopping the simulation of the target world in response to a predetermined number of agent simulators separating from the majority of agent simulators (200, 201, 202, 203, 204) from the simulation of the target world; and Restarting the simulation of the target world after returning to a past state for a predetermined period of time.

Citation Information

Patent Citations

  • Working vehicle

    JP2021095954A

  • System and apparatus for managing latency-sensitive interaction in virtual environments

    US20080102955A1

  • Distributed Physics Based Training System and Methods

    US20090099824A1

  • Synchronization scheme for physics simulations

    US20170104819A1

  • Simulation system and simulation method

    JP2004272693A