Optimization device, optimization system, optimization method, and program
Patent Information
- Application Number
- JP2025505021
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Priority Date
- 2023-03-09
- Filing Date
- 2023-03-09
- Publication Date
- 2025-10-30
AI Technical Summary
In combinatorial optimization problems, users face challenges in achieving target solution accuracy due to the lack of clear clues for tuning parameters and variables, especially when only optimization results are shown, making it difficult for those unfamiliar with the implementation to obtain optimal solutions.
An optimization device and method that includes a search process executed a predetermined number of times to find solutions to combinatorial optimization problems with multiple constraints, along with a visualization component that displays statistical information about the search process, providing users with clues for tuning by visualizing constraint satisfaction rates, update frequencies, and constraint distances.
The approach allows users to gain insights into tuning parameters and variables, leading to improved solution accuracy by visualizing statistical information, thus facilitating better constraint management and solution optimization.
Abstract
Description
Optimization device, optimization system, optimization method, and recording medium
[0001] The present invention relates to an optimization device, an optimization system, an optimization method, and a recording medium.
[0002] In order to operate a computing device appropriately, there is a technology that visualizes the progress of a calculation to check whether the setting of a parameter or a variable is appropriate. For example, Patent Document 1 discloses a technology that visualizes the progress of a calculation to check whether the setting of a parameter or a variable is appropriate. i and the second variable y i It is disclosed that a monitoring image showing the time change of at least a part of the above is displayed on a display device.
[0003] International Publication No. 2020 / 189315
[0004] The invention disclosed in Patent Document 1 is a technology for setting various parameters and optimizing variables to solve novel equations of motion. However, similar issues exist in combinatorial optimization problems that represent real-world issues. Specifically, a single optimization run typically does not achieve the desired solution accuracy. Instead, the desired solution accuracy is achieved through a cycle of adjusting the weights of constraints and modifying the constraints based on the optimization results, followed by re-optimization. However, showing users only the optimization results provides few clues for tuning, making it difficult for those unfamiliar with the implementation to obtain the optimal solution.
[0005] An object of the present invention is to provide an evaluation method capable of giving users clues for tuning in combinatorial optimization problems.
[0006] An optimization device according to one embodiment of the present invention includes a search means that executes a search process a predetermined number of times to find a solution to a combinatorial optimization problem that is subject to multiple constraints; a recording means that records the state of the search process after each search process; and a visualization means that visualizes statistical information relating to the state after the search process has been executed the predetermined number of times.
[0007] In one embodiment of the present invention, an optimization method involves a computer executing a search process a predetermined number of times to find a solution to a combinatorial optimization problem that is subject to multiple constraints, recording the state of the search process after each search process, and visualizing statistical information related to the state after the search process has been executed the predetermined number of times.
[0008] In one embodiment of the present invention, a recording medium stores a program that causes a computer to execute a search process that searches for a solution to a combinatorial optimization problem that is subject to multiple constraints a predetermined number of times, records the state of the search process after each search process, and visualizes statistical information related to the state after the search process has been executed a predetermined number of times.
[0009] According to the present invention, it is possible to provide the user with a clue for tuning a combinatorial optimization problem.
[0010] FIG. 1 is a block diagram of a configuration including an optimization device according to the first embodiment. FIG. 2 is a diagram showing a hardware configuration in which the optimization device according to the first embodiment is realized by a computer device and its peripheral devices. FIG. 3 is an example in which the relationship between multiple variables is depicted by a dynamical system according to the first embodiment. FIG. 4 is an example in which the relationship between multiple constraint conditions is depicted by a dynamical system according to the first embodiment. FIG. 5 is an example in which statistical information on the number of satisfactions is visualized according to the first embodiment. FIG. 6 is an example in which statistical information on the number of updates is visualized according to the first embodiment. FIG. 7 is an example in which statistical information on constraint distances is visualized according to the first embodiment. FIG. 8 is a flowchart showing the optimization operation according to the first embodiment. FIG. 9 is a block diagram of a configuration including an optimization device according to a modification of the first embodiment. FIG. 10 is a flowchart showing the optimization operation according to a modification of the first embodiment.
[0011] Hereinafter, embodiments of the present invention will be described with reference to the drawings, but the embodiments are not limited to those described in the drawings.
[0012] First Embodiment The present disclosure is an invention for providing a user with clues for tuning parameters and variables when searching for a solution to a general combinatorial optimization problem. The present disclosure seeks an optimal solution to an optimization problem expressed as a QUBO (Quadratic Unconstrained Binary Optimization) problem, such as a Maxcut problem, a Traveling Salesman problem, or a Shift Schedule problem. The energy function in a combinatorial optimization problem can be expressed in a QUBO model using a known method.
[0013] The energy function in the QUBO model is expressed as the following equation (1) when the objective function is H.
[0014] ...(1) Q on the right side of equation (1) ij is the value of the i-th row and j-th column of the matrix Q, and both i and j can take the values 1, 2, ..., N. i is a variable that represents the state of spin i, and x j is a variable that represents the state of spin j. ij is a constant corresponding to the combination of spin i and spin j. For each combination of possible values of i and possible values of j, Q ij is defined as a constant.
[0015] Furthermore, when the QUBO model shown in formula (1) is given, when a combinatorial optimization problem is solved, the optimal individual spin orientation (1 or 0) is found. The found optimal individual spin orientation represents the solution to the combinatorial optimization problem. Many combinatorial optimization problems can be reduced to a minimization problem, which is a problem of finding a combination that minimizes an arbitrary objective function under given constraints. When the combinatorial optimization problem is a minimization problem, the optimal individual spin orientation is the individual spin orientation that minimizes the energy indicated by the energy function. In the QUBO model of formula (1), the x that minimizes H is i x j The constraints are conditions that specify combinations of spin orientations that are not allowed as solutions to the minimization problem.
[0016] Here, in order to explain the parameters in this embodiment, a shift scheduling problem will be taken as an example. For example, when dealing with the problem of allocating work shifts for N people over M days, x in formula (1) i ya x j Regarding x i,a ya x j,a+1 We use a binary variable with two subscripts, such as x i,a ya x j,a+1 In x, the first subscript (denoted as i and j) is the employee label, and the second subscript (denoted as a and a+1) is the working day label. i,a (i=1, 2, ... N, a=1, 2, ... M) can take the value of 0 or 1. For example, if staff member i is at work on day a, then x i,a If is 1 and staff member i is on vacation on a day, then x i,a However, in this embodiment, for convenience of explanation, the variable x i、 x j This will be explained using an example.
[0017] In the shift scheduling problem, for example, the following constraint A(H 1 ) to the constraint C(H 3 ) is assumed. In this case, the evaluation function is expressed by the formula (2). 1 ): The number of workers required for each day is determined. Constraint B (H 2 ): Each staff member has a desired vacation day / desired working day. Constraint C (H 3 ): Limit the number of consecutive working days / consecutive holidays
[0018] ...(2) In formula (2), a and b are H2 and H 3 is a parameter for the weight of each constraint condition in H, and takes a predetermined positive value. 2 and H 3 Increasing the objective function H 1 The influence of H2 and H 3If is set too small, it becomes difficult to satisfy the constraints. Therefore, it is necessary to tune the minimum a and b that find a solution that satisfies each constraint. Note that H in equation (2) is a variable x that takes the values 0 and 1. i、 x j Since H is a linear and quadratic polynomial, it can be considered as the objective function of the QUBO problem. i、 x j Finding the combination of variables corresponds to finding the optimal shift schedule.
[0019] 1 is a block diagram showing an example of the configuration of an optimization system 10 according to the first embodiment. The optimization system 10 includes an optimization device 100 and a terminal device 200. The optimization device 100 includes a search unit 101, a state recording unit 102, and a visualization unit 103. The terminal device 200 includes a problem input unit 201, a visualization selection unit 202, and an output unit 203.
[0020] A problem input unit 201 in the terminal device 200 inputs a combinatorial optimization problem to be solved to the optimization device 100. The problem input unit 201 inputs an energy function to be solved based on input from a user. The problem input unit 201 also receives information on the contents of constraints, initial values of parameters related to the weights of each constraint, and the number of times the search process has been executed. During the search process of the optimization device 100, the problem input unit 201 also receives, through operation by the user, an instruction to interrupt the search process or an instruction to continue the interrupted search process, and transmits each instruction to the optimization device 100.
[0021] The visualization selection unit 202 selects statistical information related to the states of constraints or variables to be visualized from the states of the search process of the optimization device 100. The visualization selection unit 202 selects the type of state of the search process to be visualized based on information input by the user. Examples of the type of state of the search process include the satisfaction rate of constraints, the constraint distance during the search process, or the number of updates to variables. Furthermore, the visualization selection unit 202 may select a type other than these, or may select the type of constraint or variable to be visualized, based on the conditions input by the user.
[0022] The output unit 203 outputs visualized data such as a graph of statistical information related to the state of the search process selected by the visualization selection unit 202. The output unit 203 is configured with a display device such as a display. Note that in this embodiment, the visualization selection unit 202 is not an essential component. In this case, the output unit 203 visualizes statistical information related to the state of default constraint conditions or variables set in advance in the optimization device 100.
[0023] Next, the optimization device 100 will be described. FIG. 2 is a diagram illustrating an example of a hardware configuration in which the optimization device 100 according to the first embodiment of the present disclosure is realized by a computer device 500 including a processor. As shown in FIG. 2, the optimization device 100 includes a processor 501, memories such as a read-only memory (ROM) 502 and a random access memory (RAM) 503, a storage device 505 such as a hard disk for storing a program 504, a communication interface 508 for network connection, and an input / output interface 509 for inputting and outputting data. The processor 501 controls the entire computer 80. The processor 801 may be, for example, a central processing unit (CPU), a digital signal processor (DSP), a graphics processing unit (GPU), a microprocessing unit (MPU), a floating point number processing unit (FPU), a physics processing unit (PPU), a tensor processing unit (TPU), a quantum processor, a microcontroller, or a combination thereof. In the first embodiment, the optimization device 100 is connected to each component via a bus 510. The optimization device 100 in the first embodiment shown in FIG. 1 can also be configured using cloud computing or the like.
[0024] The processor 501 runs an operating system to control the entire optimization device 100 according to the first embodiment of the present invention. The processor 501 also reads programs and data into memory from a recording medium 506 attached to a drive device 507, for example. The processor 501 also functions as the search unit 101, the status recording unit 102, and the visualization unit 103 in the first embodiment, or as part of these, and executes processing or instructions in the flowchart shown in FIG. 8, which will be described later, based on the program.
[0025] The recording medium 506 is, for example, an optical disk, a flexible disk, a magneto-optical disk, an external hard disk, or a semiconductor memory. The semiconductor memory or the like that is part of the recording medium is a non-volatile storage device that stores the program. The program may also be downloaded from an external computer (not shown) that is connected to a communication network.
[0026] As described above, the first embodiment shown in Fig. 1 is realized by the computer hardware shown in Fig. 2. However, the means for realizing each unit of the optimization device 100 in Fig. 1 is not limited to the configuration described above. The optimization device 100 may be realized by a single physically coupled device, or may be realized by a system consisting of two or more physically separated devices connected by wire or wirelessly.
[0027] The search unit 101 is a means for executing a search process a predetermined number of times to find a solution to a combinatorial optimization problem that is subject to multiple constraints. The search unit 101 is composed of a tool for solving combinatorial optimization problems, such as a solver. The search unit 101 repeatedly searches for a solution to the combinatorial optimization problem according to information input by the user about the number of times the search process is to be performed.
[0028] The state recording unit 102 is a means for recording the state of the search process after each search process. The state recording unit 102 records the state of the constraints or variables each time the search unit 101 executes a search process. The state recording unit 102 stores, as examples of the state of the search process, at least one of the following: whether the constraints are satisfied, the satisfaction rate of the constraints, or whether the variables have been updated. More specifically, regarding whether the constraints are satisfied, if the searched solution satisfies any of the constraints after each search process, the state recording unit 102 increments the number of times the satisfied constraints have been satisfied by one. The state recording unit 102 stores the satisfaction rate of each constraint after each search process. The satisfaction rate is an index indicating how far the searched solution is from a state in which the constraints are satisfied, and is calculated for each constraint. Furthermore, if any of the variables has been updated from the value after the previous search process, the state recording unit 102 increments the number of updates of the updated variable by one after each search process.
[0029] The visualization unit 103 visualizes statistical information about the state information stored in the state recording unit 102. The visualization unit 103 determines the drawing positions of the plurality of constraint conditions to be visualized based on the relevance of the plurality of constraint conditions, and draws the statistical information. Similarly, the visualization unit 103 determines the drawing positions of the plurality of variables to be visualized based on the relevance of the plurality of variables, and draws the statistical information.
[0030] The visualization unit 103 draws variables or constraints closer to each other as the degree of association between the variables or constraints increases. For example, in equation (1), the absolute value of the QUBO matrix |Q ij The larger the |, the greater the two variables x i、 x j The correlation between the two variables x i、 x j The visualization unit 103 draws the constraints by shortening the distance between them. In addition, the more variables that are shared among the multiple constraints, the stronger the correlation is, and the closer the constraints are drawn to each other. However, if the user has input information on the drawing positions of the constraints or variables, the visualization unit 103 may preferentially apply the information from the user.
[0031] The visualization unit 103 may determine the rendering positions of the constraint conditions or the variables based on the laws of dynamics. i and the absolute value of the QUBO matrix |Q ij As shown in Figure 3, the relationship between the variables x and | is plotted based on the laws of dynamics. 1、 x 2、 x 3 is the vertex, Q is ij The graph is drawn with edges as the absolute value |Q ij In the example shown in Figure 3, the variable x 1 Variable x 3 The degree of correlation between the two is the strongest. The Coulomb repulsive force F and spring constant |Q of each vertex ij | and is drawn based on the calculated values of the dynamic system. That is, the Coulomb force at each vertex is inversely proportional to the square of the distance, and the closer the vertices are to each other, the stronger the repulsion. Each vertex has a spring constant |Q ij They attract each other with a spring of |. Each vertex has a damping term (friction term), and all vertices will eventually come to a stop.
[0032] Figure 4 shows an example of the relationship between multiple constraints in this embodiment, drawn according to the laws of dynamics. As in Figure 3, constraints A to C are drawn as vertices, and the relationships between each constraint are drawn as edges. The Coulomb repulsion at each vertex is inversely proportional to the square of the distance between the constraints, and the more variables the constraints share, the shorter the edges drawn between them. In the example of Figure 4, constraints A and C have the strongest correlation, making them more susceptible to the influence of each other.
[0033] The visualization unit 103 rearranges the constraints or variables based on, for example, the degree of association between each constraint or each variable, and then displays statistical information on the satisfaction rate of the constraints and the number of updates to the variables in a heat map. FIG. 5 illustrates an example of visualization of statistical information on the number of times the constraints are satisfied. In the example of FIG. 5, the closer the constraints are to each other, the more susceptible they are to each other's influence. Furthermore, as shown in FIG. 5, the visualization unit 103 may display the shade of color applied to the area separated by each constraint, corresponding to the number of times the solution calculated in the search process for each constraint is satisfied. In the example of FIG. 5, the satisfaction rate of constraints A and B is high, and the areas of constraints A and B are painted in a dark color. On the other hand, the satisfaction rate of constraint C is below a predetermined level, so no color is applied. Furthermore, as described above, the visualization unit 103 may draw each constraint at a position determined based on the degree of association between the constraints.
[0034] The satisfaction rate of a constraint is the value obtained by dividing the number of times a constraint is satisfied during a full search by the number of full searches ((number of times a constraint is satisfied during a full search) / (number of full searches)). Therefore, in the example of Figure 5, the user can be given a suggestion to relatively reduce the weights for constraints A and B for the parameters of constraints A and B (a in equation (2)) because the satisfaction rates of the constraints are equal to or greater than a predetermined value. Here, relatively reducing the weights includes reducing the weight for the target constraint and increasing the weights for constraints other than the target constraint, thereby relatively reducing the weight for the target constraint. Furthermore, in the example of Figure 5, the satisfaction rate of constraint C is equal to or less than a predetermined value, so the user can be given a suggestion to relatively increase the weight for constraint C.
[0035] 6 is an example of visualization of the statistical information of the number of updates of variables. In the example of FIG. 6, in the region divided for each constraint, each variable x associated with each constraint is i In the example of FIG. 6, the number of updates for each variable x iAt this time, the visualization unit 103 displays each variable x at a position determined based on the relationship between the variables, as described above. i Furthermore, the visualization unit 103 may draw each variable x i The larger the matrix element of the QUBO matrix, the closer it may be drawn.
[0036] In FIG. 6, the number of updates of the variables related to constraints A and B is high. Therefore, it is possible to suggest to the user that the weights of the parameters (a in equation (2)) of constraints A and B should be relatively large. In addition, in the example of FIG. 6, for outliers that have been updated a predetermined number of times or more without satisfying the constraints, the corresponding variable x i It can be suggested that the value of is set to 0 or 1. Note that Figures 5 and 6 conceptually show the strength of association between multiple variables and constraints, and the shape of the region of each constraint may be different from those in Figures 5 and 6.
[0037] The visualization unit 103 also visualizes the constraint distance during the search process. The constraint distance is an index indicating how far away a state is from satisfying the constraint. FIG. 7 illustrates an example of visualization of statistical information on the constraint distance in this embodiment. As illustrated in FIG. 7 , the visualization unit 103 visualizes the constraint distance after each search process, with the horizontal axis representing search time and the vertical axis representing the constraint distance. In the example of FIG. 7 , for example, if a constraint condition was satisfied after a search process was executed at an arbitrary timing, but the constraint condition is no longer satisfied after a subsequent search process is executed, the user can be given a suggestion to fix the variable value at the time when the constraint condition was satisfied. For example, in the example of FIG. 7 , a suggestion can be given to fix the variable value at time T. Furthermore, in the example of FIG. 7 , the user can be given a suggestion to relatively increase the weight of the constraint condition shown in the graph of FIG. 7 . Note that examples of visualization of statistical information on the constraint distance by the visualization unit 103 are not limited to the graph of FIG. 7 . The visualization unit 103 may visualize, for example, time-series data of constraint distances of a plurality of constraint conditions that are related to each other on the same graph.
[0038] 8 is a flowchart showing an outline of the operation of the optimization device 100 according to the first embodiment. Note that the processing according to this flowchart may be executed based on program control by the processor described above.
[0039] As shown in FIG. 8 , first, the search unit 101 executes a search process to search for a solution to a combinatorial optimization problem that has multiple constraints (step S101). Next, the state recording unit 102 records the state of the search process after each search process (step S102). If the search process has been executed less than a predetermined number of times (S103; NO), the optimization device 100 repeats S101 to S102. On the other hand, if the optimization device 100 has executed the search process a predetermined number of times or more (S103; YES), the flow proceeds to S104. Finally, the visualization unit 103 visualizes statistical information related to the state of the search process after the search process has been executed a predetermined number of times (step S104). With this, the optimization device 100 ends the visualization process.
[0040] In the optimization device 100 of this embodiment, the visualization unit 103 visualizes statistical information regarding the state of the search process after the search process has been executed a predetermined number of times. This allows the user to receive tuning suggestions for the constraints, such as relatively reducing the weight of a constraint with a high degree of satisfaction and relatively increasing the weight of a constraint for a variable with a high number of updates. Furthermore, if a specific variable does not satisfy the constraint and is repeatedly updated as an outlier, the user can be prompted to set the value of that variable. Thus, the optimization device 100 can provide the user with tuning clues for combinatorial optimization problems.
[0041] <Modification> Next, a modification of the first embodiment of the present disclosure will be described, focusing on differences from the first embodiment. The optimization device 110 in this modification determines weights or fixes variable values that match suggestions given to a user based on statistical information. Furthermore, based on the determined weight parameters, an energy function for the combinatorial optimization problem is generated, and a solution other than the fixed variables is found.
[0042] 9 is a block diagram including the configuration of an optimization device 110 according to a modification of the first embodiment. In addition to the configuration of the optimization device 100, the optimization device 110 includes a determination unit 114, a model generation unit 115, and an optimization unit 116. The other configuration is similar to that of the optimization device 100 according to the first embodiment, and therefore detailed description thereof will be omitted.
[0043] The determination unit 114 is a means for determining a weight parameter for each constraint condition based on statistical information. For example, if the satisfaction rate of any of the constraint conditions is equal to or greater than a predetermined value, the determination unit 114 relatively reduces the weight for that constraint condition. Relatively reducing the weight for a constraint condition means that the weight for that constraint condition is relatively smaller than the weights for other constraint conditions. This may involve reducing the weight for that constraint condition itself, or increasing the weight of a constraint condition different from that constraint condition. In this case, the determination unit 114 may determine the adjustment range of the weight parameter based on the satisfaction rate of the constraint condition. Furthermore, if the number of updates for a variable is equal to or greater than a predetermined value, the determination unit 114 relatively increases the weight of a parameter related to that variable. In this case, too, the determination unit 114 may determine the adjustment range of the parameter weight based on the value of the number of updates.
[0044] The determination unit 114 further fixes the value of a specific variable based on statistical information. For example, the determination unit 114 fixes the value of a variable that has been updated a predetermined number of times or more without satisfying a constraint to 0 or 1. Furthermore, if a constraint is satisfied after a search process at an arbitrary timing, and then the constraint is no longer satisfied after a continued search process, the determination unit 114 fixes the value of the variable of the constraint to the value when the constraint was satisfied.
[0045] The model generation unit 115 generates an energy function for the combinatorial optimization problem using the parameters of each weight determined by the determination unit 114. The model generation unit 115 inputs the generated energy function to the optimization unit 116.
[0046] The optimization unit 116 solves variables other than the fixed variables of the combinatorial optimization problem represented by the energy function input from the model generation unit 115. At this time, the values of the variables fixed by the determination unit 114 are fixed to either 0 or 1. The optimization unit 116 also outputs a solution to the solved combinatorial optimization problem. That is, it outputs a combination of variables that minimizes the energy function as the solution. The optimization unit 116 transmits the solved solution to the terminal device 210, and the output unit 213 of the terminal device 210 displays the solution.
[0047] In this modification, the optimization unit 116 may output a solution that satisfies a specific constraint. In this case, the visualization selection unit 212 may receive a search query from a user to search for a specific solution, and the optimization unit 116 may output a solution that satisfies a constraint related to the received search query. For example, for the shift scheduling problem described above, if a user inputs a search query such as "Please observe the constraint on the number of workers required for each day," the optimization unit 116 may output a combination of variables that satisfies the constraint (constraint A in equation (2)). The optimization unit 116 may also output another constraint to satisfy the constraint. For example, the optimization unit 116 outputs the constraint C, the number of consecutive work days, to satisfy constraint A.
[0048] 10 is a flowchart showing an outline of the operation of the optimization device 110 in a modification of the first embodiment. Note that the processing according to this flowchart may be executed based on program control by the processor described above.
[0049] As shown in FIG. 10 , first, the search unit 111 executes a search process to find a solution to a combinatorial optimization problem with multiple constraints (step S201). Next, the state recording unit 112 records the state of the search process after each search process (step S202). If the search unit 111 and the state recording unit 112 have not executed the search process a predetermined number of times (S203; NO), they repeat steps S201 and S202. On the other hand, if the search unit 111 and the state recording unit 112 have executed the search process a predetermined number of times or more (S203; YES), the visualization unit 113 visualizes statistical information related to the state of the search process after the predetermined number of executions (step S204). Next, the determination unit 114 determines weight parameters for each constraint based on the visualized statistical information (step S205). Next, the determination unit 114 fixes the value of a specific variable based on the visualized statistical information (step S206). Next, the model generation unit 115 generates an energy function for the combinatorial optimization problem using the parameters for each weight determined by the determination unit 114 (step S207). Next, the optimization unit 116 solves variables other than the fixed variables of the combinatorial optimization problem represented by the energy function generated by the model generation unit 115 (step S208). Finally, the optimization unit 116 outputs the solution to the solved combinatorial optimization problem (step S209). This completes the visualization process for the optimization device 110.
[0050] In the optimization device 110 of this modification, the determination unit 114 determines weight parameters for each constraint condition based on statistical information. Then, the model generation unit 115 generates an energy function for the combinatorial optimization problem using the weight parameters determined by the determination unit 114. This allows a solution to be obtained using an energy function generated based on automatically set weight parameters, without the user having to set weight parameters for the constraint conditions themselves.
[0051] In the optimization device 110 of this modification, the determination unit 114 fixes the values of specific variables based on statistical information. The optimization unit 116 then solves the optimization problem for variables other than the fixed variables. This allows, for example, a fixed solution to be automatically obtained for variables whose solutions are uncertain during the search process, without the user having to set them themselves.
[0052] Note that this modification may be configured without the determination unit 114. That is, after the visualization unit 113 outputs data in which the statistical information is visualized via the output unit 213, the problem input unit 211 may accept changes to the weight parameters of each constraint condition adjusted by the user based on the visualized statistical information, and transmit the changes to the optimization device 110. In this case, the model generation unit 115 of the optimization device 110 uses the received weight parameters to generate an energy function for the combinatorial optimization problem, and the optimization unit 116 solves the combinatorial optimization problem represented by the generated energy function.
[0053] <Application Example> An example of applying this embodiment to the medical / healthcare field will be described. An application example will be described in which an AI (Artificial Intelligence) system incorporating the optimization system 11 of this embodiment is used to determine work shift schedules for nurses, physical therapists, caregivers, and doctors in a medical facility.
[0054] The AI system includes an optimization device 110 and at least one terminal device 210. Nurses and doctors log in to the AI system using the terminal device 210 and input data related to constraints such as desired work days. A problem input unit 211 transmits the input data related to the constraints to the optimization device 110.
[0055] The constraints used by the optimization device 110 are not limited to information input by nurses or doctors from the terminal device 210. The problem input unit 211 may acquire the constraints using data stored in an external database. For example, the problem input unit 211 may acquire the number of workers specified for each number of days from the external database as a constraint. Furthermore, the constraints used by the problem input unit 211 are not limited to desired work days, and any information regarding work shifts of medical personnel can be used. For example, the constraints may be the compatibility or personal relationships between nurses or doctors. If the constraint is the compatibility between nurses or doctors, the optimization device 110 can schedule work shifts so that nurses or doctors who get along well with each other work the same days and times.
[0056] The search unit 111 searches for a solution to the work shift schedule using the constraints. The state recording unit 112 records the state of the search process after each search process, and the visualization unit 113 visualizes statistical information generated in the process of searching for a solution to the work shift schedule and outputs it to a terminal device 210 used by a user such as a work shift schedule manager. The work shift schedule manager adjusts the weight parameters of each constraint using the statistical information displayed on the terminal device 210 and sends the adjusted parameters to the optimization device 110 via the problem input unit 211.
[0057] Furthermore, the model generation unit 115 of the optimization device 110 generates an energy function of the work shift schedule using the received parameters, and the optimization unit 116 determines the optimal work shift schedule and notifies the nurse or doctor via the output unit 213 of the terminal device 210. The screen output by the output unit 213 includes an icon for accepting approval or disapproval of the notified work shift schedule and an icon for requesting revision of the work shift schedule. The nurse or doctor checks the work shift schedule and, if there are no problems, approves the work shift schedule using the icons included on the screen via the terminal device 210. If there is a problem with the work shift schedule presented by the AI system, the nurse or doctor logs in to the AI system using the terminal device 210 and requests revision on the screen. In this case, the optimization unit 116 generates a new work schedule based on the requested revisions.
[0058] 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 to the configuration and details of the present invention may be made within the scope of the present invention, as understood by those skilled in the art. The present disclosure may include embodiments in which the details described herein are appropriately combined or substituted as necessary. For example, details described using a particular embodiment may also be applied to other embodiments to the extent that no contradiction occurs. For example, although multiple operations are described in sequence in the form of a flowchart, the order of description does not limit the order in which the multiple operations are performed. Therefore, when implementing each embodiment, the order of the multiple operations may be changed as long as it does not interfere with the content.
[0059] Some or all of the above-described embodiments can be described as follows: However, some or all of the above-described embodiments are not limited to the following.
[0060] (Supplementary Note 1) An optimization device comprising: a search means that executes a search process a predetermined number of times to search for a solution to a combinatorial optimization problem that is subject to multiple constraints; a state recording means that records the state of the search process after each search process; and a visualization means that visualizes statistical information related to the state after the search process has been executed a predetermined number of times.
[0061] (Supplementary Note 2) The optimization device according to Supplementary Note 1, wherein the state includes at least one of whether a constraint is satisfied, a satisfaction rate of the constraint, or whether a variable is updated.
[0062] (Supplementary Note 3) The optimization device according to Supplementary Note 1 or Supplementary Note 2, wherein the visualization means draws the plurality of constraints at drawing positions determined based on the relevance of the plurality of constraints, and visualizes the statistical information.
[0063] (Supplementary Note 4) The optimization device according to any one of Supplementary Notes 1 to 3, wherein the visualization means draws the plurality of variables at drawing positions determined based on the relevance of the plurality of variables, and visualizes the statistical information.
[0064] (Supplementary Note 5) The optimization device according to Supplementary Note 3 or Supplementary Note 4, wherein the visualization means determines the drawing positions of the plurality of constraint conditions or the plurality of variables based on a law of dynamics.
[0065] (Supplementary Note 6) The optimization device according to Supplementary Note 3 or Supplementary Note 4, wherein the visualization means renders the plurality of constraints or the plurality of variables based on rendering position information received from a user.
[0066] (Supplementary Note 7) The optimization device according to Supplementary Note 3 or Supplementary Note 5, wherein the visualization means displays a heat map in which the shades of colors applied to the drawn constraint conditions correspond to the number of times the solution calculated in the search process for each constraint condition is satisfied.
[0067] (Supplementary Note 8) The optimization device according to Supplementary Note 4 or Supplementary Note 5, wherein the visualization means displays a heat map in which the shades of colors assigned to the drawn variables correspond to the number of updates of each variable.
[0068] (Supplementary Note 9) The optimization device according to Supplementary Note 8, wherein the visualization means displays, in a heat map, shades of color assigned to the plurality of variables associated with each of the plurality of constraint conditions within an area separated by each of the plurality of constraint conditions, corresponding to the number of updates of the plurality of variables.
[0069] (Supplementary Note 10) The optimization device according to any one of Supplementary Notes 1 to 9, further comprising: a weight parameter assigned to each of the constraint conditions; and a determining means for determining the parameter for each of the constraint conditions based on the statistical information.
[0070] (Supplementary Note 11) The optimization device according to Supplementary Note 10, wherein the determining means relatively reduces the weight for the constraint condition when a satisfaction rate of any of the constraint conditions is equal to or greater than a predetermined value.
[0071] (Supplementary Note 12) The optimization device according to Supplementary Note 10 or Supplementary Note 11, wherein the determining means relatively increases the weight of a parameter related to a variable when the number of updates of the variable is equal to or greater than a predetermined number.
[0072] (Supplementary Note 13) The optimization device according to any one of Supplementary Notes 10 to 12, wherein the determining means relatively increases the weight of the constraint condition when the constraint condition is satisfied after a search process at any timing and then is no longer satisfied after a continuing search process.
[0073] (Supplementary Note 14) The optimization device according to any one of Supplementary Notes 10 to 13, wherein the determining means further fixes the value of a specific variable based on the statistical information.
[0074] (Supplementary Note 15) The optimization device according to Supplementary Note 14, wherein the determining means fixes the value of a variable that has been updated a predetermined number of times or more in a state where the constraint condition is not satisfied.
[0075] (Supplementary Note 16) The optimization device according to Supplementary Note 14, wherein, when a constraint condition is satisfied after a search process at an arbitrary timing and then the constraint condition is no longer satisfied after a continued search process, the determination means fixes the value of the variable of the constraint condition to the value when the constraint condition was satisfied.
[0076] (Supplementary Note 17) The optimization device according to any one of Supplementary Notes 10 to 16, further comprising: a model generation means that generates an energy function for the combinatorial optimization problem using the determined weight parameters; and an optimization means that solves the combinatorial optimization problem represented by the generated energy function.
[0077] (Supplementary Note 18) An optimization system comprising the optimization device according to any one of Supplements 1 to 9 and a terminal device, wherein the combinatorial optimization problem is a work shift scheduling problem in a medical facility, and the terminal device comprises problem input means for inputting an energy function to be solved, including the contents of constraint conditions, to the optimization device, and output means for outputting data that visualizes statistical information regarding the state after the search process has been executed a predetermined number of times, and the problem input means transmits to the optimization device changes to the weight parameters of each constraint condition that have been adjusted by a user based on the statistical information.
[0078] (Supplementary Note 19) An optimization method, in which a computer executes a search process for searching for a solution to a combinatorial optimization problem that is subject to multiple constraints a predetermined number of times, records the state of the search process after each search process, and visualizes statistical information related to the state after the search process has been executed the predetermined number of times.
[0079] (Supplementary Note 20) A recording medium recording a program that causes a computer to execute a process of: executing a search process for searching for a solution to a combinatorial optimization problem that is subject to multiple constraints a predetermined number of times; recording the state of the search process after each search process; and visualizing statistical information related to the state after the search process has been executed a predetermined number of times.
[0080] 10, 11 Optimization system 100, 110 Optimization device 101, 111 Search unit 102, 112 State recording unit 103, 113 Visualization unit 114 Determination unit 115 Model generation unit 116 Optimization unit 200, 210 Terminal device 500 Computer device 501 CPU 502 ROM 503 RAM 504 Program 505 Storage device 506 Recording medium 507 Drive device 508 Communication interface 509 Input / output interface 510 Bus
Claims
1. a search means for executing a search process for searching for a solution to a combinatorial optimization problem having a plurality of constraints a predetermined number of times; a status recording means for recording the status of the search process after each search process; and a visualization unit that visualizes statistical information relating to the state after the search process has been executed a predetermined number of times.
2. The optimization device according to claim 1 , wherein the state includes at least one of whether a constraint is satisfied, a satisfaction rate of the constraint, or whether a variable is updated.
3. 3. The optimization device according to claim 1, wherein the visualization means visualizes the statistical information by drawing the plurality of constraints at drawing positions determined based on the degrees of association of the plurality of constraints.
4. 3. The optimization device according to claim 1, wherein the visualization means visualizes the statistical information by drawing the plurality of variables at drawing positions determined based on the degrees of association of the plurality of variables.
5. A weight parameter is assigned to each of the constraints, determining a weight parameter for each of the constraints based on the statistical information; 3. The optimization device according to claim 1, wherein said determining means relatively reduces a weight parameter for said constraint condition when a satisfaction rate of any of said constraint conditions is equal to or greater than a predetermined value.
6. A weight parameter is assigned to each of the constraints, determining a weight parameter for each of the constraints based on the statistical information; 3. The optimization device according to claim 1, wherein said determining means relatively increases a parameter of a weight of said constraint condition related to said variable when the number of updates of said variable is equal to or greater than a predetermined number.
7. A weight parameter is assigned to each of the constraints, determining a weight parameter for each of the constraints based on the statistical information; 3. The optimization device according to claim 1, wherein said determining means further fixes the value of a specific variable based on said statistical information.
8. An optimization system comprising the optimization device according to claim 1 or 2 and a terminal device, the combinatorial optimization problem is a work shift scheduling problem in a medical facility, the terminal device has a problem input means for inputting an energy function to be solved, including the contents of constraint conditions, to the optimization device; an output unit that outputs visualized data of statistical information related to the state after the search process has been executed a predetermined number of times; The problem input means transmits to the optimization device changes to the weight parameters of each constraint condition adjusted by the user based on the statistical information.
9. The computer Executing a search process for searching for a solution to a combinatorial optimization problem subject to a plurality of constraints a predetermined number of times; Recording the status of the search process after each search process; An optimization method that visualizes statistical information regarding the state after the search process is executed a predetermined number of times.
10. Executing a search process for searching for a solution to a combinatorial optimization problem subject to a plurality of constraints a predetermined number of times; Recording the status of the search process after each search process; A program that causes a computer to execute a process of visualizing statistical information regarding the state after the search process has been executed a predetermined number of times.