Multi-agent simulation system and multi-agent simulation method

The multi-agent simulation system addresses accuracy issues in inferior computing/networking environments by using a center controller to adjust simulation speed based on calculated index values, ensuring efficient and accurate simulations.

JP7647359B2Active Publication Date: 2025-03-18TOYOTA JIDOSHA KK
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
JP2021095953
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-06-08
Publication Date
2025-03-18
Estimated Expiration
2041-06-08

AI Technical Summary

Technical Problem

Multi-agent simulations face challenges in maintaining accuracy when the computing/networking environment is inferior, leading to issues with message timing and simulation speed.

Method used

A multi-agent simulation system that includes multiple agent simulators and a center controller, which calculates an index value correlated with the update time interval and remaining time ratio to control the speed ratio of time flows in the target world.

Benefits of technology

The system optimizes simulation speed while maintaining accuracy by adjusting the speed ratio based on calculated index values, ensuring efficient performance across varying computing/networking environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007647359000001
    Figure 0007647359000001
  • Figure 0007647359000002
    Figure 0007647359000002
  • Figure 0007647359000003
    Figure 0007647359000003
Patent Text Reader

Abstract

To provide a multi-agent simulation (MAS) system capable of performing simulation at high speed while maintaining simulation accuracy.SOLUTION: A MAS system 100 comprises agent simulators 200A-200C provided for individual agents and a center controller 300. The agent simulators 200A-200C simulate statuses of the individual agents while interacting mutually with the agents by exchanging messages. The center controller 300 controls a speed ratio of time flow of the target world to time flow of a real world. The agent simulators 200A-200C calculate index values correlating with the ratio of surplus time. The center controller 300 controls the speed ratio on the basis of the index values calculated by the agent simulators 200A-200C.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to a multi-agent simulation system and a multi-agent simulation method that simulate a target world using multiple interacting agents. [Background technology]

[0002] Multi-agent simulations are known that use multiple interacting agents to simulate a target world. For example, Patent Document 1 discloses an invention that changes the time interval for notifying other agents of an agent's status in a multi-agent simulation. In this invention, for example, when there are few changes in information, the notification frequency is reduced to speed up the simulation.

[0003] In addition to Patent Document 1, the following Patent Documents 2 and 3 can be mentioned as examples of documents that show the technical level at the time of filing of the present disclosure in the technical field. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] JP 2015-022378 A [Patent Document 2] International Publication No. 2011 / 018854 [Patent Document 3] JP 2004-272693 A Summary of the Invention [Problem to be solved by the invention]

[0005] The rate at which time progresses in the target world you want to simulate does not necessarily have to be the same as the rate at which time progresses in real life. You can make the simulation run faster by making the rate at which time progresses in the simulation faster than the rate at which time progresses in real life. However, the speed at which you can run the simulation depends on your Computing / Networking environment.

[0006] In a multi-agent simulation, interactions between agents are performed by exchanging messages. If the sum of the calculation time of each agent and the time required for message exchange is within the time granularity set for each agent, the accuracy of the simulation of each agent can be maintained.

[0007] However, if the Computing / Networking environment is poor, messages from other agents may not arrive by the required processing timing, or conversely, future messages may arrive from other agents before a message can be sent to another agent. In other words, if the Computing / Networking environment is poor, the simulation speed may be too fast, resulting in some agents whose processing time in the target world of the simulation does not keep up with the time granularity. In such cases, the accuracy of the simulation of the target world will naturally decrease.

[0008] On the other hand, if the simulation speed is slower than the Computing / Networking environment, each agent has plenty of time to perform calculations and exchange messages. In other words, if the Computing / Networking environment is too fast, the processing time in the simulation target world becomes extremely short compared to the time granularity, causing each agent to wait without doing anything. The longer the wait time, the greater the waste of resources.

[0009] The present disclosure has been made in view of the above-mentioned problems, and has an object to provide a multi-agent simulation system and method that can execute a simulation at high speed while maintaining the accuracy of the simulation. [Means for solving the problem]

[0010] The present disclosure provides a multi-agent simulation system that simulates a target world using a plurality of interacting agents. The system of the present disclosure includes a plurality of agent simulators provided for each of the plurality of agents, and a central controller that controls a speed ratio of the flow of time in the target world to the flow of time in the real world. The plurality of agent simulators are programmed to simulate the state of each agent while causing the agents to interact with each other through message exchange. Also, each of the plurality of agent simulators is programmed to calculate an index value that correlates with a surplus time rate that is a ratio between an update time interval for updating a state of a target agent that is a simulation target, and a surplus time rate between the update time interval and a processing time for update processing. The central controller is programmed to control the speed ratio based on the index value calculated by each of the plurality of agent simulators.

[0011] In the system of the present disclosure, the central controller may control the speed ratio based on the index value corresponding to the lowest surplus time rate among the index values ​​calculated by each of the multiple agent simulators. This allows the simulation speed to be accelerated when there is a margin in the surplus time rate, making it possible to proceed with the simulation at high speed.

[0012] In the system of the present disclosure, the center controller may increase the speed ratio when the index value corresponds to a surplus time rate equal to or greater than a first threshold value. This allows the simulation speed to be accelerated in a situation where there is a margin in the surplus time rate, and the simulation can proceed at high speed. Furthermore, when the index value corresponds to a surplus time rate equal to or greater than the first threshold value, the center controller may increase the speed ratio to a greater extent as the index value corresponds to a higher surplus time rate. This allows the simulation speed to be accelerated to a greater extent as there is a margin in the surplus time rate.

[0013] Furthermore, in the system of the present disclosure, the center controller may reduce the speed ratio when the index value corresponds to a surplus time rate equal to or less than a second threshold value that is lower than the first threshold value and greater than zero. This allows the simulation speed to be reduced in a situation where there is no margin for the surplus time rate, thereby suppressing a decrease in simulation accuracy. The second threshold value is a value greater than zero. Furthermore, when the index value corresponds to a surplus time rate equal to or less than the second threshold value, the center controller may reduce the speed ratio to a greater extent as the index value corresponds to a surplus time rate closer to zero. This allows the simulation speed to be reduced to a greater extent as there is no margin for the surplus time rate.

[0014] Furthermore, in the system of the present disclosure, each of the multiple agent simulators may calculate, as an index value, the ratio of the residual time from the acquisition time of the last received message from the other agent simulators required for the next update of the state of the target agent to the next update time of the state of the target agent to the update time interval.In this way, since the update time of each state is known, the index value can be calculated with only the acquisition time of the last received message from the other agent simulators.

[0015] The present disclosure provides a multi-agent simulation method for simulating a target world using multiple agents that interact with each other. The method of the present disclosure includes exchanging messages between multiple agent simulators provided for each of the multiple agents, and simulating the state of each agent while the agents interact with each other through the message exchange. The method of the present disclosure also includes controlling a speed ratio of the flow of time in the target world to the flow of time in the real world by a center controller. The method of the present disclosure further includes causing each of the multiple agent simulators to calculate an index value correlating with a surplus time rate that is a ratio between an update time interval for updating a state of a target agent that is a simulation target and a surplus time rate between the update time interval and a processing time for the update process, and causing the center controller to control the speed ratio based on the index value calculated by each of the multiple agent simulators.

[0016] In the method of the present disclosure, the central controller may control the speed ratio based on the index value corresponding to the lowest residual time rate among the index values ​​calculated by each of the multiple agent simulators.

[0017] In the method of the present disclosure, the speed ratio may be increased by the center controller when the index value corresponds to a surplus time rate equal to or greater than a first threshold value. Furthermore, when the index value corresponds to a surplus time rate equal to or greater than a first threshold value, the speed ratio may be increased to a greater extent as the index value corresponds to a higher surplus time rate.

[0018] In the method of the present disclosure, the speed ratio may be decreased by the center controller when the index value corresponds to a surplus time rate equal to or less than a second threshold value that is lower than the first threshold value and greater than zero. Furthermore, when the index value corresponds to a surplus time rate equal to or less than the second threshold value, the speed ratio may be decreased to a greater extent as the index value corresponds to a surplus time rate closer to zero.

[0019] Furthermore, in the method disclosed herein, each of the multiple agent simulators may be caused to calculate, as an index value, the ratio of the residual time from the acquisition time of the last received message from the other agent simulators which is necessary for the next update of the state of the target agent to the next update time of the state of the target agent to the update time interval. Effect of the Invention

[0020] In the multi-agent simulation system and method disclosed herein, if the flow of time in the target world is faster than the Computing / Networking environment in which the simulation is performed, the surplus time rate, which is the ratio between the update time interval and the surplus time, decreases. Conversely, if the flow of time in the target world is slower than the Computing / Networking environment, the surplus time rate increases. According to the multi-agent simulation system and method disclosed herein, the speed ratio of the flow of time in the target world to the flow of time in the real world is controlled based on an index value that correlates with the surplus time rate calculated by each agent simulator. This automatically optimizes the speed ratio, making it possible to execute the simulation as fast as possible while maintaining the accuracy of the simulation. [Brief description of the drawings]

[0021] [Figure 1] FIG. 1 is a diagram illustrating an overview of a multi-agent simulation system according to an embodiment of the present disclosure. [Diagram 2] FIG. 1 is a diagram illustrating an overview of a multi-agent simulation system according to an embodiment of the present disclosure. [Diagram 3] FIG. 1 is a diagram illustrating an overview of a multi-agent simulation system according to an embodiment of the present disclosure. [Figure 4] FIG. 1 is a timing diagram showing desirable situations among simulation situations assumed in an agent simulator according to an embodiment of the present disclosure. [Diagram 5]FIG. 13 is a timing diagram showing a situation in which another part of the agent simulator is delayed among simulation situations assumed in the agent simulator according to an embodiment of the present disclosure. [Figure 6] FIG. 11 is a timing diagram showing a situation in which the agent simulator according to the embodiment of the present disclosure is slightly behind other agent simulators among simulation situations assumed in the agent simulator according to the embodiment of the present disclosure. [Figure 7] FIG. 1 is a timing diagram showing a situation in which an agent simulator according to an embodiment of the present disclosure is significantly behind other agent simulators, among simulation situations assumed in the agent simulator according to an embodiment of the present disclosure. [Figure 8] 13 is a flowchart illustrating a flow of decisions regarding adjustment of a simulation speed and withdrawal from a simulation by an agent simulator according to an embodiment of the present disclosure. [Figure 9] 13 is a flowchart illustrating a flow of adjustment of a simulation speed of an agent simulator by a simulation conductor according to an embodiment of the present disclosure. [Figure 10] 13 is a flowchart illustrating a flow of an instruction to an agent simulator to leave a simulation based on a decision by a simulation conductor according to an embodiment of the present disclosure. [Figure 11] FIG. 13 is a sequence diagram showing a flow of rewinding and restarting a simulation at the discretion of a simulation conductor according to an embodiment of the present disclosure. [Figure 12] FIG. 1 is a block diagram showing a configuration of a multi-agent simulation system according to an embodiment of the present disclosure. [Figure 13] FIG. 2 is a block diagram showing the configuration and information flow of an agent simulator for a pedestrian agent according to an embodiment of the present disclosure. [Figure 14] FIG. 2 is a block diagram showing the configuration and information flow of an agent simulator for an autonomous mobile agent according to an embodiment of the present disclosure. [Figure 15]FIG. 1 is a block diagram illustrating the configuration and information flow of an agent simulator for a VR pedestrian agent according to an embodiment of the present disclosure. [Figure 16] 1 is a block diagram showing a configuration and information flow of an agent simulator for a roadside sensor agent according to an embodiment of the present disclosure. FIG. [Figure 17] FIG. 1 is a block diagram showing a configuration for aggregating and evaluating simulation results by a multi-agent simulation system according to an embodiment of the present disclosure. [Figure 18] FIG. 1 is a diagram illustrating an example of a physical configuration of a multi-agent simulation system according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0022] Hereinafter, the embodiments of the present disclosure will be described with reference to the drawings. However, when the number, quantity, amount, range, etc. of each element is mentioned in the embodiments shown below, the idea of ​​the present disclosure is not limited to the mentioned number unless it is specifically stated or clearly specified in principle. Furthermore, the structures etc. described in the embodiments shown below are not necessarily essential to the idea of ​​the present disclosure unless it is specifically stated or clearly specified in principle.

[0023] 1. Overview of the Multi-Agent Simulation System An overview of a multi-agent simulation system according to an embodiment of the present disclosure will be described with reference to Figures 1 to 3. Hereinafter, the multi-agent simulation system will be abbreviated to MAS system.

[0024] 1-1. Outline of the MAS system configuration and functions FIG. 1 shows a schematic configuration of the MAS system 100 of this embodiment. The MAS system 100 simulates a world (simulation target world) 2 that is the object of the simulation by having multiple agents 4A, 4B, and 4C interact with each other. There is no limitation on the world that is the object of the simulation by the MAS system of the present disclosure. However, the MAS system 100 of this embodiment sets the simulation target world 2 as a world in which people coexist with autonomously moving objects, such as robots and vehicles, and can receive various services using the autonomously moving objects. Examples of services provided in the simulation target world 2 include mobility services such as on-demand buses and scheduled buses using autonomously driven vehicles, and logistics services that deliver luggage using autonomously moving robots.

[0025] The simulated world 2 is composed of many and various kinds of agents. The agents constituting the simulated world 2 include agents representing moving objects and agents representing stationary objects. Examples of moving objects represented as agents include pedestrians, robots, low-speed mobility, vehicles, pedestrians in which real people participate using a VR system, elevators, etc. Examples of stationary objects represented as agents include sensors including cameras, automatic doors, etc.

[0026] However, in FIG. 1, for ease of explanation, only three agents 4A, 4B, and 4C are shown in the simulated world 2. Among them, the agents 4A and 4B represent robots, and the agent 4C represents a pedestrian. That is, the simulated world 2 shown in FIG. 1 represents two types of agents, a robot and a pedestrian. Note that the agents 4A and 4B belong to the same category of robots, but are different in size, shape, running speed, and movement. Therefore, the agents 4A and 4B are different in the visual information that the agent 4C, a pedestrian, can obtain from them. Hereinafter, in this specification, the agent 4A is simply referred to as agent A. Similarly, the agent 4B is simply referred to as agent B, and the agent 4C is simply referred to as agent C. Hereinafter, the simulated world 2, which is a virtual world, is called the virtual world 2 to distinguish it from the real world.

[0027] The MAS system 100 includes a plurality of agent simulators 200. An agent simulator 200 is provided for each of the agents A, B, and C. Hereinafter, when distinguishing between the agent simulators 200, the agent simulator 200 that simulates the state of the agent A will be referred to as agent simulator A. Similarly, the agent simulators 200 that simulate the states of the agents B and C will be referred to as agent simulators B and C. Each agent simulator 200 has a different configuration according to the type of agent to be targeted. For example, the agent simulators B and C for the robot agents B and C have similar configurations, but the agent simulator A for the pedestrian agent A has a different configuration from the agent simulators B and C. The configuration of the agent simulators 200 for each type of agent will be described in detail later.

[0028] The agent simulator 200 simulates the states of the agents A, B, and C while allowing the agents A, B, and C to interact with each other through the exchange of messages. Messages exchanged between the agent simulators 200 include information (movement information) relating to the position and movement of the agents in the virtual world 2. The movement information includes information about the current situation and future plans regarding the agent's position and movement. Information about the current situation is, for example, the position, direction, speed, and acceleration at the current time. Information about future plans is, for example, a list of the position, direction, speed, and acceleration at a future time. Hereinafter, messages related to the agent's position and movement exchanged between the agent simulators 200 will be referred to as movement messages.

[0029] The agent simulator 200 calculates the state of a target agent (own agent) that is the subject of the simulation based on the states of surrounding agents. The surrounding agents are interactive agents that exist around the own agent and interact with the own agent. The information that indicates the states of the surrounding agents is a movement message. Each agent simulator 200 can grasp the states of the surrounding agents by exchanging movement messages with the other agent simulators 200.

[0030] In the example shown in Fig. 1, agent simulator A grasps the states of agents B and C from movement messages received from agent simulators B and C, and updates the state of agent A based on the states of agents B and C. Agent simulator A then transmits movement messages indicating the updated state of agent A to agent simulators B and C. Similar processing is also performed in agent simulators B and C. In this way, the states of agents A, B, and C are simulated while agents A, B, and C interact with each other.

[0031] The agent simulator 200 updates the agent's state in two ways: at regular time intervals, and when some event is detected. However, even with the latter method, if the state is not updated for too long, it can have a large impact on surrounding agents, so an event is forcibly generated to update the state at regular time intervals. The time interval at which the agent simulator 200 updates the agent's state is called the time granularity.

[0032] In the example shown in FIG. 1, the time granularity of each of the agents A, B, and C in the virtual world 2 is set to 20 msec. However, it is possible to change the time granularity depending on the type of agent. For example, since the pedestrian agent C moves slower than the robot agents A and B, the time granularity of the pedestrian agent C may be set larger than that of the robot agents A and B. Each agent simulator A, B, and C executes a simulation at a control period according to the time granularity of the agents A, B, and C in charge.

[0033] In the MAS system 100, a simulation is executed by exchanging movement messages between the agent simulators 200. However, the exchange of movement messages for the simulation is not performed directly between the agent simulators 200. The MAS system 100 includes a center controller 300 that communicates with the agent simulators 200. The center controller 300 includes a movement message dispatcher 310 that distributes received movement messages. The movement messages are relayed by the movement message dispatcher 310 and exchanged between the agent simulators 200.

[0034] 1, the movement message output from agent simulator A is received by the movement message dispatcher 310. Then, the movement message dispatcher 310 transmits the movement message of agent simulator A to agent simulators B and C. Similarly, the movement message of agent simulator B is transmitted to agent simulators A and C by the movement message dispatcher 310, and the movement message of agent simulator C is transmitted to agent simulators A and B by the movement message dispatcher 310.

[0035] The exchange speed of the movement messages between the agent simulators 200 is initially set so that the time granularity set for each agent matches the time interval of the real world. That is, in the initial setting of the exchange speed of the movement messages, the flow of time in the real world and the flow of time in the virtual world 2 match. If the exchange speed of the movement messages is increased from such an initial state, the speed ratio of the flow of time in the virtual world 2 to the flow of time in the real world increases. The exchange speed of the movement messages is determined by the transmission interval of the movement messages transmitted from each agent simulator 200. For example, if the transmission interval of the movement messages is halved, the exchange speed of the movement messages is doubled. If the exchange speed of the movement messages is doubled, the operation speed of the agents is also doubled, and the simulation proceeds at twice the speed. In other words, the exchange speed of the movement messages means the simulation speed.

[0036] Here, if each agent simulator 200 changes the transmission interval for transmitting a movement message independently, there is a risk of a difference in the operating speed between the agent itself and the surrounding agents. In addition, there is a risk that information about the state of the surrounding agents cannot be obtained when updating the state of the agent itself, or information about the state of the agent itself cannot be sent when updating the state of the surrounding agents, which may cause the simulation to fail. Therefore, the transmission interval for transmitting the movement message by the agent simulator 200 needs to be collectively controlled for all the agent simulators 200.

[0037] The transmission intervals at which the agent simulator 200 transmits the movement messages are controlled by the center controller 300. In more detail, the center controller 300 includes a simulation conductor 320 that controls the simulation performed by each agent simulator 200.

[0038] The simulation conductor 320 controls the simulation by the agent simulator 200 by exchanging simulation control messages with the agent simulator 200. The simulation conductor 320 communicates with all the agent simulators 200 constituting the MAS system 100 and exchanges simulation control messages. For example, the simulation speed, stopping the simulation, pausing the simulation, restarting the simulation, and the time granularity of the simulation are controlled by exchanging the simulation control messages. The simulation speed is controlled collectively for all the agent simulators 200. In contrast, stopping the simulation, pausing the simulation, restarting the simulation, and the time granularity of the simulation are controlled for each agent simulator 200.

[0039] 1-2. Overview of Simulation Speed ​​Control in MAS System 2 and 3 show an overview of the control of the simulation speed performed in the MAS system 100. In the MAS system 100, each agent simulator 200 transmits a movement message at a time interval according to the time granularity of the agent to be simulated. If the time granularity of each of the agents A, B, and C is as shown in Fig. 1, each agent simulator 200 transmits a movement message at a time interval of 20 msec.

[0040] When increasing the simulation speed, the central controller 300 (more specifically, the simulation conductor 320) increases the speed ratio of the time flow in the virtual world 2 to the time flow in the real world by shortening the transmission interval of movement messages to each agent simulator 200. The higher this speed ratio is, the higher the simulation speed becomes, making it possible to finish the simulation in a shorter time.

[0041] However, depending on the computing / networking environment in which the agent simulator 200 operates, there is a possibility that an agent simulator 200 may appear that cannot keep up with the flow of time in the virtual world 2. In the example shown in Fig. 3, the transmission interval of the movement messages sent from agent simulators A and C is shortened, but the transmission interval of the movement message sent from agent simulator B is not shortened. In other words, a delay occurs in agent simulator B.

[0042] The agent simulator 200 uses information on the states of surrounding agents to update the state of its own agent. In the example shown in FIG. 3, agent simulator A uses movement messages transmitted from each of simulators B and C to update the state of its own agent. Also, agent simulator C uses movement messages transmitted from each of simulators A and B to update the state of its own agent. For this reason, the delay of agent simulator B is not only an issue for agent simulator B, but also has a negative impact on agent simulators A and C which exchange movement messages with agent simulator B. In other words, the presence of agent simulator B, whose processing cannot keep up with the flow of time in virtual world 2, reduces the accuracy of the simulation by the MAS system 100.

[0043] Therefore, the center controller 300 (more specifically, the simulation conductor 320) withdraws the agent simulator B, which is causing the delay, from the simulation. By withdrawing the agent simulator B from the simulation, the agent B disappears from the virtual world 2. As a result, for example, the only agent with which agent A interacts is agent C, and the agent simulator A can continue the simulation without being affected by the agent simulator B. This prevents the agent simulator B from becoming a rate limiter, and creates room to further increase the simulation speed of the agent simulators A and C.

[0044] As described above, in the MAS system 100, the simulation speed is increased by shortening the transmission interval of the movement message between the agent simulators 200, and the agent simulator 200 that has caused a delay is made to leave the simulation. However, whether or not the agent can be made to leave the simulation depends on the type of agent. For example, even if a pedestrian agent in a crowd suddenly disappears from the virtual world 2 due to the departure of the agent simulator 200, the effect on the simulation is negligibly small. On the other hand, if a vehicle agent carrying a passenger suddenly disappears from the virtual world 2 leaving the passenger behind, the simulation will no longer be valid at that point. In other words, an agent whose presence or absence has a large effect on others cannot be made to leave the simulation. Therefore, the MAS system 100 is required to shorten the simulation time by accelerating the simulation speed, and to maintain the simulation speed within an appropriate speed range.

[0045] In the MAS system 100, a "surplus time rate" is used as an index for judging whether the simulation speed is appropriate. The excess time rate is defined as the ratio of the excess time to the update time interval for updating the agent's state. The excess time is the update time interval minus the processing time for the update process. In the MAS system 100, the excess time rate is calculated for each agent simulator 200. The simulation conductor 320 comprehensively controls the speed ratio of the flow of time in the virtual world 2 to the flow of time in the real world based on the excess time rate for each agent simulator 200.

[0046] 1-3.Details of Simulation Speed ​​Control in MAS System Next, details of the control of the simulation speed performed in the MAS system 100 will be described with reference to Figures 4 to 10. First, four examples assumed as simulation situations of the agent simulator 200 will be described.

[0047] 1-3-1. Example of simulation situation of agent simulator Case 1. Desirable situation Case 1 is a simulation situation desirable for the agent simulator 200. Hereinafter, one of the multiple agent simulators 200 will be focused on and will be referred to as a "target agent simulator." Figure 4 is a timing diagram showing various timings related to updating the state of the agent in a desirable situation for the target agent simulator. Each timing indicated by a symbol on the time axis is defined as follows: Ta(N): The start time of the calculation for updating the state of the own agent in the current time step Ta(N+1): The start time of the calculation for updating the state of the agent at the next time step Tc(N): Completion of the movement message for this time step Td(N): The time when the movement message is sent in the current time step Te_first(N): The time when the first movement message from surrounding agents required for the calculation of the state update of the own agent in the next time step was received Te_last(N): The time when the last movement message from the surrounding agents was received, which is necessary for the calculation of the state update of the own agent in the next time step.

[0048] In case 1, timing Te_last(N) is located before timing Ta(N+1). In other words, before the calculation for updating the state of the own agent in the next time step starts, all movement messages of surrounding agents required for the calculation are received. This means that no delay occurs in other agent simulators related to the agent simulator of interest.

[0049] Also, in case 1, timing Te_first(N+1) does not occur before timing Ta(N+1). In other words, before the calculation for updating the state of the own agent in the next time step starts, the movement messages of the surrounding agents required for the calculation do not start to be received. This means that there is no delay in the agent simulator of interest relative to the other agent simulators.

[0050] The above-mentioned residual time rate will now be described. The residual time rate is calculated by the following formula using the residual time and the update time interval. Residual time rate = residual time / update time interval Residual time = Ta(N+1) - Te_last(N) Update time interval=Ta(N+1)-Ta(N)

[0051] The surplus time rate is calculated for each agent simulator 200. The surplus time rate is an index value indicating the margin of the slowest agent simulator among the other agent simulators related to the agent simulator of interest with respect to the update speed of its own agent simulator. When the surplus time rate is a positive value, the larger the surplus time rate, the greater the margin of the other agent simulators with respect to the update speed of the agent simulator of interest. When the surplus time rate is a negative value, at least one of the other agent simulators is lagging behind the agent simulator of interest.

[0052] When the surplus time rate is a positive value in all the agent simulators 200, no delay occurs in any of the agent simulators 200. If the surplus time rate is sufficiently large, there is room to further increase the simulation speed. However, if the surplus time rate is small, there is a risk that a delay will occur in any of the agent simulators 200 by further increasing the simulation speed. Also, if the surplus time rate is too close to zero, the surplus time rate may fluctuate to a negative value due to deterioration of the computing / networking environment. Therefore, in order to execute the simulation as fast as possible while maintaining the accuracy of the simulation, it is desirable that the surplus time rate calculated in each agent simulator 200 is maintained within a certain range.

[0053] Case 2. Some other agent simulators are lagging behind Case 2 is a situation where some of the other agent simulators related to the agent simulator of interest are delayed. Fig. 5 is a timing diagram showing various timings related to updating the state of the agent in this situation.

[0054] In case 2, timing Te_first(N) is located before timing Ta(N+1). In other words, before the calculation for updating the state of the own agent in the next time step starts, at least one of the movement messages of the surrounding agents required for the calculation is received.

[0055] However, in case 2, timing Te_last(N) is not located before timing Ta(N+1). In other words, not all movement messages of surrounding agents required for the calculation to update the state of the own agent in the next time step are received before the calculation to update the state of the own agent in the next time step is started. At least one movement message is received after the calculation to update the state of the own agent in the next time step is started. This means that a delay occurs in some of the other agent simulators related to the agent simulator of interest.

[0056] In case 2, timing Te_last(N) is later than timing Ta(N+1), so the surplus time rate value is a negative value. If the surplus time rate value is negative for any of the agent simulators, including the agent simulator of interest, it can be confirmed that there is an agent simulator that is lagging behind the rest.

[0057] Case 3. The situation where the agent simulator is slightly behind other agent simulators Case 3 is a situation where the agent simulator of interest is slightly behind other agent simulators related to it. Figure 6 is a timing diagram showing various timings related to updating the state of the agent in this situation.

[0058] In case 3, timing Te_first(N+1) is located before timing Ta(N+1). In other words, before the calculation for updating the state of the own agent in the next time step starts, the movement message of the surrounding agents required for the calculation of updating the state of the own agent in the time step after next is received. As a result, it is observed that the other agent simulators are operating faster than the focused agent simulator.

[0059] However, in case 3, timing Td(N) is located before timing Te_first(N+1). In other words, before the movement messages of the surrounding agents necessary for calculating the state update of the own agent in the next time step are received, the transmission of the movement message related to the state of the own agent updated in the current time step is completed. This means that although the agent simulator of interest is behind the other agent simulators, it is not significantly behind. A delay of this magnitude may be within the permissible range.

[0060] Case 4. The situation where the agent simulator is significantly lagging behind other agent simulators Case 4 is a situation where the agent simulator of interest is significantly behind other agent simulators related to it. Figure 7 is a timing diagram showing various timings related to updating the state of the agent in this situation.

[0061] In case 4, timing Te_first(N+1) is located before timing Td(N). In other words, before the transmission of the movement message related to the state of the own agent updated in the current time step is completed, the movement message of the surrounding agents necessary for calculating the state update of the own agent in the time step after next is received. The other agent simulators normally update the states of the surrounding agents in the next time step using the state of the own agent transmitted by the agent simulator of interest at timing Td(N). Therefore, in case 4, the agent simulator of interest is definitely one lap behind the other agent simulators.

[0062] Here, the delay time is defined by the following formula: The delay time can be used as an index value indicating the degree of delay of the agent simulator of interest relative to other agent simulators. Delay time = Td(N) - Te_first(N+1)

[0063] In case 3, timing Td(N) is earlier than timing Te_first(N+1), so the delay time has a negative value. On the other hand, in case 4, timing Td(N) is later than timing Te_first(N+1), so the delay time has a positive value. If the delay time has a positive value and exceeds a predetermined threshold, it can be determined that the agent simulator of interest is delayed unacceptably behind the other agent simulators.

[0064] 1-3-2. Processing in the agent simulator for controlling the simulation speed The MAS system 100 controls the simulation speed to aim for the desirable situation shown in Case 1 among the four cases described above. The control of the simulation speed by the MAS system 100 is performed through cooperation between the agent simulator 200 and the simulation conductor 320.

[0065] First, the process in the agent simulator 200 for controlling the simulation speed will be described. Fig. 8 is a flowchart showing a routine executed by the agent simulator 200 for controlling the simulation speed. In detail, the flowchart shows the flow of decisions made by the agent simulator 200 regarding adjustment of the simulation speed and withdrawal from the simulation. The agent simulator 200 repeatedly executes the routine shown in the flowchart at a fixed cycle.

[0066] In step S100, it is judged whether or not the timing Te_last(N) has been detected after the current time step. As can be seen from a comparison of Figures 4 to 6 with Figure 7, whether or not the timing Te_last(N) has been detected after the current time step serves as a criterion for judging whether or not the agent simulator 200 is delayed behind other agent simulators to an unacceptable extent.

[0067] If the timing Te_last(N) can be detected after the current time step, that is, if the agent simulator 200 is not delayed to an unacceptable extent relative to the other agent simulators, the flow proceeds to step S102. In step S102, it is determined whether the above-mentioned residual time is a positive value. If the residual time is positive, it means that the agent simulator 200 is not delayed and the other agent simulators are not delayed either.

[0068] If the surplus time is a positive value, the process of step S104 is performed. In step S104, the surplus time rate described above is calculated. Note that in the flowchart, the surplus time rate may be expressed as RTR. Next, in step S106, the surplus time rate calculated in step S104 is sent to the simulation conductor 320 together with a simulation control message "status normal." In the flowchart, the message means a simulation control message. The simulation control message "status normal" is a simulation control message for reporting to the simulation conductor 320 that neither the agent simulator 200 nor the other agent simulator is in a delay state. Note that in the flowchart, the simulation conductor is expressed as SC.

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

[0070] If the delay time is equal to or greater than the delay time threshold value ThD, then in step S110, the value of the fatal delay state counter CountFD is incremented by 1. The fatal delay state counter is a counter for measuring the duration of a fatal delay state of the agent simulator 200. The initial value of the fatal delay state counter is zero, and is reset when the process of step S120, which will be described later, is executed. If the delay time is smaller than the delay time threshold value ThD, step S110 is skipped.

[0071] Next, in step S112, it is determined whether the agent simulator 200 is an agent simulator capable of adjusting the time interval of the simulation, that is, the time granularity. Basically, the agent simulator 200 is capable of adjusting the time granularity. However, the adjustment range of the time granularity is limited depending on the type of the agent. For example, if the agent is a robot, precise movements are required of the robot, so if the time granularity exceeds the order of 100 msec, it becomes difficult to establish a simulation. If the agent is a pedestrian, a time granularity of the order of 1 sec is sufficient, but even in this case, the time granularity cannot be made excessively large. Therefore, in step S112, it is determined whether the time granularity is adjustable based on the type of the agent and the current time granularity.

[0072] If the agent simulator 200 is an agent simulator capable of adjusting the time granularity, the time granularity is expanded in step S114. For example, a value obtained by multiplying the current time granularity by a predetermined expansion coefficient is set as the new time granularity. The expansion coefficient may be a fixed value (for example, 2) or a variable that decreases with each expansion. The expansion coefficient may also be a different value for each type of agent. Next, in step S116, the time granularity expanded in step S114 is transmitted to the simulation conductor 320 together with a simulation control message "expand time granularity". The simulation control message "expand time granularity" is a simulation control message for reporting to the simulation conductor 320 that the time granularity has been expanded. If the agent simulator 200 is not capable of adjusting the time granularity, steps S114 and S116 are skipped.

[0073] Next, in step S118, it is determined whether the value of the fatal delay state counter CountFD is equal to or greater than a count threshold ThNfd. The count threshold ThNfd is a threshold for determining whether the fatal delay state of the agent simulator 200 is steady. The count threshold ThNfd may be set to a different value depending on whether the agent simulator 200 is capable of adjusting the time granularity. For example, the count threshold ThNfd set for an agent simulator capable of adjusting the time granularity may be set to a value greater than the count threshold ThNfd set for an agent simulator whose time granularity is not adjustable. As a specific example, the former may be set to 5 times, and the latter may be set to 3 times.

[0074] If the fatal delay state counter is equal to or greater than the count threshold value ThNfd, then in step S120, a simulation control message "LEAVE" is sent to the simulation conductor 320. The simulation control message "LEAVE" is a simulation control message for reporting to the simulation conductor 320 that the agent simulator 200 is leaving the simulation. The agent simulator that sent the simulation control message "LEAVE" leaves the simulation on its own. If the fatal delay state counter is smaller than the count threshold value ThNfd, step S120 is skipped.

[0075] In step S122, a simulation control message "delay detected" is transmitted to the simulation conductor 320. The simulation control message "delay detected" is a simulation control message for reporting to the simulation conductor 320 that either the agent simulator 200 in question or another agent simulator is in a delayed state. Even if the time granularity is adjusted in step S114, the simulation control message "delay detected" is always transmitted at least once. In other words, until the agent simulator 200 in question leaves the simulation, either the simulation control message "status normal" or the simulation control message "delay detected" is always transmitted to the simulation conductor 320.

[0076] 1-3-3. Processing in the Simulation Conductor for Simulation Speed ​​Control Next, the processing in the simulation conductor 320 for controlling the simulation speed will be described. Fig. 9 is a flowchart showing a routine executed by the simulation conductor 320 for controlling the simulation speed. In detail, the flowchart shows the flow of adjustment of the simulation speed of the agent simulator 200 by the simulation conductor 320. The simulation conductor 320 repeatedly executes the routine shown in the flowchart at a fixed cycle.

[0077] First, in step S202, the simulation conductor 320 receives simulation control messages from all the agent simulators 200. In the flowchart, the agent simulators are represented as AS. Also, the messages in the flowchart refer to simulation control messages.

[0078] In step S204, it is determined whether the contents of all the simulation control messages acquired in step S202 are "normal status." If all the simulation control messages acquired from all the agent simulators 200 are "normal status," then there is no agent simulator 200 in which a delay is occurring. In that case, the surplus time rates are acquired from all the agent simulators 200 together with the simulation control messages.

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

[0080] Next, in step S208, it is determined whether the minimum value RTR_min of the surplus time rate is greater than the maximum allowable value RTRA_max (first threshold value) of the surplus time rate. For the surplus time rate, an allowable range corresponding to a desired simulation speed is set. If the surplus time rate is greater than the maximum value of the allowable range, this means that idle time is occurring in the calculation of the agent simulator 200. In other words, this means that there is room to accelerate the simulation speed.

[0081] If the minimum value RTR_min of the surplus time rate is greater than the maximum allowable value RTRA_max, in step S210, the value of the acceleration possible state counter CountAP is incremented by 1. The initial value of the acceleration possible state counter is zero, and is reset when the process of step S214 described later is executed and when the determination result of step S208 becomes negative.

[0082] Next, in step S212, it is determined whether the value of the acceleration possible state counter CountAP is greater than an acceleration determination threshold ThNap. The acceleration determination threshold ThNap is a threshold for determining whether the acceleration possible state continues for a certain period of time. The acceleration determination threshold ThNap may be set to a fixed value (for example, 3).

[0083] If the acceleration possible state counter is greater than the acceleration judgment threshold value ThNap, in step S214, a simulation control message "acceleration" and a new speed ratio are transmitted to all agent simulators 200. The new speed ratio transmitted here means the speed ratio after acceleration of the flow of time in the virtual world 2 relative to the flow of time in the real world. The simulation control message "acceleration" is an instruction to each agent simulator 200 to accelerate, and the new speed ratio transmitted at the same time is the instruction value. Note that the new speed ratio may be increased more significantly as the minimum value of the surplus time rate calculated in step S206 increases. According to this, the simulation speed can be accelerated more significantly as there is a margin in the surplus time rate.

[0084] On the other hand, if the acceleration possible state counter is equal to or less than the acceleration judgment threshold value ThNap, in step S218, a simulation control message "no acceleration or deceleration" is transmitted to all agent simulators 200. The simulation control message "no acceleration or deceleration" is an instruction to each agent simulator 200 to maintain the current speed ratio.

[0085] If the result of the determination in step S208 is that the minimum value RTR_min of the surplus time rate is equal to or less than the maximum allowable value RTRA_max, then in step S216 it is determined whether the minimum value RTR_min of the surplus time rate is smaller than the minimum allowable value RTRA_min of the surplus time rate (second threshold value). If the surplus time rate is smaller than the minimum value of the allowable range of the surplus time rate, this means that the agent simulator 200 has no time to spare in its calculations. In other words, this means that the simulation speed should be slowed down so as not to cause delays.

[0086] If the minimum surplus time rate RTR_min is smaller than the maximum allowable value RTRA_max, then in step S228, a simulation control message "slow down" and a new speed ratio are transmitted to all agent simulators 200. The new speed ratio transmitted here means the speed ratio after slowing down of the flow of time in the virtual world 2 relative to the flow of time in the real world. The simulation control message "slow down" is an instruction to each agent simulator 200 to slow down, and the new speed ratio transmitted at the same time is the instruction value. Note that the closer to zero the minimum surplus time rate calculated in step S206 is, the more the new speed ratio may be reduced. According to this, the simulation speed can be reduced more the less margin there is in the surplus time rate.

[0087] On the other hand, if the minimum surplus time rate RTR_min is equal to or greater than the maximum allowable value RTRA_max, a simulation control message "no acceleration / deceleration" is transmitted to each agent simulator 200 in step S218.

[0088] If the determination result in step S204 is negative, that is, if the content of at least one simulation control message is not "status normal", a determination is made in step S220. In step S220, it is determined whether or not a simulation control message "expand time granularity" has been received from any of the agent simulators 200.

[0089] If the determination result in step S220 is positive, then in step S222, a simulation control message "agent simulator parameter change" and associated information are transmitted to all agent simulators 200. The associated information transmitted here includes the number of agent simulators whose time granularity has been expanded, and the IDs and new time granularity of each agent simulator whose time granularity has been expanded. That is, in step S222, a simulation control message is transmitted to each agent simulator 200 in order to inform them of information relating to the adjustment of time granularity. If the determination result in step S220 is negative, then step S222 is skipped.

[0090] Next, in step S224, it is determined whether or not a simulation control message "leave" has been received from any of the agent simulators 200. That is, a departure based on the agent simulator 200's own decision is detected by the simulation control message "leave."

[0091] If the determination result in step S224 is positive, then in step S226, a simulation control message "agent simulator leaves" and associated information are transmitted to each agent simulator 200. The associated information transmitted here includes the number of agent simulators that have left the simulation and the IDs of each of the agent simulators that have left. That is, in step S226, the simulation control message is transmitted for the purpose of disseminating information regarding the departure of the agent simulators 200. If the determination result in step S224 is negative, then step S226 is skipped. Then, the process of step S228 is executed.

[0092] In the above-mentioned routine, the agent simulator 200 itself judges whether to leave the simulation. In parallel with this, the simulation conductor 320 also judges whether to cause the agent simulator 200 to leave the simulation. Fig. 10 is a flowchart showing a routine executed by the simulation conductor 320 to instruct the agent simulator 200 to leave. In detail, the flowchart shows the flow of an instruction to the agent simulator 200 to leave the simulation based on the judgment of the simulation conductor 320. The simulation conductor 320 repeatedly executes the routine shown in the flowchart at a fixed cycle.

[0093] First, in step S302, it is determined whether or not alarm information has been received from the movement message dispatcher 310. In the flowchart, the movement message dispatcher is represented as MMD. Movement messages are transmitted from each agent simulator 200 to the movement message dispatcher 310 at time intervals corresponding to the time granularity of the agent. When a delay of a certain amount or more is detected in receiving a movement message, the movement message dispatcher 310 transmits alarm information related to the agent simulator 200 to the simulation conductor 320.

[0094] Furthermore, in step S302, it is determined whether or not a simulation control message has been received from each agent simulator 200. The message in the flowchart means a simulation control message. If alarm information has not been received from the mobile message dispatcher 310 and a simulation control message has been received from the agent simulator 200, the subsequent processing is skipped.

[0095] When alarm information is received from the movement message dispatcher 310, or when a simulation control message is not received from the agent simulator 200, the flow proceeds to step S304. In step S304, for the agent simulator 200 corresponding to the positive determination in step S302, the value of the departure determination counter CountDC provided for each agent simulator 200 is decremented by 1. The initial value of the departure determination counter is set to the maximum allowable number of times (for example, 3).

[0096] In step S306, it is determined whether the value of each departure judgment counter has become equal to or less than zero. The process of the next step S308 is skipped until the value of the departure judgment counter becomes equal to or less than zero. If the value of the departure judgment counter becomes equal to or less than zero, in step S308, a departure instruction waiting state is set for the agent simulator 200 whose departure judgment counter value has become equal to or less than zero.

[0097] In the next step S310, a list of the agents 200 waiting for a withdrawal instruction is created. Then, in step S312, a simulation control message "agent simulator withdraw" and accompanying information are transmitted to all agent simulators 200. The accompanying information transmitted here includes the number of agent simulators to be withdrawn from the simulation and the ID of each agent simulator to be withdrawn. The agent simulators included in the list receive the simulation control message "agent simulator withdraw", and withdraw from the simulation.

[0098] 1-3-4. Processing for resuming a simulation after an interruption As described above, in the MAS system 100, an agent simulator 200 that has become delayed leaves the simulation at the discretion of the agent simulator 200 itself or at the discretion of the simulation conductor 320. This prevents the delayed agent simulator 200 from becoming a rate limiter in increasing the simulation speed. However, as the number of agent simulators 200 that leave the simulation increases, it becomes increasingly difficult to establish a successful simulation.

[0099] Therefore, the simulation conductor 320 judges whether the number of agent simulators 200 that have left the simulation exceeds a predetermined number threshold. If the number of leaving agents exceeds the number threshold a predetermined number of times in succession, the simulation conductor 320 transmits a simulation control message "Abort" to all agent simulators 200. The simulation control message "Abort" is an instruction to each agent simulator 200 to abort the simulation.

[0100] After the simulation is interrupted, the simulation conductor 320 rewinds the simulation time to the past and restarts the simulation. Figure 11 is a sequence diagram showing the flow of rewinding and restarting the simulation at the discretion of the simulation conductor 320. Although three agent simulators 200 appear in the sequence diagram, only the process executed by one agent simulator 200 is shown as a representative.

[0101] When the simulation control message "interrupt" is sent from the simulation conductor 320 to the agent simulator 200, each agent simulator 200 stops the simulation (step S902). Next, each agent simulator 200 searches the data log of the simulation for the last time when the above-mentioned residual time maintained a positive value (step S904). The searched last time is the last time at which the simulation can be resumed. Each agent simulator 200 sends the simulation conductor 320 a simulation control message "restartable time" including the searched last time as the restartable time.

[0102] The simulation conductor 320 checks whether the simulation control message "Restart possible time" has been received from a number of agent simulators 200 equal to or greater than the threshold ratio (step S802). The simulation conductor 320 calculates the latest time among the received restart possible times and sets it as the restart time of the simulation (step S804). The simulation conductor 320 transmits the restart time together with the simulation control message "Waiting to resume" to the agent simulators 200 that received the simulation control message in step S802.

[0103] Each agent simulator 200 reads out the state at the specified restart time from the data log and resets the state of the agent simulator 200 (step S906). As soon as the agent simulator 200 is ready to restart the simulation, it sends a simulation control message "Restart preparation OK" to the simulation conductor 320.

[0104] The simulation conductor 320 confirms receipt of the simulation control message "Ready to resume" from all the agent simulators 200 that received the simulation control message in step S802 (step S806). The simulation conductor 320 transmits the simulation control message "Resume" to the agent simulators 200 that received the simulation control message in step S802.

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

[0106] 2. Overall structure of the MAS system and information flow The overall configuration and information flow of the MAS system 100 capable of executing the above-described simulation speed adjustment will be described with reference to Fig. 12. As shown in Fig. 12, the MAS system 100 comprises a plurality of agent simulators 200, one center controller 300, and a back-end server 400 for a plurality of service systems. As will be described in detail later, these are distributed across a plurality of computers. In other words, the MAS system 100 is a system premised on parallel distributed processing by a plurality of computers.

[0107] The center controller 300 has as its functions a movement message dispatcher 310 and a simulation conductor 320. The center controller 300 is application software installed on a computer. The movement message dispatcher 310 and the simulation conductor 320 are programs that constitute the application software. The center controller 300 can share a computer, which is hardware, with one or more agent simulators 200, but preferably uses a single dedicated computer.

[0108] The movement message dispatcher 310 relays the transmission and reception of movement messages between the agent simulators 200. The flow of information indicated by solid lines between the agent simulators 200 and the movement message dispatcher 310 indicates the flow of movement messages. The movement message dispatcher 310 is responsible for the above-mentioned movement message exchange function provided in the center controller 300. The movement message dispatcher 310 communicates with all of the agent simulators 200 constituting the MAS system 100.

[0109] The simulation conductor 320 exchanges simulation control messages with the agent simulator 200. The information flows indicated by dashed lines between the agent simulator 200 and the simulation conductor 320 are the flows of simulation control messages. Unlike the movement messages exchanged between the multiple agent simulators 200 via the movement message dispatcher 310, the simulation control messages are exchanged individually between the simulation conductor 320 and each agent simulator 200.

[0110] The back-end server 400 is the same as the back-end server actually used in a real-world service system. By bringing the real-world back-end server 400 into the virtual world, it is possible to simulate the service provided by the service system with high accuracy. Examples of services simulated by the MAS system 100 include mobility services such as on-demand buses and scheduled buses using autonomous vehicles, and logistics services that deliver packages using autonomous mobile robots. In addition, the services simulated by the MAS system 100 are, for example, services that become available when a user operates a service app on a user terminal.

[0111] The MAS system 100 includes multiple backend servers 400 for different service systems, and can simultaneously simulate multiple types of services in the virtual world 2. The simulation of a service is performed by exchanging service messages between the backend servers 400 and the agent simulator 200. The flow of information indicated by dotted lines between the agent simulator 200 and the backend servers 400 indicates the flow of service messages. Each backend server 400 exchanges service messages with the agent simulator 200 involved in the provision of the service.

[0112] The contents of the exchanged service messages differ depending on the type of agent that the agent simulator 200 is responsible for. For example, when the agent is a user (pedestrian) using a service, the back-end server 400 receives a service message including service usage information from the agent simulator 200 and transmits a service message including service provision status information to the agent simulator 200. The service usage information is information about the current situation and future plans regarding the user's use of the service system, and includes the current usage status and input information by application operations. The service provision status information is information about the user's status in the service system, and is information provided through a service application on the user terminal.

[0113] When the agent is an autonomous robot or an autonomous vehicle used to provide a service, the back-end server 400 receives a service message including operation status information from the agent simulator 200 and transmits a service message including operation instruction information to the agent simulator 200. The operation status information is information about the current state and future plans of the autonomous robot or autonomous vehicle. The information about the current state is, for example, the status of the mounted sensor, the measurement data, the status of the mounted actuator, and the status related to the action decision. The information about the future plan is, for example, a list of the future time, the status of the actuator, and the status related to the action decision. The operation instruction information is information including all or part of the future plan for providing a service using the autonomous robot or the autonomous vehicle. For example, the target point and the route to which the autonomous robot or the autonomous vehicle should move are included in the operation instruction information.

[0114] The agents present in the virtual world 2 include roadside sensors including cameras and stationary objects such as automatic doors. For example, if the agent is a fixed camera, the back-end server 400 receives from the agent simulator 200 a service message including image information from the fixed camera required for calculating position information of the autonomous robot. Also, if the agent is an automatic door, the back-end server 400 transmits to the agent simulator 200 a service message including an instruction to open the door to allow the autonomous robot to pass through.

[0115] Furthermore, the backend server 400 exchanges service messages with other backend servers 400 according to their respective agreements. The flow of information indicated by dotted lines between the backend servers 400 indicates the flow of service messages. The service messages exchanged at this time include, for example, the user's usage status and the service provision status of each service. By exchanging service messages between multiple backend servers 400, the services provided in the virtual world 2 can be linked to each other.

[0116] One example of the collaboration between multiple services is collaboration between an on-demand bus service and a logistics service in which an autonomous robot carries luggage from a bus stop to a user's home on behalf of the user. In the on-demand bus service, the user can get off the bus at a desired location at a desired time. By collaborating the on-demand bus service with the logistics service, it is possible to have the autonomous robot arrive at the drop-off location before the user arrives and wait for the user to arrive at the drop-off location. In addition, if the bus is delayed due to traffic congestion or the like, or if the user misses the bus, the time at which the autonomous robot heads to the drop-off location can be adjusted to match the user's arrival time by exchanging service messages between the backend servers 400.

[0117] However, some backend servers actually used in real-world service systems are not capable of adjusting the processing speed. When a time-dependent service is provided in the virtual world 2 using such a backend server, changing the speed ratio of the time flow in the virtual world 2 to the time flow in the real world makes it impossible to simulate the service provided by the service system. Therefore, when performing a simulation by changing the speed ratio, it is preferable that the service provided in the virtual world 2 is a service without the concept of time.

[0118] There are multiple types of agent simulators 200 depending on the type of agent they are responsible for. For example, there is an agent simulator 201 for pedestrian agents, an agent simulator 202 for autonomous robot / vehicle agents, an agent simulator 203 for VR pedestrian agents, and an agent simulator 204 for roadside sensor agents. Hereinafter, the agent simulator 200 is a general term for these multiple types of agent simulators 201, 202, 203, and 204.

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

[0120] The transmission / reception controller 210 is an interface between the agent simulator 200 and other programs. The transmission / reception controller 210 receives a movement message from the movement message dispatcher 310 and transmits the movement message to the movement message dispatcher 310. However, in the agent simulator 204, only the movement message is received. The transmission / reception controller 210 receives a simulation control message from the simulation conductor 320 and transmits the simulation control message to the simulation conductor 320. In addition, the transmission / reception controller 210 receives a service message from the backend server 400 and transmits the service message to the backend server 400. However, in the agent simulator 204, only the service message is transmitted.

[0121] The 3D physics engine 220 estimates the current states of the surrounding agents in three-dimensional space based on movement messages received from other agent simulators 200. The estimation of the current states based on the past states of the surrounding agents is performed by the 3D physics engine 220. The 3D physics engine 220 generates surrounding information obtained by observation from the own agent based on the current states of the surrounding agents. The 3D physics engine 220 also updates the state of the own agent in three-dimensional space based on the results of a simulation by the simulator core 240, which will be described later, and generates a movement message indicating the state of the own agent. However, in the agent simulator 204, the agent in charge is immobile, so the state of the own agent is not updated and a movement message is not generated.

[0122] The service system client simulator 230 simulates the behavior of the agent itself as a client of the service system related to the back-end server 400. A service message received by the transmission / reception controller 210 is input to the service system client simulator 230. Then, a service message generated by the service system client simulator 230 is transmitted from the transmission / reception controller 210. However, in the agent simulator 204, only the generation of the service message is performed.

[0123] The simulator core 240 simulates the state of the own agent in the next time step. The time interval of the time step for calculating the state of the own agent is the time granularity described above. The content of the simulation in the simulator core 240 differs depending on the type of agent simulator 200. Note that the agent simulator 204 does not have the simulator core 240 because the agent it is responsible for is immobile and there is no need to simulate the state of the own agent.

[0124] 3. Detailed configuration and information flow of the agent simulator Next, the detailed configuration and information flow of each type of agent simulator 201, 202, 203, 204 that constitutes the MAS system 100 will be described with reference to Figures 13 to 16. In Figures 13 to 16, the information flow between blocks indicated by solid lines indicates the flow of movement messages. The information flow between blocks indicated by dotted lines indicates the flow of service messages. And the information flow between blocks indicated by dashed lines indicates the flow of simulation control messages.

[0125] 3-1. Agent simulator for pedestrian agents 13 is a block diagram showing the configuration and information flow of the agent simulator 201 for a pedestrian agent. The overall configuration of the agent simulator 201 for a pedestrian agent, details of each part, and the information flow in the agent simulator 201 will be described below.

[0126] 3-1-1. Overall configuration of the agent simulator for pedestrian agents The agent simulator 201 has, as its functions, a transmission / reception controller 211, a 3D physics engine 221, a service system client simulator 231, and a simulator core 241. These functions are conceptually included in the transmission / reception controller 210, the 3D physics engine 220, the service system client simulator 230, and the simulator core 240, respectively.

[0127] The transmission / reception controller 211 includes a movement message receiving unit 211a, a service message receiving unit 211b, and a control message receiving unit 211c as functions for receiving various messages. The transmission / reception controller 211 also includes a movement message transmitting unit 211d, a service message transmitting unit 211e, and a control message transmitting unit 211f as functions for transmitting various messages. The transmission / reception controller 211 also includes a remaining time rate calculation unit 211g and a simulation operation control unit 211h. Each of the units 211a to 211h constituting the transmission / reception controller 211 is a program or a part of a program. Note that the descriptions within the blocks describe the representative functions of each unit and do not necessarily match the names of each unit.

[0128] The 3D physics engine 221 has, as its functions, a surrounding agent state update unit 221a, a visual information generation unit 221b, and a self-agent state update unit 221c. Each of the units 221a, 221b, and 221c constituting the 3D physics engine 221 is a program or a part of a program. Note that the descriptions within the blocks describe the representative functions of each unit, and do not necessarily match the names of each unit.

[0129] The service system client simulator 231 has a service provision status information processing unit 231a and a service usage information generating unit 231b as its functions. Each of the units 231a and 231b constituting the service system client simulator 231 is a program or a part of a program. Note that the descriptions within the blocks describe the representative functions of each unit and do not necessarily match the names of each unit.

[0130] The simulator core 241 includes, as its functions, an overall movement policy determination unit 241a, an action determination unit 241b, a next time step state calculation unit 241d, a service use action determination unit 241e, and a speed adjustment unit 241g. Each of the units 241a, 241b, 241d, 241f, and 241g constituting the simulator core 241 is a program or a part of a program. Note that the descriptions within the blocks describe the representative functions of each unit and do not necessarily match the names of each unit.

[0131] 3-1-2.Details of the transmission and reception controller In the transmission / reception controller 211, the movement message receiving unit 211a receives a movement message from the movement message dispatcher 310. The movement message receiving unit 211a outputs the received movement message to a surrounding agent state updating unit 221a of the 3D physics engine 221. In addition, the movement message receiving unit 211a outputs information including the time when the movement message was received to the remaining time rate calculation unit 211g.

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

[0133] The control message receiver 211c receives a simulation control message from the simulation conductor 320. The control message receiver 211c outputs the received simulation control message to the simulation operation controller 211h.

[0134] The movement message transmitting unit 211d acquires a movement message including the current state of its own agent from its own agent state updating unit 221c of the 3D physics engine 221. The movement message transmitting unit 211d transmits the acquired movement message to the movement message dispatcher 310. In addition, the movement message transmitting unit 211d transmits information including the transmission completion time of the movement message to the remaining time rate calculating unit 211g.

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

[0136] The control message transmitting unit 211f obtains a simulation control message including information on the speed status of the simulation from the surplus time rate calculating unit 211g. The control message transmitting unit 211f also obtains a simulation control message including the control state of the agent simulator 201 from the simulation operation control unit 211h. The control message transmitting unit 211f transmits the simulation control message obtained from the surplus time rate calculating unit 211g and the simulation operation control unit 211h to the simulation conductor 320.

[0137] The remaining time rate calculation unit 211g acquires information including the reception time of the movement message from the movement message receiving unit 211a. The remaining time rate calculation unit 211g also acquires information including the transmission completion time of the movement message from the movement message transmitting unit 211d. Furthermore, the remaining time rate calculation unit 211g acquires the start time of calculation for updating the state of the own agent from the next time step state calculation unit 241d of the simulator core 241.

[0138] The surplus time rate calculation unit 211g outputs a simulation control message including the surplus time, surplus time rate, and delay time to the control message transmission unit 211f. The surplus time, surplus time rate, and delay time are information related to the speed status of the simulation. The simulation conductor 320, which receives the simulation control message including this information, determines the control content to be instructed to the agent simulator 201. The control content to be instructed to the agent simulator 201 is, for example, the simulation speed, stopping the simulation, pausing the simulation, and restarting the simulation. The simulation conductor 320 creates a simulation control message including the control content to be instructed, and transmits it to the agent simulator 201.

[0139] The simulation operation control unit 211h acquires a simulation control message from the control message receiving unit 211c. The simulation operation control unit 211h controls the simulation operation of the agent simulator 201 according to an instruction included in the simulation control message. For example, when an instruction is given to change the time granularity of the simulation, the simulation operation control unit 211h changes the time granularity of the simulation by the agent simulator 201 from the initial value to the instructed time granularity. The initial value of the time granularity is stored in the agent simulator 201 as a setting value. In addition, the upper limit value and the lower limit value of the time granularity are stored in the simulation conductor 320 for each type of agent.

[0140] When the content of the instruction by the simulation control message is the simulation speed, the simulation operation control unit 211h changes the operating frequency of the 3D physics engine 221 and the simulator core 241 to accelerate or decelerate the simulation speed. For example, for the simulator core 241, the instructed simulation speed is output to the speed adjustment unit 241g of the simulator core 241. Note that the simulation speed means the speed ratio of the time flow in the virtual world 2 to the time flow in the real world. When an instruction to stop the simulation is given, the simulation operation control unit 211h stops the simulation by the agent simulator 201. When an instruction to pause the simulation is given, the simulation is paused, and when an instruction to resume the simulation is given, the simulation operation control unit 211h resumes 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 transmission unit 211f.

[0141] 3-1-3.3D Physics Engine Details In the 3D physics engine 221, the surrounding agent state update unit 221a acquires a movement message from the movement message receiving unit 211a. The movement message acquired from the movement message receiving unit 211a is a movement message sent from another agent simulator via the movement message dispatcher 310. The surrounding agent state update unit 221a estimates the current states of surrounding agents existing around the own agent based on the acquired movement message.

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

[0143] The visual information generation unit 221b acquires the current states of the surrounding agents from the surrounding agent state update unit 221a. The visual information generation unit 221b generates surrounding information obtained by observation from the own agent based on the current states of the surrounding agents. Since the own agent is a pedestrian, the surrounding information obtained by observation means visual information captured by the eyes of a pedestrian. The visual information generation unit 221b outputs the generated visual information to the overall movement policy determination unit 241a, the action determination unit 241b, and the service utilization action determination unit 241e of the simulator core 241.

[0144] The own agent state update unit 221c acquires the state of the own agent in the next time step simulated by the simulator core 241 from the next time step state calculation unit 241d of the simulator core 241. The own agent state update unit 221c updates the state of the own agent in the three-dimensional space based on the simulation result by the simulator core 241. The own agent state update unit 221c outputs a movement message including the updated state of the own agent to the movement message transmission unit 211d of the transmission / reception controller 211. The state of the own agent included in the movement message includes the position, direction, speed, and acceleration in the current time step, and the position, direction, speed, and acceleration in the next time step. In addition, the own agent state update unit 221c outputs information related to the updated state of the own agent to the service usage information generation unit 231b of the service system client simulator 231.

[0145] 3-1-4. Service System Client Simulator Details In the service system client simulator 231, the service provision status information processing unit 231a acquires a service message from the service message receiving unit 211b. The service message acquired from the service message receiving unit 211b includes service provision status information. The service provision status information processing unit 231a processes the service provision status information and acquires information on the status of the own agent as a user of the service system and input items for the service application of the user terminal. The information on the own agent's status as a user is information presented to the user terminal, and the input items are information that the own agent is requested to input in order to use a service. The service provision status information processing unit 231a outputs the information on the own agent's status as a user and the input items for the service application of the user terminal to the overall movement policy determination unit 241a and the service utilization behavior determination unit 241e of the simulator core 241.

[0146] The service usage information generating unit 231b acquires the result of the determination of the service usage action of the own agent from the service usage action determining unit 241e of the simulator core 241. The service usage information generating unit 231b also acquires the state of the own agent in the three-dimensional space from the own agent state updating unit 221c of the 3D physics engine 221. The service usage information generating unit 231b generates service usage information based on the acquired information, and updates the service usage state of the own agent. The service usage information generating unit 231b outputs a service message including the service usage information to the service message transmitting unit 211e of the transmission / reception controller 211.

[0147] 3-1-5.Simulator core details In the simulator core 241, the overall movement policy determination unit 241a acquires visual information from the visual information generation unit 221b of the 3D physics engine 221. The overall movement policy determination unit 241a also acquires information on the status of the own agent as a user and input items to the service application of the user terminal from the service provision status information processing unit 231a of the service system client simulator 231. The overall movement policy determination unit 241a determines an overall movement policy of the own agent in the virtual world 2 based on the acquired information. The overall movement policy determination unit 241a outputs the determined overall movement policy to the action determination unit 241b.

[0148] The behavior decision unit 241b acquires an overall movement policy from the overall movement policy decision unit 241a, and also acquires visual information from the visual information generation unit 221b of the 3D physics engine 221. The behavior decision unit 241b decides the behavior of the own agent by inputting the overall movement policy and visual information to the movement model 241c. The movement model 241c is a simulation model that models how a pedestrian moves according to the surrounding situation as seen by the pedestrian under a certain movement policy. The behavior decision unit 241b outputs the decided behavior of the own agent to the next time step state calculation unit 241d.

[0149] The next time step state calculation unit 241d acquires the action of the own agent determined by the action determination unit 241b. The next time step state calculation unit 241d calculates the state of the own agent in the next time step based on the action of the own agent. The calculated state of the own agent includes the position, direction, speed, and acceleration of the own agent in the next time step. The next time step state calculation unit 241d outputs the calculated state of the own agent in the next time step to the own agent state update unit 221c of the 3D physics engine 221. In addition, the next time step state calculation unit 241d outputs the start time of calculation for updating the state of the own agent to the residual time rate calculation unit 211g of the transmission / reception controller 211.

[0150] The service use behavior determining unit 241e acquires visual information from the visual information generating unit 221b of the 3D physics engine 221. The service use behavior determining unit 241e also acquires information on the status of the agent as a user and input items to the service application of the user terminal from the service provision status information processing unit 231a of the service system client simulator 231. The service use behavior determining unit 241e inputs the acquired information to the behavior model 241f to determine the behavior (service use behavior) of the agent as a user of the service system. The behavior model 241f is a simulation model that models how the user moves according to the surrounding situation as seen by the user when information on a service is presented to the user and input to the service application of the user terminal is requested. The service use behavior determining unit 241e outputs the determined service use behavior to the service use information generating unit 231b.

[0151] The speed adjustment unit 241g acquires the simulation speed from the simulation operation control unit 211h. The simulation speed acquired from the simulation operation control unit 211h is the simulation speed instructed by the simulation conductor 320. The speed adjustment unit 241g accelerates or decelerates the simulation speed of the own agent by the simulator core 241 in accordance with the instruction from the simulation conductor 320.

[0152] 3-2. Agent simulator for autonomous robots / vehicle agents 14 is a block diagram showing the configuration and information flow of the agent simulator 202 for an autonomous robot / vehicle agent. An autonomous robot / vehicle agent is an agent of an autonomous robot or an autonomous vehicle used to provide a service in a service system related to the back-end server 400. The overall configuration and details of each part of the agent simulator 202 for an autonomous robot / vehicle agent, and the information flow in the agent simulator 202 are described below.

[0153] 3-2-1. Overall configuration of agent simulator for autonomous robots / vehicle agents The agent simulator 202 has, as its functions, a transmission / reception controller 212, a 3D physics engine 222, a service system client simulator 232, and a simulator core 242. These functions are conceptually included in the transmission / reception controller 210, the 3D physics engine 220, the service system client simulator 230, and the simulator core 240, respectively.

[0154] The transmission / reception controller 212 includes a movement message receiving unit 212a, a service message receiving unit 212b, and a control message receiving unit 212c as functions for receiving various messages. The transmission / reception controller 212 also includes a movement message transmitting unit 212d, a service message transmitting unit 212e, and a control message transmitting unit 212f as functions for transmitting various messages. The transmission / reception controller 212 also includes a remaining time rate calculation unit 212g and a simulation operation control unit 212h. Each of the units 212a to 212h constituting the transmission / reception controller 211 is a program or a part of a program. Note that the descriptions within the blocks describe the representative functions of each unit and do not necessarily match the names of each unit.

[0155] The 3D physics engine 222 includes, as its functions, a surrounding agent state update unit 222a, a sensor information generation unit 222b, and a self-agent state update unit 222c. Each of the units 222a, 222b, and 222c constituting the 3D physics engine 222 is a program or a part of a program. Note that the descriptions within the blocks describe the representative functions of each unit, and do not necessarily match the names of each unit.

[0156] The service system client simulator 232 has, as its functions, a route planning information receiving unit 232a and an operation status information generating unit 232b. Each of the units 232a and 232b constituting the service system client simulator 232 is a program or a part of a program. Note that the descriptions within the blocks describe the representative functions of each unit and do not necessarily match the names of each unit.

[0157] The simulator core 242 includes, as its functions, an overall path planning unit 242a, a local path planning unit 242b, an actuator operation amount determination unit 242c, and a next time step state calculation unit 242d. Each of the units 242a, 242b, 242c, and 242d constituting the simulator core 242 is a program or a part of a program. Note that the descriptions within the blocks describe the representative functions of each unit and do not necessarily match the names of each unit.

[0158] 3-2-2.Details of the transmission / reception controller In the transmission / reception controller 212, the movement message receiving unit 212a receives a movement message from the movement message dispatcher 310. The movement message receiving unit 212a outputs the received movement message to the surrounding agent state updating unit 222a of the 3D physics engine 222. In addition, the movement message receiving unit 212a outputs information including the time when the movement message was received to the remaining time rate calculation unit 212g.

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

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

[0161] The movement message transmitting unit 212d acquires a movement message including the current state of its own agent from the own agent state updating unit 222c of the 3D physics engine 222. The movement message transmitting unit 212d transmits the acquired movement message to the movement message dispatcher 310. In addition, the movement message transmitting unit 212d transmits information including the transmission completion time of the movement message to the remaining time rate calculation unit 212g.

[0162] The service message sending unit 212e acquires a service message including the operation state information from the operation state information generating unit 232b of the service system client simulator 232. The service message sending unit 212e transmits the acquired service message to the backend server 400.

[0163] The control message transmitting unit 212f obtains a simulation control message including information on the speed status of the simulation from the surplus time rate calculating unit 212g. The control message transmitting unit 212f also obtains a simulation control message including the control state of the agent simulator 202 from the simulation operation control unit 212h. The control message transmitting unit 212f transmits the simulation control message obtained from the surplus time rate calculating unit 212g and the simulation operation control unit 212h to the simulation conductor 320.

[0164] The remaining time rate calculation unit 212g acquires information including the reception time of the movement message from the movement message receiving unit 212a. The remaining time rate calculation unit 212g also acquires information including the transmission completion time of the movement message from the movement message transmitting unit 212d. Furthermore, the remaining time rate calculation unit 212g acquires the start time of calculation for updating the state of the own agent from the next time step state calculation unit 242d of the simulator core 242.

[0165] The surplus time rate calculation unit 212g calculates the surplus time, surplus time rate, and delay time using the above-mentioned formulas based on the acquired information. The surplus time rate calculation unit 212g outputs a simulation control message including the surplus time, surplus time rate, and delay time to the control message transmission unit 212f. The simulation conductor 320, which receives the simulation control message including this information, creates a simulation control message including the control contents to be instructed to the agent simulator 202, and transmits the simulation control message to the agent simulator 202.

[0166] The simulation operation control unit 212h acquires a simulation control message from the control message receiving unit 212c. The simulation operation control unit 212h controls the simulation operation of the agent simulator 202 according to an instruction included in the simulation control message. For example, when an instruction is given to change the time granularity of the simulation, the simulation operation control unit 212h changes the time granularity of the simulation by the agent simulator 202 from the initial value to the instructed time granularity. The initial value of the time granularity is stored as a setting value in the agent simulator 202. In addition, the upper limit value and the lower limit value of the time granularity are stored in the simulation conductor 320 for each type of agent.

[0167] When the instruction content of the simulation control message is the simulation speed, the simulation operation control unit 212h changes the operating frequency of the 3D physics engine 222 and the simulator core 242 according to the instructed simulation speed, and accelerates or decelerates the calculation speed of the agent simulator 202. When an instruction to stop the simulation is given, the simulation operation control unit 212h stops the simulation by the agent simulator 202. When an instruction to pause the simulation is given, the simulation is paused, and when an instruction to resume the simulation is given, the simulation operation control unit 212h resumes the simulation. The simulation control message including the current control state of the agent simulator 202 is output to the control message transmission unit 212f.

[0168] 3-2-3.3D Physics Engine Details In the 3D physics engine 222, the surrounding agent state update unit 222a acquires a movement message from the movement message receiving unit 212a. The movement message acquired from the movement message receiving unit 212a is a movement message sent from another agent simulator via the movement message dispatcher 310. The surrounding agent state update unit 222a estimates the current states of surrounding agents existing around the own agent based on the acquired movement message.

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

[0170] The sensor information generation unit 222b acquires the current states of the surrounding agents from the surrounding agent state update unit 222a. The sensor information generation unit 222b generates surrounding information obtained by observation from the own agent based on the current states of the surrounding agents. Since the own agent is an autonomous robot or an autonomous vehicle, the surrounding information obtained by observation means sensor information captured by the sensors of the autonomous robot or the autonomous vehicle. The sensor information generation unit 222b outputs the generated sensor information to the overall path planning unit 242a of the simulator core 242 and the operation state information generation unit 232b of the service system client simulator 232.

[0171] The own agent state update unit 222c acquires the state of the own agent in the next time step calculated by the simulator core 242 from the next time step state calculation unit 242d of the simulator core 242. The own agent state update unit 222c updates the state of the own agent in the three-dimensional space based on the calculation result by the simulator core 242. The own agent state update unit 222c outputs a movement message including the updated state of the own agent to the movement message transmission unit 212d of the transmission / reception controller 212. The state of the own agent included in the movement message includes the position, direction, speed, and acceleration in the current time step, and the position, direction, speed, and acceleration in the next time step. In addition, the own agent state update unit 222c outputs information related to the updated state of the own agent to the operation state information generation unit 232b of the service system client simulator 232.

[0172] 3-2-4. Service System Client Simulator Details In the service system client simulator 232, the path planning information receiving unit 232a acquires a service message from the service message receiving unit 211b. The service message acquired from the service message receiving unit 212b includes operation instruction information for the service system to provide a service using an autonomous robot / vehicle and information on other service systems. The path planning information receiving unit 232a outputs the operation instruction information and the other service system information to the overall path planning unit 242a of the simulator core 242.

[0173] The motion state information generating unit 232b acquires the actuator operation amount of the own agent in the next time step from the actuator operation amount determining unit 242c of the simulator core 242. The motion state information generating unit 232b also acquires sensor information from the sensor information generating unit 222b of the 3D physics engine 222, and acquires the state of the own agent in three-dimensional space from the own agent state updating unit 222c. The motion state information generating unit 232b generates motion state information representing the motion state of the own agent related to the provision of the service based on the acquired information. The motion state information generating unit 232b outputs a service message including the motion state information to the service message transmitting unit 212e of the transmission / reception controller 212.

[0174] 3-2-5.Simulator core details In the simulator core 242, the overall path planning unit 242a acquires sensor information from the sensor information generating unit 222b of the 3D physics engine 222. The overall path planning unit 242a also acquires operation instruction information and other service system information from the path planning information receiving unit 232a of the service system client simulator 232. The overall path planning unit 242a plans an overall path of the agent in the virtual world 2 based on the acquired information. The overall path means a path from the current position of the agent to a target point. Since the information acquired from the sensor information generating unit 222b and the path planning information receiving unit 232a changes every time, the overall path planning unit 242a re-creates the overall path plan for each time step. The overall path planning unit 242a outputs the determined overall path plan to the local path planning unit 242b.

[0175] The local path planning unit 242b acquires the overall path plan from the overall path planning unit 242a. The local path planning unit 242b makes a local path plan based on the overall path plan. The local path means, for example, a path from the current time to a predetermined time step later, or a path from the current position to a predetermined distance. The local path plan is expressed, for example, by a set of positions to be followed by the agent itself, and the speed or acceleration at each position. The local path planning unit 242b outputs the determined local path plan to the actuator operation amount determination unit 242c.

[0176] The actuator operation amount determination unit 242c acquires the local path plan from the local path plan unit 242b. The actuator operation amount determination unit 242c determines the actuator operation amount of the own agent in the next time step based on the local path plan. The actuator here refers to an actuator that controls the direction, speed, and acceleration of the own agent. If the own agent is an autonomous robot or an autonomous vehicle that runs on wheels, actuators such as a braking device, a driving device, and a steering device are to be operated. The actuator operation amount determination unit 242c outputs the determined actuator operation amount to the next time step state calculation unit 242d and the operation state information generation unit 232b of the service system client simulator 232.

[0177] The next time step state calculation unit 242d acquires the actuator operation amount determined by the actuator operation amount determination unit 242c. The next time step state calculation unit 242d calculates the state of the own agent in the next time step based on the actuator operation amount. The calculated state of the own agent includes the position, direction, speed, and acceleration of the own agent in the next time step. The next time step state calculation unit 242d outputs the calculated state of the own agent in the next time step to the own agent state update unit 222c of the 3D physics engine 222. In addition, the next time step state calculation unit 242d outputs the start time of calculation for updating the state of the own agent to the residual time rate calculation unit 212g of the transmission / reception controller 212.

[0178] 3-3.Agent simulator for VR pedestrian agents 15 is a block diagram showing the configuration and information flow of the agent simulator 203 for a VR pedestrian agent. A VR pedestrian agent is a pedestrian agent that allows a real person to participate in a virtual world 2, which is the subject of a simulation, by using a VR (Virtual Reality) system. The following describes the overall configuration and details of each part of the agent simulator 203 for a VR pedestrian agent, and the information flow in the agent simulator 203.

[0179] 3-3-1. Overall configuration of the agent simulator for VR pedestrian agents The agent simulator 203 has, as its functions, a transmission / reception controller 213, a 3D physics engine 223, a service system client simulator 233, and a simulator core 243. These functions are conceptually included in the transmission / reception controller 210, the 3D physics engine 220, the service system client simulator 230, and the simulator core 240, respectively.

[0180] The transmission / reception controller 213 includes a movement message receiving unit 213a, a service message receiving unit 213b, and a control message receiving unit 213c as functions for receiving various messages. The transmission / reception controller 213 also includes a movement message transmitting unit 213d, a service message transmitting unit 213e, and a control message transmitting unit 213f as functions for transmitting various messages. Furthermore, the transmission / reception controller 213 includes a simulation operation control unit 213h. Each of the units 213a to 213f, 213h constituting the transmission / reception controller 213 is a program or a part of a program. Note that the descriptions within the blocks describe the representative functions of each unit, and do not necessarily match the names of each unit.

[0181] The 3D physics engine 223 has as its functions a surrounding agent state update unit 223a, a visual information generation unit 223b, and a self-agent state update unit 223c. Each of the units 223a, 223b, and 223c constituting the 3D physics engine 223 is a program or a part of a program. Note that the descriptions within the blocks describe the representative functions of each unit, and do not necessarily match the names of each unit.

[0182] The service system client simulator 233 has a service provision status information processing unit 233a and a service usage information generating unit 233b as its functions. Each of the units 233a and 233b constituting the service system client simulator 231 is a program or a part of a program. Note that the descriptions within the blocks describe the representative functions of each unit and do not necessarily match the names of each unit.

[0183] The simulator core 243 includes, as its functions, a cognition judgment information presenting unit 243a, a movement operation receiving unit 243b, a next time step state calculating unit 243c, and an application operation receiving unit 243d. Each of the units 243a, 243b, 243c, and 243d constituting the simulator core 243 is a program or a part of a program. Note that the descriptions within the blocks describe the representative functions of each unit and do not necessarily match the names of each unit.

[0184] 3-3-2.Details of the transmission / reception controller In the transmission / reception controller 213, the movement message receiving unit 213a receives a movement message from the movement message dispatcher 310. The movement message receiving unit 213a outputs the received movement message to the surrounding agent state updating unit 223a of the 3D physics engine 223.

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

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

[0187] The movement message sending unit 213d acquires a movement message including the current state of the own agent from the own agent state updating unit 223c of the 3D physics engine 223. The movement message sending unit 213d transmits the acquired movement message to the movement message dispatcher 310.

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

[0189] The control message sending unit 213f acquires from the simulation operation control unit 213h a simulation control message including the control state of the agent simulator 203. The control message sending unit 213f transmits to the simulation conductor 320 the simulation control message acquired from the simulation operation control unit 213h.

[0190] The simulation operation control unit 213h receives a simulation control message from the control message receiving unit 213c. The simulation operation control unit 213h controls the simulation operation of the agent simulator 203 according to the instruction included in the simulation control message. If the condition for the VR pedestrian agent to participate in the virtual world 2 is not satisfied, the simulation conductor 320 instructs the agent simulator 203 to stop the simulation.

[0191] The agent simulators 201 and 202 described above and the agent simulator 204 described below can change the simulation speed as necessary. However, if the simulation speed is changed, real participants participating in the virtual world 2 through the VR pedestrian agent may feel a strong sense of discomfort due to the different flow of time from the real world. Therefore, in the MAS system 100, the participation of the VR pedestrian agent in the virtual world 2 is permitted on the condition that the simulation is performed in real time. If the simulation speed is accelerated or decelerated compared to the flow of time in the real world, the simulation conductor 320 stops the simulation by the 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 transmission unit 213f.

[0192] 3-3-3.3D Physics Engine Details In the 3D physics engine 223, the surrounding agent state update unit 223a acquires a movement message from the movement message receiving unit 213a. The movement message acquired from the movement message receiving unit 213a is a movement message sent from another agent simulator via the movement message dispatcher 310. The surrounding agent state update unit 223a estimates the current states of surrounding agents existing around the own agent based on the acquired movement message.

[0193] When estimating the current state of a surrounding agent from its past state, the surrounding agent state update unit 223a uses the past states of the surrounding agent stored in the log. The method of estimating the current state using the past states of the surrounding agent is as described above. The surrounding agent state update unit 223a outputs the estimated current state of the surrounding agent to the visual information generation unit 223b and updates the log.

[0194] The visual information generation unit 223b acquires the current states of the surrounding agents from the surrounding agent state update unit 223a. The visual information generation unit 223b generates surrounding information obtained by observation from the own agent based on the current states of the surrounding agents. Since the own agent is a pedestrian, the surrounding information obtained by observation means visual information captured by the eyes of the pedestrian. The visual information generation unit 223b outputs the generated visual information to the perception judgment information presentation unit 243a and the movement operation reception unit 243b of the simulator core 243.

[0195] The own agent state update unit 223c acquires the state of the own agent in the next time step calculated by the simulator core 243 from the next time step state calculation unit 243c of the simulator core 243. The own agent state update unit 223c updates the state of the own agent in the three-dimensional space based on the calculation result by the simulator core 243. The own agent state update unit 223c outputs a movement message including the updated state of the own agent to the movement message transmission unit 213d of the transmission / reception controller 213. The state of the own agent included in the movement message includes the position, direction, speed, and acceleration in the current time step, and the position, direction, speed, and acceleration in the next time step. In addition, the own agent state update unit 223c outputs information related to the updated state of the own agent to the service usage information generation unit 233b of the service system client simulator 233.

[0196] 3-3-4. Service System Client Simulator Details In the service system client simulator 233, the service provision status information processing unit 233a acquires a service message from the service message receiving unit 213b. The service message acquired from the service message receiving unit 213b includes service provision status information. The service provision status information processing unit 233a processes the service provision status information and acquires information related to the status of the own agent as a user of the service system and input items for the service application of the user terminal. The information related to the own agent's status as a user is information presented to the user terminal, and the input items are information requested to be input by the own agent in order to use the service. The service provision status information processing unit 233a outputs the information related to the own agent's status as a user and the input items for the service application of the user terminal to the cognition judgment information presenting unit 243a and the application operation receiving unit 243d of the simulator core 243.

[0197] The service usage information generating unit 233b acquires, from the application operation receiving unit 243d of the simulator core 243, operations of service applications in VR by real participants participating in the virtual world 2 via VR pedestrian agents. The service usage information generating unit 233b also acquires the state of the own agent in the three-dimensional space from the own agent state updating unit 223c of the 3D physics engine 223. The service usage information generating unit 233b generates service usage information based on the acquired information, and updates the service usage state of the own agent. The service usage information generating unit 233b outputs a service message including the service usage information to the service message transmitting unit 213e of the transmission / reception controller 213.

[0198] 3-3-5.Simulator core details In the simulator core 243, the information-for-cognition-determination presenting unit 243a acquires visual information from the visual information generating unit 223b of the 3D physics engine 223. The information-for-cognition-determination presenting unit 243a also acquires information on the agent's status as a user and input items for the service application of the user terminal from the service provision status information processing unit 233a of the service system client simulator 231. The acquired information is information for cognitive judgment for the actual participants participating in the virtual world 2 via the VR pedestrian agent. The information-for-cognition-determination presenting unit 243a presents the information for cognitive judgment to the actual participants through the VR system.

[0199] The movement operation receiving unit 243b acquires visual information from the visual information generating unit 223b of the 3D physics engine 223. Then, the movement operation receiving unit 243b receives a movement operation in VR by the actual participant while presenting the visual information to the actual participant through the VR system. The movement operation receiving unit 243b outputs the received movement operation in VR by the actual participant to the next time step state calculating unit 243d.

[0200] The next time step state calculation unit 243d acquires a movement operation in VR by the actual participant from the movement operation receiving unit 243b. The next time step state calculation unit 243d calculates the state of the own agent in the next time step based on the movement operation in VR by the actual participant. The calculated state of the own agent includes the position, direction, speed, and acceleration of the own agent in the next time step. The next time step state calculation unit 243d outputs the calculated state of the own agent in the next time step to the own agent state update unit 223c of the 3D physics engine 223.

[0201] The application operation receiving unit 243d acquires visual information from the visual information generating unit 223b of the 3D physics engine 223. In addition, the application operation receiving unit 243d acquires information on the agent's status as a user and input items for the service application of the user terminal from the service provision status information processing unit 233a of the service system client simulator 233. The application operation receiving unit 243d presents the acquired information to the real participants through the VR system, while accepting operations of the service application in VR by the real participants. The application operation receiving unit 243d outputs the accepted operations of the service application in VR by the real participants to the service usage information generating unit 233b of the service system client simulator 233.

[0202] 3-4. Agent simulator for roadside sensor agents 16 is a block diagram showing the configuration and information flow of the agent simulator 204 for roadside sensor agents. The roadside sensor agent is a roadside sensor agent used to acquire position information of an autonomous robot / vehicle agent in the virtual world 2. The position information of the autonomous robot / vehicle agent acquired by the roadside sensor agent is used in a service system in which the backend server 400 is involved. Below, the overall configuration and details of each part of the agent simulator 204 for roadside sensor agents, and the information flow in the agent simulator 204 are explained.

[0203] 3-4-1. Overall configuration of the agent simulator for roadside sensor agents The agent simulator 204 has as its functions a transmission / reception controller 214, a 3D physics engine 224, and a service system client simulator 234. These functions are conceptually included in a transmission / reception controller 210, a 3D physics engine 220, and a simulator core 240, respectively. Unlike other agent simulators, the agent simulator 204 does not have a simulator core.

[0204] The transmission / reception controller 214 includes a movement message receiving unit 214a and a control message receiving unit 214b as functions for receiving various messages. The transmission / reception controller 212 includes a service message transmitting unit 214e and a control message transmitting unit 214f ​​as functions for transmitting various messages. The transmission / reception controller 212 further includes a remaining time rate calculating unit 214g and a simulation operation control unit 214h. Each of the units 212a, 214c, 214e, 214f, 214g, and 214h constituting the transmission / reception controller 214 is a program or a part of a program.

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

[0206] The service system client simulator 234 includes a service message generating unit 234a as one of its functions. The service message generating unit 234a constituting the service system client simulator 234 is a program or a part of a program.

[0207] 3-4-2.Details of the transmission / reception controller In the transmission / reception controller 214, the movement message receiving unit 214a receives a movement message from the movement message dispatcher 310. The movement message receiving unit 214a outputs the received movement message to a surrounding agent state updating unit 224a of the 3D physics engine 224. In addition, the movement message receiving unit 214a outputs information including the time when the movement message was received to a remaining time rate calculation unit 214g.

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

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

[0210] The control message transmitting unit 214f ​​obtains a simulation control message including information on the speed status of the simulation from the surplus time rate calculating unit 214g. The control message transmitting unit 214f ​​also obtains a simulation control message including the control state of the agent simulator 202 from the simulation operation control unit 214h. The control message transmitting unit 214f ​​transmits the simulation control message obtained from the surplus time rate calculating unit 214g and the simulation operation control unit 214h to the simulation conductor 320.

[0211] The surplus time rate calculation unit 214g acquires information including the reception time of the movement message from the movement message receiving unit 214a. In addition, the surplus time rate calculation unit 214g acquires information including the transmission completion time of the service message from the service message transmitting unit 214e. The surplus time rate calculation unit 214g calculates the surplus time, surplus time rate, and delay time using the above-mentioned formulas based on the acquired information. However, in calculating the surplus time and surplus time rate, values ​​calculated from the operating frequency of the agent simulator 202 are used for Ta(N+1) and Ta(N). In addition, the transmission completion time of the service message is used for Td(N) instead of the transmission completion time of the movement message in the current time step.

[0212] The surplus time rate calculation unit 214g outputs a simulation control message including the surplus time, surplus time rate, and delay time to the control message transmission unit 214f. The simulation conductor 320, which receives the simulation control message including this information, creates a simulation control message including the control content to be instructed to the agent simulator 204, and transmits the simulation control message to the agent simulator 204.

[0213] The simulation operation control unit 214h acquires a simulation control message from the control message receiving unit 214c. The simulation operation control unit 214h controls the simulation operation of the agent simulator 202 according to an instruction included in the simulation control message. For example, when an instruction is given to change the time granularity of the simulation, the simulation operation control unit 214h changes the time granularity of the simulation by the agent simulator 202 from the initial value to the instructed time granularity. The initial value of the time granularity is stored as a setting value in the agent simulator 204. In addition, the upper limit value and the lower limit value of the time granularity are stored in the simulation conductor 320 for each type of agent.

[0214] When the instruction content of the simulation control message is 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 calculation speed of the agent simulator 204. When an instruction to stop the simulation is given, the simulation operation control unit 214h stops the simulation by the agent simulator 204. When an instruction to pause the simulation is given, the simulation is paused, and when an instruction to resume the simulation is given, the simulation operation control unit 214h resumes the simulation. The simulation control message including the current control state of the agent simulator 204 is output to the control message transmission unit 214f.

[0215] 3-4-3.3D Physics Engine Details In the 3D physics engine 224, the surrounding agent state update unit 224a acquires a movement message from the movement message receiving unit 214a. The movement message acquired from the movement message receiving unit 214a is a movement message sent from another agent simulator via the movement message dispatcher 310. The surrounding agent state update unit 224a estimates the current states of surrounding agents existing around the own agent based on the acquired movement message.

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

[0217] The sensor information generation unit 224b acquires the current states of the surrounding agents from the surrounding agent state update unit 224a. The sensor information generation unit 224b generates surrounding information obtained by observation from the own agent based on the current states of the surrounding agents. Since the own agent is a fixed roadside sensor such as a camera, the surrounding information obtained by observation means sensor information captured by the roadside sensor. The sensor information generation unit 224b outputs the generated sensor information to the service message generation unit 234a of the service system client simulator 234.

[0218] 3-4-4. Service System Client Simulator Details In the service system client simulator 234, the service message generator 234a acquires sensor information from the sensor information generator 224b of the 3D physics engine 224. The service message generator 234a outputs a service message including the acquired sensor information to the service message transmitter 214e of the transmission / reception controller 214.

[0219] 4.Collecting and evaluating simulation results using the MAS system Various data about the target world of the simulation can be obtained by performing a simulation using the MAS system 100. Fig. 17 shows a configuration for aggregating and evaluating the results of the simulation performed by the MAS system 100.

[0220] The MAS system 100 is provided with data loggers at various locations for storing logs of data obtained in the simulation. The agent simulator 200 is provided with data loggers 250, 260, 270, and 280. The data logger 250 stores a data log (controller log) in the transmission / reception controller 210. The data logger 260 stores a data log (3D physics engine log) in the 3D physics engine 220. The data logger 270 stores a data log (service simulation log) in the service system client simulator 230. The data logger 280 stores a data log (simulation core log) in the simulator core 240.

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

[0222] The back-end server 400 is provided with a data logger 410. The data logger 410 stores a data log (service system log) in the back-end server 400.

[0223] If the simulation is interrupted, the simulation conductor 320 can rewind and restart the simulation from any point in the past by using the data logs stored in each of the data loggers mentioned above.

[0224] The MAS system 100 also includes a service system log aggregator 500, an agent movement log aggregator 510, a simulation core log aggregator 520, an asset information database 530, a time-space database 540, and a viewer 550. These are installed in a computer for evaluating the simulation results.

[0225] The service system log aggregation unit 500 collects data logs from the data loggers 270 and 410. These data logs collected by the service system log aggregation unit 500 are data logs related to the service system. From these data logs, it is possible to evaluate whether the service has been provided correctly. In addition, it is also possible to evaluate key points in providing the service, including the operating rate of service resources such as logistics robots.

[0226] The agent movement log aggregation unit 510 collects data logs from the data loggers 250, 260, 330, and 340. These data logs collected by the agent movement log aggregation unit 510 are data logs related to the movement of agents. From these data logs, it is possible to check whether the agents are operating normally. It is also possible to check whether there are any problems such as agent overlap. If an error occurs during the simulation, it is possible to output the time range during which the simulation contents are assumed to be valid from the data logs.

[0227] The simulation core log aggregator 520 collects data logs from the data logger 280 and the agent movement log aggregator 510. These data logs collected by the simulation core log aggregator 520 are data logs related to the focus of the simulation. From these data logs, it is possible to evaluate the focus of the simulation, such as the density of people in a simulation of pedestrians, or the internal decision results in a simulation of a robot.

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

[0229] Virtual data for simulation is stored in the time-space database 540. Evaluation results based on the data logs aggregated by the service system log aggregation unit 500, the agent movement log aggregation unit 510, and the simulation core log aggregation unit 520 are reflected in the virtual data in the time-space database 540.

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

[0231] 5. Physical Configuration of the MAS System The physical configuration of the MAS system 100 will be described. Fig. 18 is a diagram showing an example of the physical configuration of the MAS system 100. The MAS system 100 can be configured, for example, with a plurality of computers 10 arranged on the same subnet 30. Furthermore, by connecting the subnet 30 to another subnet 32 ​​via a gateway 40, the MAS system 100 can be expanded to include a plurality of computers 10 arranged on the subnet 32.

[0232] 18, the center controller 300, which is software, is installed in one computer 10. However, the functions of the center controller 300 may be distributed among a plurality of computers 10.

[0233] The MAS system 100 also includes multiple backend servers 400. In the example shown in Fig. 10, each backend server 400 is installed on a separate computer 10. However, the functions of the backend server 400 may be distributed to multiple computers 10. Also, multiple backend servers 400 may be installed on one computer 10 using a virtualization technology that divides one server into multiple servers.

[0234] In the example shown in FIG. 18, a plurality of agent simulators 200 are installed on one computer 10. A virtualization technique can be used as a technique for independently operating a plurality of agent simulators 200 on one computer 10. The virtualization technique may be a virtual machine or container virtualization. A plurality of agent simulators 200 of the same type may be installed on one computer 10, or a plurality of agent simulators 200 of different types may be installed. Note that only one agent simulator 200 may be installed on one computer 10.

[0235] As described above, the MAS system 100 employs parallel distributed processing using multiple computers 10, rather than processing by a single computer. This makes it possible to prevent the number of agents allowed to enter the virtual world 2 from being limited by the processing power of the computer, and to prevent the number of services provided in the virtual world 2 from being limited by the processing power of the computer. In other words, the MAS system 100 makes it possible to perform large-scale simulations using parallel distributed processing.

[0236] 6.Other An observing agent may be provided to observe the virtual world 2 from outside. The observing agent may be, for example, a stationary object such as a street camera, a moving object such as a drone equipped with a camera, or of course a pedestrian. By connecting the output of the physics engine provided in the observing agent to a monitor, the virtual world 2 can be observed from the viewpoint of the observing agent.

[0237] In the above embodiment, the surplus time rate itself is used as the index value for controlling the speed ratio, but other numerical values ​​that are correlated with the surplus time rate can also be used as the index value. For example, a value obtained by subtracting the surplus time rate from 1 can also be used as the index value. [Explanation of symbols]

[0238] 2 Virtual world (simulated world) 4A, 4B, 4C Agent 10. Computers 30,32 Subnet 40 Gateway 100 Multi-agent Simulation System 200 Agent Simulator 201 Agent Simulator for Pedestrian Agents 202 Agent Simulator for Autonomous Robot / Vehicle Agent 203 Agent Simulator for VR Pedestrian Agents 204 Agent Simulator for Roadside Sensor Agents 210 Transmit / Receive Controller 220 3D Physics Engine 230 Service System Client Simulator 240 Simulator Core 300 Center Controller 310 Mobile Message Dispatcher 320 Simulation Conductor 400 Backend server for service system

Claims

1. 1. A multi-agent simulation system for simulating a target world constituted by a plurality of interacting agents, comprising: a plurality of agent simulators provided for each of the plurality of agents, the agent simulators simulating a state of each of the agents while causing the agents to interact with each other through message exchange; a central controller for controlling a speed ratio of the flow of time in the target world to the flow of time in the real world; each of the plurality of agent simulators calculates an index value correlating with a surplus time rate which is a ratio between an update time interval for updating a state of a target agent which is a simulation target and a surplus time between the update time interval and a processing time for the update process; The central controller controls the speed ratio based on the index value calculated by each of the plurality of agent simulators, and reduces the speed ratio when the index value corresponds to the surplus time rate equal to or less than a threshold value that is greater than zero. A multi-agent simulation system comprising:

2. 2. The multi-agent simulation system according to claim 1, The central controller controls the speed ratio based on the index value that corresponds to the lowest surplus time rate among the index values ​​calculated by each of the plurality of agent simulators. A multi-agent simulation system comprising:

3. 3. The multi-agent simulation system according to claim 1, The central controller increases the speed ratio when the index value corresponds to the surplus time rate equal to or greater than another threshold value that is greater than the threshold value. A multi-agent simulation system comprising:

4. 4. The multi-agent simulation system according to claim 3, When the index value corresponds to the surplus time rate equal to or higher than the different threshold value, the central controller increases the speed ratio to a greater extent as the index value corresponds to a higher surplus time rate. A multi-agent simulation system comprising:

5. A multi-agent simulation system according to any one of claims 1 to 4, When the index value corresponds to the surplus time rate equal to or less than the threshold value, the central controller reduces the speed ratio to a greater extent as the index value corresponds to the surplus time rate closer to zero. A multi-agent simulation system comprising:

6. A multi-agent simulation system according to any one of claims 1 to 5, Each of the plurality of agent simulators The ratio of the surplus time from the acquisition time of the last received message from the other agent simulators necessary for the next update of the state of the target agent to the next update time of the state of the target agent is calculated as the index value to the update time interval. A multi-agent simulation system comprising:

7. A multi-agent simulation method for simulating a target world constituted by a plurality of interacting agents, comprising the steps of: exchanging messages among a plurality of agent simulators provided for each of the plurality of agents, and simulating a state of each agent while causing the agents to interact with each other through the exchange of messages; controlling a speed ratio of the flow of time in the target world to the flow of time in the real world by a central controller; causing each of the plurality of agent simulators to calculate an index value correlating to a surplus time rate which is a ratio between an update time interval for updating a state of a target agent which is a simulation target and a surplus time rate between the update time interval and a processing time for the update process; The central controller controls the speed ratio based on the index value calculated by each of the plurality of agent simulators, and reduces the speed ratio when the index value corresponds to the surplus time rate equal to or less than a threshold value greater than zero. A multi-agent simulation method comprising:

8. The multi-agent simulation method according to claim 7, The central controller controls the speed ratio based on the index value corresponding to the lowest surplus time rate among the index values ​​calculated by each of the plurality of agent simulators. A multi-agent simulation method comprising:

9. The multi-agent simulation method according to claim 7 or 8, When the index value corresponds to the surplus time rate equal to or greater than another threshold value that is greater than the threshold value, the central controller is caused to execute an increase in the speed ratio. A multi-agent simulation method comprising:

10. The multi-agent simulation method according to claim 9, When the index value corresponds to the surplus time rate equal to or greater than the different threshold value, the central controller executes a process of increasing the speed ratio to a greater extent as the index value corresponds to a higher surplus time rate. A multi-agent simulation method comprising:

11. A multi-agent simulation method according to any one of claims 7 to 10, When the index value corresponds to the surplus time rate equal to or less than the threshold value, the central controller executes a process of decreasing the speed ratio to a greater extent as the index value corresponds to the surplus time rate closer to zero. A multi-agent simulation method comprising:

12. A multi-agent simulation method according to any one of claims 7 to 11, Each of the plurality of agent simulators is caused to calculate, as the index value, a ratio of a surplus time from an acquisition time of a last received message among messages from other agent simulators necessary for the next update of the state of the target agent to a next update time of the state of the target agent to the update time interval. A multi-agent simulation method comprising:

Citation Information

Patent Citations

  • Parallel distributed simulation system, simulation manager and parallel distributed simulator control method

    JP2000163392A

  • Simulation system and simulation method

    JP2004272693A

  • Simulation method and device

    JP2007122158A

  • Integrated simulation system

    JP2009140346A

  • Integrated simulation apparatus

    JP2009295014A