Information processing device, information processing method, and program

JPWO2025013168A5Pending Publication Date: 2026-04-07
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Filing Date
2026-01-06
Publication Date
2026-04-07

AI Technical Summary

Technical Problem

Existing methods for solving combinatorial optimization problems with linear inequality constraints face challenges, such as increased calculation time and potential differences in optimal solutions when converting constrained problems to unconstrained ones using penalty methods or slack variables.

Method used

An information processing device and method that selectively updates decision variables to maintain constraint satisfaction by choosing a first variable and, if necessary, a second variable to ensure the constraint is met, without introducing penalty terms or slack variables, thereby solving combinatorial optimization problems within the framework of unconstrained optimization.

Benefits of technology

This approach effectively reduces calculation time and maintains optimal solution consistency by directly addressing linear inequality constraints within the unconstrained optimization framework, ensuring accurate and efficient solution finding.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

An information processing device 1X implements artificial intelligence (AI) for solving a combinatorial optimization problem and mainly includes a first variable selection means 51X, a second variable selection means 53X, and an update means 54X. The first variable selection means 51X selects, when a value of a variable selected from a plurality of variables is repeatedly changed to search for a solution for the plurality of variables in a linear inequality constrained combinatorial optimization problem, a first variable the value of which is to be changed. The second variable selection means 53X selects, when a constraint to which the first variable belongs is no longer satisfied due to a change in the value of the first variable, a second variable a value of which is changed together with the first variable to achieve or substantially achieve a state in which the constraint is satisfied. The update means 54X updates the solution such that the value of the first variable and the value of the second variable are changed.
Need to check novelty before this filing date? Find Prior Art

Description

Information processing device, information processing method, and storage medium

[0001] The present disclosure relates to the technical field of an information processing device, an information processing method, and a storage medium that perform processing related to an optimization problem.

[0002] In combinatorial optimization problems, which are industrial challenges in the real world, inequalities may appear as constraints during formulation. Regarding the derivation of solutions to such combinatorial optimization problems, Patent Literature 1 discloses a system that sets the combinatorial optimization problem, the solution of which is to be found based on user input, as an Ising model or a quadratic unconstrained binary optimization (QUBO) problem, and finds a solution using simulated annealing.

[0003] International Publication WO2021 / 059338

[0004] When solving a constrained optimization problem, the constrained optimization problem may be converted into an unconstrained optimization problem such as a QUBO problem by using a penalty method or by introducing slack variables, and a solution to the converted unconstrained optimization problem may be found. However, when the constraints are inequality constraints, the penalty method may result in a difference between the optimal solution of the original constrained optimization problem and the optimal solution of the converted unconstrained optimization problem, and the introduction of slack variables may result in an increase in calculation time due to an increase in decision variables.

[0005] In view of the above-mentioned problems, one object of the present disclosure is to provide an information processing device, an information processing method, and a storage medium that suitably find a solution to a combinatorial optimization problem with linear inequality constraints.

[0006] One aspect of an information processing device is an information processing device having: a first variable selection means for selecting a first variable whose value is to be changed when a solution to a combinatorial optimization problem with linear inequality constraints is searched for by repeatedly changing the value of a variable selected from a plurality of variables; a second variable selection means for selecting a second variable whose value is to be changed together with the first variable when a constraint to which the first variable belongs includes a first constraint that becomes unsatisfied by a change in the value of the first variable; and an update means for updating the solution so as to change the value of the first variable and the value of the second variable.

[0007] One aspect of the information processing method is an information processing method in which, when a computer searches for a solution to a combinatorial optimization problem with linear inequality constraints by repeatedly changing the values ​​of variables selected from a plurality of variables, the computer selects a first variable whose value is to be changed; when constraints to which the first variable belongs include a first constraint that becomes unsatisfied when the value of the first variable is changed, the computer selects a second variable whose value is changed together with the first variable so that the first constraint is satisfied or approaches a state in which it is satisfied; and updates the solution by changing the value of the first variable and the value of the second variable.

[0008] One aspect of the storage medium is a storage medium that stores a program that causes a computer to execute the following processes: when searching for a solution to a combinatorial optimization problem with linear inequality constraints by repeatedly changing the values ​​of variables selected from multiple variables, select a first variable whose value is to be changed; when constraints to which the first variable belongs include a first constraint that becomes unsatisfied when the value of the first variable is changed, select a second variable whose value is changed together with the first variable so that the first constraint is satisfied or approaches a state in which it is satisfied; and update the solution by changing the value of the first variable and the value of the second variable.

[0009] As an example of the effect of the present disclosure, a solution to a combinatorial optimization problem with linear inequality constraints can be suitably obtained.

[0010] 1 shows the configuration of an optimization system. 2 shows the hardware configuration of an information processing device. 3 shows an example of a functional block diagram of a processor related to an optimization problem. 4 shows an example of a functional block diagram showing detailed processing of an optimization calculation unit. 5 shows a schematic diagram of the relationship between a first variable, a second variable, and constraints. 6 shows an overview of the target quadratic knapsack problem. 7 shows an example of a display screen that an output control unit causes to be displayed on an output device. 8 shows an example of a flowchart executed by an information processing device. 9 shows the configuration of an optimization system. 10 shows a diagram showing the relationship between users, an information processing device, and a terminal device. 11 shows an example of a table showing work shifts of medical personnel belonging to an organization. 12 is a functional block diagram of an information processing device. 13 shows an example of a flowchart executed by an information processing device.

[0011] Hereinafter, embodiments of an information processing device, an information processing method, and a storage medium will be described with reference to the drawings.

[0012] <First Embodiment> (1) System Configuration Fig. 1 shows the configuration of an optimization system 100. The optimization system 100 mainly includes an information processing device 1, an input device 2, an output device 3, and a storage device 4. The information processing device 1 performs data communication with the input device 2, the output device 3, and the storage device 4 via a communication network or by direct wireless or wired communication.

[0013] The information processing device 1 determines a solution to a specified optimization problem and outputs the determined solution. In this case, the information processing device 1 repeats a process of stochastically updating decision variables and outputs a solution with the best value of the objective function when a predetermined termination condition is satisfied. Here, the optimization problem to be solved by the information processing device 1 is a combinatorial optimization problem for finding values ​​of decision variables as a solution that minimize or maximize an objective function, which is a function of the decision variables, and has multiple linear inequalities as constraints.

[0014] The input device 2 is an interface that accepts user input, which is external input, and includes, for example, a touch panel, buttons, a keyboard, a voice input device, etc. The input device 2 supplies input information generated based on the user input to the information processing device 1.

[0015] The output device 3 outputs information based on the control of the information processing device 1. Examples of the output device 3 include display devices such as a display and a projector, and sound output devices such as a speaker. The output device 3 displays information and / or outputs sound based on the output information supplied from the information processing device 1.

[0016] The storage device 4 is a memory that stores various information necessary for optimization calculations. For example, the storage device 4 stores information specifying an optimization problem to be solved by the information processing device 1 (also referred to as "problem specification information") and a program for calculating a solution to the specified optimization problem. The problem specification information includes information indicating the conditions of the optimization problem to be solved by the information processing device 1 (including parameters related to the problem setting, etc.). The problem specification information includes, for example, parameters of the formulated (modeled) optimization problem. The above parameters include parameters related to constraints and parameters related to the objective function. Here, the parameters related to constraints include coefficients by which each decision variable in a linear inequality is multiplied, and these coefficients are assumed to have been sorted by magnitude as preprocessing, as described below.

[0017] At least a part of the question specification information may be generated based on input information generated by the input device 2 operated by the user.

[0018] The storage device 4 may be a storage device such as a hard disk connected to or built into the information processing device 1, or may be a storage medium such as a flash memory. The storage device 4 may also be a server device that performs data communication with the information processing device 1. In this case, the storage device 4 may be composed of multiple server devices.

[0019] The configuration of the optimization system 100 shown in FIG. 1 is an example, and various modifications may be made to the configuration. For example, the input device 2 and the output device 3 may be configured as an integrated device. In this case, the input device 2 and the output device 3 may be configured as a tablet terminal integrated with the information processing device 1. The information processing device 1 may also be configured as a plurality of devices. In this case, the plurality of devices that make up the information processing device 1 exchange information required to execute pre-assigned processing between these plurality of devices.

[0020] (2) Hardware Configuration of Information Processing Device Fig. 2 shows the hardware configuration of the information processing device 1. The information processing device 1 includes, as hardware, a processor 11, a memory 12, and an interface 13. The processor 11, the memory 12, and the interface 13 are connected via a data bus 19.

[0021] The processor 11 executes predetermined processes by executing programs stored in the memory 12. The processor 11 is a processor such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or a TPU (Tensor Processing Unit). The processor 11 may be composed of multiple processors. The processor 11 is an example of a computer.

[0022] The memory 12 is composed of various types of volatile and non-volatile memories, such as RAM (Random Access Memory) and ROM (Read Only Memory). The memory 12 also stores programs for the information processing device 1 to execute various processes. The memory 12 is also used as a working memory, and temporarily stores information obtained from the storage device 4. The memory 12 may also function as the storage device 4. Similarly, the storage device 4 may also function as the memory 12 of the information processing device 1. The programs executed by the information processing device 1 may be stored in a storage medium other than the memory 12.

[0023] The interface 13 is an interface for electrically connecting the information processing device 1 to other devices. These interfaces may be wireless interfaces such as network adapters for wirelessly transmitting and receiving data to and from other devices, or may be hardware interfaces for connecting to other devices via cables or the like.

[0024] The hardware configuration of the information processing device 1 is not limited to the configuration shown in Fig. 2. For example, the information processing device 1 may include at least one of an input device 2 or an output device 3. Furthermore, the information processing device 1 may be connected to or have a built-in sound output device such as a speaker.

[0025] (3) Processing Overview Next, an overview of the processing of the information processing device 1 will be described. In general terms, when the information processing device 1 changes the value of a decision variable such that changing the value of a certain decision variable breaks a constraint that was previously satisfied, the information processing device 1 simultaneously changes the values ​​of other decision variables so that the constraint is satisfied. In this way, the information processing device 1 solves a combinatorial optimization problem with linear inequality constraints within the framework of an unconstrained optimization problem such as a quadratic unconstrained binary optimization (QUBO) problem, and effectively reduces an increase in calculation time due to an increase in the number of decision variables, etc.

[0026] Generally, a constrained optimization problem can be formulated as a QUBO problem, which is an unconstrained optimization problem, by introducing a penalty term corresponding to the constraint into the objective function (including the introduction of a slack variable). On the other hand, introducing a slack variable when a linear inequality constraint exists increases the number of decision variables, resulting in a problem of larger problem size and longer processing time. Furthermore, if an attempt is made to address the presence of a linear inequality constraint by providing only a penalty term without introducing a slack variable, there is a possibility that the optimal solution of the constrained optimization problem before conversion will differ from the optimal solution of the unconstrained optimization problem after conversion. Taking the above into consideration, the information processing device 1 solves a linear inequality constraint-constrained optimization problem within the framework of an unconstrained optimization problem without introducing a penalty term or a slack variable.

[0027] Hereinafter, an overview of the processing performed by the information processing device 1 will be described with reference to a functional block diagram.

[0028] Fig. 3 is an example of a functional block diagram of the processor 11 related to the optimization problem. Functionally, the processor 11 has an optimization calculation unit 15 and an output control unit 16. Note that in Fig. 3, blocks where data is exchanged are connected by solid lines, but the combination of blocks where data is exchanged is not limited to that shown in Fig. 3. The same applies to other functional block diagrams described later.

[0029] The optimization calculation unit 15 identifies the optimization problem to be solved (more specifically, a model that formulates the optimization problem) based on the problem specification information stored in the storage device 4, and determines a solution to the optimization problem that should be presented to the user (also referred to as a "final output solution"). In this case, the optimization calculation unit 15 executes an algorithm that modifies the spin selection process in simulated annealing, as will be described later. The optimization calculation unit 15 then supplies information about the determined final output solution to the output control unit 16. The processing content of the optimization calculation unit 15 will be described in detail later.

[0030] The output control unit 16 controls the output of information related to the final output solution determined by the optimization calculation unit 15. In this case, the output control unit 16 supplies the output information to the output device 3 via the interface 13, causing the output device 3 to display and / or output audio of the information related to the final output solution. As another mode of outputting the information related to the final output solution, the output control unit 16 may store the information related to the final output solution in the storage device 4 or transmit it to a device other than the devices included in the optimization system 100. Furthermore, the output control unit 16 may accept a user input specifying an optimization problem to be solved based on input information supplied from the input device 2 via the interface 13. In this case, the output control unit 16 stores problem specification information based on the accepted user input in the storage device 4.

[0031] Here, a supplementary explanation of simulated annealing will be given.

[0032] Simulated annealing is an approximate solution method for combinatorial optimization problems, and is a technique that discovers good solutions by successively transitioning states from an appropriate initial state. Specifically, the probability of the above-mentioned transitions is controlled by a temperature parameter. At the beginning of the solution search, the temperature parameter is set high (i.e., starting from a high-temperature state), so that there is a high probability of transitioning to a solution that results in a poor value for the objective function. As the solution search progresses, the temperature parameter is lowered (i.e., transitioning to a low-temperature state), reducing the probability of transitioning to a solution that results in a poor value for the objective function.

[0033] Here, we will explain the flow of processing when solving the QUBO problem by simulated annealing. In this case, the problem is formulated as an optimization problem to determine decision variables that minimize the following objective function "H".

[0034] Note that "x" is a set of decision variables (decision variable vector), and "x = {x 1 , ..., x N}". In this case, after randomly preparing an initial solution for the decision variable vector, the following first to third steps are repeated. In the first step, one decision variable whose value is to be changed (i.e., flipped) is selected at random. In the second step, the difference "ΔH" in the value of the objective function H before and after flipping the selected decision variable is calculated. In the third step, the decision variable determined in the first step is flipped based on a probability dependent on the difference ΔH and the temperature parameter T. Specifically, if the value of the objective function H becomes smaller (i.e., better) as a result of the flip, it is always flipped, and even if the value of the objective function H becomes larger (i.e., worse) as a result of the flip, it is flipped with a probability "max{1, e -TΔH}" to flip.

[0035] In the above-mentioned simulated annealing algorithm, the optimization calculation unit 15 performs a process of selecting additional decision variables to be flipped in order to determine a solution that satisfies the given inequality constraints. Details of this process will be specifically explained below.

[0036] 4 is an example of a functional block diagram showing detailed processing of the optimization calculation unit 15. Functionally, the optimization calculation unit 15 has a first variable selection unit 51, a second variable selection determination unit 52, a second variable selection unit 53, an update unit 54, and an end determination unit 55.

[0037] The first variable selection unit 51 selects a decision variable to be flipped from all decision variables according to a predetermined rule (for example, randomly). The process performed by the first variable selection unit 51 corresponds to the first step of the simulated annealing described above. Hereinafter, the decision variable selected by the first variable selection unit 51 will also be referred to as the "first variable." The first variable is a decision variable that is a candidate for flipping. The first variable selection unit 51 notifies the second variable selection determination unit 52 of the selected first variable. Note that, hereinafter, "flipping a decision variable" refers to changing (changing) a decision variable from its current value to a different value, and in the case where the decision variable is a binary value that takes either 0 or 1, it refers to changing from 0 to 1 or from 1 to 0.

[0038] The second variable selection determination unit 52 determines whether or not it is necessary to select another decision variable to be flipped together with the first variable selected by the first variable selection unit 51. Hereinafter, the other decision variable to be flipped together with the first variable will also be referred to as a "second variable." In other words, the second variable is a decision variable that is a candidate to be flipped together with the first variable.

[0039] Here, the second variable selection determination unit 52 determines that a second variable needs to be selected if a constraint that becomes unsatisfied by flipping the first variable exists. The "constraint that becomes unsatisfied by flipping the first variable" refers to a constraint (referring to a linear inequality; the same applies below) that is satisfied when the first variable is not flipped, but becomes unsatisfied when the first variable is flipped. In such a case, by appropriately selecting the second variable and simultaneously changing the values ​​of the first and second variables, it is possible to update the solution so that the "constraint that becomes unsatisfied by flipping the first variable" is satisfied. Hereinafter, the "constraint that becomes unsatisfied by flipping the first variable" is also referred to as the "constraint to be adjusted." The "constraint that becomes unsatisfied by flipping the first variable" is an example of a first constraint.

[0040] If the second variable selection determination unit 52 determines that selection of a second variable is necessary, it instructs the selection of a second variable to be flipped together with the first variable selected by the first variable selection unit 51, and if it determines that selection of a second variable is not necessary, it instructs the update unit 54 to probabilistically update the solution by flipping the first variable selected by the first variable selection unit 51.

[0041] When the second variable selection determination unit 52 instructs the second variable selection, the second variable selection unit 53 selects a second variable from among decision variables other than the first variable that belong to the constraint to be adjusted. In this case, the second variable selection unit 53 selects, as the second variable, a decision variable that belongs to the constraint to be adjusted and that satisfies the constraint to be adjusted when flipped together with the first variable. Note that the "decision variable that belongs to the constraint to be adjusted" refers to a decision variable included in the linear inequality indicated by the constraint to be adjusted. A specific method for determining the second variable will be described later. The second variable selection unit 53 then instructs the update unit 54 to probabilistically update the first and second variables.

[0042] The update unit 54 updates the values ​​of the decision variables by stochastically flipping the first variable and the second variable (or only the first variable if the second variable is not selected). Specifically, the update unit 54 calculates the difference "ΔH" between the objective function value before the flip and the objective function value after the flip. The update unit 54 then always performs a flip if the objective function value becomes smaller (i.e., better) as a result of the flip, and even if the objective function value becomes larger (i.e., worse) as a result of the flip, the update unit 54 updates the values ​​of the decision variables by stochastically flipping the first variable and the second variable (or only the first variable if the second variable is not selected). -TΔH}". The process executed by the update unit 54 corresponds to the second and third steps in simulated annealing.

[0043] The termination determination unit 55 determines whether or not to terminate a solution search loop, which corresponds to a series of processes executed by the first variable selection unit 51, the second variable selection determination unit 52, the second variable selection unit 53, and the update unit 54. In this case, the termination determination unit 55 determines whether a predetermined search termination condition is satisfied. Examples of the above search termination condition include a condition based on the number of searches for a solution (or the calculation time) and a condition based on the searched solution. In the example of the condition based on the number of searches for a solution (or the calculation time), the termination determination unit 55 determines that the search termination condition is satisfied, for example, when it determines that the number of searches for a solution has reached a predetermined number or more (or the calculation time has reached a predetermined time or more). In addition, in the example of the condition based on the searched solution, the termination determination unit 55 determines that the search termination condition is satisfied, for example, when a general convergence determination condition is satisfied (e.g., when the variance of the objective function value of the most recent searched solution is less than a predetermined degree).

[0044] If the termination determination unit 55 determines that the search termination condition is satisfied, it regards the solution with the best objective function value among the solutions found as the final output solution, and supplies the final output solution to the output control unit 16. On the other hand, if the termination determination unit 55 determines that the search termination condition is not satisfied, it instructs the first variable selection unit 51 to select the first variable again.

[0045] Note that "good objective function value" refers to a smaller objective function value when the optimization problem to be solved is minimization of the objective function, and refers to a larger objective function value when the optimization problem to be solved is maximization of the objective function. Similarly, "bad objective function value" refers to a larger objective function value when the optimization problem to be solved is minimization of the objective function, and refers to a smaller objective function value when the optimization problem to be solved is maximization of the objective function.

[0046] Each of the components described in FIGS. 3 and 4 (the optimization calculation unit 15 including the first variable selection unit 51, the second variable selection determination unit 52, the second variable selection unit 53, the update unit 54, and the termination determination unit 55, and the output control unit 16) can be realized, for example, by the processor 11 executing a program. Alternatively, each component may be realized by recording the necessary programs on any non-volatile storage medium and installing them as needed. Note that at least some of these components may not be realized by software programs, but may be realized by any combination of hardware, firmware, and software. Furthermore, at least some of these components may be realized using a user-programmable integrated circuit, such as an FPGA (Field-Programmable Gate Array) or a microcontroller. In this case, a program consisting of the above components may be realized using this integrated circuit. Furthermore, at least a portion of each component may be configured by an ASSP (Application Specific Standard Product), an ASIC (Application Specific Integrated Circuit), or a quantum processor (quantum computer control chip). In this way, each component may be realized by various hardware. The same applies to other embodiments described below. Furthermore, each of these components may be realized by the cooperation of multiple computers, for example, using cloud computing technology.

[0047] (4) Method for Selecting Second Variables Next, a method for selecting second variables by the second variable selection unit 53 will be described.

[0048] Here, it is assumed that the combinatorial optimization problem to be solved is given a constraint equivalent to the following linear inequality: v<Σb i x i <u Here, "Σb i x i (i is an integer between 1 and M) corresponds to the sum of terms including decision variables, and v and u correspond to the sum of terms including decision variables, "Σbi x i ” is a parameter that determines the range of the decision variables. i x i ", and u is the sum of terms including decision variables "Σb i x i Therefore, the above linear inequality defines the upper limit of the sum of terms including the decision variables, Σb i x i The linear inequality does not necessarily have to have both the v and u parameters, but may include at least one of them.

[0049] Here, the first variable "x j " is selected, the first variable x j If only "x" is flipped, the above constraint is not satisfied. Therefore, the second variable selection unit 53 selects the second variable "x" as k Let us consider the case where the indexes "j" and "k" are integers between 1 and M. Also, the decision variable x i is assumed to take the value 0 or 1.

[0050] FIG. 5 shows the first variable x j , the second variable x k 5 is a diagram showing a relationship between the first variable x j If flips, "Σb i x i " exceeds the upper limit u, and the constraint is no longer satisfied. On the other hand, the second variable x k is the first variable x j When flipped together with "Σb i x i " does not exceed the upper limit u (and is equal to or greater than the lower limit v), and the constraint is satisfied. Therefore, the second variable selection unit 53 selects such second variables x k Select .

[0051] Next, the first variable x j When flipped, "Σb i x i The second variable x when " exceeds the upper limit u k The selection of the coefficient "b i" is assumed to be pre-sorted so that the larger the index, the larger the value.

[0052] In this case, the second variable selection unit 53 first selects the first variable x j "Σb" when it is assumed that i x i The distance D where " exceeds the upper limit u is calculated. In this case, the distance D is as follows: D = Σb i x i -u

[0053] Next, the second variable selection unit 53 identifies a coefficient b that satisfies the following equation (1) by binary search: D<b<D+(u−v) (1) This condition is satisfied when the second variable x k The second variable x is flipped so that the constraint is satisfied. k Coefficient b of k is a condition (necessary condition) that must be satisfied for the distance D. A set of coefficients b that satisfy the condition for the distance D is defined as {b w , b w+1 , ..., b w+n "w" and "n" are integers between 1 and M, and the sum of w and n is M or less.

[0054] Furthermore, the second variable selection unit 53 selects a coefficient b m Randomly select the coefficient b m the second variable x k Coefficient b of k (1-2x w+m ) b w+m <0 (2) where "m" is an integer between 1 and M, and the sum with w is equal to or less than M. This condition is satisfied when the second variable x k When flipping, the constraint is satisfied in the direction of "Σb i x i " transitions, so the second variable x k Coefficient b of k is a condition (necessary condition) regarding the transition direction that must be satisfied.

[0055] On the other hand, the first variable x j When flipping "Σb i xi The second variable x when " exceeds the lower limit v k In this case, the distance D is as follows: D = v - Σb i x i

[0056] Next, the second variable selection unit 53 identifies a coefficient b that satisfies the condition regarding the distance D shown in equation (1) by binary search: D<b<D+(u−v) (1)

[0057] Furthermore, the second variable selection unit 53 selects a coefficient b m Randomly select the coefficient b m the second variable x k Coefficient b of k (1-2x w+m ) b w+m >0 (3)

[0058] The coefficient b that satisfies the above-mentioned condition regarding the distance D (see formula (1)) and the condition regarding the transition direction (see formulas (2) and (3)) k does not exist, the second variable selection unit 53 selects the second variable x k In this case, the second variable selection unit 53 instructs the first variable selection unit 51 to select the first variable again.

[0059] Next, we will provide a supplementary explanation about the amount of calculation. k The computational complexity required to select b is O(logM×n), since O(logM) is required to search (binary search) for the coefficient b that satisfies the condition regarding the distance D (see equation (1)) and O(n) is required to check the condition regarding the transition direction. This computational complexity is much less than the computational complexity that increases when a slack variable is introduced and linear inequality constraints are reflected in the objective function.

[0060] In addition, the second variable x k The method of selecting the coefficient set {b w , b w+1 , ..., b w+n}, one is randomly selected, and if the selected coefficient satisfies the conditions regarding the transition direction (see equations (2) and (3)), the selected coefficient is designated as b k and the second variable x k On the other hand, if the randomly selected coefficient does not satisfy the condition regarding the transition direction, the second variable selection unit 53 instructs the first variable selection unit 51 to select the first variable again. When this algorithm is used, the second variable x k The amount of calculation required for selecting can be reduced to O(logM).

[0061] (5) Specific Example Next, a specific example will be described in which the optimization problem to be solved is a quadratic knapsack problem.

[0062] FIG. 6 is a diagram showing an outline of the quadratic knapsack problem. For the sake of convenience, the problem involves three items and one bag. In this case, the primary score "c j ", second-order score "d jk ”, weight “m j " and load capacity "A" are as follows:

[0063]

[0064] This optimization problem is formulated as an optimization problem of maximizing the score, which is an objective function, under the linear inequality constraint that the items placed in the bag do not exceed the bag's load capacity A. In this case, the objective function H and the linear inequality are expressed as follows:

[0065]

[0066] Here, if the first (j=1) and third (j=3) items are packed into the bag, the score is 2+5+8=15, and since the weight of the items in the bag is 11, the linear inequality constraint regarding the load capacity A (=14) is satisfied.

[0067] Next, find the solution (x 1 , x 2 , x 3 Consider the update of ∑ ...

[0068] First, the first variable selection unit 51 randomly selects a first variable. 2 Here, the variable x 2 is flipped, the weight of the items in the bag becomes 14, and the linear inequality constraint regarding the load capacity A (=14) is no longer satisfied. Therefore, the second variable selection determination unit 52 determines that a second variable needs to be selected, and the second variable selection unit 53 selects the variable x as the second variable. 3 Then, the update unit 54 selects the first variable x 2 and the second variable x 3 Since the number of points, which is the objective function, decreases by the simultaneous flip of the first variable x 2 and the second variable x 3 Whether or not the solution needs to be updated by simultaneous flipping with the above is determined based on the difference (here, 8 points) of the objective function depending on whether or not the simultaneous flipping is performed, and the temperature parameter.

[0069] Next, a specific example of an output mode by the output control unit 16 will be described.

[0070] FIG. 7 shows an example of a display screen that the output control unit 16 causes the output device 3 to display. The output control unit 16 generates display information for displaying the above-mentioned display screen based on the processing results generated by the optimization calculation unit 15, and transmits the generated display information to the output device 3 via the interface 13, thereby causing the output device 3 to display the display screen. Here, as an example, matching buyers (Ba, Bb, Bc, ...) with sellers (Sa, Sb, Sc, ...) is specified as the optimization problem (here, a combinatorial optimization problem) to be solved. Here, as an example, problem specification information indicating parameters of the optimization problem corresponding to the "setting condition α," "setting condition β," and "setting condition γ" is stored in the storage device 4. Note that, for example, the "setting condition α," "setting condition β," and "setting condition γ" have common parameters related to the objective function but different parameters related to the constraints. The information processing device 1 then references this problem specification information, finds final output solutions corresponding to the "setting condition α," "setting condition β," and "setting condition γ," and displays the final output solutions.

[0071] The output control unit 16 displays on the display screen a final output solution table 58 that shows combinations of sellers and buyers specified by the final output solution determined by the optimization calculation unit 15. The final output solution table 58 has a record for each final output solution, and each record has a details button 59 for checking detailed information about the corresponding solution and detailed information about the setting conditions. By displaying such a display screen, the output control unit 16 can allow the user to easily recognize information about the determined final output solution.

[0072] (6) Processing Flow Fig. 8 is an example of a flowchart executed by the information processing device 1. For example, when a predetermined start condition for the optimization calculation is satisfied, the information processing device 1 executes the processing of the flowchart in Fig. 8. For example, when the information processing device 1 receives an input to start the optimization calculation, the information processing device 1 determines that the start condition is satisfied and executes the processing of the flowchart.

[0073] First, the information processing device 1 identifies an optimization problem to be solved and sets an initial solution (step S11). In this case, the information processing device 1 refers to problem specification information that is pre-stored in the storage device 4 or that is generated based on input information S1 provided by the input device 2, and acquires parameters and the like of the optimization problem to be solved. Furthermore, the information processing device 1 determines the initial solution (i.e., the initial values ​​of each decision variable) for example randomly. Note that instead of determining the initial solution randomly, the information processing device 1 may determine it based on a predetermined algorithm.

[0074] Next, the information processing device 1 selects a first variable to be flipped and identifies a constraint to which the selected first variable belongs (step S12). In this case, the information processing device 1 randomly selects a first variable from the decision variables, for example, and identifies a linear inequality constraint that uses the selected first variable. Next, the information processing device 1 determines whether or not there is a constraint to be adjusted, which is a constraint that will no longer be satisfied by flipping the first variable, among the constraints identified in step S12 (step S13). Note that the selection of the first variable in step S12 corresponds to the processing performed by the first variable selection unit 51, and the identification of the constraint in step S12 and the processing in step S13 correspond to the processing performed by the second variable selection determination unit 52.

[0075] If the information processing device 1 determines that a constraint to be adjusted exists (step S13; Yes), it selects a second variable to be flipped together with the first variable (step S14). In this case, the information processing device 1 selects a second variable such that the constraint to be adjusted is satisfied by flipping the second variable together with the first variable. The processing of step S14 corresponds to the processing executed by the second variable selection unit 53.

[0076] Then, the information processing device 1 performs a flip stochastically (step S15). For example, the information processing device 1 always performs a flip if the flip improves the value of the objective function, and if the flip worsens the value of the objective function, the information processing device 1 determines whether or not to perform a flip based on a probability based on the difference between the objective function values ​​before and after the flip and the temperature parameter. The solution is updated stochastically by the processing of step S15. The processing of step S15 corresponds to the processing performed by the update unit 54.

[0077] The information processing device 1 then determines whether the solution search termination condition is satisfied (step S16). If it is determined that the solution search termination condition is satisfied (step S16; Yes), the information processing device 1 outputs the solution with the best objective function value as the final output solution (step S17). Note that the process of step S16 corresponds to the process executed by the termination determination unit 55, and the process of step S17 corresponds to the process executed by the output control unit 16. On the other hand, if it is determined that the solution search termination condition is not satisfied (step S16; No), the information processing device 1 returns to step S12 and selects a first variable.

[0078] (7) Modifications Next, suitable modifications of the above-described embodiment will be described. The following modifications may be applied to the above-described embodiment in any combination.

[0079] (Variant 1) The second variable selection determination unit 52 may determine that the second variable needs to be selected not only when there is a constraint that becomes unsatisfied by flipping the first variable, but also when there is a constraint to which the first variable belongs that is unsatisfied before and after flipping the first variable.

[0080] Here, "constraints that are not satisfied before and after the flip of the first variable" refers to constraints that are not satisfied both before and after the flip of the first variable. "Constraints that are not satisfied before and after the flip of the first variable" is an example of a second constraint. Even in this case, the second variable selection unit 53 selects a second variable that satisfies the above-mentioned constraints by simultaneously flipping the first variable and the second variable (i.e., satisfies the conditions regarding the distance D and the conditions regarding the transition direction). This allows the information processing device 1 to suitably determine a solution to the optimization problem that satisfies the constraints.

[0081] (Variant 2) When selecting a second variable, the second variable selection unit 53 may select a second variable that brings the state closer to a state in which the constraint to be adjusted is satisfied by additionally flipping the second variable, regardless of whether the constraint to be adjusted is satisfied by additionally flipping the second variable.

[0082] In this case, the second variable selection unit 53 does not require the condition regarding the distance D (see formula (1)) as a necessary condition, but selects the coefficient b k and the second variable x k In this case as well, the information processing device 1 can search for a solution that approaches a state in which the constraint to be adjusted is satisfied (that is, that reduces the distance D).

[0083] Note that Modification 2 may be combined with Modification 1. For example, if a constraint to which the first variable belongs exists that is not satisfied before and after the flip of the first variable, and if flipping the first variable brings the state closer to a state in which the constraint is satisfied, the second variable selection determination unit 52 determines that it is not necessary to select the second variable. On the other hand, if a constraint to which the first variable belongs that is not satisfied before and after the flip of the first variable, and if flipping the first variable brings the state farther away from a state in which the constraint is satisfied, the second variable selection determination unit 52 determines that it is necessary to select the second variable. In this case, the second variable selection unit 53 selects, for example, a second variable that brings the state closer to a state in which the constraint to be adjusted is satisfied by simultaneous flipping of the first and second variables (i.e., that reduces the distance D). Even in this case, the information processing device 1 can preferably update the solution to the optimization problem so as to transition to a state in which the constraint is satisfied.

[0084] 9 shows the configuration of an optimization system 100 A. The optimization system 100 A mainly includes an information processing device 1 A and a terminal device 5. The information processing device 1 A and the terminal device 5 perform data communication via a network 6.

[0085] The information processing device 1A is one or more devices that function as a server (including a cloud server), and performs optimization-related processing executed by the information processing device 1 in the first embodiment. In this case, the information processing device 1A receives input information from the terminal device 5 via the network 6, which the information processing device 1 receives from the input device 2 in the first embodiment. The information processing device 1A also transmits output information that the information processing device 1 transmitted to the output device 3 in the first embodiment to the terminal device 5 via the network 6. The information processing device 1A also stores information that the storage device 4 stores in the first embodiment.

[0086] The terminal device 5 is a terminal having input, display, and communication functions, and functions as the input device 2 and output device 3 in the first embodiment. The terminal device 5 may be, for example, a personal computer, a tablet terminal, a PDA (Personal Digital Assistant), or the like. The terminal device 5 transmits input information generated based on the received user input to the information processing device 1A via the network 6. Furthermore, when the terminal device 5 receives output information from the information processing device 1A, it outputs information related to the final output solution based on the output information.

[0087] The information processing device 1A according to the second embodiment can preferably execute the input process and output process executed by the information processing device 1 in the first embodiment for the user of the terminal device 5 .

[0088] 10 is a diagram showing the relationship between a user, an information processing device 1A, and a terminal device 5. As shown in FIG. 10, the information processing device 1A functions as a server that executes an algorithm, and the terminal device 5 functions as a user terminal that accepts input of parameters and the like required for the algorithm. The terminal device 5 exchanges information with the information processing device 1A to present the user with a display screen showing the final output solution of an optimization problem set by the user. This can favorably encourage the user to make a decision.

[0089] Here, as an application example, the optimization of the allocation of medical personnel such as nurses and doctors will be described. Specifically, an application example in which work shifts are determined when the optimization system 100 has the configuration shown in Fig. 10 will be described. Note that this application example may be applied to the configuration of the first embodiment.

[0090] Fig. 11 is an example of a table showing work shifts for medical workers belonging to a certain organization. Specifically, Fig. 11 shows an example of work shifts for a target period (June in this case) for all medical workers belonging to a certain organization, including medical workers A to C. Generating such work shifts can be considered as a constrained combinatorial optimization problem and an annealing method can be applied.

[0091] Below, we will explain the process of determining work shifts, including input from medical professionals.

[0092] First, each medical worker who is the subject of a work shift uses a terminal device 5 to log in to the AI ​​system (work shift management system) implemented by the information processing device 1A and input their desired work schedule. The AI ​​system then considers the desired work schedule and other factors input by each medical worker (nurse or doctor) as constraints and generates an optimal work shift (see FIG. 11 ).

[0093] In this case, the AI ​​system defines each medical worker's work style for each date (e.g., whether or not they need to work) as a decision variable, sets up an optimization problem in which the above-mentioned desired work schedules and other factors, as well as the compatibility and interpersonal relationships between the medical workers, are defined as constraints, and generates work shifts based on a final output solution of the optimization problem. The work shifts generated by the AI ​​system are then notified to each medical worker by being displayed on a terminal device 5 or the like. Each medical worker then checks the generated work shift, and if there is no problem with the generated work shift, logs in to the AI ​​system and inputs approval of the work shift via the terminal device 5. On the other hand, if each medical worker determines that there is a problem with the generated work shift, they log in to the AI ​​system and input a correction request via the terminal device 5. When the AI ​​system detects a correction request from a medical worker, it adds a new constraint based on the correction request and corrects the optimization problem. The addition of the above-mentioned constraints may be performed based on user input from the AI ​​system administrator who confirmed the correction request. The AI ​​system then obtains a final output solution of the corrected optimization problem and generates a work shift indicated by the final output solution. Then, when a work shift is generated that is approved by all eligible medical personnel, the AI ​​system determines that work shift as the final work shift.

[0094] 12 is a functional block diagram of an information processing device 1X. The information processing device 1X mainly includes a first variable selection means 51X, a second variable selection means 53X, and an update means 54X. The information processing device 1X may be composed of multiple devices.

[0095] The first variable selection means 51X selects a first variable whose value is to be changed when searching for a solution of a plurality of variables by repeatedly changing the values ​​of the selected variable from among the plurality of variables in a combinatorial optimization problem with linear inequality constraints. The first variable selection means 51X can be, for example, the first variable selection unit 51 in the first or second embodiment.

[0096] When a constraint to which a first variable belongs becomes unsatisfied due to a change in the value of the first variable, the second variable selection means 53X selects a second variable whose value changes together with the first variable to satisfy or approach a state in which the constraint is satisfied. The second variable selection means 53X can be, for example, the second variable selection unit 53 in the first or second embodiment.

[0097] The update means 54X updates the solution by changing the value of the first variable and the value of the second variable. In other words, the update means 54X determines a new solution in which the value of the first variable and the value of the second variable are changed from the current solution. The update means 54X can be, for example, the update unit 54 in the first or second embodiment.

[0098] 13 is an example of a flowchart executed by the information processing device 1X. When searching for a solution to a combinatorial optimization problem with linear inequality constraints by repeatedly changing the values ​​of variables selected from multiple variables, the first variable selection means 51X selects a first variable whose value is to be changed (step S21). When a constraint to which the first variable belongs becomes unsatisfied due to a change in the value of the first variable, the second variable selection means 53X selects a second variable whose value, when changed together with the first variable, satisfies or approaches a state where the constraint is satisfied (step S22). The update means 54X updates the solution by changing the values ​​of the first variable and the second variable (step S23).

[0099] When a solution to a combinatorial optimization problem with linear inequality constraints is sought, the information processing device 1X according to the third embodiment can update the solution so that the linear inequality constraints are satisfied or come close to being satisfied.

[0100] In addition, part or all of the above-described embodiments can be described as, but are not limited to, the following supplementary notes.

[0101] [Supplementary Note 1] An information processing device comprising: first variable selection means for selecting a first variable whose value is to be changed when a solution for a combinatorial optimization problem with linear inequality constraints is searched for by repeatedly changing the value of a variable selected from a plurality of variables; second variable selection means for selecting a second variable whose value is changed together with the first variable when a constraint to which the first variable belongs includes a first constraint that becomes unsatisfied when the value of the first variable is changed, and update means for updating the solution so as to change the value of the first variable and the value of the second variable. [Supplementary Note 2] The information processing device according to Supplementary Note 1, wherein when the first constraint is expressed as an inequality that defines a range of a sum of terms including variables, the second variable selection means calculates a distance that must be changed before the sum of the terms after the value of the first variable is changed is included in the range, and selects the second variable based on the distance. [Supplementary Note 3] The information processing device according to Supplementary Note 2, wherein the coefficients by which the variables are multiplied in the sum of the terms are stored in a sorted state in a storage means, and the second variable selection means selects as the second variable a variable corresponding to the coefficient that is at least greater than the distance. [Supplementary Note 4] The information processing device according to Supplementary Note 1, wherein, when the first constraint is expressed as an inequality that defines a range of a sum of terms including a variable, the second variable selection means selects as the second variable, from among the variables belonging to the first constraint, a variable whose value, when changed, causes the sum of the terms after the value of the first variable to transition in the direction of the range. [Supplementary Note 5] The information processing device according to Supplementary Note 1, wherein, when there is a second constraint that is not satisfied either before or after a change in the value of the first variable, the second variable selection means selects a second variable whose value, when changed together with the first variable, satisfies the second constraint or approaches a state in which the second constraint is satisfied. [Supplementary Note 6] The information processing device according to Supplementary Note 1, wherein the updating means determines whether to update the solution so as to change the value of the first variable and the value of the second variable based on a value of the objective function before changing the value of the first variable and the value of the second variable and a value of the objective function after changing the value of the first variable and the value of the second variable.[Supplementary Note 7] The information processing device according to Supplementary Note 1, further comprising second variable selection determination means for determining whether selection of the second variable is necessary, and wherein the update means changes only the value of the first variable when updating the solution if the second variable selection determination means determines that selection of the second variable is unnecessary. [Supplementary Note 8] The information processing device according to Supplementary Note 7, wherein the second variable selection determination means determines that selection of at least the second variable is necessary when the first constraint exists among constraints to which the first variable belongs. [Supplementary Note 9] The information processing device according to Supplementary Note 1, wherein the update means repeats updating the solution until a predetermined termination condition is satisfied, and the first variable selection means selects the first variable each time the solution is updated. [Supplementary Note 10] The information processing device according to Supplementary Note 1, further comprising output control means for outputting information about the updated solution. [Supplementary Note 11] The information processing device according to Supplementary Note 10, wherein the output control means transmits output information for outputting information about the solution to a terminal device used by a user, based on a request from the terminal device. [Supplementary Note 12] An information processing method in which a computer, in a combinatorial optimization problem with linear inequality constraints, selects a first variable whose value is to be changed when searching for a solution of the multiple variables by repeatedly changing the value of a variable selected from the multiple variables, and, when a constraint to which the first variable belongs includes a first constraint that becomes unsatisfied when the value of the first variable changes, selects a second variable whose value is to be changed together with the first variable so that the first constraint is satisfied or approaches a satisfied state, and updates the solution by changing the value of the first variable and the value of the second variable. [Supplementary Note 13] A storage medium storing a program that causes a computer to execute the following processes: selects a first variable whose value is to be changed when searching for a solution of the multiple variables in a combinatorial optimization problem with linear inequality constraints, and, when a constraint to which the first variable belongs includes a first constraint that becomes unsatisfied when the value of the first variable changes, selects a second variable whose value is to be changed together with the first variable so that the first constraint is satisfied or approaches a satisfied state, and updates the solution by changing the value of the first variable and the value of the second variable.

[0102] In each of the above-described embodiments, the program can be stored using various types of non-transitory computer-readable media and supplied to a computer processor, etc. Non-transitory computer-readable media include various types of tangible storage media. Examples of non-transitory computer-readable media include magnetic storage media (e.g., flexible disks, magnetic tapes, hard disk drives), magneto-optical storage media (e.g., magneto-optical disks), CD-ROMs (Read Only Memory), CD-Rs, CD-R / Ws, semiconductor memories (e.g., mask ROMs, programmable ROMs (PROMs), erasable PROMs (EPROMs), flash ROMs, and random access memories (RAMs). The program may also be supplied to a computer by various types of transient computer-readable media. Examples of transient computer-readable media include electric signals, optical signals, and electromagnetic waves. The transient computer-readable medium can supply the program to a computer via a wired communication path such as an electric wire or optical fiber, or via a wireless communication path.

[0103] Although the present invention has been described above with reference to the embodiments, the present invention is not limited to the above embodiments. Various modifications within the scope of the present invention that would be understood by those skilled in the art can be made to the configuration and details of the present invention. In other words, the present invention naturally includes various modifications and alterations that would be possible for those skilled in the art based on the entire disclosure, including the claims, and the technical ideas. Furthermore, the disclosures of the above-cited patent and non-patent documents are incorporated herein by reference.

[0104] It can be used on computers or clouds that perform optimization calculations.

[0105] 1, 1A, 1X Information processing device 2 Input device 3 Output device 4 Storage device 5 Terminal device 100, 100A Optimization system

Claims

1. In a combinatorial optimization problem with linear inequality constraints, when searching for a solution for multiple variables by repeatedly changing the value of a selected variable from among multiple variables, a first variable selection means for selecting a first variable whose value will be changed, A second variable selection means for selecting a second variable whose value, when changed together with the first variable, satisfies or approaches the state in which the first constraint is satisfied, when the constraint to which the first variable belongs includes a first constraint that becomes unsatisfied as a result of a change in the value of the first variable. An update means for updating the solution so as to change the values ​​of the first variable and the second variable, An information processing device having

2. The information processing apparatus according to claim 1, wherein, when the first constraint is expressed as an inequality that defines the range of values ​​for the sum of terms containing a variable, the second variable selection means calculates the distance that the sum of terms after a change in the value of the first variable must change to be included in the range, and selects the second variable based on that distance.

3. The coefficients multiplied by the variables in the sum of the above terms are stored in the storage means in a sorted state. The information processing apparatus according to claim 2, wherein the second variable selection means selects a variable corresponding to the coefficient that is at least greater than the distance as the second variable.

4. The information processing apparatus according to claim 1, wherein the second variable selection means, when the first constraint is expressed as an inequality that defines the range of values ​​for the sum of terms containing a variable, selects as the second variable a variable belonging to the first constraint such that, when its value is changed, the sum of the terms after the change in the value of the first variable moves toward the range of values.

5. The information processing apparatus according to claim 1, wherein the second variable selection means selects a second variable that, when changed together with the first variable, satisfies or approaches a state in which the second constraint is satisfied, if a second constraint exists that is not satisfied before or after the change in the value of the first variable.

6. The information processing apparatus according to claim 1, wherein the update means determines whether or not to update the solution to change the values ​​of the first variable and the second variable, based on the value of the objective function before changing the values ​​of the first variable and the second variable and the value of the objective function after changing the values ​​of the first variable and the second variable.

7. The system further includes a second variable selection determination means for determining whether or not the selection of the second variable is necessary, The information processing apparatus according to claim 1, wherein the update means changes only the value of the first variable in updating the solution when the second variable selection determination means determines that the selection of the second variable is unnecessary.

8. The information processing apparatus according to claim 7, wherein the second variable selection determination means determines that, among the constraints to which the first variable belongs, if the first constraint exists, it is necessary to select at least the second variable.

9. Computers In a combinatorial optimization problem with linear inequality constraints, when searching for a solution for multiple variables by repeatedly changing the value of a selected variable, select a first variable whose value is changed, If the constraint to which the first variable belongs includes a first constraint that becomes unsatisfied as a result of a change in the value of the first variable, then a second variable is selected that, when its value is changed together with the first variable, satisfies or approaches the state in which the first constraint is satisfied. The solution is updated to change the values ​​of the first variable and the second variable. Information processing methods.

10. In a combinatorial optimization problem with linear inequality constraints, when searching for a solution for multiple variables by repeatedly changing the value of a selected variable, select a first variable whose value is changed, If the constraint to which the first variable belongs includes a first constraint that becomes unsatisfied as a result of a change in the value of the first variable, then a second variable is selected that, when its value is changed together with the first variable, satisfies or approaches the state in which the first constraint is satisfied. A program that causes a computer to perform a process to update the solution by changing the values ​​of the first variable and the second variable.