Method and apparatus for eliminating infeasibility in mathematical optimization
By creating sub-problems and focusing on specific constraints, the method addresses the trade-off between calculation time and accuracy in resolving infeasibility, achieving efficient and accurate constraint identification in mathematical optimization.
Patent Information
- Application Number
- JP2024165531
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-06-20
- Filing Date
- 2024-09-24
- Publication Date
- 2026-01-08
AI Technical Summary
Existing mathematical optimization techniques face a trade-off between calculation time and accuracy in identifying violating constraints, with large problem sizes leading to exponentially increased computation time and difficulty in improving accuracy, making it challenging to efficiently resolve infeasibility.
The method involves creating sub-problems covering a shorter period than the main problem, excluding cumulative constraints that exceed the second period, and resolving infeasibility by narrowing down the process to specific sub-problems, allowing for automated constraint modification and improved accuracy.
This approach reduces calculation time and enhances the accuracy of identifying violating constraints, enabling efficient resolution of infeasibility in mathematical optimization problems.
Smart Images

Figure 2026002721000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a mathematical optimization technique for formulating a plan that satisfies constraints, and more particularly to a method and apparatus for resolving infeasibility in mathematical optimization. [Background technology]
[0002] Mathematical optimization technology has been known as a technique for formulating plans that satisfy various conditions. Mathematical optimization technology is a calculation technique that reduces real-world problems to mathematical optimization, creates a mathematical optimization model that formulates various conditions as constraints, and derives an optimal solution that satisfies the constraints in the mathematical optimization model. Mathematical optimization technology is extremely useful when formulating plans that maximize the realization of specific objectives in situations where various conditions are intricately intertwined, such as formulating product production plans and formulating operation plans for personnel and manufacturing equipment.
[0003] When performing mathematical optimization calculations, it may be possible to enter a situation where a solution cannot be derived (no solution) because various given constraints cannot be simultaneously satisfied. This situation is expressed as an "infeasible" state of mathematical optimization, where no feasible solution exists. In this specification, a state in which a mathematical optimization model is infeasible is referred to as "infeasibility," and resolving an infeasible state is sometimes referred to as "resolving infeasibility."
[0004] When mathematical optimization is infeasible, it is possible to make the mathematical optimization "feasible" (i.e., a feasible solution exists) by, for example, identifying and correcting the cause of the infeasibility. However, the calculation to identify the cause of the infeasibility requires a process to check whether a large number of constraints are inconsistent with each other, which requires a huge amount of calculation, and this has the problem of taking a considerable amount of time.
[0005] Meanwhile, Patent Document 1 listed below discloses a technology for executing a feasible solution search process with the aim of shortening the calculation time in mixed integer programming. The technology disclosed in Patent Document 1 adds slack variables representing the degree of redundancy and artificial variables representing the degree of violation to the constraint conditions of the main problem (original problem), generates a sub-problem (constraint violation minimization model) in which the sum of the artificial variables is the objective function, and performs optimization calculations on the sub-problem. If the result of the optimization calculation for the sub-problem shows that all the artificial variables are zero, this means that the main problem is feasible. On the other hand, if there is a non-zero artificial variable, this means that the corresponding constraint condition is violated and the main problem is infeasible.
[0006] In the feasible solution search process of Patent Document 1, when the lower limit of the objective function becomes positive during optimization of a sub-problem, it is determined that the problem is infeasible. As a result, if the feasible solution search process is terminated at any subsequent timing (a time that is acceptable from a business perspective), it is possible to identify the violating constraints with a certain degree of accuracy. [Prior art documents] [Patent documents]
[0007] [Patent Document 1] Japanese Patent Application Laid-Open No. 2015-62102 Summary of the Invention [Problem to be solved by the invention]
[0008] There is a trade-off between calculation time and calculation accuracy; calculation time can be reduced by sacrificing the accuracy of identifying violation constraints, while increasing calculation time can improve the accuracy of identifying violation constraints. On the other hand, calculation time is greatly affected by the problem size, which is determined by the number of candidate constraints, etc. As the problem size increases, calculation time increases exponentially, so if the problem size is large, calculation time increases dramatically, and it is necessary to reduce calculation time by sacrificing calculation accuracy to some extent.
[0009] In the technology disclosed in Patent Document 1, the size of the sub-problem (constraint violation minimization model) targeted by the feasible solution search process is approximately the same as the main problem. Because the sub-problem is as large as the main problem, the computation time cannot be sufficiently reduced even if the accuracy of identifying the violating constraint points is sacrificed to some extent. Conversely, the accuracy of identifying the violating constraint points cannot be sufficiently improved even if a certain amount of computation time is secured. In other words, the technology disclosed in Patent Document 1 has the problem that, because the sub-problem is also approximately the same size as the main problem, it is practically difficult to achieve both a reduction in computation time and an improvement in the accuracy of identifying the violating constraint points.
[0010] The present invention has been made in consideration of the above-mentioned problems, and aims to achieve both a reduction in calculation time and an improvement in the accuracy of identifying violating constraints in a process for resolving the infeasibility of a main problem in a mathematical optimization problem. [Means for solving the problem]
[0011] In order to achieve the above-mentioned object, the present invention provides an infeasibility resolution method for mathematical optimization that formulates a plan to satisfy constraint conditions, including at least cumulative constraints spanning a plurality of unit times, for a target period constituted by unit times, and includes an infeasibility resolution step of creating sub-problems covering a second period shorter than a first period from a main problem whose target period is a first period, and resolving the infeasibility of the sub-problems, wherein the infeasibility resolution step includes a sub-problem creation step of creating the sub-problems by setting the second period and excluding the cumulative constraints that exceed the second period from the main problem, a sub-problem infeasibility confirmation step of confirming whether or not a feasible solution exists for the sub-problem created in the sub-problem creation step, and a constraint condition modification step of modifying the constraint conditions to resolve the infeasibility of the sub-problem when it is confirmed in the sub-problem infeasibility confirmation step that no feasible solution exists for the sub-problem.
[0012] According to the above process, for a main problem set with constraints including at least cumulative constraints spanning multiple unit times, subproblems that constitute part of the main problem are created to reduce the size of the problem to be processed, and the infeasibility resolution process is then executed by narrowing down to only the specific subproblems, thereby achieving both a reduction in the calculation time (speeding up) for resolving the infeasibility of the main problem and an improvement in calculation accuracy.Furthermore, by narrowing down to only the specific subproblems and executing the infeasibility resolution process, it becomes possible to automate the modification of constraints.
[0013] The method for resolving infeasibility in mathematical optimization according to the present invention may include, in the above process, a violation constraint detection step for identifying a violation constraint that is causing a constraint violation when it is confirmed in the subproblem infeasibility confirmation step that no feasible solution exists for the subproblem, and may modify the violation constraint identified in the violation constraint detection step in the constraint modification step.
[0014] According to the above process, by narrowing down the constraint violations locally to only specific subproblems, it is possible to accurately identify the violating constraints and automate the correction of the violating constraints.
[0015] In the method for resolving infeasibility in mathematical optimization according to the present invention, in the above processing, the second period may be a range including one or more consecutive unit times along a time axis, starting from the start position of the cumulative constraint.
[0016] According to the above process, the cumulative constraints included in the main problem can be appropriately reflected in the subproblems.
[0017] In the infeasibility resolving method for mathematical optimization according to the present invention, in the above process, the infeasibility resolving step may be repeatedly performed while gradually extending the second period for each unit time.
[0018] According to the above process, by resolving the infeasibility of the subproblems, it becomes possible to efficiently resolve the infeasibility of the main problem.
[0019] The method for resolving infeasibility in mathematical optimization according to the present invention may further include a main problem infeasibility confirmation step for confirming whether or not a feasible solution exists for the main problem if a feasible solution exists for the subproblem without executing the constraint condition modification step in the above processing.
[0020] According to the above processing, for a main problem in which a violation constraint point is localized, the infeasibility of the local subproblem that includes the violation constraint point can be resolved efficiently by resolving the infeasibility of the main problem.
[0021] In the infeasibility resolution method for mathematical optimization according to the present invention, in the above process, the cumulative constraint may include a total value obtained by accumulating numerical values across a plurality of the unit times.
[0022] According to the above processing, for a main problem in which a cumulative constraint is set that includes the sum of numerical values spanning multiple unit times, it is possible to achieve both a reduction in the calculation time required to resolve the infeasibility of the main problem and an improvement in the accuracy of identifying the violating constraint points.
[0023] In the infeasibility resolution method for mathematical optimization according to the present invention, in the above process, the unit time may be a date.
[0024] According to the above process, it is possible to speed up the formulation of plans that require schedule management.
[0025] Furthermore, in order to achieve the above-mentioned object, an infeasibility resolving device for mathematical optimization according to the present invention is an infeasibility resolving device for mathematical optimization that formulates a plan to satisfy constraint conditions, including at least cumulative constraints spanning a plurality of unit times, for a target period constituted by the unit times, and is characterized by comprising an infeasibility resolving unit that creates sub-problems that cover a second period shorter than a first period from a main problem whose target period is a first period, and resolves the infeasibility of the sub-problems, and the infeasibility resolving unit comprises a sub-problem creation unit that creates the sub-problems by setting the second period and excluding the cumulative constraints that exceed the second period from the main problem, a sub-problem infeasibility confirmation unit that confirms whether or not a feasible solution exists for the sub-problem created by the sub-problem creation unit, and a constraint condition modification unit that modifies the constraint conditions to resolve the infeasibility of the sub-problem when it is confirmed by the sub-problem infeasibility confirmation unit that no feasible solution exists for the sub-problem.
[0026] According to the above configuration, for a main problem having constraints including at least cumulative constraints spanning multiple unit times, subproblems that constitute a part of the main problem are created to reduce the size of the problem to be processed, and the infeasibility resolution process is then executed by narrowing down the process to only specific subproblems, thereby achieving both a reduction in the calculation time (speeding up) for resolving the infeasibility of the main problem and an improvement in calculation accuracy.Furthermore, by narrowing down the process to only specific subproblems, it becomes possible to automate the modification of constraints. [Effects of the Invention]
[0027] According to the method and device for resolving infeasibility in mathematical optimization of the present invention, it is possible to achieve both a reduction in calculation time and an improvement in the accuracy of identifying violating constraints in the process of resolving the infeasibility of a main problem in a mathematical optimization problem. [Brief explanation of the drawings]
[0028] [Figure 1]1 is a flowchart showing an outline of a mathematical optimization process according to an embodiment of the present invention. [Figure 2] FIG. 1 is a functional block diagram showing an example of a configuration of a mathematical optimization device according to an embodiment of the present invention. [Figure 3] FIG. 10 is a diagram for explaining constraint pattern (2) and constraint pattern (3) in the embodiment of the present invention, and is a diagram schematically showing main problem P. [Figure 4] FIG. 10 is a diagram for explaining constraint pattern (2) and constraint pattern (3) in the embodiment of the present invention, and is a diagram schematically showing a subproblem P(S). [Figure 5] 10 is a flowchart illustrating an example of an operation of an infeasibility resolution process according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0029] Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
[0030] <Outline of the mathematical optimization process in this embodiment> First, an overview of the mathematical optimization process in this embodiment will be described with reference to Fig. 1. Fig. 1 is a flowchart showing an overview of the mathematical optimization process in this embodiment.
[0031] In this embodiment, a mathematical optimization process is performed using a mathematical algorithm to derive an optimal solution that satisfies specific constraints.
[0032] The mathematical optimization process in this embodiment executes a mathematical optimization model creation process (step S10) that creates a mathematical optimization model related to the problem for which an optimal solution is to be found, an infeasibility resolution process (step S30) that resolves infeasible states in the mathematical optimization model, and an optimal solution derivation process (step S50) that derives an optimal solution for most efficiently achieving a specific objective in the mathematical optimization model.
[0033] In the mathematical optimization model creation process in step S10, a real-world problem is organized and a mathematical optimization model is created that is formulated so as to be expressed mathematically. The mathematical optimization model creation process in this embodiment is similar to a commonly performed mathematical optimization model creation process.
[0034] In the mathematical optimization model creation process, multiple constraints contained in the problem to be mathematically optimized (hereinafter sometimes referred to as the main problem) are mathematically formulated, and an objective function that serves as an index for problem solving is defined. Specifically, variables are defined, constraints are formulated, and the objective function is set.
[0035] In this embodiment, a main problem including a time dimension is dealt with. While not particularly limited, examples of the problems dealt with in this embodiment include a problem of formulating a production plan for a product over a specific period of time, a problem of formulating an operation plan for personnel and manufacturing equipment, etc. Furthermore, the problems dealt with in this embodiment include constraints that span multiple unit times (cumulative constraints of constraint pattern (3) described below).
[0036] In the infeasibility resolution process of step S30, the constraint conditions are modified so that the mathematical optimization model has a feasible solution. Specifically, the mathematical optimization model is analyzed to check whether a feasible solution exists, and if the mathematical optimization model is in an infeasible state (a state in which a feasible solution does not exist), the constraint conditions are modified to resolve the infeasibility of the mathematical optimization model. By the infeasibility resolution process of step S30, the mathematical optimization model has a feasible solution, and an optimal solution can be derived.
[0037] In the infeasibility resolution process, subproblems are created that are smaller than the main problem, including the time dimension, relative to the time axis, and the infeasibility of the subproblems is resolved, thereby resolving the infeasibility of the main problem. However, the main problem handled in this embodiment includes constraints that span multiple unit times (cumulative constraints of constraint pattern (3) described below), making it difficult to simply divide the main problem along the time axis. For this reason, by devising ways to create subproblems, as described below, the process of resolving the infeasibility of the entire main problem is accelerated, localized, and automated. Details of the infeasibility resolution process in step S30 will be described later with reference to the flowchart shown in FIG. 5.
[0038] In the optimal solution derivation process of step S50, an optimal solution in the mathematical optimization model is searched for and derived. Specifically, an optimal solution that maximizes or minimizes the objective function in the mathematical optimization model is derived. The optimal solution is a solution to the problem that satisfies the constraints and most efficiently achieves a specific objective. Note that, if the optimal solution derivation process of step S50 is performed on the mathematical optimization model created in the mathematical optimization model creation process of step S10, and it is determined as a result that the mathematical optimization model is infeasible (a state in which no feasible solution exists), the infeasibility resolution process of step S30 may be performed.
[0039] <Configuration Example of the Mathematical Optimization Device in the Present Embodiment> An example of the configuration of the mathematical optimization device 100 in this embodiment will be described with reference to Fig. 2. Fig. 2 is a functional block diagram showing an example of the configuration of the mathematical optimization device 100 in this embodiment.
[0040] 2 is mainly configured to include a processor 110, an input / output interface (input / output I / F) 120, a memory 130, and a storage 140. The processor 110, the input / output I / F 120, the memory 130, and the storage 140 are connected by a bus 150.
[0041] The processor 110 is a central processing unit (CPU), a graphics processing unit (GPU), or the like, and has the function of performing control processing and arithmetic processing in the mathematical optimization device 100. The processor 110 executes various programs, thereby enabling the mathematical optimization device 100 to realize various functions corresponding to the various programs.
[0042] The input / output I / F 120 is an interface to which various devices can be connected for an operator to operate the mathematical optimization device 100. The input / output I / F 120 can be connected to a system console including input devices such as a keyboard and a mouse, and output devices such as a display and a speaker.
[0043] The memory 130 is a main storage device that can be used by the processor 110, and the storage 140 is an auxiliary storage device that can be accessed by the processor 110. When the processor 110 executes various programs, the various programs are stored in the memory 130. The processor 110 is also capable of performing processing on various data stored in the storage 140.
[0044] 2 illustrates a state in which the processor 110 reads out various programs used in the mathematical optimization process and stores them in the memory 130. Also illustrated in Fig. 2 is a state in which a mathematical optimization model 310 and a modified mathematical optimization model 320 are stored in the storage 140. The mathematical optimization model 310 is a mathematical optimization model created by clarifying the main problem, and the modified mathematical optimization model 320 is a mathematical optimization model in which the infeasibility has been resolved as a result of modifying the mathematical optimization model 310 through the processing according to this embodiment.
[0045] The various programs that the processor 110 can execute include, for example, a mathematical optimization model creation program 210, an infeasibility resolution program 220, and an optimal solution derivation program 230.
[0046] The mathematical optimization model creation program 210 is a program executed by the processor 110 when creating the mathematical optimization model 310. By executing the mathematical optimization model creation program 210, the mathematical optimization device 100 is implemented with a function as a mathematical optimization model creation unit that creates the mathematical optimization model 310.
[0047] An operator of the mathematical optimization device 100 can create a mathematical optimization model 310 by defining variables, formulating constraints, setting objective functions, etc. using the functions implemented by executing the mathematical optimization model creation program 210. The created mathematical optimization model 310 is stored in the storage 140.
[0048] The infeasibility resolving program 220 is a program executed by the processor 110 when resolving the infeasibility of the mathematical optimization model 310. By executing the infeasibility resolving program 220, the mathematical optimization device 100 is implemented with a function as an infeasibility resolving unit that resolves the infeasibility of the mathematical optimization model 310.
[0049] The infeasibility resolution program 220 includes a subproblem generation program 221 , an infeasibility confirmation program 222 , a constraint violation detection program 223 , and a constraint modification program 224 .
[0050] By executing the calculation range setting program 221, the mathematical optimization device 100 is equipped with a function as a sub-problem creation unit that sets a sub-period and creates a sub-problem. The main problem handled in this embodiment includes a time dimension, and aims to formulate a plan for a specific period, for example. The sub-problem creation unit sets a sub-period that is shorter than the target period of the main problem, thereby making it possible to create a sub-problem that narrows the range along the time axis of the main problem. In this specification, the target period of the main problem P may be referred to as the overall period T, and the target period of the sub-problem P(S) may be referred to as the partial period S. The first period of the present invention is the overall period T, and the second period of the present invention is the partial period S.
[0051] As will be described later, the sub-period is set to a range including one or more consecutive unit times along the time axis, starting from the start position of the cumulative constraint, which is constraint pattern (3). This allows the creation of sub-problems that exclude cumulative constraints that exceed the sub-period from the main problem.
[0052] By executing the infeasibility checking program 222, the mathematical optimization device 100 is equipped with a function as an infeasibility checking unit that checks whether or not a feasible solution exists. The infeasibility checking unit has a function to check whether or not a feasible solution exists for the main problem or a subproblem, and corresponds to the main problem infeasibility checking unit and the subproblem infeasibility checking unit of the present invention. The infeasibility checking unit can be realized by the function of an existing solver.
[0053] By executing the violation constraint detection program 223, the mathematical optimization device 100 is equipped with a function as a violation constraint detection unit that detects mutually contradictory violation constraints (causes of an infeasible state) and identifies the violated constraint locations. The violation constraint detection program 223 can be, for example, a program for identifying an IIS (Irreducible Infeasible Subset) implemented in an existing solver, and the violation constraint detection unit can be realized by a function for identifying the IIS of the existing solver. Note that an IIS is a subset that includes mutually contradictory violation constraints. The violated constraint locations can be identified by the identifiers of the violated constraints.
[0054] Specifically, as the violation constraint detection program 223, for example, a program corresponding to the command "ComputeIIS" of Gurobi (registered trademark), an existing solver, or a program corresponding to the command "iisDetect" of Nuorium (registered trademark) Optimizer, another existing solver, can be used.
[0055] The constraint violation detection unit does not necessarily have the capability to identify violation constraint locations (complete IIS) through rigorous calculations, but may have the capability to identify violation constraint locations with a certain degree of accuracy. The capability to identify violation constraint locations with a certain degree of accuracy is not particularly limited, and any method can be used. For example, violation constraint locations may be identified with a certain degree of accuracy by partially executing a program corresponding to the Gurobi (registered trademark) command "ComputeIIS" or a program corresponding to the Nuorium (registered trademark) Optimizer command "iisDetect." Alternatively, violation constraint locations may be identified with a certain degree of accuracy by introducing artificial variables, etc. Furthermore, as described below, the location of the constraint location to be corrected may be appropriately selected based on business priorities.
[0056] By executing the constraint condition modification program 224, the mathematical optimization device 100 is implemented with a function as a constraint condition modification unit that modifies constraint conditions. The constraint condition modification unit may, for example, automatically change the set values (lower limit values and upper limit values) of the constraint conditions to predetermined values. Alternatively, the constraint condition modification unit may notify an operator of the violated constraint locations and prompt the operator to manually change the set values.
[0057] Furthermore, when the constraints for a subproblem in a certain calculation range are modified, the constraint modification unit has a function of storing the fact that the constraints have been modified in that calculation range, for example, by using flag information F(S) described later. The modified mathematical optimization model 320, which has resolved the infeasibility, is stored in the storage 140.
[0058] The optimal solution derivation program 230 is a program executed by the processor 110 when deriving an optimal solution that satisfies the constraints in the modified mathematical optimization model 320. By executing the optimal solution derivation program 230, the mathematical optimization device 100 is equipped with a function as an optimal solution derivation unit that derives an optimal solution for the modified mathematical optimization model 320. The optimal solution derivation unit can be realized by the function of an existing solver.
[0059] The mathematical optimization device 100 can be realized using a general-purpose computer (for example, a personal computer). While Fig. 2 illustrates a state in which all functions are implemented in a single mathematical optimization device 100, each function may be distributed across multiple computers. For example, the mathematical optimization model creation program 210, the infeasibility resolution program 220, and the optimal solution derivation program 230 may each be executed by different computers. The infeasibility resolution device of the present invention has functions that are implemented by executing the infeasibility resolution program 220.
[0060] <Problems with a time dimension> The main problem targeted by this embodiment has a time dimension. Specifically, it is a problem that aims to find an optimal resource allocation along a time axis for a specific period consisting of unit times. Such a main problem is utilized in situations where optimal resource allocation is required in various fields. By applying numerical optimization to the main problem, it becomes possible to determine, for example, the optimal production quantity of a product for a specific period, or the optimal operation plan for employees or production lines.
[0061] Here, unit time refers to the unit that divides the entire period of the main problem along the time axis. For example, suppose the main problem is to formulate a plan for the daily production volume of a product for the next 30 days. In this case, the entire period of the main problem is the entire schedule of the main problem, which is 30 days, and the unit time is each day (1st day, 2nd day, ..., 30th day). The entire period of the main problem is made up of each unit time from the 1st day to the 30th day.
[0062] Note that the unit time does not have to be in units of one day, and can be set in various units such as one month, one week, one hour, one minute, etc. depending on the problem for which an optimal solution is sought. Furthermore, the unit time does not have to have an equal length along the time axis, and may be divided into units of different time lengths, such as morning (3 hours from 9:00 AM to noon) and afternoon (4 hours from 1:00 PM to 5:00 PM). In other words, the unit time represents different time periods such as 1st, 2nd, ..., Nth, and the entire period of the main problem is configured by arranging these time periods along the time axis.
[0063] In general, for a primal problem with a time dimension, the following Lemma 1 holds.
[0064] (Lemma 1) The condition "A main problem P covering a period T is infeasible" is equivalent to the condition "A subproblem P(S) (S = 1 to T) created from the main problem P is infeasible."
[0065] According to Lemma 1, if an infeasible state occurs in the entire plan (total period T), an infeasible state also occurs in the partial plan up to a specific date S (S = 1 to T). In light of Lemma 1, even if it takes a long time to identify the violated constraints in the main problem P or if it is practically difficult to do so because it takes an enormous amount of time, it is possible to indirectly resolve the infeasibility of the subproblem P(S) that is smaller than the main problem P by checking the infeasibility of the subproblem P(S) and modifying the constraints.
[0066] The computation time and amount of computation required to identify violated constraints increases exponentially as the problem size (number of decision variables and constraints) increases. In other words, the larger the problem size, the more time it takes to identify violated constraints, making it difficult to implement in actual work. In contrast, in this embodiment, subproblems P(S) constituting part of the main problem P are created to reduce the size of the problem to be processed, and the infeasibility resolution process is then narrowed down to only the specific subproblems P(S). This dramatically speeds up the infeasibility resolution process. Furthermore, since violated constraints can be identified accurately in a short time, the correction of violated constraints can be automated.
[0067] A primal problem P with a time dimension includes decision variables that fall into one of the following decision variable patterns (a) or (b), and constraints that fall into one of the following constraint patterns (1), (2), or (3).
[0068] In a main problem P that covers a total period T consisting of T unit times (t=1, 2, . . . , T), the decision variables are classified into either the following decision variable patterns (a) or (b).
[0069] Decision variable pattern (a): Variables that do not have index t Decision variable pattern (b): Variable with index t
[0070] The decision variable pattern (a) is a variable that does not depend on time t, and the decision variable pattern (b) is a variable that depends on time t.
[0071] In a main problem P that covers a total period T consisting of T unit times (t=1, 2, . . . , T), the constraints are classified into one of the following constraint patterns (1), (2), or (3).
[0072] Constraint pattern (1): Constraints that do not include a decision variable with index t Constraint pattern (2): A constraint that includes a decision variable with index t and the values of index t for all decision variables are the same. Constraint pattern (3): A constraint condition that includes a decision variable with index t and where index t can take multiple different values.
[0073] Constraint pattern (1) is a constraint that does not depend on time t.
[0074] Constraint pattern (2) is a constraint that depends on time t, and is relevant only when the value of time t is the same, that is, only at a specific time t.
[0075] Constraint pattern (2) is a constraint pattern that, for example, when time t is a date, determines the production quantity of a specific product independently for each date. Specifically, constraint conditions that determine the production quantity independently for each date, such as producing 100 or more units of a specific product on the first day, producing 50 or more units of a specific product on the second day, and producing 150 or more units of a specific product on the third day, fall under constraint pattern (2).
[0076] Constraint pattern (3) is a constraint that depends on time t and spans multiple times t. Constraint pattern (3) is a constraint that requires reference to the numerical values of the decision variables of decision variable pattern (b) at multiple different times t, and is, for example, a constraint that includes a total value obtained by accumulating numerical values across multiple unit times. In this specification, the constraint of constraint pattern (3) may be referred to as a cumulative constraint. The constraints of the main problem P targeted by this invention include at least a cumulative constraint, which is a constraint of constraint pattern (3).
[0077] Constraint pattern (3) is a constraint pattern that determines the production quantity of a specific product across multiple dates, for example, when time t is a date. Constraint pattern (3) is a constraint condition that requires reference to multiple dates simultaneously. For example, a constraint condition that determines the total production quantity over a period spanning multiple dates falls under constraint pattern (3). The following are specific examples of constraint pattern (3):
[0078] Produce 100 or more of a specific product on the first day On the second day, produce 200 or more units of a specific product, totaling the total from the first day. On the third day, produce 300 or more units of a specific product, the total value of which is the sum of the first and second days. ... On the 30th day, produce 3,000 or more units of a specific product in total from the 1st to the 29th day.
[0079] In the above specific example of constraint pattern (3), the total production volume over a period spanning multiple dates is defined as a constraint consisting of 30 constraints. Under these constraints, for example, a "front-loading plan" in which 200 units of a specific product are produced on day 1 and no specific product (0 units) is produced on day 2 is permitted. On the other hand, a "catch-up plan" in which no specific product is produced (0 units) on day 1 and 200 units of a specific product on day 2 is not permitted because it does not satisfy the constraint on day 1, "Produce at least 100 units of a specific product on day 1."
[0080] In the above specific example, the condition is set such that the total value up to each date is equal to or greater than a predetermined lower limit, but the condition may also be set such that the total value up to each date is equal to or less than a predetermined upper limit, or such that the total value falls within a predetermined range between the lower and upper limits. The lower and upper limits form a monotonically increasing sequence (monotonically non-decreasing sequence) along the time axis in a broad sense.
[0081] In the above example, constraints are set for each date along the timeline, but some dates may be skipped without constraints being set for them. For example, the second day may be skipped under the condition that "on the first day, produce 100 or more units of a specific product" or "on the third day, produce 300 or more units of a specific product, totaling the number produced on the first day."
[0082] The following is another example of a constraint condition for constraint pattern (3). This constraint condition is set when formulating a plan to manage employees' overtime hours, and specifies that employees' overtime hours should be kept to two hours or less per day.
[0083] On the first day, overtime will be limited to 2 hours. On the second day, the total overtime hours including the first day must be 4 hours or less. On the third day, the total overtime hours for the first and second days must not exceed six hours. ... On the 30th day, the total overtime hours from the 1st to the 29th days must be 60 hours or less.
[0084] Under the constraints in this example, for example, a "catch-up plan" of no overtime on the first day (0 hours of overtime) and four hours of overtime on the second day is permitted. On the other hand, a "borrowing plan" of four hours of overtime on the first day and no overtime on the second day (0 hours of overtime) is not permitted because it does not satisfy the constraint on day 1, "Overtime on the first day must be two hours or less."
[0085] In this embodiment, the following subproblem P(S) is considered for a main problem P that covers an entire period T. Below, we will explain how to create a subproblem P(S) from the main problem P when the entire period T is made up of T unit times (t=1, 2, . . . , T) and the unit time is date t.
[0086] The subproblem P(S) is created from the main problem P having a total period T (day 1 to day T), and has a partial period S, for example, from day 1 to day S (S≦T).
[0087] The decision variables of the subproblem P(S) are the decision variables of the main problem P that satisfy the following:
[0088] All decision variables classified into decision variable pattern (a) Among the decision variable patterns (b), the decision variables with index t of t=1,2,...,S
[0089] The constraints of the subproblem P(S) must satisfy the following constraints of the main problem P:
[0090] All constraints classified as constraint pattern (1) Constraints in constraint pattern (2) that do not include decision variables with index t values of t = S+1, S+2, , T. In other words, only constraints with index t values of t = 1, 2, , S are considered. Constraints in constraint pattern (3) that do not include decision variables with index t values of t = S+1, S+2, . . . , T. In other words, only constraints whose index t values fall within the range of t = 1 to S and do not overlap with the range of t = S+1 to T are considered.
[0091] The subproblem P(S) created in this embodiment has a subperiod S spanning, for example, the 1st to Sth days. Specifically, the following subproblem P(S) can be created.
[0092] Subproblem P(1): Subproblem considering the first day Subproblem P(2): Subproblem considering days 1 and 2 Subproblem P(3): Subproblem considering days 1 to 3 ... Subproblem P(S): Subproblem considering days 1 to S ... Subproblem P(T-1): Subproblem considering days 1 to (T-1) Subproblem P(T): A subproblem that considers days 1 to T (i.e., the same as the main problem P)
[0093] In this embodiment, the main problem P includes a cumulative constraint, which is a constraint condition of constraint pattern (3). Since the constraint condition of constraint pattern (3) simultaneously refers to multiple dates, if the main problem P is simply divided along the time axis, it may not be possible to reflect the constraint condition of constraint pattern (3) in the divided subproblems.
[0094] For example, consider the case where the main problem P is simply divided by each date, and subproblems for each date are created (subproblem for day 1, subproblem for day 2, subproblem for day 3, etc.). However, the constraints in constraint pattern (3) are constraints that span multiple dates, and cannot be expressed as independent constraints for each date. For this reason, for example, if we focus on day 3 in the specific example above, the constraint in constraint pattern (3) "On day 3, produce at least 300 units of a specific product, the total number of units produced on days 1 and 2" must take into account the production numbers on days 1 and 2, and it is difficult to create an independent subproblem for day 3 alone.
[0095] On the other hand, in this embodiment, the subproblem P(S) is created taking into account the range of the constraint conditions of constraint pattern (3). More specifically, by creating the subproblem P(S) so that it has a range including one or more consecutive unit times along the time axis, starting from the start position of the constraint conditions of constraint pattern (3), it becomes possible to reflect the constraint conditions of constraint pattern (3) in the subproblem P(S). Note that the start position of the constraint conditions of constraint pattern (3) refers to the first day of a period spanning multiple dates. In the above specific example, the constraint conditions of constraint pattern (3) refer to days 1 to S, and the first day of the period spanning multiple dates is "day 1." However, the start point of the subproblem P(S) can be set appropriately depending on the start position of the constraint conditions of constraint pattern (3).
[0096] Furthermore, the inventors have found that in an optimization problem having a specific time period T, constraint violations tend to be localized in the first few days, and that infeasible states are particularly likely to occur in the first few days. For example, in an optimization problem for formulating a production plan for a product over a specific time period T, inventory shortages are likely to occur in the first few days, and as the schedule progresses, inventory surpluses become more likely, so constraint violations are particularly likely to occur in the first few days.
[0097] Based on this knowledge, by starting from the first day (day 1) of the main problem P, which covers the entire period T, and gradually extending the sub-period S (day 1 to day S) of the sub-problem P(S), and checking the infeasibility of the sub-problem P(S), it becomes possible to efficiently identify and correct the constraints.
[0098] Furthermore, according to the above Lemma 1, if a subproblem P(S), which is a part of the main problem P, is infeasible, the main problem P is also infeasible. This means that if the infeasibility of the subproblem P(S) is resolved, there is a possibility that the infeasibility of the main problem P will also be resolved.
[0099] As mentioned above, optimization problems with a specific period T tend to become infeasible especially in the first few days, and resolving the infeasibility of the subproblem P(S) in the first few days may also resolve the infeasibility of the entire main problem P. For this reason, it is possible to check for infeasibility and modify the constraints while gradually extending the subperiod S, which is the target period of the subproblem P(S), and then, once the infeasibility of the subproblem P(S) is resolved in the first few days, to stop the sequential checks and confirm whether the entire main problem P is infeasible. This makes it possible to obtain the main problem P from which infeasibility is resolved in a short period of time.
[0100] Constraint pattern (2) and constraint pattern (3) will be illustrated below with reference to Figures 3 and 4. Figure 3 is a diagram for explaining constraint pattern (2) and constraint pattern (3) in this embodiment, and is a diagram that schematically shows main problem P. Figure 4 is a diagram for explaining constraint pattern (2) and constraint pattern (3) in this embodiment, and is a diagram that schematically shows subproblem P(S).
[0101] 3 schematically illustrates a main problem P with a total period T=3. The main problem P illustrated in FIG. 3 includes a constraint α, a constraint β, and a constraint γ.
[0102] Constraint condition α is a constraint condition that corresponds to constraint pattern (2) and includes independent constraint conditions for each date. Constraint condition α is a constraint condition that determines the production quantity of a certain product, for example, and includes constraint α1 that determines the condition of the production quantity on the first day, constraint α2 that determines the condition of the production quantity on the second day, and constraint α3 that determines the condition of the production quantity on the third day.
[0103] Constraint condition β is classified as constraint pattern (3) and includes a cumulative constraint spanning multiple dates. Constraint condition β is a constraint that determines, for example, the total production quantity of a certain product, and is composed of constraint β1 that determines the condition for the production quantity on the first day, constraint β2 that determines the condition for the total production quantity on the first and second days, and constraint β3 that determines the condition for the total production quantity on the first to third days.
[0104] Constraint γ, like constraint β, is classified as constraint pattern (3) and includes a cumulative constraint spanning multiple dates. However, unlike constraint β, constraint γ defines a condition that skips some dates. Constraint γ, for example, defines the total production quantity of a certain product as a constraint, and is composed of constraint γ1, which defines the condition for the production quantity on the first day, and constraint γ2, which defines the condition for the total production quantity on the first and third days. Constraint γ skips the second day, and does not include a constraint on the second day.
[0105] Fig. 4 shows a schematic diagram of a subproblem P(S) created from the main problem P shown in Fig. 3. The subproblem P(S) shown in Fig. 4 is a subproblem targeted at the first and second days (subperiod S=2). The starting positions of constraints β and γ, which are classified as constraint pattern (3), are the first day, and the subproblem P(S) is also set with the first day as its starting point.
[0106] Of the constraints α1, α2, and α3 that make up the constraint α, constraint α3 defines the conditions for day 3. For this reason, constraint α3 is not included in subproblem P(2) that covers days 1 and 2.
[0107] Of the constraints β1, β2, and β3 that make up the constraint condition β, constraint β3 defines the condition for the total value of the production quantity on days 1 to 3. Because constraint β3 is a cumulative constraint that exceeds the subperiod S=2, it is not included in the subproblem P(2) that covers days 1 and 2.
[0108] Of the constraints γ1 and γ2 that make up the constraint condition γ, constraint γ specifies the condition for the total value of the production quantity on the 1st and 3rd days. Constraint γ2 is a cumulative constraint that exceeds the subperiod S=2, so it is not included in the subproblem P(2) that covers the 1st and 2nd days.
[0109] For the above reasons, the subproblem P(2) for the subperiod S=2 is created by excluding constraint α3 of constraint α, constraint β3 of constraint β, and constraint γ2 of constraint γ from the main problem P for the total period T=3. The subproblem P(2) for the subperiod S=2 includes, as constraints, constraints α1 and α2 of constraint α, constraints β1 and β2 of constraint β, and constraint γ1 of constraint γ.
[0110] <Infeasibility Resolution Processing in This Embodiment> Details of the infeasibility resolution process in this embodiment will be described with reference to Fig. 5. Fig. 5 is a flowchart showing an example of the operation of the infeasibility resolution process in this embodiment.
[0111] As in the usual method for solving a mathematical optimization problem, in this embodiment, the main problem P is formulated in the form of integer programming to create a mathematical optimization model 310 (step S31).
[0112] The following explanation assumes an example of formulating a production plan for a product for each date in an overall period T (for example, T = 30 days). The main problem P is to formulate a production plan that minimizes underproduction and overproduction of a product, taking into account the balance between product production and demand at the manufacturing plant, and the optimal production quantity of the product can be obtained by deriving the optimal solution to the main problem P. Here, the product refers to the goods (final products) that are produced and shipped at the manufacturing plant.
[0113] The mathematical optimization model 310 is created by defining decision variables, formulating constraints, and setting an objective function, as shown in the following mathematical formula: Note that the objective function and constraints shown below are merely examples for explaining the present invention, and various objective functions and constraints can be set as necessary.
[0114]
number
[0115] (variable) In creating the mathematical optimization model 310 for the main problem P, the variable x t i This variable is a decision variable whose value must be determined in order to find the optimal solution.
[0116] variable x t i is the value that indicates the production quantity of product i on a certain date t. t i is an integer greater than or equal to zero.
[0117] (index) The index i is an identifier that identifies a product. The total number of products is I, and the index i is an integer between 1 and I.
[0118] The index t is an identifier that identifies a position (time) on the time axis. The index t is an integer that indicates a specific point in time within the entire period T. As an example, the entire period T of the main problem P is divided into days, and the index t takes an integer between 1 and T. In this case, the index t represents the date (the tth day) from the start position of the entire period T. The lengths of the entire period T and the unit time can be set appropriately.
[0119] (Objective function) The objective function is the variable x that minimizes the objective function. t i is set to find the value of as the optimal solution.
[0120] The objective function is, for each product i, the total demand D i and the cumulative production quantity of the product Σx i Qualitatively, the difference between the number of production and the number of demand for each product i represents the shortage of the product, and the difference between the number of production and the number of demand for each product i represents the excess of the product. The objective function aims to minimize the sum of the absolute values of the shortage and excess of all products i (i=1~I), and is set to minimize the production number of product i (variable x t i ) can be found as the optimal solution.
[0121] (constraints) Constraint A represents the condition of the "supply constraint." Specifically, constraint A is the production quantity (variable x t i ) is the supply quantity (S t i ) or less. Constraint A suppresses overproduction (excess supply) of each product i.
[0122] Constraint condition A corresponds to the constraint condition classified as the above constraint pattern (2).
[0123] Constraint B represents a "demand constraint." Specifically, constraint B specifies that the cumulative production quantity of each product i (i = 1 to I) produced during the period up to a certain date t' (day 1 to day t') must be less than the cumulative demand quantity D on a certain date t' (day t'). t' i According to constraint B, by making the cumulative production volume of each product i during the period up to a certain date t' (day 1 to day t') equal to or greater than a predetermined number, production shortages (shortages of supply) for each product i can be suppressed.
[0124] Constraint B includes the total number of products i produced from day 1 to day t' as the constraint for day t'. Constraint B corresponds to the cumulative constraint classified as constraint pattern (3) above.
[0125] As described above, optimization problems with a specific time period T, particularly optimization problems for formulating a production plan for a product, tend to be infeasible in the first few days. Based on this finding, the infeasibility resolution process in this embodiment sets a subproblem P(S) that includes the start position of the entire time period T (e.g., T = 30 days) of the main problem P as a subproblem that constitutes part of the main problem P.
[0126] Subproblem P(S) is a subproblem that takes into account days 1 to S. The range of subproblem P(S) is set to include constraints of main problem P that fall within partial period S (the period from days 1 to S). Specifically, as shown in the formula below, subproblem P(S) is created by changing the range of index t included in constraint A of main problem P from t=1 to T to t=1 to S, and changing the range of index t' included in constraint B of main problem P from t'=1 to T to t'=1 to S.
[0127]
number
[0128] By reducing the range of indices t and t' from 1 to T to 1 to S, a subproblem P(S) can be created from the main problem P. The subproblem P(S) can be said to be the main problem P obtained by extracting constraints included in the subperiod S from the main problem P and excluding constraints that extend beyond the subperiod S. For constraint A, which is classified as constraint pattern (2) above, constraints related to dates between the (S+1)th day and the Tth day can be excluded. Furthermore, for constraint B, which is classified as constraint pattern (3) above, cumulative constraints that extend beyond the subperiod S, i.e., constraints that include dates included between the (S+1)th day and the Tth day, can be excluded.
[0129] The infeasibility resolution process aims to resolve the infeasibility of the main problem P, and does not necessarily involve searching for an optimal solution. For this reason, it is not necessary to set an objective function for the subproblem P(S), which is the target of the infeasibility resolution process, and it is also possible to set a separate objective function for checking whether or not there is a feasible solution and a separate objective function for detecting violated constraints.
[0130] First, the partial period S is set to 1, and a partial problem P(1) is created (step S32).
[0131] A process of checking whether or not there is a feasible solution for the sub-problem P(S) is executed (step S33). The process of step S33 corresponds to the sub-problem infeasibility checking step of the present invention.
[0132] The process of checking whether there is a feasible solution in step S33 is to check whether there is a feasible solution for the subproblem P(S), that is, to check whether the subproblem P(S) is infeasible. Here, the subperiod S is set to 1, and the process of checking whether there is a feasible solution is performed for the subproblem P(1) that covers only the range of the first day.
[0133] Based on the result of checking the infeasibility in step S33, it is determined whether or not a feasible solution exists for the subproblem P(S) (step S34).
[0134] If no feasible solution exists in step S34 (NO in step S34), a process for detecting violated constraints is executed for the subproblem P(S) (step S35). Note that for the subproblem P(1), the process for checking whether or not there is a feasible solution in step S33 may be skipped, and the process for detecting violated constraints in step S35 may always be executed.
[0135] The process of detecting violated constraints in step S35 is not particularly limited, but may involve, for example, executing a process of identifying an IIS for the subproblem P(S). In this case, the process of identifying an IIS may be executed to the end to obtain a complete IIS as the violated constraint, or the process of identifying an IIS may be executed partway to obtain an IIS with a certain degree of accuracy as the violated constraint.
[0136] Next, the constraints detected as violating constraints in step S35 are corrected (step S36). In the formulation of a production plan, for example, a constraint with an excessively high lower limit on the number of products produced is identified as a violating constraint. In this case, the correction of the constraints can be automated by, for example, changing the lower limit on the number of products produced related to the violating constraint to "zero or greater." Alternatively, the lower limit on the number of products produced may be manually corrected to an acceptable value, taking into account the balance between production and supply.
[0137] If the constraint conditions are modified in step S36, the fact that the constraint conditions have been modified is stored. For example, flag information F(S) may be set to indicate whether the constraint conditions have been modified in the subproblem P(S). The initial value of flag information F(S) is set to "0," and if the constraint conditions have been modified at least once in step S36, the value of flag information F(S) is changed to "1."
[0138] After modifying the constraints in step S36, the process returns to step S33 and again checks for a feasible solution for the subproblem P(S). If no feasible solution exists in the second and subsequent processes, the constraints are modified again, and the process of checking for a feasible solution in step S33, the process of detecting violated constraints in step S35, and the process of modifying the constraints in step S36 are repeated until the infeasibility of the subproblem P(S) is resolved.
[0139] On the other hand, if a feasible solution exists in step S34 (YES in step S34), the subproblem P(S) is in a state where a feasible solution exists. Here, the subperiod S is set to 1, and the subproblem P(1) on the first day is in a state where a feasible solution exists (a state where infeasibility has been resolved).
[0140] When a feasible solution exists for the subproblem P(1) on the first day, a process is executed to check the infeasibility of the main problem P. More specifically, it is determined whether the subperiod S=1 (step S41), and if the subperiod S=1 (YES in step S41), the process proceeds to step S51.
[0141] In the process of checking the infeasibility of the main problem P, first, the current partial period S is stored (τ=S) (step S51), and the partial period S is set to the total period T (S=T) (step S52). Here, the fact that the partial period S=1 is stored (τ=1), and the partial period S is set to the total period T. By setting the partial period S to the total period T, the subproblem P(T) becomes identical to the main problem P. Then, a process is executed to check whether or not there is a feasible solution for the subproblem P(T) (i.e., the main problem P) for which the partial period S has been set to the total period T (step S53).
[0142] The process of checking whether or not there is a feasible solution in step S53 is to check whether or not there is a feasible solution to the main problem P. The process of step S53 corresponds to the main problem infeasibility checking step of the present invention.
[0143] Next, based on the result of the infeasibility check in step S53, it is determined whether or not a feasible solution exists for the subproblem P(T) (i.e., the main problem P) (step S54). If a feasible solution exists (YES in step S54), the infeasibility of the main problem P has been resolved, and the modified mathematical optimization model 320 is stored in storage 140, completing the infeasibility resolution process.
[0144] On the other hand, if there is no feasible solution to the subproblem P(T) (i.e., the main problem P) (NO in step S54), the subperiod S is set to τ+1 (S=τ+1) (step S55), and the process returns to step S33 to check whether there is a feasible solution for the subproblem P(S). In this case, τ=1, and the subperiod S is incremented from 1 to 2, changing the subproblem P(1) for the first day to the subproblem P(2) for the first to second days.
[0145] Incrementing the partial period S means expanding the range of the partial problem P(S). As described above, the main problem P includes constraints classified as constraint pattern (3), and the main problem P cannot be simply divided at each date t. For this reason, in this embodiment, the partial problem P(S) is created by devising a method to create a partial problem P(S) that starts from the starting position of the constraints of constraint pattern (3), and the range of the partial problem P(S) is gradually extended.
[0146] Even when the partial period S is incremented (after the partial period S=2), the presence or absence of a feasible solution for the subproblem P(S) is confirmed (step S33). If a feasible solution does not exist, the process of confirming the presence or absence of a feasible solution in step S33, the process of detecting violated constraints in step S35, and the process of correcting constraints in step S36 are repeatedly executed until a feasible solution exists.
[0147] For the subproblem P(S) after the subperiod S=2, if a feasible solution exists, the process proceeds to step S61. More specifically, it is determined whether the subperiod S=1 (step S41), and if the subperiod S=1 is not true (NO in step S41), the process proceeds to step S61, where it is determined whether the constraints in the subproblem P(S-1) have been modified (step S61).
[0148] In step S61, it is determined whether or not the constraints for the subproblem P(S-1) have been modified at least once in step S36. If the constraints for the subproblem P(S-1) have not been modified (NO in step S61), the subperiod S is incremented (S=S+1) (step S63). Then, the process returns to step S33, and a process is executed to check whether or not there is a feasible solution for the subproblem (S).
[0149] Here, the partial period S is set to 2, and if it is determined in step S61 that the constraints for the subproblem P(1) have not been modified, the partial period S is incremented from 2 to 3, and the subproblem P(2) for the first to second days is changed to the subproblem P(3) for the first to third days. Then, the process returns to step S33, and a process is executed to check whether or not there is a feasible solution for the subproblem P(3).
[0150] On the other hand, if the constraints have been modified in the subproblem P(S-1) (YES in step S61), it is further determined whether the constraints have been modified in the subproblem P(S) (step S62). In step S62, it is determined whether the modification of the constraints in step S36 has been performed at least once for the subproblem P(S). If the constraints have been modified in the subproblem P(S) (YES in step S62), the process proceeds to step S63, where the partial period S is incremented (S=S+1). Then, the process returns to step S33, and a process is performed to check whether there is a feasible solution for the subproblem P(S).
[0151] Here, the partial period S is set to 2, and if it is determined in step S62 that the constraints for the subproblem P(2) have been modified, the partial period S is incremented from 2 to 3, and the subproblem P(2) for the first to second days is changed to the subproblem P(3) for the first to third days. Then, the process returns to step S33, and a process is executed to check whether or not there is a feasible solution for the subproblem P(3).
[0152] The determination of whether the constraints have been modified for the subproblem P(S-1) (step S61) and the determination of whether the constraints have been modified for the subproblem P(S) (step S62) can be performed, for example, by referring to the value of the flag information F(S). By referring to whether the value of the flag information F(S-1) is "0" or "1," it is possible to check whether the constraints have been modified for the subproblem P(S-1). Also, by referring to whether the value of the flag information F(S) is "0" or "1," it is possible to check whether the constraints have been modified for the subproblem P(S).
[0153] In the infeasibility resolution process of this embodiment, if the constraints have not been modified in the subproblem P(S-1) (NO in step S61) or the constraints have been modified in the subproblem P(S) (YES in step S62), the process of resolving infeasibility for the subproblem P(S) can be repeatedly executed by incrementing the partial period S in step S63 to extend the range of the subproblem P(S) step by step. For example, the process of resolving infeasibility for the subproblem P(S) is repeatedly executed by incrementing the partial period S to extend the range of the subproblem P(S) step by step, such as subproblem P(3) for the first to third days, subproblem P(4) for the first to fourth days, and so on.
[0154] On the other hand, if the constraints have been modified in the subproblem P(S-1) (YES in step S61) and the constraints have not been modified in the subproblem P(S) (NO in step S62), the loop is exited and the process proceeds to step S51.
[0155] When step S51 is executed, the subproblem P(S) is in a state where a feasible solution can be obtained without modifying the constraints. In this case, the current subperiod S is stored (τ=S) (step S51), and the subperiod S is set to the total period T (S=T) (step S52). By setting the subperiod S to the total period T, the subproblem P(T) becomes identical to the main problem P. Then, a process is executed to check whether or not a feasible solution exists for the subproblem P(T) (i.e., the main problem P) for which the subperiod S has been set to the total period T (step S53).
[0156] Next, based on the result of the infeasibility check in step S53, it is determined whether or not a feasible solution exists for the subproblem P(T) (i.e., the main problem P) (step S54). If a feasible solution exists (YES in step S54), the infeasibility of the main problem P has been resolved, and the modified mathematical optimization model 320 is stored in storage 140, completing the infeasibility resolution process.
[0157] In this way, in the infeasibility resolution process of this embodiment, the partial period S is gradually extended, and when a feasible solution can be obtained for the subproblem P(S) without modifying the constraints, the partial period S is immediately extended to the total period T to check the infeasibility of the main problem P. This is based on the finding that, as mentioned above, constraint violations are likely to occur in the first few days, and that if the infeasibility of the subproblem P(S) is resolved, the infeasibility of the main problem P may also be resolved.
[0158] If there is a feasible solution to the subproblem P(τ) but no feasible solution to the main problem P, then according to Lemma 1 above, there is a constraint violation in the subproblem P(S) from the subperiod S=τ+1 onwards.
[0159] Therefore, if there is no feasible solution to the subproblem P(T) (i.e., the main problem P) (NO in step S54), the subperiod S is set to τ+1 (S=τ+1) (step S55), and the process returns to step S33 to again check for a feasible solution to the subproblem P(S). After this, the range of the subproblem P(S) is continued to be extended, and when a feasible solution can be obtained for the subproblem P(S) without modifying the constraints, the subperiod S is again extended in one go to the total period T, and the process to check for a feasible solution to the subproblem P(T) is again executed.
[0160] As described above, even if the main problem P includes a cumulative constraint that spans multiple dates, by setting a partial period S whose starting point is the start point of the cumulative constraint, it is possible to create a subproblem P(S) that reflects the cumulative constraint.
[0161] Furthermore, by gradually extending the range of the partial period S to resolve the infeasibility of the partial problem P(S), and then extending the range of the partial period S all at once to check the infeasibility of the main problem P, it becomes possible to significantly reduce the time required for the infeasibility resolution process for the main problem P.
[0162] The reason for determining whether the constraints for the subproblem P(S-1) have been modified in step S61 is based on Lemma 1. As an example, assume that the main problem P is infeasible, but that the subproblems P(3) on the first through third days have feasible solutions. According to Lemma 1, constraint violations exist for subproblems P(4) and beyond. In this case, if the process proceeds to step S51 and beyond based solely on the condition that the constraints for the subproblem P(S) have not been modified, a process (step S53) is executed to check whether a feasible solution exists for the main problem P for each of the subproblems P(1) through P(3) whose infeasibility has been resolved. However, each time this is executed, it is determined that the main problem P does not have a feasible solution, resulting in unnecessary processing. By incorporating the determination in step S61, the process of step S53 can be avoided for each of the subproblems P(1) through P(3) whose infeasibility has been resolved.
[0163] Furthermore, the process of detecting violated constraints in step S35 may use different methods depending on the size of the subproblem P(S). For example, for the subproblem P(1) on the first day, the process of identifying the IIS may be completed to identify the complete IIS. As described above, the violated constraints tend to be localized within the first few days. Therefore, by precisely determining the violated constraints for the subproblem P(1) that constitutes the first day of the main problem P, the constraints can be appropriately corrected, resulting in the derivation of an appropriate optimal solution. Furthermore, for the subproblems P(S) on the second and subsequent days (subperiod S≧2), the process of identifying the IIS may be completed to identify the IIS with a certain degree of accuracy, thereby further shortening the calculation time.
[0164] In the infeasibility resolution process illustrated in FIG. 5 , the violated constraints detected in step S35 are corrected in step S36. However, if no feasible solution exists in step S34 (NO in step S34), the process of detecting the violated constraints in step S35 may not be executed, and the constraints may be corrected in step S36 based on business priorities. For example, the constraints may be corrected so as to maintain the constraints with high business priorities while relaxing the constraints with low business priorities. Conventionally, the infeasibility of the main problem P may be resolved by correcting the constraints included in the main problem P based on business priorities. In this embodiment, however, the size of the problem to be processed is reduced by creating a subproblem P(S) that constitutes a part of the main problem P. This reduces the calculation time while maintaining the same accuracy as conventional methods, enabling the creation of plans that are useful for business purposes.
[0165] The operation of the present invention will now be described.
[0166] The infeasibility resolution method in mathematical optimization in the above-described embodiment formulates a plan that satisfies constraint conditions including at least cumulative constraints spanning multiple unit times for a target period composed of unit times, and includes an infeasibility resolution step that creates a subproblem P(S) that targets a partial period S shorter than the total period T from a main problem P that targets the total period T, and resolves the infeasibility of the subproblem P(S).
[0167] The infeasibility resolution step includes a subproblem creation step (steps S32, S55, S63) that creates a subproblem P(S) by setting a subperiod S and excluding cumulative constraints that exceed the subperiod S from the main problem P; a subproblem infeasibility confirmation step (step S33) that checks whether or not there is a feasible solution for the subproblem P(S) created in the subproblem creation step; and a constraint condition modification step (step S36) that modifies the constraint conditions to eliminate the infeasibility of the subproblem P(S) if it is confirmed in the subproblem infeasibility confirmation step that there is no feasible solution for the subproblem P(S).
[0168] Furthermore, the infeasibility resolving device for mathematical optimization in the above-described embodiment formulates a plan that satisfies constraint conditions including at least cumulative constraints spanning multiple unit times for a target period composed of unit times, and includes an infeasibility resolving unit that creates a subproblem P(S) that targets a partial period S that is shorter than the overall period T from a main problem P that targets the overall period T, and resolves the infeasibility of the subproblem P(S).
[0169] The infeasibility resolution unit has a sub-problem creation unit that creates a sub-problem P(S) by setting a sub-period S and excluding cumulative constraints that exceed the sub-period S from the main problem P; a sub-problem infeasibility confirmation unit that checks whether or not there is a feasible solution for the sub-problem P(S) created by the sub-problem creation unit; and a constraint condition modification unit that modifies the constraint conditions to eliminate the infeasibility of the sub-problem P(S) when the sub-problem infeasibility confirmation unit confirms that there is no feasible solution for the sub-problem P(S).
[0170] According to the above process and configuration, for a main problem P having constraint conditions that include at least cumulative constraints spanning multiple unit times, subproblems P(S) that constitute part of the main problem P are created to reduce the size of the problem to be processed, and the infeasibility resolution process is executed by narrowing down the process locally to only the specific subproblems P(S), thereby achieving both a reduction in the calculation time (speeding up) and an improvement in calculation accuracy for resolving the infeasibility of the main problem P. Furthermore, by narrowing down the process locally to only the specific subproblems P(S), it becomes possible to automate the modification of constraint conditions.
[0171] In the above-described infeasibility solving method or infeasibility solving device, when it is confirmed that there is no feasible solution for a subproblem, the violated constraint condition that is causing the constraint violation may be identified and corrected. This makes it possible to precisely identify the violated constraint by narrowing down the search to only a specific subproblem, and to automate the correction of the violated constraint condition.
[0172] In the infeasibility solving method or device described above, the sub-period S may be a range including one or more consecutive unit times along the time axis, starting from the start position of the cumulative constraint. This allows the cumulative constraint included in the main problem P to be appropriately reflected in the sub-problem P(S).
[0173] In the above-described infeasibility resolving method or infeasibility resolving device, the infeasibility resolving step or the processing by the infeasibility resolving unit may be repeatedly performed while gradually extending the partial period S by unit time. This makes it possible to efficiently resolve the infeasibility of the main problem P by resolving the infeasibility of the partial problem P(S).
[0174] When a feasible solution exists for the subproblem P(S) without executing the constraint modification step, the above-described infeasibility resolving method or infeasibility resolving device may check whether or not a feasible solution exists for the main problem P. This makes it possible to efficiently resolve the infeasibility of the main problem P by resolving the infeasibility of the local subproblem P(S) including the violated constraint point for the main problem P, where the violated constraint point is localized.
[0175] In the infeasibility resolving method or device described above, the cumulative constraint may include a total value obtained by accumulating numerical values across multiple unit times. This makes it possible to achieve both a reduction in the calculation time required to resolve the infeasibility of the main problem P and an improvement in the calculation accuracy for the main problem P to which a cumulative constraint including a total value of numerical values across multiple unit times is set.
[0176] In the above-described infeasibility solving method or device, the unit time may be a date, which makes it possible to speed up the formulation of plans that require schedule management.
[0177] The above-described embodiments are described to facilitate understanding of the present invention, and are not intended to limit the present invention. The components and processing steps disclosed in the above-described embodiments are intended to include all design modifications and equivalents that fall within the technical scope of the present invention. [Industrial Applicability]
[0178] The present invention is applicable to mathematical optimization techniques that formulate plans that satisfy constraint conditions, and can achieve both a reduction in calculation time and an improvement in the accuracy of identifying violating constraints in the process of resolving the infeasibility of a main problem in a mathematical optimization problem. [Explanation of symbols]
[0179] 100 Mathematical Optimization Device 110 processors 120 Input / Output Interface (Input / Output I / F) 130 memory 140 Storage 150 Bus 210 Mathematical optimization model creation program 220 Impossibility Elimination Program 221 Partial Problem Creation Program 222 Infeasibility Check Program 223 Constraint Violation Detection Program 224 Constraint Modification Program 230 Optimal Solution Derivation Program 310 Mathematical Optimization Model 320 Modified mathematical optimization model
Claims
1. 1. A method for resolving infeasibility in mathematical optimization, which formulates a plan that satisfies constraint conditions including at least a cumulative constraint spanning a plurality of unit times for a target period constituted by the unit times, comprising: an infeasibility resolving step of creating a subproblem from a main problem having a first period as the target period, the subproblem covering a second period shorter than the first period, and resolving the infeasibility of the subproblem; The infeasibility resolving step includes: a sub-problem creation step of creating the sub-problem by setting the second period and excluding the cumulative constraints that exceed the second period from the main problem; a sub-problem infeasibility confirmation step for confirming whether or not there is a feasible solution for the sub-problem created in the sub-problem creation step; a constraint condition modification step of resolving the infeasibility of the subproblem by modifying the constraint condition when it is confirmed in the subproblem infeasibility confirmation step that the feasible solution does not exist for the subproblem; A method for resolving infeasibility in mathematical optimization, comprising:
2. a violated constraint detection step for identifying a violated constraint that is causing a constraint violation when it is confirmed in the subproblem infeasibility confirmation step that no feasible solution exists for the subproblem, 2. The method for resolving infeasibility in mathematical optimization according to claim 1, wherein the constraint modification step modifies the violated constraints identified in the violated constraint detection step.
3. 3. The method for resolving infeasibility in mathematical optimization according to claim 1, wherein the second period is a range including one or more consecutive unit times along a time axis, starting from the start position of the cumulative constraint.
4. 4. The method for resolving infeasibility in mathematical optimization according to claim 3, wherein the infeasibility resolving step is repeatedly performed while gradually extending the second period for each unit time.
5. 5. The method for resolving infeasibility in mathematical optimization according to claim 4, further comprising a main problem infeasibility confirmation step for confirming whether or not a feasible solution exists for the main problem when a feasible solution exists for the subproblem without executing the constraint condition modification step.
6. 3. The method for resolving infeasibility in mathematical optimization according to claim 1, wherein the cumulative constraint includes a total value obtained by accumulating numerical values across a plurality of the unit times.
7. 3. The method for resolving infeasibility in mathematical optimization according to claim 1, wherein the unit time is a date.
8. An infeasibility resolution device for mathematical optimization that formulates a plan that satisfies constraint conditions including at least a cumulative constraint spanning a plurality of unit times for a target period constituted by the unit times, comprising: an infeasibility resolving unit that generates subproblems from a main problem having a first period as the target period, the subproblems covering a second period shorter than the first period, and resolves infeasibility of the subproblems; The infeasibility resolving unit a sub-problem creation unit that creates the sub-problems by setting the second period and excluding the cumulative constraints that exceed the second period from the main problem; a sub-problem infeasibility checking unit that checks whether or not there is a feasible solution for the sub-problem created by the sub-problem creating unit; a constraint condition modification unit that, when it is confirmed by the sub-problem infeasibility confirmation unit that the feasible solution does not exist for the sub-problem, modifies the constraint condition to eliminate the infeasibility of the sub-problem; An apparatus for resolving infeasibility in mathematical optimization, comprising:
Citation Information
Patent Citations
Operation plan decision method and operation plan decision system
JP2015062102A