Information processing device, information processing method, and program
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Filing Date
- 2025-12-10
- Publication Date
- 2026-03-12
AI Technical Summary
Existing optimization problems with constraints face challenges in reducing computation time and memory usage due to the need to retain vast amounts of information about variables and constraints, leading to increased memory requirements as calculations progress.
An information processing device and method that determine a feasible solution to optimization problems by identifying and modifying constraints, adding redundant constraints based on the objective function value, and deleting redundant constraints to reduce the number of constraints and variables considered, thereby reducing calculation time and memory requirements.
This approach allows for efficient execution of optimization problem calculations by reducing the number of constraints and variables, thereby minimizing computation time and memory usage, and can handle various types of optimization problems, including linear and quadratic programming.
Abstract
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 order to reduce the calculation time and memory usage in a constrained optimization problem, a technique for identifying and deleting redundant constraints as preprocessing is known. For example, Non-Patent Document 1 discloses a technique for identifying redundant constraints in a linear programming problem.
[0003] Paulraj, Sumathi, and P. Sumathi. "A comparative study of redundant constraints identification methods in linear programming problems." Mathematical Problems in Engineering 2010 (2010).
[0004] Ordinary optimization problems are based on the premise that all information about variables, constraints, etc. is stored at the start of the calculation. Therefore, when the number of variables and constraints becomes enormous, the memory required to store this information becomes enormous, and the memory capacity required to store temporary information further increases as the optimization calculation proceeds.
[0005] In view of the above-mentioned problems, one of the objects of the present disclosure is to provide an information processing device, an information processing method, and a storage medium that suitably execute calculations for optimization problems.
[0006] One aspect of an information processing device is an information processing device having: a feasible solution determination means for determining a feasible solution to an optimization problem; and a correction means for correcting the optimization problem based on a first condition based on an objective function value corresponding to the feasible solution and a second condition that becomes redundant in the optimization problem due to correction of the optimization problem based on the first condition.
[0007] One aspect of the information processing method is an information processing method in which a computer determines a feasible solution to an optimization problem, and corrects the optimization problem based on a first condition based on an objective function value corresponding to the feasible solution and a second condition that becomes redundant in the optimization problem due to the correction of the optimization problem based on the first condition.
[0008] One aspect of the storage medium is a storage medium that stores a program that causes a computer to execute a process of determining a feasible solution to an optimization problem and correcting the optimization problem based on a first condition based on an objective function value corresponding to the feasible solution and a second condition that becomes redundant in the optimization problem due to modification of the optimization problem based on the first condition.
[0009] One example of the effect of the present disclosure is that calculations of optimization problems can be performed efficiently.
[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 representation of a solution space of an optimization problem identified based on problem specification information. 6 shows (A) a solution space that clearly shows a feasible solution when a search for a feasible solution to the optimization problem is performed. 7 shows (B) a solution space that clearly shows lines corresponding to added constraint conditions. 8 shows (C) a solution space after the addition of constraint conditions. 9 shows an example of a display screen that an output control unit causes an output device to display. 10 shows an example of a flowchart executed by an information processing device. 11 shows the configuration of an optimization system. 12 shows the relationship between users, an information processing device, and a terminal device. 13 shows an example of a table showing work shifts of medical professionals belonging to an organization. 14 shows a functional block diagram of an information processing device. 15 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. Hereinafter, the solution finally output by the information processing device 1 will be referred to as the "final output solution." The information processing device 1 repeatedly searches for a feasible solution to the optimization problem (i.e., performs a search loop) and outputs the best feasible solution found when a condition for terminating the search process is met as the final output solution. At this time, if a feasible solution is obtained as an intermediate solution that is not the final output solution, the information processing device 1 adds constraints based on the feasible solution and corrects the optimization problem by removing constraints that have become redundant due to the addition of the constraints. This shortens the calculation time for the optimization problem and reduces the memory capacity required for the optimization calculation.
[0014] Examples of optimization problems handled by the information processing device 1 include at least any constrained optimization problem (such as a linear programming problem, a mixed-integer linear programming problem, or a quadratic programming problem). Examples of optimization problems handled by the information processing device 1 also include unconstrained optimization problems converted from constrained optimization problems by changing the objective function, etc. Such unconstrained optimization problems include quadratic unconstrained binary optimization (QUBO) problems. By introducing a penalty term corresponding to a constraint into the objective function (including the introduction of a slack variable), it is possible to formulate a constrained optimization problem as a QUBO problem. Examples of applications that can be reduced to optimization problems handled by the information processing device 1 include a problem of determining a combination of sellers and buyers of traded goods (and the transportation schedule for the goods), a problem of determining employee work shifts, etc.
[0015] The solution method for the optimization problem used by the information processing device 1 may be any exact solution method or an approximate solution method (including any metaheuristic solution method and some heuristic solution methods).
[0016] 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.
[0017] 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.
[0018] 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 that calculates 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. In the case of a constraint-based optimization problem, the parameters include parameters related to the constraint conditions (also referred to as "constraint parameter") and parameters related to the objective function (also referred to as "objective function parameter"). Note that at least a portion of the problem specification information may be generated based on input information generated by the input device 2 operated by a user.
[0019] 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.
[0020] 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.
[0021] (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.
[0022] 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.
[0023] 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.
[0024] 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.
[0025] 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.
[0026] (3) Functional Blocks Figure 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 Figure 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 Figure 3. The same applies to other functional block diagrams described later.
[0027] 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 final output solution that is a feasible solution to the optimization problem and a solution to be presented to the user. The optimization calculation unit 15 supplies information about the determined final output solution to the output control unit 16. The detailed processing content of the optimization calculation unit 15 will be described later.
[0028] 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.
[0029] 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 preprocessing unit 52, a feasible solution determination unit 53, a termination determination unit 54, and an optimization problem correction unit 55.
[0030] The preprocessing unit 52 refers to the problem specification information stored in the storage device 4 and identifies an optimization problem to be solved. The preprocessing unit 52 performs a process of deleting redundant constraints from the identified optimization problem. In this case, the preprocessing unit 52 may identify and delete redundant constraints based on any method for deleting redundant constraints that can be applied as preprocessing before optimization calculation. Such a method is disclosed, for example, in Non-Patent Document 1, as well as in "Estinmgsih, Y., and R.H. Tjahjana. "Some methods for identifying redundant constraints in linear programming." Journal of Physics: Conference Series. Vol. 1321. No. 2. IOP Publishing, 2019."
[0031] Then, the preprocessing unit 52 supplies information representing the optimization problem modified by the above-described preprocessing to the feasible solution determination unit 53. In the case of a constrained optimization problem, the information representing the optimization problem includes objective function parameters and constraint parameters from which information relating to redundant constraints has been deleted by the preprocessing.
[0032] The feasible solution determination unit 53 determines a feasible solution to the optimization problem specified by information supplied from the preprocessing unit 52 or the optimization problem correction unit 55 described later (in other words, searches for a feasible solution). Specifically, before the optimization problem is corrected by the optimization problem correction unit 55, the feasible solution determination unit 53 searches for a feasible solution to the optimization problem specified by the information supplied from the preprocessing unit 52, and after the optimization problem is corrected by the optimization problem correction unit 55, the feasible solution determination unit 53 searches for a feasible solution to the optimization problem corrected by the optimization problem correction unit 55. In this case, the feasible solution determination unit 53 determines a feasible solution using any optimization method that serves as an algorithm for repeatedly searching for a feasible solution. The feasible solution determination unit 53 then repeats the determination of a feasible solution until the termination determination unit 54 determines that a search termination condition has been satisfied.
[0033] Examples of optimization methods that the feasible solution determination unit 53 can use include any exact solution method, any metaheuristic solution method, and any other approximate solution method (e.g., a heuristic solution method) that operates normally even when constraints based on this embodiment are added and deleted in each loop of the solution search.
[0034] The feasible solution determination unit 53 supplies information about the determined feasible solution to the termination determination unit 54 and the optimization problem modification unit 55 .
[0035] The termination determination unit 54 determines whether the feasible solution determination unit 53 should terminate its search for a feasible solution. In this case, the termination determination unit 54 determines whether a predetermined search termination condition is satisfied. Examples of the search termination condition include a condition based on the calculation time of the optimization calculation and a condition based on the searched feasible solution. In the example of the condition based on the calculation time of the optimization calculation, the termination determination unit 54 determines that the search termination condition is satisfied when it determines that a predetermined time or more has elapsed since the start of the search for a feasible solution by the feasible solution determination unit 53. In the example of the condition based on the searched feasible solution, the termination determination unit 54 determines that the search termination condition is satisfied when, for example, a predetermined number of feasible solutions previously searched or the variance of their objective function values is equal to or less than a predetermined degree.
[0036] If the termination determination unit 54 determines that the search termination condition is satisfied, it regards the feasible solution with the best objective function value among the feasible 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 54 determines that the search termination condition is not satisfied, it instructs the optimization problem correction unit 55 to correct the optimization problem.
[0037] 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.
[0038] When the termination determination unit 54 instructs the optimization problem to be modified (i.e., when it is determined that the search for a feasible solution should be continued), the optimization problem modification unit 55 modifies the optimization problem based on the feasible solution found by the feasible solution determination unit 53. At this time, the optimization problem modification unit 55 modifies the optimization problem that will be the target in the next search for a feasible solution by the feasible solution determination unit 53, so as to add constraints based on the feasible solution found immediately before by the feasible solution determination unit 53 and delete constraints that have become redundant as a result of the addition.
[0039] When adding a constraint based on the feasible solution most recently searched for by the feasible solution determination unit 53, the optimization problem correction unit 55 adds a constraint that the objective function value must be the same as or better than the feasible solution most recently searched for by the feasible solution determination unit 53.
[0040] For example, when the optimization problem to be solved is the minimization of an objective function "f(x)" (where "x" is a variable vector), and the feasible solution most recently found by the feasible solution determination unit 53 is "X", the optimization problem modification unit 55 adds a constraint corresponding to the following equation: f(x)≦f(X).
[0041] When the optimization problem to be solved is the maximization of an objective function f(x), the optimization problem correction unit 55 adds a constraint corresponding to the following equation: f(x)≧f(X).
[0042] Furthermore, the optimization problem correction unit 55 identifies constraints that have become redundant due to the addition of constraints based on the feasible solution most recently found by the feasible solution determination unit 53, and corrects the optimization problem so as to delete the identified constraints. Note that the identification and deletion of redundant constraints performed by the optimization problem correction unit 55 is, for example, the same method as the method of identifying and deleting redundant constraints performed by the preprocessing unit 52, and any method of identifying and deleting redundant constraints performed in preprocessing of the optimization problem may be applied.
[0043] Then, the feasible solution determination unit 53 supplies information representing the optimization problem modified so as to add or delete constraints based on the feasible solution X to the feasible solution determination unit 53. In the case of a constrained optimization problem, the information representing the optimization problem includes objective function parameters and constraint parameters from which information relating to redundant constraints has been deleted.
[0044] Note that, after correcting the optimization problem at least once, if the feasible solution determination unit 53 calculates a feasible solution whose objective function value is the same as that of a feasible solution used in correcting the past optimization problem (including the case where the feasible solution is the same), the optimization problem correction unit 55 does not correct the optimization problem. In other words, after correcting the optimization problem at least once, if the feasible solution determination unit 53 determines a feasible solution whose objective function value is better than that of a feasible solution used in correcting the past optimization problem (i.e., an already determined feasible solution), the optimization problem correction unit 55 corrects the optimization problem based on the feasible solution. In other words, every time the feasible solution determination unit 53 determines a feasible solution whose objective function value is better than that of an already determined feasible solution, the optimization problem correction unit 55 corrects the optimization problem to find a next feasible solution based on the feasible solution.
[0045] The components described in FIGS. 3 and 4 (the optimization calculation unit 15 including the preprocessing unit 52, the feasible solution determination unit 53, the termination determination unit 54, and the optimization problem correction unit 55, and the output control unit 16) can be realized, for example, by the processor 11 executing a program. Alternatively, the necessary programs may be recorded on any non-volatile storage medium and installed as needed to realize the components. Note that at least some of these components may not necessarily be realized by software programs, but may also 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, the integrated circuit may be used to realize a program consisting of the above components. 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.
[0046] (4) Specific Example Here, a specific example of the optimization calculation performed by the optimization calculation unit 15 will be explained using the configuration of the block diagram in FIG. 4. For the sake of convenience, the following will explain an optimization problem for minimizing the objective function f(x). i} i=1,…, M (M is a positive integer) is called the solution space defined by C "
[0047] FIG. 5 shows a solution space S of an optimization problem specified based on problem specification information. CHere, as an example, the constraint c 1 ~c 7 There exists a constraint c 1 ~c 7 The solution space S C (see shaded area) have been identified.
[0048] In this case, the preprocessing unit 52 calculates "Ca = {c i}i=1,...,k-1,k+1,...,M" C = S Ca " is satisfied. k Here, the preprocessing unit 52 identifies the constraint c corresponding to the line L7 as a redundant constraint. 7 is identified as a redundant constraint, and constraint c 7 The information indicating the optimization problem from which the above has been removed is supplied to the feasible solution determination unit 53.
[0049] Next, the feasible solution determination unit 53 determines the solution space S C In this case, a feasible solution X is searched for based on a solution search algorithm of an arbitrary optimization method. FIG. 6A shows a solution space S that clearly shows the feasible solution X when the feasible solution determination unit 53 searches for the feasible solution X of the optimization problem based on the information supplied from the preprocessing unit 52. C Then, the termination determination unit 54 determines that the search termination condition is not satisfied, and instructs the optimization problem modification unit 55 to modify the optimization problem.
[0050] The optimization problem correction unit 55 adds a constraint based on the feasible solution X. FIG. 6B shows the constraint c added by the optimization problem correction unit 55. 8 The solution space S is shown with the line L8 corresponding to C As shown in FIG. 6B, the optimization problem correction unit 55 modifies the constraint "f(x)≦f(X)" based on the feasible solution X previously found by the feasible solution determination unit 53 into the constraint c 8 Constraint c 8 is a constraint that requires the objective function value of the solution x that the feasible solution determination unit 53 searches next to be less than or equal to (i.e., the same as or better than) the objective function value of the feasible solution X.
[0051] Next, the optimization problem correction unit 55 corrects the constraint c 8 6C shows the constraints that have become redundant by adding the constraint c. 8 The solution space S after adding C In this case, the optimization problem correction unit 55 corrects the constraint c 8 The solution space S after adding C Redundant constraints c that do not contribute to the formation of 2 , c 6 (corresponding to lines L2 and L6 in FIG. 6C) and the specified constraint c 2 , c 6 Fix optimization issue to remove
[0052] In this way, the optimization calculation unit 15 can reduce the number of constraints by adding and deleting constraints based on the feasible solution X. This reduction in constraints reduces the number of constraints and variables (including slack variables introduced in QUBO problems, etc.) that need to be considered in subsequent calculations, thereby favorably reducing the calculation time and memory capacity used.
[0053] Here, a supplementary explanation will be given of the case where an optimization problem with constraints is formulated as a QUBO problem and solved by a metaheuristic solution method (including quantum annealing and simulated annealing).
[0054] When a constraint-based optimization problem is formulated as a QUBO problem, the objective function "F(x)" to be minimized is expressed by the following equation (1).
[0055] Here, the first Σ term in equation (1) (i.e., ΣQ obj ij x i x j ) corresponds to the initial objective function “f(x)” in the constrained optimization problem, and the second Σ term in equation (1) (i.e., ΣQ C ij x i x j ) is a term based on the constraint. i ” (or “xj ") are decision variables (which may include slack variables) and "Q obj ij " and "Q C ij " is a parameter.
[0056] Then, the optimization calculation unit 15 adds a condition based on the objective function value F(X) of the feasible solution X (i.e., adds a term corresponding to "F(x) ≦ F(X)") and deletes the condition that has become redundant due to the addition (i.e., reduces the number of terms in the second Σ). This reduces the number of terms that make up the second term group, and "Q C ij " (i.e., non-zero components of the matrix representing the parameters). Furthermore, if slack variables have been introduced to represent constraint conditions, the optimization calculation unit 15 can also delete slack variables that are no longer necessary as the above-mentioned conditions are added or deleted, thereby reducing the size of the matrix representing the parameters and the number of decision variables. In this way, by correcting the optimization problem, the optimization calculation unit 15 can reduce the size of the model handled in the optimization problem, reduce the data volume of parameters to be held, and achieve a reduction in the required memory capacity and an improvement in calculation speed due to the miniaturization of the model.
[0057] Next, a specific example of an output mode by the output control unit 16 will be described.
[0058] 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 between buyers (Ba, Bb, Bc, ...) and sellers (Sa, Sb, Sc, ...) is specified as the optimization problem to be solved (here, a combinatorial optimization problem). 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. The "setting condition α," "setting condition β," and "setting condition γ" share the same objective function parameters but different constraint condition parameters. 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.
[0059] 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.
[0060] (5) 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.
[0061] First, the information processing device 1 identifies an optimization problem to be solved (step S11). In this case, the information processing device 1 refers to problem specification information that is stored in advance in the storage device 4 or that is generated based on input information S1 supplied by the input device 2, and acquires parameters and the like of the optimization problem to be solved.
[0062] Next, the information processing device 1 deletes redundant constraints in the optimization problem identified in step S11 (step S12). In this case, the information processing device 1 modifies the optimization problem so as to delete redundant constraints as preprocessing before searching for a solution to the optimization problem. The processes of steps S11 and S12 correspond to the processes executed by the preprocessing unit 52.
[0063] Next, the information processing device 1 searches for a feasible solution to the optimization problem modified in step S12 (step S13). As a result, the information processing device 1 obtains a feasible solution that satisfies at least the constraints. The process of step S13 corresponds to the process executed by the feasible solution determination unit 53.
[0064] The information processing device 1 then determines whether or not a solution search termination condition has been satisfied (step S14). If it is determined that the solution search termination condition has been satisfied (step S14; Yes), the information processing device 1 outputs the feasible solution with the best objective function value found in step S13 as the final output solution (step S15). Note that the process of step S14 corresponds to the process executed by the termination determination unit 54, and the process of step S15 corresponds to the process executed by the output control unit 16.
[0065] On the other hand, if it is determined that the solution search termination condition is not satisfied (step S14; No), the information processing device 1 adds a constraint based on the objective function value of the feasible solution searched for in step S13 (step S16). Then, the information processing device 1 deletes the constraint that has become redundant due to the addition of the constraint in step S16 (step S17). Note that the processes of steps S16 and S17 correspond to the processes executed by the optimization problem correction unit 55. Thereafter, the information processing device 1 executes a process in step S13 to search for a feasible solution to the optimization problem corrected based on steps S16 and S17.
[0066] 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.
[0067] 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.
[0068] 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.
[0069] 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 .
[0070] 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.
[0071] Here, as an application example in the medical / healthcare field, 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.
[0072] FIG. 11 is an example of a table showing work shifts for medical personnel belonging to a certain organization. Specifically, FIG. 11 shows an example of work shifts for all medical personnel belonging to a certain organization, including medical personnel A to C, for a target period (June in this case). The generation of such work shifts can be formulated as an optimization problem. For example, it can be treated as a mixed integer programming problem and any exact solution method can be applied, or it can be treated as a large-scale discrete optimization problem and an annealing method can be applied.
[0073] Below, we will explain the process of determining work shifts, including input from medical professionals.
[0074] 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 ).
[0075] 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 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 shifts, and if there are no problems with the generated work shifts, logs in to the AI system and inputs approval of the work shifts via the terminal device 5. On the other hand, if each medical worker determines that there are problems with the generated work shifts, 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 new constraints based on the correction request and corrects the optimization problem. The addition of the 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 to the corrected optimization problem and generates work shifts 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.
[0076] Next, a specific example of application of the algorithm of the present disclosure to work shift generation will be described. For simplicity, a case of determining work shifts for three medical workers over two days will be described.
[0077] First, we define a decision variable x that takes the value 1 if medical worker i (=1, 2, 3) works on day j (=1, 2) and 0 if he / she does not work on day j. ij (Hereinafter, the decision variable vector with these elements will be simply referred to as "x"). If the constraint is that one to two people work every day, this constraint can be expressed as in the following equations (2a) to (2d).
[0078]
[0079] Hereinafter, the constraints corresponding to the equations (2a) to (2d) will be referred to as "constraint 2a" to "constraint 2d", respectively.
[0080] Also, the daily wage of each medical worker i is c i = (1, 1, 1.2), and the objective function is the total labor cost. In this case, the AI system sets the following optimization problem:
[0081] Here, the objective function "f(x)", matrix "A", and vector "b" are respectively expressed as follows:
[0082] In addition, the first to fourth rows of matrix A correspond to constraints 2a to 2d, respectively.
[0083] Here, during the optimization calculation, a feasible solution X = (x 11 , x 12 , x 21 , x 22 , x 31 , x 32 Assume that the obtained result is f(x) = (0,0,0,0,1,1). In this case, the constraint "f(x) ≤ f(X)" to be added based on the feasible solution X is "f(X) = 2.4", so it becomes "f(x) ≤ 2.4". This constraint can be transformed into the following two equations. x 11 +x 21 +x 31 ≦2.4−(x 12 +x 22 +x 32 ) x 12 +x 22 +x 32 ≦2.4−(x 11 +x 21 +x 31 )
[0084] On the other hand, constraints 2a and 2b 11 +x 21 +x 31 ≧1” and “x 12 +x 22 +x 32 Since "x ≥ 1" holds, the above two equations can be further transformed into the following two equations: 11 +x 21 +x 31≦1.4 x 12 +x 22 +x 32 ≦1.4
[0085] The above two equations clearly show that constraints 2c and 2d are redundant, so the AI system deletes these two constraints 2c and 2d as redundant constraints. Therefore, in this case, by adding the constraint "f(x)≦f(X)" based on the feasible solution X, the two constraints 2c and 2d can be deleted, resulting in a reduction in the number of constraints.
[0086] 12 is a functional block diagram of an information processing device 1X. The information processing device 1X mainly includes a feasible solution determination unit 53X and a modification unit 55X. The information processing device 1X may be composed of multiple devices.
[0087] The feasible solution determination means 53X determines a feasible solution to the optimization problem. The feasible solution determination means 53X can be, for example, the feasible solution determination unit 53 in the first or second embodiment.
[0088] The correction means 55X corrects the optimization problem based on a first condition based on an objective function value corresponding to a feasible solution and a second condition that becomes redundant in the optimization problem due to the correction of the optimization problem based on the first condition. The first condition can be, for example, a constraint condition (“f(x) ≧ f(X)” or “f(x) ≦ f(X)”) added by the optimization problem correction unit 55 in the first or second embodiment. The second condition can be, for example, a constraint condition deleted by the optimization problem correction unit 55 in the first or second embodiment. The correction means 55X can be, for example, the optimization problem correction unit 55 in the first or second embodiment.
[0089] 13 is an example of a flowchart executed by the information processing device 1X. The feasible solution determination means 53X determines a feasible solution of the optimization problem (step S21). The modification means 55X modifies the optimization problem based on a first condition based on an objective function value corresponding to the feasible solution and a second condition that becomes redundant in the optimization problem due to the modification of the optimization problem based on the first condition (step S22).
[0090] The information processing device 1X according to the third embodiment can solve an optimization problem based on a feasible solution obtained during the calculation of the optimization problem, thereby shortening the calculation time and reducing the required memory capacity.
[0091] In addition, part or all of the above-described embodiments can be described as, but are not limited to, the following supplementary notes.
[0092] [Supplementary Note 1] An information processing device comprising: feasible solution determination means for determining a feasible solution to an optimization problem; and correction means for correcting the optimization problem based on a first condition based on an objective function value corresponding to the feasible solution and a second condition that becomes redundant in the optimization problem due to correction of the optimization problem based on the first condition. [Supplementary Note 2] The information processing device of Supplementary Note 1, wherein the correction means adds information about the first condition to the optimization problem when correcting the optimization problem. [Supplementary Note 3] The information processing device of Supplementary Note 1, wherein the correction means deletes information about the second condition from the optimization problem when correcting the optimization problem. [Supplementary Note 4] The information processing device of Supplementary Note 2, wherein the first condition is a condition that requires the feasible solution to be subsequently determined to have an objective function value that is the same as or better than the objective function value. [Supplementary Note 5] The information processing device of Supplementary Note 1, wherein the feasible solution determination means further determines a feasible solution for the modified optimization problem. [Supplementary Note 6] The information processing device of Supplementary Note 1, wherein the feasible solution determination means repeats determining a feasible solution for the optimization problem until a predetermined termination condition is satisfied, and the correction means, each time a feasible solution having a better objective function value than an already determined feasible solution is determined, corrects the optimization problem to find the next feasible solution based on the first condition and the second condition based on the feasible solution. [Supplementary Note 7] The information processing device of Supplementary Note 6, further comprising output control means for outputting, when the termination condition is satisfied, information about the feasible solution having the best objective function value among the determined feasible solutions. [Supplementary Note 8] The information processing device of Supplementary Note 7, wherein the output control means transmits output information for outputting information about the feasible solution to a terminal device used by a user, based on a request from the terminal device. [Supplementary Note 9] An information processing method, wherein a computer determines a feasible solution for an optimization problem, and corrects the optimization problem based on a first condition based on the objective function value corresponding to the feasible solution and a second condition that becomes redundant in the optimization problem due to the correction of the optimization problem based on the first condition.[Supplementary Note 10] A storage medium storing a program that causes a computer to execute a process of determining a feasible solution to an optimization problem, and correcting the optimization problem based on a first condition based on an objective function value corresponding to the feasible solution, and a second condition that becomes redundant in the optimization problem due to modification of the optimization problem based on the first condition.
[0093] 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.
[0094] 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.
[0095] It can be used on computers or clouds that perform optimization calculations, and because it does not depend on a specific algorithm, it can be effectively combined with multiple optimization algorithms.
[0096] 1, 1A, 1X Information processing device 2 Input device 3 Output device 4 Storage device 5 Terminal device 100, 100A Optimization system
Claims
1. a feasible solution determiner for determining a feasible solution to the optimization problem; a correction means for correcting the optimization problem based on a first condition based on an objective function value corresponding to the feasible solution and a second condition that becomes redundant in the optimization problem due to correction of the optimization problem based on the first condition; An information processing device having the above.
2. The information processing apparatus according to claim 1 , wherein the modifying means adds information about the first condition to the optimization problem when modifying the optimization problem.
3. The information processing apparatus according to claim 1 , wherein the modifying means deletes information relating to the second condition from the optimization problem when modifying the optimization problem.
4. The information processing apparatus according to claim 2 , wherein the first condition is a condition that the feasible solution to be determined next must have an objective function value that is the same as or better than the objective function value.
5. The information processing apparatus according to claim 1 , wherein the feasible solution determination means further determines a feasible solution to the modified optimization problem.
6. the feasible solution determination means repeats determining a feasible solution to the optimization problem until a predetermined termination condition is satisfied; 2. The information processing device according to claim 1, wherein the correction means corrects the optimization problem to find the next feasible solution based on the first condition and the second condition based on the feasible solution each time a feasible solution having a better objective function value than a feasible solution already determined is determined.
7. 7. The information processing apparatus according to claim 6, further comprising output control means for outputting information about the feasible solution that has the best objective function value among the determined feasible solutions when the termination condition is satisfied.
8. The information processing apparatus according to claim 7 , wherein the output control means transmits output information for outputting information relating to the feasible solution to a terminal device used by a user, based on a request from the terminal device.
9. The computer Determine a feasible solution to the optimization problem; modifying the optimization problem based on a first condition based on an objective function value corresponding to the feasible solution and a second condition that becomes redundant in the optimization problem due to modification of the optimization problem based on the first condition; Information processing methods.
10. Determine a feasible solution to the optimization problem; a program that causes a computer to execute a process of correcting the optimization problem based on a first condition based on an objective function value corresponding to the feasible solution, and a second condition that becomes redundant in the optimization problem due to correction of the optimization problem based on the first condition.