Recording medium, information processing method, and information processing apparatus
By identifying and utilizing the correlation information of variables in the 0-1 integer programming problem, determining the variable group as the object of value inversion, the problem of difficult to narrow the solution space in the existing technology is solved, and the ability to efficiently solve the 0-1 integer programming problem is realized.
Patent Information
- Application Number
- CN202411234802.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-09-26
- Filing Date
- 2024-09-04
- Publication Date
- 2025-03-28
AI Technical Summary
The prior art is difficult to effectively narrow the solution space of the 0-1 integer programming problem, especially when the variables only appear in one constraint, making it difficult to solve such problems.
By identifying variables that appear only in multiple constraints and their pairings, correlation information is generated to indicate the association of these variables with other variables, and based on this information, the variable group is determined as an object whose value inversion is used to search for solutions to the 0-1 integer programming problem.
The solution space of 0-1 integer programming problem is effectively reduced, the solution efficiency is improved, and the appropriate solution of 0-1 integer programming problem can be accurately calculated.
Smart Images

Figure CN119719576A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2023-164045 filed on September 26, 2023, the entire contents of which are incorporated herein by reference. Technical Field
[0003] The embodiments discussed herein relate to a recording medium, an information processing method, and an information processing device. Background Art
[0004] Conventionally, a weighted local search method is used as a meta-heuristic algorithm for solving a 0-1 integer programming problem involving variables each of which takes a value of 0 or 1. For example, in the weighted local search method, the 0-1 integer programming problem can be solved while narrowing a space for searching a solution of the 0-1 integer programming problem based on the degree of relationship between the variables.
[0005] As a prior art, for example, there is a method for solving a 0-1 integer programming problem while narrowing the space for searching for solutions to the 0-1 integer programming problem based on the degree of association between variables. For example, refer to 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
[0006] According to one aspect of the embodiment, a computer-readable recording medium stores a program for causing a computer to execute a process for processing information, the process comprising: obtaining a plurality of constraints forming a 0-1 integer programming problem, the 0-1 integer programming problem including a plurality of variables in which each variable takes a value of 0 or 1, the plurality of constraints each including at least one variable among the plurality of variables; identifying a pairing of a variable that appears only in a predetermined number of constraints among the plurality of constraints and the predetermined number of constraints in which the variable appears, the predetermined number being less than the total number of constraints among the plurality of constraints; for each of the identified pairs, storing first correlation information in a storage unit, the first correlation information correlating the variable of the pair with another variable that appears in at least one of the predetermined number of constraints of the pair; storing second correlation information in a storage unit, the second correlation information correlating at least one of the plurality of variables with another variable having a predetermined or greater degree of correlation with the at least one variable based on a degree of correlation between the variables among the plurality of variables; and searching for a solution to the 0-1 integer programming problem by referring to the storage unit and determining a group of any two or more correlated variables among the plurality of variables as an object for value inversion based on the first correlation information and the second correlation information.
[0007] The objects and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
[0008] It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Figure 1 is an explanatory diagram depicting one example of an information processing method according to an embodiment.
[0010] Figure 2 is an explanatory diagram depicting an example of the information processing system 200 .
[0011] Figure 3 is a block diagram depicting an example of the hardware configuration of the information processing apparatus 100 .
[0012] Figure 4 is a block diagram depicting an example of the functional configuration of the information processing apparatus 100 .
[0013] Figure 5 is an explanatory diagram depicting an example of the operation of the information processing apparatus 100 .
[0014] Figure 6 is an explanatory diagram depicting a specific example of the operation of the information processing apparatus 100 .
[0015] Figure 7 is an explanatory diagram depicting an example of application of the information processing apparatus 100 .
[0016] Figure 8 is a flowchart depicting an example of the overall processing procedure.
[0017] Fig. 9 is a flowchart depicting an example of an initialization process procedure.
[0018] Fig.10 is a flow chart depicting an example of a 1-flip neighborhood search processing procedure.
[0019] Fig.11 is a flow chart depicting an example of a 2-flip neighborhood search processing procedure.
[0020] Fig.12 is a flow chart depicting an example of a (3,4)-flip neighborhood search processing procedure.
[0021] Fig.13 is a flowchart depicting an example of an update processing procedure. DETAILED DESCRIPTION
[0022] First, problems associated with conventional techniques are discussed. For example, it may sometimes be difficult to solve a 0-1 integer programming problem using the prior art described in UmetaniShunji, "Exploiting variable associations to configure efficient local search algorithms in large-scale binary integer programs". For example, in the case where the 0-1 integer programming problem includes variables that appear in only one constraint, it may not be possible to appropriately narrow the space for searching for solutions to the 0-1 integer programming problem based on the degree of association between the variables, and therefore, the 0-1 integer programming problem may not be solved.
[0023] Preferred embodiments of a recording medium, an information processing method, and an information processing apparatus according to the present invention are described with reference to the accompanying drawings.
[0024] Figure 11 is an explanatory diagram depicting one example of an information processing method according to an embodiment. The 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 personal computer (PC).
[0025] The 0-1 integer programming problem includes variables where each variable takes a value of 0 or 1. The solution to the 0-1 integer programming problem is a combination of the values of the variables. The 0-1 integer programming problem includes, for example, an objective function using the variables as an object to be optimized. The optimization is, for example, minimization or maximization. For example, the objective function is defined by the following formula (1), where N is an index set of variables, xj is the jth variable, and cj is a coefficient applied to the jth variable.
[0026] min x ∑ j∈N c j x j …(1)
[0027] The 0-1 integer programming problem includes, for example, constraints. The constraints include, for example, at least one variable among the variables. For example, the constraints are defined by the following formulas (2) to (4), where M L is the index set of the inequality constraints used as constraints, M E is the index set of the equality constraints used as constraints, a ij is the coefficient applied to the jth variable, and b i is a constant.
[0028] ∑ j∈N a ij x j ≤ b i (i∈M L )…(2)
[0029] ∑ j∈N a ij x j =b i (i∈M E )…(3)
[0030] x j ∈{0,1}(∈N)…(4)
[0031] Conventional metaheuristic algorithms for solving 0-1 integer programming problems include weighted local search methods. For more details on weighted local search methods, see, for example, 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. For example, weighted local search methods sometimes solve 0-1 integer programming problems by narrowing the space for searching solutions to the 0-1 integer programming problem based on the degree of association between the variables. For example, the greater the number of constraints that include both of the two variables among the constraints, the greater the value of the degree of association between the two variables.
[0032] For example, in the weighted local search method, each of the plurality of constraints is applied to the objective function by adding a term related to the violation amount of each of the plurality of constraints to the objective function. The term is, for example, a product obtained by multiplying the violation amount of the constraint by a coefficient. For example, the weighted local search method searches for a solution to a 0-1 integer programming problem by repeatedly performing a series of processes based on the objective function until an end condition is satisfied.
[0033] A series of processes includes, for example, a 1-flip neighborhood search process that evaluates whether a solution candidate obtained from a provisional solution by inverting the value of any variable brings the value of the objective function closer to an appropriate direction than the provisional solution. In the 1-flip neighborhood search process, for example, if a solution candidate obtained from a provisional solution by inverting the value of any variable brings the value of the objective function closer to an appropriate direction than the provisional solution, the provisional solution is updated using the solution candidate.
[0034] A series of processes includes, for example, a 2-flip neighborhood search process that is performed when a provisional solution is not updated in a 1-flip neighborhood search process. For example, the 2-flip neighborhood search process evaluates whether a solution candidate obtained from a provisional solution by inverting the values of any two variables having a greater degree of relationship brings the value of the objective function closer to an appropriate direction than the provisional solution based on the degree of relationship between the variables. In the 2-flip neighborhood search process, for example, if a solution candidate obtained from a provisional solution by inverting the values of any two variables having a greater degree of relationship brings the value of the objective function closer to an appropriate direction than the provisional solution, the provisional solution is updated using the solution candidate.
[0035] A series of processes includes, for example, a (3, 4) flip neighborhood search process that is executed when a provisional solution is not updated in a 2-flip neighborhood search process. For example, the (3, 4) flip neighborhood search process evaluates whether a solution candidate obtained from a provisional solution by inverting the values of any three or four variables having a greater degree of association brings the value of the objective function closer to an appropriate direction than the provisional solution based on the degree of association between the variables. In the (3, 4) flip neighborhood search process, for example, if a solution candidate obtained from a provisional solution by inverting the values of any three or four variables having a greater degree of association brings the value of the objective function closer to an appropriate direction than the provisional solution, the provisional solution is updated using the solution candidate.
[0036] For example, in the weighted local search method, if the provisional solution is not updated with the current execution of a series of processes, the coefficient by which the violation amount of at least one of the constraints is multiplied may be updated before the next execution of the series of processes.
[0037] For example, in the weighted local search method, if the provisional solution has been updated at least once after the coefficient by which the violation amount of at least one of the constraints is multiplied was most recently updated, the coefficient by which the violation amount of at least one of the constraints is multiplied may be updated to a value greater than the current value. For example, in the weighted local search method, if the provisional solution has not been updated after the coefficient by which the violation amount of at least one of the constraints is multiplied was most recently updated, the coefficient by which the violation amount of at least one of the constraints is multiplied may be updated to a value less than the current value.
[0038] However, in conventional methods, it may be difficult to calculate a solution to a 0-1 integer programming problem. For example, when there is a variable that appears in only one constraint, the degree of association 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 variables that appear in only one constraint and other variables is not selected as a value inversion object. Therefore, it may not be possible to appropriately narrow the space for searching a solution to a 0-1 integer programming problem.
[0039] Therefore, in the conventional technology, for example, a solution to the 0-1 integer programming problem may not be appropriately searched, and a solution to the 0-1 integer programming problem may not be accurately calculated.
[0040] On the other hand, a method of modifying the weighted local search method may be considered so that a series of processes are repeatedly performed to calculate and evaluate solution candidates by inverted values for all possible groups, each of which includes two or more variables regardless of the degree of association. The problem with this method is that the processing load and processing time required to perform a series of processes increase, making it difficult to efficiently calculate a solution to the 0-1 integer programming problem.
[0041] Therefore, in this embodiment, an information processing method that can help solve a 0-1 integer programming problem is described. According to this embodiment, for example, a suitable solution to a 0-1 integer programming problem can be accurately calculated while reducing the processing load and processing time required for a temporary solution to find a suitable solution to the 0-1 integer programming problem.
[0042] exist Figure 1 In (1-1), the information processing device 100 obtains a 0-1 integer programming problem 110. The 0-1 integer programming problem 110 includes multiple variables, each variable takes a value of 0 or 1. The 0-1 integer programming problem 110 is a 0-1 integer programming problem. For example, the information processing device 100 obtains the objective function that forms the 0-1 integer programming problem 110. For example, the information processing device 100 obtains the constraints that form the 0-1 integer programming problem 110. The constraints include at least one of the variables. The constraints are mathematical expressions. Figure 1 In the example depicted, the variable is, for example, x i and j . "" is a positive integer. "j" is a positive integer. For ease of explanation, a variable that appears only in one constraint is denoted as y j , and variables that co-appear in two or more constraints are denoted as x i .
[0043] (1-2) The information processing device 100 identifies a pair 120 consisting of a variable that appears only in a predetermined number of constraints that is smaller than the total number of constraints and the predetermined number of constraints in which the variable appears. The predetermined number is, for example, one. Figure 1 In the depicted example, the information processing device 100, for example, identifies a variable y1 that appears in only one constraint and a variable y2 that appears in only one constraint. The information processing device 100, for example, identifies a pair 121 of a variable y1 and the one constraint in which the identified variable y1 appears. The information processing device 100, for example, identifies a pair 122 of a variable y1 and the one constraint in which the identified variable y2 appears.
[0044] (1-3) For each identified pair 120, the information processing device 100 registers first correlation information in the storage unit 150, wherein the first correlation information correlates a variable of the pair 120 with another variable that appears in at least one of a predetermined number of constraints of the pair 120. Figure 1In the depicted example, for example, the information processing device 100 stores first correlation information in the storage unit 150, wherein the first correlation information correlates the variable y1 of the identified pairing 121 with other variables x2, x3, and x5 that appear in the constraint condition of the pairing 121, as depicted in Table 130. For example, the information processing device 100 stores first correlation information in the storage unit 150, wherein the first correlation information correlates the variable y2 of the identified pairing 122 with other variables x1, x3, and x6 that appear in the constraint condition of the pairing 122, as depicted in Table 130.
[0045] (1-4) The information processing device 100 stores the second correlation information in the storage unit 150, wherein the second correlation information correlates at least one of the variables with another variable having a certain degree of correlation with the at least one of the variables based on the degree of correlation between the variables. The degree of correlation is, for example, an index value proportional to the number of constraints in which the two variables co-occur. For example, the degree of correlation between the two variables is an index value whose value increases as the number of constraints in which the two variables co-occur increases. For example, the information processing device 100 stores the second correlation information in the storage unit 150, wherein the second correlation information correlates at least one of the variables with another variable having a degree of correlation with the at least one of the variables that is equal to or greater than a certain level and is the largest.
[0046] exist Figure 1In the depicted example, for example, as depicted in Table 140, the information processing device 100 stores the second correlation information in the storage unit 150, wherein the second correlation information associates the variable x1 with the variable x2 whose degree of association with the variable x1 is equal to or greater than a certain level and is the largest. For example, as depicted in Table 140, the information processing device 100 stores the second correlation information in the storage unit 150, wherein the second correlation information associates the variable x2 with the variable x2 whose degree of association with the variable x2 is equal to or greater than a certain level and is the largest. For example, as depicted in Table 140, the information processing device 100 stores the second correlation information in the storage unit 150, wherein the second correlation information associates the variable x3 with the variables x1 and x2 whose degree of association with the variable x3 is equal to or greater than a certain level and is the largest. For example, as depicted in Table 140, the information processing device 100 stores the second correlation information in the storage unit 150, wherein the second correlation information associates the variable x5 with the variable x1 whose degree of association with the variable x5 is equal to or greater than a certain level and is the largest. For example, as depicted in table 140 , the information processing device 100 registers second correlation information in the storage unit 150 , wherein the second correlation information associates the variable x6 with the variable x1 whose degree of association with the variable x6 is equal to or greater than a certain level and is the largest.
[0047] (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 determining, for example, a group of any two or more related variables among the variables as an object for inverting a value based on the first correlation information and the second correlation information. For example, the information processing device 100 performs a weighted local search method that is extended to determine, for example, a group of any two or more related variables as an object for inverting a value based on the first correlation information and the second correlation information.
[0048] This enables the information processing device 100 to contribute to solving the 0-1 integer programming problem 110. For example, the information processing device 100 can accurately calculate the solution of the 0-1 integer programming problem 110, can efficiently calculate the solution of the 0-1 integer programming problem 110, and can reduce the time required to calculate the solution of the 0-1 integer programming problem 110. For example, the information processing device 100 can determine a group including variables appearing in only one constraint condition (the group is not an object for inverting values in the case of referring only to the degree of association) as a value inversion object, and can contribute to solving the 0-1 integer programming problem 110.
[0049] Although the case where the predetermined number is 1 has been described, this is not restrictive. For example, the predetermined number may be a number of 2 or more that is smaller than the total number of constraints. For example, the predetermined number may be a specified fraction of the total number of constraints.
[0050] 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 this is not restrictive. For example, the information processing device 100 may use a new algorithm different from the existing algorithm of the weighted local search method to search for a solution to the 0-1 integer programming problem 110 based on the first correlation information and the second correlation information.
[0051] The case where the functions of the information processing device 100 are implemented by a single computer has been described, but this is not restrictive. For example, the functions of the information processing device 100 can be implemented by the cooperation of computers. For example, the functions of the information processing device 100 can be implemented on the cloud.
[0052] Reference Figure 2 , describing the application Figure 1 An example of an information processing system 200 of the information processing device 100 is depicted.
[0053] Figure 2 2 is an explanatory diagram depicting an example of the information processing system 200. Figure 2 , the information processing system 200 includes an information processing device 100 and one or more client devices 201 .
[0054] 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), the Internet, or the like.
[0055] 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 for calculating a solution to a 0-1 integer programming problem from a client device 201. The processing request includes, for example, a 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, constraints that form the 0-1 integer programming problem. The information processing device 100 obtains the objective function that forms the 0-1 integer programming problem and the constraints that form the 0-1 integer programming problem based on the received processing request.
[0056] The information processing device 100 calculates the degree of association between variables among the variables based on the constraint conditions. The degree of association is, for example, an index value proportional to the number of constraint conditions in which two variables co-occur. For example, the degree of association between two variables is an index value whose value increases as the number of constraint conditions in which two variables co-occur increases.
[0057] The information processing device 100 identifies pairs consisting of a variable that appears only in a predetermined number of constraints that is smaller than the total number of constraints and the predetermined number of constraints in which the variable appears. The predetermined number is, for example, 1. For each identified pair, the information processing device 100 stores first correlation information in a storage unit, wherein the first correlation information correlates the variable of the pair with another variable that appears in at least one of the predetermined number of constraints of the pair.
[0058] The information processing device 100 stores second correlation information in a storage unit, wherein the second correlation information correlates at least one of the variables with another variable having a certain degree of correlation with the at least one of the variables based on the degree of correlation between the variables among the variables. The information processing device 100 stores, for example, second correlation information in a storage unit, wherein the second correlation information correlates at least one of the variables with other variables having a certain degree of correlation with the at least one of the variables, in descending order from one other variable having the greatest degree of correlation with the at least one of the variables to a specified number of other variables.
[0059] The information processing device 100 refers to the storage unit to search for a solution to the 0-1 integer programming problem, thereby calculating the solution to the 0-1 integer programming problem. The information processing device 100 searches for a solution to the 0-1 integer programming problem by determining, for example, a group of any two or more variables that are related to each other among the variables as a value inversion object based on the first correlation information and the second correlation information.
[0060] For example, the information processing device 100 performs a weighted local search method that is extended to determine a group of any two or more variables that are related to each other, for example, as a value inversion object based on the first correlation information and the second correlation information. The information processing device 100 sends the calculated solution of the 0-1 integer programming problem to the client device 201. The information processing device 100 is, for example, a server or a PC.
[0061] 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 the user's operation input. The client device 201 sets, for example, the objective function of the 0-1 integer programming problem and the constraint conditions of the 0-1 integer programming problem based on the user's operation input.
[0062] The client device 201 generates a processing request including the set objective function forming the 0-1 integer programming problem and the set constraint condition forming the 0-1 integer programming problem, and the processing request further requests to calculate the solution of the 0-1 integer programming problem. The client device 201 sends the generated processing request to the information processing device 100. The client device 201 receives the solution of the 0-1 integer programming problem from the information processing device 100. The client device 201 outputs the solution of the 0-1 integer programming problem so that the user can refer to the solution. The client device 201 is, for example, a PC, a tablet terminal or a smart phone.
[0063] A case has been described where the information processing device 100 is a computer different from the client device 201 , but this is not restrictive. For example, the information processing device 100 may have a function as the client device 201 and also operate as the client device 201 .
[0064] Next, refer to Figure 3 , describes an example of the hardware configuration of the information processing device 100.
[0065] Figure 3 is a block diagram depicting an example of the hardware configuration of the information processing device 100. Figure 3 In the example, the information processing apparatus 100 has a central processing unit (CPU) 301, a memory 302, a network interface (I / F) 303, a recording medium I / F 304, and a recording medium 305. These components are connected by a bus 300.
[0066] The CPU 301 herein controls the overall control of the information processing device 100. The memory 302 includes, for example, a read-only memory (ROM), a random access memory (RAM), a flash ROM, and the like. Specifically, for example, the flash ROM and the ROM store various programs, and the RAM is used as a work area of the CPU 301. The program stored in the memory 302 is loaded onto the CPU 301, and the processing encoded thereby is executed by the CPU 301.
[0067] 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. In addition, 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, a LAN adapter, or the like.
[0068] Under the control of the CPU 301, the recording medium I / F 304 controls reading and writing of data on the recording medium 305. 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 nonvolatile memory in which data written therein under the control of the recording medium I / F 304 is stored. The recording medium 305 is, for example, a disk, a semiconductor memory, a USB memory, etc. The recording medium 305 may be removable from the information processing apparatus 100.
[0069] In addition to the described components, the information processing device 100 may include, for example, a keyboard, a mouse, a display, a printer, a scanner, a microphone, a speaker, etc. In addition, the information processing device 100 may have a plurality of recording medium I / Fs 304 and / or recording media 305. The information processing device 100 may omit the recording medium I / F 304 and / or the recording medium 305.
[0070] An example of the hardware configuration of the client device 201 is as follows Figure 3 The depicted examples of the hardware configuration of the information processing apparatus 100 are the same.
[0071] Reference Figure 4 , describing an example of the functional configuration of the information processing device 100.
[0072] Figure 4 is a block diagram depicting an example of a functional configuration of the information processing device 100. The information processing device 100 includes a storage unit 400, an obtaining unit 401, a first registering unit 402, a second registering unit 403, a searching unit 404, and an output unit 405.
[0073] The storage unit 400 is composed of, for example, Figure 3 The storage area of the depicted memory 302 and the recording medium 305 is implemented. In the following, a case where the storage unit 400 is included in the information processing device 100 is described, but the present invention is not limited thereto. For example, the storage unit 400 may be included in a device different from the information processing device 100, and the storage content of the storage unit 400 may be referred to by the information processing device 100.
[0074] The obtaining unit 401 to the output unit 405 function as, for example, a control unit. For example, by causing the CPU 301 to execute the Figure 3 The functions of the obtaining unit 401 to the output unit 405 are realized by the program in the storage area of the depicted memory 302 and the recording medium 305, or through the network I / F 303. The processing result of each functional unit is stored in, for example, a file such as Figure 3 Storage areas of memory 302 and recording medium 305 are depicted.
[0075] The storage unit 400 stores therein various information that each functional unit refers to or updates when performing processing. The storage unit 400 stores therein, for example, a 0-1 integer programming problem. The 0-1 integer programming problem is a 0-1 integer programming problem including variables in which each variable takes a value of 0 or 1. The storage unit 400 stores, for example, constraints that form the 0-1 integer programming problem. The constraints are, for example, mathematical expressions including at least one or more variables among the variables. The constraints are obtained by, for example, the obtaining unit 401.
[0076] The storage unit 400 stores, for example, an objective function that forms a 0-1 integer programming problem. The objective function is a mathematical expression that represents an evaluation value to be optimized. The evaluation value represents, for example, cost or profit. Optimization is, for example, minimization or maximization. For example, an evaluation value representing cost is an object to be minimized. For example, an evaluation value representing profit is an object to be maximized. The objective function also includes a parameter used as a coefficient multiplied by the product of the violation amount of each constraint in the constraint condition, in order to reduce the violation amount of each constraint in the constraint condition. For example, the objective function is obtained by obtaining unit 401.
[0077] The storage unit 400 stores therein, for example, the degree of association between the variables in the variables. The degree of association is, for example, an index value proportional to the number of constraints in which the two variables co-occur among the constraints. For example, the degree of association between the two variables is an index value whose value increases as the number of constraints in which the two variables co-occur increases. The storage unit 400 stores therein, for example, correlation information that correlates two or more variables in the variables. For example, the correlation information is generated by the first register unit 402 or the second register unit 403.
[0078] The storage unit 400 stores, for example, a provisional solution to a 0-1 integer programming problem. The provisional solution to the 0-1 integer programming problem is a combination of values of variables. For example, the provisional solution to the 0-1 integer programming problem is calculated by the search unit 404. The storage unit 400 stores therein, for example, a solution candidate to the 0-1 integer programming problem. The solution candidate to the 0-1 integer programming problem is a combination of values of variables. For example, the solution candidate to the 0-1 integer programming problem is calculated by the search unit 404.
[0079] The acquisition unit 401 acquires various information used by each functional unit when performing processing. The acquisition unit 401 stores the acquired various information in the storage unit 400, or outputs the information to the functional unit. The acquisition unit 401 can also output the various information stored in the storage unit 400 to the functional unit. The acquisition unit 401 acquires various information based on, for example, the operation input of the user. The acquisition unit 401 can receive various information from, for example, a device different from the information processing device 100.
[0080] The obtaining unit 401 obtains, for example, a processing request requesting calculation of a solution to a 0-1 integer programming problem. The solution to the 0-1 integer programming problem is calculated by, for example, the searching unit 404. The processing request may include, for example, a constraint condition forming the 0-1 integer programming problem. The processing request may include, for example, an objective function forming the 0-1 integer programming problem. For example, the obtaining unit 401 obtains the processing request by receiving an input for the processing request based on an operation input of a user. The obtaining unit 401 obtains the processing request, for example, by receiving the processing request from another computer.
[0081] The obtaining unit 401 obtains, for example, constraints that form a 0-1 integer programming problem. The obtaining unit 401 obtains the constraints by, for example, extracting the constraints from the obtained processing request. The obtaining unit 401 can obtain the constraints by, for example, receiving an input of the constraints based on a user's operation input. The obtaining unit 401 can obtain the constraints by, for example, receiving the constraints from another computer.
[0082] The obtaining unit 401 obtains, for example, an objective function that forms a 0-1 integer programming problem. The obtaining unit 401 obtains the objective function, for example, by extracting the objective function from the obtained processing request. The obtaining unit 401 can obtain the objective function, for example, by receiving an input of the objective function based on an operation input of a user. The obtaining unit 401 can obtain the objective function, for example, by receiving the objective function from another computer.
[0083] For example, when the obtained objective function does not include the product of the parameter used as a coefficient and the violation amount of each of the constraints, the obtaining unit 401 may expand the objective function to include the product. More specifically, the obtaining unit 401 expands the objective function by adding the product of the parameter used as a coefficient and the violation amount of each of the constraints to the obtained objective function to reduce the violation amount of each of the constraints.
[0084] The obtaining unit 401 may obtain, for example, an end instruction requesting output of a solution to a 0-1 integer programming problem. For example, the obtaining unit 401 obtains the end instruction by receiving an input of the end instruction based on a user's operation input. For example, the obtaining unit 401 obtains the end instruction by receiving the end instruction from another computer.
[0085] The obtaining unit 401 may receive a start trigger for starting the processing of any one of the functional units. The start trigger is, for example, a predetermined operation input by a user. The start trigger may be, for example, receiving predetermined information from another computer. The start trigger may be, for example, outputting predetermined information by any one of the functional units.
[0086] The obtaining unit 401 obtains, for example, a processing request as a start trigger for starting processing by the first registration unit 402 , the second registration unit 403 , and the search unit 404 .
[0087] The first registering unit 402 generates first correlation information that correlates two or more variables among the variables, and registers the first correlation information in the storage unit 400. The first registering unit 402, for example, identifies parings consisting of: a variable that appears only in a predetermined number of constraints that are smaller than the total number of constraints among the constraints, and the predetermined number of constraints in which the variable appears. For example, for each of the identified parings, the first registering unit 402 generates first correlation information that correlates the variable of the paring with another variable that appears in at least one of the predetermined number of constraints of the paring, and registers the first correlation information in the storage unit 400. This enables the first registering unit 402 to identify a group of two or more variables whose values are expected to be reversed, regardless of the degree of association between the variables.
[0088] The first registering unit 402 may not need to specify all pairs consisting of the following items: variables that appear only in a predetermined number of constraints less than the total number of constraints and the predetermined number of constraints in which the variables appear, for example, at once. This enables the first registering unit 402 to reduce the amount of processing.
[0089] The second registering unit 403 generates second correlation information correlating two or more variables among the variables, and registers the second correlation information in the storage unit 400. For example, the second registering unit 403 generates second correlation information correlating at least one variable among the variables with another variable having a certain degree of correlation with the at least one variable among the variables based on the degree of correlation between the variables, and registers the second correlation information in the storage unit 400. This enables the second registering unit 403 to specify a group of two or more variables whose values are desired to be attempted to be reversed according to the degree of correlation between the variables.
[0090] For example, the second registering unit 403 may not need to generate all the second correlation information that correlates each variable in the variables with other variables that have a certain degree of correlation with the variable at one time, which enables the second registering unit 403 to reduce the processing amount.
[0091] The search unit 404 refers to the storage unit 400, and determines a group of any two or more related variables among the variables as an object for reversing the value based on the first correlation information and the second correlation information, 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 that is smaller than the total number of constraints and equal to or greater than 2. The predetermined number may be, for example, a fraction of the total number of constraints.
[0092] For example, the search unit 404 refers to the storage unit 400 and repeatedly performs a series of processes for updating the provisional solution of the 0-1 integer programming problem based on the first correlation information and the second correlation information until the end condition is satisfied, thereby searching for a solution to the 0-1 integer programming problem. The end condition is, for example, that the elapsed time from the first execution of the series of processes has exceeded a predetermined time length.
[0093] The end condition may be, for example, that the series of processes has been executed a predetermined number of times. The end condition may be, for example, that the acquisition unit 401 has obtained an end instruction. The end condition may be, for example, that the number of times the temporary solution to the 0-1 integer programming problem has been discontinuously updated has exceeded a predetermined threshold. The end condition may be, for example, that the value of the objective function of the temporary solution has reached a predetermined value.
[0094] For example, a series of processes determines one or more groups in which each group includes any two or more related variables. For example, for each of the determined one or more groups, the series of processes identifies a solution candidate for a 0-1 integer programming problem obtained from a provisional solution of the 0-1 integer programming problem by inverting the value of the group. For example, a series of processes determines whether there is any solution candidate among the identified solution candidates that makes the value of the objective function closer to an appropriate direction than the provisional solution based on the objective function. For example, when there is a solution candidate that makes the value of the objective function closer to an appropriate direction than the provisional solution, the solution candidate is used to update the provisional solution.
[0095] For example, a series of processes includes a first process. For example, for each variable in the variables, the first process identifies a first solution candidate for the 0-1 integer programming problem, the first solution candidate being obtained from a temporary solution of the 0-1 integer programming problem by inverting the value of the variable. For example, based on the objective function, the first process determines whether there is any first solution candidate among the identified first solution candidates that makes the value of the objective function closer to the appropriate direction compared to the temporary solution. When there is a first solution candidate that makes the value of the objective function closer to the appropriate direction compared to the temporary solution, the first process updates the temporary solution using any first solution candidate among the first solution candidates. This enables the search unit 404 to appropriately update the temporary solution.
[0096] For example, a series of processes includes a second process. For example, when there is no first solution candidate that makes the value of the objective function closer to the appropriate direction compared to the temporary solution, the second process determines one or more groups in which each group includes any two related variables among the variables. For example, for each of the one or more groups determined, the second process identifies a second solution candidate for the 0-1 integer programming problem, and the second solution candidate is obtained from the temporary solution by inverting the value of the group. For example, based on the objective function, the second process determines whether there is any second solution candidate among the identified second solution candidates that makes the value of the objective function closer to the appropriate direction compared to the temporary solution. For example, when there is any second solution candidate that makes the value of the objective function closer to the appropriate direction compared to the temporary solution, the second process uses any second solution candidate among the second solution candidates to update the temporary solution. This enables the search unit 404 to appropriately update the temporary solution.
[0097] For example, a series of processes includes a third process. For example, when there is no second solution candidate that makes the value of the objective function closer to the appropriate direction compared to the temporary solution, the third process determines one or more groups in which each group includes any three or four related variables among the variables. For example, for each of the one or more groups determined, the third process identifies a third solution candidate for the 0-1 integer programming problem, and the third solution candidate is obtained from the temporary solution by inverting the value of the group. For example, based on the objective function, the third process determines whether there is any third solution candidate among the identified third solution candidates that makes the value of the objective function closer to the appropriate direction compared to the temporary solution. For example, when there is any third solution candidate that makes the value of the objective function closer to the appropriate direction compared to the temporary solution, the third process uses any third solution candidate among the third solution candidates to update the temporary solution. This enables the search unit 404 to appropriately update the temporary solution.
[0098] The search unit 404 may update the parameter of the coefficient by which at least one of the constraints is multiplied after the current execution of the series of processes. For example, the search unit 404 determines whether the provisional solution is updated with the current execution of the series of processes. For example, if the provisional solution is updated with the current execution of the series of processes, the search unit 404 performs the series of processes again without updating the parameter of the coefficient by which any of the constraints is multiplied. This enables the search unit 404 to make the provisional solution of the 0-1 integer programming problem closer to the optimal solution.
[0099] For example, the search unit 404 determines whether the temporary solution is updated after the last update of the parameter as the coefficient but before the current execution of the series of processes. For example, there may be a situation where the temporary solution is updated after the last update of the parameter as the coefficient but before the current execution of the series of processes, and a situation where the temporary solution is not updated with the current execution of the series of processes. In this case, for example, the search unit 404 updates the parameter of the coefficient by which at least one constraint in the constraint is multiplied 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 of the coefficient by which one of the constraints with a relatively large violation amount is multiplied; the search unit 404 updates the parameter to a value larger than the current value, and then performs the series of processes again. The search unit 404 can therefore make the temporary solution of the 0-1 integer programming problem closer to the optimal solution so as not to violate the constraint.
[0100] For example, there may be a situation where the provisional solution is not updated from the last update of the parameter as the coefficient until the start of the current execution of a series of processes, and a situation where the provisional solution is not updated with the current execution of a series of processes. In this case, for example, the search unit 404 updates the parameter of the coefficient by which at least one constraint in the constraint condition is multiplied to a value smaller than the current value, and then executes a series of processes again. More specifically, the search unit 404 updates the parameter of the coefficient by which each constraint in the constraint condition is multiplied to a value smaller than the current value, and then executes a series of processes again. This enables the search unit 404 to temporarily tolerate the violation of the constraint condition, thereby helping to make the provisional solution of the 0-1 integer programming problem closer to the optimal solution.
[0101] For example, the first registering unit 402 may generate new first correlation information correlating two or more variables among the variables again in response to the search unit 404 performing a series of processes, and may register the first correlation information in the storage unit 400. For example, the first registering unit 402 identifies a pair consisting of a variable that appears only in a predetermined number of constraints that are smaller than the total number of constraints among the constraints and the predetermined number of constraints in which the variable appears. For example, for each of the identified pairs, the first registering unit 402 generates new first correlation information correlating the variable of the pair with another variable that appears in at least one of the predetermined number of constraints of the pair, and registers the new first correlation information in the storage unit 400. This enables the first registering unit 402 to identify a group of two or more variables whose values are expected to be reversed, regardless of the degree of association between the variables.
[0102] The second registering unit 403 may generate new second correlation information correlating two or more variables among the variables again in response to, for example, a series of processes performed by the searching unit 404, and register the new second correlation information in the storage unit 400. For example, the second registering unit 403 generates new second correlation information correlating at least one variable among the variables with another variable having a certain degree of correlation with the at least one variable among the variables based on the degree of correlation between the variables, and registers the new second correlation information in the storage unit 400. This enables the second registering unit 403 to identify a group of two or more variables whose values are expected to be reversed according to the degree of correlation between the variables.
[0103] 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, print output to a printer, transmission to an external device through the network I / F 303, or storage to a storage area such as the memory 302 and the recording medium 305. Therefore, 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.
[0104] For example, when the end condition is met, the output unit 405 outputs a temporary solution to the 0-1 integer programming problem as the solution to the 0-1 integer programming problem, and the temporary solution has been updated by the search unit 404. For example, the output unit 405 outputs the solution to the 0-1 integer programming problem so that the user can refer to the solution. For example, the output unit 405 can send the solution to the 0-1 integer programming problem to another computer. Therefore, the output unit 405 can make the solution to the 0-1 integer programming problem available externally.
[0105] A flow chart describing the operation of the information processing device 100. The information processing device 100 obtains an objective function and constraints that form a 0-1 integer programming problem. The objective function is defined by, for example, the above formula (1). The constraints 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 constraints. A solution is a vector representing a combination of values of variables. In the following description, N is an index set of variables.
[0106] Step 1: When performing preprocessing, the information processing device 100 sets a 0 vector indicating that each variable in the indicator variable has a value of 0 as a temporary solution to the 0-1 integer programming problem. When performing preprocessing, the information processing device 100 expands the objective function by adding a term related to the violation amount of each constraint condition to the objective function. For example, the following formulas (5) to (8) are defined.
[0107] M=M L ∪M E …(5)
[0108] d i (x) = ∑ j∈N a ij x j -b i (i∈M)…(6)
[0109]
[0110] "p i - (x)” represents the amount of violation of any constraint in the solution x. i +(x)" represents the amount of violation of any constraint in the solution x. Use p i - (x) and p i + (x), for example, the objective function is expanded to be defined by the following formulas (9) and (10). i - (i∈M E )" is a non-negative parameter. "w i + (i∈M)” is a non-negative parameter. In the following description, w i - (i∈M E ) and w i + (i∈M) can be written as a “penalty coefficient”.
[0111]
[0112] x j ∈{0,1}(j∈N)…(10)
[0113] The information processing device 100 initializes a neighbor list of at least one of the variables. When searching for a solution to a 0-1 integer programming problem, the neighbor list of at least one of the variables is a list that records the following other variables: the other variables can be objects for reversing values simultaneously with the at least one of the variables. For example, the information processing device 100 extracts a pair consisting of the following items: a variable that appears only in one constraint, and the one constraint. 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 of the pair, to be set in the neighbor list of each variable in the variables that appear in the constraint of the pair.
[0114] As described below, the information processing device 100 repeatedly performs a series of processes until the end condition is satisfied, and updates the temporary solution of the 0-1 integer programming problem, thereby searching for a solution to the 0-1 integer programming problem and calculating an appropriate solution to the 0-1 integer programming problem. A series of processes includes the following steps 2 to 6.
[0115] Step 2: The information processing device 100 determines whether the end condition is met. The end condition is, for example, that a predetermined time has passed since the first execution of a series of processes. The end condition may be, for example, that a series of processes has been executed a predetermined number of times or more. The end condition may be, for example, that the information processing device 100 has received an end instruction based on the user's operation input. If the end condition is met, the information processing device 100 outputs a temporary solution to the 0-1 integer programming problem as a solution to the 0-1 integer programming problem. If the end condition is not met, the information processing device 100 proceeds to step 3.
[0116] Step 3: The information processing device 100 performs a 1-flip neighborhood search process. For example, for each variable among the plurality of variables, the information processing device 100 calculates a solution candidate from a provisional solution of the 0-1 integer programming problem by inverting only the value of the variable. For example, the information processing device 100 determines whether there is one or more solution candidates among the calculated solution candidates that make the value of the objective function closer to an appropriate direction than the provisional solution of the 0-1 integer programming problem. An appropriate direction is, for example, a direction of minimization.
[0117] For example, if there are one or more solution candidates that make the value of the objective function closer to the appropriate direction, the information processing device 100 selects one solution candidate that makes the value of the objective function closer to the most appropriate direction among the one or more solution candidates. For example, the information processing device 100 updates the temporary solution of the 0-1 integer programming problem using the selected one solution candidate, and returns to the processing at step 2. On the other hand, for example, if there is no solution candidate that makes the value of the objective function closer to the appropriate direction, the information processing device 100 proceeds to the processing at step 4. This enables the information processing device 100 to make the temporary solution of the 0-1 integer programming problem closer to the optimal solution.
[0118] Step 4: The information processing device 100 performs a 2-flip neighborhood search process. The 2-flip neighborhood search process includes the following steps 4-1 to 4-4.
[0119] Step 4-1: The information processing device 100 selects, for example, the jth variable x j , and obtain the variable x j The neighbor list of . “j” has an initial value of 1.
[0120] Step 4-2: For example, if the selected variable x has not yet been calculated j With other variables x k If the degree of association assoc(j, k) between any one of the variables is assoc(j, k), the information processing device 100 calculates the selected variable x j With other variables x kFor example, before proceeding to the process at step 4-3, the information processing device 100 calculates the variable x according to the following formula (11): j With other variables x k The degree of association between each of assoc(j, k), where a ij is the variable x j The coefficient to be multiplied, and a ik is the variable x k The coefficient to be multiplied. For example, if the information processing device 100 has calculated the selected variable x j With other variables x k , the information processing device 100 obtains the degree of association assoc(j, k) and proceeds to the processing at step 4-4.
[0121]
[0122] Step 4-3: The information processing device 100 for example sets C other variables x k According to the other variables x k The one with the largest calculated association degree assoc(j, k) is added to the selected variable x in descending order starting from j 's neighbor list and proceed to the processing at step 4-4.
[0123] Step 4-4: For example, based on the neighbor list, the information processing device 100 identifies the variable x that can be selected. j and other variables x recorded in the neighbor list k For example, for each of the identified groups, the information processing device 100 calculates solution candidates from the provisional solution of the 0-1 integer programming problem by inverting only the values of the variables belonging to the group. The information processing device 100 determines whether there is one or more solution candidates among the calculated solution candidates that make the value of the objective function closer to the appropriate direction compared with the provisional solution of the 0-1 integer programming problem. The appropriate direction is, for example, the direction of minimization.
[0124] If 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 solution candidates that brings the value of the objective function closer to the most appropriate direction among the one or more solution candidates. The information processing device 100 updates the temporary solution of the 0-1 integer programming problem using any one of the selected solution candidates, and returns to the processing at step 2.
[0125] On the other hand, when there is no solution candidate that brings the value of the objective function closer to the appropriate direction, and when j<N, the information processing device 100 increments j and returns to step 4-1. If there is no one or more solution candidates that bring the value of the objective function closer to the appropriate direction, and if j=N, the information processing device 100 proceeds to the processing at step 5. This enables the information processing device 100 to bring the temporary solution of the 0-1 integer programming problem closer to the optimal solution.
[0126] Step 5: The information processing device 100 performs the (3, 4) inverted neighborhood search process. The (3, 4) inverted neighborhood search process includes the following steps 5-1 to 5-4.
[0127] Step 5-1: The information processing device 100 selects, for example, the jth variable x j , and obtain the neighbor list of variable xj. "j" has an initial value of 1.
[0128] Step 5-2: For example, if the selected variable x has not yet been calculated j With other variables x k If the degree of association assoc(j, k) between any one of the variables is assoc(j, k), the information processing device 100 calculates the selected variable x j With other variables x k For example, before proceeding to the process at step 5-3, the information processing device 100 calculates the variable x according to the above formula (11): j With other variables x k For example, if the information processing device 100 has calculated the selected variable x j With other variables x k , the information processing device 100 obtains the degree of association assoc(j, k) and proceeds to the process at step 5-4.
[0129] Step 5-3: The information processing device 100 for example sets C other variables x k Follow the steps from other variables x k The one with the largest calculated association degree assoc(j, k) is added to the selected variable x in descending order starting from j 's neighbor list and proceed to the processing at step 5-4.
[0130] Step 5-4: For example, based on the neighbor list, the information processing device 100 identifies the variable x that can be selected. j and other variables x recorded in the neighbor list kFor example, for each of the identified groups, the information processing device 100 calculates solution candidates from the provisional solution of the 0-1 integer programming problem by inverting only the values of the variables belonging to the group. The information processing device 100 determines whether there is one or more solution candidates among the calculated solution candidates that make the value of the objective function closer to the appropriate direction compared with the provisional solution of the 0-1 integer programming problem. The appropriate direction is, for example, the direction of minimization.
[0131] If 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 solution candidate among 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 temporary solution of the 0-1 integer programming problem using any one of the selected solution candidates, and returns to the processing at step 2.
[0132] On the other hand, when there is no solution candidate that brings the value of the objective function closer to the appropriate direction, and when j<N, the information processing device 100 increments j and returns to step 5-1. If there is no one or more solution candidates that bring the value of the objective function closer to the appropriate direction, and if j=N, the information processing device 100 proceeds to the processing at step 6. This enables the information processing device 100 to bring the temporary solution of the 0-1 integer programming problem closer to the optimal solution.
[0133] Step 6: If the information processing device 100 does not update the temporary solution of the 0-1 integer programming problem with the current execution of a series of processes, the information processing device 100 adjusts the penalty coefficient. The larger the value of the penalty coefficient, the easier it is to find a temporary solution to the 0-1 integer programming problem that does not violate the constraints. On the other hand, it is often easier to accurately and efficiently search for a suitable solution to the 0-1 integer programming problem by experiencing a temporary solution to the 0-1 integer programming problem that violates the constraints than by experiencing a temporary solution to the 0-1 integer programming problem that does not violate the constraints. Therefore, in order to help accurately and efficiently search for a suitable solution to the 0-1 integer programming problem, there may be a situation where it is preferable to reduce the value of the penalty coefficient.
[0134] Step 6-1: For example, if the information processing device 100 has never updated the penalty coefficient, the information processing device 100 updates the penalty coefficient corresponding to at least one of the constraints to a value greater than the current value. For example, the information processing device 100 identifies one or more constraints violated by the temporary solution based on the temporary solution of the 0-1 integer programming problem. For example, the information processing device 100 updates the penalty coefficient corresponding to each of the one or more identified constraints to a value greater than the current value. After that, the information processing device 100 returns to the processing at step 2.
[0135] For details on the value to which the penalty coefficient should be updated that is larger than the current value, please refer to 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. Therefore, the information processing device 100 can reduce the amount of violation of the constraint condition, help update the temporary solution of the 0-1 integer programming problem so as not to violate the constraint condition, and thereby help search for the solution of the 0-1 integer programming problem with high precision.
[0136] Step 6-2: For example, if the provisional solution to the 0-1 integer programming problem has been updated one or more times after the penalty coefficient was last updated, the information processing device 100 updates the penalty coefficient corresponding to at least one of the constraints to a value greater than the current value. For example, the information processing device 100 identifies one or more constraints violated by the provisional solution to the 0-1 integer programming problem based on the provisional solution to the 0-1 integer programming problem. For example, the information processing device 100 updates the penalty coefficient corresponding to each of the one or more identified constraints to a value greater than the current value. Afterwards, the information processing device 100 returns to the processing at step 2.
[0137] For details on the value to which the penalty coefficient should be updated that is larger than the current value, please refer to 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. Therefore, the information processing device 100 can reduce the amount of violation of the constraint condition, help update the temporary solution of the 0-1 integer programming problem so as not to violate the constraint condition, and thereby help search for the solution of the 0-1 integer programming problem with high precision.
[0138] Step 6-3: For example, if the temporary solution of the 0-1 integer programming problem has not been updated after the penalty coefficient has been most recently updated, the information processing device 100 updates the penalty coefficient corresponding to at least one of the constraints to a value smaller than the current value. For example, the information processing device 100 updates the penalty coefficient corresponding to each of the constraints to a value smaller than the current value. For example, the information processing device 100 may update the penalty coefficient corresponding to each of two or more of the constraints among the constraints to a value smaller than the current value at a certain ratio. Thereafter, the information processing device 100 returns to the processing at step 2. This makes it easier for the information processing device 100 to accurately and efficiently search for a suitable solution to the 0-1 integer programming problem via a temporary solution to the 0-1 integer programming problem that violates the constraints.
[0139] As described, the information processing device 100 can accurately and efficiently calculate an appropriate solution to a 0-1 integer programming problem in which there are variables that appear in only one constraint. For example, the information processing device 100 can accurately and efficiently calculate an appropriate solution to a 0-1 integer programming problem including a packing constraint, etc., as represented by the following formula 12.
[0140] Σa ij x j ≤ b i y i …(12)
[0141] For example, in the conventional method described in Umetani, a suitable solution to the 0-1 integer programming problem is searched only based on the degree of association between variables. Therefore, for a 0-1 integer programming problem including a packing constraint and the like and having a variable appearing in only one constraint condition, the conventional method cannot efficiently search for a suitable solution to the 0-1 integer programming problem with high accuracy.
[0142] In contrast, the information processing device 100 can search for an appropriate solution to the 0-1 integer programming problem by considering variables that appear in only one constraint in addition to the degree of association between the variables. Therefore, even for a 0-1 integer programming problem that includes a packing constraint and has variables that appear in only one constraint, the information processing device 100 can search for an appropriate solution to the 0-1 integer programming problem with high accuracy and high efficiency.
[0143] Reference Figure 5 , describing an example of the operation of the information processing device 100.
[0144] Figure 5 is an explanatory diagram depicting an example of the operation of the information processing device 100. Figure 5 In the example, the information processing device 100 obtains a variable x ij and iThe information processing device 100 obtains information 510 that defines the 0-1 integer programming problem 500, for example.
[0145] Information 510 includes, for example, an objective function defined by the following formula (13). Information 510 includes, for example, constraints defined by the following formulas (14) to (17). j (j=1, ..., n)" is a positive number. C is a positive number. The variable x ij is a variable that appears in two or more constraints. i is a variable that appears in only one constraint.
[0146]
[0147] x ij ∈{0,1}(=1,...,n; j=1...,n)...(16)
[0148] y i ∈{0,1}(i=1,...,n)...(17)
[0149] When performing preprocessing, the information processing device 100 sets a 0 vector indicating that the value of each variable in the indicator variables is 0 in a temporary solution to the 0-1 integer programming problem 500. When performing preprocessing, the information processing device 100 expands the objective function by adding a term related to the violation amount of each constraint in the constraint conditions to the objective function.
[0150] The information processing device 100 identifies pairs 520 consisting of a variable yi appearing in only one constraint and the one constraint. For each of the identified pairs 520, the information processing device 100 generates and stores an initial list 530 {y i}, initial list 530{y i} is the variable x that appears in each of the identified pairs 520 ij The neighbor list is a list of other variables x. ij or its value can be the same as the variable x ij The variable y is also inverted i .
[0151] The information processing device 100 searches for a solution to the 0-1 integer programming problem 500 by updating the provisional solution to the 0-1 integer programming problem 500 while attempting to invert the values of one or more variables based on the initial list 530 and the degree of association between the variables. For example, the search is implemented by repeatedly performing a series of processes and updating the provisional solution to the 0-1 integer programming problem 500 until an end condition is satisfied. For example, the search is implemented through the above-mentioned steps 2 to 6.
[0152] This enables the information processing apparatus 100 to make the 0-1 integer programming problem 500 easier to solve. The information processing device 100, for example, can accurately calculate the solution to the 0-1 integer programming problem 500, and can efficiently calculate the solution to the 0-1 integer programming problem 500. For example, the information processing device 100 can reduce the time required to calculate the solution to the 0-1 integer programming problem 500. For example, the information processing device 100 can determine a group including variables that appear in only one constraint condition (the group is not subject to value inversion when referring only to the degree of association) as an object for value inversion, thereby making it easier to solve the 0-1 integer programming problem 500.
[0153] Reference Figure 6 , a specific example of the operation of the information processing device 100 is described.
[0154] Figure 6 is an explanatory diagram depicting a specific example of the operation of the information processing device 100. Figure 6 , the information processing device 100 obtains the 0-1 integer programming problem 600. When performing preprocessing, the information processing device 100 sets a 0 vector indicating that the value of each variable in the indicator variable is 0 as a temporary solution to the 0-1 integer programming problem 600. When performing preprocessing, the information processing device 100 expands the objective function by adding a term related to the violation amount of each constraint in the constraint condition to the objective function.
[0155] The information processing device 100 identifies a variable y that appears only in one constraint condition. i and the pairing 610 of the one constraint. For each of the identified pairings 610 , the information processing device 100 generates and stores an initial list 620 , which is a neighbor list of variables appearing in each of the pairings 610 .
[0156] For example, the information processing device 100 adds the variable y1 of the pairing 611 to the initial list 622, which is the neighbor list of the variable x2 that appears in the constraint condition of the pairing 611. For example, the information processing device 100 adds the variable y1 of the pairing 611 to the initial list 623, which is the neighbor list of the variable x3 that appears in the constraint condition of the pairing 611. For example, the information processing device 100 adds the variable y1 of the pairing 611 to the initial list 624, which is the neighbor list of the variable x5 that appears in the constraint condition of the pairing 611.
[0157] For example, the information processing device 100 adds the variable y2 of the pairing 612 to the initial list 621, which is the neighbor list of the variable x1 that appears in the constraint condition of the pairing 612. For example, the information processing device 100 adds the variable y2 of the pairing 612 to the initial list 623, which is the neighbor list of the variable x3 that appears in the constraint condition of the pairing 612. For example, the information processing device 100 adds the variable y2 of the pairing 612 to the initial list 625, which is the neighbor list of the variable x6 that appears in the constraint condition of the pairing 612.
[0158] The information processing device 100 searches for a solution to the 0-1 integer programming problem 600 by updating the temporary solution of 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 association between the variables. For example, the search is implemented by repeatedly performing a series of processes and updating the temporary solution of the 0-1 integer programming problem 600 until the end condition is satisfied. For example, the search is implemented through the above-mentioned steps 2 to 6.
[0159] During the search, the information processing device 100 may update the neighbor list of the selected variable in the above-mentioned steps 4 and 5. For example, the information processing device 100 first obtains the neighbor list of the variable x3 in which the initial list 623 is set. For example, based on the degree of association between the variables, the information processing device 100 adds a specified number of other variables to the obtained neighbor list in descending order starting from the one with the greatest degree of association with the variable x3 (including it), and thereby updates the neighbor list. The neighbor list after the update is list 630.
[0160] This enables the information processing device 100 to contribute to solving the 0-1 integer programming problem 600. For example, the information processing device 100 can accurately calculate the solution to the 0-1 integer programming problem 600, and can efficiently calculate the solution to the 0-1 integer programming problem 600. For example, the information processing device 100 can reduce the time required to calculate the solution to the 0-1 integer programming problem 600. For example, the information processing device 100 can determine a group including variables that appear in only one constraint condition (the group would not be an object for inverting values in the case of referring only to the degree of association) as an object for inverting values, and can contribute to solving the 0-1 integer programming problem 600.
[0161] Reference Figure 7 , describing an example of application of the information processing device 100.
[0162] Figure 7 is an explanatory diagram depicting an example of application of the information processing device 100. Figure 7 In the example, the information processing device 100 is applied to a 0-1 integer programming problem representing a practical logistics problem of determining which package should be transported via which route. For example, the 0-1 integer programming problem assumes that a delivery route for each package i=1, ..., n is selected from a set of route candidates R that have been set. i For example, the 0-1 integer programming problem assumes that the transport vehicle to be used for transportation has been determined for each route candidate.
[0163] For each transport vehicle k=1, ..., m, we define the set of route candidates for packages i=1, ..., n that can be fulfilled using transport vehicle k For example, for package i, there is a route candidate x for moving from A to B using transport vehicles y1 and y2 i1 For example, for package i, there are route candidates x for moving from A to B using transport vehicles y3, y4, and y5. i2 The cost of each transport vehicle k=1, ..., m is c k .
[0164] For example, a 0-1 integer programming problem aims to select a delivery route for each package that minimizes the total cost of the transport vehicles used. ij ∈{0, 1}(i=1,...,n; j∈R i ) and the variable y k ∈{0,1}(k=1,……,m). Variable x ij It is 1 when the route candidate j of package i is adopted, and it is 0 when the route candidate j of package i is not adopted. kIt is 1 when the transport vehicle k is used, and it is 0 when the transport vehicle k is not used. The objective function is defined by, for example, the following formula (18).
[0165]
[0166] The constraints are defined by, for example, the following formulas (19) and (20). The following formula (19) indicates that a delivery route for each package i is selected from a set of candidate routes Ri. The following formula (20) indicates that when a transport vehicle k is used, a set of candidate routes corresponding to the transport vehicle k is selectable. "m" is a positive constant greater than or equal to a certain value.
[0167]
[0168] Even in the presence of the variable y which only appears in the above formula (20) k When , the information processing device 100 can also accurately and efficiently calculate the solution of the 0-1 integer programming problem. Therefore, the information processing device 100 can accurately and efficiently determine the delivery route for each package that minimizes the total cost of the transportation vehicles used.
[0169] For example, the information processing device 100 may be applied to a 0-1 integer programming problem for minimizing the number of containers used when packing packages into containers, etc. For example, in addition to actual logistics problems, the information processing device 100 may be applied to the manufacturing field, etc. For example, the information processing device 100 may be applied to a 0-1 integer programming problem representing the cutting of wood or iron plates.
[0170] Reference Figure 8 , describes an example of the overall processing procedure performed by the information processing device 100. The overall processing is performed by, for example, Figure 3 The depicted CPU 301 , storage areas such as a memory 302 and a recording medium 305 , and a network I / F 303 are implemented.
[0171] Figure 8 is a flowchart depicting an example of the overall processing process. Figure 8 In step S801, the information processing device 100 obtains a 0-1 linear programming problem. Fig. 9 The initialization process described in (step S802).
[0172] The information processing device 100 determines whether the end condition is satisfied (step S803). If the end condition is satisfied (step S803: Yes), the information processing device 100 proceeds to the process at step S811. On the other hand, if the end condition is not satisfied (step S803: No), the information processing device 100 proceeds to the process at step S804.
[0173] At step S804, the information processing device 100 executes Fig.10 The information processing device 100 performs the 1-flip neighborhood search process described in (step S804). The information processing device 100 determines whether the provisional solution has been updated (step S805). If the provisional solution has been updated (step S805: Yes), the information processing device 100 returns to the process at step S803. On the other hand, if the provisional solution has not been updated (step S805: No), the information processing device 100 proceeds to the process at step S806.
[0174] At step S806, the information processing device 100 executes Fig.11 The 2-flip neighborhood search process described in (step S806). The information processing device 100 determines whether the provisional solution has been updated (step S807). If the provisional solution has been updated (step S807: Yes), the information processing device 100 returns to the process at step S803. On the other hand, if the provisional solution has not been updated (step S807: No), the information processing device 100 proceeds to the process at step S808.
[0175] At step S808, the information processing device 100 executes Fig.12 The (3, 4) flip neighborhood search process described in (step S808) is performed. The information processing device 100 determines whether the provisional solution has been updated (step S809). If the provisional solution has been updated (step S809: Yes), the information processing device 100 returns to the process at step S803. On the other hand, if the provisional solution has not been updated (step S809: No), the information processing device 100 proceeds to the process at step S810.
[0176] At step S810, the information processing device 100 updates the penalty coefficient (step S810). For example, when the penalty coefficient is updated 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 provisional solution has been updated at least once after the most recent update of the penalty coefficient, the information processing device 100 updates the penalty coefficient to a value larger than the current value. For example, if the provisional solution has not been updated even once after the most recent update of the penalty coefficient, 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 processing at step S803.
[0177] At 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.
[0178] Reference Fig. 9, describes an example of an initialization process performed by the information processing device 100. The initialization process is performed by, for example, Figure 3 The depicted CPU 301 , storage areas such as a memory 302 and a recording medium 305 , and a network I / F 303 are implemented.
[0179] Fig. 9 is a flowchart depicting an example of an initialization process. Fig. 9 , the information processing device 100 extracts pairs consisting of: a variable that appears only in one constraint and the one constraint (step S901). The information processing device 100 generates an initial list to be set in the neighbor list for each variable that appears in each constraint in the extracted paired constraints (step S902). The information processing device 100 terminates the initialization processing.
[0180] Reference Fig.10 , describes an example of a 1-flip neighborhood search process performed by the information processing device 100. The 1-flip neighborhood search process is performed by, for example Figure 3 The depicted CPU 301 , storage areas such as a memory 302 and a recording medium 305 , and a network I / F 303 are implemented.
[0181] Fig.10 is a flow chart depicting an example of a 1-flip neighborhood search process. Fig.10 In the example, the information processing device 100 selects the kth variable x k (Step S1001). The information processing device 100 converts the selected variable x k The value of is inverted to generate a solution candidate from the temporary solution of the 0-1 integer programming problem (step S1002).
[0182] The information processing device 100 determines whether the generated solution candidate brings the value of the objective function closer to the appropriate direction than the provisional solution based on the objective function (step S1003). When the generated solution candidate brings the value of the objective function closer to the appropriate direction than the provisional solution (step S1003: Yes), the information processing device 100 proceeds to the processing at step S1006. On the other hand, when the provisional solution brings the value of the objective function closer to the appropriate direction than the generated solution candidate (step S1003: No), the information processing device 100 proceeds to the processing at step S1004.
[0183] At step S1004, the information processing device 100 determines whether k>N is satisfied (step S1004). When k>N is satisfied (step S1004: Yes), the information processing device 100 ends the 1-flip neighborhood search process. On the other hand, when k>N is not satisfied (step S1004: No), the information processing device 100 increments k (step S1005) and returns to the process at step S1001.
[0184] At step S1006, the information processing device 100 updates the provisional solution using the generated solution candidate (step S1006). The information processing device 100 ends the 1-flip neighborhood search process.
[0185] Reference Fig.11 , describes an example of a 2-flip neighborhood search process performed by the information processing device 100. The 2-flip neighborhood search process is performed by, for example Figure 3 The depicted CPU 301 , storage areas such as a memory 302 and a recording medium 305 , and a network I / F 303 are implemented.
[0186] Fig.11 is a flow chart depicting an example of a 2-flip neighborhood search process. Fig.11 In the example, the information processing device 100 selects the kth variable x k (Step S1101). The information processing device 100 converts the selected variable x k The value of is inverted to generate a solution candidate from the temporary solution of the 0-1 integer programming problem (step S1102).
[0187] Based on the variable x k The neighbor list of the variable x k For each of the other variables related to the information processing device 100, the information processing device 100 identifies the variable x k and each of the other variables (step S1103). For each of the identified groups, the information processing device 100 generates a solution candidate from a provisional solution of the 0-1 integer programming problem by inverting the values of the variables of the group (step S1104).
[0188] Based on the objective function, the information processing device 100 determines whether there is any solution candidate among the generated solution candidates that makes the value of the objective function closer to the appropriate direction than the provisional solution (step S1105). When there is any such solution candidate (step S1105: Yes), the information processing device 100 proceeds to the processing at step S1108. On the other hand, when there is no such solution candidate (step S1105: No), the information processing device 100 proceeds to the processing at step S1106.
[0189] At step S1106, the information processing device 100 determines whether k>N is satisfied (step S1106). When k>N is satisfied (step S1106: Yes), the information processing device 100 ends the 2-flip neighborhood search process. On the other hand, when k>N is not satisfied (step S1106: No), the information processing device 100 increments k (step S1107) and returns to the process at step S1101.
[0190] At step S1108, the information processing device 100 updates the provisional solution using any solution candidate that brings the value of the objective function closer to the most appropriate direction among the generated solution candidates (step S1108). The information processing device 100 ends the 2-flip neighborhood search process.
[0191] Reference Fig.12 , describing an example of a (3, 4) flip neighborhood search process performed by the information processing device 100. The (3, 4) flip neighborhood search process is performed by, for example, Figure 3 The depicted CPU 301 , storage areas such as a memory 302 and a recording medium 305 , and a network I / F 303 are implemented.
[0192] Fig.12 is a flow chart depicting an example of a (3, 4) flip neighborhood search process. Fig.12 In the example, the information processing device 100 selects the kth variable x k (Step S1201). When the variable x k When the neighbor list of the initial list remains unchanged, the information processing device 100 performs the following operation later in Fig.13 The generation process described in , and thus update the variable x k neighbor list (step S1202).
[0193] Based on the variable x k The neighbor list of k For each combination of two or three other variables, the information processing device 100 identifies the variable x k and the combined group (step S1203). For each of the identified groups, the information processing device 100 generates a solution candidate from the provisional solution of the 0-1 integer programming problem by inverting the values of the variables of the group (step S1204).
[0194] Based on the objective function, the information processing device 100 determines whether there is any solution candidate among the generated solution candidates that makes the value of the objective function closer to the appropriate direction than the provisional solution (step S1205). When there is any such solution candidate (step S1205: Yes), the information processing device 100 proceeds to the processing at step S1208. On the other hand, when there is no such solution candidate (step S1205: No), the information processing device 100 proceeds to the processing at step S1206.
[0195] At step S1206, the information processing device 100 determines whether k>N is satisfied (step S1206). When k>N is satisfied (step S1206: Yes), the information processing device 100 ends the (3, 4) flip neighborhood search process. On the other hand, when k>N is not satisfied (step S1206: No), the information processing device 100 increments k (step S1207) and returns to the process at step S1201.
[0196] At step S1208, the information processing device 100 updates the provisional solution using 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.
[0197] Reference Fig.13 , describes an example of an update process performed by the information processing device 100. The update process is performed by, for example, Figure 3 The depicted CPU 301 , storage areas such as a memory 302 and a recording medium 305 , and a network I / F 303 are implemented.
[0198] Fig.13 is a flowchart depicting an example of an update process. Fig.13 In the example, the information processing device 100 obtains the variable x k The information processing device 100 calculates the variable x based on the constraint condition. k The degree of association with each of the other variables (step S1302).
[0199] Based on the calculated degree of association, the information processing device 100 determines the variable x k Related to a specified number of other variables, and update variable x k The information processing device 100 ends the update process.
[0200] The information processing device 100 may execute the Figures 8 to 13For example, the processing order at steps S806 and S808 is interchangeable. The information processing device 100 may omit Figures 8 to 13 For example, the processing at step S808 may be omitted.
[0201] As explained above, the information processing device 100 can obtain constraints forming a 0-1 integer programming problem, the 0-1 integer programming problem includes variables in which each variable takes a value of 0 or 1, and each constraint includes at least one of the variables. The information processing device 100 can identify a pair consisting of the following items: a variable that only appears in a predetermined number of constraints that is less than the total number of constraints among the constraints, and the predetermined number of constraints in which the variable appears. The information processing device 100 can store first correlation information in the storage unit 400, and for each identified pair, the first correlation information associates the variable of the pair with another variable that appears in at least one of the predetermined number of constraints of the pair. The information processing device 100 can store second correlation information in the storage unit 400, and the second correlation information associates at least one of the variables with another variable that has a certain or greater degree of association with the at least one of the variables based on the degree of association between the variables among the multiple variables. According to the information processing device 100, it becomes possible to search for a solution to the 0-1 integer programming problem by determining a group of any two or more related variables among the variables as an object for reversing values based on the first correlation information and the second correlation information by referring to the storage unit 400. This enables the information processing device 100 to accurately and efficiently search for a solution to the 0-1 integer programming problem.
[0202] According to the information processing device 100, 1 can be set to a predetermined number. This enables the information processing device 100 to accurately and efficiently search for a solution to a 0-1 integer programming problem even in the presence of a variable that appears in only one constraint condition.
[0203] According to the information processing device 100, a solution to the 0-1 integer programming problem can be searched by repeatedly performing a series of processes until an end condition is satisfied. According to a series of processes, one or more groups in which each group includes any two or more related variables among the variables can be determined. According to a series of processes, for each of the one or more determined groups, a solution candidate for the 0-1 integer programming problem in which the value of the group is reversed can be identified from a temporary solution to the 0-1 integer programming problem. According to a series of processes, when there is any solution candidate among the determined solution candidates that makes the value of the objective function closer to the appropriate direction compared to the temporary solution, any solution candidate among the solution candidates can be used to update the temporary solution. Therefore, the information processing device 100 can make the temporary solution close to the optimal solution by updating the temporary solution, thereby being able to calculate an appropriate solution to the 0-1 integer programming problem.
[0204] According to a series of processes, the first process can be performed. According to the first process, for each variable in the variables, a first solution candidate of the 0-1 integer programming problem in which the value of the variable is reversed can be identified from a temporary solution of the 0-1 integer programming problem. According to the first process, when there is any first solution candidate among the determined first solution candidates that makes the value of the objective function closer to the appropriate direction compared to the temporary solution, the temporary solution can be updated using any first solution candidate. Therefore, the information processing device 100 can make the temporary solution close to the optimal solution by updating the temporary solution, thereby enabling the calculation of an appropriate solution to the 0-1 integer programming problem.
[0205] According to a series of processes, when there is no first solution candidate that makes the value of the objective function closer to the appropriate direction compared to the temporary solution, the second process can be performed. According to the second process, one or more groups in which each group includes any two related variables among the variables can be determined. According to the second process, for each of the one or more groups determined, a second solution candidate for a 0-1 integer programming problem in which the value of the group is reversed from the temporary solution can be identified. According to the second process, when there is any second solution candidate that makes the value of the objective function closer to the appropriate direction compared to the temporary solution among the determined second solution candidates, the any second solution candidate can be used to update the temporary solution. Therefore, the information processing device 100 can make the temporary solution close to the optimal solution and calculate the appropriate solution to the 0-1 integer programming problem.
[0206] According to a series of processes, when there is no second solution candidate that makes the value of the objective function closer to the appropriate direction compared to the temporary solution, the third process can be performed. According to the third process, one or more groups in which each group includes any three or four related variables among the variables can be determined. According to the third process, for each of the one or more groups determined, a third solution candidate for a 0-1 integer programming problem in which the value of the group is reversed from the temporary solution can be identified. According to the third process, when there is any third solution candidate that makes the value of the objective function closer to the appropriate direction compared to the temporary solution among the determined third solution candidates, the any third solution candidate can be used to update the temporary solution. Therefore, the information processing device 100 can make the temporary solution close to the optimal solution and calculate the appropriate solution to the 0-1 integer programming problem.
[0207] According to the information processing device 100, an objective function including a parameter as a coefficient multiplied by the product of the violation amount of each of the constraints can be obtained to aim at reducing the violation amount of each of the constraints. According to the information processing device 100, a series of processes can be performed again after updating the parameter as a coefficient by which at least one of the constraints is multiplied to a value larger than the current value. Therefore, the information processing device 100 can update the temporary solution so as not to violate the constraints, thereby making it possible to search for a solution to the 0-1 integer programming problem with high precision.
[0208] According to the information processing device 100, a series of processes can be performed again after updating the parameter of the coefficient by which at least one of the constraints is multiplied to a value smaller than the current value. This enables the information processing device 100 to efficiently search for a solution to the 0-1 integer programming problem via a temporary solution that violates the constraint.
[0209] According to the information processing device 100, the end condition may be that the time elapsed from the first execution of a series of processes has exceeded a predetermined length. Therefore, the information processing device 100 can stop the repeated execution of a series of processes at an appropriate timing and can suppress an increase in the amount of processing.
[0210] According to the information processing device 100, the end condition may be that a series of processes have been executed a predetermined number of times. Therefore, the information processing device 100 can stop the repeated execution of a series of processes at an appropriate timing, and can suppress an increase in the amount of processing.
[0211] According to the information processing device 100, the end condition may be that an end instruction input has been received. Therefore, the information processing device 100 can stop the repeated execution of a series of processes at an appropriate timing, and can suppress an increase in the amount of processing.
[0212] According to the information processing device 100, the end condition may be that the number of consecutive times that the provisional solution is not updated has exceeded a predetermined threshold. Therefore, the information processing device 100 can stop the repetitive execution of a series of processes at an appropriate timing and can suppress an increase in the amount of processing.
[0213] According to the information processing device 100, the end condition may be that the value of the objective function of the provisional solution has reached a predetermined value. Therefore, the information processing device 100 can stop the repetitive execution of a series of processes at an appropriate timing and can suppress an increase in the amount of processing.
[0214] The information processing method described in the embodiment can be implemented by executing a prepared program on a computer such as a personal computer and a workstation. The information processing program is stored on a non-transitory computer-readable recording medium such as a hard disk, a floppy disk, a compact disk ROM (CD-ROM), a magneto-optical (MO) disk, and a digital versatile disk (DVD), read from the computer-readable medium and executed by a computer. The program can be distributed through a network such as the Internet.
[0215] According to one aspect, the program becomes useful for solving 0-1 integer programming problems.
[0216] All examples and conditional language provided herein are intended for the following teaching purposes: to help readers understand the present invention and the concepts contributed by the inventors to promote technology, and should not be interpreted as limitations on such specific examples and conditions, and the organization of such examples in this specification is also irrelevant to the display of the advantages and disadvantages of the present invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that various changes, substitutions and modifications may be made thereto without departing from the spirit and scope of the present invention.
Claims
1. A computer-readable recording medium having stored therein a program for causing a computer to execute a process for processing information, the process comprising: Obtaining a plurality of constraints forming a 0-1 integer programming problem, the 0-1 integer programming problem comprising a plurality of variables each of which takes a value of 0 or 1, the plurality of constraints each comprising at least one variable among the plurality of variables; identifying pairs of variables that appear only in a predetermined number of constraints among the plurality of constraints and the predetermined number of constraints in which the variable appears, the predetermined number being less than a total number of constraints among the plurality of constraints; for each of the identified pairs, registering in a storage unit first correlation information relating a variable of the pair to a further variable appearing in at least one of the predetermined number of constraints of the pair; registering second correlation information in the storage unit, the second correlation information correlating at least one variable among the plurality of variables with another variable having a predetermined or greater degree of correlation with the at least one variable based on the degree of correlation between the variables among the plurality of variables; as well as A solution to the 0-1 integer programming problem is searched for by referring to the storage unit and determining a group of any two or more correlated variables among the plurality of variables as an object for value inversion based on the first correlation information and the second correlation information.
2. The computer-readable recording medium according to claim 1, wherein: The predetermined number is 1.
3. The computer-readable recording medium according to claim 2, wherein: A solution to the 0-1 integer programming problem is a combination of values of the variables in the plurality of variables, and The searching includes searching for a solution to the 0-1 integer programming problem by repeatedly performing a series of processes until an end condition is satisfied, the series of processes including: determining one or more groups wherein each group includes any two or more correlated variables among the variables of the plurality of variables; for each of the determined one or more groups, identifying a solution candidate for the 0-1 integer programming problem obtained from a provisional solution to the 0-1 integer programming problem by inverting values of the group; and When there is any solution candidate among the identified solution candidates that makes the value of the objective function closer to an appropriate direction than the temporary solution based on the objective function formed in the 0-1 integer programming problem, the temporary solution is updated, wherein the temporary solution is updated using the any solution candidate.
4. The computer-readable recording medium according to claim 3, wherein: The series of processes includes a first process consisting of: for each variable of the plurality of variables, identifying a first solution candidate for the 0-1 integer programming problem obtained from a provisional solution to the 0-1 integer programming problem by inverting a value of the variable; as well as When there is any first solution candidate among the identified first solution candidates that makes the value of the objective function closer to the appropriate direction than the provisional solution based on the objective function, the provisional solution is updated, wherein the provisional solution is updated using the any first solution candidate.
5. The computer-readable recording medium according to claim 4, wherein: The series of processes includes a second process consisting of: When there is no first solution candidate that makes the value of the objective function closer to the appropriate direction than the provisional solution, determining one or more groups each of which includes any two related variables among the plurality of variables; for each of the determined one or more groups, identifying a third solution candidate for the 0-1 integer programming problem obtained from the provisional solution by inverting values of the group; as well as When there is any second solution candidate among the identified second solution candidates that makes the value of the objective function closer to the appropriate direction than the provisional solution based on the objective function, the provisional solution is updated, wherein the provisional solution is updated using the any second solution candidate.
6. The computer-readable recording medium according to claim 5, wherein: The series of processes includes a third process consisting of: When there is no second solution candidate that makes the value of the objective function closer to the appropriate direction than the provisional solution, determining one or more groups each of which includes any three or four related variables among the plurality of variables; for each of the determined one or more groups, identifying a third solution candidate for the 0-1 integer programming problem obtained from the provisional solution by inverting values of the group; as well as When there is any third solution candidate among the identified third solution candidates that makes the value of the objective function closer to the appropriate direction than the provisional solution based on the objective function, the provisional solution is updated, wherein the provisional solution is updated using any third solution candidate.
7. The computer-readable recording medium according to claim 5, wherein: The objective function includes a product of a parameter used as a coefficient and an amount of violation of each of the plurality of constraints to aim at reducing the amount of violation of each of the plurality of constraints, and When the provisional solution is updated after the most recent update of the parameter serving as the coefficient but before the current execution of the series of processes and the provisional solution has not been updated with the current execution of the series of processes, the search includes updating the parameter to a value greater than a current value and then executing the series of processes again, wherein the parameter is updated to a coefficient by which at least one of the multiple constraints is multiplied.
8. The computer-readable recording medium according to claim 7, wherein: When the provisional solution has not been updated during a period from the most recent update of the parameter serving as the coefficient until the start of the current execution of the series of processes and the provisional solution has not been updated with the current execution of the series of processes, the search includes updating the parameter to a value smaller than a current value, and then executing the series of processes again, wherein the parameter is updated to a coefficient by which at least one of the multiple constraints is multiplied.
9. The computer-readable recording medium according to claim 3, wherein: The end condition is that the time elapsed from the first execution of the series of processes has exceeded a predetermined length.
10. The computer-readable recording medium according to claim 3, wherein: The end condition is that the series of processes has been executed a predetermined number of times.
11. The computer-readable recording medium according to claim 3, wherein: The end condition is that an input of an end instruction has been received.
12. The computer-readable recording medium according to claim 3, wherein: The termination condition is that the number of consecutive times that the provisional solution has not been updated has exceeded a predetermined threshold.
13. The computer-readable recording medium according to claim 3, wherein: The value of the objective function of the temporary solution has reached a predetermined value.
14. An information processing method executed by a computer, the information processing method comprising: Obtaining a plurality of constraints forming a 0-1 integer programming problem, the 0-1 integer programming problem comprising a plurality of variables each of which takes a value of 0 or 1, the plurality of constraints each comprising at least one variable among the plurality of variables; identifying pairs of variables that appear only in a predetermined number of constraints among the plurality of constraints and the predetermined number of constraints in which the variable appears, wherein the predetermined number is less than a total number of constraints among the plurality of constraints; for each of the identified pairs, registering in a storage unit first correlation information relating a variable of the pair to a further variable appearing in at least one of the predetermined number of constraints of the pair; registering second correlation information in the storage unit, the second correlation information correlating at least one variable among the plurality of variables with another variable having a predetermined or greater degree of correlation with the at least one variable based on the degree of correlation between the variables among the plurality of variables; as well as A solution to the 0-1 integer programming problem is searched for by referring to the storage unit and determining a group of any two or more correlated variables among the plurality of variables as an object for value inversion based on the first correlation information and the second correlation information.
15. An information processing device comprising: Memory; as well as a processor coupled to the memory, the processor being configured to: Obtaining a plurality of constraints forming a 0-1 integer programming problem, the 0-1 integer programming problem comprising a plurality of variables each of which takes a value of 0 or 1, the plurality of constraints each comprising at least one variable among the plurality of variables; identifying pairs of variables that appear only in a predetermined number of constraints among the plurality of constraints and the predetermined number of constraints in which the variable appears, the predetermined number being less than a total number of constraints among the plurality of constraints; for each of the identified pairs, registering in a storage unit first correlation information relating a variable of the pair to a further variable appearing in at least one of the predetermined number of constraints of the pair; registering second correlation information in the storage unit, the second correlation information correlating at least one variable among the plurality of variables with another variable having a predetermined or greater degree of correlation with the at least one variable based on the degree of correlation between the variables among the plurality of variables; as well as A solution to the 0-1 integer programming problem is searched for by referring to the storage unit and determining a group of any two or more correlated variables among the plurality of variables as an object for value inversion based on the first correlation information and the second correlation information.
Citation Information
Patent Citations
Residue recovery conveyor
JP2023164045A