Information processing program, information processing method, and information processing device
By identifying and registering the corresponding information of variable pairs and setting the second corresponding information based on the variable relationship, the problem of variables appearing only in one constraint in the 0-1 integer programming problem is solved, which improves the solution efficiency and accuracy.
Patent Information
- Application Number
- JP2023164045
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-26
- Publication Date
- 2025-04-08
AI Technical Summary
The prior art is difficult to effectively solve the problem of 0-1 integer programming, especially when the variable only appears in one constraint, the solution space cannot be effectively narrowed, making it difficult to solve.
By identifying the pair of variables that appear in the constraints less than the total number of constraints, registering the corresponding corresponding information, and setting the second type of corresponding information based on the variable relationship to determine the target group variable for value reversal search.
Improve the solution efficiency of 0-1 integer programming problem, and can calculate the appropriate solution more accurately, reducing the processing burden and time.
Smart Images

Figure 2025054857000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to an information processing program, an information processing method, and an information processing device. [Background technology]
[0002] Weighted local search is a conventional metaheuristic for solving binary integer programming problems that involve multiple variables, each of which takes the value of 0 or 1. For example, weighted local search may solve binary integer programming problems while narrowing down the space in which to search for a solution to the problem based on the degree of relationship between variables.
[0003] Prior art techniques, for example, include techniques for solving 0 / 1 integer programming problems while narrowing down the space for searching for a solution to the problem based on the degree of relationship between variables. [Prior art documents] [Non-patent literature]
[0004] [Non-Patent Document 1] Umetani, Shunji. “Exploiting variable associations to configure efficient local search algorithms in large-scale binary integer programs.” European Journal of Operational Research 263.1 (2017): 72-81. Summary of the Invention [Problem to be solved by the invention]
[0005] However, there are cases where it is difficult to solve a 0-1 integer programming problem with the conventional technology described in Non-Patent Document 1. For example, when a 0-1 integer programming problem includes a variable that appears in only one constraint condition, it may not be possible to appropriately narrow down the space for searching for a solution to the 0-1 integer programming problem based on the degree of relationship between the variables, and it may not be possible to solve the 0-1 integer programming problem.
[0006] In one aspect, the present invention aims to make it easier to solve 0-1 integer programming problems. [Means for solving the problem]
[0007] According to one embodiment, there are proposed an information processing program, an information processing method, and an information processing device that obtain a plurality of constraint conditions each including at least one of a plurality of variables that form a 0-1 integer programming problem including a plurality of variables each taking a value of 0 or 1, identify pairs of a variable that appears only in a predetermined number of constraint conditions among the plurality of constraint conditions, the predetermined number of constraint conditions being less than a total number of constraint conditions, and the predetermined number of constraint conditions in which the variable appears, register, in a storage unit, first correspondence information that associates the variable of the pair with another variable that appears in at least one of the predetermined number of constraint conditions of the pair for each of the identified pairs, register, in the storage unit, second correspondence information that associates at least one of the plurality of variables with another variable that has a relationship degree with any of the plurality of variables that is equal to or greater than a certain degree, based on a relationship degree between the variables in the plurality of variables, and determine, based on the first correspondence information and the second correspondence information, a group of any two or more associated variables among the plurality of variables as a target for inverting values, thereby searching for a solution to the 0-1 integer programming problem. Effect of the Invention
[0008] According to one aspect, it is possible to make 0-1 integer programming problems easier to solve. [Brief description of the drawings]
[0009] [Figure 1]FIG. 1 is a diagram illustrating an example of an information processing method according to an embodiment. [Diagram 2] FIG. 2 is an explanatory diagram illustrating an example of an information processing system 200. As shown in FIG. [Diagram 3] FIG. 3 is a block diagram showing an example of a hardware configuration of the information processing device 100. As shown in FIG. [Figure 4] FIG. 4 is a block diagram showing an example of a functional configuration of the information processing device 100. As shown in FIG. [Diagram 5] FIG. 5 is an explanatory diagram showing an example of the operation of the information processing device 100. As shown in FIG. [Figure 6] FIG. 6 is an explanatory diagram showing a specific example of the operation of the information processing device 100. [Figure 7] FIG. 7 is an explanatory diagram showing an application example of the information processing device 100. [Figure 8] FIG. 8 is a flowchart illustrating an example of an overall processing procedure. [Figure 9] FIG. 9 is a flowchart illustrating an example of an initialization process procedure. [Figure 10] FIG. 10 is a flowchart illustrating an example of a 1-flip neighborhood search process procedure. [Figure 11] FIG. 11 is a flowchart illustrating an example of a 2-flip neighborhood search process procedure. [Figure 12] FIG. 12 is a flowchart illustrating an example of a (3,4)-flip neighborhood search process. [Figure 13] FIG. 13 is a flowchart illustrating an example of an update process procedure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, an embodiment of an information processing program, an information processing method, and an information processing device according to the present invention will be described in detail with reference to the drawings.
[0011] (An example of an information processing method according to an embodiment) 1 is an explanatory diagram showing an example of an information processing method according to an embodiment. An information processing device 100 is a computer for calculating a solution to a 0-1 integer programming problem. The information processing device 100 is, for example, a server or a PC (Personal Computer).
[0012] A 0-1 integer programming problem includes multiple variables, each of which takes a value of 0 or 1. A solution to a 0-1 integer programming problem is a combination of the values of the multiple variables. A 0-1 integer programming problem includes, for example, an objective function using multiple variables as an object to be optimized. The optimization is, for example, minimization or maximization. Specifically, the objective function is defined by the following formula (1). N is an index set of variables. x j is the jth variable. j is the coefficient for the jth variable.
[0013]
number
[0014] The 0-1 integer programming problem includes, for example, a plurality of constraint conditions. The constraint conditions include, for example, at least one or more variables among a plurality of variables. Specifically, the constraint conditions are defined by the following formulas (2) to (4). M L is the index set of the inequality constraints that serve as constraints. M E is the index set of the equality constraints that serve as constraints. ij is the coefficient for the jth variable. i is a constant.
[0015]
number
[0016]
number
[0017]
number
[0018] Conventionally, there is a weighted local search method as a metaheuristic for solving a 0-1 integer programming problem. For the weighted local search method, see Non-Patent Document 1 above. For example, in the weighted local search method, a 0-1 integer programming problem may be solved while narrowing down the space for searching for a solution to the 0-1 integer programming problem based on the degree of relationship between variables. For example, the greater the number of constraint conditions that include both of two variables among multiple constraint conditions, the greater the value of the degree of relationship between the two variables.
[0019] Specifically, in the weighted local search method, a term related to the violation amount of each of the constraints is added to the objective function, thereby applying each of the constraints to the objective function. The term is, for example, a product of the violation amount of the constraint multiplied by a coefficient. Specifically, in the weighted local search method, a solution to the 0-1 integer programming problem is searched for by repeatedly performing a series of processes based on the objective function until a termination condition is satisfied.
[0020] Specifically, the series of processes includes a one-flip neighborhood search process that evaluates whether a solution candidate obtained by inverting the value of any variable from the tentative solution brings the value of the objective function closer to an appropriate direction than the tentative solution. Specifically, in the one-flip neighborhood search process, if a solution candidate obtained by inverting the value of any variable from the tentative solution brings the value of the objective function closer to an appropriate direction than the tentative solution, the tentative solution is updated with the solution candidate.
[0021] Specifically, the series of processes includes a 2-flip neighborhood search process that is performed when the tentative solution is not updated in the 1-flip neighborhood search process. Specifically, the 2-flip neighborhood search process evaluates whether a solution candidate obtained by inverting the values of any two variables with a large degree of relationship from the tentative solution brings the value of the objective function closer to an appropriate direction than the tentative solution based on the degree of relationship between the variables. Specifically, the 2-flip neighborhood search process updates the tentative solution with the solution candidate if a solution candidate obtained by inverting the values of any two variables with a large degree of relationship from the tentative solution brings the value of the objective function closer to an appropriate direction than the tentative solution.
[0022] Specifically, the series of processes includes a (3,4)-flip neighborhood search process that is performed when the tentative solution is not updated in the 2-flip neighborhood search process. Specifically, the (3,4)-flip neighborhood search process evaluates whether a solution candidate obtained by inverting the values of any three or four variables with a large degree of relationship from the tentative solution based on the degree of relationship between the variables brings the value of the objective function closer to an appropriate direction than the tentative solution. Specifically, the (3,4)-flip neighborhood search process updates the tentative solution with the solution candidate if a solution candidate obtained by inverting the values of any three or four variables with a large degree of relationship from the tentative solution brings the value of the objective function closer to an appropriate direction than the tentative solution.
[0023] Specifically, in the weighted local search method, if the provisional solution is not updated when a series of processes is performed this time, the coefficient multiplied by the violation amount of at least one of the constraint conditions may be updated before the series of processes is performed next time.
[0024] Specifically, in the weighted local search method, if the tentative solution has been updated one or more times after the coefficient multiplied by the violation amount of at least any of the constraints was last updated, the coefficient multiplied by at least any of the constraints may be updated to a value larger than the current value. Specifically, in the weighted local search method, if the tentative solution has not been updated after the coefficient multiplied by the violation amount of at least any of the constraints was last updated, the coefficient multiplied by at least any of the constraints may be updated to a value smaller than the current value.
[0025] However, in the past, it was sometimes difficult to calculate a solution to a 0-1 integer programming problem. For example, when a variable exists that appears in only one constraint condition, the degree of relationship between the variable and other variables is relatively small. For this reason, in the 2-flip neighborhood search process and the (3,4)-flip neighborhood search process, a group of a variable that appears in only one constraint condition and other variables is not selected as a target for flipping values. As a result, it may not be possible to appropriately narrow down the space for searching for a solution to a 0-1 integer programming problem.
[0026] As a result, in the conventional technology, for example, it may not be possible to appropriately search for a solution to a 0-1 integer programming problem, and it may not be possible to accurately calculate a solution to the 0-1 integer programming problem.
[0027] In response to this, a method can be considered in which the weighted local search method is modified so that a series of processes is repeatedly performed to calculate and evaluate solution candidates with inverted values for all possible groups that contain two or more variables, regardless of the degree of relationship. This method has the problem that the processing load and processing time required to perform the series of processes are enormous, making it impossible to efficiently calculate a solution to a 0-1 integer programming problem.
[0028] Therefore, in this embodiment, an information processing method that can make it easier to solve a 0-1 integer programming problem will be described. According to this embodiment, for example, a provisional solution can accurately calculate an appropriate solution to a 0-1 integer programming problem while reducing the processing load and processing time required until an appropriate solution to the 0-1 integer programming problem is found.
[0029] In FIG. 1, (1-1) the information processing device 100 acquires a 0-1 integer programming problem 110. The 0-1 integer programming problem 110 includes a plurality of variables each taking a value of 0 or 1. The 0-1 integer programming problem 110 is a 0-1 integer programming problem. The information processing device 100 acquires, for example, an objective function that forms the 0-1 integer programming problem 110. The information processing device 100 acquires, for example, a plurality of constraint conditions that form the 0-1 integer programming problem 110. The constraint conditions include at least one of a plurality of variables. The constraint conditions are mathematical expressions. In the example of FIG. 1, the variables are, specifically, x i and y j Here, for the sake of convenience, we refer to a variable that appears in only one constraint as y j A variable that appears in two or more constraints is denoted as x i It is written as follows.
[0030] (1-2) The information processing device 100 identifies pairs 120 of a variable that appears only in a predetermined number of constraint conditions, which is less than the total number of constraint conditions, among a plurality of constraint conditions, and a predetermined number of constraint conditions in which the variable appears. The predetermined number is, for example, 1. In the example of FIG. 1, the information processing device 100 specifically identifies a variable y1 that appears only in one constraint condition and a variable y2 that appears only in one constraint condition. The information processing device 100 specifically identifies a pair 121 with one constraint condition in which the identified variable y1 appears. The information processing device 100 specifically identifies a pair 122 with one constraint condition in which the identified variable y2 appears.
[0031] (1-3) The information processing device 100 registers, for each identified pair 120, first correspondence information that associates the variable of the pair 120 with another variable appearing in at least one of a predetermined number of constraint conditions of the pair 120 in the storage unit 150. In the example of FIG. 1, specifically, the information processing device 100 registers, in the storage unit 150, first correspondence information that associates the variable y1 of the identified pair 121 with other variables x2, x3, and x5 appearing in the constraint conditions of the pair 121 as shown in Table 130. Specifically, the information processing device 100 registers, in the storage unit 150, first correspondence information that associates the variable y2 of the identified pair 122 with other variables x1, x3, and x6 appearing in the constraint conditions of the pair 122 as shown in Table 130.
[0032] (1-4) The information processing device 100 registers in the storage unit 150 second correspondence information that associates at least one of the multiple variables with another variable having a certain degree of relationship with the one of the multiple variables or more based on the degree of relationship between the multiple variables. The degree of relationship is, for example, an index value proportional to the number of constraint conditions in which the two variables commonly appear. Specifically, the degree of relationship between the two variables is an index value that increases as the number of constraint conditions in which the two variables commonly appear increases. The information processing device 100 registers in the storage unit 150 second correspondence information that associates at least one of the multiple variables with another variable having a certain degree of relationship with the one of the multiple variables or more, which is the largest.
[0033] In the example of FIG. 1, the information processing device 100 specifically registers in the storage unit 150 second correspondence information associating the variable x1 with the variable x2 having a relationship degree with the variable x1 that is equal to or greater than a certain level and is the largest, as shown in Table 140. The information processing device 100 specifically registers in the storage unit 150 second correspondence information associating the variable x2 with the variable x1 having a relationship degree with the variable x2 that is equal to or greater than a certain level and is the largest, as shown in Table 140. The information processing device 100 specifically registers in the storage unit 150 second correspondence information associating the variable x3 with the variables x1 and x2 having a relationship degree with the variable x3 that is equal to or greater than a certain level and is the largest, as shown in Table 140. The information processing device 100 specifically registers in the storage unit 150 second correspondence information associating the variable x5 with the variable x1 having a relationship degree with the variable x5 that is equal to or greater than a certain level and is the largest, as shown in Table 140. Specifically, as shown in table 140, the information processing device 100 registers in the storage unit 150 second correspondence information that associates the variable x6 with the variable x1, which has a relationship degree with the variable x6 that is equal to or greater than a certain degree and is the largest.
[0034] (1-5) The information processing device 100 calculates a solution to the 0-1 integer programming problem 110 by searching for a solution to the 0-1 integer programming problem 110 with reference to the storage unit 150. The information processing device 100 searches for a solution to the 0-1 integer programming problem 110 by, for example, determining a group of any two or more associated variables among the multiple variables as a target for inverting values based on the first correspondence information and the second correspondence information. Specifically, the information processing device 100 implements a weighted local search method that is expanded so as to determine a group of any two or more associated variables as a target for inverting values based on the first correspondence information and the second correspondence information.
[0035] This allows the information processing device 100 to easily solve the 0-1 integer programming problem 110. For example, the information processing device 100 can accurately calculate the solution to the 0-1 integer programming problem 110, can efficiently calculate the solution to the 0-1 integer programming problem 110, and can reduce the time required to calculate the solution to the 0-1 integer programming problem 110. Specifically, the information processing device 100 can determine, as a target for inverting values, a group including a variable that appears in only one constraint condition, which is not a target for inverting values when only the degree of relationship is referred to, and can make the 0-1 integer programming problem 110 easier to solve.
[0036] Here, the case where the predetermined number is 1 has been described, but the present invention is not limited to this. For example, the predetermined number may be a number equal to or greater than 2 and less than the total number of constraint conditions. Specifically, the predetermined number may be a specified fraction of the total number of constraint conditions.
[0037] Here, the case where the information processing device 100 performs an extended weighted local search method based on an existing algorithm of the weighted local search method has been described, but the present invention is not limited to this. For example, the information processing device 100 may search for a solution to the 0-1 integer programming problem 110 based on the first correspondence information and the second correspondence information using a new algorithm different from the existing algorithm of the weighted local search method.
[0038] Here, the case where the functions of the information processing device 100 are realized by a single computer has been described, but the present invention is not limited to this. For example, the functions of the information processing device 100 may be realized by cooperation of a plurality of computers. For example, the functions of the information processing device 100 may be realized on the cloud.
[0039] (An example of the information processing system 200) Next, an example of an information processing system 200 to which the information processing device 100 shown in FIG. 1 is applied will be described with reference to FIG.
[0040] 2 is an explanatory diagram showing an example of an information processing system 200. In FIG. 2, the information processing system 200 includes an information processing device 100 and one or more client devices 201.
[0041] In the information processing system 200, the information processing device 100 and the client device 201 are connected via a wired or wireless network 210. The network 210 is, for example, a local area network (LAN), a wide area network (WAN), or the Internet.
[0042] The information processing device 100 is a computer for calculating a solution to a 0-1 integer programming problem. The information processing device 100 receives a processing request requesting to calculate a solution to the 0-1 integer programming problem from a client device 201. The processing request includes, for example, the 0-1 integer programming problem. The processing request includes, for example, an objective function that forms the 0-1 integer programming problem. The processing request includes, for example, a plurality of constraint conditions that form the 0-1 integer programming problem. Based on the received processing request, the information processing device 100 acquires an objective function that forms the 0-1 integer programming problem and a plurality of constraint conditions that form the 0-1 integer programming problem.
[0043] The information processing device 100 calculates the degree of relationship between multiple variables based on multiple constraint conditions. The degree of relationship is, for example, an index value proportional to the number of constraint conditions that two variables commonly appear under. Specifically, the degree of relationship between two variables is an index value that increases as the number of constraint conditions that the two variables commonly appear under increases.
[0044] The information processing device 100 identifies pairs of a variable that appears only in a predetermined number of constraint conditions, which is less than the total number of constraint conditions, among the multiple constraint conditions, and a predetermined number of constraint conditions in which the variable appears. The predetermined number is, for example, 1. For each identified pair, the information processing device 100 registers in the storage unit first correspondence information that associates the paired variable with another variable that appears in at least one of the predetermined number of constraint conditions of the pair.
[0045] The information processing device 100 registers in the storage unit second correspondence information that associates at least one of the multiple variables with another variable having a certain degree of relationship with the one of the multiple variables based on the degree of relationship between the multiple variables. For example, the information processing device 100 registers in the storage unit second correspondence information that associates at least one of the multiple variables with a specified number of other variables that have a certain degree of relationship with the one of the variables or more and are in descending order of the degree of relationship with the one of the variables.
[0046] The information processing device 100 calculates a solution to the 0-1 integer programming problem by searching for a solution to the 0-1 integer programming problem with reference to the storage unit. The information processing device 100 searches for a solution to the 0-1 integer programming problem by determining, for example, a group of two or more associated variables among the multiple variables as a target for inverting values based on the first correspondence information and the second correspondence information.
[0047] Specifically, the information processing device 100 performs a weighted local search method that is expanded so as to determine a group of two or more associated variables as a target for inverting values based on the first correspondence information and the second correspondence information. The information processing device 100 transmits the calculated solution to the 0-1 integer programming problem to the client device 201. The information processing device 100 is, for example, a server or a PC.
[0048] The client device 201 is a computer for setting a 0-1 integer programming problem. The client device 201 sets the 0-1 integer programming problem based on an operational input from a user. The client device 201 sets an objective function that forms the 0-1 integer programming problem and a plurality of constraint conditions that form the 0-1 integer programming problem based on, for example, an operational input from a user.
[0049] The client device 201 generates a processing request that includes an objective function forming the set 0-1 integer programming problem and a plurality of constraint conditions forming the set 0-1 integer programming problem and requests calculation of a solution to the 0-1 integer programming problem. The client device 201 transmits the generated processing request to the information processing device 100. The client device 201 receives the solution to the 0-1 integer programming problem from the information processing device 100. The client device 201 outputs the solution to the 0-1 integer programming problem so that the user can refer to it. The client device 201 is, for example, a PC, a tablet terminal, or a smartphone.
[0050] Here, the case where the information processing device 100 is a computer different from the client device 201 has been described, but this is not limited thereto. For example, the information processing device 100 may have a function as the client device 201 and may also operate as the client device 201.
[0051] (Example of hardware configuration of information processing device 100) Next, an example of the hardware configuration of the information processing device 100 will be described with reference to FIG.
[0052] Fig. 3 is a block diagram showing an example of a hardware configuration of the information processing device 100. In Fig. 3, the information processing device 100 has a CPU (Central Processing Unit) 301, a memory 302, a network I / F (Interface) 303, a recording medium I / F 304, and a recording medium 305. In addition, each component is connected to each other via a bus 300.
[0053] Here, the CPU 301 is responsible for the overall control of the information processing device 100. The memory 302 has, for example, a read only memory (ROM), a random access memory (RAM), and a flash ROM. Specifically, for example, the flash ROM and the ROM store various programs, and the RAM is used as a work area for the CPU 301. The programs stored in the memory 302 are loaded into the CPU 301, causing the CPU 301 to execute the coded processes.
[0054] The network I / F 303 is connected to the network 210 through a communication line, and is connected to other computers via the network 210. The network I / F 303 manages an internal interface with the network 210, and controls input and output of data from other computers. The network I / F 303 is, for example, a modem or a LAN adapter.
[0055] The recording medium I / F 304 controls reading / writing data from / to the recording medium 305 under the control of the CPU 301. The recording medium I / F 304 is, for example, a disk drive, a solid state drive (SSD), a universal serial bus (USB) port, etc. The recording medium 305 is a non-volatile memory that stores data written under the control of the recording medium I / F 304. The recording medium 305 is, for example, a disk, a semiconductor memory, a USB memory, etc. The recording medium 305 may be detachable from the information processing device 100.
[0056] In addition to the above-mentioned components, the information processing device 100 may have, for example, a keyboard, a mouse, a display, a printer, a scanner, a microphone, a speaker, etc. Furthermore, the information processing device 100 may have a plurality of recording medium I / Fs 304 and recording media 305. Furthermore, the information processing device 100 may not have the recording medium I / Fs 304 and the recording media 305.
[0057] (Example of Hardware Configuration of Client Device 201) Specifically, an example of the hardware configuration of the client device 201 is similar to the example of the hardware configuration of the information processing device 100 shown in FIG. 3, and therefore a description thereof will be omitted.
[0058] (Example of functional configuration of information processing device 100) Next, an example of a functional configuration of the information processing device 100 will be described with reference to FIG.
[0059] 4 is a block diagram showing an example of a functional configuration of the information processing device 100. The information processing device 100 includes a storage unit 400, an acquisition unit 401, a first registration unit 402, a second registration unit 403, a search unit 404, and an output unit 405.
[0060] The storage unit 400 is realized by, for example, a storage area such as the memory 302 or the recording medium 305 shown in Fig. 3. In the following, a case where the storage unit 400 is included in the information processing device 100 will be described, but this is not limiting. For example, the storage unit 400 may be included in a device different from the information processing device 100, and the stored contents of the storage unit 400 may be accessible from the information processing device 100.
[0061] The acquiring unit 401 to the output unit 405 function as an example of a control unit. Specifically, the acquiring unit 401 to the output unit 405 realize their functions by, for example, causing the CPU 301 to execute a program stored in a storage area such as the memory 302 or the recording medium 305 shown in Fig. 3, or by the network I / F 303. The processing results of each functional unit are stored in, for example, a storage area such as the memory 302 or the recording medium 305 shown in Fig. 3.
[0062] The storage unit 400 stores various information that is referred to or updated in the processing of each functional unit. The storage unit 400 stores, for example, a 0-1 integer programming problem. The 0-1 integer programming problem is a 0-1 integer programming problem that includes multiple variables each of which takes a value of 0 or 1. Specifically, the storage unit 400 stores multiple constraint conditions that form the 0-1 integer programming problem. The constraint condition is, for example, a mathematical expression that includes at least one or more variables among the multiple variables. The multiple constraint conditions are acquired by, for example, the acquisition unit 401.
[0063] Specifically, the storage unit 400 stores an objective function forming a 0-1 integer programming problem. The objective function is a formula expressing an evaluation value to be optimized. The evaluation value expresses, for example, cost or profit. The optimization is, for example, minimization or maximization. Specifically, the evaluation value expressing the cost is the object to be minimized. Specifically, the evaluation value expressing the profit is the object to be maximized. The objective function further includes a product of the violation amount of each of the multiple constraint conditions multiplied by a parameter serving as a coefficient so as to aim at reducing the violation amount of each of the multiple constraint conditions. The objective function is acquired, for example, by the acquisition unit 401.
[0064] The storage unit 400 stores, for example, the degree of relationship between multiple variables. The degree of relationship is, for example, an index value proportional to the number of constraint conditions in which two variables commonly appear among multiple constraint conditions. Specifically, the degree of relationship between two variables is an index value that increases as the number of constraint conditions in which the two variables commonly appear increases. The storage unit 400 stores, for example, correspondence information that associates two or more variables among the multiple variables. The correspondence information is generated, for example, by the first registration unit 402 or the second registration unit 403.
[0065] The storage unit 400 stores, for example, a tentative solution to a 0-1 integer programming problem. The tentative solution to a 0-1 integer programming problem is a combination of the values of a plurality of variables. The tentative solution to a 0-1 integer programming problem is calculated, for example, by the search unit 404. The storage unit 400 stores, for example, solution candidates to a 0-1 integer programming problem. The solution candidates to a 0-1 integer programming problem are a combination of the values of a plurality of variables. The solution candidates to a 0-1 integer programming problem are calculated, for example, by the search unit 404.
[0066] The acquisition unit 401 acquires various information used for processing by each functional unit. The acquisition unit 401 stores the acquired various information in the storage unit 400 or outputs it to each functional unit. The acquisition unit 401 may also output the various information stored in the storage unit 400 to each functional unit. The acquisition unit 401 acquires various information based on, for example, an operation input by a user. The acquisition unit 401 may receive various information from, for example, a device different from the information processing device 100.
[0067] The acquiring unit 401 acquires, for example, a processing request requesting to calculate a solution to a 0-1 integer programming problem. The solution to the 0-1 integer programming problem is calculated, for example, by the searching unit 404. The processing request may include, for example, a plurality of constraint conditions forming the 0-1 integer programming problem. The processing request may include, for example, an objective function forming the 0-1 integer programming problem. Specifically, the acquiring unit 401 acquires the processing request by accepting an input of the processing request based on an operation input by a user. Specifically, the acquiring unit 401 acquires the processing request by receiving it from another computer.
[0068] The acquiring unit 401 acquires, for example, a plurality of constraint conditions forming a 0-1 integer programming problem. Specifically, the acquiring unit 401 acquires the plurality of constraint conditions by extracting them from the acquired processing request. Specifically, the acquiring unit 401 may acquire the plurality of constraint conditions by accepting input of the plurality of constraint conditions based on an operation input by a user. Specifically, the acquiring unit 401 may acquire the plurality of constraint conditions by receiving them from another computer.
[0069] The acquiring unit 401 acquires, for example, an objective function forming a 0-1 integer programming problem. Specifically, the acquiring unit 401 acquires the objective function by extracting it from the acquired processing request. Specifically, the acquiring unit 401 may acquire the objective function by accepting an input of the objective function based on an operation input by a user. Specifically, the acquiring unit 401 may acquire the objective function by receiving it from another computer.
[0070] Specifically, when the acquired objective function does not include a product of a violation amount of each of the plurality of constraint conditions multiplied by a parameter serving as a coefficient, the acquiring unit 401 may extend the objective function to include the product. More specifically, the acquiring unit 401 extends the objective function by adding a product of a violation amount of each of the plurality of constraint conditions multiplied by a parameter serving as a coefficient to the acquired objective function, so as to reduce the violation amount of each of the plurality of constraint conditions.
[0071] The acquiring unit 401 may acquire, for example, a termination instruction requesting output of a solution to a 0-1 integer programming problem. Specifically, the acquiring unit 401 acquires the termination instruction by accepting input of the termination instruction based on an operation input by a user. Specifically, the acquiring unit 401 acquires the termination instruction by receiving it from another computer.
[0072] The acquisition unit 401 may receive a start trigger for starting processing of any of the functional units. The start trigger may be, for example, a predetermined operation input by a user. The start trigger may be, for example, reception of predetermined information from another computer. The start trigger may be, for example, output of predetermined information by any of the functional units.
[0073] The acquiring unit 401 accepts, for example, the acquisition of a processing request as a start trigger for starting the processing of the first registration unit 402, the second registration unit 403, and the searching unit 404.
[0074] The first registration unit 402 generates first correspondence information that associates two or more variables among the multiple variables, and registers the information in the storage unit 400. The first registration unit 402, for example, identifies pairs of a variable that appears only in a predetermined number of constraint conditions, which is less than the total number of constraint conditions, among the multiple constraint conditions, and a predetermined number of constraint conditions in which the variable appears. For example, for each identified pair, the first registration unit 402 generates first correspondence information that associates the variable of the pair with another variable that appears in at least one of the predetermined number of constraint conditions of the pair, and registers the information in the storage unit 400. In this way, the first registration unit 402 can identify a group of two or more variables for which it is preferable to attempt to invert the value, regardless of the degree of relationship between the variables.
[0075] The first registration unit 402 may not need to specify all pairs of a variable that appears only in a predetermined number of constraint conditions (less than the total number of constraint conditions) among the multiple constraint conditions at once, and the predetermined number of constraint conditions in which the variable appears. This allows the first registration unit 402 to reduce the amount of processing.
[0076] The second registration unit 403 generates second correspondence information that associates two or more variables among the multiple variables, and registers the second correspondence information in the storage unit 400. For example, based on the degree of relationship between the variables, the second registration unit 403 generates second correspondence information that associates at least one of the multiple variables with another variable that has a certain degree of relationship or higher with the one variable, and registers the second correspondence information in the storage unit 400. In this way, the second registration unit 403 can make it possible to identify a group of two or more variables for which it is preferable to attempt to invert the value, according to the degree of relationship between the variables.
[0077] The second registration unit 403 may not need to generate all of the second correspondence information at once that associates each of a plurality of variables with other variables that have a certain degree of relationship with the variable. This allows the second registration unit 403 to reduce the amount of processing.
[0078] The search unit 404 refers to the storage unit 400 and determines, based on the first correspondence information and the second correspondence information, a group of any two or more associated variables among the multiple variables as a target for inverting values, thereby searching for a solution to the 0-1 integer programming problem. The predetermined number is, for example, 1. The predetermined number may be, for example, a number equal to or greater than 2 and less than the total number of constraint conditions. The predetermined number may be, for example, a specified fraction of the total number of constraint conditions.
[0079] The search unit 404 searches for a solution to the 0-1 integer programming problem by repeatedly performing a series of processes for updating a tentative solution to the 0-1 integer programming problem based on the first correspondence information and the second correspondence information, for example, with reference to the storage unit 400, until a termination condition is satisfied. The termination condition is, for example, that the elapsed time since the first execution of the series of processes exceeds a predetermined length.
[0080] The termination condition may be, for example, that a series of processes has been performed a predetermined number of times. The termination condition may be, for example, that a termination instruction has been acquired by the acquisition unit 401. The termination condition may be, for example, that the number of times that a tentative solution of a 0-1 integer programming problem is not continuously updated exceeds a predetermined threshold. The termination condition may be, for example, that a value of an objective function for the tentative solution has become a predetermined value.
[0081] The series of processes, for example, determine one or more groups each including any two or more associated variables. For example, for each of the determined one or more groups, the series of processes identify a solution candidate for the 0-1 integer programming problem obtained by inverting the value of the group from the tentative solution of the 0-1 integer programming problem. The series of processes, for example, determine based on the objective function whether or not there is any solution candidate among the identified solution candidates that brings the value of the objective function closer to an appropriate direction than the tentative solution. For example, when there is any solution candidate that brings the value of the objective function closer to an appropriate direction than the tentative solution, the series of processes updates the tentative solution with any of the solution candidates.
[0082] Specifically, the series of processes includes a first process. The first process, for example, for each of a plurality of variables, identifies a first solution candidate of the 0-1 integer programming problem by inverting the value of the variable from a tentative solution of the 0-1 integer programming problem. The first process, for example, based on an objective function, determines whether or not there is any first solution candidate among the identified first solution candidates that brings the value of the objective function closer to an appropriate direction than the tentative solution. When there is any first solution candidate that brings the value of the objective function closer to an appropriate direction than the tentative solution, the first process updates the tentative solution with any of the first solution candidates. This allows the search unit 404 to appropriately update the tentative solution.
[0083] Specifically, the series of processes includes a second process. In the second process, when there is no first solution candidate that brings the value of the objective function closer to the appropriate direction than the tentative solution, one or more groups including any two associated variables are determined from among the multiple variables. In the second process, for example, for each of the determined one or more groups, a second solution candidate for the 0-1 integer programming problem is identified by inverting the value of the group from the tentative solution. In the second process, for example, based on the objective function, it is determined whether or not there is any second solution candidate that brings the value of the objective function closer to the appropriate direction than the tentative solution among the identified second solution candidates. In the second process, when there is any second solution candidate that brings the value of the objective function closer to the appropriate direction than the tentative solution, the tentative solution is updated with any of the second solution candidates. This allows the search unit 404 to appropriately update the tentative solution.
[0084] Specifically, the series of processes includes a third process. In the third process, when there is no second solution candidate that brings the value of the objective function closer to the appropriate direction than the tentative solution, one or more groups including any three or four associated variables are determined from among the multiple variables. In the third process, for example, for each of the determined one or more groups, a third solution candidate for the 0-1 integer programming problem is identified by inverting the value of the group from the tentative solution. In the third process, based on the objective function, for example, it is determined whether or not there is any third solution candidate that brings the value of the objective function closer to the appropriate direction than the tentative solution among the identified third solution candidates. When there is any third solution candidate that brings the value of the objective function closer to the appropriate direction than the tentative solution, the tentative solution is updated with any of the third solution candidates. In this way, the search unit 404 can appropriately update the tentative solution.
[0085] For example, the search unit 404 may update a parameter that is a coefficient by which at least one of the multiple constraint conditions is multiplied after performing a series of processes this time. Specifically, the search unit 404 determines whether or not the tentative solution was updated when the series of processes was performed this time. Specifically, if the tentative solution was updated when the series of processes was performed this time, the search unit 404 performs the series of processes again without updating the parameter that is a coefficient by which any of the multiple constraint conditions is multiplied. In this way, the search unit 404 can bring the tentative solution of the 0-1 integer programming problem closer to the optimal solution.
[0086] Specifically, the search unit 404 determines whether the provisional solution has been updated between the time when the parameter serving as the coefficient was last updated and the time when the series of processes is currently performed. Specifically, it is possible that the provisional solution has been updated between the time when the parameter serving as the coefficient was last updated and the time when the series of processes is currently performed, and the provisional solution has not been updated when the series of processes is currently performed. In this case, specifically, the search unit 404 updates the parameter serving as the coefficient multiplied by at least one of the multiple constraint conditions to a value larger than the current value, and then performs the series of processes again. More specifically, the search unit 404 updates the parameter serving as the coefficient multiplied by one of the multiple constraint conditions with a relatively large violation amount to a value larger than the current value, and then performs the series of processes again. In this way, the search unit 404 can bring the provisional solution of the 0-1 integer programming problem closer to the optimal solution so as not to violate the constraint conditions.
[0087] Specifically, it is possible that the provisional solution is not updated between the time when the parameter serving as the coefficient was last updated and the time when the series of processes is performed this time, and the provisional solution is not updated when the series of processes is performed this time. In this case, specifically, the search unit 404 updates the parameter serving as the coefficient by which at least one of the multiple constraint conditions is multiplied to a value smaller than the current value, and then performs the series of processes again. More specifically, the search unit 404 updates the parameter serving as the coefficient by which each of the multiple constraint conditions is multiplied to a value smaller than the current value, and then performs the series of processes again. In this way, the search unit 404 can temporarily tolerate violation of the constraint conditions, and easily bring the provisional solution of the 0-1 integer programming problem closer to the optimal solution.
[0088] For example, the first registration unit 402 may generate new first correspondence information that associates two or more variables among the multiple variables again in response to the execution of a series of processes by the search unit 404, and register the information in the storage unit 400. Specifically, the first registration unit 402 identifies pairs of a variable that appears only in a predetermined number of constraint conditions, which is less than the total number of constraint conditions, among the multiple constraint conditions, and a predetermined number of constraint conditions in which the variable appears. Specifically, the first registration unit 402 generates new first correspondence information for each identified pair that associates the variable of the pair with another variable that appears in at least one of the predetermined number of constraint conditions of the pair, and registers the information in the storage unit 400. In this way, the first registration unit 402 can identify a group of two or more variables for which it is preferable to try to invert the value, regardless of the degree of relationship between the variables.
[0089] For example, in response to the execution of a series of processes by the search unit 404, the second registration unit 403 may again generate new second correspondence information that associates two or more variables among the multiple variables, and register the new second correspondence information in the storage unit 400. Specifically, the second registration unit 403 generates new second correspondence information that associates at least one of the multiple variables with another variable that has a certain degree of relationship with the one variable based on the degree of relationship between the variables, and registers the new second correspondence information in the storage unit 400. In this way, the second registration unit 403 can identify a group of two or more variables for which it is preferable to try inverting the value, according to the degree of relationship between the variables.
[0090] The output unit 405 outputs the processing result of at least one of the functional units. The output format is, for example, display on a display, printout on a printer, transmission to an external device via the network I / F 303, or storage in a storage area such as the memory 302 or the recording medium 305. In this way, the output unit 405 can notify the user of the processing result of at least one of the functional units, thereby improving the convenience of the information processing device 100.
[0091] For example, when a termination condition is satisfied, the output unit 405 outputs the tentative solution of the 0-1 integer programming problem updated by the search unit 404 as a solution to the 0-1 integer programming problem. Specifically, the output unit 405 outputs the solution to the 0-1 integer programming problem so that it can be referenced by a user. Specifically, the output unit 405 may transmit the solution to the 0-1 integer programming problem to another computer. In this way, the output unit 405 can make the solution to the 0-1 integer programming problem available externally.
[0092] (Operation flow of information processing device 100) Next, the flow of operations of the information processing device 100 will be described. The information processing device 100 acquires an objective function and a plurality of constraint conditions forming a 0-1 integer programming problem. The objective function is defined by, for example, the above formula (1). The constraint conditions are defined by, for example, the above formulas (2) to (4). The 0-1 integer programming problem aims to calculate a solution that minimizes the value of the objective function within a range that satisfies the constraint conditions. The solution is a vector that represents a combination of the respective values of a plurality of variables. In the following description, N is an index set of variables.
[0093] (Step 1) As a preprocessing step, the information processing device 100 sets a 0 vector, which indicates that the values of each of a plurality of variables are 0, to a tentative solution of a 0-1 integer programming problem. As a preprocessing step, the information processing device 100 extends the objective function by adding a term related to the amount of violation of each of a plurality of constraint conditions to the objective function. Specifically, the following formulas (5) to (8) are defined.
[0094]
number
[0095]
number
[0096]
number
[0097]
number
[0098] p i - (x) represents the amount of violation of any constraint for the solution x. i + (x) represents the amount of violation of any constraint for the solution x. i - (x) and p i + Using (x), the objective function is specifically expanded to be defined by the following equations (9) and (10): i - (i∈M E ) is a non-negative parameter. i + (i∈M) is a non-negative parameter. In the following explanation, w i - (i∈M E ) and w i + (i∈M) may be referred to as the "penalty coefficient."
[0099]
number
[0100]
number
[0101] The information processing device 100 initializes a neighborhood list for at least one of a plurality of variables. The neighborhood list for one of the variables is a list that records other variables that may be targets for inverting values simultaneously with the one of the variables when searching for a solution to a 0-1 integer programming problem. Specifically, the information processing device 100 extracts pairs of variables that appear only in one constraint condition and the constraint condition. Based on each of the extracted pairs, the information processing device 100 generates an initial list that records variables that appear only in the constraint condition of the pair, to be set in a neighborhood list for each of the variables that appear in the constraint condition of the pair.
[0102] The information processing device 100 repeatedly performs a series of processes as described below until a termination condition is satisfied, and searches for a solution to the 0-1 integer programming problem by updating a tentative solution to the 0-1 integer programming problem, and calculates an appropriate solution to the 0-1 integer programming problem. The series of processes includes the following (step 2), (step 3), (step 4), (step 5), and (step 6).
[0103] (Step 2) The information processing device 100 determines whether or not a termination condition is satisfied. The termination condition is, for example, that a predetermined time has elapsed since the series of processes was first performed. The termination condition may also be, for example, that the series of processes has been performed a predetermined number of times or more. The termination condition may also be, for example, that the information processing device 100 has received a termination instruction based on an operational input by a user. If the termination condition is satisfied, the information processing device 100 outputs a tentative solution to the 0-1 integer programming problem as a solution to the 0-1 integer programming problem. If the termination condition is not satisfied, the information processing device 100 proceeds to (Step 3).
[0104] (Step 3) The information processing device 100 performs a 1-flip neighborhood search process. For example, the information processing device 100 calculates a solution candidate for each of a plurality of variables by inverting only the value of the variable from the provisional solution of the 0-1 integer programming problem. The information processing device 100 determines, for example, whether or not there are one or more solution candidates among the calculated plurality of solution candidates that bring the value of the objective function closer to an appropriate direction than the provisional solution of the 0-1 integer programming problem. The appropriate direction is, for example, the direction of minimization.
[0105] Here, when there are one or more solution candidates that bring the value of the objective function closer to an appropriate direction, the information processing device 100 selects one of the one or more solution candidates that brings the value of the objective function closer to the most appropriate direction. The information processing device 100 updates the tentative solution of the 0-1 integer programming problem with one of the selected solution candidates, for example, and returns to the process of (step 2). On the other hand, when there are not one or more solution candidates that bring the value of the objective function closer to an appropriate direction, the information processing device 100 proceeds to the process of (step 4). This allows the information processing device 100 to bring the tentative solution of the 0-1 integer programming problem closer to the optimal solution.
[0106] (Step 4) The information processing device 100 performs a 2-flip neighborhood search process. The 2-flip neighborhood search process includes the following steps (Step 4-1), (Step 4-2), (Step 4-3), and (Step 4-4).
[0107] (Step 4-1) The information processing device 100 calculates, for example, the j-th variable x j Select the variable x j Get the neighbor list for j. j is initially set to 1.
[0108] (Step 4-2) The information processing device 100, for example, j and other variables x k If the relationship assoc(j,k) has not been calculated for any of the selected variables x j and other variables x kSpecifically, the information processing device 100 calculates the degree of relationship assoc(j, k) with each of the variables x j and other variables x k Then, the degree of relationship assoc(j,k) with each of j and k is calculated, and the process proceeds to (step 4-3). ij is the variable x j is the coefficient that multiplies ik is the variable x k The information processing device 100 may, for example, select a variable x j and other variables x k If the relationship degree assoc(j, k) with each of j, k has already been calculated, the relationship degree assoc(j, k) is obtained, and the process proceeds to (step 4-4).
[0109]
number
[0110] (Step 4-3) The information processing device 100, for example, j In the neighbor list for the other variable x k Among them, the Cth variable x with the largest calculated relationship degree assoc(j,k) is k Then, proceed to processing (step 4-4).
[0111] (Step 4-4) The information processing device 100 selects the selected variable x based on, for example, the neighborhood list. j and other variables x recorded in the neighbor list. k The information processing device 100 identifies all groups of combinations of two variables that can be formed with any one of the above. For example, for each of the identified groups, the information processing device 100 calculates a solution candidate by inverting only the values of the variables belonging to the group from the provisional solution of the 0-1 integer programming problem. The information processing device 100 determines whether or not there are one or more solution candidates among the calculated multiple solution candidates that bring the value of the objective function closer to an appropriate direction than the provisional solution of the 0-1 integer programming problem. The appropriate direction is, for example, the direction of minimization.
[0112] Here, when there is one or more solution candidates that bring the value of the objective function closer to an appropriate direction, the information processing apparatus 100 selects any one of the one or more solution candidates that brings the value of the objective function closest to the appropriate direction. The information processing apparatus 100 updates the tentative solution of the 0-1 integer programming problem with any one of the selected solution candidates and returns to the process of (step2).
[0113] On the other hand, when there are no one or more solution candidates that bring the value of the objective function closer to an appropriate direction, if j < N, the information processing apparatus 100 increments j and returns to (step4-1). Also, when there are no one or more solution candidates that bring the value of the objective function closer to an appropriate direction, if j = N, the information processing apparatus 100 proceeds to the process of (step5). Thereby, the information processing apparatus 100 can bring the tentative solution of the 0-1 integer programming problem closer to the optimal solution.
[0114] (step5) The information processing apparatus 100 performs a (3,4)-flip neighborhood search process. The (3,4)-flip neighborhood search process includes the following (step5-1), the following (step5-2), the following (step5-3), and the following (step5-4).
[0115] (step5-1) The information processing apparatus 100 selects, for example, the j-th variable x j and obtains a neighborhood list for the variable x j . j has an initial value of 1.
[0116] (step5-2) When the degree of association assoc(j,k) between the selected variable x j and any other variable x k has not been calculated yet, the information processing apparatus 100 calculates the degree of association assoc(j,k) between the selected variable x j and each of the other variables x k . Specifically, the information processing apparatus 100 calculates, according to the above formula (11), the degree of association between the variable x j and each of the other variables x kThe information processing device 100 calculates the degree of relationship assoc(j, k) with each of the selected variables x j and other variables x k If the relationship degree assoc(j, k) with each of j, k has already been calculated, the relationship degree assoc(j, k) is obtained, and the process proceeds to (step 5-4).
[0117] (Step 5-3) The information processing device 100, for example, j In the neighbor list for the other variable x k Among them, the Cth variable x with the largest calculated relationship degree assoc(j,k) is k and proceed to processing (step 5-4).
[0118] (Step 5-4) The information processing device 100 selects the selected variable x based on, for example, the neighborhood list. j and other variables x recorded in the neighbor list. k The information processing device 100 identifies all groups of combinations of three variables that can be formed by combining any two of the above. For example, for each of the identified groups, the information processing device 100 calculates a solution candidate by inverting only the values of the variables belonging to the group from the provisional solution of the 0-1 integer programming problem. The information processing device 100 determines whether or not there are one or more solution candidates among the calculated multiple solution candidates that bring the value of the objective function closer to an appropriate direction than the provisional solution of the 0-1 integer programming problem. The appropriate direction is, for example, the direction of minimization.
[0119] Here, when there are one or more solution candidates that bring the value of the objective function closer to the appropriate direction, the information processing device 100 selects one of the one or more solution candidates that brings the value of the objective function closer to the most appropriate direction. The information processing device 100 updates the tentative solution of the 0-1 integer programming problem with one of the selected solution candidates, and returns to the process of (step 2).
[0120] On the other hand, when there are no one or more solution candidates that bring the value of the objective function closer to an appropriate direction, if j < N, the information processing apparatus 100 increments j and returns to (step5-1). Also, when there are no one or more solution candidates that bring the value of the objective function closer to an appropriate direction, if j = N, the information processing apparatus 100 proceeds to the process of (step6). Thereby, the information processing apparatus 100 can bring the tentative solution of the 0-1 integer programming problem closer to the optimal solution.
[0121] (step6) When the information processing apparatus 100 does not update the tentative solution of the 0-1 integer programming problem when performing a series of processes this time, it adjusts the penalty coefficient. Here, the larger the value of the penalty coefficient, the easier it is to find a tentative solution of the 0-1 integer programming problem that does not violate the constraint conditions. On the other hand, there is a tendency that it is easier to efficiently search for an appropriate solution of the 0-1 integer programming problem with high accuracy by passing through a tentative solution of the 0-1 integer programming problem that violates the constraint conditions than without passing through a tentative solution of the 0-1 integer programming problem that violates the constraint conditions. Therefore, in order to make it easier to efficiently search for an appropriate solution of the 0-1 integer programming problem with high accuracy, a situation where it is preferable to reduce the value of the penalty coefficient can be considered.
[0122] (step6-1) For example, when the information processing apparatus 100 has not updated the penalty coefficient at all, it updates the penalty coefficient corresponding to at least one of the constraint conditions to a value larger than the current value. Specifically, the information processing apparatus 100 identifies one or more constraint conditions violated by the tentative solution based on the tentative solution of the 0-1 integer programming problem. Specifically, the information processing apparatus 100 updates the penalty coefficient corresponding to each of the one or more identified constraint conditions to a value larger than the current value. Then, the information processing apparatus 100 returns to the process of (step2).
[0123] For details on how to update the penalty coefficient to a value larger than the current value, see the above-mentioned Non-Patent Document 1. This allows the information processing device 100 to reduce the amount of violation of the constraint conditions, to easily update the tentative solution of the 0-1 integer programming problem so as not to violate the constraint conditions, and to easily search for a solution of the 0-1 integer programming problem with high accuracy.
[0124] (Step 6-2) For example, if the information processing device 100 has updated the provisional solution of the 0-1 integer programming problem once or more after the previous update of the penalty coefficient, the information processing device 100 updates the penalty coefficient corresponding to at least any of the constraint conditions to a value larger than the current value. Specifically, the information processing device 100 identifies one or more constraint conditions that are violated by the provisional solution of the 0-1 integer programming problem based on the provisional solution. Specifically, the information processing device 100 updates the penalty coefficient corresponding to each of the identified one or more constraint conditions to a value larger than the current value. After that, the information processing device 100 returns to the processing of (Step 2).
[0125] For details on how to update the penalty coefficient to a value larger than the current value, see the above-mentioned Non-Patent Document 1. This allows the information processing device 100 to reduce the amount of violation of the constraint conditions, to easily update the tentative solution of the 0-1 integer programming problem so as not to violate the constraint conditions, and to easily search for a solution of the 0-1 integer programming problem with high accuracy.
[0126] (Step 6-3) When the information processing device 100 has not updated the tentative solution of the 0-1 integer programming problem even once after the penalty coefficient was last updated, the information processing device 100 updates the penalty coefficient corresponding to at least one of the constraint conditions to a value smaller than the current value. Specifically, the information processing device 100 updates the penalty coefficient corresponding to each of the multiple constraint conditions to a value smaller than the current value. Specifically, the information processing device 100 may update the penalty coefficient corresponding to each of a certain percentage of two or more constraint conditions among the multiple constraint conditions to a value smaller than the current value. After that, the information processing device 100 returns to the process of (Step 2). This makes it easier for the information processing device 100 to accurately and efficiently search for an appropriate solution of the 0-1 integer programming problem via the tentative solution of the 0-1 integer programming problem that violates the constraint condition.
[0127] In this way, the information processing device 100 can accurately and efficiently calculate an appropriate solution to a 0-1 integer programming problem in which a variable appears in only one constraint condition exists. Specifically, the information processing device 100 can accurately and efficiently calculate an appropriate solution to a 0-1 integer programming problem in which a bin-packing constraint shown in the following formula (12) is included.
[0128]
number
[0129] For example, in the conventional method described in Non-Patent Document 1, an appropriate solution to a 0-1 integer programming problem is searched for based only on the degree of relationship between variables. For this reason, the conventional method has a problem in that it is not possible to accurately and efficiently search for an appropriate solution to a 0-1 integer programming problem that includes a bin-packing constraint and has a variable that appears in only one constraint condition.
[0130] In contrast, the information processing device 100 can search for an appropriate solution to a 0-1 integer programming problem by considering variables that appear in only one constraint condition in addition to the degree of relationship between variables. Therefore, the information processing device 100 can accurately and efficiently search for an appropriate solution to a 0-1 integer programming problem, even for a 0-1 integer programming problem that includes a bin-packing constraint and the like and has a variable that appears in only one constraint condition.
[0131] (An example of the operation of the information processing device 100) Next, an example of the operation of the information processing device 100 will be described with reference to FIG.
[0132] 5 is an explanatory diagram showing an example of the operation of the information processing device 100. In FIG. 5, the information processing device 100 ij and the variable y i The information processing device 100 acquires, for example, information 510 that defines the 0-1 integer programming problem 500.
[0133] The information 510 includes, for example, an objective function defined by the following formula (13). The information 510 includes, for example, constraint conditions defined by the following formulas (14) to (17). j (j=1,…,n) is a positive number. C is a positive number. Variable x ij is a variable that appears in two or more constraints. i is a variable that appears in only one constraint.
[0134]
number
[0135]
number
[0136]
number
[0137]
number
[0138]
number
[0139] As a preprocessing step, the information processing device 100 sets a 0 vector, which indicates that the values of each of a plurality of variables are 0, to a tentative solution of the 0-1 integer programming problem 500. As a preprocessing step, the information processing device 100 extends the objective function by adding a term related to the amount of violation of each of a plurality of constraint conditions to the objective function.
[0140] The information processing device 100 calculates a variable y i For each of the identified pairs 520, the information processing device 100 calculates a pair of the variable x ij The initial list 530 {y i} is generated and stored. The neighborhood list is ij and other variables x that can be inverted at the same time ij or the variable y i This is a list that records the following:
[0141] The information processing device 100 searches for a solution to the 0-1 integer programming problem 500 by updating a tentative solution to the 0-1 integer programming problem 500 while trying to invert the values of one or more variables based on the initial list 530 and the degree of relationship between the variables. The search is realized, for example, by repeatedly performing a series of processes and updating the tentative solution to the 0-1 integer programming problem 500 until a termination condition is satisfied. Specifically, the search is realized by the above (step 2), (step 3), (step 4), (step 5), and (step 6).
[0142] Thereby, the information processing device 100 can make it easier to solve the 0-1 integer programming problem 500. For example, the information processing device 100 can make it possible to accurately calculate the solution of the 0-1 integer programming problem 500, and can make it possible to efficiently calculate the solution of the 0-1 integer programming problem 500. For example, the information processing device 100 can reduce the time required to calculate the solution of the 0-1 integer programming problem 500. Specifically, the information processing device 100 can determine, as a target for inverting values, a group including a variable that appears in only one constraint condition, which is not a target for inverting values when only the degree of relationship is referred to, and can make it easier to solve the 0-1 integer programming problem 500.
[0143] (Specific example of operation of information processing device 100) Next, a specific example of the operation of the information processing device 100 will be described with reference to FIG.
[0144] Fig. 6 is an explanatory diagram showing a specific example of the operation of the information processing device 100. In Fig. 6, the information processing device 100 acquires a 0-1 integer programming problem 600. As a preprocessing, the information processing device 100 sets a 0 vector indicating that the values of each of a plurality of variables are 0 to a tentative solution of the 0-1 integer programming problem 600. As a preprocessing, the information processing device 100 extends the objective function by adding a term related to the amount of violation of each of a plurality of constraint conditions to the objective function.
[0145] The information processing device 100 calculates a variable y i and the constraint condition, and identifies a pair 610. For each identified pair 610, the information processing device 100 generates and stores an initial list 620 that serves as a neighborhood list for the variables appearing in the pair 610.
[0146] For example, the information processing device 100 adds the variable y1 of the pair 611 to an initial list 622 that serves as a neighbor list for a variable x2 that appears in the constraint condition of the pair 611. For example, the information processing device 100 adds the variable y1 of the pair 611 to an initial list 623 that serves as a neighbor list for a variable x3 that appears in the constraint condition of the pair 611. For example, the information processing device 100 adds the variable y1 of the pair 611 to an initial list 624 that serves as a neighbor list for a variable x5 that appears in the constraint condition of the pair 611.
[0147] For example, the information processing device 100 adds the variable y2 of the pair 612 to an initial list 621 that serves as a neighbor list for a variable x1 that appears in the constraint condition of the pair 612. For example, the information processing device 100 adds the variable y2 of the pair 612 to an initial list 623 that serves as a neighbor list for a variable x3 that appears in the constraint condition of the pair 612. For example, the information processing device 100 adds the variable y2 of the pair 612 to an initial list 625 that serves as a neighbor list for a variable x6 that appears in the constraint condition of the pair 612.
[0148] The information processing device 100 searches for a solution to the 0-1 integer programming problem 600 by updating a tentative solution to the 0-1 integer programming problem 600 while trying to invert the values of one or more variables based on the initial list 620 and the degree of relationship between the variables. The search is realized, for example, by repeatedly performing a series of processes and updating the tentative solution to the 0-1 integer programming problem 600 until a termination condition is satisfied. Specifically, the search is realized by the above (step 2), (step 3), (step 4), (step 5), and (step 6).
[0149] During the search, the information processing device 100 may update the neighbor list for the selected variable in the above (step 4) and (step 5). For example, the information processing device 100 first acquires a neighbor list for the variable x3 for which the initial list 623 is set. The information processing device 100 updates the neighbor list by adding a prescribed number of other variables, starting from those having the greatest degree of relationship with the variable x3, to the acquired neighbor list based on the degree of relationship between the variables, for example. The updated neighbor list is list 630.
[0150] Thereby, the information processing device 100 can make it easier to solve the 0-1 integer programming problem 600. For example, the information processing device 100 can make it possible to accurately calculate the solution of the 0-1 integer programming problem 600, and can make it possible to efficiently calculate the solution of the 0-1 integer programming problem 600. For example, the information processing device 100 can reduce the time required to calculate the solution of the 0-1 integer programming problem 600. Specifically, the information processing device 100 can determine, as a target for inverting values, a group including a variable that appears in only one constraint condition, which is not a target for inverting values when only the degree of relationship is referred to, and can make it easier to solve the 0-1 integer programming problem 600.
[0151] (Application example of information processing device 100) Next, an application example of the information processing device 100 will be described with reference to FIG.
[0152] Fig. 7 is an explanatory diagram showing an application example of the information processing device 100. In Fig. 7, the information processing device 100 is applied to a 0-1 integer programming problem that represents a real problem in logistics, which is to determine which package should be transported via which route. Specifically, the 0-1 integer programming problem is a problem in which a delivery route for each package i=1,...,n is determined by dividing the delivery route by a set of route candidates R i The 0-1 integer programming problem assumes that multiple vehicles to be used for transportation have been determined for each route candidate.
[0153] For each vehicle k=1,…,m, we define a set S ik ⊆R i For example, for a package i, a route candidate x i1 For example, for a package i, there exists a route candidate x i2 The cost of each vehicle k=1,…,m is c k It is.
[0154] Specifically, the objective of the 0-1 integer programming problem is to select a delivery route for each package that minimizes the total cost of the vehicles used. ij ∈{0,1}(i=1,…,n;j∈R i ) and the variable y k ∈{0,1}(k=1,…,m). Variable x ij The variable y is 1 when the route candidate j for the baggage i is adopted, and is 0 when the route candidate j for the baggage i is not adopted. k is 1 when the transport vehicle k is used, and is 0 when the transport vehicle k is not used. The objective function is defined, for example, by the following equation (18).
[0155]
number
[0156] The constraints are defined, for example, by the following formulas (19) and (20). The following formula (19) defines the delivery route of each package i as a set of route candidates R i The following formula (20) indicates that when vehicle k is used, a set of route candidates corresponding to vehicle k can be selected. M is a positive constant that is equal to or larger than a certain value.
[0157]
number
[0158]
number
[0159] The information processing device 100 calculates the variable y k Even when the number of vehicles is less than 1, the solution to the 0-1 integer programming problem can be calculated accurately and efficiently. Therefore, the information processing device 100 can accurately and efficiently determine a delivery route for each package that minimizes the total cost of the vehicles to be used.
[0160] The information processing device 100 can also be applied to a 0-1 integer programming problem for minimizing the number of containers used when packing cargo into a container or the like. The information processing device 100 can also be applied to, for example, the manufacturing field, in addition to the actual problems in logistics. Specifically, the information processing device 100 can be applied to a 0-1 integer programming problem representing the cutting of wood, steel plates, or the like.
[0161] (Overall processing procedure) Next, an example of an overall processing procedure executed by the information processing device 100 will be described with reference to Fig. 8. The overall processing is realized by, for example, the CPU 301, storage areas such as the memory 302 and the recording medium 305, and the network I / F 303 shown in Fig. 3.
[0162] Fig. 8 is a flowchart showing an example of an overall processing procedure. In Fig. 8, the information processing device 100 acquires a 0-1 linear programming problem (step S801). The information processing device 100 executes an initialization process described later in Fig. 9 (step S802).
[0163] The information processing device 100 determines whether or not the termination condition is satisfied (step S803). If the termination condition is satisfied (step S803: Yes), the information processing device 100 proceeds to processing of step S811. On the other hand, if the termination condition is not satisfied (step S803: No), the information processing device 100 proceeds to processing of step S804.
[0164] In step S804, the information processing device 100 executes a 1-flip neighborhood search process described later in Fig. 10 (step S804). The information processing device 100 determines whether or not the tentative solution has been updated (step S805). If the tentative solution has been updated (step S805: Yes), the information processing device 100 returns to the process of step S803. On the other hand, if the tentative solution has not been updated (step S805: No), the information processing device 100 proceeds to the process of step S806.
[0165] In step S806, the information processing device 100 executes a 2-flip neighborhood search process described later in FIG. 11 (step S806). The information processing device 100 determines whether or not the tentative solution has been updated (step S807). If the tentative solution has been updated (step S807: Yes), the information processing device 100 returns to the process of step S803. On the other hand, if the tentative solution has not been updated (step S807: No), the information processing device 100 proceeds to the process of step S808.
[0166] In step S808, the information processing device 100 executes a (3,4)-flip neighborhood search process described later in FIG. 12 (step S808). The information processing device 100 determines whether or not the tentative solution has been updated (step S809). If the tentative solution has been updated (step S809: Yes), the information processing device 100 returns to the process of step S803. On the other hand, if the tentative solution has not been updated (step S809: No), the information processing device 100 proceeds to the process of step S810.
[0167] In step S810, the information processing device 100 updates the penalty coefficient (step S810). For example, when updating the penalty coefficient for the first time, the information processing device 100 updates the penalty coefficient to a value larger than the current value. For example, if the tentative solution has been updated at least once since the last time the penalty coefficient was updated, the information processing device 100 updates the penalty coefficient to a value larger than the current value. For example, if the tentative solution has not been updated at all since the last time the penalty coefficient was updated, the information processing device 100 updates the penalty coefficient to a value smaller than the current value. The information processing device 100 returns to the process of step S803.
[0168] In step S811, the information processing device 100 outputs a solution to the 0-1 integer programming problem (step S811). The information processing device 100 ends the entire process.
[0169] (Initialization procedure) Next, an example of an initialization process procedure executed by the information processing device 100 will be described with reference to Fig. 9. The initialization process is realized by, for example, the CPU 301, storage areas such as the memory 302 and the recording medium 305, and the network I / F 303 shown in Fig. 3.
[0170] Fig. 9 is a flowchart showing an example of an initialization process procedure. In Fig. 9, the information processing device 100 extracts pairs of variables that appear in only one constraint condition and the constraint condition (step S901). The information processing device 100 generates an initial list to be set in a neighbor list for each of the variables that appear in each constraint condition of the extracted pairs (step S902). The information processing device 100 ends the initialization process.
[0171] (1-flip neighborhood search procedure) Next, an example of a 1-flip neighborhood search process procedure executed by the information processing device 100 will be described with reference to Fig. 10. The 1-flip neighborhood search process is realized by, for example, the CPU 301, storage areas such as the memory 302 and the recording medium 305, and the network I / F 303 shown in Fig. 3.
[0172] 10 is a flowchart illustrating an example of a 1-flip neighborhood search process. In FIG. 10, the information processing device 100 k (Step S1001). The information processing device 100 selects the selected variable x k A solution candidate is generated by inverting the value of (step S1002).
[0173] The information processing device 100 determines whether the generated solution candidate brings the objective function value closer to the appropriate direction than the tentative solution based on the objective function (step S1003). If the generated solution candidate brings the objective function value closer to the appropriate direction than the tentative solution (step S1003: Yes), the information processing device 100 proceeds to processing of step S1006. On the other hand, if the tentative solution brings the objective function value closer to the appropriate direction than the generated solution candidate (step S1003: No), the information processing device 100 proceeds to processing of step S1004.
[0174] In step S1004, the information processing device 100 determines whether k>N is satisfied (step S1004). If k>N is satisfied (step S1004: Yes), the information processing device 100 ends the 1-flip neighborhood search process. On the other hand, if k>N is not satisfied (step S1004: No), the information processing device 100 increments k (step S1005) and returns to the process of step S1001.
[0175] In step S1006, the information processing device 100 updates the tentative solution with the generated solution candidate (step S1006). The information processing device 100 ends the 1-flip neighborhood search process.
[0176] (2-flip neighborhood search procedure) Next, an example of a 2-flip neighborhood search process procedure executed by the information processing device 100 will be described with reference to Fig. 11. The 2-flip neighborhood search process is realized by, for example, the CPU 301, storage areas such as the memory 302 and the recording medium 305, and the network I / F 303 shown in Fig. 3.
[0177] 11 is a flowchart illustrating an example of a 2-flip neighborhood search process. In FIG. 11, the information processing device 100 k (Step S1101). The information processing device 100 selects a variable x k If the neighbor list for x remains the initial list, the generation process described later in FIG. 13 is executed, and the variable x k Then, the neighbor list for is updated (step S1102).
[0178] The information processing device 100 calculates a variable x k Based on the neighbor list for variable x k For each of the other variables associated with the variable x k and the other variables (step S1103). For each of the identified groups, the information processing device 100 generates a solution candidate by inverting the values of the variables in the group from the tentative solution of the 0-1 integer programming problem (step S1104).
[0179] The information processing device 100 determines whether or not there is any solution candidate among the generated solution candidates based on the objective function that brings the value of the objective function closer to an appropriate direction than the tentative solution (step S1105). If any solution candidate exists (step S1105: Yes), the information processing device 100 proceeds to processing of step S1108. On the other hand, if any solution candidate does not exist (step S1105: No), the information processing device 100 proceeds to processing of step S1106.
[0180] In step S1106, the information processing device 100 determines whether k>N is satisfied (step S1106). If k>N is satisfied (step S1106: Yes), the information processing device 100 ends the 2-flip neighborhood search process. On the other hand, if k>N is not satisfied (step S1106: No), the information processing device 100 increments k (step S1107) and returns to the process of step S1101.
[0181] In step S1108, the information processing device 100 updates the tentative solution with any one of the generated solution candidates that brings the value of the objective function closer to the most appropriate direction (step S1108). The information processing device 100 ends the 2-flip neighborhood search process.
[0182] ((3,4)-flip neighborhood search procedure) Next, an example of a (3,4)-flip neighborhood search process procedure executed by the information processing device 100 will be described with reference to Fig. 12. The (3,4)-flip neighborhood search process is realized by, for example, the CPU 301, storage areas such as the memory 302 and the recording medium 305, and the network I / F 303 shown in Fig. 3.
[0183] 12 is a flowchart illustrating an example of a (3,4)-flip neighborhood search process. In FIG. 12, the information processing device 100 k (Step S1201). The information processing device 100 selects a variable x k If the neighbor list for x remains the initial list, the generation process described later in FIG. 70 is executed, and the variable x k Then, the neighbor list for is updated (step S1202).
[0184] The information processing device 100 calculates a variable x k Based on the neighbor list for variable x k For each possible combination of two or three other variables associated with kand the combination (step S1203). For each of the identified groups, the information processing device 100 generates a solution candidate by inverting the values of each variable of the group from the tentative solution of the 0-1 integer programming problem (step S1204).
[0185] The information processing device 100 determines whether or not there is any solution candidate among the generated solution candidates based on the objective function that brings the value of the objective function closer to an appropriate direction than the tentative solution (step S1205). If any solution candidate exists (step S1205: Yes), the information processing device 100 proceeds to processing of step S1208. On the other hand, if any solution candidate does not exist (step S1205: No), the information processing device 100 proceeds to processing of step S1206.
[0186] In step S1206, the information processing device 100 determines whether or not k>N is satisfied (step S1206). If k>N is satisfied (step S1206: Yes), the information processing device 100 ends the (3,4)-flip neighborhood search process. On the other hand, if k>N is not satisfied (step S1206: No), the information processing device 100 increments k (step S1207) and returns to the process of step S1201.
[0187] In step S1208, the information processing device 100 updates the tentative solution with any one of the generated solution candidates that brings the value of the objective function closer to the most appropriate direction (step S1208). The information processing device 100 ends the (3,4)-flip neighborhood search process.
[0188] (Update procedure) Next, an example of an update process procedure executed by the information processing device 100 will be described with reference to Fig. 13. The update process is realized by, for example, the CPU 301, storage areas such as the memory 302 and the recording medium 305, and the network I / F 303 shown in Fig. 3.
[0189] 13 is a flowchart illustrating an example of an update process procedure. In FIG. 13, the information processing device 100 updates a variable x k The information processing device 100 obtains a neighbor list for the variable x based on a plurality of constraints (step S1301). k The degree of relationship between each of the variables and each of the other variables is calculated (step S1302).
[0190] The information processing device 100 calculates the variable x k Determine up to a specified number of other variables that correspond to the variable x k (step S1303), the information processing device 100 finishes the update process.
[0191] Here, the information processing device 100 may change the order of the processes of some steps in each of the flowcharts of Figures 8 to 13. For example, the order of the processes of steps S806 and S808 can be changed. Furthermore, the information processing device 100 may omit some of the processes of some steps in each of the flowcharts of Figures 8 to 13. For example, the process of step S808 can be omitted.
[0192] As described above, according to the information processing device 100, it is possible to obtain a plurality of constraint conditions each including at least one of a plurality of variables forming a 0-1 integer programming problem including a plurality of variables each taking a value of 0 or 1. According to the information processing device 100, it is possible to specify a pair of a variable that appears only in a predetermined number of constraint conditions, which is less than the total number of constraint conditions, among the plurality of constraint conditions, and a predetermined number of constraint conditions in which the variable appears. According to the information processing device 100, for each specified pair, it is possible to register in the storage unit 400 first correspondence information that associates the paired variable with another variable that appears in at least one of the predetermined number of constraint conditions of the pair. According to the information processing device 100, it is possible to register in the storage unit 400 second correspondence information that associates at least one of the plurality of variables with another variable that has a certain degree of relationship or higher with any one of the variables based on the degree of relationship between the variables in the plurality of variables. According to the information processing device 100, a solution to a 0-1 integer programming problem can be searched for by referring to the storage unit 400 and determining, based on the first correspondence information and the second correspondence information, a group of two or more associated variables among the multiple variables as a target for inverting values. This allows the information processing device 100 to search for a solution to a 0-1 integer programming problem efficiently with high accuracy.
[0193] According to the information processing device 100, the predetermined number can be set to 1. This allows the information processing device 100 to accurately and efficiently search for a solution to a 0-1 integer programming problem even when a variable appears in only one constraint condition.
[0194] According to the information processing device 100, a solution to the 0-1 integer programming problem can be searched for by repeatedly performing a series of processes until a termination condition is satisfied. According to the series of processes, one or more groups each including any two or more variables associated with each other among a plurality of variables can be determined. According to the series of processes, for each of the determined one or more groups, a solution candidate for the 0-1 integer programming problem in which the value of the group is inverted from the provisional solution of the 0-1 integer programming problem can be specified. According to the series of processes, when any solution candidate exists among the specified solution candidates that brings the value of the objective function closer to an appropriate direction than the provisional solution, the provisional solution can be updated with any solution candidate. As a result, the information processing device 100 can bring the provisional solution closer to an optimal solution by updating it, and can calculate an appropriate solution for the 0-1 integer programming problem.
[0195] According to the series of processes, the first process can be performed. According to the first process, for each of a plurality of variables, a first solution candidate of the 0-1 integer programming problem can be identified by inverting the value of the variable from the tentative solution of the 0-1 integer programming problem. According to the first process, if there is any first solution candidate among the identified first solution candidates that brings the value of the objective function closer to an appropriate direction than the tentative solution, the tentative solution can be updated with any of the first solution candidates. As a result, the information processing device 100 can update the tentative solution to approach the optimal solution and calculate an appropriate solution of the 0-1 integer programming problem.
[0196] According to the series of processes, when there is no first solution candidate that brings the value of the objective function closer to the appropriate direction than the tentative solution, the second process can be performed. According to the second process, it is possible to determine one or more groups each including any two variables associated with each other among the multiple variables. According to the second process, it is possible to specify a second solution candidate for the 0-1 integer programming problem, which is obtained by inverting the value of the group from the tentative solution, for each of the determined one or more groups. According to the second process, when there is any second solution candidate among the specified second solution candidates that brings the value of the objective function closer to the appropriate direction than the tentative solution, the tentative solution can be updated with any of the second solution candidates. As a result, the information processing device 100 can update the tentative solution to bring it closer to the optimal solution, and can calculate an appropriate solution for the 0-1 integer programming problem.
[0197] According to the series of processes, when there is no second solution candidate that brings the value of the objective function closer to the appropriate direction than the tentative solution, the third process can be performed. According to the third process, it is possible to determine one or more groups each including any three or four variables associated with each other among the multiple variables. According to the third process, it is possible to specify a third solution candidate for the 0-1 integer programming problem, which is obtained by inverting the value of the group from the tentative solution, for each of the determined one or more groups. According to the third process, when there is any third solution candidate among the specified third solution candidates that brings the value of the objective function closer to the appropriate direction than the tentative solution, the tentative solution can be updated with any of the third solution candidates. As a result, the information processing device 100 can update the tentative solution to bring it closer to the optimal solution, and can calculate an appropriate solution for the 0-1 integer programming problem.
[0198] According to the information processing device 100, it is possible to obtain an objective function including a product of a violation amount of each of a plurality of constraint conditions multiplied by a parameter serving as a coefficient, so as to reduce the violation amount of each of the plurality of constraint conditions. According to the information processing device 100, it is possible to update a parameter serving as a coefficient by which at least one of the plurality of constraint conditions is multiplied to a value greater than the current value, and then perform a series of processes again. This allows the information processing device 100 to update a tentative solution so as not to violate the constraint conditions, and makes it possible to search for a solution to a 0-1 integer programming problem with high accuracy.
[0199] According to the information processing device 100, a parameter that is a coefficient by which at least one of a plurality of constraint conditions is multiplied can be updated to a value smaller than the current value, and then a series of processes can be executed again. This enables the information processing device 100 to efficiently search for a solution to a 0-1 integer programming problem via a tentative solution that violates the constraint conditions.
[0200] According to the information processing device 100, the end condition can be that the elapsed time since the first execution of the series of processes exceeds a predetermined length of time. This allows the information processing device 100 to stop the repeated execution of the series of processes at an appropriate timing, and suppress an increase in the amount of processing.
[0201] According to the information processing device 100, the end condition can be that a series of processes has been performed a predetermined number of times. This allows the information processing device 100 to stop the repeated execution of the series of processes at an appropriate timing, thereby suppressing an increase in the amount of processing.
[0202] According to the information processing device 100, the end condition can be that an end instruction has been input. This allows the information processing device 100 to stop the repeated execution of a series of processes at an appropriate timing, thereby suppressing an increase in the amount of processing.
[0203] According to the information processing device 100, the termination condition can be that the number of times the provisional solution is not continuously updated exceeds a predetermined threshold value. This allows the information processing device 100 to stop the repeated execution of a series of processes at an appropriate timing, thereby suppressing an increase in the amount of processing.
[0204] According to the information processing device 100, the termination condition can be that the value of the objective function for the provisional solution has reached a predetermined value. This allows the information processing device 100 to stop the repeated execution of a series of processes at an appropriate timing, thereby suppressing an increase in the amount of processing.
[0205] The information processing method described in this embodiment can be realized by executing a prepared program on a computer such as a PC or a workstation. The information processing program described in this embodiment is recorded on a computer-readable recording medium, and is executed by being read from the recording medium by the computer. The recording medium may be a hard disk, a flexible disk, a CD (Compact Disc)-ROM, an MO (Magneto Optical disc), a DVD (Digital Versatile Disc), or the like. The information processing program described in this embodiment may also be distributed via a network such as the Internet.
[0206] The following supplementary notes are further disclosed regarding the above-described embodiment.
[0207] (Appendix 1) Obtain a plurality of constraints each including at least one of a plurality of variables that each take a value of 0 or 1 to form a 0-1 integer programming problem, the plurality of constraints including at least one of the plurality of variables; Identifying pairs of a variable that appears only in a predetermined number of constraint conditions, the number being less than the total number of constraint conditions, among the plurality of constraint conditions, and the predetermined number of constraint conditions in which the variable appears; registering, for each of the identified pairs, first correspondence information that associates the variables of the pair with another variable that appears in at least one of the predetermined number of constraint conditions of the pair in a storage unit; registering, in the storage unit, second correspondence information that associates at least one of the plurality of variables with another variable having a certain degree of relationship or more with the one of the plurality of variables based on a degree of relationship between the variables; searching for a solution to the 0-1 integer programming problem by referring to the storage unit and determining, based on the first correspondence information and the second correspondence information, a group of any two or more associated variables among the plurality of variables as a target for which values are to be inverted; An information processing program that causes a computer to execute a process.
[0208] (Supplementary Note 2) The information processing program according to Supplementary Note 1, wherein the predetermined number is 1.
[0209] (Appendix 3) The solution to the 0-1 integer programming problem is a combination of the values of each of the plurality of variables, The searching process includes: the program for searching for a solution to the 0-1 integer programming problem by repeatedly performing a series of processes until a termination condition is satisfied: determining one or more groups each including any two or more associated variables from among the plurality of variables; for each of the one or more determined groups, identifying a solution candidate to the 0-1 integer programming problem by inverting the value of the group from a tentative solution of the 0-1 integer programming problem from a tentative solution of the 0-1 integer programming problem; and, if there is any solution candidate among the identified solution candidates that brings the value of the objective function closer to an appropriate direction than the tentative solution based on an objective function that forms the 0-1 integer programming problem, updating the tentative solution with any of the solution candidates.
[0210] (Appendix 4) The above series of processes are as follows: and a first process for identifying a first solution candidate of the 0-1 integer programming problem by inverting a value of the variable from a tentative solution of the 0-1 integer programming problem for each of the plurality of variables, and updating the tentative solution with any of the first solution candidates if there is any first solution candidate among the identified first solution candidates that brings the value of the objective function closer to the appropriate direction than the tentative solution based on the objective function.
[0211] (Appendix 5) The above series of processes are as follows: and a second process of determining, when there is no first solution candidate that brings the value of the objective function closer to the appropriate direction than the tentative solution, one or more groups each including any two associated variables among the plurality of variables, identifying, for each of the one or more determined groups, a second solution candidate for the 0-1 integer programming problem obtained by inverting a value of the group from the tentative solution, and updating the tentative solution with any of the second solution candidates when there is any second solution candidate among the identified second solution candidates that brings the value of the objective function closer to the appropriate direction than the tentative solution based on the objective function.
[0212] (Appendix 6) The above series of processes are as follows: and a third process of determining, when there is no second solution candidate that brings the value of the objective function closer to the appropriate direction than the tentative solution, one or more groups each including any three or four associated variables among the plurality of variables, identifying a third solution candidate for the 0-1 integer programming problem for each of the determined one or more groups by inverting the value of the group from the tentative solution, and updating the tentative solution with any of the third solution candidates when there is any third solution candidate among the identified third solution candidates that brings the value of the objective function closer to the appropriate direction than the tentative solution based on the objective function.
[0213] (Note 7) The objective function includes a product of a violation amount of each of the plurality of constraint conditions multiplied by a parameter serving as a coefficient, so as to aim at reducing a violation amount of each of the plurality of constraint conditions; The searching process includes: The information processing program according to claim 5 or 6, characterized in that the tentative solution is updated between the time when the parameter serving as the coefficient was last updated and the time when the series of processes is currently performed, and if the tentative solution is not updated when the series of processes is currently performed, the parameter serving as the coefficient by which at least one of the plurality of constraint conditions is multiplied is updated to a value greater than a current value, and then the series of processes is performed again.
[0214] (Appendix 8) The searching process is The information processing program according to claim 7, characterized in that if the provisional solution is not updated between the time when the parameter serving as the coefficient was last updated and the time when the series of processes is currently performed, and if the provisional solution is not updated when the series of processes is currently performed, the parameter serving as the coefficient by which at least one of the plurality of constraint conditions is multiplied is updated to a value smaller than a current value, and then the series of processes is performed again.
[0215] (Supplementary Note 9) The information processing program according to Supplementary Note 3, wherein the termination condition is that the elapsed time from the first execution of the series of processes exceeds a predetermined length of time.
[0216] (Supplementary Note 10) The information processing program according to Supplementary Note 3, wherein the termination condition is that the series of processes has been performed a predetermined number of times.
[0217] (Supplementary Note 11) The information processing program according to Supplementary Note 3, wherein the termination condition is that an input of a termination instruction has been accepted.
[0218] (Supplementary Note 12) The information processing program according to Supplementary Note 3, characterized in that the termination condition is that the number of consecutive times the provisional solution is not updated exceeds a predetermined threshold value.
[0219] (Supplementary Note 13) The information processing program according to Supplementary Note 3, wherein the termination condition is that the value of the objective function for the tentative solution becomes a predetermined value.
[0220] (Appendix 14) Obtain a plurality of constraints each including at least one of a plurality of variables that each take a value of 0 or 1 to form a 0-1 integer programming problem, the plurality of constraints including at least one of the plurality of variables; Identifying pairs of a variable that appears only in a predetermined number of constraint conditions, the number being less than the total number of constraint conditions, among the plurality of constraint conditions, and the predetermined number of constraint conditions in which the variable appears; registering, for each of the identified pairs, first correspondence information that associates the variables of the pair with another variable that appears in at least one of the predetermined number of constraint conditions of the pair in a storage unit; registering, in the storage unit, second correspondence information that associates at least one of the plurality of variables with another variable having a certain degree of relationship or more with the one of the plurality of variables based on a degree of relationship between the variables; searching for a solution to the 0-1 integer programming problem by referring to the storage unit and determining, based on the first correspondence information and the second correspondence information, a group of any two or more associated variables among the plurality of variables as a target for which values are to be inverted; An information processing method characterized in that the processing is executed by a computer.
[0221] (Appendix 15) Obtain a plurality of constraints each including at least one of a plurality of variables that each take a value of 0 or 1 to form a 0-1 integer programming problem, the plurality of constraints including at least one of the plurality of variables; Identifying pairs of a variable that appears only in a predetermined number of constraint conditions, the number being less than the total number of constraint conditions, among the plurality of constraint conditions, and the predetermined number of constraint conditions in which the variable appears; registering, for each of the identified pairs, first correspondence information that associates the variables of the pair with another variable that appears in at least one of the predetermined number of constraint conditions of the pair in a storage unit; registering, in the storage unit, second correspondence information that associates at least one of the plurality of variables with another variable having a certain degree of relationship or more with the one of the plurality of variables based on a degree of relationship between the variables; searching for a solution to the 0-1 integer programming problem by referring to the storage unit and determining, based on the first correspondence information and the second correspondence information, a group of any two or more associated variables among the plurality of variables as a target for which values are to be inverted; An information processing device comprising a control unit. [Explanation of symbols]
[0222] 100 Information processing device 110 0-1 Integer Programming Problems 120~122,520,610~612 pairs 130,140 tables 150,400 storage unit 200 Information Processing Systems 201 Client device 210 Network 300 Bus 301 CPU 302 Memory 303 Network Interface 304 Recording media I / F 305 Recording media 401 Acquisition Department 402 First Registration Section 403 Second Registration Section 404 Search Department 405 Output section 500,600 0-1 integer programming problems 510 Information 530,620~625 Initial list 630 List
Claims
1. obtaining a plurality of constraints each including at least one of a plurality of variables that each have a value of 0 or 1, forming a 0-1 integer programming problem including the plurality of variables; Identifying pairs of a variable that appears only in a predetermined number of constraint conditions, the number being less than the total number of constraint conditions, among the plurality of constraint conditions, and the predetermined number of constraint conditions in which the variable appears; registering, for each of the identified pairs, first correspondence information that associates the variables of the pair with another variable that appears in at least one of the predetermined number of constraint conditions of the pair in a storage unit; registering second correspondence information in the storage unit, which associates at least one of the plurality of variables with another variable having a relationship degree equal to or greater than a certain degree based on a relationship degree between the plurality of variables; searching for a solution to the 0-1 integer programming problem by referring to the storage unit and determining, based on the first correspondence information and the second correspondence information, a group of any two or more associated variables among the plurality of variables as a target for inverting values; An information processing program that causes a computer to execute a process.
2. 2. The information processing program according to claim 1, wherein the predetermined number is 1.
3. A solution to the 0-1 integer programming problem is a combination of values of each of the plurality of variables, The searching process includes: The information processing program according to claim 2, characterized in that a solution to the 0 / 1 integer programming problem is searched for by repeatedly performing a series of processes until a termination condition is satisfied, the series of processes being: determining one or more groups each including any two or more associated variables from among the plurality of variables; for each of the one or more determined groups, identifying a solution candidate for the 0 / 1 integer programming problem by inverting the value of the group from a tentative solution of the 0 / 1 integer programming problem based on an objective function that forms the 0 / 1 integer programming problem; and updating the tentative solution with any of the solution candidates if there is any solution candidate among the identified solution candidates that brings the value of the objective function closer to an appropriate direction than the tentative solution based on the objective function that forms the 0 / 1 integer programming problem.
4. The series of processes is as follows:
4. The information processing program according to claim 3, further comprising a first process for identifying a first solution candidate of the 0 / 1 integer programming problem by inverting a value of the variable from a tentative solution of the 0 / 1 integer programming problem for each of the plurality of variables, and updating the tentative solution with any of the first solution candidates if there is any first solution candidate among the identified first solution candidates that brings the value of the objective function closer to the appropriate direction than the tentative solution based on the objective function.
5. The series of processes is as follows:
5. The information processing program according to claim 4, further comprising a second process of: determining one or more groups each including any two associated variables among the plurality of variables when there is no first solution candidate that brings the value of the objective function closer to the appropriate direction than the tentative solution; identifying, for each of the one or more determined groups, a second solution candidate for the 0-1 integer programming problem obtained by inverting a value of the group from the tentative solution; and updating the tentative solution with any of the second solution candidates when there is any second solution candidate among the identified second solution candidates based on the objective function that brings the value of the objective function closer to the appropriate direction than the tentative solution.
6. The series of processes is as follows:
6. The information processing program according to claim 5, further comprising a third process of: determining one or more groups each including any three or four associated variables among the plurality of variables when there is no second solution candidate that brings the value of the objective function closer to the appropriate direction than the tentative solution; identifying a third solution candidate for the 0-1 integer programming problem for each of the determined one or more groups by inverting a value of the group from the tentative solution; and updating the tentative solution with any of the third solution candidates when there is any third solution candidate among the identified third solution candidates that brings the value of the objective function closer to the appropriate direction than the tentative solution based on the objective function.
7. the objective function includes a product of a violation amount of each of the plurality of constraint conditions multiplied by a parameter serving as a coefficient, so as to aim at reducing a violation amount of each of the plurality of constraint conditions; The searching process includes: The information processing program according to claim 5 or 6, characterized in that the provisional solution is updated between the last update of the parameter serving as the coefficient and before the series of processes is performed this time, and if the provisional solution is not updated when the series of processes is performed this time, the parameter serving as the coefficient by which at least one of the plurality of constraint conditions is multiplied is updated to a value greater than the current value, and then the series of processes is performed again.
8. The searching process includes: The information processing program according to claim 7, characterized in that if the provisional solution is not updated between the last update of the parameter serving as the coefficient and before the series of processes is performed this time, and if the provisional solution is not updated when the series of processes is performed this time, the parameter serving as the coefficient by which at least one of the plurality of constraint conditions is multiplied is updated to a value smaller than the current value, and then the series of processes is performed again.
9. obtaining a plurality of constraints each including at least one of a plurality of variables that each have a value of 0 or 1, forming a 0-1 integer programming problem including the plurality of variables; Identifying pairs of a variable that appears only in a predetermined number of constraint conditions, the number being less than the total number of constraint conditions, among the plurality of constraint conditions, and the predetermined number of constraint conditions in which the variable appears; registering, for each of the identified pairs, first correspondence information that associates the variables of the pair with another variable that appears in at least one of the predetermined number of constraint conditions of the pair in a storage unit; registering second correspondence information in the storage unit, which associates at least one of the plurality of variables with another variable having a relationship degree equal to or greater than a certain degree based on a relationship degree between the plurality of variables; searching for a solution to the 0-1 integer programming problem by referring to the storage unit and determining, based on the first correspondence information and the second correspondence information, a group of any two or more associated variables among the plurality of variables as a target for inverting values; An information processing method characterized in that the processing is executed by a computer.
10. obtaining a plurality of constraints each including at least one of a plurality of variables that each have a value of 0 or 1, forming a 0-1 integer programming problem including the plurality of variables; Identifying pairs of a variable that appears only in a predetermined number of constraint conditions, the number being less than the total number of constraint conditions, among the plurality of constraint conditions, and the predetermined number of constraint conditions in which the variable appears; registering, for each of the identified pairs, first correspondence information that associates the variables of the pair with another variable that appears in at least one of the predetermined number of constraint conditions of the pair in a storage unit; registering second correspondence information in the storage unit, which associates at least one of the plurality of variables with another variable having a relationship degree equal to or greater than a certain degree based on a relationship degree between the plurality of variables; searching for a solution to the 0-1 integer programming problem by referring to the storage unit and determining, based on the first correspondence information and the second correspondence information, a group of any two or more associated variables among the plurality of variables as a target for inverting values; An information processing device comprising a control unit.