Information processing device, information processing method, and information processing program
By generating a simplified acyclic directed graph that focuses on execution priority, the information processing apparatus reduces calculation complexity, addressing the inefficiencies in existing vehicle operation planning techniques.
Patent Information
- Application Number
- PCT/JP2024/036347
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-12
- Filing Date
- 2024-10-10
- Publication Date
- 2025-06-19
AI Technical Summary
Existing techniques for formulating operation plans for vehicles using directed graphs do not effectively manage the increasing complexity and number of variables and constraint conditions, leading to increased calculation amounts.
An information processing apparatus and method that generate a second acyclic directed graph by removing nodes and edges not related to the execution priority of elements from a first acyclic directed graph, thereby reducing the complexity and calculation required to solve optimization problems.
This approach significantly reduces the amount of calculation needed to obtain a solution to optimization problems using directed graphs, improving efficiency and scalability.
Smart Images

Figure JP2024036347_19062025_PF_FP_ABST
Abstract
Description
Information processing device, information processing method, and information processing program
[0001] The present disclosure relates to an information processing device, an information processing method, and an information processing program.
[0002] Japanese Patent Application Laid-Open No. 2022-145506 discloses a technology for formulating a vehicle operation plan by treating the formulation of the vehicle operation plan as an optimization problem and finding a solution to the optimization problem using a directed graph.
[0003] When a solution to an optimization problem is obtained using a directed graph, the more variables and constraints that define the optimization problem, the greater the number of nodes in the directed graph and the more complex the connections between the nodes, which can result in an increase in the amount of calculations.The technology described in JP 2022-145506 A is for creating a replanning plan when there is a change in the vehicle operation plan, and does not take into account the amount of calculations required when a solution to an optimization problem is obtained using a directed graph.
[0004] The present disclosure has been made in consideration of the above circumstances, and aims to provide an information processing device, an information processing method, and an information processing program that can reduce the amount of calculation required when finding a solution to an optimization problem using a directed graph.
[0005] A first aspect of the information processing device is an information processing device having at least one processor, in which the processor acquires a first acyclic directed graph in which element information regarding elements that constitute the optimization problem to be solved corresponds to nodes and the order relationships between elements correspond to edges, extracts from the first acyclic directed graph a group of nodes to be implemented, which are nodes that satisfy conditions corresponding to the implementation priorities of the elements, and generates a second acyclic directed graph in which node groups other than the group of nodes to be implemented are removed from the first acyclic directed graph based on the extracted group of nodes to be implemented.
[0006] In a second aspect of the information processing device, in the information processing device of the first aspect, the processor generates a second acyclic directed graph in which nodes and edges not related to the group of nodes to be performed are removed from the first acyclic directed graph by filtering the first acyclic directed graph with the group of nodes to be performed.
[0007] In a third aspect of the information processing device, in the information processing device of the first or second aspect, the elements include work to be performed by workers, and the group of nodes to be performed includes nodes that satisfy the condition that the initial inventory of work objects is less than a threshold value.
[0008] An information processing device of a fourth aspect is an information processing device of any one of the first to third aspects, in which the elements include work to be performed by a worker, and the group of nodes to be performed includes nodes that meet the condition that the work is required to be performed at a specific time.
[0009] An information processing device of a fifth aspect is an information processing device of any one of the first to fourth aspects, in which the elements include work to be performed by a worker, and the group of nodes to be performed includes nodes that meet the condition that the work is required to be performed within a specified period of time after the completion of the previous work.
[0010] An information processing device of a sixth aspect is an information processing device of any one of the first to fifth aspects, in which the elements include work to be performed by workers, and the group of nodes to be performed includes nodes that meet the condition that the work is for a work object for which a delivery date has been set.
[0011] An information processing device of a seventh aspect is an information processing device of any one of the first to sixth aspects, in which the processor controls to display the difference between the first acyclic directed graph and the second acyclic directed graph in a distinguishable display manner.
[0012] An information processing device of an eighth aspect is an information processing device of any one of the first to seventh aspects, wherein, when a group of nodes constituting the first acyclic directed graph matches a group of nodes to be implemented, the processor controls to display information indicating that there are no nodes that can be removed from the first acyclic directed graph and the first acyclic directed graph.
[0013] An information processing device of a ninth aspect is an information processing device of any one of the first to eighth aspects, in which the processor extracts, from the generated second acyclic directed graph, a subgraph that can be aggregated without adding variables that define element information and constraints that constitute the optimization problem, and that includes at least one edge and two or more nodes connected by the edge, and generates a third acyclic directed graph in which the subgraph in the second acyclic directed graph is replaced with a node that aggregates the subgraph.
[0014] In a tenth aspect of the information processing method, a processor provided in an information processing device executes a process of acquiring a first acyclic directed graph in which element information regarding elements that constitute an optimization problem to be solved corresponds to nodes and order relationships between elements correspond to edges, extracting from the first acyclic directed graph a group of nodes to be implemented, which are nodes that satisfy conditions corresponding to the implementation priorities of the elements, and generating a second acyclic directed graph in which node groups other than the group of nodes to be implemented have been removed from the first acyclic directed graph based on the extracted group of nodes to be implemented.
[0015] An eleventh aspect of the information processing program causes a processor provided in an information processing device to execute the following process: acquire a first acyclic directed graph in which element information regarding elements that constitute an optimization problem to be solved corresponds to nodes and order relationships between elements correspond to edges; extract a group of nodes to be implemented from the first acyclic directed graph, which are nodes that satisfy conditions corresponding to the implementation priorities of the elements; and generate a second acyclic directed graph in which node groups other than the group of nodes to be implemented have been removed from the first acyclic directed graph based on the extracted group of nodes to be implemented.
[0016] According to the present disclosure, it is possible to reduce the amount of calculation required to find a solution to an optimization problem using a directed graph.
[0017] 1 is a block diagram showing an example of a hardware configuration of an information processing device according to each embodiment. FIG. 1 is a diagram showing an example of product type data. FIG. 2 is a diagram showing an example of worker work shift data. FIG. 3 is a diagram showing an example of data related to worker skills. FIG. 4 is a diagram showing an example of a correspondence relationship between a set of product types and operations and a task. FIG. 5 is a diagram showing an example of a first acyclic directed graph according to the first embodiment. FIG. 6 is a block diagram showing an example of a functional configuration of an information processing device according to the first embodiment. FIG. 7 is a diagram showing an example of an aggregatable subgraph. FIG. 8 is a diagram showing an example of data related to worker skills after update. FIG. 9 is a diagram showing an example of a second acyclic directed graph according to the first embodiment. FIG. 10 is a diagram showing an example of an acyclic directed graph display screen according to the first embodiment. FIG. 11 is a diagram showing an example of an acyclic directed graph display screen according to a modified example. FIG. 12 is a flowchart showing an example of node aggregation processing. FIG. 13 is a diagram showing an example of delivery date data. FIG. 14 is a diagram showing an example of feasible operation data. FIG. 15 is a diagram showing an example of production capacity data. FIG. 16 is a diagram showing an example of fixed plan data. FIG. 17 is a diagram showing an example of initial inventory data. FIG. 18 is a diagram showing an example of time-based constraint data. FIG. 19 is a diagram showing an example of a first acyclic directed graph according to the second embodiment. FIG. 19 is a block diagram showing an example of a functional configuration of an information processing device according to the second embodiment. FIG. 19 is a diagram showing an example of a second acyclic directed graph according to the second embodiment. 10 is a diagram showing an example of a screen displaying a directed acyclic graph according to a modified example.
[0018] Hereinafter, examples of embodiments for carrying out the technology of the present disclosure will be described in detail with reference to the drawings.
[0019] First Embodiment In the first embodiment, a job shop scheduling problem is applied as the optimization problem to be solved. The hardware configuration of an information processing device 10 according to the first embodiment will be described with reference to FIG. 1 . Examples of the information processing device 10 include a computer such as a personal computer or a server computer. As shown in FIG. 1 , the information processing device 10 includes a central processing unit (CPU) 20, a memory 21 serving as a temporary storage area, and a non-volatile storage unit 22. The information processing device 10 also includes a display 23 such as a liquid crystal display, an input device 24 such as a keyboard and a mouse, and a network interface (I / F) 25 connected to a network. The CPU 20, the memory 21, the storage unit 22, the display 23, the input device 24, and the network interface 25 are connected to a bus 27. The CPU 20 is an example of a processor according to the disclosed technology.
[0020] The storage unit 22 is realized by a hard disk drive (HDD), a solid state drive (SSD), a flash memory, or the like. The storage unit 22 serving as a storage medium stores an information processing program 30. The CPU 20 reads the information processing program 30 from the storage unit 22, loads it into the memory 21, and executes the loaded information processing program 30.
[0021] The storage unit 22 also stores problem data 32, which is an optimization problem to be solved by the information processing device 10, in a data format that can be processed by the information processing device 10. The problem data 32 includes element information, which is information about the elements that make up the optimization problem to be solved, and constraints, etc. The elements that make up the optimization problem to be solved include work to be performed by a worker on a work object.
[0022] The problem data 32 according to the first embodiment includes the product type data shown in Fig. 2. As shown in Fig. 2, the product type data associates, for each product type that is the target of work by a worker, the time when work can be started for that product type and the delivery time for that product type.
[0023] The question data 32 also includes work shift data of the workers shown in Fig. 3. As shown in Fig. 3, the work shift data of the workers associates the work start time and the work end time of each worker with each worker.
[0024] The problem data 32 also includes data on the skills of the workers, as shown in Fig. 4. As shown in Fig. 4, the data on the skills of the workers associates, for each pair of product type and task, information indicating whether or not each worker can perform the task for the product type. In the example of Fig. 4, a circle indicates that the worker can perform the task for the product type, and a blank indicates that the worker cannot perform the task for the product type. In the example of Fig. 4, it is indicated that for product type 1, worker A can perform tasks 1, 3, and 5, but cannot perform tasks 2, 4, and 6.
[0025] 5, a combination of a product type and an operation is treated as a task in the problem data 32. In the example of FIG. 5, a combination of product type 1 and operation 1 is treated as task 1.
[0026] The problem data 32 also includes work order data, which includes, for each product type, the work required to manufacture the product type, work order constraints, the time required for the work, and the waiting time between work operations.
[0027] In the first embodiment, the above data is expressed by the following variables.
[0028]
[0029] The problem data 32 also includes constraints expressed by the following equations (1) to (8). Equation (1) represents the condition that each task is started after the available work start time. Equation (2) represents the condition that each task is completed by the due date. Equation (3) represents the condition that the start time of each worker is adhered to. Equation (4) represents the condition that the end time of each worker is adhered to. Equation (5) represents the condition that each task is assigned to one worker. Equation (6) represents the condition that each worker can only be assigned one task at a time. Equation (7) represents the condition that the order and waiting time constraints between tasks are adhered to. Equation (8) represents the condition that each task is only assigned to workers who are able to perform that task.
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038] The problem data 32 also includes an objective function. The objective function is to complete the last task as early as possible, and is expressed by the following equations (9) and (10).
[0039]
[0040]
[0041] The problem data 32 also includes decision variables, which indicate the start time of task i and whether task i is to be assigned to worker w.
[0042] The storage unit 22 also stores an acyclic directed graph 34. The acyclic directed graph 34 is generated based on the problem data 32 and stored in advance in the storage unit 22. FIG. 6 shows an example of the acyclic directed graph 34. As shown in FIG. 6, the acyclic directed graph 34 includes a plurality of nodes N and edges E connecting the nodes N. When distinguishing between the nodes N, numbers are added to the end of the symbols. When distinguishing between the edges E, numbers are added to the end of the symbols.
[0043] Task information relating to a task, which is an example of an element constituting the optimization problem to be solved, corresponds to node N. In the first embodiment, the product type to be worked on, the task to be performed by the worker, and the required time for the task correspond to node N. In the example of FIG. 6 , the product type is written in the upper row within node N, the task is written in the middle row, and the required time is written in parentheses in the lower row. For example, node N1 indicates that the required time for task 1 for product type 1 is 10 minutes.
[0044] Furthermore, the order relationship between the tasks corresponding to two nodes N corresponds to an edge E. In the first embodiment, the minimum and maximum waiting times between the tasks are also defined by the edge E. In the example of FIG. 6, the direction of the arrow indicates the order relationship between the tasks. In the example of FIG. 6, the left side of the two numbers in parentheses near the arrow indicates the minimum waiting time, and the right side indicates the maximum waiting time. Note that only either the minimum waiting time or the maximum waiting time may be defined by the edge E.
[0045] For example, it indicates that task 3 for type 1 of node N2 can be performed when both task 1 for type 1 of node N1 and task 2 for type 1 of node N5 are completed. Furthermore, it indicates that task 3 for type 1 of node N2 will be performed without waiting time after task 1 for type 1 of node N1 is completed, and will be performed within 0 to 20 minutes from the time task 2 for type 1 of node N5 is completed.
[0046] Next, the functional configuration of the information processing device 10 according to the first embodiment will be described with reference to Fig. 7. As shown in Fig. 7, the information processing device 10 includes an acquisition unit 40, an extraction unit 42, a generation unit 44, and a display control unit 46. The CPU 20 executes the information processing program 30 to function as the acquisition unit 40, the extraction unit 42, the generation unit 44, and the display control unit 46.
[0047] The acquisition unit 40 acquires the acyclic directed graph 34 from the storage unit 22. The extraction unit 42 extracts, from the acyclic directed graph 34 acquired by the acquisition unit 40, a subgraph S (see FIG. 8 ) that can be aggregated without adding the variables that define the work information and the constraints that configure the optimization problem, and that includes at least one edge E and two or more nodes N connected by the edge E.
[0048] Specifically, the extraction unit 42 extracts an aggregatable subgraph S from the acyclic directed graph 34 based on at least one of the work that needs to be performed, the order of the work, the time required for the work, the worker's skills indicating whether the work can be performed, and the worker's work shift.
[0049] More specifically, the extraction unit 42 extracts a subgraph S from the directed acyclic graph 34 that satisfies all of the following conditions (1) to (3): (1) The subgraph S includes a group of nodes N corresponding to a group of tasks that must be performed consecutively. Note that a group of tasks that must be performed consecutively here refers to a group of tasks that are in a consecutive order and have zero minimum and maximum waiting times between tasks. (2) There are workers who can perform all of the tasks corresponding to the group of nodes N that make up the subgraph S, and there are no workers who can perform only some of the tasks. (3) If there are multiple workers who can perform all of the tasks corresponding to the group of nodes N that make up the subgraph S, the multiple workers each have the same work shift.
[0050] Fig. 8 shows an example of a subgraph S extracted from the acyclic directed graph 34 shown in Fig. 6. As shown in Fig. 8, in this example, the extraction unit 42 extracts a subgraph S consisting of three nodes N1, N2, and N3 and two edges E1 and E2 connecting these three nodes N.
[0051] Nodes N1 and N2 correspond to operations performed in consecutive order, and the minimum and maximum waiting times defined by edge E1 are zero. Similarly, nodes N2 and N3 correspond to operations performed in consecutive order, and the minimum and maximum waiting times defined by edge E2 are zero. That is, in the example of Figure 8, subgraph S satisfies condition (1) above.
[0052] Furthermore, there are workers A, C, and D who can perform all of the tasks 1, 3, and 5 for product 1 corresponding to nodes N1, N2, and N3, but there is no worker who can perform only some of the tasks 1, 3, and 5 for product 1 (see FIG. 4). That is, in the example of FIG. 8, subgraph S satisfies the above condition (2).
[0053] Furthermore, there are multiple workers A, C, and D who can perform all of the tasks 1, 3, and 5 for product type 1 corresponding to nodes N1, N2, and N3, and workers A, C, and D work the same shift (see FIG. 3). That is, in the example of FIG. 8, subgraph S satisfies the above condition (3).
[0054] The extraction unit 42 may extract a subgraph S that satisfies one or two of the above conditions (1) to (3) from the acyclic directed graph 34. The extraction unit 42 may also update the problem data 32 when extracting the subgraph S. For example, the extraction unit 42 may update the data related to the worker skills shown in FIG. 4 as shown in FIG. 9. In this case, as shown in FIG. 9, three tasks 1, 3, and 5 for product type 1 are updated into one combined task.
[0055] The generation unit 44 generates an acyclic directed graph 36 by replacing the subgraph S extracted by the extraction unit 42 in the acyclic directed graph 34 with a node N that aggregates the subgraphs S. FIG. 10 shows an example of the acyclic directed graph 36. FIG. 10 shows an example in which the subgraph S shown in FIG. 8 is aggregated into one node N7. The required time at node N7 is the sum of the required times at all nodes N that constitute the subgraph S. Furthermore, edge E3 connecting node N3 and node N4, which constitute the subgraph S, is replaced with edge E6 connecting node N7 and node N4. Furthermore, edge E4 connecting node N2 and node N5, which constitute the subgraph S, is replaced with edge E7 connecting node N7 and node N5. Furthermore, edge E5 connecting node N3 and node N6, which constitute the subgraph S, is replaced with edge E8 connecting node N7 and node N6.
[0056] The generation unit 44 updates the minimum waiting time and maximum waiting time for the edges E (edges E7 and E8 in the example of FIG. 10 ) that are oriented toward the node N that aggregates the subgraph S, as follows: That is, in this case, the generation unit 44 updates the minimum waiting time and maximum waiting time by subtracting the required time for the operation that is performed before the node N included in the subgraph S connected by the edge E before the update from the minimum waiting time and maximum waiting time defined by the edge E before the update.
[0057] For example, edge E5 in FIG. 8 has a minimum waiting time of zero and a maximum waiting time of 30 minutes. The times required for the operations of nodes N1 and N2, which are performed before node N3 and are included in subgraph S connected by edge E5, are 10 minutes and 30 minutes, respectively. When these required times are subtracted from the minimum and maximum waiting times defined by edge E5, the minimum waiting time becomes −40 minutes and the maximum waiting time becomes −10 minutes. The minimum and maximum waiting times defined by updated edge E8 in the example of FIG. 10 are thus updated times.
[0058] The display control unit 46 controls the display of the acyclic directed graph 34 and the acyclic directed graph 36 in a display manner that allows the difference between them to be distinguished. For example, as shown in FIG. 11 , the display control unit 46 controls the display of the acyclic directed graph 34 and the acyclic directed graph 36 side by side on the display 23. FIG. 11 shows an example in which the display control unit 46 controls the display of an arrow pointing from the subgraph S to the node N7 and the character string "aggregated" in addition to the acyclic directed graph 34 and the acyclic directed graph 36. This makes it easier for the user to grasp the aggregated parts of the acyclic directed graph 34. Note that the display manner is not limited to the example shown in FIG. 11 as long as the difference between the acyclic directed graph 34 and the acyclic directed graph 36 can be distinguished.
[0059] If an aggregatable subgraph S cannot be extracted from the acyclic directed graph 34, the display control unit 46 may perform control to display information indicating that the acyclic directed graph 34 and the aggregatable subgraph S do not exist. For example, as shown in Fig. 12, the display control unit 46 may perform control to display a message indicating that the acyclic directed graph 34 and the aggregatable subgraph S do not exist on the display 23. A case in which an aggregatable subgraph S cannot be extracted from the acyclic directed graph 34 occurs, for example, when the acyclic directed graph 34 does not contain a subgraph S that satisfies all of the above conditions (1) to (3).
[0060] Next, the operation of the information processing device 10 according to the first embodiment will be described with reference to Fig. 13. The node aggregation process shown in Fig. 13 is executed by the CPU 20 executing the information processing program 30. The node aggregation process is executed, for example, when a command to start execution is input by the user.
[0061] 13 , the acquisition unit 40 acquires the acyclic directed graph 34 from the storage unit 22. In step S12, the generation unit 44 copies the acyclic directed graph 34 to create the acyclic directed graph 36, and initializes the set of update information to an empty set. In step S14, the extraction unit 42 extracts a subgraph S from the acyclic directed graph 34 acquired in step S10, as described above.
[0062] In step S16, the generation unit 44 assigns the set of tree structures acquired from the subgraph S extracted in step S14 to the set of tree structures to be used in the processing from step S18 onwards. In step S18, the generation unit 44 extracts one tree structure from the set of tree structures. In step S20, the generation unit 44 identifies a path in the tree structure extracted in step S18 that has the largest sum of required times, and calculates the sum of the required times of the identified paths as the total required time.
[0063] In step S22, the generation unit 44 replaces the group of nodes N included in the path identified in step S20 in the acyclic directed graph 36 with one node N whose required time is the calculated total required time. In step S24, the generation unit 44 reconnects edge E to the node N replaced in step S22. At this time, as described above, the generation unit 44 updates the minimum waiting time and the maximum waiting time of edge E.
[0064] In step S26, the generation unit 44 adds the group of nodes N and edge E before the replacement in step S24 and one node N after the replacement to the set of update information. In step S28, the generation unit 44 determines whether the set of tree structures is an empty set. If this determination is negative, the process returns to step S18, and if this determination is positive, the process proceeds to step S30.
[0065] In step S30, as described above, the display control unit 46 performs control to display the difference between the directed acyclic graph 34 and the directed acyclic graph 36 in a distinguishable display mode based on the set of update information. When the processing of step S30 ends, the node aggregation processing ends.
[0066] The CPU 20 executes a process for solving the optimization problem using the acyclic directed graph 36 generated as described above. Specifically, the CPU 20 performs a search process on the acyclic directed graph 36 using a known search algorithm such as breadth-first search to find a solution that minimizes the output of the objective function. This allows the optimal worker to be assigned to the task corresponding to each node N.
[0067] As described above, according to the first embodiment, it is possible to reduce the amount of calculation required when finding a solution to an optimization problem using a directed graph.
[0068] The technology disclosed in the disclosure may be applied to an optimization problem that can be expressed by a directed acyclic graph having a structure different from the directed acyclic graph 34 in the example shown in the first embodiment.
[0069] Second Embodiment A second embodiment of the disclosed technology will be described. The hardware configuration of the information processing device 10 according to the second embodiment is the same as that of the first embodiment, and therefore will not be described again. In the second embodiment, an example of a planning process will be described in which the optimization problem to be solved is a process in which the number of units of each product type to be produced in a unit period is determined based on the total number of product types to be manufactured within a set period (hereinafter referred to as the "set period"), along with changes in inventory levels. Inventory allocation is performed so that only the amount of inventory consumed in the previous operation is produced for operations other than the first operation. Furthermore, inventory is set in advance as the initial inventory for the first day, or the amount produced in the operation is reflected in the inventory for the next day. In the second embodiment, a case in which one day is used as the unit period will be described as an example, but the unit period is not limited to one day. For example, the unit period may be half a day or one week.
[0070] As shown in FIG. 1 , in the second embodiment, the storage unit 22 stores problem data 32A, which is an optimization problem to be solved by the information processing device 10, in a data format processable by the information processing device 10. The problem data 32A includes element information, which is information about the elements that make up the optimization problem to be solved, and constraints, etc. In the second embodiment, the elements that make up the optimization problem to be solved include work to be performed by a worker on a work object. The work to be performed by a worker on a work object means work to produce a variety that is the work object.
[0071] The problem data 32A includes the type of work object, a plurality of tasks that need to be performed, and the order in which the tasks are to be performed.
[0072] The problem data 32A also includes the delivery date data shown in FIG. 14. As shown in FIG. 14, the delivery date data associates, for each product type, the number of units to be produced within a set period, with the first and last days of the period representing the delivery date range, for each product type, which is the work target of the worker. In the second embodiment, a unique name is assigned to each product type in each task to represent the fact that each product type changes form during each task. Dates within the set period are expressed as relative values, with the first day of the set period being "1." Furthermore, product types other than the product type targeted by the last task of a day are also assumed to have demand, such as semi-finished products, and individual delivery dates can be set for them. In the example of FIG. 14, 15 units of product type B-3-1 must be produced between the third and sixth days of the set period. Furthermore, in this case, the 15 units of product type B-3-1 cannot be consumed by subsequent tasks. In other words, the product types included in the delivery date data are work targets for which a delivery date is set.
[0073] The problem data 32A also includes the executable task data shown in Fig. 15. As shown in Fig. 15, the executable task data associates information indicating whether each task can be performed with each piece of equipment. In the example of Fig. 15, a circle indicates that the equipment can perform the task, and a blank indicates that the equipment cannot perform the task. In the example of Fig. 15, equipment 1 can perform task 1, but cannot perform tasks other than task 1.
[0074] The problem data 32A also includes the production capacity data shown in Fig. 16. As shown in Fig. 16, the production capacity data associates, for each piece of equipment, an upper limit value for the number of items of each type that the equipment can produce in one day within a set period. The values for the first and sixth days for equipment 2 in Fig. 16 are smaller than those for the other days because, for example, production capacity has decreased due to maintenance, prototyping, or the like.
[0075] The problem data 32A also includes the fixed plan data shown in FIG. 17. As shown in FIG. 17, the fixed plan data associates the date indicating the work execution date for a product type for which the date on which the work is performed is fixed, regardless of delivery dates, with the number of units of the product type to be produced on that date. In the example of FIG. 17, five units of product type A-4-1 need to be produced on the fifth day within the set period. In other words, the product types included in the fixed plan data are product types that are produced by work performed at specific times.
[0076] The question data 32A also includes the initial inventory data shown in FIG. 18. As shown in FIG. 18, the initial inventory data associates the initial inventory quantity with each product type. Also, as shown in FIG. 18, a "1" is stored in the date column to indicate that the inventory is for the first day within the set period. In the example of FIG. 18, the initial inventory for product type A-1 is 25 units.
[0077] The problem data 32A also includes time constraint data shown in FIG. 19. The time constraint data associates, with each product pair, an upper limit on the number of days until the subsequent operation is performed after the completion of the previous operation. The example in FIG. 19 indicates that the operation to produce product A-5-1 must be performed within two days of the completion of the operation to produce product A-3-1. In other words, of the product pairings included in the problem data 32A, the product produced in the subsequent operation is the product produced in the operation that is required to be performed within a predetermined period after the completion of the previous operation.
[0078] In the second embodiment, an acyclic directed graph 34A is stored in the storage unit 22. The acyclic directed graph 34A is generated based on the question data 32A and stored in advance in the storage unit 22. FIG. 20 shows an example of the acyclic directed graph 34A. As shown in FIG. 20, the acyclic directed graph 34A includes a plurality of nodes N and edges E connecting the nodes. When distinguishing between the nodes N, numbers are added to the end of the symbols. When distinguishing between the edges E, numbers are added to the end of the symbols.
[0079] Task information relating to tasks as an example of elements constituting the optimization problem to be solved corresponds to a node N. In the second embodiment, the product type to be worked on and the tasks performed by workers correspond to the nodes N. Furthermore, the order relationship between tasks corresponding to two nodes N corresponds to an edge E. The example in FIG. 20 indicates that task 2 at node N12 can be performed after task 1 at node N11 is completed. The acyclic directed graph 34A is an example of a first acyclic directed graph related to the disclosed technology.
[0080] Next, the functional configuration of the information processing device 10 according to the second embodiment will be described with reference to Fig. 21. As shown in Fig. 21, the information processing device 10 includes an acquisition unit 50, an extraction unit 52, a generation unit 54, and a display control unit 56. The CPU 20 executes the information processing program 30 to function as the acquisition unit 50, the extraction unit 52, the generation unit 54, and the display control unit 56.
[0081] The acquisition unit 50 acquires the acyclic directed graph 34A from the storage unit 22. The extraction unit 52 extracts a group of nodes to be performed, which are nodes N that satisfy a condition corresponding to the execution priority of an operation, from the acyclic directed graph 34A acquired by the acquisition unit 50. Specifically, the extraction unit 52 extracts a group of nodes to be performed, which are nodes N that correspond to operations that satisfy a condition defined as a condition for an operation having a relatively high execution priority, from among the operations corresponding to the nodes N in the acyclic directed graph 34A.
[0082] More specifically, the extraction unit 52 extracts from the acyclic directed graph 34A a group of nodes to be performed, which are nodes N that satisfy at least one of the following four conditions (A) to (D): (A) The initial inventory of the work object is less than a threshold value. (B) The work is required to be performed at a specific time. (C) The work is required to be performed within a specified period after the completion of the previous work. Note that the previous work here includes not only the work immediately preceding it in the order of execution, but also work that precedes the previous work. (D) The work is for a work object with a set delivery date.
[0083] The extraction unit 52 determines whether or not the condition (A) is satisfied based on the initial inventory data (see FIG. 18) described above. The extraction unit 52 also determines whether or not the condition (B) is satisfied based on the fixed plan data (see FIG. 17) described above. The extraction unit 52 also determines whether or not the condition (C) is satisfied based on the time-based constraint data (see FIG. 19) described above. The extraction unit 52 also determines whether or not the condition (D) is satisfied based on the delivery date data (see FIG. 14) described above.
[0084] Furthermore, the extraction unit 52 may add, to the implementation-required node group, a node group that is a prerequisite of node N that satisfies the above conditions (A) to (D). The node group that is a prerequisite of node N is a node group that is reached when tracing edge E from node N in the opposite direction to the direction of the arrow.
[0085] The generation unit 54 generates an acyclic directed graph 36A in which node groups other than the performance-required node group are removed from the acyclic directed graph 34A based on the performance-required node group extracted by the extraction unit 52. Specifically, the generation unit 54 generates an acyclic directed graph 36A in which nodes N and edges E not related to the performance-required node group are removed from the acyclic directed graph 34A by filtering the acyclic directed graph 34A with the performance-required node group. Here, a node N not related to the performance-required node group refers to a node N that is not a prerequisite for the performance-required node group. For example, a node group that cannot be reached when tracing an edge E from a node N of the performance-required node group in the opposite direction to the arrow. Furthermore, an edge E not related to the performance-required node group refers to an edge E connected to a node N not related to the performance-required node group.
[0086] Fig. 22 shows an example of an acyclic directed graph 36A. The example of Fig. 22 shows an acyclic directed graph 36A in which nodes N and edges E that are not related to the execution-requiring node group are removed from the acyclic directed graph 34A shown in Fig. 20. The acyclic directed graph 36A is an example of a second acyclic directed graph according to the disclosed technology.
[0087] For example, if node N15 is extracted as a group of nodes requiring implementation based on the aforementioned time-dependent constraint data, even if nodes N11 to N14 are not extracted as a group of nodes requiring implementation, nodes N11 to N14 are not removed because they are prerequisite nodes for node N15.
[0088] The display control unit 56 controls the display of the acyclic directed graph 34A and the acyclic directed graph 36A in a display manner that allows the difference between them to be distinguished. For example, as shown in FIG. 23 , the display control unit 56 controls the display of the node N included in the action-required node group and the edge E pointing toward the node N included in the action-required node group in the acyclic directed graph 34A on the display 23 in a predetermined first color, such as black. Furthermore, the display control unit 56 controls the display of the node N and edge E removed from the acyclic directed graph 34A when the acyclic directed graph 36A was generated in a second color (gray in the example of FIG. 23 ) that is less noticeable than the first color. This makes it easier for the user to identify the removed portions of the acyclic directed graph 34A. Note that the display manner is not limited to the example shown in FIG. 23 as long as the difference between the acyclic directed graph 34A and the acyclic directed graph 36A can be distinguished.
[0089] When the group of nodes constituting the acyclic directed graph 34A matches the group of nodes to be implemented, the display control unit 56 may perform control to display information indicating that the acyclic directed graph 34A and the node N that can be removed from the acyclic directed graph 34A do not exist. For example, as shown in Fig. 24 , the display control unit 56 performs control to display on the display 23 a message indicating that the acyclic directed graph 34A and the node N that can be removed do not exist.
[0090] Next, the operation of the information processing device 10 according to the second embodiment will be described with reference to Fig. 25. The node removal process shown in Fig. 25 is executed by the CPU 20 executing the information processing program 30. The node removal process is executed, for example, when a command to start execution is input by the user.
[0091] 25, the acquisition unit 50 acquires the acyclic directed graph 34A from the storage unit 22. In step S42, the extraction unit 52 extracts, as described above, a group of nodes to be performed, which are nodes N that satisfy the conditions corresponding to the execution priority of the work, from the acyclic directed graph 34A acquired in step S40.
[0092] In step S44, the generation unit 54 generates an acyclic directed graph 36A by removing node groups other than the action-requiring node group from the acyclic directed graph 34A based on the action-requiring node group extracted in step S42, as described above. In step S46, the display control unit 56 controls the display of the acyclic directed graph 34A and the acyclic directed graph 36A in a display mode that allows the difference between them to be distinguished, as described above. When the processing of step S46 ends, the node removal processing ends.
[0093] The CPU 20 executes a process for solving the optimization problem using the acyclic directed graph 36A generated as described above. Specifically, the CPU 20 performs a search process on the acyclic directed graph 36A using a known search algorithm such as breadth-first search, thereby finding a solution that minimizes the output of the objective function.
[0094] As described above, according to the second embodiment, it is possible to reduce the amount of calculation required when finding a solution to an optimization problem using a directed graph.
[0095] The technology disclosed in the disclosure document may be applied to an optimization problem that can be expressed by a directed acyclic graph with a structure different from that of the directed acyclic graph 34A shown in the example of the second embodiment. Furthermore, in the second embodiment, the yield may not be 1. Furthermore, in the second embodiment, the unit of quantity may change before and after the operation, for example, cutting one item of a variety in a previous operation and then cutting 10 items in a subsequent operation. Furthermore, in the second embodiment, the operation sequence may differ for each variety.
[0096] The first and second embodiments may also be combined. For example, the node removal process of the second embodiment may be performed on the acyclic directed graph 36 obtained by the node aggregation process of the first embodiment. This results in a third acyclic directed graph in which nodes other than the execution-required node group are removed from the acyclic directed graph 36. That is, the CPU 20 may extract, from the acyclic directed graph 36, a group of execution-required nodes that satisfy a condition corresponding to the execution priority of the work. In this case, the CPU 20 may further generate a third acyclic directed graph in which nodes other than the execution-required node group are removed from the acyclic directed graph 36 based on the extracted group of execution-required nodes.
[0097] Furthermore, for example, the node aggregation process of the first embodiment may be performed on the acyclic directed graph 36A obtained by the node removal process of the second embodiment. This results in a third acyclic directed graph in which aggregatable subgraphs in the acyclic directed graph 36A are replaced with nodes resulting from aggregating the subgraphs. That is, the CPU 20 may extract, from the acyclic directed graph 36A, subgraphs that can be aggregated without adding variables defining the work information and constraints constituting the optimization problem, and that include at least one edge and two or more nodes connected by the edge. In this case, the CPU 20 may further generate a third acyclic directed graph in which subgraphs in the acyclic directed graph 36A are replaced with nodes resulting from aggregating the subgraphs.
[0098] Furthermore, in each of the above-described embodiments, the following various processors can be used as the hardware structure of a processing unit that executes various processes, such as each functional unit of the information processing device 10. As described above, the various processors include a CPU, which is a general-purpose processor that executes software (programs) and functions as various processing units, as well as dedicated electrical circuits that are processors having a circuit configuration specifically designed to execute specific processes, such as a programmable logic device (PLD) that is a processor whose circuit configuration can be changed after manufacture, such as an FPGA (Field Programmable Gate Array), and an ASIC (Application Specific Integrated Circuit).
[0099] A single processing unit may be configured with one of these various processors, or may be configured with a combination of two or more processors of the same or different types (for example, a combination of multiple FPGAs, or a combination of a CPU and an FPGA). Also, multiple processing units may be configured with a single processor.
[0100] Examples of configuring multiple processing units with a single processor include: first, a form in which one processor is configured with a combination of one or more CPUs and software, as typified by computers such as client and server computers, and this processor functions as multiple processing units; second, a form in which a processor is used to realize the functions of an entire system including multiple processing units with a single IC (Integrated Circuit) chip, as typified by systems on chips (SoCs); in this way, various processing units are configured using one or more of the above-mentioned various processors as a hardware structure.
[0101] Furthermore, more specifically, the hardware structure of these various processors can be an electric circuit that combines circuit elements such as semiconductor elements.
[0102] In addition, in each of the above embodiments, the information processing program 30 is described as being pre-stored (installed) in the storage unit 22, but this is not limiting. The information processing program 30 may be provided in a form recorded on a recording medium such as a CD-ROM (Compact Disc Read Only Memory), a DVD-ROM (Digital Versatile Disc Read Only Memory), or a USB (Universal Serial Bus) memory. The information processing program 30 may also be downloaded from an external device via a network.
[0103] The disclosure of Japanese Patent Application No. 2023-209554, filed on December 12, 2023, is incorporated herein by reference in its entirety. In addition, all documents, patent applications, and technical standards described herein are incorporated herein by reference to the same extent as if each individual document, patent application, and technical standard was specifically and individually indicated to be incorporated by reference.
Claims
1. An information processing device having at least one processor, wherein the processor obtains a first acyclic directed graph in which element information regarding elements that constitute an optimization problem to be solved corresponds to nodes and order relationships between elements correspond to edges, extracts a group of nodes to be performed from the first acyclic directed graph, the nodes satisfying conditions corresponding to the execution priority of elements, and generates a second acyclic directed graph in which nodes other than the group of nodes to be performed are removed from the first acyclic directed graph based on the extracted group of nodes to be performed.
2. The information processing device according to claim 1, wherein the processor generates the second acyclic directed graph in which the nodes and edges not related to the group of nodes to be performed are removed from the first acyclic directed graph by filtering the first acyclic directed graph with the group of nodes to be performed.
3. The information processing device according to claim 1 or 2, wherein the elements include work to be performed by workers, and the group of nodes to be performed includes a node that satisfies a condition that an initial inventory of work objects is less than a threshold value.
4. An information processing device as described in claim 1 or claim 2, wherein the elements include work to be performed by a worker, and the group of nodes requiring execution includes nodes that satisfy the condition that the work is required to be performed at a specific time.
5. An information processing device as described in claim 1 or claim 2, wherein the elements include work to be performed by a worker, and the group of nodes requiring execution includes nodes that satisfy the condition that the work is required to be performed within a specified period of time after completion of a previous task.
6. An information processing device as described in claim 1 or claim 2, wherein the elements include work to be performed by workers, and the group of nodes to be performed includes nodes that satisfy the condition that the work is for a work object for which a delivery date is set.
7. An information processing device according to claim 1 or 2, wherein the processor controls to display the difference between the first acyclic directed graph and the second acyclic directed graph in a distinguishable display mode.
8. An information processing device as described in claim 1 or claim 2, wherein the processor performs control to display information indicating that there are no nodes that can be removed from the first acyclic directed graph and the first acyclic directed graph when the group of nodes constituting the first acyclic directed graph and the group of nodes to be implemented match.
9. The information processing device according to claim 1 or 2, wherein the processor extracts, from the generated second acyclic directed graph, a subgraph that can be aggregated without adding variables that define the element information and constraints that configure the optimization problem, and that includes at least one edge and two or more nodes connected by the edge, and generates a third acyclic directed graph in which the subgraph in the second acyclic directed graph is replaced with a node that aggregates the subgraph.
10. An information processing method executed by a processor equipped in an information processing device, which performs the following processes: obtaining a first acyclic directed graph in which element information regarding the elements that constitute the optimization problem to be solved corresponds to the nodes and the order relationships between elements correspond to the edges; extracting a group of nodes to be performed from the first acyclic directed graph, which are nodes that satisfy conditions corresponding to the implementation priority of the elements; and generating a second acyclic directed graph in which node groups other than the group of nodes to be performed are removed from the first acyclic directed graph based on the extracted group of nodes to be performed.
11. An information processing program for causing a processor provided in an information processing device to execute the following processes: obtaining a first acyclic directed graph in which element information regarding elements constituting the optimization problem to be solved corresponds to nodes and the order relationships between elements correspond to edges; extracting from the first acyclic directed graph a group of nodes to be performed which are nodes that satisfy conditions corresponding to the implementation priority of elements; and generating a second acyclic directed graph in which node groups other than the group of nodes to be performed are removed from the first acyclic directed graph based on the extracted group of nodes to be performed.
Citation Information
Patent Citations
Scientific workflow task management method and device
CN111882234A
Information management system, method, and program
JP2012027685A
Work management support method, work management support device and work management support program
JP2018142075A
Node-pair process scope definition and scope selection computation
US20150092596A1
Solution search device, solution search method, and solution search program
WO2014115232A1