Information processing device, information processing method, and information processing program
Patent Information
- Application Number
- JP2024534928
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Filing Date
- 2024-12-20
- Publication Date
- 2025-03-27
AI Technical Summary
Existing optimization problem-solving technologies face difficulties in presenting the reasons why a feasible solution cannot be obtained in a user-friendly format, making it hard for users to understand and address the constraints causing infeasibility.
An information processing device and method that selects an excluded element set from a provisional element set, formulates a mathematical model, determines its executability, and outputs the list of competing constraints in a user-friendly format, allowing users to understand and address the constraints causing infeasibility.
Enables users to easily identify and address the constraints preventing a feasible solution by presenting the reasons for infeasibility in a clear and understandable manner.
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] WO 2021 / 251001 A1 discloses a technology for selecting a provisional task group, which is a subset of a set of tasks to be calculated, from a set of tasks to be scheduled, and deriving an executable schedule, which is a proposed executable schedule for the selected provisional task group that satisfies constraints. This technology, if no executable schedule exists as a result of this process, replaces the set of tasks to be calculated with a provisional task group. If the set of tasks to be calculated contains one task, the set of tasks to be calculated is identified as a causal task that is causing the schedule to be unable to be calculated. Furthermore, this technology, if the set of tasks to be calculated contains two or more tasks, reselects the provisional task group and derives an executable schedule, and then performs a process to identify a causal constraint that is a constraint that causes the causal task to be unable to be executed.
[0003] When solving an optimization problem using a computer, the constraints for solving the optimization problem are in a format that the computer can understand (e.g., mathematical expressions). Therefore, when a feasible solution to an optimization problem cannot be obtained, even if the computer identifies the constraints that cause the feasible solution and presents the identified constraints to the user, it is difficult for the user to understand the reason why the feasible solution cannot be obtained.
[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 present the reasons why a feasible solution cannot be obtained in an optimization problem in a form that is easy for a user to understand.
[0005] A first aspect of the information processing device is an information processing device having at least one processor, in which the processor selects an excluded element set, which is a subset of a provisional element set, from a provisional element set, which is at least a part of the element set to be solved and which is composed of a plurality of elements, and determines whether a provisional mathematical model, which is a mathematical model in which the element set obtained by excluding the excluded element set from the provisional element set and constraints are formulated, is feasible.If it is determined that the provisional mathematical model is not feasible, the processor extracts a list of conflicting constraints from the provisional mathematical model, converts each of the constraints in the extracted list into a name of a constraint, and outputs the name of the constraint obtained by the conversion.
[0006] In a second aspect of the information processing device, in the information processing device of the first aspect, the processor executes a process of determining whether the provisional mathematical model is feasible multiple times while changing the set of excluded elements, and when it is determined that the provisional mathematical model is feasible, the processor further outputs the set of excluded elements and a feasible solution in a format set according to the optimization problem.
[0007] In a third aspect of the information processing device, in the information processing device of the second aspect, if the processor determines that a provisional mathematical model is executable at least once and determines that the provisional mathematical model is infeasible at least once, it extracts a list of conflicting constraints from the provisional mathematical model that has been determined to be infeasible.
[0008] In a fourth aspect of the information processing device, in the information processing device of the second or third aspect, the processor repeatedly executes the following processes until predetermined conditions are met: selecting an excluded element set from the provisional element set; determining whether the provisional mathematical model is executable; if it is determined that the provisional mathematical model is executable, adding 1 to the number of times that the provisional mathematical model has been determined to be executable; and if it is determined that the provisional mathematical model is not executable, setting the provisional element set to an element set obtained by excluding the excluded element set from the provisional element set used when formulating the provisional mathematical model.
[0009] In a fifth aspect of the information processing device, in the information processing device of the fourth aspect, the predetermined condition is that the number of times that the provisional theoretical model is consecutively determined to be executable is equal to or greater than a threshold value.
[0010] In a sixth aspect of the information processing method, a processor provided in the information processing device executes the following process: selecting an excluded element set, which is a subset of a provisional element set, from a provisional element set, which is at least a part of the element set to be solved and which is composed of a plurality of elements, and determining whether a provisional mathematical model, which is a mathematical model in which the element set obtained by excluding the excluded element set from the provisional element set and constraints are formulated, is feasible; and if it is determined that the provisional mathematical model is not feasible, extracting a list of conflicting constraints from the provisional mathematical model, converting each of the constraints in the extracted list into a name of a constraint, and outputting the name of the constraint obtained by the conversion.
[0011] The information processing program of the seventh aspect is configured to cause a processor provided in an information processing device to execute the following process: select an excluded element set, which is a subset of a provisional element set, from a provisional element set, which is at least a part of the element set to be solved and which is composed of a plurality of elements; determine whether a provisional mathematical model, which is a mathematical model in which the element set obtained by excluding the excluded element set from the provisional element set and constraints are formulated, is feasible; and if it is determined that the provisional mathematical model is not feasible, extract a list of conflicting constraints from the provisional mathematical model, convert each of the constraints in the extracted list into a name of a constraint, and output the name of the constraint obtained by the conversion.
[0012] According to the present disclosure, it is possible to present the reason why a feasible solution cannot be obtained in an optimization problem in a form that is easy for the user to understand.
[0013] 1 is a block diagram showing an example of a hardware configuration of an information processing device. FIG. 2 is a block diagram showing an example of a functional configuration of an information processing device. FIG. 3 is a flowchart showing an example of a cause presentation process. FIG. 4 is a diagram for explaining the transition of a provisional element set and an excluded element set when it is determined that execution is possible. FIG. 5 is a diagram for explaining the transition of a provisional element set and an excluded element set when it is determined that execution is impossible. FIG. 6 is a diagram showing an example of product type data. FIG. 7 is a diagram showing an example of worker data. FIG. 8 is a diagram showing an example of work sequence data. FIG. 9 is a diagram showing an example of data related to worker skills. FIG. 10 is a diagram showing an example of a correspondence relationship between a set of product types and work, and a task. FIG. 11 is a diagram for explaining whether constraints can be presented to a user according to the first embodiment. FIG. 12 is a diagram showing an example of a lookup table in which constraints and names of constraints are associated with each other according to the first embodiment. FIG. 13 is a diagram showing an example of a screen to be presented to a user according to the first embodiment. FIG. 14 is a diagram showing an optimization problem according to the second embodiment. FIG. 15 is a diagram showing an example of parcel data. FIG. 16 is a diagram showing an example of truck data. FIG. 17 is a diagram for explaining whether constraints can be presented to a user according to the second embodiment. FIG. 18 is a diagram showing an example of a lookup table in which constraints and names of constraints are associated with each other according to the second embodiment. FIG. 10 is a diagram for explaining an optimization problem according to a third embodiment. FIG. 11 is a diagram for explaining an example of transportation task data. FIG. 12 is a diagram for explaining an example of travel time data. FIG. 13 is a diagram for explaining whether constraint conditions according to the third embodiment can be presented to a user. FIG. 14 is a diagram for explaining whether constraint conditions according to the third embodiment can be presented to a user. FIG. 15 is a diagram for explaining whether constraint conditions according to the third embodiment can be presented to a user. FIG. 16 is a diagram for explaining whether constraint conditions according to the third embodiment can be presented to a user. FIG. 17 is a diagram for explaining whether constraint conditions according to the third embodiment can be presented to a user.
[0014] Hereinafter, examples of embodiments for carrying out the technology of the present disclosure will be described in detail with reference to the drawings.
[0015] First, referring to FIG. 1 , a hardware configuration of an information processing device 10 according to the present embodiment will be described. 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 CPU (Central Processing Unit) 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 I / F (Interface) 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 I / F 25 are connected to a bus 27. The CPU 20 is an example of a processor according to the disclosed technology.
[0016] 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.
[0017] 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 a solution-target element set, which is a set of elements that make up the optimization problem to be solved and is made up of a plurality of elements. The problem data 32 also includes constraints.
[0018] For example, if the optimization problem is a job shop scheduling problem, the elements constituting the solution-target element set refer to the worker, the work date and time, the type of product to be worked on, etc. Specific examples of the solution-target element set will be described in the examples below.
[0019] The information processing device 10 according to this embodiment has a function of presenting to the user the reason why a feasible solution cannot be obtained when a feasible solution cannot be obtained for the optimization problem to be solved. In the following, an example will be described in which the optimization problem represented by the problem data 32 is an optimization problem for which a feasible solution cannot be obtained.
[0020] Next, the functional configuration of the information processing device 10 according to this embodiment will be described with reference to Fig. 2. As shown in Fig. 2, the information processing device 10 includes a setting unit 40, a selection unit 42, an execution unit 44, an extraction unit 46, a conversion unit 48, and an output unit 50. When the CPU 20 executes the information processing program 30, the information processing device 10 functions as the setting unit 40, the selection unit 42, the execution unit 44, the extraction unit 46, the conversion unit 48, and the output unit 50.
[0021] The setting unit 40 first sets the solution-target element set included in the problem data 32 as the provisional element set. The setting unit 40 also adds 1 to a variable C, which counts the number of times the execution unit 44 (described later) determines that the provisional theoretical model is feasible. If the execution unit 44 (described later) determines that the provisional theoretical model (described later) is not feasible, the setting unit 40 sets the provisional element set to an element set obtained by excluding an excluded element set (described later) from the provisional element set used when formulating the provisional theoretical model. In other words, the provisional element set is either the solution-target element set or a part of the solution-target element set.
[0022] The selection unit 42 selects an excluded element set, which is a subset of the provisional element set, from the provisional element set. In this embodiment, the excluded element set is an element set whose elements, when excluded from the provisional element set, make the provisional theoretical model generated using the provisional element set executable. Furthermore, when the selection unit 42 repeatedly executes the process of selecting an excluded element set from the provisional element set, the excluded element set is set to a set different from the excluded element sets previously selected. In this embodiment, the selection unit 42 randomly selects an excluded element set from the provisional element set.
[0023] The execution unit 44 generates a provisional mathematical model, which is a mathematical model in which an element set, obtained by excluding the excluded element set selected by the selection unit 42 from the provisional element set, and constraints are formulated. During this generation, conditions related to the elements of the excluded element set are also excluded from the constraints. The execution unit 44 then determines whether the generated provisional mathematical model is feasible. Specifically, for example, the execution unit 44 determines whether the provisional mathematical model is feasible by using software called a solver for solving optimization problems to determine whether a feasible solution can be obtained from the provisional mathematical model. Well-known algorithms, such as branch and bound algorithms, local search algorithms, tabu search, simulated annealing, quantum annealing, genetic algorithms, and swarm intelligence (e.g., particle swarm optimization and ant colony optimization), are used to solve this optimization problem.
[0024] The setting unit 40 repeatedly executes a process of adding 1 to a variable C for counting the number of times the execution unit 44 has determined that the provisional theoretical model is executable, until a predetermined condition (hereinafter referred to as an "end condition") is satisfied. Furthermore, if the execution unit 44 has determined that the provisional theoretical model is not executable, the setting unit 40 repeatedly executes a process of setting, as a provisional element set, an element set obtained by excluding the excluded element set from the provisional element set used when formulating the provisional theoretical model, until the end condition is satisfied.
[0025] The selection unit 42 repeatedly executes the process of selecting an excluded element set from the provisional element set until a termination condition is met. The execution unit 44 repeatedly executes the process of generating a provisional mathematical model, which is a mathematical model in which an element set obtained by excluding the excluded element set selected by the selection unit 42 from the provisional element set and constraints are formulated, and determining whether the generated provisional mathematical model is executable, until a termination condition is met. As described above, when the selection unit 42 repeatedly executes the process of selecting an excluded element set from the provisional element set, the excluded element set is set to a set different from the excluded element set previously selected. In other words, the execution unit 44 executes the process of determining whether the provisional mathematical model is executable multiple times while changing the excluded element set.
[0026] The conditions for terminating the above-mentioned repetitive process include, for example, a condition that the number of times that the provisional theoretical model is consecutively determined to be executable is equal to or greater than a threshold value, or a condition that the number of times that the repetitive process is executed exceeds an upper limit value.
[0027] When the execution unit 44 determines that the provisional mathematical model is infeasible, the extraction unit 46 extracts a list of conflicting constraints (hereinafter referred to as "conflicting constraints") from the provisional mathematical model. In this embodiment, when the execution unit 44 determines that the provisional mathematical model is executable at least once and determines that the provisional mathematical model is infeasible at least once, the extraction unit 46 extracts a list of conflicting constraints from the provisional mathematical model that is determined to be infeasible. For example, a solver function is used to extract this list of conflicting constraints.
[0028] The conversion unit 48 converts each of the conflicting constraints in the list extracted by the extraction unit 46 into the name of a constraint condition. Specifically, the conversion unit 48 converts each of the conflicting constraints into the name of a constraint condition, for example, by using a lookup table in which the constraint conditions included in the problem data 32 are associated with the names of the constraint conditions.
[0029] The output unit 50 outputs the names of the constraints obtained by the conversion by the conversion unit 48 to the display 23. In this way, the output unit 50 controls the display of the names of the constraints on the display 23. Furthermore, the output unit 50 further outputs the set of excluded elements and the feasible solution when the execution unit 44 determines that the provisional theoretical model is feasible to the display 23 in a format set in accordance with the optimization problem. In this case, the output unit 50 controls the display of the set of excluded elements and the feasible solution on the display 23 in a format set in accordance with the optimization problem. The display format in this case is set in advance depending on, for example, the type of optimization problem.
[0030] Next, the operation of the information processing device 10 according to this embodiment will be described with reference to Fig. 3. The CPU 20 executes the information processing program 30, thereby executing the cause presentation process shown in Fig. 3. The cause presentation process shown in Fig. 3 is executed, for example, when a command to start execution is input by the user.
[0031] 3, the setting unit 40 sets the solution-target element set included in the problem data 32 as a provisional element set. In step S12, the setting unit 40 sets zero to a variable C for counting the number of times the execution unit 44 has determined that the provisional mathematical model is feasible. The setting unit 40 also sets False to a variable F1, which indicates whether the execution unit 44 has determined at least once that the provisional mathematical model is feasible. The setting unit 40 also sets False to a variable F2, which indicates whether the execution unit 44 has determined at least once that the provisional mathematical model is not feasible.
[0032] In step S14, the selection unit 42 selects, from the provisional element set, an excluded element set, which is a subset of the provisional element set, as described above. In step S16, the execution unit 44 generates, as described above, a provisional mathematical model, which is a mathematical model in which an element set (hereinafter referred to as a "difference element set") obtained by excluding the excluded element set selected in step S14 from the provisional element set and constraints are formulated. In step S18, the execution unit 44 performs optimization calculations on the provisional mathematical model generated in step S16 using software called a solver for solving optimization problems.
[0033] In step S20, the execution unit 44 determines whether the provisional mathematical model is executable by determining whether a feasible solution is obtained from the provisional mathematical model as a result of executing the optimization calculation in step S18. If this determination is affirmative, the process proceeds to step S22.
[0034] In step S22, the setting unit 40 adds 1 to the variable C. The setting unit 40 also sets the variable F1 to True. In step S24, the setting unit 40 saves the provisional mathematical model as an executable model separately from the provisional mathematical model. In step S26, the setting unit 40 saves the excluded element set as an element set for making the provisional mathematical model executable, separately from the excluded element set. When the processing of step S26 ends, the processing proceeds to step S34.
[0035] If the determination in step S20 is negative, the process proceeds to step S28. In step S28, the setting unit 40 sets the element set obtained by excluding the excluded element set from the provisional element set used in formulating the provisional theoretical model as the provisional element set. In step S30, the setting unit 40 sets the variable C to zero. The setting unit 40 also sets the variable F2 to True. In step S32, the setting unit 40 saves the provisional theoretical model as an infeasible model separately from the provisional theoretical model. When the process of step S32 ends, the process proceeds to step S34.
[0036] In step S34, the execution unit 44 determines whether the termination condition for the iterative processing from step S14 to step S32 has been satisfied. Specifically, the execution unit 44 determines whether the number of times it has been determined that the provisional theoretical model is consecutively executable is equal to or greater than a threshold by determining whether the value stored in variable C is equal to or greater than a threshold. The execution unit 44 also determines whether the number of times the iterative processing has been executed has exceeded an upper limit. If the determination in step S34 is negative, the processing returns to step S14; if the determination is positive, the processing proceeds to step S36.
[0037] 4, if it is determined that the provisional mathematical model generated based on the difference element set is executable, the provisional element set is not updated. In this case, in the next step S14, a different excluded element set is selected from the provisional element set, and it is determined whether the provisional mathematical model generated based on a new difference element set obtained by excluding the excluded element set from the provisional element set is executable.
[0038] 5, if it is determined that the provisional mathematical model generated based on the difference element set is not executable, the provisional element set is updated by setting the difference element set to the provisional element set in step S28. In this case, in the next step S14, an excluded element set is selected from the new provisional element set, and it is determined whether the provisional mathematical model generated based on the new difference element set obtained by excluding the excluded element set from the new provisional element set is executable.
[0039] In step S36, the extraction unit 46 determines whether the execution unit 44 has determined at least once that the provisional mathematical model is executable by determining whether the variable F1 is True. If this determination is affirmative, the process proceeds to step S38. In step S38, the extraction unit 46 determines whether the execution unit 44 has determined at least once that the provisional mathematical model is not executable by determining whether the variable F2 is True. If this determination is affirmative, the process proceeds to step S40.
[0040] In step S40, the extraction unit 46 extracts a list of conflicting constraints from the provisional mathematical model determined to be infeasible, as described above. This provisional mathematical model determined to be infeasible is the infeasible model saved in step S32. In step S42, the conversion unit 48 converts each of the conflicting constraints in the list extracted in step S40 into the name of a constraint condition, as described above.
[0041] In step S44, the output unit 50 outputs the names of the constraints obtained by the conversion in step S42 to the display 23, as described above. Furthermore, as described above, the output unit 50 outputs to the display 23 the set of excluded elements and the feasible solution when the execution unit 44 determines that the provisional mathematical model is feasible, in a format set according to the optimization problem. The set of excluded elements when the provisional mathematical model is determined to be feasible is the set of elements that make the provisional mathematical model saved in step S26 feasible. Furthermore, the feasible solution when the provisional mathematical model is determined to be feasible is the feasible solution obtained from the feasible model saved in step S24. When the processing of step S44 ends, the cause presentation processing ends.
[0042] On the other hand, if the determination in step S38 is negative, the process proceeds to step S46. In step S46, the output unit 50 outputs a message to the display 23 indicating that the optimization problem has not been determined to be infeasible even once, and that the cause of the inability to obtain a feasible solution to the optimization problem could not be identified. When the process of step S46 ends, the cause presentation process ends. Also, if the determination in step S36 is negative, the process proceeds to step S48. In step S48, the output unit 50 outputs a message to the display 23 indicating that a feasible solution has not been obtained even once. When the process of step S48 ends, the cause presentation process ends.
[0043] Next, three examples, a first example, a second example, and a third example, will be described. <First Example> In the first example, an example will be described in which the disclosed technology is applied to a job shop scheduling problem. Specifically, in the first example, the optimization problem to be solved is to formulate a plan to complete work as quickly as possible by efficiently allocating work related to the manufacture of a variety of products to be manufactured within a period of time to multiple workers.
[0044] The problem data 32 according to the first embodiment includes the product type data shown in Fig. 6. As shown in Fig. 6, the product type data associates, for each product type to be manufactured, the time when work can be started for that product type and the delivery time for that product type.
[0045] The question data 32 according to the first embodiment also includes worker data shown in Fig. 7. As shown in Fig. 7, the worker data associates each worker with the start time and end time of the worker's work.
[0046] The problem data 32 according to the first embodiment also includes the work order data shown in FIG. 8 . As shown in FIG. 8 , the work order data includes, for each product type, the tasks required to manufacture that product type, work order constraints, the required time for each task, and the waiting time required after each task. In the example of FIG. 8 , arrows represent work order constraints, the time written near the arrows represents the waiting time after each task, and the time written to the right of each task represents the required time for each task. Also, in the example of FIG. 8 , arrows without a waiting time represent zero waiting time. In the example of FIG. 8 , for product 1, a waiting time of at least 30 minutes is required after task 1 is completed before task 2 is performed, and task 3 is performed after task 2. Also, in the example of FIG. 8 , for product 1, the required time for task 1 is 8 minutes, the required time for task 2 is 5 minutes, and the required time for task 3 is 3 minutes.
[0047] Furthermore, the problem data 32 according to the first embodiment includes data on the skills of the workers shown in FIG. 9 . As shown in FIG. 9 , the data on the skills of the workers includes, for each pair of a product type and a task, information indicating whether or not each worker can perform the task for that product type. In the example of FIG. 9 , a circle indicates that the worker can perform the task for that product type, and a blank indicates that the worker cannot perform the task for that product type. In the example of FIG. 9 , worker A can perform task 1 for product type 1 but cannot perform tasks 2 and 3, and can perform tasks 1 and 4 for product type 2 but cannot perform tasks 2 and 3.
[0048] In the first embodiment, a combination of a product type and an operation is treated as a task, as shown in Fig. 10. In the example of Fig. 10, a combination of product type 1 and operation 1 is treated as task 1.
[0049] In the first embodiment, the above data is expressed by the following symbols.
[0050]
[0051] The problem data 32 according to the first embodiment includes decision variables, constraints, and an objective function to be formulated as a mixed integer linear programming problem. The decision variables are s i and a i,w is defined as:
[0052]
[0053] The constraints are expressed by the following equations (1) to (8). Equation (1) expresses the condition that each task must start after the available work start time. Equation (2) expresses the condition that each task must be completed by the due date. Equation (3) expresses the condition that the start time of each worker must be adhered to. Equation (4) expresses the condition that the end time of each worker must be adhered to. Equation (5) expresses the condition that each task must be assigned to one worker. Equation (6) expresses the condition that each worker can only be assigned one task at a time. Equation (7) expresses the condition that the order constraints between tasks must be adhered to. Equation (8) expresses the condition that each task must only be assigned to workers who are able to perform that task.
[0054]
[0055]
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062] The objective function is to complete the last task as early as possible, and is expressed by the following equations (9) and (10).
[0063]
[0064]
[0065] In the first example, the selector 42 selects tasks as the excluded elements when selecting the set of excluded elements from the set of provisional elements. This is because, if the provisional theoretical model is determined to be infeasible, it is unlikely that a feasible solution will be obtained even if the number of workers is reduced, and if the number of tasks is reduced, a feasible solution will be obtained when the number of tasks reaches a certain number.
[0066] That is, in the first embodiment, if it is determined that the provisional mathematical model is executable, the tasks selected as the set of excluded elements are changed, the provisional mathematical model is generated again, and it is determined whether it is executable. Also, in the first embodiment, if it is determined that the provisional mathematical model is not executable, the number of tasks is reduced, the provisional mathematical model is generated again, and it is determined whether it is executable.
[0067] As shown in FIG. 11 , in the first embodiment, whether or not each constraint is presented to the user is set. Constraints marked with a circle in the "presentable" column in FIG. 11 are presented to the user. In the example of FIG. 11 , the constraints represented by equations (2), (4), and (8) are presented to the user. The reason for presenting these constraints to the user is that, as a countermeasure for when a feasible solution cannot be obtained, it is believed that there are ways to relax these constraints. For example, for the constraint represented by equation (2), a possible countermeasure for when a feasible solution cannot be obtained is to extend the delivery date of the product. For example, for the constraint represented by equation (4), a possible countermeasure for when a feasible solution cannot be obtained is to ask workers to work overtime. For example, for the constraint represented by equation (8), a possible countermeasure for when a feasible solution cannot be obtained is to increase and train workers who can perform the target task.
[0068] If a constraint condition to be presented to the user is included in the list of conflicting constraints extracted by the extraction unit 46, the conversion unit 48 converts the conflicting constraint into a name of a constraint condition. In the first embodiment, the conversion unit 48 converts the conflicting constraint into a name of a constraint condition using the lookup table shown in FIG.
[0069] 12, in this lookup table, each conflicting constraint is associated with a name of a constraint condition that is easy for the user to understand. For example, if the condition that task 1 must be completed by the due date in the constraint condition of equation (2) is not satisfied and becomes a conflicting constraint, the name of the conflicting constraint is converted to the constraint condition name "Constraint to complete task 1 by the due date."
[0070] FIG. 13 shows an example of a screen presented to the user that is displayed on the display 23 as a result of output by the output unit 50. As shown in FIG. 13 , the screen presented to the user displays the name A1 of the constraint obtained by the conversion by the conversion unit 48. The screen presented to the user also displays, in character string format, a set of excluded elements A2 that would be obtained when the execution unit 44 determines that the provisional mathematical model is feasible, i.e., a set of elements that make the provisional mathematical model feasible. The screen presented to the user also displays, in Gantt chart format, a feasible solution A3 that would be obtained when the execution unit 44 determines that the provisional mathematical model is feasible, i.e., a feasible solution obtained from the feasible model. The screen presented to the user also displays, in a visualized format, a set of excluded elements A4 that would be obtained when the execution unit 44 determines that the provisional mathematical model is feasible, which would become infeasible if added to the Gantt chart. The screen presented to the user also displays a solution A5 for obtaining a feasible solution. The solution A5 is displayed based on the conditions for satisfying the conflict constraints.
[0071] Second Example In the second example, an example in which the disclosed technology is applied to a bin-packing problem will be described. Specifically, as shown in FIG. 14 , the second example solves an optimization problem of loading multiple packages differing in at least one of size and weight onto multiple trucks differing in at least one of size and maximum load capacity. In the second example, all packages must be loaded onto trucks, and truck operating costs (e.g., gasoline costs) are minimized. In the second example, the width of each package and the width of each truck are assumed to be the same, and packages cannot be stacked vertically or rotated.
[0072] The problem data 32 according to the second embodiment includes the luggage data shown in Fig. 15. As shown in Fig. 15, the luggage data includes the size and weight of each luggage. The problem data 32 according to the second embodiment also includes the truck data shown in Fig. 16. As shown in Fig. 16, the truck data includes the bed length, maximum load capacity, and operating cost of each truck.
[0073] In the second embodiment, the above data is expressed by the following symbols.
[0074]
[0075] The problem data 32 according to the second embodiment includes decision variables, constraints, and objective functions, similar to the first embodiment. The decision variables are x i,j and y j is defined as:
[0076]
[0077] The constraints are expressed by the following equations (11) to (13). Equation (11) expresses the condition that each load must be loaded onto one of the trucks. Equation (12) expresses the condition that the total size of the loads to be loaded onto each truck does not exceed the length of the loading platform. Equation (13) expresses the condition that the total weight of the loads to be loaded onto each truck does not exceed the maximum load capacity.
[0078]
[0079]
[0080]
[0081] The objective function is to minimize the operating cost of the truck, and is expressed by the following equation (14).
[0082]
[0083] In the second example, when selecting the set of elements to be excluded from the provisional element set, the selector 42 selects parcels as the elements to be excluded. This is because, if the provisional theoretical model is determined to be infeasible, it is unlikely that a feasible solution will be obtained even if the number of trucks is reduced, and if the number of parcels is reduced, a feasible solution will be obtained when the number of parcels reaches a certain number.
[0084] That is, in the second embodiment, if it is determined that the provisional mathematical model is executable, the parcels selected as the excluded element set are changed, the provisional mathematical model is generated again, and it is determined whether it is executable. Also, in the second embodiment, if it is determined that the provisional mathematical model is not executable, the number of parcels is reduced, the provisional mathematical model is generated again, and it is determined whether it is executable.
[0085] Furthermore, as shown in FIG. 17 , in the second embodiment, whether or not each constraint condition is presented to the user is set. Constraint conditions marked with a circle in the "presentable" column in FIG. 17 are presented to the user. In the example of FIG. 17 , the constraint conditions represented by equations (11) and (12) are presented to the user. The reason for presenting these constraint conditions to the user is that it is believed that there are ways to relax these constraint conditions as a countermeasure when a feasible solution cannot be obtained. For example, for the constraint condition represented by equation (11), a possible countermeasure when a feasible solution cannot be obtained is to select cargo that is not to be loaded onto the truck. For example, for the constraint condition represented by equation (12), a possible countermeasure when a feasible solution cannot be obtained is to load the cargo onto the truck bed with the cargo slightly protruding from the truck bed.
[0086] If a constraint condition to be presented to the user is included in the list of conflicting constraints extracted by the extraction unit 46, the conversion unit 48 converts the conflicting constraint into a name of a constraint condition. In the second embodiment, the conversion unit 48 converts the conflicting constraint into a name of a constraint condition using a lookup table shown in FIG.
[0087] 18, in this lookup table, each conflicting constraint is associated with a name of a constraint condition that is easy for the user to understand. For example, if the condition that package 1 is to be loaded onto any truck in the constraint condition of equation (11) is not satisfied and becomes a conflicting constraint, the name of the conflicting constraint is converted to the name of the constraint condition "constraint that package 1 is to be loaded onto any truck."
[0088] FIG. 19 shows an example of a screen presented to the user that is displayed on the display 23 as a result of output by the output unit 50. As shown in FIG. 19 , the screen presented to the user displays the name B1 of the constraint obtained through the conversion by the conversion unit 48. The screen presented to the user also displays, in character string format, a set of excluded elements B2 that will be obtained when the execution unit 44 determines that the provisional mathematical model is feasible, i.e., a set of elements that will make the provisional mathematical model feasible. The screen presented to the user also displays, in table format, a feasible solution B3 that will be obtained when the provisional mathematical model is determined to be feasible, i.e., a feasible solution obtained from the feasible model, set according to the optimization problem. The screen presented to the user also displays a countermeasure B4 for obtaining a feasible solution. The countermeasure is displayed based on the conditions for satisfying the conflict constraints.
[0089] Third Example In the third example, an example will be described in which the disclosed technology is applied to a transportation planning problem. Specifically, as shown in Fig. 20 , the third example solves an optimization problem in which a worker leaves one warehouse, travels to multiple destination locations, performs work at each location, and then returns to the warehouse. In the third example, the worker replenishes the necessary parts from the warehouse at each location, works at each location for a predetermined period of time, and then moves on to another location.
[0090] The problem data 32 according to the third embodiment includes the transportation task data shown in Fig. 21. The transportation task here refers to a task in which a worker takes out parts from a warehouse, transports them to a destination location, and performs work using the parts. As shown in Fig. 21, the transportation task data includes, for each transportation task, the destination location, the time period in which the task can be started, the due date and time required for the task, and the number of parts that the worker needs to transport (hereinafter referred to as the "number of transported parts").
[0091] The problem data 32 according to the third embodiment also includes travel time data shown in Fig. 22. As shown in Fig. 22, the travel time data includes the travel time of the worker between two points, that is, the warehouse and each delivery destination location.
[0092] The problem data 32 according to the third embodiment also includes worker information shown in Fig. 23. As shown in Fig. 23, the worker information includes the maximum number of parts that a worker can transport in one trip and the maximum working hours of the worker in one day.
[0093] Furthermore, the problem data 32 according to the third embodiment includes decision variables, constraints, and objective functions, similar to those of the first and second embodiments. The decision variables include the following two variables: (1) a 0-1 variable that becomes 1 when the worker performs a task in the rth visit; and (2) a 0-1 variable that becomes 1 when the worker performs tasks in the order of task i → task j in the rth visit.
[0094] The constraints include the following eight conditions: (1) All tasks are assigned to workers. (2) A worker does not visit more than two locations at the same time. (3) The worker's route is a closed loop. (4) Each task is completed by the due date. (5) A worker starts each task within the time slot in which the task can be started. (6) The total working time of a worker does not exceed the maximum working time. (7) The number of parts a worker transports in one movement does not exceed the maximum number of parts a worker can transport in one movement. (8) A worker transports to each location the same number of parts as the number of parts to be transported.
[0095] The objective function is to complete all tasks as soon as possible.
[0096] In the third example, the selector 42 selects tasks as the elements to be excluded when selecting the set of elements to be excluded from the set of provisional elements. This is because, if the provisional theoretical model is determined to be infeasible, a feasible solution can be obtained by reducing the number of tasks until the number of tasks reaches a certain number.
[0097] That is, in the third embodiment, if it is determined that the provisional mathematical model is executable, the tasks selected as the set of excluded elements are changed, the provisional mathematical model is generated again, and it is determined whether it is executable. Also, in the third embodiment, if it is determined that the provisional mathematical model is not executable, the number of tasks is reduced, the provisional mathematical model is generated again, and it is determined whether it is executable.
[0098] Furthermore, as shown in FIG. 24 , in the third embodiment, whether or not each constraint is presented to the user is set. Constraints marked with a circle in the "presentable" column in FIG. 24 are presented to the user. In the example of FIG. 24 , constraints (4) to (7) are presented to the user. The reason for presenting these constraints to the user is that, if a feasible solution cannot be obtained, it is believed that there are ways to relax these constraints. For example, for constraint (4), a possible solution for when a feasible solution cannot be obtained is to request an extension of the delivery time. For example, for constraint (5), a possible solution for when a feasible solution cannot be obtained is to adjust the operating hours of the equipment corresponding to the task and the delivery date of the parts. For example, for constraint (6), a possible solution for when a feasible solution cannot be obtained is to request overtime work from the worker. For example, for constraint (7), a possible solution for when a feasible solution cannot be obtained is to increase the number of parts the worker can transport at one time.
[0099] If a constraint condition to be presented to the user is included in the list of conflicting constraints extracted by the extraction unit 46, the conversion unit 48 converts the conflicting constraint into a name of a constraint condition. In the third embodiment, the conversion unit 48 converts the conflicting constraint into a name of a constraint condition using the lookup table shown in FIG.
[0100] 25, in this lookup table, each conflicting constraint is associated with a name of a constraint condition that is easy for the user to understand. For example, if the condition (4) that task 1 must be completed by the due date is not satisfied and becomes a conflicting constraint, the name of the conflicting constraint is converted to the name of the constraint condition "constraint to complete task 1 by the due date."
[0101] FIG. 26 shows an example of a screen presented to the user that is displayed on the display 23 as a result of output by the output unit 50. As shown in FIG. 26 , the screen presented to the user displays the name C1 of the constraint obtained through conversion by the conversion unit 48. The screen presented to the user also displays, in character string format, a set of excluded elements C2 that will be generated when the execution unit 44 determines that the provisional mathematical model is feasible, i.e., a set of elements that will make the provisional mathematical model feasible. The screen presented to the user also displays, in a directed graph format, a feasible solution C3 that will be generated when the provisional mathematical model is determined to be feasible, i.e., a feasible solution obtained from the executable model, in the form of a feasible solution set according to the optimization problem. The screen presented to the user also displays a solution C4 for obtaining a feasible solution. The solution is displayed based on the conditions for satisfying the conflict constraints.
[0102] As described above, according to this embodiment, the reason why a feasible solution cannot be obtained in an optimization problem can be presented in a form that is easy for the user to understand.
[0103] In the above embodiment, the output unit 50 presents various information to the user by outputting it to the display 23, but the present invention is not limited to this. For example, the output unit 50 may present various information to the user by outputting it to an audio output device such as a speaker.
[0104] Furthermore, in the above embodiment, for example, 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).
[0105] 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.
[0106] 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.
[0107] Furthermore, more specifically, the hardware structure of these various processors can be an electric circuit that combines circuit elements such as semiconductor elements.
[0108] In the above embodiment, the information processing program 30 is pre-stored (installed) in the storage unit 22, but the present invention is not limited to this. 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.
[0109] The disclosure of Japanese Patent Application No. 2022-115039, filed on July 19, 2022, 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 including a processor, The processor, selecting an excluded element set, which is a subset of a provisional element set, from a provisional element set which is at least a part of the solution target element set, the provisional element set being an element set constituting the optimization problem to be solved and which is composed of a plurality of elements; determining whether a provisional mathematical model, which is a mathematical model in which an element set obtained by excluding the excluded element set from the provisional element set and a constraint condition are formulated, is executable; extracting a list of conflicting constraints from the provisional model if the provisional model is determined to be infeasible; Convert each constraint in the extracted list into a constraint name, Output the name of the constraint obtained by the conversion Information processing device.
2. The processor, executing a process of determining whether the provisional theoretical model is executable a plurality of times while changing the excluded element set; When it is determined that the provisional mathematical model is feasible, the excluded element set and the feasible solution are further output in a format set according to the optimization problem. The information processing device according to claim 1 .
3. The processor, If the provisional model is determined to be executable at least once and if the provisional model is determined to be infeasible at least once, a list of conflicting constraints is extracted from the provisional model determined to be infeasible. The information processing device according to claim 2 .
4. The processor, selecting the excluded element set from the provisional element set; determining whether the provisional theoretical model is executable; When it is determined that the provisional mathematical model is executable, a process of adding 1 to the number of times that the provisional mathematical model is determined to be executable; a process of setting, when it is determined that the provisional theoretical model is infeasible, an element set obtained by excluding the excluded element set from the provisional element set used when formulating the provisional theoretical model as the provisional element set; Repeatedly execute until a predetermined condition is met.
4. The information processing device according to claim 2.
5. The predetermined condition is that the number of consecutive times that the provisional theoretical model is determined to be executable is equal to or greater than a threshold value. The information processing device according to claim 4.
6. selecting an excluded element set, which is a subset of a provisional element set, from a provisional element set which is at least a part of the solution target element set, the provisional element set being an element set constituting the optimization problem to be solved and which is composed of a plurality of elements; determining whether a provisional mathematical model, which is a mathematical model in which an element set obtained by excluding the excluded element set from the provisional element set and a constraint condition are formulated, is executable; extracting a list of conflicting constraints from the provisional model if the provisional model is determined to be infeasible; Convert each constraint in the extracted list into a constraint name, Output the name of the constraint obtained by the conversion An information processing method in which processing is executed by a processor provided in an information processing device.
7. selecting an excluded element set, which is a subset of a provisional element set, from a provisional element set which is at least a part of the solution target element set, the provisional element set being an element set constituting the optimization problem to be solved and which is composed of a plurality of elements; determining whether a provisional mathematical model, which is a mathematical model in which an element set obtained by excluding the excluded element set from the provisional element set and a constraint condition are formulated, is executable; extracting a list of conflicting constraints from the provisional model if the provisional model is determined to be infeasible; Convert each constraint in the extracted list into a constraint name, Output the name of the constraint obtained by the conversion An information processing program for causing a processor provided in an information processing device to execute processing.