System and method for performing calculation regarding behavior of agent
Patent Information
- Application Number
- JP2023129985
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-08-09
- Publication Date
- 2025-02-21
Smart Images

Figure 2025025320000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a technique for performing calculations regarding the actions of multiple agents through multi-agent simulation. [Background technology]
[0002] Humans and living things as subjects of actions and behaviors (hereafter referred to as "agents") generally have the characteristic of recognizing the surrounding situation, interacting with the space they are in and with other agents, and acting autonomously according to certain rules based on emotions, etc. Therefore, focusing on these characteristics of humans and living things as agents, there is a method called Multi-Agent Simulation (MAS) that plots multiple humans and living things in a virtual space as multiple calculation targets that interact with each other, conducts virtual experiments on their behavior, and is a calculation method that can discretely obtain various evaluation values related to the behavior.
[0003] Multi-agent simulation has many advantages, such as the ability to simultaneously and accurately calculate the behavior of multiple agents, the ease with which simulation conditions can be added flexibly after the fact, and the ability to incorporate actual data obtained in the real world. Today, multi-agent simulation is increasingly being used in a variety of situations in society (for example, Patent Document 1). [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Patent No. 5372421 Summary of the Invention [Problem to be solved by the invention]
[0005] As mentioned above, multi-agent simulation has the advantage of being able to simultaneously and accurately calculate the actions of multiple agents.
[0006] However, when large-scale simulations are performed exclusively using multi-agent simulations, the amount of calculation required becomes enormous, and it often takes an extremely long time to complete the calculations.
[0007] The present invention has been made in consideration of the above-mentioned problems, and aims to provide a technique that can reduce calculation time while maximizing the benefits of multi-agent simulation. [Means for solving the problem]
[0008] The agent behavior calculation system according to the present invention is a system that simulates the behavior of a plurality of agents in a virtual space and performs calculations related to the behavior of the plurality of agents, and is equipped with a desired calculation time input unit that receives an input operation of a desired calculation time from a user, and a calculation time estimation unit that estimates a calculation time based on current simulation conditions, and the calculations related to the behavior of the plurality of agents are performed by multi-thread processing that performs parallel processing using a plurality of threads corresponding to the plurality of agents, and the multi-thread processing includes processing that is performed continuously for each calculation unit for the plurality of threads, and the calculation time estimated by the calculation time estimation unit satisfies the desired calculation time input to the desired calculation time input unit by performing processing that is performed continuously for each calculation unit for some of the plurality of threads in the multi-thread processing.
[0009] Other problems and solutions disclosed in the present application will be made clear in the section of the description of the invention and the drawings. Effect of the Invention
[0010] According to the present invention, it is possible to reduce the calculation time while maximizing the benefits of multi-agent simulation. [Brief description of the drawings]
[0011] [Figure 1] 1 is a diagram showing an example of the configuration of an entire system including an agent behavior calculation system according to an embodiment. [Diagram 2] FIG. 2 is a diagram illustrating an example of a hardware configuration of the agent behavior calculation system. [Diagram 3] FIG. 2 is a diagram illustrating an example of a functional block of the agent behavior calculation system. [Figure 4] FIG. 13 is a diagram showing an example of the configuration of an action strategy parameter information DB. [Diagram 5] FIG. 13 is a diagram showing a schematic diagram illustrating how the content of the process accompanying contact changes depending on the behavioral purpose of the agent. [Figure 6] FIG. 11 is a diagram illustrating an example of the configuration of an agent attribute information DB. [Figure 7] FIG. 13 is a diagram showing an example of the configuration of a destination information DB of a macro model behavior agent. [Figure 8] FIG. 13 is a diagram showing an example of the configuration of conversion information from gain to outcome. [Figure 9] FIG. 13 is a diagram showing an example of the configuration of a priority information DB for each outcome. [Figure 10] 13 is a flowchart showing an example of the flow of an agent behavior calculation process when multi-thread calculation is performed on the movement routes of all agents. [Figure 11] 13 is a flowchart showing an example of the flow of an agent behavior calculation process when calculating an agent's movement route using a hybrid method of multi-thread calculation and calculation using a macro model. [Figure 12] 11 is a diagram showing a schematic diagram of a contact determination method taking into account contact with a macro model behavior agent; FIG. [Figure 13] 13 is a flowchart showing an example of the flow of an agent classification process. [Figure 14] 13 is a flowchart showing an example of a process flow associated with contact. [Figure 15] 13 is a flowchart showing an example of the flow of a profit acquisition process. [Figure 16] FIG. 4 is a diagram showing an example of a display screen. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0012] In the following description, an "interface unit" may refer to one or more interface devices. The one or more interface devices may be at least one of the following: One or more I / O (Input / Output) interface devices. The I / O (Input / Output) interface devices are interface devices to at least one of the I / O devices and a remote display computer. The I / O interface device to the display computer may be a communications interface device. The at least one I / O device may be a user interface device, e.g., either an input interface device such as a keyboard and pointing device, or an output interface device such as a display device. One or more communication interface devices. The one or more communication interface devices may be one or more homogeneous communication interface devices (e.g., one or more NICs (Network Interface Cards)) or two or more heterogeneous communication interface devices (e.g., a NIC and an HBA (Host Bus Adapter)).
[0013] In the following description, a "memory" refers to one or more memory devices, which are an example of one or more storage devices, and may typically be a primary storage device. At least one memory device in the memory may be a volatile memory device or a non-volatile memory device.
[0014] In the following description, an "auxiliary storage device" may be one or more persistent storage devices, which are an example of one or more storage devices. The persistent storage device may typically be a non-volatile storage device (e.g., an auxiliary storage device), and more specifically, may be, for example, a hard disk drive (HDD), a solid state drive (SSD), a non-volatile memory express (NVME) drive, or a storage class memory (SCM).
[0015] In the following description, the "storage device" may be at least one of memory and auxiliary storage device.
[0016] Furthermore, in the following description, a "processor" may be one or more processor devices. The at least one processor device may typically be a microprocessor device such as a CPU (Central Processing Unit), but may also be other types of processor devices such as a GPU (Graphics Processing Unit). The at least one processor device may be a single-core or multi-core. The at least one processor device may be a processor core. The at least one processor device may also be a broader processor device such as a circuit that is a collection of gate arrays written in a hardware description language that performs part or all of the processing (e.g., an FPGA (Field-Programmable Gate Array), a CPLD (Complex Programmable Logic Device), or an ASIC (Application Specific Integrated Circuit)).
[0017] In the following description, functions may be described using the expression "xxx unit", but the functions may be realized by one or more computer programs being executed by a processor, or by one or more hardware circuits (e.g., FPGA or ASIC), or by a combination thereof. When a function is realized by a program being executed by a processor, the function may be at least a part of the processor, since the specified processing is performed using a storage device and / or an interface device, etc., as appropriate. Processing described with a function as the subject may be processing performed by a processor or a device having the processor. A program may be installed from a program source. The program source may be, for example, a program distribution computer or a computer-readable recording medium (e.g., a non-transitory recording medium). The description of each function is an example, and multiple functions may be combined into one function, or one function may be divided into multiple functions.
[0018] In the following description, a process may be described with a "program" as the subject, but the process described with a program as the subject may be a process performed by a processor or a device having the processor. Two or more programs may be realized as one program, and one program may be realized as two or more programs.
[0019] In the following description, information that provides an output for an input may be described using expressions such as "yyy table", but the information may be a table of any structure, or may be a neural network that generates an output for an input, or a learning model such as a genetic algorithm or random forest. Therefore, the "yyy table" may be called "yyy information". In the following description, the structure of each table is an example, and one table may be divided into two or more tables, or all or part of two or more tables may be one table.
[0020] Furthermore, in the following description, an "agent behavior computation system" may be a system (e.g., a cloud computing system) realized on a group of physical computation resources (e.g., a cloud platform), or a system (e.g., an on-premise system) composed of one or more physical computers. When an agent behavior computation system "displays" display information, it may mean displaying the display information on a display device possessed by the computer, or the computer may transmit the display information to a display computer (in the latter case, the display information is displayed by the display computer).
[0021] Hereinafter, the present embodiment will be described in detail with reference to the drawings.
[0022] In the following description, the same or similar components will be denoted by common reference symbols, and redundant description may be omitted.
[0023] In addition, when there are multiple elements having the same or similar functions, the multiple elements may be described by using the same reference numerals with different subscripts in order to distinguish between them. On the other hand, when there is no need to distinguish between the multiple elements, the subscripts may be omitted.
[0024] <Configuration example of agent behavior calculation system 100> First, a configuration example of an agent behavior calculation system 100 according to this embodiment will be described with reference to FIGS.
[0025] (Example of the overall system configuration) FIG. 1 is a diagram showing an example of the overall configuration of a system including an agent behavior computation system 100. As shown in FIG.
[0026] The agent behavior calculation system 100 according to this embodiment is a computer system capable of simulating the behavior of a plurality of agents in a virtual space by using a known simulation method such as a multi-agent simulation, and calculating the behavior of the plurality of agents simultaneously through the simulation, and is realized by a computer device or a server device having the respective configurations described below.
[0027] In the following description of this embodiment, the "agent" is assumed to be a person, but the "agent" may be any living thing other than a human, or may include inanimate objects such as robots. In other words, the "agent" that is the subject of various calculations performed by the agent behavior calculation system 100 is only required to recognize the surrounding situation, interact with the space in which it is located and with other agents, act autonomously based on emotions, and perform various actions.
[0028] As shown in Fig. 1, the agent behavior computation system 100 is connected to administrator terminals 305a, 305b, 305c, ... 305n (hereinafter, when they are collectively referred to or when no particular distinction is made) such as desktop PCs, laptop PCs, tablets, smartphones, etc., used by an administrator 306 of the agent behavior computation system 100, via an appropriate network 304 such as the Internet or a dedicated line, so that data can be communicated between them. The agent behavior computation system 100 and the network 304 are connected by wire via well-known communication equipment (not shown), but may be connected wirelessly. Each administrator terminal 305 and the network 304 are connected wirelessly, but may be connected by wire.
[0029] In addition, the agent behavior calculation system 100 can use various data (hereinafter also referred to as "real data") regarding the agent's behavior, attributes, characteristics, etc. obtained in the real world when simulating the agent's behavior in a virtual space and performing various calculations regarding the agent's behavior based on the simulation.
[0030] Furthermore, data generated by the agent behavior calculation system 100, such as data representing the results of simulations in a virtual space and data representing the results of various calculations related to the agent's behavior, can be used, for example, to supplement real data or reflected when performing various data processing related to the agent in the real world.
[0031] Therefore, the agent behavior calculation system 100 is connected to a server device (not shown) having a company's own people flow data DB302, which is a database owned by the company for the purpose of storing actual data on people flow, so that data can be communicated with each other via a network 304. The agent behavior calculation system 100 can obtain actual data from the company's own people flow data DB302 in the server device via the network 304, and can transmit various data generated by itself to the server device to be stored in the company's own people flow data DB302.
[0032] The actual data is acquired by various sensor devices. A plurality of each type of sensor device is provided to constitute a sensor group 300. Each of the sensor devices constituting the sensor group 300 is connected to an edge server 301 so as to be able to communicate data with each other. The edge server 301 appropriately processes the actual data acquired from each of the sensor devices constituting the sensor group 300, and then transmits the actual data to a server device having its own people flow data DB 302. For this reason, the edge server 301 and the server device are connected to each other so as to be able to communicate data with each other by wire via well-known communication devices (not shown).
[0033] The agent behavior calculation system 100 is also connected to a server device (not shown) having another company's people flow data DB303, which is a database owned by another company, so that data can be communicated with each other via a network 304. The agent behavior calculation system 100 can also obtain actual data from the other company's people flow data DB303 in the server device via the network 304.
[0034] The server devices including the company's own people flow data DB 302 and the other company's people flow data DB 303 are connected to the network 304 by wire via well-known communication devices (not shown), but may be connected wirelessly.
[0035] Further, other computer devices, server devices, etc. (hereinafter also referred to as "other devices") may be connected to this agent behavior calculation system 100 so as to be capable of mutual data communication via a network 304. In this case, the other devices and the network 304 may be connected by wire or wirelessly via well-known communication equipment (not shown).
[0036] In this embodiment, the agent behavior computation system 100 has been described as being composed of one device. However, for example, the agent behavior computation system 100 may be composed of a plurality of devices.
[0037] In addition, in this embodiment, the agent behavior computation system 100 and various devices other than the agent behavior computation system 100, such as the edge server 301, the server device including the company's people flow data DB 302, the administrator's terminal 305, and other devices, have been described as being separate devices. However, the agent behavior computation system 100 and these various devices may be configured by the same device. In this case, the agent behavior computation system may be configured as, for example, a computer system including these various devices. Also, for example, the agent behavior computation system may be configured in a form including some or all of the functions carried out by these various devices.
[0038] (Hardware configuration example of the agent behavior calculation system 100) FIG. 2 is a diagram showing an example of the hardware configuration of the agent behavior computation system 100. As shown in FIG.
[0039] The agent behavior computation system 100 according to this embodiment is realized by one general-purpose computer device, as shown in Fig. 2. In the following explanation, it is assumed that the agent behavior computation system 100 is realized by one general-purpose computer device equipped with one or more processors 1, one or more memories 2, one or more auxiliary storage devices 3, one or more communication interface devices (hereinafter also referred to as "communication I / F") 4, one or more input interface devices (hereinafter also referred to as "input I / F") 5, one or more output interface devices (hereinafter also referred to as "output I / F") 6, and wired or wireless communication lines connecting them.
[0040] That is, the agent behavior computation system 100 has a storage device including a memory 2 and an auxiliary storage device 3, an interface device including a communication I / F 4, an input I / F 5, and an output I / F 6, and a processor 1 connected thereto.
[0041] The auxiliary storage device 3 is an auxiliary storage device made of a non-volatile storage element such as a flash memory. Specific examples of the auxiliary storage device 3 include a solid state drive (SSD) and a hard disk drive (HDD). The auxiliary storage device 3 stores at least an agent behavior calculation program. The agent behavior calculation program is a computer program for implementing functions required for the agent behavior calculation system 100.
[0042] That is, by the agent behavior calculation program being executed by the processor 1, agent behavior calculation processing, which is a calculation processing related to the agent's behavior (described in detail later in relation to Figures 10-11), and various processing steps performed within the agent behavior calculation processing (described in detail later in relation to Figures 13-15) are performed.
[0043] The agent behavior calculation program may be installed from a program source. The program source may be, for example, a program distribution computer or a computer-readable recording medium. The agent behavior calculation program may also be composed of a device driver, an operating system, various application programs located at higher layers thereof, and a library that provides common functions to these programs. Furthermore, two or more programs may be realized as one agent behavior calculation program, and one agent behavior calculation program may be realized as two or more programs.
[0044] The memory 2 is a primary storage device mainly composed of volatile storage elements such as RAM (Random Access Memory). The memory 2 temporarily stores data representing various information read from the auxiliary storage device 3, various data acquired via the communication I / F 4, and various data representing the contents of input operations by the administrator 306 received via the input I / F 5.
[0045] The processor 1 is a processor device such as a CPU (Central Processing Unit) and various co-processors. The processor 1 calls up a KPI evaluation program into the memory 2 and executes it, thereby controlling the agent behavior calculation system 100 itself, and also governs the calculation unit 10 that performs various processes such as calculation processing and judgment processing.
[0046] The communication I / F 4 is a communication interface device such as a network interface card (NIC) or a host bus adapter (HBA). The communication I / F 4 controls a communication unit (not shown) that handles communication processing with other devices such as a server device including a company's own people flow data DB 302 and another company's people flow data DB 303 and an administrator's terminal 305 via a network 304.
[0047] The input I / F 5 is an input interface device such as a keyboard 7, a mouse 8, a touch panel, etc. Among the user interface processes handled by the input / output display unit 30, the input I / F 5 is responsible for input-related processes such as accepting input operations from the administrator 306.
[0048] The output I / F 6 is an output interface device consisting of a display device 9 such as a touch screen or a liquid crystal display. Among the processes related to the user interface handled by the input / output display unit 30, the output I / F 6 is responsible for output-related processes such as displaying various screens showing the processing results, etc. on the display device 9, and outputting audio.
[0049] (Example of functional blocks of the agent behavior calculation system 100) 3 is a diagram showing an example of blocks of various functions provided in the agent behavior computation system 100. Note that each block described below does not represent a hardware-based configuration, but represents a functional block.
[0050] The agent behavior computation system 100 comprises the following functional blocks: a calculation unit 10, a storage unit 20, a communication unit (not shown), and an input / output display unit 30.
[0051] The calculation unit 10 executes various data processing based on the programs and data stored in the storage unit 20 and the data acquired by the communication unit. The calculation unit 10 also functions as an interface between the storage unit 20 and the communication unit.
[0052] The calculation unit 10 has at least the following functional blocks: an agent classification unit 11 based on a behavioral strategy, a MAS route calculation unit 12, a contact determination unit 13, a contact-related event processing unit 14, a calculation time estimation unit 15, an outcome calculation unit 16, and a MAS priority agent determination processing unit 17.
[0053] The behavioral strategy-based agent classification unit 11 executes a process of classifying each agent based on the behavioral strategy of the agent (described in detail below with reference to FIGS. 10, 11, and 13).
[0054] The MAS route calculation unit 12 executes a process for calculating a route in a multi-agent simulation (MAS).
[0055] The contact determination unit 13 executes a process for determining, for each agent, whether or not the agent has come into contact with another agent.
[0056] The contact-related event processing unit 14 executes processing related to various events that occur when an agent comes into contact with another agent (hereinafter also referred to as "contact-related processing") (described in detail below with reference to FIGS. 5, 10, 11, and 14).
[0057] The calculation time estimation unit 15 executes a process to estimate the average calculation time per day per MAS behavior agent (described in detail later with reference to FIG. 13). The calculation time estimation unit 15 also executes a process to estimate the required calculation time for the entire simulation based on the result of the process. The required calculation time for the entire simulation estimated by this process is referred to as the estimated calculation time.
[0058] The outcome calculation unit 16 executes a process of calculating the outcome in the simulation from the gains of the agents.
[0059] The MAS priority agent determination processing unit 17 executes a process for determining an agent to be given priority in a multi-agent simulation (MAS) (described in detail later with reference to FIGS. 11 and 13).
[0060] The arithmetic unit 10 is configured using a processor 1 such as a CPU, and can realize these functional blocks by executing a predetermined program. Note that instead of the processor 1, the arithmetic unit 10 may be configured using a logic circuit such as an FPGA (Field Programmable Gate Array). The arithmetic unit 10 may also be configured by combining the processor 1 with a logic circuit.
[0061] The storage unit 20 is configured using a storage device including at least the memory 2, and stores a program that supplies various processing instructions to the calculation unit 10, and data representing various information used in the processing executed by the calculation unit 10.
[0062] The memory unit 20 stores at least a behavior strategy parameter information DB 21, an agent attribute information DB 22, destination information DB 23 of macro model behavior agents, conversion information 24 from gains to outcomes, and priority information DB 25 for each outcome.
[0063] The behavior strategy parameter information DB21 is a database for managing parameter information related to the behavior strategy of an agent in a table format. An example of the configuration of the behavior strategy parameter information DB21 is shown in FIG. 4. As shown in FIG. 4, the behavior strategy parameter information DB21 includes an index i, which represents an index of a behavior strategy for an agent. st For example, a record is st, the movement frequency (unit: none) which indicates the probability of heading to the destination per day, the cost (unit: none) associated with the movement which indicates the amount of profit reduction associated with the movement to the destination, which is indicated as C1 or C2 in FIG. 5 which shows diagrammatically that the content of the processing associated with the above-mentioned contact changes according to the difference in the agent's behavioral purpose, the destination stay time (unit: seconds) which indicates the stay time at the destination for each strategy, and the destination coordinates (unit: latitude and longitude) which indicate the position coordinates of the destination on the map system. That is, the behavioral strategy parameter information DB21 stores, for each record, i st And the i st By linking and recording the movement frequency, movement costs, destination stay time, and destination coordinates in the behavior strategy represented by i, the parameters of the behavior strategy are st According to the example shown in FIG. 4, the behavior strategy parameter information DB 21 stores the following information: st The "0"th behavioral strategy is the movement frequency (P mv1 ) is 0.0025, and the movement frequency (P mv2 ) is 0.0010, and the migration frequency (P mv3 ) is 0.0000, the cost of travel (C1) is 0.2500, the cost of travel (C2) is 0.3333, the time spent at the destination is 3600 seconds, and the destination coordinates are latitude: 35.0031, longitude: 136.2003.
[0064] In addition, when the agents shown in FIG. 5 come into contact with each other, the probability that one agent will be influenced by the other agent and imitate the behavioral strategy of the other agent can be expressed by the following (Equation 1).
[0065]
number
[0066] The above formula (1) is the probability p ii←jj Represents.
[0067] The agent attribute information DB22 is a database for managing the attribute information of each agent in table format. An example of the configuration of this agent attribute information DB22 is shown in FIG. 6. As shown in FIG. 6, the agent attribute information DB22 has a record for each agent ID for uniquely identifying each agent. The record includes, for example, an agent ID, the gender of the agent, the generation of the agent, the workplace ID of the agent, workplace coordinates (units: latitude and longitude) representing the location coordinates of the workplace, the home ID of the agent, home coordinates (units: latitude and longitude) representing the location coordinates of the home, and the prioritization determination index PR of the agent. ll, the behavioral strategy of the agent, and the payoff G for each behavioral strategy of the agent. In the example shown in FIG. 6, when the value displayed in the gender column is "0", the agent is male, and when the value displayed in the gender column is "1", the agent is female. In the example shown in FIG. 6, when the value displayed in the generation column is "0", the agent's age is 20 to 39 years old, when the value displayed in the generation column is "1", the agent's age is 40 to 64 years old, when the value displayed in the generation column is "2", the agent's age is 65 to 74 years old, and when the value displayed in the generation column is "3", the agent's age is 75 years old or older. In the example shown in FIG. 6, when the value displayed in the strategy column is "0", the agent's behavioral strategy is A, when the value displayed in the strategy column is "1", the agent's strategy is B, and when the value displayed in the strategy column is "2", the agent's strategy is C. Moreover, the payoff G represents the maturity of the agent's internal intangible assets, such as trust, networks, and cooperative relationships between people and organizations, which are fostered through the execution of the behavioral objectives of the corresponding strategies. That is, the agent attribute information DB22 manages the attribute information of the agent for each agent ID by recording the agent ID, the sex, generation, workplace ID, workplace coordinates, home ID, home coordinates, strategy, and payoff G of the agent represented by the agent ID in association with each record. According to the example shown in FIG. 6, the agent attribute information DB22 records that an agent with an agent ID of "0" is male, belongs to the age group of 65 to 74, has a workplace ID of "0", workplace coordinates are latitude: 35.1049, longitude: 136.5424, a home ID of "0", home coordinates are latitude: 35.1046, longitude: 136.5534, a priority determination index is 2.4, strategy 1 is behavioral strategy A, strategy 2 is behavioral strategy B, and strategy n is behavioral strategy A. st is the action strategy C, the payoff G1 for strategy 1 is 2.6, the payoff G2 for strategy 2 is 1.6, and strategy n st Gain Gn in the casest It has been recorded that the value is 0.0.
[0068] The destination information DB23 of the macro model behavior agent is a database for managing destination information of the agent that is the target of the simulation by the macro model in a table format. An example of the configuration of the destination information DB23 of the macro model behavior agent is shown in FIG. 7. As shown in FIG. 7, the destination information DB23 of the macro model behavior agent has a record for each agent ID. The record indicates, for example, the agent ID, a flag indicating whether the agent is the macro model behavior target on the i-th day, a strategy number for uniquely identifying each behavior strategy, the arrival time at the destination, and the departure time from the destination. If the agent is the macro model behavior target on the i-th day, a flag indicating this is recorded as "1", and if the agent is not the macro model behavior target on the i-th day, a flag indicating this is recorded as "0". In addition, each destination is linked to a corresponding strategy number by the behavior strategy parameter information DB21 shown in FIG. 5. That is, the macro model behavior agent destination information DB23 manages destination information of the macro model behavior agent for each agent ID by recording, for each record, an agent ID, a flag indicating whether the agent is a macro model behavior target on the i-th day, a strategy number indicating the behavior strategy of the agent, the arrival time of the agent at the destination specified from the strategy number, and the departure time of the agent from the destination in association with each other. According to the example shown in Fig. 7, the macro model behavior agent destination information DB23 records that an agent with an agent ID of "0" is not a macro model behavior target on the i-th day, the strategy number of the behavior strategy is 3, and the agent arrives at the destination at 14:00 and departs from the destination at 15:00.
[0069] The conversion information 24 from gain to outcome is the coefficient a in the following (Equation 2) used when converting the gain G to the outcome Out.
[0070]
number
[0071] Note that the above (Equation 2) is an example of an outcome conversion equation for the payoff G of the kkth agent in the simulation.
[0072] An example of this payoff-to-outcome conversion information 24 is shown in Fig. 8. As shown in Fig. 8, the payoff-to-outcome conversion information 24 is managed in a table format, with a record for each agent ID. The record includes, for example, the agent ID, and the weight a0 of the agent's action objective 0, the weight a1 of the agent's action objective 1, the weight a2 of the agent's action objective 2, ..., the action objective n. st Weight of an st In the example shown in FIG. 8, the weight a0 of action objective 0 is a conversion variable with a gain of 1, the weight a1 of action objective 1 is a conversion variable with a gain of 2, and the weight a2 of action objective 2 is a conversion variable with a gain of 3. In other words, the conversion information 24 from gain to outcome manages the coefficients of (Equation 2) for each agent ID by linking and recording the agent ID and the coefficient that weights each action objective in (Equation 2) for each record. According to the example shown in FIG. 8, the conversion information 24 from gain to outcome records that, for an agent with an agent ID of "0", the weight a0 of action objective 0 is 0.5, the weight a1 of action objective 1 is 0,0, the weight a2 of action objective 2 is 0.6, and the weight a3 of action objective n is 0. st Weight of an st It has been recorded that the α-value is 0.8.
[0073] The priority information DB25 for each outcome is a database for managing the priority information for each outcome in a table format. An example of the configuration of this priority information DB25 for each outcome is shown in FIG. 9. As shown in FIG. 9, the priority information DB25 for each outcome has a record for each agent ID. The record represents, for example, the agent ID and the coefficient Cout in the following (Equation 3). That is, the priority information DB25 for each outcome manages the priority information for each agent ID by linking and recording the agent ID and the coefficient Cout in (Equation 3) for each record. According to the example shown in FIG. 9, the priority information DB25 for each outcome records that the coefficient Cout in (Equation 3) is 0.4 for an agent whose agent ID is "0".
[0074] The coefficient Cout is expressed by the following (Equation 3) as the priority determination index PR that determines the priority of the ll-th agent to be selected as the MAS action agent in the simulation. ll It represents.
[0075]
number
[0076] The communication unit is responsible for communication processing with other devices such as a server device including a company's own people flow data DB 302 and another company's people flow data DB 303, and an administrator's terminal 305, via a network 304. The communication unit is configured using, for example, a network interface card (NIC) or a host bus adapter (HBA).
[0077] The input / output display unit 30 is responsible for various processes related to the I / O (Input / Output) interface, i.e., the user interface. The input / output display unit 30 has at least the following functional blocks: a data input unit 31, a data output unit 32, a desired calculation time input unit 33, a simulation condition input unit 34, an estimated calculation time display unit 35, and an actual data input unit 36.
[0078] Of these, the data input unit 31, desired calculation time input unit 33, simulation condition input unit 34, and actual data input unit 36 are configured using, for example, a keyboard 7, a mouse 8, a touch panel, etc., and are responsible for input-related processing, such as receiving input operations from the administrator 306, among other user interface processing.
[0079] Further, the data output unit 32 and the estimated calculation time display unit 35 are configured using a display device 9 such as a touch screen or a liquid crystal display, and are responsible for output-related processing such as displaying various screens showing the processing results, etc. on the display device 9 and outputting audio, among other processing related to the user interface.
[0080] The data input unit 31 executes a process of accepting input operations of various data from an administrator 306 .
[0081] The data output unit 32 executes various processes relating to the output of data.
[0082] The desired calculation time input unit 33 executes a process of accepting an input operation of a desired calculation time from the administrator 306 .
[0083] The simulation condition input unit 34 executes a process of accepting an input operation of simulation conditions from the manager 306 .
[0084] The estimated calculation time display unit 35 executes a process for displaying the estimated calculation time on the screen.
[0085] The actual data input unit 36 executes a process of accepting an input operation of actual data from the administrator 306 .
[0086] It should be noted that the above description of each function is merely an example, and multiple functions may be combined into one function, or one function may be divided into multiple functions.
[0087] In this embodiment, the functions of the agent behavior computation system 100 have been described as being realized integrally by one computer device. However, these functions may be realized by a plurality of computers or server devices connected to each other. The agent behavior computation system 100 may be configured to include a general-purpose computer device such as a laptop PC and a web browser installed therein, or may be configured to include a web server and various portable devices.
[0088] Furthermore, the agent behavior calculation system 100 may have other functions in addition to the various functions described above. For example, the agent behavior calculation system 100 may be configured to include some of the functions of the edge server 301, the company's people flow data DB 302, the other company's people flow data DB 303, the administrator's terminal 305, etc.
[0089] <Processing flow example> Next, the flow of various processes executed by the agent behavior computation system 100 according to this embodiment will be described.
[0090] (Agent behavior calculation processing) First, an example of the flow of the agent behavior calculation process, which is the most important process executed by the agent behavior calculation system 100, will be described with reference to FIGS.
[0091] In addition, when executing the agent behavior calculation process, the agent behavior calculation system 100 according to this embodiment can perform multi-thread calculation for the movement routes of all agents, or can calculate the movement routes of agents using a hybrid method of multi-thread calculation and calculation using a macro model.
[0092] First, the agent behavior calculation process when multi-thread calculation is performed for the movement routes of all agents will be described.
[0093] FIG. 10 is a flowchart showing an example of the flow of an agent behavior calculation process when multi-thread calculation is performed on the movement routes of all agents.
[0094] In step S1001, the calculation unit 10 of the agent behavior calculation system 100 executes a process of setting a behavior strategy for each agent according to the initial conditions. As a result, a behavior strategy according to the initial conditions is set for each agent. When the calculation unit 10 of the agent behavior calculation system 100 completes the process in step S1001, the process proceeds to step S1002.
[0095] In step S1002, the calculation unit 10 of the agent behavior calculation system 100 executes a process of classifying the behavior of the agent on the i-th day into either an MAS behavior agent or a non-behavior agent by the agent classification unit 11 based on the behavior strategy. In the agent behavior calculation process illustrated in FIG. 10, multi-thread calculation is performed for the movement routes of all agents. Therefore, all agents that perform some behavior are uniformly classified into MAS behavior agents in step S1002. On the other hand, agents that do not perform any behavior are classified into non-behavior agents in step S1002. As a result, the agent on the i-th day is classified into either an MAS behavior agent or a non-behavior agent. If the agent is classified into an MAS behavior agent in step S1002, the calculation unit 10 of the agent behavior calculation system 100 proceeds to step S1003. On the other hand, if the agent is classified into a non-behavior agent in step S1002, the calculation unit 10 of the agent behavior calculation system 100 proceeds to step S1005.
[0096] In addition, the agent behavior computation system 100 can determine in advance whether the agent is classified as a MAS behavior agent or a non-behavior agent as unique attribute information of each agent, instead of determining every day by the process of step S1002. When the classification is determined in advance as unique attribute information of each agent, the calculation unit 10 of the agent behavior computation system 100 executes the agent behavior computation process in a manner that omits the process executed in step S1002.
[0097] In step S1002, the agent is classified as an MAS behavior agent, and the calculation unit 10 of the agent behavior calculation system 100 proceeds to step S1003, and then proceeds to step S1004.
[0098] In step S1004, the calculation unit 10 of the agent behavior calculation system 100 executes a process of subtracting the movement cost of the agent in accordance with the behavior strategy of the agent. This process is performed, for example, as shown in FIG. 5. As a result, the movement cost of the agent is subtracted in accordance with the behavior strategy of the agent. When the process in step S1004 is completed, the calculation unit 10 of the agent behavior calculation system 100 proceeds to step S1005.
[0099] In step S1002, the agent is classified as a non-behaving agent, and the calculation unit 10 of the agent behavior calculation system 100 proceeds to step S1005, and then proceeds directly to step S1019.
[0100] In step S1006, the calculation unit 10 of the agent behavior computation system 100 executes a process of calculating the route of the agent for each computation unit by the MAS route calculation unit 12. As a result, the route of the agent is calculated for each computation unit. When the process in step S1006 is completed, the calculation unit 10 of the agent behavior computation system 100 proceeds to step S1007.
[0101] In step S1007, the calculation unit 10 of the agent behavior calculation system 100 executes a process of determining whether or not the agent has come into contact with another agent (hereinafter, also referred to as a "contact determination process") by the contact determination unit 13. This determines whether or not the agent has come into contact with another agent.
[0102] In step S1008, if the calculation unit 10 of the agent behavior computation system 100 determines that the agent has come into contact with another agent as a result of the contact determination process in step S1007 (step S1008: Yes), the calculation unit 10 of the agent behavior computation system 100 proceeds to step S1009 to execute processing associated with the contact. On the other hand, if the calculation unit 10 of the agent behavior computation system 100 determines that the agent has not come into contact with another agent as a result of the contact determination process in step S1007 (step S1008: No), the calculation unit 10 proceeds directly to step S1011.
[0103] In step S1009, the calculation unit 10 of the agent behavior calculation system 100 executes various processes related to the event that occurs with the contact (hereinafter, also referred to as "processing associated with contact") by the contact-related event processing unit 14. Details of the processing associated with contact will be described later with reference to FIG. 14. As a result, the processing associated with contact is performed on the agent for the contact. Note that the agent behavior calculation system 100 of this embodiment executes the processing associated with contact at the timing when another agent first contacts the agent, but the administrator 306 can arbitrarily set the timing of executing the processing associated with contact. For example, the processing associated with contact may be executed at the timing when another agent last contacts the agent or when the agent departs from the destination. When the processing in step S1009 is completed, the calculation unit 10 of the agent behavior calculation system 100 proceeds to step S1010.
[0104] In step S1010, the calculation unit 10 of the agent behavior computation system 100 executes a process of acquiring a payoff G for the agent by the outcome calculation unit 16 (hereinafter, also referred to as a "payoff acquisition process"). Details of this payoff acquisition process will be described later with reference to FIG. 15. As a result, the payoff G is acquired for the agent. When the calculation unit 10 of the agent behavior computation system 100 completes the process in step S1010, it proceeds to step S1011.
[0105] As described above, in the agent behavior calculation process illustrated in Fig. 10, multi-thread calculation is performed for the movement routes of all agents. Therefore, as illustrated in Fig. 10, each process of steps S406 to S410 is executed simultaneously for all agents classified as MAS behavior agents in step S1002.
[0106] Furthermore, for example, when executing agent behavior calculation processing using the above-mentioned actual data (for example, actual data on people flow obtained from the company's own people flow data DB302 or other company's people flow data DB303), the calculation unit 10 of the agent behavior calculation system 100 performs a process on the actual data to match the data unit to the calculation unit and a process to combine calculation units equivalent to one day, and then executes the above-mentioned contact processing and profit acquisition processing on the agent data with all routes confirmed.
[0107] In step S1011, the calculation unit 10 of the agent behavior computation system 100 executes a process to determine whether or not one day has ended. This determines whether or not one day has ended. If the calculation unit 10 of the agent behavior computation system 100 determines that one day has ended (step S1011: Yes), it proceeds to step S1012, and if it determines that one day has not ended (step S1011: No), it returns to step S1006 again and repeatedly executes each process of steps S1006 to S1010 until the process is completed for all computation units.
[0108] In step S1012, the calculation unit 10 of the agent behavior calculation system 100 executes the process of "i=i+1" and adding the number of days that have passed during the simulation, i, for one day for which the process up to step S1010 has been completed. As a result, the number of days that have passed during the simulation, i, is added by one day. When the process in step S1012 is completed, the calculation unit 10 of the agent behavior calculation system 100 proceeds to step S1013.
[0109] In step S1013, the calculation unit 10 of the agent behavior calculation system 100 executes a process to determine whether or not the simulation period has ended. This determines whether or not the simulation period has ended. If the calculation unit 10 of the agent behavior calculation system 100 determines that the simulation period has ended (step S1013: Yes), it ends the agent behavior calculation process shown in the flowchart of FIG. 10. On the other hand, if it determines that the simulation period has not yet ended (step S1013: No), it returns to step S1002 again and repeatedly executes each process of steps S1002 to S1012 until the simulation period ends. After that, if it determines that the simulation period has ended in step S1013 (step S1013: Yes), the calculation unit 10 of the agent behavior calculation system 100 ends the agent behavior calculation process shown in the flowchart of FIG. 10.
[0110] In this way, the agent behavior computation system 100 can execute the agent behavior computation process by performing multi-thread calculations on the movement routes of all agents. In other words, the agent behavior computation system 100 can simultaneously and accurately calculate the behavior of all agents through multi-agent simulation.
[0111] The agent behavior calculation process executed when performing multi-thread calculation for the movement routes of all agents has been described above with reference to FIG.
[0112] Next, a flow of an agent behavior calculation process executed when calculating an agent's movement route by a hybrid method of multi-thread calculation and calculation using a macro model will be described.
[0113] FIG. 11 is a flowchart showing an example of the flow of an agent behavior calculation process when the agent's movement route is calculated by a hybrid method of multi-thread calculation and calculation using a macro model.
[0114] Note that content that is similar to that already explained will be omitted.
[0115] In step S1101, the calculation unit 10 of the agent behavior calculation system 100 executes a process of setting a behavior strategy for each agent according to the initial conditions. As a result, a behavior strategy according to the initial conditions is set for each agent. This process is the same as the process executed in step S1001 in Fig. 10. When the process in step S1001 is completed, the calculation unit 10 of the agent behavior calculation system 100 proceeds to step S1002.
[0116] In step S1102, the calculation unit 10 of the agent behavior calculation system 100 executes a process (hereinafter also referred to as "agent classification process") of classifying the behavior of the agent on the i-th day into any one of MAS behavior agent, macro model behavior agent, or non-behavior agent by the agent classification unit 11 based on the behavior strategy and the MAS priority agent determination processing unit 17. The details of this agent classification process will be described later with reference to FIG. 13. As a result, the agent on the i-th day is classified into any one of MAS behavior agent, macro model behavior agent, or non-behavior agent. If the agent is classified into a MAS behavior agent in step S1102, the calculation unit 10 of the agent behavior calculation system 100 proceeds to step S1103. On the other hand, if the agent is classified into a macro model behavior agent in step S1102, the calculation unit 10 of the agent behavior calculation system 100 proceeds to step S1104. If the agent is classified into a non-behavior agent in step S1102, the calculation unit 10 of the agent behavior calculation system 100 proceeds to step S1105.
[0117] The contents of the processing from step S1103 onwards executed when the agent is classified as a MAS behaviour agent in step S1102 are similar to the contents of the corresponding processing in Fig. 10, except that the contact determination processing executed in step S1007 in Fig. 10 takes into account contact between MAS behaviour agents alone, whereas the contact determination processing executed in step S1110 in Fig. 11 takes into account contact between MAS behaviour agents as well as contact between MAS behaviour agents and macro-model behaviour agents. Also, the contents of the processing from step S1105 onwards executed when the agent is classified as a non-behaviour agent in step S1102 are similar to the contents of the corresponding processing in Fig. 10. Therefore, the processing executed in these cases will not be described here, except for the contact determination processing executed in step S1110.
[0118] That is, the contents of the processing of each step from step S1103 in Fig. 11, which is executed when the agent is classified as a MAS behavior agent, correspond to the contents of the processing of each step from step S1003 in Fig. 10. Also, as in the case of Fig. 10, multi-thread calculation is performed for the movement routes of all agents classified as MAS behavior agents as exemplified in Fig. 11.
[0119] 10. Similarly, the contents of the processes in each step from step S1105 in FIG. 11 onwards, which are executed when the agent is classified as a non-behavioural agent, correspond to the contents of the processes in each step from step S1005 in FIG.
[0120] Therefore, here, the contents of the processes from step S1104 onwards, which are executed when the agent is classified as a macro-model behavior agent in step S1102, will be explained.
[0121] 10, the agent behavior computation system 100 can determine in advance whether the agent is classified as a MAS behavior agent, a macro model behavior agent, or a non-behavior agent as unique attribute information of each agent, rather than determining every day by the agent classification process in step S1002. In this case, the agent classification process is executed only when the classification is determined in advance as unique attribute information of each agent, and the calculation unit 10 of the agent behavior computation system 100 executes the agent behavior computation process by omitting the agent classification process executed in step S1102 when calculating the behavior of the agent on the i-th day.
[0122] In step S1102, the agent is classified as a macro model behavior agent, and the calculation unit 10 of the agent behavior calculation system 100 proceeds to step S1104, and then proceeds to step S1107.
[0123] In step S1107, the calculation unit 10 of the agent behavior calculation system 100 executes a process of subtracting the movement cost of the agent in accordance with the behavior strategy of the agent. This process is performed, for example, in the manner shown in FIG. 5. As a result, the movement cost of the agent is subtracted in accordance with the behavior strategy of the agent. This process is similar to the process executed in step S1004 of FIG. 10 and the process executed in step S1106 of FIG. 11. When the process in step S1107 is completed, the calculation unit 10 of the agent behavior calculation system 100 proceeds to step S1108.
[0124] In step S1108, the calculation unit 10 of the agent behavior calculation system 100 executes a process to determine the arrival time of the agent at the destination and the departure time from the destination. Here, this calculation process is performed for all agents classified as macro-model behavior agents. As a result, the arrival time of the agent at the destination and the departure time from the destination are determined. When the process in step S1108 is completed, the calculation unit 10 of the agent behavior calculation system 100 proceeds to step S1115.
[0125] In step S1110, the calculation unit 10 of the agent behavior calculation system 100 executes a contact determination process by the contact determination unit 13 to determine whether or not the agent has come into contact with another agent. As described above, the contact determination process executed in step S1110 of FIG. 11 is different from the contact determination process executed in step S1007 of FIG. 10, which only considers contact between MAS behavior agents, and as illustrated in FIG. 12, the contact determination process executed in step S1110 of FIG. 11 considers contact between MAS behavior agents and contact between the MAS behavior agent and the macro model behavior agent in addition to contact between MAS behavior agents. In the case of an agent classified as a macro model behavior agent, a destination, an arrival time at the destination, and a departure time from the destination are determined in one calculation. On the other hand, in the case of an agent classified as a MAS behavior agent, arrival determination at the destination is performed along with the travel route for each calculation, and a contact determination with the macro model behavior agent is performed based on the time information at the time of arrival. In FIG. 12, the downward arrows of different lengths for the MAS behavior agent and the macro model behavior agent respectively represent the respective calculation units. In addition, in Fig. 12, agents connected by a thick horizontal line represent agents that have been determined to have come into contact with each other. In addition, the example shown in Fig. 12 shows a state where there is only one agent to be contacted, but there may be multiple agents to be contacted, and the upper limit on the number of contacts may be set in advance. This allows a determination to be made as to whether or not the agent has come into contact with another agent.
[0126] In this way, the agent behavior computation system 100 can execute the agent behavior computation process by combining multi-thread computation and computation using a macro model for the agent's movement route. In other words, the agent behavior computation system 100 can simultaneously and accurately calculate the agent's behavior by multi-agent simulation, while shortening the computation time compared to the case of Fig. 10 where multi-thread computation is performed for all the agent's movement routes.
[0127] The agent behavior calculation process executed when calculating the agent's movement route using a hybrid method of multi-thread calculation and calculation using a macro model has been described above with reference to FIG.
[0128] (Agent Classification Processing) Next, the flow of the agent classification process executed in step S1102 of the flowchart shown in FIG. 11 will be described.
[0129] FIG. 13 is a flowchart showing an example of the flow of an agent classification process.
[0130] In the agent classification process, the process of classifying the agent into either MAS behavior agents and macro-model behavior agents, which are agents that perform some kind of behavior, or non-behavior agents, which are agents that do not perform any behavior, is performed by the behavioral strategy-based agent classification unit 11. This process is performed by the same method as the process executed by the behavioral strategy-based agent classification unit 11 in step S1002 in Fig. 10, so a description thereof will be omitted here. Therefore, the following description will mainly focus on the process of classifying the agent into either MAS behavior agents or macro-model behavior agents, which is performed by the MAS priority agent determination processing unit 17, in the agent classification process.
[0131] In step S1301, the calculation unit 10 of the agent behavior calculation system 100 executes the process of calculating the priority determination index PR of the agent on the i-th day by the MAS priority agent determination processing unit 17 based on the above (Equation 3). Here, the criteria used to classify an agent performing some behavior as a MAS behavior agent include (1) the value of the gain G, (2) the coefficient a in the above (Equation 2), and (3) the coefficient Cout in the above (Equation 3). In this way, the priority determination index PR of the agent on the i-th day is calculated. When the calculation unit 10 of the agent behavior calculation system 100 completes the process in step S1301, it proceeds to step S1302.
[0132] In step S1302, the calculation unit 10 of the agent behavior calculation system 100 executes a process of estimating the average calculation time per day per MAS behavior agent under the current conditions by the calculation time estimation unit 15. This estimates the average calculation time per day per MAS behavior agent under the current conditions. When the calculation unit 10 of the agent behavior calculation system 100 completes the process in step S1302, it proceeds to step S1303.
[0133] In step S1303, the calculation unit 10 of the agent behavior calculation system 100 executes a process of estimating the number of MAS behavior agents that satisfy the desired calculation time of the manager 306 acquired by accepting an input operation from the manager 306 based on the average calculation time per MAS behavior agent per day estimated in step S1302, by the MAS priority agent determination processing unit 17. As a result, the number of MAS behavior agents that satisfy the desired calculation time of the manager 306 is estimated based on the average calculation time per MAS behavior agent per day estimated in step S1302. When the calculation unit 10 of the agent behavior calculation system 100 completes the process in step S1303, it proceeds to step S1304.
[0134] In step S1304, the calculation unit 10 of the agent behavior calculation system 100 executes a process of selecting, by the MAS priority agent determination processing unit 17, the number of MAS behavior agents that satisfy the desired calculation time 1203 of the manager 306 estimated in step S1303, in order from the agent with the highest priority decision index PR on the i-th day calculated in step S1301, as MAS behavior agents. In this way, MAS behavior agents that are agents to be preferentially subjected to the multi-agent simulation are selected. Among the agents that perform some kind of behavior, agents that have not been selected as MAS behavior agents are classified as macro model behavior agents. When the calculation unit 10 of the agent behavior calculation system 100 completes the process in step S1304, it ends the agent classification process shown in the flowchart of FIG. 13.
[0135] This classifies the agent on the i-th day into either an MAS behavior agent, a macro model behavior agent, or a non-behavior agent. As a result, the agent behavior calculation system 100 becomes able to execute agent behavior calculation processing by using both multi-thread calculation and calculation using a macro model for the agent's movement route.
[0136] Note that the flow of the agent classification process shown in Figure 13 and the specific content of the processing executed at each step are merely examples, and other methods or criteria may be used to classify MAS behavior agents and macro-model behavior agents.
[0137] (Contact Treatment) Next, the flow of processing associated with contact, which is executed in step 1009 of the flowchart shown in FIG. 10 and in step 1112 of the flowchart shown in FIG. 11, will be described.
[0138] FIG. 14 is a flowchart showing an example of a process flow accompanying contact.
[0139] In step S1401, the calculation unit 10 of the agent behavior calculation system 100 executes a process of calculating the number of agents who have contact with other agents but have not yet processed the contact-related process by the contact-related event processing unit 14. This calculates the number of agents who have contact with other agents but have not yet processed the contact-related process. When the calculation unit 10 of the agent behavior calculation system 100 completes the process in step S1401, it proceeds to step S1402.
[0140] In step S1402, the calculation unit 10 of the agent behavior calculation system 100 executes a process of judging whether or not to update the behavior strategy of the agent by the contact-related event processing unit 14 based on a comparison of the payoff Gkk between the agents. The judgment may be performed, for example, based on a rule base based on a predetermined rule, based on the probability shown in the above (Formula 1), or by other various methods. There are multiple payoffs, and the number of payoffs is the same as the number of behavioral objectives. Furthermore, the payoff Gkk between the agents to be compared in this flowchart is a comparison between Gkk in the kkth behavior strategy when moving to the destination. As a result, based on the comparison of the payoff Gkk between the agents, it is judged whether or not to update the behavior strategy of the agent. When the processing in step S1402 is completed, the calculation unit 10 of the agent behavior calculation system 100 proceeds to step S1403.
[0141] In step S1403, the calculation unit 10 of the agent behavior computation system 100 executes a process of storing the results of the processes up to step S1402 in the agent attribute information DB 22 by the contact-related event processing unit 14. As a result, the results of the processes up to step S1402 are stored in the agent attribute information DB 22. When the process in step S1403 is completed, the calculation unit 10 of the agent behavior computation system 100 ends the contact-related process shown in the flowchart of Fig. 14.
[0142] As a result, a process associated with the contact is performed on the agent.
[0143] (Profit Acquisition Processing) Next, the flow of the profit acquisition process executed in step 1010 of the flowchart shown in FIG. 10 and in step 1113 of the flowchart shown in FIG. 11 will be described.
[0144] FIG. 15 is a flowchart showing an example of the flow of the profit acquisition process.
[0145] In step S1501, the calculation unit 10 of the agent behavior calculation system 100 executes a process of selecting the payoff G to be acquired according to the behavior strategy that caused the agent to move to the destination by the outcome calculation unit 16. As a result, the payoff G to be acquired is selected according to the behavior strategy that caused the agent to move to the destination. When the calculation unit 10 of the agent behavior calculation system 100 completes the process in step S1501, it proceeds to step S1502.
[0146] In step S1502, the calculation unit 10 of the agent behavior computation system 100 executes a process of acquiring a gain G with a probability ps by the outcome calculation unit 16. As a result, the gain G is acquired with a probability ps. Note that the value of the gain G acquired in step S1502 does not necessarily have to be a constant. In other words, the value of the gain G acquired in step S1502 may be, for example, a variable. When the process in step S1502 is completed, the calculation unit 10 of the agent behavior computation system 100 proceeds to step S1503.
[0147] In step S1503, the calculation unit 10 of the agent behavior computation system 100 executes a process of storing the results of the processes up to step S1502 in the agent attribute information DB 22 by the outcome calculation unit 16. As a result, the results of the processes up to step S1502 are stored in the agent attribute information DB 22. When the process in step S1503 is completed, the calculation unit 10 of the agent behavior computation system 100 ends the gain acquisition process shown in the flowchart of FIG.
[0148] This results in a gain G for the agent.
[0149] <Display screen example> Next, a display screen 1600 that the agent behavior computation system 100 displays to the manager 306 will be described with reference to FIG.
[0150] FIG. 16 is a diagram showing an example of a display screen 1600. As shown in FIG.
[0151] The manager 306 of the agent behavior computation system 100 can input, by inputting, among various conditions 1602 of the simulation to be executed by the agent behavior computation system 100, such as the condition 34 related to the agent's destination and the desired computation time 1603, those that can be inputted, through an input operation on a display screen 1600 exemplified in Fig. 16. The agent behavior computation system 100 executes various processes including the agent behavior computation process according to the conditions inputted by the manager 306.
[0152] Furthermore, the agent behavior computation system 100 displays the results of various processes including the agent behavior computation process, including various computation results such as an estimated computation time 1604, on a display screen 1600 shown in FIG.
[0153] The above-described embodiment of the present invention can be summarized as follows.
[0154] (1) The agent behavior calculation system 100 is a system that performs a simulation of the behavior of a plurality of agents in a virtual space and performs calculations related to the behavior of the plurality of agents, and includes a desired calculation time input unit 33 that accepts an input operation of a desired calculation time from a user, and a calculation time estimation unit 15 that estimates a calculation time based on the current simulation conditions, and the calculations related to the behavior of the plurality of agents are performed by multi-thread processing that performs parallel processing by a plurality of threads corresponding to the plurality of agents, and the multi-thread processing includes processing that is performed continuously for each calculation unit for the plurality of threads, and the calculation time estimated by the calculation time estimation unit 15 satisfies the desired calculation time input to the desired calculation time input unit 33 by performing processing that is performed continuously for each calculation unit for some of the plurality of threads in the multi-thread processing. As described above, the agent behavior calculation system 100 makes it possible to reduce the calculation time while enjoying the benefits of multi-agent simulation as much as possible.
[0155] (2) The multi-threaded processing includes macro model processing that is performed by non-continuous processing for each calculation unit that is different from the calculation unit for multiple threads, and the calculation time estimated by the calculation time estimation unit 15 satisfies the desired calculation time input to the desired calculation time input unit 33 by performing macro model processing for some of the multiple threads in the multi-threaded processing.
[0156] (3) The calculation time estimation unit 15 determines which agent is to be given priority in multi-threaded processing according to a numerical value expressed by a linear formula including a term obtained by multiplying a coefficient set for each agent's behavioral principle by a gain that is the criterion for determining the agent's behavior, and there are as many gains as there are types of behavior that the agent can take.
[0157] (4) The system further includes a simulation condition input unit 34 for adding simulation conditions, and the process executed under the conditions added by the simulation condition input unit 34 is performed by multi-thread processing.
[0158] (5) Further provided with a real data input unit 36 capable of inputting real data, which is data acquired in the real world, and in multi-threaded processing, the interaction with the real data acquired via the real data input unit 36 is calculated by processing that is performed continuously for each calculation unit.
[0159] (6) Multi-thread processing is performed based on the behavioral strategy of each agent that is the subject of the simulation and the payoff that serves as the criterion for determining the behavioral strategy.
[0160] (7) An outcome calculation unit 16 is further provided which calculates an outcome in the simulation from the agent's gain, and quantitatively evaluates the outcome of the implemented measures based on the gain.
[0161] (8) The calculation time estimation unit 15 estimates a calculation time based on the current simulation conditions, on the basis of the past calculation times in multi-thread processing.
[0162] (9) The calculation time estimation unit 15 executes a multi-thread process for a predetermined period of time in advance based on the current simulation conditions, thereby estimating a calculation time based on the simulation conditions.
[0163] The present invention is not limited to the above-described embodiments, and can be implemented using any components without departing from the spirit of the present invention.
[0164] The above-mentioned embodiments, examples, and modifications are merely examples, and the present invention is not limited to these contents as long as the characteristics of the invention are not impaired. In addition, although various embodiments, examples, and modifications have been described above, the present invention is not limited to these contents. Other aspects that are conceivable within the scope of the technical idea of the present invention are also included in the scope of the present invention.
[0165] In the above figures, the control lines and information lines are shown as those considered necessary for the explanation, and do not necessarily show all the control lines and information lines in the actual implementation. For example, it may be considered that almost all the components are actually connected to each other.
[0166] The above-described layout of each functional unit of the agent behavior computation system 100 is merely an example. The layout of each functional unit can be changed to an optimal layout in terms of the performance, processing efficiency, communication efficiency, etc., of the hardware and software included in the agent behavior computation system 100. [Explanation of symbols]
[0167] 100: Agent behavior calculation system
Claims
1. An agent behavior calculation system that performs a simulation of the behavior of a plurality of agents in a virtual space and performs calculations regarding the behavior of the plurality of agents, a desired calculation time input unit for receiving an input operation of a desired calculation time from a user; a calculation time estimation unit for estimating a calculation time based on a current simulation condition; Equipped with Calculations regarding the actions of the plurality of agents are performed by multi-thread processing, which performs parallel processing using a plurality of threads corresponding to the plurality of agents; the multithread processing includes processing performed consecutively for each computation unit for the plurality of threads; The calculation time estimated by the calculation time estimation unit satisfies the desired calculation time inputted to the desired calculation time input unit by performing continuous processing for each calculation unit for a part of the plurality of threads in the multithread processing. Agent behavior calculation system.
2. the multithread processing includes macro model processing performed by non-continuous processing for each computation unit different from the computation unit for the plurality of threads; The calculation time estimated by the calculation time estimation unit satisfies the desired calculation time inputted to the desired calculation time input unit by performing the macro model processing for a part of the plurality of threads in the multithread processing.
2. The agent behavior calculation system according to claim 1.
3. the calculation time estimation unit determines an agent that is to be given priority in executing the multithread processing in accordance with a numerical value expressed by a linear formula including a term obtained by multiplying a coefficient set for each agent's behavior principle by a gain that is a judgment criterion for the agent's behavior; The number of payoffs is equal to the number of types of actions that the agent can take.
2. The agent behavior calculation system according to claim 1.
4. A simulation condition input unit for adding a condition for the simulation is further provided, The process executed under the conditions added by the simulation condition input unit is performed by the multi-thread process.
2. The agent behavior calculation system according to claim 1.
5. Further comprising a real data input unit capable of inputting real data, which is data acquired in the real world; In the multi-thread processing, an interaction with the real data acquired via the real data input unit is calculated by processing that is continuously performed for each calculation unit.
2. The agent behavior calculation system according to claim 1.
6. 2. The agent behavior calculation system according to claim 1, wherein said multi-thread processing is performed based on a behavior strategy for each agent that is the subject of said simulation and a gain that is a criterion for determining said behavior strategy.
7. An outcome calculation unit that calculates an outcome in the simulation from the gain of the agent, Quantitatively evaluate the outcomes of the measures implemented based on the above gains 7. An agent behavior calculation system according to claim 6.
8. 2. The agent behavior computation system according to claim 1, wherein said computation time estimation unit estimates the computation time based on said current simulation conditions on the basis of past computation times taken by said multi-thread processing.
9. 2. The agent behavior computation system according to claim 1, wherein said computation time estimation unit estimates the computation time based on a current simulation condition by executing said multithread processing for a predetermined time in advance based on said simulation condition.
10. An agent behavior calculation method for simulating the behavior of a plurality of agents in a virtual space and calculating the behavior of the plurality of agents, comprising the steps of: A computer having at least a processor and a memory, a desired calculation time input unit for receiving an input operation of a desired calculation time from a user; a calculation time estimation unit for estimating a calculation time based on a current simulation condition; Equipped with Calculations regarding the actions of the plurality of agents are performed by multi-thread processing, which performs parallel processing using a plurality of threads corresponding to the plurality of agents; the multithread processing includes processing performed consecutively for each computation unit for the plurality of threads; The calculation time estimated by the calculation time estimation unit satisfies the desired calculation time inputted to the desired calculation time input unit by performing continuous processing for each calculation unit for a part of the plurality of threads in the multithread processing. Agent behavior calculation method.
11. An agent behavior calculation program that performs a simulation of the behavior of a plurality of agents in a virtual space and performs calculations regarding the behavior of the plurality of agents, Executed by a computer having at least a processor and a memory, The computer includes: a desired calculation time input unit for receiving an input operation of a desired calculation time from a user; a calculation time estimation unit for estimating a calculation time based on a current simulation condition; Equipped with Calculations regarding the actions of the plurality of agents are performed by multi-thread processing, which performs parallel processing using a plurality of threads corresponding to the plurality of agents; the multithread processing includes processing performed consecutively for each computation unit for the plurality of threads; The calculation time estimated by the calculation time estimation unit satisfies the desired calculation time inputted to the desired calculation time input unit by performing continuous processing for each calculation unit for a part of the plurality of threads in the multithread processing. Agent behavior calculation program.
Citation Information
Patent Citations
Electron gun control system
JP1978072421A