Information processing program, information processing method. and information processing device
By identifying and excluding impassable areas in multi-agent simulations, the method improves simulation efficiency and accuracy by preventing the selection of routes that agents cannot traverse, reducing processing load and maintaining simulation quality.
Patent Information
- Application Number
- JP2023214363
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-12-20
- Publication Date
- 2025-07-02
AI Technical Summary
In multi-agent simulation (MAS), the selection of movement routes that include partial areas an agent cannot pass through reduces simulation accuracy due to the lack of consideration for agent size, leading to increased calculation and processing time, especially when parameters like starting points and destinations vary among agents.
Acquire first map data distinguishing areas with and without objects, identify partial areas an agent cannot pass through, and generate second map data by setting objects in these areas to exclude them from potential paths, using this data for simulation.
This approach enhances simulation efficiency by reducing processing load and maintaining accuracy by excluding impassable areas from route candidates, thus optimizing route selection for all agents.
Smart Images

Figure 2025098313000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to multi-agent simulation.
Background Art
[0002] There is multi-agent simulation (MAS) as a technology for simulating the behaviors of multiple moving objects in parallel. An agent represents a moving object in a simulation and represents an entity that behaves in the real world, such as a person or a vehicle (hereinafter may be referred to as an "acting entity"). MAS is a technology that models and simulates the interactions between multiple agents in parallel under rules set for each individual agent.
[0003] MAS is used for simulating various behaviors of agents. Depending on the differences between agents, there are, for example, pedestrian flow simulations and traffic flow simulations. Agents in pedestrian flow simulations correspond to humans in the real world, and agents in traffic flow simulations correspond to vehicles in the real world. Specific examples of pedestrian flow simulations include evacuation simulations during a fire and simulations of human movement in facilities where a large number of visitors are expected. In such simulations involving the movement of agents, the movement path of agents on map data that imitates the real world is considered as one of the elements of the simulation. Multiple methods for selecting a movement path have been proposed, such as a path search algorithm using a graph structure, a path search method based on the framework of reinforcement learning, and a method based on fluid analysis.
[0004] When a movement route is selected in MAS (hereinafter sometimes referred to as "route selection"), a movement route including a partial area that an agent cannot pass through may be selected. The partial area that an agent cannot pass through is, for example, an area smaller than the size of the agent. In route selection in MAS, since the size of the agent may not be considered for the area that is a candidate for the movement route, a route including a partial area that the agent cannot pass through may be selected, which may be a factor in reducing the accuracy of the simulation. In the prior art, for example, using the simulation results, a movement difficulty at each position of the selected movement route is calculated, and a technique for correcting the route so that a location with a large movement difficulty is not included in the route again is known.
Prior Art Documents
Patent Documents
[0005]
Patent Document 1
Patent Document 2
Patent Document 3
Summary of the Invention
Problems to be Solved by the Invention
[0006] However, in the case of MAS, since parameters such as the starting point and the destination are different for each agent, different movement routes are selected for each agent. Therefore, in the prior art, since it is necessary to calculate the movement difficulty at each position of the movement route selected in the simulation for each agent and correct the route, the amount of calculation and the processing time increase.
[0007] In one aspect, an object of the present invention is to provide an information processing program, an information processing method, and an information processing apparatus for efficiently executing a multi-agent simulation.
Means for Solving the Problems
[0008] In one aspect, first map data including a region where an object exists and a region where the object does not exist is acquired, and based on the size of the region where the object does not exist and the size of the moving body, a partial region through which the moving body cannot pass is specified from the region where the object does not exist, second map data in which the partial region is changed to the region where the object exists is generated, and using the second map data, a simulation regarding the flow of passage of a plurality of the moving bodies is executed, and an information processing program for causing a computer to execute the process is provided.
[0009] In one aspect, an information processing method in which a computer executes a process similar to the process based on the above information processing program is provided.
[0010] In one aspect, an information processing apparatus that executes a process similar to the process based on the above information processing program is provided.
Advantages of the Invention
[0011] In one aspect, multi-agent simulation can be efficiently executed.
Brief Description of the Drawings
[0012]
Figure 1
Figure 2
Figure 3
Figure 4A
Figure 4B
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15A
Figure 15B
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Best Mode for Carrying Out the Invention
[0013] Hereinafter, with reference to the drawings, embodiments of an information processing program, an information processing method, and an information processing apparatus according to the present invention will be described in detail. Note that these embodiments are merely examples for carrying out the present invention and do not limit the present invention.
Embodiment
[0014] [Description of the Apparatus] FIG. 1 is a diagram for explaining an information processing apparatus 10 according to an embodiment. Referring to FIG. 1, the information processing apparatus 10 according to the embodiment will be described.
[0015] The information processing apparatus 10 is an information processing apparatus that executes a MAS. When the information processing apparatus 10 acquires 3D map data 521, it converts the 3D map data 521 into 2D and generates 2D map data 522. The information processing apparatus 10 acquires information regarding the size of the agent from the setting parameter 524, and identifies a partial area through which the agent cannot pass from an area where there is no object in the 2D map data 522. The information processing apparatus 10 sets an object in the identified partial area to change it to an area where an object exists, so that a path including the identified partial area is not selected as a path for the agent to move in the simulation, and generates set 2D map data 523. The information processing apparatus 10 executes a simulation using the set 2D map data 523 in which an object is set in the identified partial area and the setting parameter 524, and outputs or saves a MAS result 527. The area where the object is set becomes an area where the object exists and is excluded from candidates for the movement path of the agent in the simulation. By using the set 2D map data 523, the information processing apparatus 10 can exclude a partial area through which the agent cannot pass from candidates for the movement path and execute the simulation.
[0016] The 3D map data 521 is represented in a virtual space (hereinafter may be referred to as "3D space") where the space in the real world where the movement of the acting entity is assumed is three-dimensional. FIG. 2 shows an example of the 3D map data 521. The 3D map data 521 is map data in which the space in the real world where the movement of the acting entity is assumed is represented on a three-dimensional space of the x-axis, y-axis, and z-axis. In the 3D map data 521, the 3D space is represented in the form of individual voxels or a combination of voxels. A voxel is the smallest unit of data representing a solid. A voxel is a cube, and the length of one side of the voxel is called the voxel size. A voxel is an example of an object. The area where voxels are set is an example of the area where an object exists, and the area where voxels are not set is an example of the area where an object does not exist. Here, an object is something that hinders the movement of an agent regardless of the size of the agent in the simulation. An object is generally fixed on the 3D data and does not involve movement like an agent. As an example, when the 3D map data is a floor map inside a facility, walls (including the inside of the walls) and pillars inside the facility correspond to objects, but it is not limited to these. The area where an object exists is an area excluded from the candidates for the movement path in the simulation, and the area where an object does not exist is an area that becomes a candidate for the movement path in the simulation. The 3D map data 521 is an example of the first map data including the area where an object exists and the area where an object does not exist. The 3D map data 521 may be generated based on data obtained by three-dimensional space measurement such as photogrammetry or Light Detection and Ranging (LiDAR). Photogrammetry is a technology for generating a 3D CG model from photos. LiDAR is a technology for measuring the time until light such as laser light is reflected from an object and returns, and measuring the distance to the object in space and the shape of the object.
[0017] The two-dimensional map data 522 represents a virtual space (hereinafter sometimes referred to as a "two-dimensional space") in which the space where the movement of the acting entity is assumed in the real world is two-dimensional. FIG. 2 shows an example of the two-dimensional map data 522. The two-dimensional map data 522 is map data in which the space where the movement of the acting entity is assumed in the real world is represented on a two-dimensional space of the x-axis and the y-axis. The two-dimensional map data 522 may be generated by deleting the coordinate information in the z-axis direction from the three-dimensional map data 521 and converting it into two dimensions. In the two-dimensional map data 522, the two-dimensional space is represented in the form of a single block or a shape formed by combining blocks. A block is a projection of a voxel onto a two-dimensional space and is a rectangle with a side length that is n times the voxel (n is an arbitrary number). A block is an example of an object. The area where the block is set is an example of the area where the object exists, and the area where the block is not set is an example of the area where the object does not exist. The two-dimensional map data 522 is an example of the first map data including the area where the object exists and the area where the object does not exist.
[0018] This embodiment will be described by taking as an example a fire evacuation simulation in which a person is represented as an agent. A fire evacuation simulation is a simulation that simulates the spread of a fire and the movement of smoke when a fire occurs in a specific area such as a building, and calculates the evacuation actions of multiple people simultaneously according to the situation of the fire. FIG. 3 is a diagram showing an agent imitating a person used in the simulation. In the simulation of this embodiment, an agent 30, whose shape as seen from the head direction is approximated by three solid circles, is used for the simulation process. d is the diameter of the agent 30.
[0019] The information processing apparatus 10 identifies a partial area through which the agent 30 cannot pass from the two-dimensional map data 522. Examples of partial areas through which the agent in the simulation cannot pass are shown in FIGS. 4A and 4B. FIG. 4A shows an example in which the blocks 41 and 42 in the traveling direction of the agent 30 are set parallel to the coordinate axes. When the width i between the blocks 41 and 42 in the traveling direction of the agent 30 is smaller than the diameter d of the agent 30, the agent 30 cannot pass through the partial area between the blocks 41 and 42. Further, FIG. 4B shows an example in which the blocks 44 and 45 in the traveling direction of the agent 30 are set in a positional relationship where the x-coordinate and the y-coordinate do not overlap, in other words, in an oblique positional relationship. When the distance i between the vertices of the blocks 44 and 45 in the traveling direction of the agent 30 is smaller than the diameter d of the agent 30, the agent 30 cannot pass through the partial area 46 between the blocks 44 and 45. Thus, the size of the area where no object exists depends on the distance between the objects constituting the area. Therefore, in the simulation, the area where no object serving as a candidate for the movement path exists includes a partial area through which the agent, which is a partial area through which the moving body cannot pass, cannot pass. In this embodiment, in the case of FIG. 4A, the partial area 43 between the blocks 41 and 42 is identified as an example of a partial area through which the agent cannot pass. In the case of FIG. 4B, the partial area 46 on the line connecting the vertices of the blocks 44 and 45 is identified as an example of a partial area through which the agent cannot pass. In this embodiment, the information processing apparatus 10 identifies a partial area through which the agent 30 included in the two-dimensional map data 522 cannot pass from the width between the blocks or the distance between the vertices of the blocks (hereinafter, the width between the blocks and the distance between the vertices of the blocks may be collectively referred to as the "distance between blocks"), and sets a block in the identified partial area (hereinafter, the block set in the identified partial area may be referred to as a "dummy block"). A dummy block is an example of a block and an example of an object. The area where the dummy block is set is an example of the area where the block is set.An area where no dummy block is set is an example of an area where no block is set. In this way, the information processing device 10 changes the specified partial area to a partial area where an object exists by setting a dummy block in the specified partial area, and excludes the specified partial area from candidates for the movement path of the agent. The information processing device 10 executes MAS using the set 2D map data 523 in which dummy blocks are set.
[0020] The technique used for path selection in MAS may not consider the size of the agent. For example, in a method based on fluid analysis, the movement of the agent is modeled as the movement of particles having velocity and mass, and a movement path is selected for each agent. Therefore, in the method based on fluid analysis, the size of the agent is not considered for path selection, and even a narrow gap (hereinafter, may be referred to as a "gap") through which the agent cannot pass can be selected as the movement path of the agent. However, since the size of the agent is considered in the calculation of interactions such as the repulsive force between the agent and the object that occurs when the agent moves along the selected movement path, in the simulation result, the agent may not be able to pass through the gap on the movement path and may stay at the entrance of the gap. In particular, when the 3D map data is acquired by 3D space measurement such as photogrammetry or LiDAR, since the information of the real space is reflected in the 3D map data in detail, the possibility of selecting a path including a partially difficult-to-move area becomes high.
[0021] If the size of the agent is not considered in the selection of the movement path in this way, the accuracy of the simulation will decrease. Even if, for a certain agent, a process of obtaining the movement difficulty based on the simulation result is repeated and a movement path that the agent can pass through is selected, since the start point and the destination are different for each agent in the MAS, the movement path is not necessarily selected as the movement path of other agents. Therefore, the processing time and cost increase when obtaining the movement difficulty and selecting the movement path for each individual agent. Furthermore, in a simulation where the situation changes moment by moment, such as a fire, route selection may be performed each time the situation changes. Since route selection is performed each time with a partial area where the agent cannot pass included as a candidate, the processing load can also increase in the simulation.
[0022] By using the two-dimensional map data in which an object is set in a partial area where an agent included in an area where no object exists cannot pass, the information processing apparatus 10 can exclude the partial area from the route selection candidates for all agents. The information processing apparatus 10 can execute the simulation in a state where a partial area where the agent cannot pass is excluded from the route selection candidates, and can reduce the processing load. In this way, the information processing apparatus 10 can efficiently perform the simulation.
[0023] [Functional Configuration] Referring to FIG. 5, the functional configuration of the information processing apparatus according to the embodiment will be described. FIG. 5 is a functional block diagram showing an example of the functional configuration of the information processing apparatus according to the embodiment. The information processing apparatus 10 includes a communication unit 50, a control unit 51, and a storage unit 52.
[0024] The communication unit 50 controls communication with an external device. The communication unit 50 may be realized by a communication interface such as a Network Interface Card (NIC), for example. Through the communication unit 50, for example, 3D map data 521, 2D map data 522, set 2D map data 523, setting parameters 524, block table 525, near block table 526, and MAS results 527 may be output to the external device or input from the external device to the information processing apparatus 10.
[0025] The storage unit 52 stores various programs executed by the control unit 51 and data used for the execution of various programs. The storage unit 52 may be realized by a main storage device such as a Radom Access Memory (RAM) or an auxiliary storage device such as a Hard Disk Drive (HDD), for example. The data stored in the storage unit 52 is, for example, 3D map data 521, 2D map data 522, set 2D map data 523, setting parameters 524, block table 525, near block table 526, and MAS results 527.
[0026] The three-dimensional map data 521 represents a space in which the movement of an actor is assumed in the real world as a virtual three-dimensional space. The three-dimensional map data 521 may represent an actual space in the real world in a three-dimensional space, or may represent a non-existent space in the real world, such as a space including a building in the design stage, in a three-dimensional space. As shown in FIG. 2, in the three-dimensional map data 521, the three-dimensional space is represented in the form of individual voxels or a combined shape of voxels. The voxel size indicating the length of one side of the voxel may be arbitrarily determined according to the processing of the MAS. For example, when the voxel size is set small, a detailed shape can be represented in the three-dimensional space by combining voxels, while the processing time of the MAS becomes long. When the voxel size is set large, the combined shape of the voxels becomes a rough representation in the three-dimensional space, while the processing time of the MAS becomes short. The three-dimensional map data 521 may be manually generated using, for example, 3DCAD. The three-dimensional map data 521 may be generated based on the real space by three-dimensional space measurement such as photogrammetry or LiDAR. The three-dimensional map data 521 may be generated by voxelizing the data obtained by three-dimensional space measurement using Open3D or the like. The information processing apparatus 10 may acquire the three-dimensional map data 521 generated by an external device via the communication unit 50.
[0027] The two-dimensional map data 522 represents the space where the movement of the acting entity is assumed in the real world as a virtual two-dimensional space. The two-dimensional map data 522 is generated by deleting the coordinate information in the z-axis direction from the three-dimensional map data 521 and converting it into two dimensions. As an example, in FIG. 2, the combination of voxels represented by voxel 210 and voxel 211 is converted into block 220, the combination of voxels represented by voxel 212 and voxel 213 is converted into block 221, the combination of voxels represented by voxels 214 to 217 is converted into block 223, and the combination of voxels represented by voxel 218 and voxel 219 is converted into block 224. When the shape of the bottom surface is not rectangular, such as the combination of voxels represented by voxels 214 to 219, it is represented by being divided into a plurality of blocks like block 223 and block 224. The two-dimensional map data 522 may be manually generated using, for example, CAD when there is no three-dimensional map data 521. The two-dimensional map data 522 may be generated based on, for example, an orthoimage obtained by orthorectifying an aerial photograph when there is no three-dimensional map data 521. The two-dimensional map data 522 may represent the space that actually exists in the real world as a two-dimensional space, or may represent a space that is not expected to actually exist in the real world, such as a space including a building in the design stage, as a two-dimensional space. The two-dimensional map data 522 may be generated by an external device other than the information processing device 10. The information processing device 10 may acquire the two-dimensional map data 522 generated by the external device via the communication unit 50.
[0028] The set two-dimensional map data 523 is two-dimensional map data in which a partial area through which an agent included in the two-dimensional map data 522 cannot pass is excluded from the candidates for the movement route of the agent. The partial area through which the agent cannot pass is excluded from the candidates for the movement route of the agent, for example, by setting a dummy block in the partial area. The set two-dimensional map data 523 is used for executing the simulation in the simulation unit 512. The set two-dimensional map data 523 is an example of the second map data.
[0029] The setting parameter 524 is a parameter used by the setting unit 511 and the simulation unit 512. The setting parameter used by the setting unit 511 is, for example, the size of the agent. The parameters used by the simulation unit 512 may include, for example, the size of the agent, the type of the agent, the moving speed, and settings related to the space where the agent moves. In the case of the fire evacuation simulation in this embodiment, since the agent represents a person, the parameters used by the simulation unit 512 may include, for example, the type such as gender and age, the moving speed for each type, the starting point for each agent, and the setting of the entrance and exit on the map data.
[0030] The block table 525 is a table in which the coordinate information of the blocks included in the two-dimensional map data 522 is stored. FIG. 6 is a diagram for explaining an example of the block table. ID61 is an identifier assigned to uniquely identify the block. Here, referring to FIG. 7, an example of the vertex coordinates of the block will be described. As shown in the block 60 in FIG. 7, the coordinates (x, y) of each vertex of the block are the minimum value x min and the maximum value x max , and the minimum value y min and the maximum value y max in the y coordinate, which are represented by a combination. Specifically, the coordinates (x, y) of each vertex of the block 60 are based on the coordinate information x min , x max , y min、 y max such that (x, y) = (x min , y min ), (x max , y min ), (x min , y max ), (x max , y max ). Returning to FIG. 6, in the block table 525, for each ID assigned to the block, the coordinate information x min , x max , y min、 y maxis stored. ID61 may be assigned in the order of blocks with smaller values of coordinate x among the blocks included in the two-dimensional map data 522. When there are a plurality of blocks with the same value of coordinate x, ID61 may be assigned in the order of blocks with smaller values of coordinate y. The block table 525 may be generated by an external device other than the information processing apparatus 10. The information processing apparatus 10 may acquire the block table 525 generated by the external device via the communication unit 50. min is stored. ID61 may be assigned in the order of blocks with smaller values of coordinate x among the blocks included in the two-dimensional map data 522. When there are a plurality of blocks with the same value of coordinate x, ID61 may be assigned in the order of blocks with smaller values of coordinate y. The block table 525 may be generated by an external device other than the information processing apparatus 10. The information processing apparatus 10 may acquire the block table 525 generated by the external device via the communication unit 50. min When there are a plurality of blocks with the same value of coordinate x, ID61 may be assigned in the order of blocks with smaller values of coordinate y. The block table 525 may be generated by an external device other than the information processing apparatus 10. The information processing apparatus 10 may acquire the block table 525 generated by the external device via the communication unit 50. min When there are a plurality of blocks with the same value of coordinate x, ID61 may be assigned in the order of blocks with smaller values of coordinate y. The block table 525 may be generated by an external device other than the information processing apparatus 10. The information processing apparatus 10 may acquire the block table 525 generated by the external device via the communication unit 50. The near block table 526 is a table in which information including the positional relationship classification 82, the inter-block region coordinates 83, the line segment coordinates 84, and the collision flag 85 is stored for each combination of the reference block and the near block. FIG. 8 is a diagram for explaining an example of the near block table. The reference block is an arbitrarily selected block among the blocks included in the two-dimensional map data 522. The near block is a block among the blocks included in the two-dimensional map data 522 whose inter-block distance from the reference block is equal to or less than a threshold value. The threshold value may be set based on the size of the agent. In the near block table 526, each piece of information is stored for each combination of the reference block and the near block with respect to the reference block. The reference block ID 80 is an ID indicating the reference block, and the near block ID 81 is an ID indicating the near block.
[0031] The near block table 526 is a table in which information including the positional relationship classification 82, the inter-block region coordinates 83, the line segment coordinates 84, and the collision flag 85 is stored for each combination of the reference block and the near block. FIG. 8 is a diagram for explaining an example of the near block table. The reference block is an arbitrarily selected block among the blocks included in the two-dimensional map data 522. The near block is a block among the blocks included in the two-dimensional map data 522 whose inter-block distance from the reference block is equal to or less than a threshold value. The threshold value may be set based on the size of the agent. In the near block table 526, each piece of information is stored for each combination of the reference block and the near block with respect to the reference block. The reference block ID 80 is an ID indicating the reference block, and the near block ID 81 is an ID indicating the near block.
[0032] The positional relationship classification 82 is a classification indicating the positional relationship between the reference block and the near block. In this embodiment, the positional relationship between the reference block and the near block is divided into three patterns. Here, referring to FIG. 9, an example of each pattern will be described. The first is a pattern in which the x-coordinates of the reference block and the near block do not overlap, and all or part of the y-coordinates of the reference block and the near block overlap (hereinafter, may be described as "pattern 1"). The reference block 110 and the block 111 in FIG. 9 are an example of the positional relationship of pattern 1. The second is a pattern in which all or part of the x-coordinates of the reference block and the near block overlap, and the y-coordinates of the reference block and the near block do not overlap (hereinafter, may be described as "pattern 2"). The reference block 110 and the block 112 in FIG. 9 are an example of the positional relationship of pattern 2. The third is a pattern in which the x-coordinates and y-coordinates of the reference block and the near block do not overlap (hereinafter, may be described as "pattern 3"). In other words, pattern 3 is a pattern in which the reference block and the near block are positioned in an oblique direction. The reference block 110 and the block 113 in FIG. 9 are an example of the positional relationship of pattern 3. In this embodiment, as an example, the positional relationship classification is defined as "pattern 1: 1, pattern 2: 2, pattern 3: 3". The number of patterns of the positional relationship classification is not limited to three, and the positional relationship may be divided into three or more patterns, or may be divided into three or less patterns. FIG. 9 is an example when the size of the reference block 110 is larger than that of the block 111, the block 112, and the block 113. However, the relationship between the sizes of the reference block and the near block is not limited to the case as shown in FIG. 9, and the reference block may be smaller than the near block, or the reference block and the near block may have the same size.
[0033] The inter-block region coordinates 83 are the coordinate information of the region between the reference block and the near block (hereinafter sometimes referred to as the "inter-block region") when the positional relationship between the reference block and the near block is in Pattern 1 or Pattern 2. The inter-block region is a partial region where the width between blocks is less than or equal to the threshold value, and is an example of a partial region through which the agent cannot pass. Referring to FIG. 10, an example of the inter-block region in Pattern 1 will be described. For example, in the case of FIG. 10, the region where the y coordinates between the reference block 91 and the near block 92 overlap is the inter-block region 93. Also, when a part of the y coordinate of the near block 94 overlaps with the reference block, such as between the reference block 91 and the near block 94, the region where the y coordinates of the reference block 91 and the near block 94 overlap is the inter-block region 95. The inter-block region is rectangular, and the coordinates of the vertices are stored in the same manner as the block table 525 as shown in the inter-block region coordinates 83 of FIG. 8. Specifically, the coordinates (x, y) of each vertex of the inter-block region are the minimum value x Cmin and the maximum value x Cmax and the minimum value y of the y coordinate Cmin and the maximum value y Cmax represented by the combination of. C is a subscript indicating that it is the coordinate of the inter-block region. In the near block table 526, the coordinate information x Cmin , x Cmax , y Cmin、 y Cmax of the inter-block region is stored. In the case of Pattern 2, the region where the x coordinates of the reference block and the near block overlap becomes the inter-block region, and the coordinate information of the inter-block region is stored in the near block table 526.
[0034] The line segment coordinates 84 are coordinate information regarding the vertices of the reference block and the vertices of the near block used for calculating the inter-block distance in pattern 3. Referring to FIG. 11, an example of the vertices of the reference block and the vertices of the near block used for calculating the inter-block distance in pattern 3 will be described. As shown in FIG. 11, when the vertex of the reference block used for calculating the inter-block distance in pattern 3 is vertex A (hereinafter, may be described as "vertex A"), and the vertex of the near block is vertex B (hereinafter, may be described as "vertex B"), the line segment connecting vertex A and vertex B is defined as line segment AB (hereinafter, may be described as "line segment AB"). In the near block table 526, as an example, the coordinates of vertex A are (x A , y A ), and the coordinates of vertex B are stored as (x B , y B ). A is a subscript indicating that it is the coordinate of the reference block, and B is a subscript indicating that it is the coordinate of the near block. The area along line segment AB is an example of a partial area where the agent cannot pass through.
[0035] The collision flag 85 is a flag indicating whether another near block collides with the inter-block region or the line segment AB. In other words, it is a flag indicating whether there is another near block between the reference block and the near block. Another near block refers to a near block other than the near block to be processed among the near blocks extracted for the reference block. As an example, in the near block table 526 of FIG. 8, when the reference block is the block with ID = 1 and the near block is the block with ID = 2 and the processing is performed, the other near blocks are the near blocks with ID = 3, 4, 5. The setting unit 511 determines whether the inter-block region or the line segment AB collides with another near block (hereinafter, may be described as "collision determination process"). In this embodiment, as an example, the collision flag 85 is defined as "collides: 1, does not collide: 0". The initial value of the collision flag 85 may be 0. When the collision flag is 1, the setting unit 511 does not set a dummy block between the reference block and the near block, and gives priority to the process of setting a dummy block between the reference block and any other near block. When the collision flag is 0, the setting unit 511 sets a dummy block between the reference block and the near block.
[0036] The MAS result 527 is the result of the simulation executed by the simulation unit 512 using the set 2D map data 523 and the set parameters 524. The MAS result 527 may be transmitted to an external device other than the information processing apparatus 10 via the communication unit 50.
[0037] The control unit 51 controls the overall processing of the information processing apparatus 10. The control unit 51 is realized by, for example, one or more processors such as a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), and a Digital Signal Processor (DSP) reading a program stored in a storage device, expanding it in a main storage device such as a RAM, and executing it. The control unit 51 may be realized including an integrated circuit such as an Application Specific Integrated Circuit (ASIC) or a Field Programmable Gate Array (FPGA). The control unit 51 includes a setting unit 511 and a simulation unit 512.
[0038] The setting unit 511 converts the 3D map data 521 into 2D map data 522 and generates set 2D map data 523 from the 2D map data 522. First, with reference to FIG. 2, the process of converting the 3D map data 521 into the 2D map data 522 will be described. FIG. 2 is a diagram for explaining an example of 3D map data and an example of 2D map data. The setting unit 511 deletes the information in the z-axis direction from the 3D map data 521 and projects the 3D map data 521 two-dimensionally. The setting unit 511 converts the 3D map data 521 represented by voxels into the 2D map data 522 represented by blocks. In this way, the setting unit 511 generates the 2D map data 522 from the 3D map data 521.
[0039] Next, the setting unit 511 acquires the 2D map data 522 from the storage unit 52 and generates the set 2D map data 523 from the 2D map data 522. A series of processes for generating the set 2D map data 523 from the 2D map data 522 will be described with reference to FIGS. 9 to 15.
[0040] The setting unit 511 assigns an ID to each block included in the two-dimensional map data 522 and stores it in the block table 525 together with the coordinate information of each block. The setting unit 511 calculates the block-to-block distance, which is the shortest distance between the blocks included in the two-dimensional map data 522. Referring to FIG. 9, an example of the process of calculating the block-to-block distance will be described. The reference block 110 is a block serving as a reference for calculating the block-to-block distance and is any one of the blocks included in the two-dimensional map data 522. The blocks 111, 112, and 113 are blocks other than the reference block 110 among the blocks included in the two-dimensional map data 522. The setting unit 511 calculates the block-to-block distance i between the reference block and another block other than the reference block. The reference block 110 and the block 111 in FIG. 9 are an example in the case of pattern 1. In the case of pattern 1, the setting unit 511 calculates the block-to-block distance i from the difference in the coordinates in the x-axis direction between the reference block 110 and the block 111 using, for example, Equation (1). x A is the x-coordinate of the reference block used for calculating the block-to-block distance i, x B indicates the x-coordinate of the block used for calculating the block-to-block distance from the reference block.
[0041] TIFF2025098313000002.tif15127
[0042] The reference block 110 and the block 112 in FIG. 9 are an example in the case of pattern 2. In the case of pattern 2, the setting unit 511 calculates the block-to-block distance i from the difference in the coordinates in the y-axis direction between the reference block 110 and the block 112 using, for example, Equation (2). y A is the y-coordinate of the reference block used for calculating the block-to-block distance i, y B indicates the y-coordinate of the block used for calculating the block-to-block distance from the reference block.
[0043] TIFF2025098313000003.tif14127
[0044] The reference block 110 and the block 113 in FIG. 9 are an example in the case of Pattern 3. In the case of Pattern 2, the setting unit 511 calculates the inter-block distance i from the x-coordinates and y-coordinates of the vertices of the reference block 110 and the block 113 using, as an example, Equation (3).
[0045] TIFF2025098313000004.tif18127
[0046] The setting unit 511 determines whether the calculated inter-block distance i is greater than a threshold value. When the inter-block distance i is less than or equal to the threshold value, the setting unit 511 sets the block used to calculate the inter-block distance i as a near block with respect to the reference block. The setting unit 511 refers to the block table 525, acquires the IDs of the reference block and the near block used in the calculation, and stores them in the reference block ID 80 and the near block ID 81 of the near block table 526. When the positional relationship between the reference block and the near block is Pattern 1, the setting unit 511 stores 1 in the positional relationship classification 82 of the near block table 526, 2 in the case of Pattern 2, and 3 in the case of Pattern 3. When the positional relationship between the reference block and the near block is Pattern 3, the coordinates (x A , y A ) of the reference block and the coordinates (x B , y B ) of the near block may be stored in the line segment coordinates 84 of the near block table 526. When the setting unit 511 selects a reference block in ascending order of ID number, for example, to calculate the inter-block distance, only information about near blocks having an ID with a value greater than the ID of the reference block may be stored in the near block table 526. In this way, the setting unit 511 identifies a partial area through which the agent cannot pass from the area where no object exists based on the size of the area where no object exists and the size of the agent. In this way, the setting unit 511 identifies, as a partial area through which the agent cannot pass, an area within the area where no object exists and having a size less than or equal to a threshold value based on the size of the agent.
[0047] The setting unit 511 determines whether there is another near block between the reference block and the near block. For example, the setting unit 511 performs a collision determination process between the block - to - block region or line segment AB between the reference block and the near block and another near block. The method of the collision determination process may be different between the cases of pattern 1 and pattern 2 and the case of pattern 3.
[0048] First, an example of the collision determination process in the cases of pattern 1 and pattern 2 will be described. In the cases of pattern 1 and pattern 2, the setting unit 511 calculates the coordinate information of the block - to - block region and performs a collision determination between the block - to - block region and other near blocks other than the near block to be processed. First, the setting unit 511 calculates the coordinate information of the block - to - block region based on the coordinate information of the reference block and the near block stored in the block table 525. The setting unit 511 stores the calculated vertex coordinates of the block - to - block region in the block - to - block region coordinates 83 of the near - block table 526.
[0049] FIG. 12 is a diagram for explaining an example of the process of calculating the coordinate information of the block - to - block region in pattern 1. In the case of pattern 1, as an example, the setting unit 511 calculates the coordinate information x Cmin , x Cmax , y Cmin、 , y Cmax of the block - to - block region according to the following formulas (4) to (7).
[0050] x Cmin = MIN(x Amax , x Bmax ) ··· Formula (4) x Cmax = MAX(x Amin , x Bmin ) ··· Formula (5) y Cmin = MAX(y Amin , y Bmin ) ··· Formula (6) y Cmax = MIN(y Amax , y Bmax ) ··· Formula (7) The vertex coordinates of the block - to - block region are (xCmin , y Cmin ), (x Cmax , y Cmin ), (x Cmin , y Cmax ), (x Cmax , y Cmax ), then in the case of FIG. 12, the vertex coordinates of the inter-block region are (x Cmin , y Cmin ) = (x Amax , y Bmin ), (x Cmax , y Cmin ) = (x Bmin , y Bmin ), (x Cmin , y Cmax ) = (x Amax , y Bmax ), (x Cmax , y Cmax ) = (x Bmin , y Bmax ). Thus, the setting unit 511 calculates the coordinate information of the inter-block region, which is the region where the y-axis coordinates of the reference block and the near block overlap, according to formulas (4) to (7). In the case of Pattern 2, as an example, the setting unit 511 calculates the coordinate information x Cmin , x Cmax , y Cmin , y Cmax of the inter-block region, which is the region where the x-axis coordinates overlap, according to the following formulas (8) to (11).
[0051] x Cmin = MAX(x Amin , x Bmin ) ···· Formula (8) x Cmax = MIN(x Amax , x Bmax ) ···· Formula (9) y Cmin = MIN(y Amax , y Bmax ) ··· Formula (10) y Cmax = MAX(y Amin , y Bmin ) ··· Formula (11) The setting unit 511 checks for the presence or absence of a collision between the inter-block area and other near blocks other than the near block used when calculating the inter-block area. FIG. 13 is a diagram for explaining an example of the collision determination process in Pattern 1 and Pattern 2. Let the vertex coordinates of other near blocks be (x Dmin , y Dmin ), (x Dmax , y Dmin ), (x Dmin , y Dmax ), (x Dmax , y Dmax ). D is a subscript indicating that it is the coordinate of other near blocks. The setting unit 511 refers to the block table 525 to obtain the coordinate information of the near block and the coordinate information of other near blocks, and when it corresponds to any of the formulas (12) to (15), it determines that the inter-block area does not collide with other near blocks. In other words, the setting unit 511 determines that the inter-block area collides with other near blocks when it does not correspond to all of the formulas (12) to (15).
[0052] y Dmax < y Cmin ··· Formula (12) x Dmax < x Cmin ··· Formula (13) y Dmin > y Cmax ··· Formula (14) x Dmin > x Cmax ··· Formula (15) When the setting unit 511 determines that the inter-block area collides with other near blocks, it sets the collision flag 85 in the near block table 526 to 1.
[0053] Next, referring to FIG. 14, an example of the collision determination process in Pattern 3 will be described. FIG. 14 is a diagram for explaining the collision determination process in Pattern 3. As shown in FIG. 14, if the vertex of the reference block used for calculating the inter-block distance between the reference block 160 and the near block 161 is vertex A, and the vertex of the near block used for calculating the inter-block distance is vertex B, the line segment connecting vertex A and vertex B is represented by line segment AB. The collision determination process in Pattern 3 determines the collision between line segment AB and each side constituting the outer periphery of other near blocks. If any side is in collision, it is determined that line segment AB and the other near block are in collision. Specifically, if the vertices of the other near block that constitute the side to be determined for collision with line segment AB are D1 and D2, the side to be determined for collision with line segment AB is represented by line segment D1D2. The setting unit 511 acquires the coordinate information of vertex A and vertex B from the line segment coordinates 84 of the near block table 526, and the coordinate information of vertex D1 and vertex D2 from the block table 525. The setting unit 511 determines whether line segment AB collides with each side of the other near block 162 represented by line segment D1D2. As an example, the setting unit 511 may determine the presence or absence of collision between line segment AB and line segment D1D2 by calculating the outer product considering line segment AB and line segment D1D2 as vectors. Specifically, the setting unit 511 determines whether the product of the value of the outer product of vector AB and vector AD1 and the value of the outer product of vector AB and vector AD2 is less than 0 (Equation (16)).
[0054] TIFF2025098313000005.tif17136
[0055] The setting unit 511 determines whether the product of the value of the outer product of vector D1D2 and vector D1A and the value of the outer product of vector D1D2 and vector D1B is less than 0 (Equation (17)).
[0056] TIFF2025098313000006.tif15148
[0057] When the value of Expression (16) is less than 0 and the value of Expression (17) is less than 0 (Expression (18)), the setting unit 511 determines that the line segment AB and the line segment D1D2 are in collision.
[0058] TIFF2025098313000007.tif26149
[0059] The setting unit 511 determines the presence or absence of collision by Expressions (16) to (18) for all sides constituting the outer periphery of the other near block 162. When the setting unit 511 determines that the line segment AB and any side of the other near block 162 are in collision, it determines that the line segment AB and the other near block 162 are in collision, and sets the collision flag 85 in the near block table 526 to 1.
[0060] In order for the setting unit 511 to identify all near blocks at a distance equal to or less than the threshold value from the reference block, there may be other near blocks between the reference block and the near block. Therefore, the setting unit 511 identifies a near block having no other near block between it and the reference block by the collision determination process, and sets a dummy block between the reference block and the identified near block, thereby preventing collision between the other near block and the dummy block. When blocks can be set overlapping each other in the two-dimensional map data, the setting unit 511 may set dummy blocks between all the reference blocks and the near blocks without performing the collision determination process.
[0061] The setting unit 511 sets a dummy block between a reference block and a near block whose collision flag is 0. The method of setting the dummy block is different between Patterns 1 and 2 and Pattern 3. In the case of Patterns 1 and 2, the setting unit 511 sets the dummy block so as to block the area between the blocks. In other words, in the case of Patterns 1 and 2, the vertex coordinates of the area between the blocks become the vertex coordinates of the dummy block. The setting unit 511 acquires the inter-block area coordinates 83 from the near block table 526, and sets the rectangle represented by the inter-block area coordinates 83 as the dummy block.
[0062] In the case of Pattern 3, the setting unit 511 sets dummy blocks along the line segment that closes the area along the line segment connecting the vertex of the reference block and the vertex of the near block at the shortest distance. With reference to FIGS. 15A and 15B, an example of the process of setting dummy blocks in Pattern 3 will be described. In FIGS. 15A and 15B, the dummy blocks are blocks drawn with dotted lines. The dummy blocks set in the case of Pattern 3 may be blocks in the shape of a square with a side length equal to the voxel size. First, the setting unit 511 calculates the slope of the line segment connecting the vertex of the reference block and the vertex of the near block. As an example, the setting unit 511 obtains the coordinate information (x Amax , y Amax ) of the vertex A of the reference block and the coordinate information (x Bmin , y Bmin ) of the vertex B of the near block from the line segment coordinates 84 of the near block table 526, and calculates the slope S of the line segment AB from Equation (19).
[0063] S = (y Bmin - y Amax ) / (x Bmin - x Amax ) ··· Equation (19) FIG. 15A shows an example when the slope S is 1 or less. When the slope S is 1 or less, the setting unit 511 determines the setting position of the dummy block in the x-axis direction (hereinafter, may be described as "position determination"), and generates dummy blocks along the line segment AB. FIG. 15B shows an example when the slope S is greater than 1. When the slope S is greater than 1, the setting unit 511 performs position determination of the dummy block in the y-axis direction, and sets the dummy blocks generated along the line segment AB.
[0064] With reference to FIG. 15A, an example of the process of performing position determination of the dummy block in the x-axis direction and setting dummy blocks along the line segment AB will be described. As an example, the vertex coordinates of the dummy block are the minimum value x Emin and the maximum value x Emax , the minimum value y Emin and the maximum value y Emaxis represented by the combination of. E is a subscript indicating the vertex coordinates of the dummy block. As shown in FIG. 15A, the coordinate x of the reference block Amax is smaller than the coordinate x of the near block Bmin , a dummy block is installed in the x-axis + (plus) direction from vertex A to vertex B. The coordinate x of the reference block Amin is larger than the coordinate x of the near block Bmax , a dummy block may be installed in the x-axis - (minus) direction from vertex A to vertex B. In FIG. 15A, assuming the side length of the dummy block is m, the vertex coordinates of the dummy block 171 when the dummy block 171 is set in the +x-axis direction from the coordinates (x Amax , y Amax ) of vertex A are (x Emin , y Emin ) = (x Amax , y Amax ), (x Emax , y Emin ) = (x Amax + m, y Amax ), (x Emin , y Emax ) = (x Amax , y Amax + m), (x Emax , y Emax ) = (x Amax + m, y Amax + m). The setting unit 511 determines that when the y coordinate of the line segment AB at the coordinate x Emax is less than or equal to y Emin + m, a dummy block 171 with vertices (x Emin , y Emin ) = (x Amax , y Amax ), (x Emax , y Emin ) = (x Amax + m, y Amax ), (x Emin , y Emax ) = (x Amax , y Amax + m), (x Emax , y Emax ) = (x Amax + m, y Amax + m) is set. The setting unit 511 determines the vertex coordinates (x of the dummy block 171Emax , y Emin Similarly, when a dummy block is set in the +x-axis direction from (), the coordinates are calculated, and the x-coordinate Emax of the line segment AB at is y Emin + m or less, it is determined that a dummy block is set at that position. The setting unit 511 determines that the x-coordinate Emax of the line segment AB at is y Emin + m or more, it is determined that a dummy block is not set at that position, and the coordinates of the dummy block 172 moved +m in the y-axis direction are calculated. Then, the setting unit 511 determines that the x Emax coordinate of the dummy block 172 is y Emin + m or less, the dummy block 172 is set. In this way, the setting unit 511 determines whether to set a dummy block based on the y-coordinate of the line segment AB at the x-coordinate Emax and repeats the setting of the dummy block until the x Emax coordinate of the dummy block becomes equal to or greater than the x Bmin coordinate of the near block. In this embodiment, the case where the value of the y Amax coordinate of the reference block is smaller than the value of the y Bmin coordinate of the near block is described. When the value of the y Amin coordinate of the reference block is greater than the value of the y Bmax coordinate of the near block, the setting unit 511 may perform position determination based on the coordinate information of the dummy block moved -m in the y-axis direction.
[0065] With reference to FIG. 15B, an example of the process of performing position determination of a dummy block in the y-axis direction and setting a dummy block along the line segment AB will be described. As shown in FIG. 15B, when the slope S is greater than 1 and the value of the y Amax coordinate of the reference block is smaller than the value of the y Bmin coordinate of the near block, position determination of the dummy block is performed in the +y-axis direction from vertex A to vertex B, and the dummy block is set. When the value of the y Amin coordinate of the reference block is greater than the value of the y BmaxIf it is greater than the value of, the position determination of the dummy block may be performed in the y-axis direction from vertex A to vertex B, and the dummy block may be installed. In FIG. 15B, if the length of the side of the dummy block is m, the values of the respective coordinates when the dummy block is set in the +y-axis direction from the coordinates (x Amax , y Amax ) are (x Emin , y Emin ) = (x Amax , y Amax ), (x Emax , y Emin ) = (x Amax + m, y Amax ), (x Emin , y Emax ) = (x Amax , y Amax + m), (x Emax , y Emax ) = (x Amax + m, y Amax + m) as represented. The setting unit 511 is such that when the x-coordinate of the line segment AB at the coordinate y Emax is less than or equal to x Emin + m, the setting unit 511 sets (x Emin , y Emin ) = (x Amax , y Amax ), (x Emax , y Emin ) = (x Amax + m, y Amax ), (x Emin , y Emax ) = (x Amax , y Amax + m), (x Emax , y Emax ) = (x Amax + m, y Amax + m) as the vertices to determine that the dummy block 173 is set. The setting unit 511 calculates the coordinates when the dummy block is set in the y-axis direction in the same manner from the vertex (x Emin , y Emax ) of the dummy block 173, and performs the position determination. The setting unit 511 is such that the x-coordinate of the line segment AB at the coordinate y Emax is x EminWhen it is greater than +m, it is determined not to set a dummy block at that position, and the coordinates of the dummy block 174 moved by +m in the x-axis direction are calculated. The setting unit 511 is the y coordinate of the dummy block 174 Emax where the x coordinate of the line segment AB is x Emin When it is less than or equal to +m, it is determined to set the dummy block 174. In this way, the setting unit 511 determines whether to set a dummy block based on the x coordinate of the line segment AB at the coordinate y Emax and repeats setting the dummy block until the coordinate y Emax of the dummy block becomes equal to or greater than the coordinate y Bmin of the near block. In this embodiment, the case where the value of the x coordinate of the reference block Amax is smaller than the value of the x coordinate of the near block Bmin has been described for position determination. However, when the value of the x coordinate of the reference block Amin is greater than the value of the x coordinate of the near block Bmax , the setting unit 511 may perform position determination based on the coordinate information of the dummy block moved by -m in the x-axis direction.
[0066] In this embodiment, the combination of voxels in the three-dimensional map data is represented by a block that is a rectangle with a side length n times the voxel size (n is an arbitrary number) in the two-dimensional map data. However, it may also be represented by a combination of square blocks with a side length equal to the voxel size. Also, in this embodiment, the setting unit 511 sets a block of the same rectangle as the inter-block area to close the inter-block area. However, by setting dummy blocks along the sides that form the outer perimeter of the inter-block area and do not overlap with the reference block or the near block, the inter-block area may be excluded from the candidates for the agent's movement path. Specifically, in the case of FIG. 12, the setting unit 511 sets the line segment connecting the vertex (x Cmin , y Cmin ) and the vertex (x Cmax , y Cmin ), or the line segment connecting the vertex (x Cmin , y Cmax ) and the vertex (x Cmax , y CmaxA dummy block may be set on any one or both of the line segments connecting ( ) and ( ). In this way, the setting unit 511 sets a dummy block in a partial area where the agent cannot pass, and generates the set 2D map data 523 in which the partial area where the agent cannot pass is changed to an area where an object exists.
[0067] The simulation unit 512 executes a fire evacuation simulation using the set 2D map data 523 and the setting parameters 524, and outputs the MAS result 527. The simulation unit 512 may execute MAS other than the fire evacuation simulation. For example, it is an earthquake evacuation simulation, a traffic flow simulation during a tsunami evacuation, etc. When MAS can be executed using 3D map data, the simulation unit 512 may execute the simulation using 3D map data in which voxels are set in a partial area where the agent cannot pass.
[0068] [Flow of processing] FIG. 16 is a flowchart showing the overall flow of the processing according to the embodiment. While referring to FIG. 16, the overall flow of the processing according to the embodiment of the information processing apparatus 10 will be described.
[0069] First, the setting unit 511 acquires the 3D map data 521 (S100). The 3D map data 521 may be acquired from the storage unit 52, or may be acquired from an external device other than the information processing apparatus 10 via the communication unit 50. The setting unit 511 converts the 3D map data 521 acquired in step S100 into 2D map data 522 (S101).
[0070] The setting unit 511 identifies a partial area where the agent cannot pass included in the 2D map data 522, and generates the set 2D map data 523 in which a dummy block is set in the identified partial area. Details of the flow of the process in step S200 will be described later.
[0071] The simulation unit 512 executes the MAS using the configured 2D map data 523 and the configuration parameters 524 generated in step S200 (S102). When the simulation ends, the simulation unit 512 outputs the MAS result 527 and stores it in the storage unit 52. The simulation unit 512 may transmit the MAS result 527 to an external device other than the information processing device 10 via the communication unit 50. The information processing device 10 executes a simulation using the 2D map data with dummy blocks set in such a flow.
[0072] FIG. 17 is a flowchart for explaining the processing flow of step S200 for generating the configured 2D map data 523. With reference to FIG. 17, the processing flow of step S200 will be described.
[0073] The setting unit 511 selects one arbitrary block from among the blocks included in the 2D map data 522 and determines a reference block (S201). The reference block may be selected in ascending order of ID number. The setting unit 511 calculates the inter-block distance between the reference block selected in step S201 and the blocks other than the selected reference block, and extracts near blocks (S300). The setting unit 511 designates as near blocks the blocks whose inter-block distance from the reference block is equal to or less than the threshold value, and stores information regarding the near blocks in the near block table 526. Details of the processing flow of step S300 will be described later.
[0074] The setting unit 511 selects one arbitrary near block from among the near blocks extracted in step S300 (S202). The near blocks may be selected in ascending order of ID number. The setting unit 511 determines whether the inter-block area between the reference block and the near block or the line segment connecting the vertices of the reference block and the near block collides with other near blocks (S400). Details of the processing flow of step S400 will be described later.
[0075] The setting unit 511 determines whether the collision flag is 0 (S203). If the collision flag is 0 (S203 Yes), the process proceeds to step S204. If the collision flag is not 0 (S203 No), the process proceeds to step S205.
[0076] The setting unit 511 sets a dummy block between the reference block and the near block, and proceeds to step S205 (S204).
[0077] The setting unit 511 refers to the near block table 526 and determines whether there is an unprocessed near block (S205). If there is an unprocessed near block (S205 Yes), the process returns to step S202. If there is no unprocessed near block (S205 No), the process proceeds to step S206.
[0078] The setting unit 511 refers to the block table 525 and determines whether all blocks have been selected as the reference block (S206). If all blocks have been selected as the reference block (S206 Yes), the process of step S200 ends. If there is a block that has not been selected as the reference block (S206 No), the process returns to step S201.
[0079] FIG. 18 is a flowchart for explaining the process flow of step S300 for extracting near blocks. The process flow of step S300 will be described with reference to FIG. 18.
[0080] The setting unit 511 calculates the inter-block distance i between the reference block and the blocks other than the reference block (S301). The coordinates used for calculating the inter-block distance i may be determined based on the magnitude relationship of each coordinate from the coordinate information of the reference block and the blocks other than the reference block.
[0081] The setting unit 511 determines whether the inter-block distance i calculated in step S301 is greater than 0 (S302). If the setting unit 511 determines that the inter-block distance i is greater than 0 (S302Yes), it proceeds to step S303. If the setting unit 511 determines that the inter-block distance i is 0 or less (S302No), it ends the process of step S300.
[0082] The setting unit 511 determines whether the inter-block distance i calculated in step S301 is greater than a threshold value (S303). If the inter-block distance i calculated in step S301 is greater than the threshold value (S303Yes), the setting unit 511 ends the process of step S300. The threshold value may be set based on the size of the agent. If the inter-block distance i calculated in step S301 is less than or equal to the threshold value (S303No), the setting unit 511 proceeds to step S304.
[0083] The setting unit 511 stores information about the near block whose inter-block distance i with respect to the reference block is less than or equal to the threshold value in the near block table 526 (S304). The information stored about the near block includes the reference block ID 80, the near block ID 81, and the positional relationship classification 82. When the positional relationship classification is 3, the line segment coordinates 84 may be stored based on the coordinates of the vertices of the reference block and the near block used for calculating the inter-block distance i.
[0084] FIG. 19 is a flowchart for explaining the process flow of step S400, which is a collision determination process. The process flow of step S400 will be described with reference to FIG. 19.
[0085] The setting unit 511 refers to the near block table 526 and selects one near block other than the near block selected in step S202 (S401). The other near blocks may be selected in ascending order of the ID number.
[0086] The setting unit 511 determines whether there is a collision between the inter-block area or a line segment connecting the vertex of the reference block and the near block and another near block (S402). When referring to the near block table 526 and the position relationship flag is 1 or 2, the setting unit 511 determines whether there is a collision between the inter-block area and another near block. When referring to the near block table 526 and the setting flag is 3, the setting unit 511 determines whether there is a collision between the line segment connecting the vertex of the reference block and the near block and another near block. When the setting unit 511 determines that the inter-block area or the line segment connecting the vertex of the reference block and the near block collides with another near block, it sets 1 in the collision flag 85 of the near block table 526.
[0087] The setting unit 511 refers to the near block table 526 and determines whether the collision flag 85 is 1 (S403). When the collision flag 85 is 1 (S403 Yes), the setting unit 511 ends the process of step S400. When the collision flag 85 is 0 (S403 No), the setting unit 511 proceeds to step S404. The setting unit 511 refers to the near block table 526 and determines whether there is another unprocessed near block (S404). When the setting unit 511 determines that there is another unprocessed near block (S404 Yes), it returns to step S401. When the setting unit 511 determines that there is no other unprocessed near block (S404 No), it ends the process of step 400.
[0088] [Effect] The information processing apparatus 10 executes a simulation using two-dimensional map data in which a partial area through which an agent cannot pass is excluded from candidates for the movement route of the agent. Thereby, the information processing apparatus 10 can exclude the partial area from candidates for the movement routes of all agents. Further, since the information processing apparatus 10 executes the simulation in a state where a partial area through which an agent cannot pass is excluded from candidates for route selection, the processing load is also reduced in the simulation. In this way, the information processing apparatus 10 can efficiently execute the simulation.
[0089] [Hardware] FIG. 20 is a diagram for explaining a hardware configuration example of the information processing apparatus according to the embodiment. With reference to FIG. 20, an example of the hardware configuration of the information processing apparatus 10 will be described. As shown in FIG. 20, the information processing apparatus 10 includes, as an example, a CPU 201, a RAM 202, an input / output interface 203, a communication interface 204, and an HDD 205 as components, and these components are connected via a bus 206.
[0090] The CPU 201 is a processor that operates a process for executing each function of the control unit 51. Specifically, the CPU 201 reads a program that executes the same functions as the setting unit 511 and the simulation unit 512 from the HDD 205 or the like and expands it in the RAM 202 or the like, and executes a process for executing the functions of the setting unit 511 and the simulation unit 512. The CPU 201 may acquire the above program and data used when executing the above program from a medium reading device, or may acquire it via the communication interface 204. The CPU 201 may have one or a plurality of processor cores. The information processing apparatus 10 may include a processor other than the CPU, or may include a plurality of types of processors.
[0091] The RAM 202 operates as the main memory device of the information processing apparatus 10, and stores a program read from an auxiliary storage device such as the HDD 205 and data used for executing the program. The information processing apparatus 10 may include a memory other than the RAM, or may include a plurality of memories.
[0092] The input / output interface 203 is an interface for inputting a signal to the information processing apparatus 10 or outputting a signal from the information processing apparatus 10. As an example, the input / output interface 203 receives a signal from an input device such as a keyboard or a mouse connected to the information processing apparatus 10, or transmits a signal such as an image to an output device such as a display connected to the information processing apparatus 10. A plurality of input devices and output devices may be connected to the information processing apparatus 10 via the input / output interface 203.
[0093] The communication interface 204 is an interface for connecting the information processing apparatus 10 to a network. As an example, the standard of the communication interface 204 may be a communication standard for a wired LAN such as Ethernet, a communication standard for a wireless LAN such as WiFi, or a wireless standard for mobile communication such as Local 5G.
[0094] The HDD 205 operates as an auxiliary storage device for storing a program for executing the Operating System (OS) of the information processing apparatus 10 and functions indicated by the control unit 51 and data used in the program. The information processing apparatus 10 may include an auxiliary storage device other than the HDD, such as a Solid State Drive (SSD), or may include a plurality of auxiliary storage devices.
[0095] Although the embodiments of the present invention have been described so far, the embodiments of the present invention are not limited to those described so far. The present invention may be implemented in various different forms other than the above-described embodiments.
[0096] The calculation formulas, processing procedures, processing methods, names of each part, various data, parameters, etc. shown in the embodiments and drawings are for illustrative purposes only, and may be arbitrarily changed unless otherwise specified.
[0097] The functional configurations and hardware configurations shown in the embodiments and drawings are for illustrative purposes only, and the configurations and arrangements do not necessarily have to be as shown in the drawings, and may be arbitrarily changed unless otherwise specified. For example, the components of the functional configuration and hardware configuration may be distributed or integrated in any unit such as a function.
[0098] The information processing program according to the embodiment is not limited to being executed by the information processing apparatus 10. For example, the information processing program according to the embodiment may be executed across a plurality of devices.
[0099] In addition, the information processing program according to the embodiment may be distributed via a network such as the Internet. Further, the information processing program according to the embodiment may be recorded on a computer-readable recording medium and sold. Examples of the computer-readable recording medium include Compact Disc Read only memory (CD-ROM), Digital Versatile Disc (DVD), Universal Serial Bus memory (USB memory), Floppy Disk, and Magneto-Optical Disk (MO). The information processing program according to the embodiment may be read from the computer-readable recording medium by a computer and executed by the computer.
Explanation of Signs
[0100] 10 Information processing apparatus 50 Communication unit 51 Control unit 52 Storage unit 61 ID 80 Reference block ID 81 Near block ID 82 Position relationship classification 83 Inter-block area coordinates 84 Line segment coordinates 85 Collision flag 511 Setting unit 512 Simulation unit 521 3D map data 522 2D map data 523 Set 2D map data 524 Setting parameters 525 Block table 526 Near block table 527 MAS result
Claims
1. Obtain first map data including an area where an object exists and an area where the object does not exist, Based on the size of the area where the object does not exist and the size of the moving object, identify a partial area through which the moving object cannot pass from the area where the object does not exist, Generate second map data in which the partial area is changed to an area where the object exists, Execute a simulation regarding the flow of passage of a plurality of the moving objects using the second map data An information processing program characterized by causing a computer to execute the process.
2. The identifying process is a process of identifying, as the partial area, an area in the area where the object does not exist and having a size equal to or less than a threshold value based on the size of the moving object, The process of changing the partial area to an area where the object exists is a process of setting the object in the partial area The information processing program according to claim 1, characterized in that.
3. The object is an object represented by a rectangular block, The area where the object exists includes a first block and a second block, The identifying process is a process of identifying, as the partial area, an area between the first block and the second block in the area where the object does not exist when the distance between the first block and the second block is equal to or less than the threshold value, The process of changing the partial area to an area where the object exists is a process of setting the block in the partial area The information processing program according to claim 2, characterized in that.
4. The process of changing the partial area to an area where the object exists is a process of setting the block in the partial area when there is no third block between the first block and the second block The information processing program according to claim 3, characterized in that.
5. The simulation is a simulation based on fluid analysis The information processing program according to claim 1, characterized in that.
6. The simulation is a fire evacuation simulation The information processing program according to claim 1 or 5, characterized in that.
7. The moving object is a person The information processing program according to claim 1, characterized in that.
8. Obtain first map data including an area where an object does not exist and an area where the object exists, Based on the size of the area where the object does not exist and the size of the moving body, identify a partial area through which the moving body cannot pass from the area where the object does not exist, Generate second map data in which the partial area is changed to the area where the object exists, Execute a simulation regarding the flow of passage of a plurality of the moving bodies using the second map data including the partial area An information processing method, characterized in that a computer executes the processing.
9. Obtain first map data including an area where the object does not exist and an area where the object exists, Based on the size of the area where the object does not exist and the size of the moving body, identify a partial area through which the moving body cannot pass from the area where the object does not exist, Generate second map data in which the partial area is changed to the area where the object exists, Execute a simulation regarding the flow of passage of a plurality of the moving bodies using the second map data including the partial area An information processing apparatus, characterized by having a control unit.
Citation Information
Patent Citations
Nesting state release device
JP2019142681A
Route display device
JP2019179015A
Controller
JP2019179529A