Optimization device, optimization method, and program

The optimization apparatus efficiently addresses inefficient debugging of optimization problems by adding new variables and converting constraints, reducing solution times and providing constraint violation degrees.

JP7831644B2Active Publication Date: 2026-03-17NEC CORP
View PDF 6 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-12-26
Publication Date
2026-03-17

AI Technical Summary

Technical Problem

Debugging of optimization problems is inefficient and subject to subjective judgment when users enter incorrect constraints, becoming time-consuming as the number of constraints increases.

Method used

An optimization apparatus and method that adds new variables corresponding to each constraint condition, converts these conditions into new constraints, and calculates the variables to maximize or minimize a new objective function, thereby efficiently identifying inappropriate constraints.

Benefits of technology

Facilitates efficient debugging of optimization problems by reducing the number of times the optimization problem needs to be solved, shortening the determination time and providing an approximate solution with constraint violation degrees.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007831644000002
    Figure 0007831644000002
  • Figure 0007831644000003
    Figure 0007831644000003
  • Figure 0007831644000004
    Figure 0007831644000004
Patent Text Reader

Abstract

In order to automatically and efficiently implement a debugging operation on a constraint condition imposed on an optimization problem, an optimization device (2) comprises: an addition unit (21) that generates a new objective function (f'(x, p1, p2, …, pm)) by adding a new variable (p1, p2, …, pm) to an objective function (f(x)); a conversion unit (22) that converts each constraint condition (Ci) to a new constraint condition (C'i) to be imposed on a corresponding new variable (pi); and a calculation unit (23) that calculates a value that maximizes or minimizes the new objective function (f'(x, p1, p2, …, pm)) under the new constraint condition (C'1, C'2, …, C'm).
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This invention relates to an optimization apparatus and method for solving optimization problems, as well as a program for making a computer function as such an optimization apparatus. [Background technology]

[0002] Planning is carried out in various industries using mathematical models called optimization problems. An optimization problem consists of an objective function that represents utility and constraints that define the search range for the solution. For example, Patent Document 1 discloses a software testing device that tests software by determining satisfactionability using a constraint-bound optimization solver, with the software to be tested, constraints on the input values ​​to the software, and testing conditions for the software as input values. [Prior art documents] [Patent Documents]

[0003] [Patent Document 1] International Publication No. 2016 / 121074 [Overview of the project] [Problems that the invention aims to solve]

[0004] The constraints imposed on optimization problems are typically mathematical formulas entered by the user. If the user enters incorrect constraints, an optimization problem that should have a solution may become unsolvable. Therefore, debugging to determine whether the constraints imposed on the optimization problem are appropriate is crucial.

[0005] This type of debugging has traditionally been done manually. This presented a problem where the quality of judgment regarding the appropriateness of constraints could be influenced by subjective factors. Furthermore, as the number of constraints imposed on the optimization problem increased, the debugging process became more time-consuming.

[0006] One aspect of the present invention has been made in view of the above-mentioned problems, and its objective is to realize an optimization device that can efficiently perform debugging work against constraints imposed on an optimization problem. [Means for solving the problem]

[0007] An optimization apparatus according to one aspect of the present invention includes: an addition means for adding at least one new variable corresponding to each of at least one constraint conditions to a first objective function to form a second objective function; a conversion means for converting each of the constraint conditions into new constraint conditions imposed on the corresponding new variable; and a calculation means for calculating the variables of the second objective function and the values ​​of each new variable, which maximize or minimize the second objective function under the new constraint conditions.

[0008] An optimization method according to one aspect of the present invention includes an optimization device adding at least one new variable corresponding to each of at least one constraint condition to a first objective function to form a second objective function; converting each of the constraint conditions into new constraint conditions imposed on the corresponding new variable; and calculating the variables of the second objective function and the values ​​of each new variable that maximize or minimize the second objective function under the new constraint conditions.

[0009] A program according to one aspect of the present invention is a program that causes a computer to function as an optimization device, wherein the computer functions as an addition means that adds at least one new variable corresponding to each of at least one constraint conditions to a first objective function to form a second objective function; a conversion means that converts each of the constraint conditions into new constraint conditions imposed on the corresponding new variable; and a calculation means that calculates a value which is the variable of the second objective function and the value of each new variable, which maximizes or minimizes the second objective function under the new constraint conditions. [Effects of the Invention]

[0010] According to one aspect of the present invention, debugging work on constraints imposed on an optimization problem can be carried out efficiently.

Brief Description of the Drawings

[0011] [Figure 1] It is a block diagram showing the configuration of a debug device according to the first reference form. [Figure 2] It is a flowchart showing the flow of a debug method according to the first reference form. [Figure 3] It is a block diagram showing the configuration of a debug device according to the second reference form. [Figure 4] It is a flowchart showing the flow of a debug method according to the second reference form. [Figure 5] It is a block diagram showing the configuration of a debug device according to the third reference form. [Figure 6] It is a flowchart showing the flow of a debug method according to the third reference form. [Figure 7] It is a block diagram showing the configuration of an optimization device according to the first embodiment. [Figure 8] It is a flowchart showing the flow of an optimization method according to the first embodiment. [Figure 9] It is a block diagram showing the configuration of an optimization device according to the second embodiment. [Figure 10] It is a flowchart showing the flow of an optimization method according to the second embodiment. [Figure 11] It is a block diagram showing the configuration of a constraint condition evaluation device according to the fourth reference form. <00​​​​​​​​​​​​​​The debug device according to each of the reference embodiments described below and the optimization device according to each of the embodiments are devices for identifying inappropriate constraint conditions in order to debug the constraint conditions imposed on an optimization problem. The optimization problem to be targeted is not particularly limited, but for example, the following optimization problems are assumed.

[0013] (Optimization Problem) In the solution space X, the element (x1, x2, …, x ,

[0015] , Γ , , ) that maximizes the objective function f(x1, x2, …, x Γ ) ∈ X is sought, and this is called an "optimization problem." Here, the solution space X is a set of elements (x1, x2, …, x Γ ) that satisfy the constraint conditions C1, C2, …, Cm. Each constraint condition Ci (i = 1, 2, …, m) is expressed by a mathematical formula (for example, an equation or an inequality) that includes some or all of the variables x1, x2, …, x Γ .

[0014] Here, maximizing the objective function f(x1, x2, …, x Γ ) and minimizing it are equivalent by an obvious transformation. Specifically, an optimization problem that minimizes the objective function f(x1, x2, …, x Γ [ ) is an optimization problem that maximizes a new objective function -f(x1, x2, …, x Γ ) obtained by multiplying the objective function by -1.

[0015] (Linear Programming Problem, Integer Linear Programming Problem, Mixed Integer Linear Programming Problem) Among the optimization problems where the objective function and the constraint conditions are linear with respect to all variables, an optimization problem where the variables x1, x2, …, x Γ are continuous variables (real variables) is called a "linear programming problem," and an optimization problem where the variables x1, x2, …, x Γ are discrete variables (integer variables) is called an "integer linear programming problem." Also, among the optimization problems where the objective function and the constraint conditions are linear with respect to all variables, an optimization problem where the variables x1, x2, …, x Γ include both continuous variables and discrete variables is called a "mixed integer linear programming problem."

[0016] (A binary optimization problem without quadratic constraints) The objective function is f(x1,x2,...,x Γ The element that maximizes (x1, x2, ..., x Γ The problem of finding x ∈ X is called a "binary optimization problem without quadratic constraints". Here, the variables x1, x2, ..., x Γ These are binary variables that each take a value of either 0 or 1. In quadratic binary optimization problems without constraints, constraints cannot be directly handled, but they can be approximately handled by adding terms corresponding to the constraints to the objective function.

[0017]

number

[0018] (Debugging device configuration) The configuration of the debugging device 1 in this reference form will be explained with reference to Figure 1. Figure 1 is a block diagram showing the configuration of the debugging device 1.

[0019] Debugging device 1 is a device for debugging multiple constraints C1, C2, ..., Cm imposed on optimization problem P. Here, m is any natural number greater than or equal to 2 that represents the number of constraints.

[0020] As shown in Figure 1, the debugging device 1 includes a splitting unit 11 and a specific unit 12.

[0021] The partitioning unit 11 is a means for dividing the multiple constraints C1, C2, ..., Cm into multiple groups G1, G2, ..., Gn when no solution exists for the optimization problem P under the multiple constraints C1, C2, ..., Cm. Here, n is a natural number between 2 and m that represents the number of groups.

[0022] The identification unit 12 is a means for identifying a group Gj' in which, if excluded, a solution to the optimization problem P exists. The identification unit 12 repeats the following for each j between 1 and n: (1) a selection process for selecting at least one group from a plurality of groups G1, G2, ..., Gn (here, one group Gj; in the modified version described later, n' groups selected from m groups G1, G2, ..., Gn); and (2) a determination process for determining whether a solution to the optimization problem P exists under the constraints included in the groups G1, G2, ..., Gj-1, Gj+1, ..., Gn other than the selected group Gj. The group identified by the identification unit 12 as a group Gj' in which, if excluded, a solution to the optimization problem P exists is a group in which, under the constraints belonging to the groups G1, G2, ..., Gj'-1, Gj'+1, ..., Gn other than the group Gj', a solution to the optimization problem P does not exist.

[0023] The optimization problem P may be an optimization problem for which it is known in advance that no solution exists under multiple constraint conditions C1, C2, ..., Cm, or it may be an optimization problem for which it is not known in advance that no solution exists under multiple constraint conditions C1, C2, ..., Cm. In the latter case, the partitioning unit 11 may perform a determination process to determine whether or not a solution to the optimization problem P exists under the multiple constraint conditions C1, C2, ..., Cm before performing the partitioning process to divide the multiple constraint conditions C1, C2, ..., Cm into multiple groups G1, G2, ..., Gn.

[0024] (Debugging procedure) The flow of debugging method S1 related to this reference form will be explained with reference to Figure 2. Figure 2 is a flowchart showing the flow of debugging method S1.

[0025] Debugging method S1 is a method for debugging multiple constraints C1, C2, ..., Cm imposed on the optimization problem P. In this reference form, debugging method S1 is performed by the debugging device 1.

[0026] The debugging method S1 includes a splitting process S11 and a specific process S12, as shown in Figure 2.

[0027] The partitioning process S11 is performed when no solution to the optimization problem P exists under multiple constraints C1, C2, ..., Cm, and it divides the multiple constraints C1, C2, ..., Cm into multiple groups G1, G2, ..., Gn. In the debugging device 1 according to this reference configuration, the partitioning process S11 is executed by the partitioning unit 11.

[0028] The identification process S12 is a process for identifying the group Gj' in which a solution to the optimization problem P exists if excluded. In the identification process S12, (1) a selection process S121 is performed to select group Gi from multiple groups G1, G2, ..., Gn, and (2) a determination process S122 is performed to determine whether a solution to the optimization problem P exists under constraints belonging to groups G1, G2, ..., Gj-1, Gj+1, ..., Gn other than the selected group Gi, from among multiple constraint conditions C1, C2, ..., Cm. These processes are repeated for each j between 1 and n. The group Gj' identified in the identification process S12 as the group in which a solution to the optimization problem P exists if excluded is the group Gj' in which a solution to the optimization problem P does not exist under constraints belonging to groups G1, G2, ..., Gj'-1, Gj'+1, ..., Gn other than group Gj'. In the debugging device 1 according to this reference form, the identification process S12 is executed by the identification unit 12.

[0029] The optimization problem P may be one in which it is known in advance that no solution exists under multiple constraints C1, C2, ..., Cm, or it may be one in which it is not known in advance that no solution exists under multiple constraints C1, C2, ..., Cm. In the latter case, a determination process may be performed to determine whether or not a solution to the optimization problem P exists under multiple constraints C1, C2, ..., Cm before executing the partitioning process S11 which divides the multiple constraints C1, C2, ..., Cm into multiple groups G1, G2, ..., Gn.

[0030] (Effectiveness of debugging devices and debugging methods) In conventional debugging devices, it is determined whether each constraint Ci (1 ≤ i ≤ m) is an inappropriate constraint. In contrast, in the debugging device 1 according to this reference model, it is determined whether each group Gj (1 ≤ j ≤ n) contains an inappropriate constraint. Therefore, in conventional debugging devices, the optimization problem is solved m times before the determination is completed, whereas in the debugging device 1 according to this reference model, the optimization problem is solved n times before the determination is completed.

[0031] As described above, the number of groups G1, G2, ..., Gn (n) is less than the number of constraint conditions C1, C2, ..., Cm (m). Therefore, the debugging device 1 according to this reference model can solve the optimization problem fewer times before completing the determination compared to conventional debugging devices. As a result, the debugging device 1 according to this reference model can shorten the time required to complete the determination compared to conventional debugging devices. The debugging method S1 according to this reference model can achieve a similar effect.

[0032] (Specific example of a splitting process) Several specific examples of the partitioning process S11 will be described.

[0033] The number of constraints p to include in each group Gj j If these are predetermined, the following specific examples can be considered.

[0034] Specific example 1: Determine the constraints to be included in each group Gj based on the index i of each constraint Ci. For example, include constraints C1 to Cp1 in group G1, and constraints Cp1+1 to Cp1+p2 in group G2. Determine the constraints to be included in groups G3 to Gn in the same way.

[0035] Specific Example 2: Randomly determine the constraint conditions included in each group Gj. For example, include p1 constraint conditions randomly selected from m constraint conditions in group G1, and include p2 constraint conditions randomly selected from the remaining m - p1 constraint conditions in group G2. Determine the constraint conditions included in groups G3 to Gn in the same way.

[0036] Also, when paying attention to the content of each constraint condition Ci, the following specific examples can be considered.

[0037] Specific Example 3: Determine the constraint conditions included in each group Gj so that the same type of constraint conditions belong to the same group. For example, consider two constraint conditions that can be converted from one constraint condition to the other by variable substitution as the same type of constraint conditions, and determine the constraint conditions included in each group Gj so that the same type of constraint conditions belong to the same group. In this case, examples of the set of the same type of constraint conditions include, for example, the pair of “x i +2x i+1 ≧1” and “x i’ +2x i’+1 ≧1” (i ≠ i’), etc.

[0038] (Variant Example 1) In this reference form, for each of the m constraint conditions C1 to Cm, the problem of determining whether it is an inappropriate constraint condition was considered, but the scope of the present invention is not limited to this. That is, for each combination of m’ constraint conditions selected from the m constraint conditions C1 to Cm, the problem of determining whether it is an inappropriate combination is also included in the scope of the present invention. Here, m’ is a specific natural number satisfying 1 < m’ < m. In this case, the number of times of solving the optimization problem in the conventional debugging device reaches m!(m - m’)! / m’! times.

[0039] In contrast, in the debugging device 1 according to this exemplary embodiment, for each of the n' groups selected from the n groups G1 to Gn, it is determined whether it is an inappropriate combination. Here, n' is a specific natural number satisfying 1 < n' < n. In this case, the specifying unit 12 determines whether a solution to the optimization problem P exists under the constraint conditions included in the groups other than the groups constituting the combination for each combination of the n' groups selected from the n groups G1, G2,..., Gn. Therefore, the number of times of solving the optimization problem in the debugging device 1 according to this exemplary embodiment can be suppressed to n!(n - n')! / n'! times (since n < m, n!(n - n')! / n'! ≪ m!(m - m')! / m'!). Therefore, according to the debugging device 1 according to the exemplary embodiment, the time required to complete the determination can be significantly shortened compared to the conventional debugging device.

[0040] Note that the above-described modification to this exemplary embodiment can also be applied to each of the exemplary embodiments described later.

[0041] (Modification Example 2) In this exemplary embodiment, for each of the m constraint conditions C1 to Cm, the problem of determining whether it is an inappropriate constraint condition has been considered, but the scope of the present invention is not limited to this. That is, for each combination of any number of constraint conditions selected from the m constraint conditions C1 to Cm, the problem of determining whether it is an inappropriate combination is also included in the scope of the present invention. In this case, the number of times of solving the optimization problem in the conventional debugging device reaches m times.

[0042] In contrast, the debugging device 1 according to this reference embodiment determines whether any number of groups selected from the n groups G1 to Gn are inappropriate combinations. In this case, the identification unit 12 determines whether a solution to the optimization problem P exists for each combination of any number of groups selected from the n groups G1, G2, ..., Gn, under the constraints included in the groups other than those constituting the combination. Therefore, the number of times the optimization problem is solved in the debugging device 1 according to this reference embodiment is 2 n It can be limited to (n <mなので、2 n ≪2 m Therefore, according to the debugging device 1 of the reference form, the time required to complete the determination can be significantly reduced compared to conventional debugging devices.

[0043] Furthermore, the above modifications to this reference form can also be applied to the reference forms described later.

[0044] (Variation 3) The debugging device 1 according to this reference form may further include an output unit. The output unit is configured to present to the user information representing the group Gj' identified by the identification unit 12, information representing the index j' of the group Gj', information representing the constraints included in the group Gj, or information representing the index of the constraints. The output unit may output this information as an image via a display or as sound via a speaker.

[0045] Furthermore, the above modifications to this reference form can also be applied to the reference forms described later.

[0046] [Reference form 2] A second reference embodiment of the present invention will be described in detail with reference to the drawings. Components having the same function as those described in Reference Embodiment 1 will be denoted by the same reference numerals, and their descriptions will be omitted as appropriate.

[0047] In this reference form, if the variables to be optimized in the optimization problem P (e.g., variables of the objective function) include discrete variables (e.g., integers), a relaxed problem P' obtained by replacing those discrete variables with continuous variables is used to debug the constraints C1, C2, ..., Cm. If there is no solution to the relaxed problem P', it is mathematically guaranteed that there is no solution to the optimization problem P either.

[0048] (Debugging device configuration) The configuration of the debugging device 1A in this reference configuration will be explained with reference to Figure 3. Figure 3 is a block diagram showing the configuration of the debugging device 1A.

[0049] The debugging device 1A is configured by adding a generation unit 13 to the debugging device 1 according to the first reference embodiment.

[0050] The generation unit 13 is configured to generate a relaxation problem P' from an optimization problem P by replacing the variables to be optimized from discrete variables to continuous variables.

[0051] The division unit 11 uses the relaxation problem P' generated by the generation unit 13 to determine whether a solution to the optimization problem P exists under multiple constraint conditions C1, C2, ..., Cm. For example, the division unit 11 determines whether a solution to the relaxation problem P' exists under multiple constraint conditions C1, C2, ..., Cm, and determines that there is no solution to the optimization problem P if there is no solution to the relaxation problem P'. If there is no solution to the relaxation problem P', the division unit 11 divides the multiple constraint conditions C1, C2, ..., Cm into multiple groups G1, G2, ..., Gn.

[0052] Even if a solution to the relaxation problem P' exists, a solution to the optimization problem P may not exist. Therefore, if a solution to the relaxation problem P' exists, the splitting unit 11 may further determine whether or not a solution to the optimization problem P exists.

[0053] The identification unit 12 uses the relaxation problem P' generated by the generation unit 13 to determine whether a solution to the optimization problem P exists under the constraints belonging to groups G1, G2, ..., Gj-1, Gj+1, ..., Gn, excluding group Gj, from among the multiple constraint conditions C1, C2, ..., Cm. For example, the identification unit 12 determines whether a solution to the relaxation problem P' exists under the constraints belonging to groups G1, G2, ..., Gj-1, Gj+1, ..., Gn, excluding group Gj, from among the multiple constraint conditions C1, C2, ..., Cm, and determines that there is no solution to the optimization problem P if there is no solution to the relaxation problem P'.

[0054] Even if a solution to the relaxation problem P' exists, a solution to the optimization problem P may not exist. Therefore, if a solution to the relaxation problem P' exists, the specific unit 12 may further determine whether or not a solution to the optimization problem P exists.

[0055] (Debugging procedure) The flow of debugging method S1A related to this reference form will be explained with reference to Figure 4. Figure 4 is a flowchart showing the flow of debugging method S1A.

[0056] Debugging method S1A is constructed by adding a generation process S13 to debugging method S1 relating to the first reference form.

[0057] The generation process S13 is a process for generating a relaxed problem P' by replacing the variables to be optimized in the optimization problem P from discrete variables to continuous variables. In the debugging device 1A, the generation process S13 is executed by the generation unit 13.

[0058] In the partitioning process S11, the relaxation problem P' generated by the generation process S13 is used to determine whether a solution to the optimization problem P exists under multiple constraint conditions C1, C2, ..., Cm. For example, in the partitioning process S11, it is determined whether a solution to the relaxation problem P' exists under multiple constraint conditions C1, C2, ..., Cm, and if no solution to the relaxation problem P' exists, it is determined that no solution to the optimization problem P exists.

[0059] Note that even if a solution to the relaxation problem P' exists, a solution to the optimization problem P may not exist. Therefore, if a solution to the relaxation problem P' exists, the partitioning process S11 may further determine whether or not a solution to the optimization problem P also exists.

[0060] In a specific process S12, the relaxation problem P' generated by the generation process S13 is used to determine whether a solution to the optimization problem P exists under the constraints belonging to groups G1, G2, ..., Gj-1, Gj+1, ..., Gn, excluding group Gj, from among the multiple constraints C1, C2, ..., Cm. For example, in a specific process S12, it is determined whether a solution to the relaxation problem P' exists under the constraints belonging to groups G1, G2, ..., Gj-1, Gj+1, ..., Gn, excluding group Gj, from among the multiple constraints C1, C2, ..., Cm, and if no solution to the relaxation problem P' exists, it is determined that no solution to the optimization problem P exists.

[0061] Note that even if a solution to the relaxation problem P' exists, a solution to the optimization problem P may not exist. Therefore, if a solution to the relaxation problem P' exists, it may be further determined in the specific process S12 whether or not a solution to the optimization problem P also exists.

[0062] (Effectiveness of debugging devices and debugging methods) While the debugging device 1 in the first reference form solves the optimization problem P of discrete variables, the debugging device 1A in this reference form solves the relaxation problem P' of continuous variables. The optimization problem P, in which the variables to be optimized include discrete variables, belongs to the NP-hard class, whereas the relaxation problem P', in which all the variables to be optimized are continuous variables, belongs to the P class. Therefore, the debugging device 1 in this reference form has the further advantage of being able to identify groups containing inappropriate constraints in a shorter time than the debugging device 1 in the first reference form, or being able to identify groups containing inappropriate constraints within a realistic time even when the debugging device 1 in the first reference form cannot identify such groups within a realistic time.

[0063] [Reference form 3] A third reference embodiment of the present invention will be described in detail with reference to the drawings. Components having the same function as those described in the first reference embodiment will be denoted by the same reference numerals, and their descriptions will be omitted as appropriate.

[0064] (Debugging device configuration) The configuration of the debugging device 1B in this reference configuration will be explained with reference to Figure 5. Figure 5 is a block diagram showing the configuration of the debugging device 1B.

[0065] The debugging device 1B is constructed by adding a division section 14 and a specific section 15 to the debugging device 1 according to the first reference embodiment.

[0066] The division unit 14 is a means for dividing the constraints belonging to the group Gj' identified by the identification unit 12 from among the multiple constraints C1, C2, ..., Cm into multiple subgroups Gj'1, Gj'2, ..., Gj'q. If the number of constraints included in group Gj' is p, then the number of subgroups q is a natural number between 2 and p. When q = p, each subgroup Gj'k will contain one constraint. In this case, each subgroup Gj'k can be considered identical to the constraints included in that subgroup Gj'k.

[0067] The identification unit 15 is a means for identifying a subgroup Gj'k' in which a solution to the optimization problem P exists if it is excluded. The identification unit 12 repeats the following for each k between 1 and q: (1) a selection process to select one subgroup Gi'k from multiple subgroups Gj'1, Gj'2, ..., Gj'q, and (2) a determination process to determine whether a solution to the optimization problem P exists under the constraints included in subgroups Gi'1, Gi'2, ..., Gi'k-1, Gi'k+1, ..., Gi'q other than the selected subgroup Gi'k. The subgroup identified by the identification unit 15 as a subgroup Gj'k' in which a solution to the optimization problem P exists if it is excluded is a subgroup in which a solution to the optimization problem P does not exist under the constraints included in subgroups Gi'1, Gi'2, ..., Gi'k'-1, Gi'k'+1, ..., Gi'q other than the subgroup Gi'k'.

[0068] (Debugging procedure) The flow of debugging method S1B related to this reference form will be explained with reference to Figure 6. Figure 6 is a flowchart showing the flow of debugging method S1B.

[0069] Debugging method S1B is constructed by adding a splitting process S14 and a specific process S15 to debugging method S1 relating to the first reference form.

[0070] The partitioning process S14 is a process for dividing the constraints belonging to group Gj', which are identified by the specific process S12, from among the multiple constraints C1, C2, ..., Cm into multiple subgroups Gj'1, Gj'2, ..., Gj'q. If the number of constraints included in group Gj' is p, then the number of subgroups q is a natural number between 2 and p, inclusive. When q=p, each subgroup Gj'k will contain one constraint. In this case, each subgroup Gj'k can be considered identical to the constraints included in that subgroup Gj'k. In the debugging device 1B, the partitioning process S14 is executed by the partitioning unit 14.

[0071] The specific process S15 is a process for identifying the subgroup Gj'k' that, if excluded, contains a solution to the optimization problem P. In the specific process S15, (1) a selection process is performed to select one subgroup Gi'k from multiple subgroups Gj'1, Gj'2, ..., Gj'q, and (2) a determination process is performed to determine whether a solution to the optimization problem P exists under the constraints included in the subgroups Gi'1, Gi'2, ..., Gi'k-1, Gi'k+1, ..., Gi'q, excluding the selected subgroup Gi'k, from among multiple constraint conditions C1, C2, ..., Cm. These processes are repeated for each k between 1 and q. Excluding the subgroups Gj'k' that contain a solution to the optimization problem P, the subgroups identified in the identification process S15 are those subgroups Gi'1, Gi'2, ..., Gi'k'-1, Gi'k'+1, ..., Gi'q other than Gi'k' that do not contain a solution to the optimization problem P under the constraints. In the debugging device 1B, the identification process S15 is executed by the identification unit 15.

[0072] (Effectiveness of debugging devices and debugging methods) In the first reference embodiment of the debugging device 1, it is determined whether the constraints are appropriate on a group basis, whereas in the debugging device 1 of this reference embodiment, it is determined whether the constraints are appropriate on a subgroup basis. Therefore, the debugging device 1B of this reference embodiment has the further advantage of being able to determine whether the constraints are appropriate at a finer unit (subgroup unit) than the debugging device 1B of the first reference embodiment.

[0073] [Embodiment 1] A first embodiment of the present invention will be described in detail with reference to the drawings. This embodiment is a basic form of the embodiments described later.

[0074] (Configuration of the optimization device) The configuration of the optimization apparatus 2 according to this embodiment will be described with reference to Figure 7. Figure 7 is a block diagram showing the configuration of the optimization apparatus 2.

[0075] Optimization device 2 is a device for solving optimization problems that maximize or minimize the value of the objective function f(x) under m constraints C1, C2, ..., Cm (where m is an arbitrary natural number). Here, m is an arbitrary natural number, and x = (x1, x2, ..., x Γ ) is a variable vector. The constraint Ci is, for example, the inequality Aix + bi ≥ 0. Here, i is each natural number between 1 and m (inclusive), Ai is the coefficient matrix, and bi is the coefficient vector. In other words, under each constraint, the sum of the coefficient matrix and the coefficient vector is a non-negative value.

[0076] The optimization device 2 comprises an addition unit 21, a conversion unit 22, and a calculation unit 23. In this embodiment, the addition unit 21, the conversion unit 22, and the calculation unit 23 are configured to implement the addition means, the conversion means, and the calculation means, respectively.

[0077] The appendage 21 is a configuration for generating a new objective function f'(x, p1, p2, ..., pm) by adding a new variable pi corresponding to each constraint condition Ci (where i is a natural number between 1 and m) to the objective function f(x). The objective function f(x) is also called the first objective function, and the new objective function f'(x, p1, p2, ..., pm) is also called the second objective function. In other words, the appendage 21 is a configuration that adds at least one new variable corresponding to each of at least one constraint conditions to the first objective function to create the second objective function.

[0078] The new objective function f'(x,p1,p2,…,pm) is, for example, f'(x,p1,p2,…,pm) = f(x) + p1 + p2 + … + pm. In other words, the second objective function is the sum of the first objective function and the new variable.

[0079] The transformation unit 22 is configured to transform each constraint condition Ci into a new constraint condition C'i imposed on the corresponding new variable pi. In other words, the transformation unit 22 is configured to transform each constraint condition into a new constraint condition imposed on the corresponding new variable.

[0080] The new constraints C'i are, for example, the inequalities pi≧0 and pi≧-Aix+bi. In other words, the new constraints are expressed by inequalities using a linear combination of the coefficient matrix, the variable, and the coefficient vector, where the corresponding new variable is non-negative.

[0081] The calculation unit 23 is configured to calculate the values ​​of the variable x and each new variable pi of the new objective function f'(x,p1,p2,…,pm) that maximize or minimize the new objective function f'(x,p1,p2,…,pm) under the new constraints C'1, C'2,…,C'm. In other words, the calculation unit 23 is configured to calculate the values ​​of the variable and each new variable of the second objective function that maximize or minimize the second objective function under the new constraints.

[0082] (Optimization process flow) The flow of the optimization method S2 according to this embodiment will be explained with reference to Figure 8. Figure 8 is a flowchart showing the flow of the optimization method S2.

[0083] Optimization method S2 is a method for solving an optimization problem that maximizes or minimizes the value of the objective function f(x) under m constraints C1, C2, ..., Cm. In this embodiment, optimization method S2 is performed by the optimization device 2.

[0084] As shown in Figure 8, the optimization method S2 includes an additional process S21, a transformation process S22, and a calculation process S23.

[0085] The addition process S21 is a process for generating a new objective function f'(x,p1,p2,…,pm) by adding a new variable pi corresponding to each constraint condition Ci to the objective function f(x). In other words, the addition process S21 is a process for adding at least one new variable corresponding to each of at least one constraint conditions to the first objective function to make it a second objective function. The new objective function f'(x,p1,p2,…,pm) is, for example, f'(x,p1,p2,…,pm)=f(x)+p1+p2+…+pm. In this embodiment, the addition process S21 is performed by the addition unit 21 of the optimization device 2.

[0086] The conversion process S22 is a process for converting each constraint condition Ci into a new constraint condition C'i imposed on the corresponding new variable pi. In other words, the conversion process S22 is a process for converting each constraint condition into a new constraint condition imposed on the corresponding new variable. The new constraint conditions C'i are, for example, the inequalities pi≧0 and pi≧-Aix+bi. In this embodiment, the conversion process S22 is performed by the conversion unit 22 of the optimization device 2.

[0087] Calculation process S23 is a process for calculating the values ​​of the variable x and each new variable pi of the new objective function f'(x,p1,p2,…,pm) that maximize or minimize the new objective function f'(x,p1,p2,…,pm) under the new constraints C'1, C'2,…,C'm. In other words, calculation process S23 is a process for calculating the values ​​of the variables and each new variable of the second objective function that maximize or minimize the second objective function under the new constraints. In this embodiment, calculation process S23 is performed by the calculation unit 23 of the optimization device 2.

[0088] (Effects of the optimization device and optimization method) An optimization problem that maximizes or minimizes the value of the new objective function f'(x,p1,p2,…,pm) under the new constraints C'1,C'2,…,C'm is a relaxation problem of the optimization problem that maximizes or minimizes the value of the original objective function f(p1,p2,…,pm) under the original constraints C1,C2,…,Cm. Therefore, an optimization problem that maximizes or minimizes the value of the new objective function f'(x,p1,p2,…,pm) under the new constraints C'1,C'2,…,C'm always has a solution. Accordingly, according to the optimization device 2 of this embodiment, even if the optimization problem that maximizes or minimizes the value of the original objective function f(p1,p2,…,pm) under the original constraints C1,C2,…,Cm does not have a solution, an approximate solution (a solution with the constraints C1,C2,…,Cm loosely applied) can always be obtained.

[0089] Furthermore, the value of the new variable pi that maximizes or minimizes the value of the new objective function f'(x,p1,p2,…,pm) represents the degree of violation of the corresponding constraint Ci. Therefore, according to the optimization apparatus 2 of this embodiment, the degree of violation of each constraint Ci can be obtained along with the approximate solution described above.

[0090] Furthermore, the same effects as those obtained with the optimization apparatus 2 according to this embodiment can be obtained with the optimization method S2 according to this embodiment.

[0091] [Embodiment 2] A second embodiment of the present invention will be described in detail with reference to the drawings. Components having the same function as those described in the first embodiment will be denoted by the same reference numerals, and their descriptions will be omitted as appropriate.

[0092] (Configuration of the optimization device) The configuration of the optimization apparatus 2A according to this embodiment will be described with reference to Figure 9. Figure 9 is a block diagram showing the configuration of the optimization apparatus 2A.

[0093] The optimization device 2A is configured by adding an output unit 24 to the optimization device 2 according to the first embodiment. The output unit 24 is configured to realize an output means in this embodiment.

[0094] The output unit 24 is configured to output the values ​​of the variable vector x, excluding the new variables p1, p2, ..., pm, from the values ​​calculated by the calculation unit 23, as an approximate solution to an optimization problem that maximizes or minimizes the value of the objective function f(x) under the constraint conditions C1, C2, ..., Cm. The output unit 24 is also configured to output the values ​​of each new variable pi, from the values ​​calculated by the calculation unit 23, as the degree of violation of the corresponding constraint condition Ci. The output unit 24 may output these values ​​as an image using a display or as audio using a speaker.

[0095] (Optimization process flow) The configuration of the optimization method S2A according to this embodiment will be described with reference to Figure 10. Figure 10 is a flowchart showing the flow of the optimization method S2A.

[0096] The optimization method S2A is configured by adding an output process S24 to the optimization method S2 according to the first embodiment.

[0097] Output process S24 is a process for outputting the value of the variable vector x, calculated in calculation process S23, as an approximate solution to an optimization problem that maximizes or minimizes the value of the objective function f(x) under constraints C1, C2, ..., Cm. Output process S24 is also a process for outputting the value of each new variable pi, calculated in calculation process S23, as the degree of violation of the corresponding constraint Ci. In output process S24, these values ​​may be output as an image using a display or as audio using a speaker.

[0098] (Effects of the optimization device and optimization method) The optimization device 2A according to this embodiment has the further advantage of being able to inform the user of an approximate solution to an optimization problem that maximizes or minimizes the value of the objective function f(x) under constraint conditions C1, C2, ..., Cm, along with the degree of violation of each constraint condition Ci. The optimization method S2A according to this embodiment also provides the same further advantages as the optimization device 2A according to this embodiment.

[0099] [Combination of Embodiments and Reference Forms] In debugging device 1, the division unit 11 and the identification unit 12 solve the optimization problem to determine whether a solution exists. In this case, the optimization device 2 can be used as a solver to solve the optimization problem. In this case, the division unit 11 and the identification unit 12 determine, for example, that a solution exists for the optimization problem if the degree of violation is 0 for all constraints, and that no solution exists for the optimization problem if the degree of violation is not 0 for any one constraint. Alternatively, they determine that no solution exists for the optimization problem if the degree of violation for all constraints is below a predetermined threshold, and that no solution exists for the optimization problem if any one constraint is in violation but exceeds a predetermined threshold.

[0100] [Reference form 4] (Configuration of the constraint evaluation device) The configuration of the constraint evaluation device 3 in this reference configuration will be explained with reference to Figure 11. Figure 11 is a block diagram showing the configuration of the constraint evaluation device 3.

[0101] The constraint evaluation device 3 is a device for evaluating the degree of satisfaction Si, which indicates how well the solution to the optimization problem satisfies each constraint Ci in an optimization problem where the value of the objective function f(x) is maximized or minimized under m constraints C1, C2, ..., Cm. Here, m is an arbitrary natural number, i is each natural number between 1 and m, and x = (x1, x2, ..., x Γ ) is a variable vector. The constraint Ci to be evaluated is one of the m constraints C1, C2, ..., Cm that can be expressed in the form gi(x)≧0.

[0102] As shown in Figure 11, the constraint evaluation device 3 comprises a calculation unit 31, an evaluation unit 32, and a presentation unit 33.

[0103] The calculation unit 31 is configured to calculate the value of the variable x that maximizes or minimizes the value of the objective function f(x) under m constraint conditions C1, C2, ..., Cm. In other words, it is configured to solve an optimization problem.

[0104] The evaluation unit 32 is configured to calculate the degree of satisfaction Si for each constraint Ci that can be expressed in the form gi(x)≧0 among the m constraint conditions C1, C2, ..., Cm. The evaluation unit 32 calculates the degree of satisfaction Si by substituting the value of the variable x calculated by the calculation unit 31 (i.e., the solution to the optimization problem) into gi(x) that appears on the left side of the constraint condition Ci.

[0105] The presentation unit 33 is configured to present to the user the degree of satisfaction Si calculated by the evaluation unit 32, or an index calculated from the degree of satisfaction Si, for each constraint condition Ci that can be expressed in the form gi(x)≧0 among the m constraint conditions C1, C2, ..., Cm. For example, the presentation unit 33 sorts the m constraint conditions C1, C2, ..., Cm in descending or ascending order of the degree of satisfaction Si and displays it on the display. Alternatively, the presentation unit 33 creates a graph (e.g., a pie chart) showing the degree of satisfaction Si of each constraint condition Ci and displays the created graph on the display. Alternatively, the presentation unit 33 creates a heatmap showing the degree of satisfaction Si of each constraint condition Ci and displays the created heatmap on the display.

[0106] (Flowchart of the constraint evaluation method) The flow of the constraint evaluation method S3 related to this reference form will be explained with reference to Figure 12. Figure 12 is a flowchart showing the flow of the constraint evaluation method S3.

[0107] The constraint evaluation method S3 is a method for evaluating the degree of satisfaction Si, which indicates the extent to which the solution of an optimization problem satisfies each constraint Ci, in an optimization problem where the value of the objective function f(x) is maximized or minimized under m constraints C1, C2, ..., Cm. In this reference embodiment, the constraint evaluation method S3 is performed by the constraint evaluation device 3.

[0108] The constraint evaluation method S3 includes a calculation process S31, an evaluation process t, and a presentation process S33, as shown in Figure 12.

[0109] Calculation process S31 is a process for calculating the value of the variable x that maximizes or minimizes the value of the objective function f(x) under m constraint conditions C1, C2, ..., Cm. In other words, it is a process for solving an optimization problem. In the constraint evaluation device 3 according to this reference embodiment, calculation process S31 is performed by the calculation unit 31.

[0110] The evaluation process S32 is a process for calculating the degree of satisfaction Si for each constraint Ci that can be expressed in the form gi(x)≧0 among the m constraint conditions C1, C2, ..., Cm. In the evaluation process S32, for example, the degree of satisfaction Si is calculated by substituting the value of the variable x calculated in the calculation process S31 (i.e., the solution to the optimization problem) into gi(x) that appears on the left side of the constraint condition Ci. In the constraint condition evaluation device 3 according to this reference embodiment, the evaluation process S32 is executed by the evaluation unit 32.

[0111] The presentation process S33 is a process for presenting to the user the degree of satisfaction Si calculated in the evaluation process S32, or an index calculated from the degree of satisfaction Si, for each constraint condition Ci that can be expressed in the form gi(x)≧0 among the m constraint conditions C1, C2, ..., Cm. For example, in the presentation process S33, the m constraint conditions C1, C2, ..., Cm are sorted in descending or ascending order of the degree of satisfaction Si and displayed on the display. Alternatively, in the presentation process S33, a graph (e.g., a pie chart) showing the degree of satisfaction Si of each constraint condition Ci is created and displayed on the display. Alternatively, in the presentation process S33, a heat map showing the degree of satisfaction Si of each constraint condition Ci is created and displayed on the display. In the constraint condition evaluation device 3 according to this reference embodiment, the presentation process S33 is executed by the presentation unit 33.

[0112] (Effects of constraint evaluation device and constraint evaluation method) The degree of satisfaction Si of the constraint Ci described above is large when the solution to the optimization problem satisfies the constraint Ci with margin, and small when the solution to the optimization problem satisfies the constraint Ci barely. The constraint evaluation device 3 according to this reference embodiment can present the user with a degree of satisfaction Si having such properties. This allows the user to determine whether each constraint Ci is an appropriate or inappropriate constraint by referring to the degree of satisfaction Si. This enables efficient debugging of constraints C1, C2, ..., Cm.

[0113] [Examples of implementation using software] Some or all of the functions of the debugging devices 1, 1A, and 1B, the optimization devices 2 and 2A, and the constraint evaluation device 3 may be implemented by hardware such as integrated circuits (IC chips) or by software.

[0114] In the latter case, the debugging devices 1, 1A, 1B, the optimization devices 2, 2A, and the constraint evaluation device 3 are implemented, for example, by a computer that executes instructions for a program, which is software that implements each function. An example of such a computer (hereinafter referred to as computer C) is shown in Figure 13. Computer C comprises at least one processor C1 and at least one memory C2. The memory C2 stores a program P that causes computer C to operate as debugging devices 1, 1A, 1B, optimization devices 2, 2A, and constraint evaluation device 3. In computer C, the processor C1 reads and executes the program P from memory C2, thereby implementing the functions of debugging devices 1, 1A, 1B, optimization devices 2, 2A, and constraint evaluation device 3.

[0115] For processor C1, for example, a CPU (Central Processing Unit), GPU (Graphic Processing Unit), DSP (Digital Signal Processor), MPU (Micro Processing Unit), FPU (Floating Point Number Processing Unit), PPU (Physics Processing Unit), TPU (Tensor Processing Unit), quantum processor, microcontroller, or a combination thereof can be used. For memory C2, for example, flash memory, HDD (Hard Disk Drive), SSD (Solid State Drive), or a combination thereof can be used.

[0116] Computer C may also be equipped with RAM (Random Access Memory) for loading program P at runtime and for temporarily storing various data. Furthermore, computer C may be equipped with communication interfaces for sending and receiving data with other devices. Additionally, computer C may be equipped with input / output interfaces for connecting input / output devices such as keyboards, mice, displays, and printers.

[0117] Furthermore, program P can be recorded on a non-temporary, tangible recording medium M that is readable by computer C. Such a recording medium M could be, for example, tape, disk, card, semiconductor memory, or programmable logic circuitry. Computer C can acquire program P via such a recording medium M. Program P can also be transmitted via a transmission medium. Such a transmission medium could be, for example, a communication network or broadcast waves. Computer C can also acquire program P via such a transmission medium.

[0118] [Additional Note 1] The present invention is not limited to the embodiments described above, and various modifications are possible within the scope of the claims. For example, embodiments obtained by appropriately combining the technical means disclosed in the embodiments described above are also included in the technical scope of the present invention.

[0119] [Additional Note 2] Some or all of the embodiments described above may also be described as follows. However, the present invention is not limited to the embodiments described below.

[0120] (Note 1) An optimization apparatus comprising: an addition means for adding at least one new variable corresponding to each of at least one constraint conditions to a first objective function to form a second objective function; a conversion means for converting each of the constraint conditions into new constraint conditions imposed on the corresponding new variable; and a calculation means for calculating the variables of the second objective function and the values ​​of each new variable, which maximize or minimize the second objective function under the new constraint conditions.

[0121] (Note 2) The optimization apparatus according to Appendix 1, further comprising an output means that outputs the values ​​of variables other than the new variable from the values ​​calculated by the calculation means as a solution to an optimization problem that maximizes or minimizes the value of the objective function under constraints, wherein the output means outputs the value of each new variable from the values ​​calculated by the calculation means as a degree of violation of the corresponding constraint.

[0122] (Note 3) The optimization apparatus according to Appendix 1 or 2, wherein, in each of the constraints, the sum of the coefficient matrix and the coefficient vector is a non-negative value, the second objective function is the sum of the first objective function and the new variable, and each of the new constraints is expressed by an inequality using a linear sum of the coefficient matrix, the variable and the coefficient vector, where the corresponding new variable is non-negative.

[0123] (Note 4) An optimization method comprising: an optimization device adding at least one new variable corresponding to each of at least one constraint conditions to a first objective function to form a second objective function; converting each of the constraint conditions into new constraint conditions imposed on the corresponding new variable; and calculating the variables of the second objective function and the values ​​of each new variable that maximize or minimize the second objective function under the new constraint conditions.

[0124] (Note 4a) The optimization apparatus described in Appendix 4 further includes outputting the values ​​of variables other than the new variables among the values ​​calculated in the above calculation as a solution to an optimization problem that maximizes or minimizes the value of the objective function under constraints, and in the output, outputting the values ​​of each new variable among the values ​​calculated in the above calculation as the degree of violation of the corresponding constraints.

[0125] (Note 5) A program that causes a computer to function as an optimization device, wherein the computer functions as an addition means that adds at least one new variable corresponding to each of at least one constraint conditions to a first objective function to form a second objective function; a conversion means that converts each of the constraint conditions into new constraint conditions imposed on the corresponding new variable; and a calculation means that calculates a value for the variables of the second objective function and the value of each new variable that maximizes or minimizes the second objective function under the new constraint conditions.

[0126] (Note 5a) The optimization apparatus according to Appendix 1, wherein the computer is further configured as an output means that outputs the values ​​of variables other than the new variables among the values ​​calculated by the calculation means as a solution to an optimization problem that maximizes or minimizes the value of the objective function under constraints, and the output means outputs the values ​​of each new variable among the values ​​calculated by the calculation means as the degree of violation of the corresponding constraints.

[0127] (Note 6) An optimization device comprising at least one processor, wherein the processor performs an addition process to add at least one new variable corresponding to each of at least one constraint conditions to a first objective function to form a second objective function; a conversion process to convert each of the constraint conditions into new constraint conditions imposed on the corresponding new variable; and a calculation process to calculate the variables of the second objective function and the values ​​of each new variable, which maximize or minimize the second objective function under the new constraint conditions.

[0128] Furthermore, this optimization device may also be equipped with memory, which may store a program for causing the processor to execute the addition process, the conversion process, and the calculation process. This program may also be recorded on a computer-readable, non-temporary, tangible recording medium. [Explanation of Symbols]

[0129] 2, 2A optimization device 21 Addition part 22 Conversion section 23 Calculation Section 24 Output section

Claims

1. An addition means for adding at least one new variable corresponding to each of at least one constraint conditions to the first objective function to form a second objective function, A transformation means that converts each of the aforementioned constraints into new constraints imposed on the corresponding new variables, A calculation means for calculating the values ​​of the variables of the second objective function and each new variable, which maximize or minimize the second objective function under the new constraints, The system includes an output means that outputs the values ​​of variables other than the new variable, among the values ​​calculated by the calculation means, as a solution to an optimization problem that maximizes or minimizes the value of the objective function under constraints, The output means sorts and outputs the new constraints in descending or ascending order of satisfaction. Optimization device.

2. The system further includes an output means that outputs the values ​​of variables other than the new variable, among the values ​​calculated by the calculation means, as a solution to an optimization problem that maximizes or minimizes the value of the objective function under constraints. The output means is characterized by outputting the value of each new variable from the values ​​calculated by the calculation means as the degree of violation of the corresponding constraint condition. The optimization apparatus according to claim 1.

3. In each of the above constraints, the sum of the coefficient matrix and the coefficient vector is a non-negative value. The second objective function is the sum of the first objective function and the new variable. Each of the aforementioned new constraints is non-negative, and can be expressed by an inequality using a linear combination of the coefficient matrix, the variable, and the coefficient vector. The optimization apparatus according to claim 1 or 2.

4. The optimization device, Adding at least one new variable corresponding to each of at least one constraint to the first objective function results in a second objective function, The process involves transforming each of the aforementioned constraints into new constraints imposed on the corresponding new variables, To calculate the values ​​of the variables of the second objective function and each new variable that maximize or minimize the second objective function under the new constraints, This includes outputting the values ​​of the variables other than the new variable from the aforementioned values ​​as the solution to an optimization problem that maximizes or minimizes the value of the objective function under constraints, The output sorts the aforementioned new constraints in descending or ascending order of satisfaction. Optimization method.

5. A program that makes a computer function as an optimization device, The aforementioned computer, An addition means for adding at least one new variable corresponding to each of at least one constraint conditions to the first objective function to form a second objective function, A transformation means that converts each of the aforementioned constraints into new constraints imposed on the corresponding new variables, A calculation means for calculating the values ​​of the variables of the second objective function and each new variable, which maximize or minimize the second objective function under the new constraints, The values ​​of the variables other than the new variable, calculated by the calculation means, are used as an output means to output the solution to an optimization problem that maximizes or minimizes the value of the objective function under constraints. The output sorts the aforementioned new constraints in descending or ascending order of satisfaction. program.

Citation Information

Patent Citations

  • Steady state optimization method suitable for process industry predictive control

    CN113031451A

  • Optimal output deciding method and device therefor

    JP1999259450A

  • Fashion coordinate recommendation system

    JP2017027597A

  • Decision-making support device, decision-making support method, and program

    JP2021144569A

  • Software inspection apparatus

    WO2016121074A1