Planning system and planning method

The planning system efficiently addresses large-scale optimization problems with complex constraints by generating candidate solutions under partial constraints, correcting violations, and refining solutions, thus overcoming time and feasibility challenges.

JP2026003202APending Publication Date: 2026-01-13HITACHI LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024101034
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-06-24
Publication Date
2026-01-13

AI Technical Summary

Technical Problem

Existing methods for solving large-scale optimization problems with complex constraints, such as shift scheduling and personnel allocation, face challenges in obtaining solutions within a realistic time frame due to the enormous number of candidate solutions and increased calculation complexity when considering constraint interactions.

Method used

A planning system and method that involves a preliminary optimization process to generate candidate solutions under partial constraints, a constraint violation correction process to address violations, and a main optimization process to refine the solution, using a combination of information processing devices to efficiently find feasible solutions under complex constraints.

Benefits of technology

Enables efficient finding of solutions to large-scale problems with complex constraints, reducing calculation time and ensuring feasibility within a realistic timeframe.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026003202000001_ABST
    Figure 2026003202000001_ABST
Patent Text Reader

Abstract

To efficiently obtain a solution for a large-scale problem under complicated constraint conditions.SOLUTION: Generating solution candidates of an optimization problem under a condition excluding a part of constraints to be satisfied, selecting a solution candidate by solving a cost minimization problem under a constraint excluding a constraint between the solution candidates, generating a first tentative solution based on the solution candidate (preliminary optimization processing), and detecting a constraint violation for the first tentative solution; Generating, as a second tentative solution, a solution obtained by correcting the constraint violation by performing optimization calculation for minimizing the number of violation constraints under the constraint determined to be satisfied by the detection using a variable of a unit smaller than the variable used in the preliminary optimization processing (constraint violation correction processing), and using the second tentative solution as an input; A third tentative solution is generated by performing the cost minimization using only the constraints satisfied when the first tentative solution and the second tentative solution are generated as the constraints of the problem (main optimization processing), and information based on the third tentative solution is output.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a planning system and a planning method. [Background technology]

[0002] Traditionally, tasks such as creating work shifts and allocating personnel have been performed mainly by skilled workers. However, many of these tasks require consideration of various conditions, which requires a great deal of time and effort.

[0003] In recent years, research has been conducted into automating the above tasks with the aim of improving work efficiency. However, allocation problems (optimization problems) such as creating work shifts and allocating personnel involve complex constraints, making them classified as NP-hard problems, and it is difficult to obtain an optimal solution within a realistic time frame.

[0004] As a mechanism for handling such large-scale optimization problems with complex constraints, for example, Patent Document 1 describes a method for generating solution candidates for subproblems using a column generation method or the like, and then solving the problem as a set partitioning problem or a set covering problem. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] Japanese Patent Application Publication No. 2018-43726 Summary of the Invention [Problem to be solved by the invention]

[0006] However, in the method of finding a solution by combining generated solution candidates, such as the technology described in Patent Document 1, there is a problem in that if all the candidates are listed, the number of solution candidates becomes enormous, making it difficult to obtain a solution within a realistic time frame.

[0007] To address the above-mentioned issue, the literature attempts to limit the number of candidates. However, while limiting the number of candidates can reduce the scale of the problem, in problems where constraints between solution candidates must be considered, it may not be possible to obtain a solution that satisfies all constraints even when the generated solution candidates are combined.

[0008] Furthermore, in the case of a problem with complex constraints for which generating candidate solutions is considered effective, if one attempts to solve the problem by assigning variables to the elements of the candidate solutions without generating candidate solutions, the constraints that were taken into account when generating the candidate solutions must also be included in the optimization calculations, which increases the amount of calculations and makes it difficult to obtain a feasible solution within a realistic time frame.

[0009] The present invention has been made in view of the above background, and has as its object to provide a planning system and a planning method that are capable of efficiently finding solutions to large-scale problems under complex constraints. [Means for solving the problem]

[0010] One aspect of the present invention to achieve the above-mentioned object is a planning system comprising one or more information processing devices each having a processor and a storage device, the system comprising: a preliminary optimization process for generating candidate solutions to an optimization problem under constraint conditions excluding some of the constraint conditions to be satisfied, selecting the candidate solutions by solving a cost minimization problem under constraint conditions excluding constraint conditions that relate between the candidate solutions, using whether or not the candidate solutions are selected as variables, and generating a first interim solution based on the selected candidate solutions; a constraint violation correction process for detecting violations of constraint conditions in the first interim solution, correcting the constraint violations by solving a problem that minimizes the number of violations of the violated constraints under constraint conditions that are found to be satisfied as a result of the detection, and generating a solution obtained by the correction as a second interim solution; a main optimization process for generating a third interim solution by solving the cost minimization problem using only the constraints that were satisfied when the first and second interim solutions were generated as problem constraints; and a process for outputting a plan generated based on the third interim solution. [Effects of the Invention]

[0011] According to the present invention, it becomes possible to efficiently find a solution to a large-scale problem under complex constraints. [Brief explanation of the drawings]

[0012] [Figure 1] FIG. 1 is a block diagram illustrating a main configuration of a plan creation system. [Figure 2] 10 is a flowchart illustrating a plan creation process. [Figure 3] 10 is an example of task data. [Figure 4] 10 is a flowchart illustrating details of a preliminary optimization process. [Figure 5] This is an example of a solution candidate. [Figure 6] 10 is a flowchart illustrating a constraint violation correction process. [Figure 7] FIG. 10 is a diagram illustrating the association of selected solution candidates (shifts) with workers. [Figure 8A] FIG. 10 is a diagram illustrating detection of a constraint violation and correction of the violation portion. [Figure 8B] FIG. 10 is a diagram illustrating detection of a constraint violation and correction of the violation portion. [Figure 9] 10 is a flowchart illustrating details of the optimization process. [Figure 10] 10 is a flowchart illustrating a constraint violation correction process according to the second embodiment. [Figure 11] 1 is an example of an information processing device used to realize a plan creation system. DETAILED DESCRIPTION OF THE INVENTION

[0013] Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. The following description and drawings are examples for explaining the present invention, and some omissions and simplifications have been made for clarity of explanation.

[0014] The present invention can be implemented in various other forms. Unless otherwise specified, each component may be singular or plural.

[0015] In the following description, the same or similar components may be denoted by the same reference numerals, and redundant description may be omitted.

[0016] In the following description, the letter "S" before a reference numeral denotes a processing step.

[0017] In the following description, various types of information may be described using expressions such as "information" and "data," but the various types of information may also be expressed using other data structures such as "tables" or "lists."

[0018] In the following description, the "constraint condition" is also referred to as the "constraint."

[0019] [First embodiment] 1 shows the main configuration of an information processing system (hereinafter referred to as "planning system 1") that will be described as one embodiment of this invention. The planning system 1 is configured using one or more information processing devices (computers).

[0020] The planning system 1 creates a required plan based on information obtained by solving an optimization problem under given constraints.

[0021] As shown in the figure, the planning system 1 has the functions of an input unit 120, a storage unit 110, a processing unit 130, and an output unit 140.

[0022] Of these, the input unit 120 receives information used to create a plan (information necessary to solve an optimization problem) from the user via a user interface and stores it in the storage unit 110.

[0023] Furthermore, the input unit 120 receives instructions from the user (hereinafter referred to as “user instructions 150 ”) and inputs the received user instructions 150 to the processing unit 130 .

[0024] The output unit 140 provides various information, such as information stored in the storage unit 110 and information output by the processing unit 130, to the user via a user interface (screen output, data output, etc.).

[0025] The storage unit 110 acquires (receives) and stores (writes data to a recording medium, etc.) data sent from the input unit 120 and the processing unit 130. The storage unit 110 also provides (reads, transmits, etc.) the stored data to the processing unit 130 and the output unit 140.

[0026] In this example, the storage unit 110 stores various data 111, solution candidates 112, a first tentative solution 113, constraint violation information 114, satisfying constraints 115, a second tentative solution 116, and a third tentative solution 117. Details of this information (data) will be described later.

[0027] The processing unit 130 performs processing related to setting an optimization problem, processing related to calculations for solving the optimization problem (hereinafter referred to as "optimization calculations"), and the like.

[0028] As shown in the figure, the processing unit 130 includes a preliminary optimization unit 131 , a constraint violation correction unit 132 , and a main optimization unit 133 .

[0029] Among these, the preliminary optimization unit 131 performs a process (hereinafter referred to as "preliminary optimization process S212") to obtain a solution to the optimization problem under constraints excluding some of the constraints to be satisfied (hereinafter referred to as "first tentative solution 113").

[0030] Specifically, in the preliminary optimization process S212, the preliminary optimization unit 131 generates the solution candidates 112 and performs optimization calculations to select the solution candidates 112.

[0031] In generating the solution candidates 112, the preliminary optimization unit 131 generates the solution candidates 112 so that the constraints (subproblem constraints) that should be satisfied within each of the solution candidates 112 are satisfied.

[0032] In addition, in selecting the solution candidates 112 through the above optimization calculation, the preliminary optimization unit 131 expresses whether or not each solution candidate 112 is selected as a binary variable, and generates a first provisional solution 113 by selecting the solution candidates 112 so as to minimize the cost while satisfying the overall constraints.

[0033] The constraint violation correction unit 132 detects violations of constraints (hereinafter referred to as "constraint violations") that were not satisfied in the preliminary optimization process S212, resets the problem (objective function), and performs a process to correct the detected constraint violations (hereinafter referred to as "constraint violation correction process S213").

[0034] Specifically, the constraint violation correction unit 132 detects violations of all constraints that should be satisfied for the first tentative solution 113, and stores the results as constraint violation information 114 and satisfied constraints 115 in the storage unit 110. The constraint violation information 114 and satisfied constraints 115 are presented to the user via the output unit 140.

[0035] Furthermore, the constraint violation correction unit 132 solves the optimization problem using variables with smaller units than the variables used in the preliminary optimization process S212.

[0036] The constraint violation correction unit 132 sets constraints that indicate relationships between variables (hereinafter referred to as "inter-shift constraints") as constraints that were taken into consideration when generating the solution candidates 112 in the preliminary optimization process S212.

[0037] The problem (objective function) used when the constraint violation correction unit 132 solves the optimization problem is set so as to minimize the constraint violation for which a violation has been detected. When solving the optimization problem in the constraint violation correction process S213, the constraint violation correction unit 132 applies the constraints that were satisfied in the preliminary optimization process S212 as they are.

[0038] When solving the optimization problem, the constraint violation correction unit 132 uses the first tentative solution 113 obtained in the preliminary optimization process S212 (whether or not the solution candidate 112 obtained in the preliminary optimization process S212 has been selected) as the initial value of the solution. The constraint violation correction unit 132 converts the first tentative solution 113 into a form that matches the variable settings in the constraint violation correction process S213.

[0039] In the constraint violation correction process S213, the constraint violation correction unit 132 sets the first tentative solution 113 obtained in the preliminary optimization process S212 as an initial value, and does not set constraints other than the constraints that have already been satisfied when solving the optimization problem. Therefore, the initial value of the constraint violation correction process S213 is a feasible solution.

[0040] The constraint violation correction unit 132 stores the solution obtained by solving the optimization problem in the storage unit 110 as a second tentative solution 116.

[0041] This optimization unit 133 performs optimization calculations while satisfying the constraints that were satisfied when the preliminary optimization unit 131 and the constraint violation correction unit 132 respectively solved the optimization problem. This optimization unit 133 uses the second tentative solution 116 corrected by the constraint violation correction unit 132 as an initial value and performs optimization calculations for the original cost minimization based on user instructions 150. This optimization unit 133 stores the solution obtained by the optimization calculations in the storage unit 110 as a third tentative solution 117.

[0042] It should be noted that the optimization calculations performed by the preliminary optimization unit 131, the constraint violation correction unit 132, and the main optimization unit 133 described above do not necessarily have to arrive at an optimal solution.

[0043] For example, the calculation may be stopped in the middle of the optimization calculation in response to a user instruction 150 input, and the next process may be carried out using the provisional solution at that time.

[0044] Also, for example, an upper limit value for the processing time (calculation time) may be set in advance, and once the upper limit value is reached, the optimization calculation may be terminated and the process may proceed to the next step.

[0045] Next, a specific description will be given of the processing performed using the plan creation system 1 configured as above.

[0046] In the following, an example will be described in which the optimization problem (allocation problem) is a so-called "shift scheduling problem" that seeks an optimal solution when allocating workers to multiple tasks.

[0047] In the following description, it is assumed that task information (start time, end time, work location, etc.) is given in advance.

[0048] Furthermore, each worker cannot handle multiple tasks simultaneously.

[0049] In addition, each worker must work in a designated work area and cannot work in any other area.

[0050] Here, the following hard constraints are set as constraints imposed in the optimization calculation.

[0051] <Overall constraints> Constraint 11: Each task is assigned the number of people required to complete it. Constraint 12: Always assign at least one qualified person to each important task.

[0052] <Intra-shift constraints> Constraint 21: Ensure necessary free time between consecutive tasks (prohibit overlapping of tasks, ensure travel time to the work location, ensure necessary rest time, etc.). Constraint 22: Respect the maximum number of working hours per day. Constraint 23: Provide break times according to working hours. Constraint 24: When an unqualified person is assigned to an important task, training time must be provided for the unqualified person before the work begins (conditional constraint).

[0053] <Shift-to-shift constraints> Constraint 31: When an unqualified person is in charge of an important task, a qualified person in charge will train the unqualified person before the work begins. Constraint 32: A constraint that is affected by other shifts.

[0054] In addition to the hard constraints described above, soft constraints may also be set.

[0055] The plan creation system 1 of this embodiment creates (generates, plans) and outputs a shift plan by solving a "shift scheduling problem" so as to minimize the number of workers required under the above constraints.

[0056] 2 is a flowchart illustrating the main process (hereinafter referred to as "planning process S200") performed by the planning system 1. The planning process S200 will be described below with reference to this figure.

[0057] As shown in the figure, first, the input unit 120 of the planning system 1 accepts data related to tasks (hereinafter referred to as "task data 300") from the user via the user interface, and stores the accepted task data 300 in the memory unit 110 as various data 111.

[0058] 3 shows an example of task data 300. As shown in the figure, the task data 300 includes main data 300a and successive task availability data 300b.

[0059] As shown in the figure, the main data 300a is made up of multiple records each having fields such as a task ID 311, a start time 312, an end time 313, a work location 314, a required number of people 315, and an importance flag 316. One record in the main data 300a corresponds to one task.

[0060] Among the above items, the task ID 311 stores the identifier of the task (hereinafter referred to as the "task ID").

[0061] The start time of the task (the time when the task should be started) is stored in the start time 312. The end time of the task (the time when the task should be ended) is stored in the end time 313.

[0062] Information indicating the work location of the task is stored in the work location 314. The number of people required to perform the task is stored in the required number of people 315.

[0063] Information indicating whether the task is an important task or not is stored in the importance flag 316. In this example, if the task is an important task, "1" is stored, and if the task is not an important task, "0" is stored.

[0064] The consecutive task availability data 300b includes information indicating whether each task can be consecutively handled. For example, in the same figure, if we look at the row for "Task 1," a "0" is set in the column for "Task 2," and a "1" is set in the columns for "Task 3" through "Task 8." This indicates that "Task 2" cannot be carried out following "Task 1," but "Task 3" through "Task 8" can be carried out following "Task 1."

[0065] 2, the preliminary optimization unit 131, the constraint violation correction unit 132, and the main optimization unit 133 then perform a preliminary optimization process S212, a constraint violation correction process S213, and a main optimization process S214, in this order. Details of each process will be described later.

[0066] Subsequently, the output unit 127 outputs a shift plan based on the third tentative solution 117 generated in the main optimization process S214 via the user interface (S215).

[0067] This completes the plan creation process S200.

[0068] <Pre-optimization process> Fig. 4 is a flowchart for explaining details of the preliminary optimization process S212 shown in Fig. 2. Below, the preliminary optimization process S212 will be explained with reference to this figure.

[0069] First, the preliminary optimization unit 131 of the planning system 1 generates a combination of multiple tasks accompanied by order information as a solution candidate (a candidate for a worker shift), and stores the generated solution candidate in the memory unit 110 as the solution candidate 112 (S411).

[0070] An example of a solution candidate 112 is shown in Figure 5. In the figure, each column distinguished by a solution candidate ID "j" represents a solution candidate, and each row distinguished by a task ID "i" represents an element (combination of tasks) of each solution candidate in each column. For example, the solution candidate with a solution candidate ID (j=1) represents the execution of tasks in the order of "task 1" → "task 3" → "task 7."

[0071] For unqualified personnel, the preliminary optimization unit 131 generates solution candidates that satisfy the in-shift constraints "Constraint 21" to "Constraint 24."

[0072] Furthermore, the preliminary optimization unit 131 generates solution candidates relating to qualified personnel so as to satisfy the intra-shift constraints "Constraint 21" to "Constraint 23".

[0073] The global constraints "Constraint 11" and "Constraint 12" are constraints that affect the entire system, and are given as constraint expressions in the optimization process S413, which will be described later. The inter-shift constraint 31 is a constraint that determines whether or not a candidate for unqualified personnel is selected, but such constraints that are affected by other solution candidates are not taken into consideration in the preliminary optimization process S212.

[0074] 4, the preliminary optimization unit 131 then sets a problem (objective function) using a variable indicating whether or not the generated solution candidate is selected (S412). In this example, a solution candidate selection variable Y j This is formulated using

[0075] The purpose of the preliminary optimization process S212 is to minimize the total cost value when each solution candidate is selected. In this example, the following objective function is used.

[0076]

Number

[0077] Also, in the preliminary optimization process S212, the overall constraints "Constraint 11" and "Constraint 12" are expressed by equations (2) and (3), respectively.

Number

Number

[0078] In addition, A i,j is a constant that is "1" when task i is included in candidate j and "0" when task i is not included in candidate j. Also, m i is the number of people required to perform task i.

[0079] The preliminary optimization unit 131 performs optimization calculations (S413) using equation (1) as the objective function under equations (2) and (3) and other overall soft constraints.

[0080] <Constraint Violation Correction Process> Figure 6 is a flowchart for explaining the constraint violation correction process S213 in Figure 2. Hereinafter, the constraint violation correction process S213 will be described together with the figure.

[0081] In the constraint violation correction process S213, the following variables are used.

[0082] y i,k : Worker k is in charge of task i. z k: Indicates whether worker k is in charge of a task, and is set to "1" if there is a task for which worker ID k is in charge. The number of solution candidates obtained in the preliminary optimization process S212 (the number of selected solution candidates, hereinafter referred to as "number of shifts") is N K When this is the case, the subscript k of these variables is 1 to N. K is defined to be in the range z k When is "0", the solution candidate k is unnecessary.

[0083] x i,ii,k : Worker k will be in charge of task i and then task ii. This shows the order of tasks. f start i,k : The first task of worker k is task i. This represents the first task of worker k and is used, for example, to calculate working hours. f end i,k : The last task of worker k is task i. This represents the last task of worker k and is used, for example, to calculate working hours.

[0084] In the preliminary optimization process S212, the solution candidate selection variable Y j However, in the constraint violation correction process S213, variables with smaller units than the variables set in generating the first tentative solution 113 are used. Specifically, in the constraint violation correction process S213, a number k is assigned to each worker as an identifier (hereinafter referred to as a "worker ID"), and a task assignment variable y is set, which is a variable that is "1" when worker k is in charge of task i and "0" otherwise. i,k is used.

[0085] In the constraint violation correction process S213, the following implicit constraints (Equations (4) to (11)) are set.

[0086] If there is no task to be handled, the solution candidate (shift) does not exist.

number

[0087] If there is even one task to be handled, there is a solution candidate (shift).

number

[0088] After taking on a task, you either take on only one task or finish the shift with that task.

number

[0089] Take on just one task before taking on another task, or start the shift with that task.

[0090]

number

[0091] A task belongs to a shift if it is the first task of that shift (a formula used to ensure consistency between variables).

number

[0092] A task belongs to a shift if it is the last task in that shift (a formula used to ensure consistency between variables).

number

[0093] There is one initial task per shift (and only one initial task per worker per day).

number

[0094] There is one final task per shift (and only one final task per worker per day).

number

[0095] In addition to the above implicit constraints, the following constraints (overall constraints, intra-shift constraints, inter-shift constraints) are set.

[0096] The aforementioned global constraint "Constraint 11" is expressed as follows:

number

[0097] The aforementioned global constraint "Constraint 12" is expressed as follows:

number

[0098] In the preliminary optimization process S212, the intra-shift constraints are considered to be satisfied when generating the solution candidates. Furthermore, the optimized solution is selected only from the solution candidates that satisfy the intra-shift constraints. Therefore, in the preliminary optimization process S212, it is not necessary to formulate the intra-shift constraints during the optimization calculation.

[0099] On the other hand, in the constraint violation correction process S213, a combination of variables other than the solution candidates in the preliminary optimization process S212 can be taken as a solution, so it is necessary to formulate the intra-shift constraints.

[0100] Regarding the above-mentioned intra-shift constraint "Constraint 21," when it is possible to take charge of task ii after task i, that is, when the corresponding position of the consecutive task availability data 300b in FIG. 3 is "1," then x i,ii,k is set as a binary variable that is either "0" or "1." When it is not possible to take on task ii after task i, that is, when the corresponding location in the successive task availability data 300b is "0," x i,ii,k can be expressed by treating it as the constant "0" rather than as a variable.

[0101] Furthermore, the intra-shift constraint "Constraint 22" can be calculated from the times of the first and last tasks of each shift, and is expressed as follows:

number

[0102] Furthermore, the intra-shift constraint "Constraint 23" is expressed as follows:

number

[0103] In addition, the intra-shift constraint "Constraint 24" determines whether k is unqualified or qualified. i,ii,k This can be expressed by changing the settings.

[0104] Furthermore, the inter-shift constraint "Constraint 31" that was not taken into consideration when generating the solution candidates is expressed as follows:

number

[0105] Furthermore, equation (16) indicates that when an unqualified person is in charge of a certain important task ii, a certain interval must be left between the task and the previous task, since the qualified person k' in charge of task ii must also be provided with training time before the task.

[0106] In the constraint violation correction process S213, the user sets a priority for each constraint, taking into consideration the final objective function and each soft constraint, depending on whether it is a hard constraint or a soft constraint.

[0107] The constraint violation correction unit 132 first aims to obtain solution candidates that satisfy the hard constraints according to the settings made by the user.

[0108] 6, the constraint violation correction unit 132 first acquires the first tentative solution 113 obtained in the preliminary optimization process S212 (S611). Here, the first tentative solution 113 obtained in the preliminary optimization process S212 is a list of selected solution candidates j, which the constraint violation correction unit 132 converts based on the formulation rules and uses.

[0109] 7, specifically, the constraint violation correction unit 132 associates each solution candidate ID(j) with a worker ID(k) on a one-to-one basis for the solution candidate j selected in the preliminary optimization process S212. j For the solution candidate whose ID is j, the constant a that indicates the state of the task whose ID is i is i,j If the answer is "1", then the task assignment variable y i,k The initial value is set to "1".

[0110] Returning to FIG. 6 , the constraint violation correction unit 132 then checks whether or not there is a constraint violation in the first tentative solution 113 input from the preliminary optimization unit 131 (S612). Here, all of the intra-shift constraints considered in the solution candidate generation process S411 of the preliminary optimization process S212 should be satisfied. On the other hand, the preliminary optimization process S212 does not consider inter-shift constraints, so there is a high possibility that violations will be found. The constraint violation correction unit 132 stores constraint violation information 114, including the presence or absence of constraint violations and the details of the violations, in the storage unit 110. The details of the violation include information such as the violated constraint, which worker has violated the constraint, and which task has violated the constraint.

[0111] The constraint violation correction unit 132 presents the contents of the constraint violation information 114 to the user via the output unit 140. The purpose of presenting the contents of the constraint violation information 114 to the user in this manner is to assume that the user may be able to tolerate the constraint violation, and in that case, to leave the final decision to the user via the user interface.

[0112] If a violation to be corrected is found (S613: YES), the process proceeds to S614 and subsequent steps. On the other hand, if no violation to be corrected is found (S613: NO), the constraint violation correction process S213 ends.

[0113] In the processing from S614 onwards, the detected violations are resolved (hereinafter referred to as "minimizing the number of violations"). First, the constraint violation correction unit 132 selects a correction target from among the hard constraints.

[0114] 8A is detected. In this case, all of the constraints for the problem to be solved by minimizing the number of violations in S616 are already satisfied, but the constraint violation correction unit 132 excludes from the constraints "Constraint 31" and "Constraint 32," which are inter-shift constraints for which violations were found.

[0115] Returning to FIG. 6, in S615, the constraint violation correction unit 132 sets a problem (objective function) so as to minimize the number of violations of the inter-shift constraints.

[0116] Next, the constraint violation correction unit 132 minimizes the number of violations of the inter-shift constraints (S616) and stores the solution obtained as the second tentative solution 116 in the storage unit 110 (S617).

[0117] In S618, the constraint violation correction unit 132 determines whether the number of violations of the hard constraints has become "0" as a result of minimizing the number of violations in S616. If the number of violations of the hard constraints does not become "0" as a result of minimizing the number of violations (S618: NO), the shift number N obtained in the preliminary optimization process S212 is K In this case, the process returns to S615, and the constraint violation correction unit 132 increases the number of shifts to N K The variable is reset to +1 (increasing the number of worker IDs in FIG. 7 by one), and the number of violations is minimized again (S616).

[0118] On the other hand, if the minimization of the number of violations for a certain constraint has been completed (S618: NO), the process returns to S611, and the same process as above is performed for other constraint violations. At this time, the constraint violation correction unit 132 performs violation detection using the tentative solution obtained by minimizing the number of violations up to that point as the initial solution.

[0119] For example, suppose that the constraint violation correction unit 132 selects the inter-shift constraint "Constraint 32" as the next target for minimizing the number of violations based on the result of violation detection of the input initial value. In this case, as shown in Fig. 8B, the constraint violation correction unit 132 adds the inter-shift constraint 31, the violation of which was resolved in the previous violation correction process, to the constraints to be applied.

[0120] In this way, the constraint violation correction unit 132 gradually increases the number of constraints to be set, and generates a solution that ultimately satisfies all of the constraints.

[0121] Incidentally, even if there is a violation of the overall constraint in the result obtained by the preliminary optimization unit 131, the constraint violation correction unit 132 minimizes the number of violations in the same manner as above.

[0122] After all the violations of the hard constraints have been resolved, the constraint violation correction unit 132 then minimizes the number of violations of the soft constraints.

[0123] Furthermore, the constraint violation correction unit 132 may perform optimization calculations to minimize the number of violations, for example, targeting soft constraints with a high priority (for example, a priority equal to or higher than a preset threshold) that have been set in advance by the user.

[0124] Furthermore, for example, for soft constraints that have a low priority set by the user in advance (for example, a priority lower than a preset threshold), the constraint violation correction unit 132 may perform an optimization calculation to minimize the number of violations after performing this optimization process S214.

[0125] It should be noted that the number of violations for soft constraints does not necessarily have to be "0." Therefore, when minimizing the number of violations for one soft constraint and then minimizing the number of violations for another soft constraint, for example, the upper limit of the number of violations for the already addressed soft constraint is set to the number of violations for the input first provisional solution 113.

[0126] In addition, there are constraints that cannot necessarily be considered as constraint violations, such as minimizing breaks but shortening the time commitment as much as possible. In such cases, when minimizing the number of violations of a soft constraint and then attempting to minimize the number of violations of another soft constraint, for example, the upper limit of the number of violations of the already addressed soft constraint is set to the number of violations of the input first provisional solution 113.

[0127] <Main optimization process> In the main optimization process S214, constraints are set so as to satisfy all of the constraints satisfied in the preliminary optimization process S212 and the constraint violation correction process S213, and optimization calculations are performed using an optimization solver or the like so as to minimize the cost.

[0128] Specifically, in this optimization process S214, the optimization unit 133 performs optimization calculations to minimize the original cost based on the user instructions 150 and minimize the number of violations of soft constraints, using the second tentative solution 116 corrected in the constraint violation correction process S213 as the initial value.

[0129] The second tentative solution 116 obtained in the constraint violation correction process S213 is input to the main optimization unit 133 as an initial value.

[0130] The objective function used in the main optimization process S214 is set so as to minimize the cost, as in the preliminary optimization process S212. Furthermore, in the main optimization process S214, the variables in the constraint violation correction process S213 are used, and the constraints are also set corresponding to the variables in the constraint violation correction process S213. In this example, the objective function is set as follows:

number

[0131] In optimization calculations that handle a huge number of variables, solutions are often searched for using methods such as the branch and bound method. The branch and bound method is a method for efficiently finding an optimal solution without searching for all solutions by stopping the solution of a sub-problem and solving the next sub-problem when it becomes clear that the relaxed solution for that sub-problem is poor compared to the provisional solution.

[0132] In optimization using equation (17) as the objective function, a certain degree of optimization has already been performed by the preliminary optimization unit 131. For this reason, it may be difficult to find a solution in which the objective function value is "1" smaller than the input initial value (a solution in which the required number of workers is reduced by one).

[0133] Furthermore, when a huge number of variables must be handled in the optimization process S214, it is necessary to efficiently search for a solution.

[0134] Therefore, in the optimization process S214, a solution search is guided to efficiently minimize the number of people required.

[0135] 9 is a flowchart for explaining the optimization process S214. The optimization process S214 will be explained below with reference to the flowchart.

[0136] Here, if the number of tasks included in a certain worker's shift (the candidate solution selected as the second interim solution 116) can be minimized and the number of tasks can ultimately be reduced to "0", then that shift can be deleted, and the number of workers can be minimized.

[0137] Therefore, first, the optimization unit 133 determines which shift to focus on to minimize the number of tasks (S911). In this example, the optimization unit 133 selects a shift that includes a small number of tasks, but the method for selecting a shift is not necessarily limited.

[0138] In this example, the selected shift (hereinafter referred to as the "shift to be deleted") is del The objective function is as follows:

number

[0139] As for the constraints, all the constraints satisfied in the processing up to now are applied.

[0140] The optimization unit 133 performs a process of minimizing the number of tasks in the shift to be deleted under the above setting (S912). del However, the constraints are set for all solution candidates (shifts) for which variables have been set.

[0141] Here, the shift to be deleted k del contains n tasks, and the first improved solution contains n-1 tasks, then in subsequent processing, the shift to be deleted k del The solution search for branches where the minimum number of tasks is n-1 or more can be omitted.

[0142] After the optimization calculation is completed, the main optimization unit 133 determines whether the shift to be deleted can be deleted (S913). If the number of elements (number of tasks) of the optimal solution is "0", this shift (solution candidate) can be deleted, and the main optimization unit 133 stores the optimization result at that time in the storage unit 110 as the third tentative solution 117.

[0143] After performing the processing of S912, the timing to proceed to the determination of whether the shift to be deleted can be deleted (S913) may be when an optimal solution is found, when it is determined that the shift to be deleted cannot be deleted, or when the calculation time reaches a preset upper limit.

[0144] If the deletion of the shift to be deleted is successful (S913: NO), the process returns to the process of selecting the shift to be deleted (S911), and another shift to be deleted is selected and the same process is performed. Note that in the second and subsequent minimizations, the shift k that was successfully deleted is del Since this is a non-existent shift, it is excluded in the processing of S912 (z k Only shifts with z = 1 are optimized), kVariables related to shifts of 0 are not set.

[0145] In the deletion determination process S913, if the optimal solution is not "0" (S913: YES), the optimization unit 133 sets the second tentative solution 116 as the third tentative solution 117 and proceeds to the process of S914.

[0146] In S914, the optimization unit 133 determines whether there are any violations that have not been resolved by the above process by reading the constraint violation information 114 stored in the storage unit 110. If there are any violations that have not been resolved (S914: NO), the optimization unit 133 corrects the violations that have not been resolved (S915).

[0147] On the other hand, if all constraints including the soft constraints have already been satisfied (S914: YES), the optimization unit 133 generates information indicating a shift plan based on the third provisional solution 117 and outputs (presents to the user) the generated information via the user interface (S215).

[0148] Furthermore, for example, if a constraint violation remains in the constraint violation correction process S213, such as a soft constraint with a low priority, in the judgment of S914, the constraint violation correction process S213 may be performed to correct the violation of the soft constraint.

[0149] Also, for example, even if a constraint violation remains in the determination of S914, if the user indicates via the user interface that the constraint violation is acceptable, it is not necessarily necessary to return to the constraint violation correction process S213.

[0150] [Second embodiment] In actual optimization problems, the scale of the problem is large, and the number of variables can become so large that it is difficult to obtain a solution within a realistic time even when the mechanism of the first embodiment is applied. Therefore, for example, some variables may be fixed in the constraint violation correction process S213 and the main optimization process S214.

[0151] In this case, the values ​​of the variables to be fixed are set, for example, according to the given initial values. The variables to be fixed and the initial values ​​may be set according to a predetermined pattern, or may be specified by the user using user instructions 150, etc.

[0152] The basic configuration of the plan creation system 1 of the second embodiment is similar to that of the first embodiment, so the following description will focus on the differences from the first embodiment.

[0153] 10 is a flowchart illustrating the constraint violation correction process S213 performed by the plan creation system 1 of the second embodiment. The constraint violation correction process S213 of the second embodiment differs from the first embodiment in that a process S619 of fixing some variables is performed between the process S614 of minimizing the number of violations and the process S615 of setting the objective function.

[0154] In S619, the constraint violation correction unit 132 fixes some variables in consideration of the violation detection result. If the fixed variables are found to be in violation of the constraint, the fixation of those variables is released. Furthermore, when setting constraints, constraints that become unnecessary due to the fixation of variables are excluded from the constraints.

[0155] If the desired result is not obtained as a result of minimizing the number of violations in S616, the constraint violation correction unit 132 sets the solution at that time as the second tentative solution 116, changes the method of fixing the variables, and attempts to minimize the number of violations again.

[0156] In the optimization process 214 of the second embodiment, if a variable in a shift to be deleted is fixed, it becomes impossible to delete the variable. Therefore, the variable corresponding to the shift to be deleted is excluded from the fixed variable. For example, if the shift to be deleted is k del In this case, in the optimization process 214, y i,kdel ya f start i,kdel etc., k del All variables related to are excluded from the fixed targets.

[0157] As described above, by fixing some of the variables in the constraint violation correction process S213 and the main optimization process S214, the amount of calculation can be reduced, and a solution can be obtained within a realistic time period.

[0158] [Technical effects, etc.] As described above, the planning system 1 of this embodiment generates solution candidates for an optimization problem under conditions excluding some of the constraints to be satisfied, selects solution candidates by solving a cost minimization problem under constraints excluding constraints that relate to the multiple solution candidates, and generates a first interim solution 113 based on the selected solution candidate (preliminary optimization process). The planning system 1 also detects violations of constraints in the first interim solution 113, corrects the constraint violations by performing optimization calculations to minimize the number of violations of violated constraints under the constraints found to be satisfied as a result of the detection using variables with smaller units than those used in the preliminary optimization process, and generates the solution obtained by the correction as a second interim solution 116 (constraint violation correction process). The planning system 1 also generates a third interim solution 117 by using the second interim solution 116 as input and minimizing costs using only the constraints that were satisfied when generating the first interim solution 113 and the second interim solution 116 (main optimization process). Then, the plan creation system 1 outputs a plan generated based on the generated third interim solution 117.

[0159] As described above, in the planning system 1 of this embodiment, the first tentative solution 113 is obtained without applying the inter-shift constraints in the preliminary optimization process S212, so that the first tentative solution 113 can be obtained with a light load. Also, the constraint violation correction process S213 obtains a solution that minimizes the number of violations within the range of the first tentative solution 113, so that the second tentative solution 116 that satisfies the inter-shift constraints can be obtained with a light load.

[0160] Furthermore, in the planning system 1 of this embodiment, the preliminary optimization process S212 sets the selection or non-selection of a solution candidate as a variable, and the constraint violation correction process S213 sets the components of the solution candidate as variables. This allows the preliminary optimization process S212 to be performed with a light load, and the constraint violation can be appropriately corrected in the constraint violation correction process S213.

[0161] Furthermore, if the planning system 1 of this embodiment cannot obtain a solution in the constraint violation correction process S213, it corrects the constraint violation by changing the variable settings and then performing an optimization calculation to minimize the number of violations of the violated constraints, so that it can appropriately correct the constraint violation even if it cannot obtain a solution.

[0162] In addition, the planning system 1 of this embodiment accepts the setting of the priority of constraint conditions from the user, and in the constraint violation correction process S213, an optimization calculation is performed to minimize the number of violations for constraint conditions whose priority is equal to or greater than a preset threshold value, so that the optimization calculation can be performed while efficiently minimizing the number of violations.

[0163] Furthermore, the planning system 1 of this embodiment performs optimization calculations to minimize the number of violations for constraint conditions whose priorities are below a preset threshold after executing this optimization process, so that violations can be minimized while also taking into account constraint conditions whose priorities are below a preset threshold.

[0164] Furthermore, in the planning system 1 of this embodiment, the constraint violation correction process S213 corrects violations under hard constraints, and the optimization process S214 minimizes costs and the number of violations of soft constraints, so that an appropriate solution can be obtained while satisfying the hard constraints.

[0165] Furthermore, in the plan creation system 1 of this embodiment, the optimization unit 133 selects one of the solution candidates obtained in the constraint violation correction process S213 as a plan (shift), determines whether the plan can be deleted by performing a minimization calculation on the number of elements in the selected plan, and if the plan can be deleted, updates the third tentative solution 117. This allows the optimization process S214 to be performed efficiently.

[0166] [Information processing device] FIG. 11 shows an example of the hardware configuration of an information processing device used to realize the plan creation system 1 described above.

[0167] The illustrated information processing device 10 includes a processor 11, a main storage device 12 (memory), an auxiliary storage device 13 (external storage device), an input device 14, an output device 15, and a communication device 16. These are communicatively connected via a bus, a communication cable, etc. Examples of the information processing device 10 include a personal computer, a server device, a smartphone, a tablet, an office computer, a general-purpose machine (mainframe), etc.

[0168] All or part of the information processing device 10 may be realized using virtual information processing resources provided using virtualization technology, process space separation technology, or the like, such as a virtual server provided by a cloud system. All or part of the functions provided by the information processing device 10 may be realized by a service provided by a cloud system via an API (Application Programming Interface), for example. All or part of the functions provided by the information processing device 10 may be realized using, for example, Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS), or the like.

[0169] The processor 11 is configured using, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a GPU (Graphics Processing Unit), an FPGA (Field Programmable Gate Array), an ASIC (Application Specific Integrated Circuit), an AI (Artificial Intelligence) chip, etc.

[0170] The main memory device 12 is a device used by the processor 11 when executing a program, and is, for example, a ROM (Read Only Memory), a RAM (Random Access Memory), or a non-volatile memory (NVRAM (Non Volatile RAM)). The various functions realized in the plan creation system 1 are realized by the processor 11 reading out programs and data stored (memorized) in the auxiliary memory device 13 into the main memory device 12 and executing them.

[0171] The auxiliary storage device 13 is a device that stores programs and data, and can be configured, for example, by an SSD (Solid State Drive), a hard disk drive, an optical storage device (e.g., a CD (Compact Disc) or a DVD (Digital Versatile Disc)), a storage system, a read / write device for non-transitory recording media such as an IC card, an SD card or an optical recording media, or a non-transitory storage area of ​​a cloud server. Programs and data can be read into the auxiliary storage device 13 from other information processing devices equipped with non-transitory recording media or non-transitory storage devices via a recording media reader or a communication device 16. The programs and data stored in the auxiliary storage device 13 are read into the main storage device 12 as needed.

[0172] The input device 14 is an interface that accepts input of information from the outside, and is, for example, a keyboard, a mouse, a touch panel, a card reader, a pen-input tablet, a voice input device, or the like.

[0173] The output device 15 is an interface that outputs various information such as the progress of processing and the results of processing to the outside. The output device 15 is, for example, a display device (liquid crystal monitor, LCD (Liquid Crystal Display), graphic card, etc.) that visualizes the various information described above, a device that converts the various information described above into audio (audio output device (speaker, etc.)), or a device that converts the various information described above into text (printer, etc.). Note that, for example, the information processing device 10 may be configured to input and output information to and from other devices via the communication device 16.

[0174] The input device 14 and the output device 15 constitute a user interface that realizes interactive processing with the user (receiving information, providing information, etc.).

[0175] The communication device 16 is a device that realizes communication with other devices. The communication device 16 is a wired or wireless communication interface that realizes communication with other devices via the communication network 5, and is, for example, a NIC (Network Interface Card), a wireless communication module, a USB module, or the like.

[0176] The information processing device 10 may be equipped with, for example, an operating system, a file system, a DBMS (DataBase Management System) (relational database, NoSQL, etc.), a KVS (Key-Value Store), etc.

[0177] Although the embodiments have been described above, the present invention is not limited to the above-described embodiments, and various modifications are included, and the present invention is not necessarily limited to those including all of the configurations described. Furthermore, it is possible to replace part of the configuration of one embodiment with the configuration of another embodiment, or to add the configuration of another embodiment to the configuration of one embodiment. Furthermore, it is possible to add, delete, or replace part of the configuration of each embodiment with other configurations.

[0178] For example, by replacing workers with transportation vehicles or the like, the present invention can be applied to various combinatorial optimization problems such as delivery planning problems and optimal vehicle allocation problems.

[0179] Furthermore, the constraint equations shown above are merely examples, and may be expressed in other ways. [Explanation of symbols]

[0180] 100 Planning System 110 Storage section 111 Various Data 112 Solution candidates 113 First tentative solution 114 Constraint violation information 115 Satisfaction Constraint 116 Second tentative solution 117 Third provisional solution 120 Input section 130 Processing section 131 Pre-optimization Unit 132 Constraint violation correction part 133 Optimization Section 140 Output section 300 Task Data 300a main body data 300b Continuous duty availability data S200 Planning process S212 Pre-optimization process S213 Constraint violation correction process S214 Main optimization process

Claims

1. A planning system configured using one or more information processing devices having a processor and a storage device, generating candidate solutions to the optimization problem under conditions excluding some of the constraints to be satisfied; selecting the solution candidates by solving a cost minimization problem under conditions that exclude constraints related to the plurality of solution candidates; a preliminary optimization process for generating a first provisional solution based on the selected solution candidate; Detecting violations of constraints on the first interim solution; a constraint violation correction process that corrects constraint violations by performing optimization calculations to minimize the number of violations of violated constraints under constraint conditions that are found to be satisfied as a result of the detection, using variables with units smaller than those used in the preliminary optimization process, and generates a solution obtained by the correction as a second tentative solution; a main optimization process that uses the second tentative solution as an input and generates a third tentative solution by performing cost minimization using only the constraints that were satisfied when generating the first tentative solution and the second tentative solution as problem constraints; outputting information generated based on the third interim solution; A planning system that executes the above.

2. 2. The planning system of claim 1, In the preliminary optimization process, whether or not the solution candidate is selected is set as a variable; In the constraint violation correction process, components of the solution candidate are set as variables. Planning system.

3. 2. The planning system of claim 1, If a solution cannot be obtained by the constraint violation correction process, the constraint violation is corrected by changing the settings of the variables and then performing an optimization calculation to minimize the number of violations of the violated constraints. Planning system.

4. 2. The planning system of claim 1, accepting a setting of the priority of the constraint condition from a user; In the constraint violation correction process, an optimization calculation is performed to minimize the number of violations for constraint conditions whose priorities are equal to or greater than a preset threshold value, among the constraint conditions. Planning system.

5. 2. The planning system of claim 1, accepting a setting of the priority of the constraint condition from a user; For the constraint conditions whose priority is less than a preset threshold value among the constraint conditions, an optimization calculation is performed to minimize the number of violations after the main optimization process is performed. Planning system.

6. 2. The planning system of claim 1, In the constraint violation correction process, violation correction is performed under hard constraints, In the optimization process, the cost is minimized and the number of violations of soft constraints is minimized. Planning system.

7. 2. The planning system of claim 1, In the main optimization process, an optimization calculation is performed to minimize the number of elements of the solution candidate obtained in the constraint violation correction process, thereby determining whether the solution candidate can be deleted, and if so, deleting the solution candidate from the third tentative solution. This process is repeated. Planning system.

8. 2. The planning system of claim 1, In the constraint violation correction process or the main optimization process, some of the variables used in the optimization calculation are fixed. Planning system.

9. A planning system configured using one or more information processing devices each having a processor and a storage device, generating candidate solutions to the optimization problem under conditions excluding some of the constraints to be satisfied; selecting the solution candidates by solving a cost minimization problem under conditions that exclude constraints related to the plurality of solution candidates; a preliminary optimization process for generating a first interim solution based on the selected solution candidate; Detecting violations of constraints on the first interim solution; a constraint violation correction process in which, using variables with smaller units than the variables used in the preliminary optimization process, the constraint violations are corrected by performing an optimization calculation to minimize the number of violations of the violated constraints under the constraint conditions that are found to be satisfied as a result of the detection, and the solution obtained by the correction is generated as a second tentative solution; a present optimization process for generating a third interim solution by inputting the second interim solution and minimizing costs using only the constraints that were satisfied when generating the first interim solution and the second interim solution as problem constraints; and A process of outputting information generated based on the third provisional solution. How to create a plan to carry out the plan.

10. 10. The planning method of claim 9, The planning system comprises: In the preliminary optimization process, a process is executed in which whether or not the solution candidate is selected is set as a variable; In the constraint violation correction process, a process of setting components of the solution candidate as variables is executed. How to create a plan.

11. 10. The planning method of claim 9, If the planning system is unable to obtain a solution through the constraint violation correction process, it further executes a process of correcting constraint violations by changing the settings of the variables and then performing an optimization calculation to minimize the number of violations of the violated constraints. How to create a plan.

12. 10. The planning method of claim 9, The planning system comprises: executes a process of receiving a setting of the priority of the constraint condition from a user; In the constraint violation correction process, a process of performing an optimization calculation to minimize the number of violations is executed for constraint conditions whose priorities are equal to or greater than a preset threshold value among the constraint conditions. How to create a plan.

13. 10. The planning method of claim 9, The planning system comprises: A process of receiving a setting of the priority of the constraint condition from a user; and A process of performing an optimization calculation to minimize the number of violations for constraint conditions whose priorities are less than a preset threshold value after executing the main optimization process. A method of creating a plan to further implement the above.

14. 10. The planning method of claim 9, The planning system comprises: In the constraint violation correction process, violation correction is performed under hard constraints, In the optimization process, the cost is minimized and the number of violations of soft constraints is minimized. How to create a plan.

15. 10. The planning method of claim 9, the planning system, in the main optimization process, determines whether the solution candidate obtained in the constraint violation correction process can be deleted by performing an optimization calculation to minimize the number of elements of the solution candidate, and if deletion is possible, deletes the solution candidate from the third tentative solution, and repeats this process. How to create a plan.

Citation Information

Patent Citations

  • Plan preparation apparatus and plan preparation method

    JP2018043726A