System optimization methods

By generating multiple parameter value sets and applying optimization algorithms to update the initial state, the problem of inefficient hyperparameter optimization in the existing technology is solved, and an approximate optimal solution to the combination optimization problem is found under a limited computing budget.

JP2025509062APending Publication Date: 2025-04-11MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024547125
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-03-28
Filing Date
2023-02-16
Publication Date
2025-04-11

AI Technical Summary

Technical Problem

When solving the problem of combination optimization, the prior art relies on external hyperparameter optimization methods to determine the optimal parameter set, resulting in inefficiency and waste of computing resources.

Method used

By generating a collection of multiple different parameter values, an optimization algorithm is applied to update the initial state, a candidate solution is generated, and a candidate solution is evaluated based on the optimization metrics, selecting the solution with the highest optimization score as the estimated optimal state.

Benefits of technology

Under a limited computing budget, it is possible to efficiently find the approximate optimal solution of the combination optimization problem, and balance the advantages of parameter diversity and the limitations of computing resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025509062000001_ABST
    Figure 2025509062000001_ABST
Patent Text Reader

Abstract

1. A computer-implemented method comprising: receiving a plurality of candidate parameter value sets in a specified order, each of which includes a respective candidate parameter value for at least one parameter of an optimization algorithm, the number of candidate parameter value sets being based on a processing budget; for each candidate parameter value set in the sequence, applying the optimization algorithm to a plurality of initial states of a model representing a system, with at least one parameter set to the respective candidate parameter value to generate corresponding candidate update states; evaluating each of the candidate update states according to an optimality metric to generate a corresponding optimality score; selecting the candidate update state having the highest optimality score as an estimated optimal state of the model; and outputting the selected estimated optimal state of the model to a user interface, a network interface, or other application.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] background Combinatorial optimization problems are a group of problems with a wide variety of applications, including resource scheduling, capacity planning, drug discovery, and constructing low-density parity-check codes for 5G technologies.

[0002] Many combinatorial optimization problems are solved by representing the problem as an Ising model, which is formulated as the minimization of a quadratic function.

number

[0003] Many existing solvers applied to combinatorial optimization use a technique called simulated annealing to determine the optimal state. Simulated annealing works by moving between random adjacent states with some randomness based on the energies in those states until a putative optimal state is reached.

[0004] Some existing Ising solvers use a standard gradient descent update scheme to update the state of the Ising model towards the minimum energy using the gradient of the energy function, and the hyperparameters of the algorithm are determined using a hyperparameter optimization package. Summary of the Invention [Means for solving the problem]

[0005] overview Existing solvers of combinatorial optimization problems generally use external hyper-parameter optimization methods to determine the best set of parameters of the optimization algorithm used to generate the optimal state. Described herein is a technique for determining an approximately optimal solution to such an optimization problem by processing multiple different sets of parameter values, assuming that the optimization algorithm uses a set of parameters, generating a set of update states as candidate solutions, and selecting the global optimal solution from the set of candidates. The method disclosed herein provides an efficient and flexible optimization method by implementing the optimization algorithm with multiple different sets of parameter values. Evaluating the results of multiple parameterizations of the optimization algorithm is useful for finding near-optimal states. The number of parameter value sets used in the optimization algorithm depends on the processing budget. For a given processing budget, the present invention applies an optimization algorithm defined to fit within the processing budget and outputs an estimated optimal state of the system being modeled by evaluating the candidate states generated in the application of the optimization algorithm for the different sets of parameter values. This balances the benefits of implementing different sets of parameter values ​​to find the candidate optimal states with the efficiency required to fit within a budget in terms of processing time, energy consumption, or other limitations on computational resources.

[0006] The number of parameter value sets depends on the processing budget of the computer on which the optimization algorithm is implemented. As described below, this computer may be a conventional electronic digital computer including a processor and memory, or it may be an optical computer including light sources and optical hardware components such as light receivers, lenses, and diffractive elements. The processing budget may be based on any of the following: processing time, computer energy consumption, computer memory usage, the number of individual operations performed by the computer, or any other resources used by the computer during processing.

[0007] It should be noted that in the following description, references are made to estimated and approximated optimal solutions. This is because the methods described herein aim to find an optimal solution for a given problem and do not guarantee that a global optimum will be found. Thus, these solutions may be globally suboptimal, but may provide the best solution available within the constraints of computational resources and time. Any references herein to optimal solutions resulting from the methods described herein should be interpreted as approximate or estimated optimal solutions.

[0008] More generally, according to one aspect disclosed herein, there is provided a computer-implemented method that includes receiving a specified ordered sequence of candidate parameter value sets related to one another, each of the plurality of candidate parameter value sets including a respective candidate parameter value for at least one parameter of an optimization algorithm, wherein a number of received candidate parameter value sets is based on a processing budget; for each candidate parameter value set in the ordered sequence, at least one parameter of the optimization algorithm is set to the respective candidate parameter value, thereby generating a corresponding plurality of candidate update states of the model by applying the optimization algorithm to each of a plurality of initial states of the model representing the system; generating corresponding optimality scores for the candidate update states by evaluating each of the candidate update states according to an optimality metric, such that different candidate update states of the candidate update states have different optimality scores; selecting the candidate update state having the highest corresponding optimality score as an estimated optimal state of the model; and outputting the selected estimated optimal state of the model to one of a user interface, computer storage, or a destination application.

[0009] The parameter value sets may be received from an application for generating the parameter value sets, received from a network interface, received from a device external to the computer system performing the optimization, or retrieved from storage, e.g., a database or other data structure held in computer memory or received from a user. The candidate parameter value sets are received in order. The received candidate parameter value sets may be selected as a subset of the first k parameter value sets of a sorted list of parameter value sets, where k is a predefined number or a number dynamically selected based on a processing budget. Alternatively, the received parameter value sets may be randomly generated.

[0010] The system may be represented by a graph that defines interactions between pairs of the system's variables, and the states of the system are assignments of binary values ​​to the system's variables. The model may be an Ising model.

[0011] The optimization algorithm may be a gradient descent algorithm. The gradient descent algorithm may use one of standard momentum or Nesterov momentum. The gradient descent algorithm may alternatively or additionally use adaptive moment estimation.

[0012] The system represented by the model may be one of a computing system, an electronic system, or a mechanical system, and the method further includes implementing the estimated optimal state of the system. In some embodiments, for drug design applications, the system represented by the model may be a family of compounds or molecular scaffolds that define a substructure, and a finite number of molecular combinations may be assigned to specific locations in the substructure. The system may be a set of multiple computing resources for implementing a set of processes, in which case the state is an assignment of processes to each computing resource of the multiple computing resources.

[0013] The methods disclosed herein are implemented in a computer. The computer may be a conventional digital computer including a memory and one or more computer processors that execute instructions to perform the methods described herein. In this case, the optimization algorithms described herein may be provided as software, which is interpreted by the computer to generate a set of machine code instructions that are executed on conventional computer hardware. Alternatively, the computer may be an optical computer, including optical hardware for implementing the steps of the algorithms described herein. Optical computers do not necessarily operate by executing instructions as conventional computers do, but implement arithmetic and logical operations using optical components such as lasers, optical receivers, and modulators. In optical computers, variables are modeled by optical signals, for example generated by a laser or other light source, and the optimization algorithm is implemented by interacting with the optical signals using one or more optical hardware components such as optical receivers, lenses, and diffraction gratings to generate a set of optical signals that represent an approximate optimal state of the system being modeled.

[0014] This Summary is provided to introduce a selection of concepts in a concise form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended for use in limiting the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all of the disadvantages discussed herein.

[0015] BRIEF DESCRIPTION OF THE DRAWINGS To assist in understanding the present disclosure and to show how embodiments may be carried into effect, reference will now be made by way of example to the accompanying drawings, in which: [Brief description of the drawings]

[0016] [Figure 1] FIG. 1 is a schematic block diagram of an algorithm for finding the optimal state of a modeled system. [Diagram 2] 1 is a flow chart showing the steps of an algorithm for optimizing the state of a model. [Diagram 3] FIG. 1 is a schematic block diagram illustrating an implementation of an optimization algorithm within a multi-step optimization architecture. [Figure 4A] 1 shows an exemplary scheme for searching a two-dimensional parameter space. [Figure 4B] 1 shows a division of the parameter space into regions based on observed performance for a performance metric. [Figure 5A] 1 shows a schematic block diagram of an optical hardware implementation of the optimization method. [Figure 5B] 1 shows a schematic block diagram of an optical hardware implementation of an exemplary optimization algorithm. [Figure 6] 1 illustrates an exemplary wavelength selective switch configuration for performing optical vector matrix multiplication. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0017] Detailed Description of the Embodiments FIG. 1 shows a schematic block diagram of a method used to find an optimal state of a model for a real-world system. The system can take on a number of possible states, and the optimal state is the state that results in the best performance with respect to some characteristic of the system, such as the state with the lowest energy. In some embodiments, the model includes a graph or matrix that represents the interactions between multiple variables of the system, and a given state s is an assignment of values ​​to a set of variables of the system. In some examples, the variables are binary, taking on 1 and -1, or alternatively 1 and 0. Although the examples described herein primarily refer to binary variables, the methods disclosed herein may also be applied to states where the variables take on any discrete value. As described below, continuous variables may also be optimized according to the methods described herein.

[0018] The algorithm operates to apply multiple possible parameterizations of a predefined optimization algorithm to multiple initial value states of the system to generate a set of candidate updated states as possible solutions to the optimization problem. The optimization algorithm updates the initial states to generate candidate states. An optimality score is calculated by applying an optimality metric as a measure of the candidate states. This may be, for example, an energy function representing the energy of a physical system as described below, or some other metric representing the goal of a given optimization problem. For example, if the problem is the allocation of computational tasks to computing resources, the optimality score may depend on the time it takes to perform all the tasks, or a similar measure. Similarly, in the case of drug discovery, the optimality score may depend on a measure of toxicity and / or efficacy of the candidate compounds represented by the candidate states. In this case, the optimality metric is defined to give a high optimality score to a candidate compound with low toxicity and high efficacy. The optimality metric may be a function of multiple factors on which the optimal state depends. The optimality metric is applied to each candidate state to generate an optimality score for that state. The state with the highest optimality score may then be selected as the putative optimal state. An "optimality metric" is used herein to refer to a function that is applied to a state to measure the optimality of that state for a given optimization, and an "optimality score" is used to refer to the value that results when the optimality metric is applied to a given state.

[0019] The method may be applied to determine an approximate optimal state for a real-world system, which may be an electronic system such as a set of computer processors to which a set of processes are allocated in an optimal way, where the optimality metric is a measure of the overall usage of computing resources for handling the processes.

[0020] Another possible real-world application of the methods described herein is in the process of drug discovery. In this case, the system may be a structure or scaffold that defines the type of molecules that it is desired to test and synthesize for the purpose of drug development, the scaffold giving a set of possible positions where each of a finite set of atoms and / or molecules should be placed. For this problem definition, the state of the system is represented by the assignment of elements or compounds to each position of the scaffold. The optimality of the solution can be assessed by defining an optimality metric that maximizes the desirable properties of the drug, such as efficacy for the drug's desired function, ease of manufacture, and minimizes undesirable properties, such as toxicity. In this case, the state is represented by a binary variable

number

number

[0021] The method is applied by processing an ordered sequence 100 of parameter value sets in a given order. As will be described in more detail below by way of example with respect to certain embodiments of the invention, the ordered sequence may be selected as a subset from a sorted list of parameters. The sorted list may be generated, for example, from a predefined range for each parameter based on the expected performance of the optimization algorithm for those parameters. The expected performance may be measured by performing a search of the parameter space and applying a modified optimization algorithm with each set of parameter values ​​for the searched parameters to a set of exploratory initial states of the system, and measuring a performance metric for the optimality scores of the update states generated by the modified optimization algorithm. The performance metric is a representative measure of the optimality score for the set of exploratory update states for a given set of parameter values. Examples of performance metrics include the mean, median, minimum or maximum of the optimality scores aggregated over all of the exploratory update states. For example, the performance metric may be the mean, median or minimum energy of the set of exploratory states, with the energy of the system at a given state being used as the optimality metric to determine the optimality score (energy is inversely proportional to optimality). The performance metric may also be any other statistical metric of or related to the optimality score, such that the performance metric represents the predicted performance of the optimization function with that set of parameter values.

[0022] The parameter search may be performed by applying a Bayesian method. Alternatively, a grid search over a region of the parameter space may be performed to generate the set of parameters to be processed in the search phase. In another alternative, the parameters to be processed may be generated randomly.

[0023] The sequences may be completely determined before processing begins, or the sequences processed may be a subset of a longer list, with the actual sequences processed being determined from the sorted list based on the processing budget, i.e., the resources available for processing, and the sequences are completed once this budget is reached.

[0024] If the system is represented by a matrix, the ranges searched for each parameter may be determined using a linear stability analysis on the eigenvalues ​​of the matrix, as described in more detail below. Alternatively, the ranges may be manually initialized and dynamically updated based on optimality scores calculated for the updated states during the search phase.

[0025] The number of candidate parameter value sets processed is the number that can be processed within the processing budget. The processing budget is defined in terms of one or more of processing time, number of processing cycles, amount of memory resources consumed, and / or energy consumption. For example, in an embodiment, the processing budget may include a limit on processing time, and the number of candidate parameter value sets processed is the number that can be processed within the processing time limit. In a further alternative embodiment, the processing budget may include a limit on the amount of memory resources consumed, and the number of candidate parameter value sets processed is the number that can be processed within that limit for memory. In a further embodiment, the processing budget may include a limit on the number of processing cycles performed, and the number of candidate parameter value sets processed is the number that can be processed within the limit for the number of processing cycles. In an alternative embodiment, the processing budget may include a limit on processing energy consumption, and the number of candidate parameter value sets processed is the number that can be processed within the limit for energy consumption. In a further embodiment, the processing budget may include constraints on two or more such factors. For example, processing may be stopped immediately at any of two or more points (eg, time limits or energy consumption), or constraints may be defined in terms of a combined metric that combines two or more factors.

[0026] Each parameter value set in the sequence contains values ​​that parameterize the optimization algorithm 102. In some embodiments, the optimization algorithm uses two parameters, and each item in the sequence is a pair of values ​​corresponding to these parameters. Other optimization algorithms use three values, and the sequence is a sequence of triplets. An example of this is shown in Figure 1, where each parameter value set is shown as a 3-tuple (P1, P2, P3).

[0027] The optimization algorithm may be an iterative algorithm that updates the state of the system from an initial state over a predetermined number of iterations by repeatedly applying an update rule. Some such optimization algorithms apply iterative gradient descent updates over a predetermined number of iterations, where the gradient function is parameterized by two parameters. Other exemplary algorithms use gradient descent with a momentum term parameterized by a third momentum parameter γ. Examples of these are described in more detail below. The modified optimization algorithm used in generating the sorted list may be the same iterative algorithm implemented over a minimum number of iterations. Gradient descent uses the gradient of a function to determine the direction of the update to a local minimum, where the gradient is a vector of the first partial derivatives of the function with respect to each of its variables. Other possible iterative optimization algorithms may use higher order derivatives to determine the direction of the update.

[0028] Non-differential based (or derivative-free) methods may also be used. For example, as mentioned above, simulated annealing is a common algorithm applied to solve combinatorial optimization problems. Another family of optimization algorithms that may be used to solve such optimization problems are evolutionary algorithms. These algorithms include particle swarm optimization and genetic algorithms. These techniques are well known in the field of optimization and will not be discussed in detail here. The methods described herein for optimizing a system may be used in conjunction with any of these optimization methods. In other words, for any of the mentioned optimization algorithms, a procedure may be applied where an ordered list of parameter value sets that define the optimization algorithm may be processed in a given order and each optimization algorithm may be applied to an initial state of the system to generate candidate solutions.

[0029] Each set of values ​​is selected in a predefined order, and the optimization algorithm parameters are set to the respective values ​​P1, P2, ... for the given set. The optimization algorithm is applied to multiple initial states 104 of the system,

number

number

number

[0030] An optimization algorithm is defined to update the state of the system toward an optimal solution according to some goal or objective of the optimization problem represented by an optimality score, for example, by minimizing an energy function that represents the total energy of the system, where the optimal state is the lowest energy state of the system.

[0031] Once the set of candidate update states 106 is generated, an optimality metric is applied to each candidate state, where the optimality metric may represent the energy of the physical system, or some other optimization measure. The highest scoring state s according to the given optimality metric is * is selected as the estimated optimal state of the system. The optimality metric may be defined with respect to some cost or objective function that represents the goal of optimization of a given system.

[0032] An estimated optimal state of the system is then output. The state may be output to a user via a user interface, such as a graphical user interface for display on a screen, or as an audible output. Alternatively, the state may be output directly to another system or application for direct use in configuring the system state, for example, by passing the state to a computer-aided design tool, or to a controller of a real-world system that can interpret the output state and implement it in the system. The estimated optimal state may also be output to a device external to the computer system performing the optimization, or to a network interface. In other embodiments, the state is output to computer storage, which may be temporary (such as RAM) or non-volatile storage (such as a hard disk drive, disk storage), where it may be accessed by a user or by a computer application, such as a modeling tool or a control application of the system.

[0033] The system being modeled may be a real-world system. The real-world system may be any of a computing system, an electronic system, an electrical or electromagnetic system, a mechanical system, a chemical system, or the application of a treatment to a living organism, or any other real-world system that can be expressed as a combinatorial optimization problem. The estimated optimal state output by an optimization algorithm such as described above may be implemented by creating, building, or programming a state of the real-world system, or by modifying an existing state of the system by a physical, chemical, mechanical, or electrical process. A user may directly bring about the estimated optimal state of the system, for example, by moving, modifying, or building components of a physical system. Alternatively, a user may provide inputs to a computer application or other tool to manipulate the state of the system, for example, by configuring a computer-aided design tool and / or manufacturing a device to create an optimal system state or modify an existing state to an optimal state. Similarly, a computer application such as a computer-aided design or modeling application may receive the estimated optimal state and control a manufacturing device or other machine to bring about that state in the real-world system, which may be a physical, chemical, mechanical, or electrical system. As mentioned above, combinatorial optimization problems have a wide range of real-world applications, including resource scheduling, constructing low-density parity check codes for 5G, and drug discovery, among other applications that will be known to those skilled in the art of optimization methods.

[0034] FIG. 2 shows a flow chart of the method shown in FIG. 1. In step S200, an ordered sequence of parameter value sets is received. In step S202, a first set of values ​​in this sequence is assigned to parameters of an optimization algorithm. In step S204, the optimization algorithm is run with the given parameter values ​​for a number of initial states to generate a set of candidate update states in step S206. These are added to the overall set of candidate states 106 as described with reference to FIG. 1. An optimality score is calculated for each candidate update state using an optimality metric in step S212. As mentioned above, the optimality metric is a measure of a given state as a solution to a given system being optimized and is defined depending on the system and the goal of the optimization. At this point, if it is determined that there are further parameter value sets to be processed, the next parameter value set is assigned to the parameters of the optimization algorithm and steps S206 and S206 are repeated until there are no further parameter value sets to be processed. An optimality score for each parameter is calculated.

[0035] Although FIG. 2 illustrates the steps of executing the optimization algorithm, generating candidate update states, calculating optimality scores, and assigning the next set of parameter value sets as a continuous sequence, these steps may be performed in parallel on multiple processors, whereby a set of initial states may be processed by the optimization algorithm using a first set of values, and before this processing is completed, a second set of parameter values ​​may be assigned to the parameters of the optimization algorithm for processing on a second processor at the same time that the optimization algorithm is executed on the first processor. If not all of the parameter value sets are assigned to the parameters of the optimization algorithm for processing, the conditions for all parameters being processed in FIG. 2 are not met. However, the step of selecting the highest scoring candidate as the estimated optimal solution only occurs once a complete set of candidate update states has been generated, i.e., after all processing by the optimization algorithm is completed, or when a processing time limit is reached. The number of parameter value sets to be processed may be determined in advance based on a processing budget, but the number actually processed may be dynamically adjusted by terminating processing when a given limit on time, memory, etc. is reached.

[0036] Although Figure 2 shows the step of calculating an optimality score for each candidate state immediately after computing the state, this step may be performed at any time after the states are generated. This calculation may also be performed in parallel on multiple processors and may be performed for different update states at different times. The set of candidate states and their optimality scores are kept in memory and updated as processing continues, as the algorithm outputs more candidate update states and scores until all processing is complete. At this point, in S214, the candidate update state corresponding to the highest optimality score is selected as the presumed optimal state of the system.

[0037] The present invention generates an estimated optimal state of a system by taking a sequence of parameter value sets for a predefined optimization algorithm and applying the optimization algorithm parameterized with the ordered sequence of value sets to various initial states of the system. This provides a method to generate an approximate optimal solution within a processing budget when the number of parameter value sets to be processed depends on the processing budget. Furthermore, the processing of states by the optimization algorithm for different parameter values ​​is independent of other parameter values, making the method suitable for parallel processing implementations.

[0038] There are several possible ways of generating an ordered list of parameters for processing according to the steps outlined above with reference to Figures 1 and 2. Different forms of parameterized optimization algorithms may also be used according to the methods described. Exemplary embodiments of the invention will now be described, in which these features will be discussed in more detail.

[0039] FIG. 3 shows a high-level overview of the structure of an algorithm for first generating an ordered sequence of parameters used to define the optimization algorithm, and then performing the method described above with reference to FIGS. 1 and 2, also referred to in this specification as “deep search,” to generate a set of candidate solutions to the optimization problem and select a putative optimum.

[0040] The optimization algorithm 102 used to generate candidate update states to be considered as possible solutions to the problem is parameterized by a set of parameters. These parameters can take on a wide range of values, and one problem with implementing the described method of running the optimization function at multiple sets of parameter values ​​is that running a full optimization for a large number of parameter value sets that cover a large parameter space is intractable. The method shown in FIG. 3 introduces two additional steps to narrow down the set of parameters to a manageable and useful set of parameters before implementing a "deep search" of the algorithm for a large number of initial states. In this example, a graph or matrix G that defines the interactions between the variables of the system is generated. ij An input problem 300 including: is provided to a pre-processing stage 302. In the pre-processing stage 302, the problem is analyzed and, given the parameters of the optimization algorithm, ranges for searching each parameter are identified to avoid wasting resources applying the optimization algorithm with parameter values ​​that are significantly suboptimal. The pre-processing stage 302 identifies the eigenvalues ​​and eigenvectors of the graph or matrix that defines the problem and performs a linear stability analysis to identify suitable ranges for the parameters of the optimization function. This analysis is described in more detail below. The output of the pre-processing stage 302 is a set of ranges for each parameter to narrow the parameter search space for the next stage of processing.

[0041] In the search phase 304, the optimization algorithm 102 is applied to a set of parameter combinations that cover the space defined by the ranges identified in the pre-processing phase 302. As described in more detail below, the optimization algorithm 102 in this implementation uses gradient descent-based updates to generate an approximately optimal state from an initial state over several iterations. To reach a near-optimal state from a given initial state, the optimization algorithm 102 should perform a large number of iterations to allow it to converge to the optimal value. However, in the search phase, there is a range of possible parameters of the optimization function, and it is not possible to perform an in-depth optimization procedure for each parameter value set.

[0042] The goal of the search phase 304 is not to find a globally optimal solution to the input problem, but to identify a subset of parameter value combinations that are likely to yield good optimization performance and are tractable for search in the in-depth optimization or "deep search" phase. In order to assess a larger set of parameters searched in the search phase of their expected performance in the optimization algorithm, a "shallow" optimization is performed that updates a small number of initial states each time a parameter value combination is searched using a small number of iterations. The number of initial states and the number of iterations are defined prior to processing in the search phase. The number of iterations may also be referred to herein as the "depth" of the optimization. The optimization depth applied in the search phase 304 is smaller than the optimization depth applied in the deep search phase 306. Once the shallow optimization has been performed on a set of suitable parameter value combinations within the range determined in the pre-processing step, the parameter value combinations may be evaluated based on a metric applied to the updated states generated by the shallow optimization. If the optimization goal is to minimize the total energy of the Ising system (as described in more detail below), the metric for each parameter value combination may be, for example, the average energy of the updated states generated by the shallow optimization algorithm for that parameter value combination. Alternatively, the minimum or median, or any similar metric, over the energies generated by the shallow optimization may be evaluated for each parameter value combination. This evaluation is used to identify the best set of parameters; i.e., the one with the lowest average (or median, minimum, etc.) energy is considered the "best" parameter value combination and is therefore the combination that should be evaluated first in the deep search stage. The subset of parameter value combinations with the best performance for a given metric is output from the search stage as an ordered sequence 100 for processing in the deep search stage 306.

[0043] In the deep search phase 306, an ordered sequence of parameter value sets (also referred to above as parameter value combinations) is processed by assigning the parameter values ​​of each set in the sequence to parameters of the optimization algorithm and running the optimization algorithm update over multiple iterations for multiple initial states. The optimization algorithm 102 applies the same update scheme in the search phase and the deep search phase, but since the deep search phase has a smaller number of parameter value sets to process, the number of iterations and initial states per parameter value set is much larger than the number applied per "shallow" optimization performed in the search phase. For each update state generated by the optimization algorithm in the deep search phase 306, an optimality metric is applied to evaluate the update state based on the optimization goal. The update state s with the highest optimality score is selected as the optimality score. * is selected as the estimated solution to the input problem 300.

[0044] As mentioned above, the goal for the Ising model is to minimize the total energy of the system, so the energy of the system can be calculated for each update state and treated as a cost measure. In this specification, the term "optimality metric" is used to describe the measure that is maximized for an optimal solution, and the term "cost" is used to describe the measure that is minimized for an optimal solution. The cost and optimality metrics used in this specification have the same effect in this application, which is to evaluate solutions based on how well they meet the optimization goal. A cost value can be derived from the score and vice versa. For example, by setting the optimality metric as the negative of the energy function, the highest optimality corresponds to the lowest energy. Either term can be used to indicate the optimality measure in this specification.

[0045] Some details of the exemplary optimization algorithm 102 as applied to one implementation of the present invention will now be described in more detail. This exemplary optimization algorithm is referred to as the Fast Optimization Algorithm. It is a fast gradient descent based optimization algorithm parameterized by multiple parameters (α, β, γ) in the manner already described. The sequence of parameter values ​​100 for the optimization algorithm is generated according to the pre-processing and search stages described in FIG.

[0046] The fast optimization algorithm is configured to solve a problem provided in the form of an Ising model, which is formulated as the minimization of a quadratic function.

number

[0047] To solve this problem, an iterative optimization algorithm 102 can be used, which is x t+1 =x t -Δt ∇F(x t ,G) (2) where x is a continuous real-valued vector that maps to states of the binary variable s, and ∇F is the gradient of a function F that depends on the state vector x and the interactions G and is designed to drive the update of the vector x towards a set of values ​​that correspond to lower energy states of the system. The above update scheme is commonly called gradient descent and is well known in the field of optimization.

[0048] The above algorithm can be used to solve different formulations of combinatorial optimization problems, and the function F is defined according to the requirements for the given problem. F is defined for a given problem such that the state x that minimizes F is optimal for the given problem. For example, for a drug discovery problem, a function F can be defined that is minimized when the states correspond to candidates with desirable properties of a drug, e.g., high efficacy and low toxicity. The following description provides further details on how the algorithm of equation (2) is applied to optimization problems of the Ising problem type. However, as will be clear to one skilled in the art, the same algorithm and the techniques described herein for selecting the parameters of the optimization algorithm can be easily applied to other combinatorial optimization problems by defining an appropriate differential function F for that problem.

[0049] By defining a suitable function F, an estimated solution to the Ising problem can be found by applying the above iterative update algorithm over multiple iterations to a vector x corresponding to the initial state of the system. The exact form of F can be defined differently for different problems. The inventors believe that for the above Ising model definition, a particularly useful gradient ∇F can be of the general form: ∇F(x,G)=α·H1(x t )-β·H2(G·H3(x t )) (3) where α and β are parameters of the optimization algorithm, and H1, H2, and H3 refer to three vectors of linear or nonlinear functions that can be implemented in hardware. H1, H2, and H3 are applied element-wise, and different types of linear or nonlinear functions can be used for each element of H1, H2, and H3. The above formula specifies a general form of ∇F without defining the particular function to be used, since a variety of computer-implementable functions can be usefully used within the range of functions of the above form. The flexibility of using either linear or nonlinear functions makes it possible to solve combinatorial problems that also include continuous variables that need to be optimized.

[0050] A particular equation for ∇F that may be implemented, having the form specified in Equation 3, is, for example, ∇F(x,G)=α·sin(x t )-β tanh(G sign(x t )) (4) where sin and tan are well-known trigonometric functions, and sign is

number

number

[0051] Given the above formula for ∇F, equation (2) for the state update can be written as follows: x t+1 =x t -Δt.(α H1(x t )-β·H2(G·H3(x t ))) (5) As parameters of the optimization function, an ordered sequence of possible values ​​of α and β is processed according to the method already described with reference to Figures 1 and 2. Δt defines the size of the update per iteration and may also be referred to herein as the "learning rate". Δt may also be treated as a parameter of the optimization algorithm, or alternatively, a fixed value may be set for Δt. When using standard gradient descent as defined above in Equation 5, an ordered sequence of parameter values ​​for α and β may be generated by the pre-processing 302 and search phase 304 shown in Figure 3.

[0052] However, some improved gradient descent techniques use variations of the above update scheme to speed up the convergence of the algorithm to a near-optimal solution. The function F, whose gradient is calculated at different times, may have a complex structure, e.g., with many local minima. Variations of gradient descent have been developed that adjust the updates in order to converge more quickly to the estimated minimum.

[0053] One family of gradient descent methods uses the concept of momentum. Momentum is used in gradient descent to overcome the problem that, depending on the exact form of the gradient, the update rule in equation (2) can lead to slow convergence due to fluctuations from one iteration to the next and the state becoming "bounced" around the optimum instead of continuously moving towards it. Momentum gradient descent is designed to overcome this problem by introducing a "momentum" term into the update rule in equation (2), resulting in the following update rule: x t+1 =x t -Δt ∇F(x t ,G)+γ(x t -x t-1 ) (6) Substituting the expression for ∇F given in equation 3 above, this update rule can be expressed as: x t+1 =x t -Δt (α H1(x t )-β·H2(G·H3(x t )))+γ(x t -x t-1 ) (6a) This corresponds to the dynamics of a differential equation.

number

[0054] A second variant of momentum is the Nesterov momentum, where the update rule is given by the following equation: x t+1 =x t -Δt ∇F(x t +γ(x t -x t-1 ),G)+γ(x t -x t-1 ) (8) This also corresponds to differential equation (7), but the Nesterov momentum update is t Instead of evaluating the gradient at the point x where the momentum term is applied, t +γ(x t -x t-1 ) It should be understood that either the standard momentum defined in Equation 6 or the Nesterov momentum update of Equation 8 may be used as the optimization algorithm for a given combinatorial optimization problem, and that different choices may be appropriate for different optimization problems and associated functions F.

[0055] All elements of vector x are updated at each iteration of the update scheme of Equations 5, 6, and 8 with a learning rate (i.e., the size of the update at each iteration) defined by the time step Δt. A good value for Δt is one that is large enough that the updates move relatively quickly toward the optimum, but small enough that large updates do not cause the step to "go overboard" at the minimum.

[0056] When the expression in equation (3) is substituted into equation 6 above, the update of the fast optimization algorithm becomes: x t+1 =x t -Δt (α H1(x t )-β·H2(G·H3(x t )))+γ(x t -x t-1 ) (9) The formula is as above, the adjusted state x t +γ(x t -x t-1 ) is similar to the Nesterov momentum, except that the gradient is evaluated at

number

[0057] Other fast gradient descent algorithms may be used for the optimization algorithm 102. For example, one family of algorithms uses an adaptive learning rate to adjust updates over time to accelerate the state towards the optimum more quickly than standard gradient descent does.

[0058] Adaptive moment estimator (Adam) is an extension of gradient descent that uses the gradient and a squared gradient that decays exponentially in time.

number

[0059] Each of the optimization algorithms mentioned above uses as parameters at least α and β of ∇F, and optionally additional parameters γ, Δt, etc. These parameters are the parameter set whose ranges are determined and whose values ​​are searched for in each of the pre-processing and search stages. These steps are now described.

[0060] A pre-processing step for determining ranges and parameter values ​​for α, β, γ is described below, in which the optimization algorithm uses a momentum update scheme such as Equation 6 or 8. However, as will be apparent to one skilled in the art, the same method can be applied to search the space of any number of parameters. However, it should be noted that the space grows exponentially with each additional parameter in the optimization algorithm, and thereby it becomes more difficult to identify a good sequence of parameter value sets, and therefore the inventors recognize that preferred embodiments use an optimization algorithm with a small number of parameters, such as three or four parameters. In the pre-processing stage, the goal is to determine a range of values ​​to search that is likely to lead to good performance of the optimization algorithm for at least some of the parameter values ​​selected from that range.

[0061] As mentioned above, G ij represents the interaction between the binary-valued "spins" in the Ising problem. The proposed method for determining the bounds is to use a graph or matrix G ij This involves performing an eigenvector analysis on the matrix A. The eigenvectors of matrix A are found for some scalar value λ by the equation: Av=λv where λ is called the eigenvalue of A that corresponds to the eigenvector v. Only the eigenvectors change by a scalar coefficient when transformed by a matrix A. Eigenvalues ​​and eigenvectors are well-known concepts in linear algebra and will not be discussed further here.

[0062] The k largest eigenvalues ​​of a given Ising problem graph G are computed, where k is a predefined number. The eigenvectors x corresponding to these largest eigenvalues ​​are mapped to binary-valued states s, the energies for these states are computed according to Equation 1, and the minimum energy for these states is used as the trivial energy threshold.

[0063] To determine the bounds from the trivial energy threshold, a linear stability analysis is performed on the optimization algorithm update equations using the eigenvalues ​​corresponding to the energy thresholds determined from the eigenvector analysis. Linear stability is used to determine the relationship between the α and β parameters for which the steady-state solution to the differential equation is trivial, i.e., for all variables x t corresponds to a steady state where x is zero, or is non-trivial, i.e., a non-zero variable x t Since the goal is to find the state with the lowest energy, this may be applied to determine the region of parameter space whose energy is lower than a trivial energy threshold associated with the eigenvalue, which is the region of interest in optimizing the Ising model.

number

[0064] Once the parameter value ranges have been determined for each parameter of the optimization, values ​​within these ranges are implemented as parameters of the optimization algorithm in the search stage 304. Using a fast optimization algorithm with parameters α, β, and γ, the ranges from the pre-processing stage 302 define a three-dimensional space, and any given point in the three-dimensional space defines a triplet of parameter values ​​that are substituted as parameters of the optimization algorithm. The goal of the search stage is to efficiently search this three-dimensional space, and to evaluate the expected performance of the optimization for each point sampled from the space, so that a subset of "good" parameters can be passed on for a more extensive investigation in the "deep search" stage 306.

[0065] To illustrate one possible way of exploring the parameter space, FIG. 4a shows an example method for searching a 2D parameter space (e.g., where the value for gamma is fixed and the optimization algorithm depends only on the parameters α and β). As shown on the left side of FIG. 4, α ∈ [α min ,α max ] and β ∈ [β min ,β max The range for both parameters, β, is shown as a rectangular region 400 in two-dimensional space. The diagram shows the parameters as β, which new, which is scaled by the eigenvalue λ as described above to constrain the search to the appropriate range. Any point sampled from this region defines a pair of values ​​for α and β within the determined range. In the search phase, a set of parameter value combinations covering the region may be sampled by first sampling the center point 402 of the region, and then dividing the region into a grid of four sub-regions 404 and sampling the center point of each of these sub-regions 404. Each sub-region may be divided into four further sub-regions, and the center point of each further sub-region may be sampled. For each sampled point in the parameter space (i.e., for each sampled pair of parameter values), an optimization algorithm is run on a small number of initial states (e.g., 10-20) over a small number of iterations (e.g., 100-200) to generate a set of update states. A performance metric for the set of update states generated for each sampled point is measured, e.g., the mean, median, or minimum energy of the system for the update states. This allows each sampled point to be labeled with the estimated performance of the optimization for that set of parameter values. This process is repeated until enough parameter combinations have been sampled to get a reasonable idea of ​​performance over the region 400 of parameter space.

[0066] As shown in Fig. 4b, once the parameter value sets have been evaluated, regions may be labeled with an estimated performance based on the results of the performance metric for that region. This may take the form of a heatmap, where the shading of each pixel in the heatmap is based on the performance metric of neighboring points. Fig. 4b shows a simple map where the region is divided into two based on some threshold of the performance metric, with horizontally lined regions 408 where the parameters score higher than the threshold, and diagonally lined regions where the parameter value sets score lower than the threshold. As mentioned above, the deep search stage 306 is applied to a subset of the best parameter value sets identified in the exploration stage 304. The size of this subset may be constrained to a size L by limitations on computational resources or time. The L parameters with the highest performance scores are selected from the region 400 and passed as an ordered sequence, from highest to lowest performance, to be processed in the deep search stage.

[0067] The deep search stage may proceed as described in Fig. 1, where the optimization algorithm 102 is applied with each set of parameter values ​​in the sequence assigned as a parameter of the algorithm. The optimization is performed for a predetermined number of iterations for a predetermined number of initial states. These amounts are determined based on the desired processing budget for the deep search stage, for example, a typical number of iterations, i.e., the number of times states are updated for a given set of initial states and parameter values, may range from 1000 to 10000, and a typical number of initial states may range from 100 to 1000 for each parameter combination.

[0068] In some embodiments, the deep search stage may end when a processing budget is reached. It should be noted that the term "processing budget" as used herein includes limitations on computing resources as well as limitations on time. For example, the deep search stage may end when a certain number of operations have been performed, or may end after a predefined time during which a solution must be provided. In this case, while the complete sequence of parameters passed from the search stage has not been processed, an estimated optimal state is selected from the states already calculated in the deep search stage. In this case, the deep search stage processes each parameter value set of the sequence in a given order, so that the sequence is preferably ordered according to performance as described above. However, in other embodiments without the above-mentioned search stage, the parameter value sets may be randomly generated from within the parameter search space and passed to the deep search stage in a random order.

[0069] It should be noted that Figures 3 and 4 and the corresponding description refer to a specific embodiment of the invention, and other alternatives are possible. In some embodiments, rather than performing a spectral analysis as described for the pre-processing stage 302 of Figure 3, an initial set of boundaries may be first defined to limit the range searched for each parameter, and dynamically updated based on the calculated performance of solutions within the boundaries compared to solutions for parameters outside the current boundaries. In other words, [α min ,α max ], we can set the bound to, say, 10*α maxBy increasing the bounds of the parameters and evaluating solutions for the parameters within the increased bounds, a solution outside the current bounds may be determined to be better than a solution within the current bounds, in which case the bounds are increased. This process may be repeated for many iterations until a suitable region of parameter space is found. An ordered sequence of parameter value sets may be generated randomly by randomly sampling values ​​from within the ranges for each parameter using existing random sampling techniques, for example Monte Carlo random sampling within the region. The region or range for each parameter is then determined, for example, by spectral analysis or dynamic adjustment of a set of bounds. Alternatively, a brute-force grid search may be performed for all parameters within a given range. The grid search performs an exhaustive search over the region of the parameters defined by the range for each parameter to explore each point of a constructed grid within the region of parameter space being searched.

[0070] The Bayesian approach creates a probabilistic model for the objective function and focuses on the most promising parameter values ​​for the evaluation of the objective function. The Bayesian approach performs a more targeted search than the random or grid search approaches because, while the random and grid search approaches are simple and fast to implement, they may ignore results achieved for previously seen parameters and spend a lot of computational resources evaluating poor areas of parameters. In another alternative, the Bayesian method may be used alone or in addition to the parameter search process described in FIG. 4 to determine a sequence of parameter value sets to provide further investigation to the deep search stage. However, the random and grid search techniques are faster than the more targeted search of the Bayesian method, and therefore in a preferred embodiment, the random and / or grid search are used alone or in combination with the Bayesian method.

[0071] Furthermore, the optimization algorithm may take a variety of forms, including non-gradient based optimization algorithms. As mentioned above, derivative-free methods such as simulated annealing and particle swarm optimization may be used. Any parameterized optimization algorithm may be used in conjunction with the methods described herein to search the parameter space and determine the optimal state of the system.

[0072] Furthermore, while the above example describes a method for solving the Ising problem, other combinatorial optimization problems can be solved using the techniques described above, with the optimization algorithm being adapted to the given problem. For different optimization problems, ∇F(x t The β term in (G) needs to be modified accordingly to represent the gradient of the new optimization problem.

[0073] Hardware implementation The above-mentioned method may be implemented on one or more hardware processors. In some embodiments, the optimization method may be provided via a cloud service, where a user may input a given optimization problem via a web interface, which is communicated over a network to a set of one or more hardware processors located remotely from the user, configured to implement the above-mentioned optimization method and generate an estimated solution that is communicated to the user over the network. The processors may include a CPU and / or a GPU. As mentioned above, either or both of the exploration phase and the deep search phase may be performed simultaneously in parallel for multiple sets of parameter values.

[0074] In some embodiments, the methods described above are implemented using an optical computer including optical hardware. The optical computer is configured to implement arithmetic and logical operations using optical components including, but not limited to, lasers, modulators, receivers, lenses, and gratings for processing optical signals, as described below with reference to Figures 5A, 5B, and 6. The optical computer may additionally include analog and / or digital electronic hardware to convert signals between optical, analog, and digital domains. In optical solvers, optical signals are used to represent input variables (e.g., the "spin" of an Ising problem), and optical elements are used to combine the signals to model the interactions between the variables (e.g., the matrix G described above). Optical elements that perform vector-vector multiplication in the optical domain, such as liquid crystal displays or ring resonators, are known in the art. Optical hardware for performing arithmetic operations such as vector multiplication is described in European Patent Application No. 21155439.9, European Patent Application No. 21155447.2, and European Patent Application No. 21155428.2.

[0075] FIG. 5A shows a schematic block diagram of the functions performed by an optical computer to implement the combinatorial optimization method described above. In particular, optical hardware is used to model values ​​of variables of a given combinatorial optimization problem with numerical properties of optical signals, such as phase or amplitude, and one or more optical components are used to apply an optimization algorithm, such as one parameterized by a set of parameter values ​​described above, to the variables to generate an optical representation of an optimal state of the system modeled by the given optimization problem. The optical signals may be converted between the optical and digital domains one or more times during the calculations, as further described below with reference to FIGS. 5A and 5B.

[0076] As described above, the present invention provides a method for determining an approximate solution to a combinatorial optimization problem using a parameterized optimization algorithm by stepping through a list of possible parameter values, applying an optimization algorithm with the parameters of the optimization algorithm set to each parameter value on the list to generate candidate solutions before evaluating the candidate solutions according to an optimality metric, and selecting the one with the highest optimality score as the best solution.

[0077] FIG. 5A shows an implementation of the above-described optimization method in an optical computing system for a given optimization algorithm and a list of possible sets of parameter values ​​to be applied in the optimization algorithm to generate candidate solutions. The spin generator 502 generates optical signals representing a set of values ​​for the variables of the problem, i.e., initial states. The spin generator includes a light source and may include one or more modulators that encode a numerical value in the properties of the light. The optical signals may be phase modulated, for example, such that each variable has an associated signal and the phase of that signal is related to the value of that variable. Alternatively, the optical signals may be amplitude modulated, such that the amplitude of the light wave for each variable is directly related to the value of that variable. In a preferred embodiment, the variable values ​​are modeled using amplitude modulation, since detection of phase modulated signals requires higher hardware complexity. Amplitude and phase modulators are well known in the field of optical computing and will not be described further herein. The spin generator 502 outputs a set of modulated optical signals representing the initial states of the system modeled by the given combinatorial optimization problem. This is received by the optical optimization update component 504, which includes optical hardware for implementing the arithmetic logic of the optimization algorithm update step. Each signal generated by the spin generator may have a different wavelength. In a preferred embodiment, a different initial state is used for each set of parameter values. These different states, e.g., randomly generated states, are passed to the spin generator in the digital domain, which converts them into modulated optical signals that encode the initial values. In other embodiments, the same initial state may be used for multiple parameter sets.

[0078] 5A can be used to generate "spins" or signals that represent a single state at any given time, or alternatively, multiple states can be processed in parallel by an optimization algorithm, assuming the hardware is configured to provide enough signals to represent more than one state at once. The following description outlines a process for updating a single state, but it will be clear to one of ordinary skill in the art how to implement the same techniques for a hardware configuration capable of processing multiple states in parallel.

[0079] As described above for the various update algorithms, the algorithm is parameterized by a set of parameter values. These are provided by the parameter controller 500, which passes the set of parameter values ​​to the digital domain optimization algorithm hardware. Digital-to-optical conversion is performed to transform the digital signals representing the values ​​for the parameters of the algorithm into optical signals that can be processed by the optical hardware of the update component 504. This hardware includes one or more components for implementing arithmetic operations on the optical signals, for example vector multipliers and / or detectors for performing summation of a set of modulated signals. The hardware used to implement the algorithm update depends on the form of the update itself. An exemplary implementation including optical components for implementing an update of the form described above in Equation 6a is shown and described in more detail below with reference to FIG. 5B. The updater 504 performs iterative updates according to a particular algorithm, such as gradient descent or gradient descent with momentum, and the output signal at each iteration is converted to an analog signal by the optical-to-analog converter 506, which passes the analog signal as a feedback signal to the spin generator to provide a signal representing the input state for the next iteration. This is repeated over many iterations, as described above, to allow the solver to converge to an optimal solution. The optical to analog converter 506 may be, for example, an optical receiver that converts the optical signal into an electrical current having a known relationship between the optical property and the electrical current in which the value of the variable is encoded.

[0080] The signal output by the optical analog converter 506 may be periodically sampled and converted to a digital signal by an analog-to-digital converter. The solutions are periodically sampled to assess the solutions against an optimality metric (e.g., by calculating the total energy for each sampled solution) and to determine the best solution. Once the optimization is finished, candidate solutions 510 in the form of digital representations of optimal states generated by the algorithm may be interpreted based on the problem definition and may be used to configure a real-world system. Each set of parameter values ​​in the list of parameter value sets provided to the parameter controller 500 is applied to multiple initial states generated by the spin generator to generate multiple candidate solutions. Once a set of candidate solutions is generated for a given parameter value set, the parameter controller 500 selects the next parameter value set and the optimization algorithm is applied to a new set of initial states generated by the spin generator 502 with the new parameter values.

[0081] For example, if the model is a set of compounds where the optimization problem is the discovery of effective and safe new drugs, the digital output of the system may be a set of numbers representing the positions of particular molecules or atoms in the candidate compounds. Note that the variables processed by the algorithm may not be direct variables of the model, e.g., the algorithm updates may be applied to real values, but the state of the model is binary, with each variable only taking on values ​​of 0 and 1. In this case, the values ​​output by the algorithm are mapped to variable types for a given model before the solution is output. Note that there is a direct mapping from the values ​​processed by the algorithm and the variables of the model, and references herein to values ​​refer to both the values ​​processed by the algorithm and the variables of the system.

[0082] Figure 5B shows an optical computer for implementing an optimization algorithm of the form described above in Equation 6a. As described with reference to Figure 5A, a spin generator 512 generates an optical signal representing a vector of numerical values ​​x that maps to an initial state of the system being modeled. This is processed by an optical optimization algorithm updater 504, which in this example includes three components: an optical momentum component 512, a spin-spin interaction component 514, and an optical annealer 516.

[0083] The optical momentum component is the momentum term γ(x t -x t-1 ), which implements the vector of signals for the current iteration x t from the vector of signals from the previous iteration, x t-1 The subtraction of the two terms is followed by a scalar multiplication. The addition of optical signals can be done by detecting the aggregated signal at a receiver before converting the resulting analog signal to the optical domain. In the case of amplitude modulated light of different wavelengths, the signals are simply added, for example by detecting the signals together at a receiver, and the intensity of the resulting combined signal is equal to the sum of the intensities of the individual signals. The subtraction can be done by adding the positive and negative signals at separate detectors to generate two electrical signals, corresponding to the positive and negative terms of the subtraction, and subtracting the two terms in the electrical domain. The scalar multiplication can be performed using an attenuator or amplifier on the resulting optical signal to multiply the amplitude (or intensity) by the corresponding factor given by the optimization algorithm.

[0084] The spin-spin interaction component is the term in equation 6a that contains the matrix G, i.e., −Δt β H2(G H3(x t)). Different optical hardware can be implemented to evaluate the different possible functions H2, H3. For example, if H2 and H3 are linear functions, these functions can be implemented as scalar multiplication and addition operations on the respective vectors of signals to which they are applied. Non-linear functions are performed by specific optical components or combinations of optical components, such as photoreceivers, that are known to generate or approximate non-linear functions. Such optical components are known to those skilled in the art of optical computing. The operation G H3(x t ) is a matrix-vector multiplication, which may be implemented in a variety of ways. In one arrangement, described below with reference to Figure 6 and in further detail in European Patent Applications Nos. 21155439.9, 21155447.2, and 21155428.2, a wavelength selective switch arrangement may be implemented to perform vector-matrix multiplication, in which each element of an input vector is associated with an optical signal having a distinct wavelength.

[0085] Finally, the optical annealer 516 calculates the remaining term x t -αΔtH1(x t ) is implemented using the optical components described above for addition and scalar-vector multiplication as required.

[0086] The signals generated by the three components of the optical optimization algorithm updater are combined to generate a signal representing the next state of the system, according to Equation 6a. These signals may be combined into a single beam, as indicated by the summation symbol, which may be detected by the optical receiver. The optical receiver performs the conversion from the optical domain to the analog domain. As described above with reference to FIG. 5A, the algorithm is run iteratively, and the output state is passed to the spin generator 502 as a feedback signal after optical-to-analog conversion to be processed once again by another algorithm update step. The spin generator 502 generates an optical signal representing its updated state. The output state is periodically sampled and converted to the digital domain by the converter 508. The parameter controller 500 sets the values ​​of the parameters of the optimization algorithm, which in this example are α, β, and γ. As previously described, the parameter controller selects each set of parameter values ​​from a list of parameter value sets in turn and inputs the parameter values ​​to the respective optical elements implementing the algorithm. The algorithm is run for multiple initial states to generate a set of multiple candidate solutions. Once the algorithm has been run for a sufficient number of initial states, parameter controller 500 selects the next set of parameter values ​​from the list and sets the parameter values ​​for the optical components that implement each term of the update step of the algorithm. The number of initial states may be determined in advance or may be dynamically determined based on available resources. For example, after a certain amount of time to implement the optimization algorithm for a given set of parameter values, parameter controller 500 may be configured to update the algorithm parameters with the values ​​of the next set of values ​​from the list and begin processing the initial states for that set of parameter values.

[0087] It should be noted that the above description of the optical computer system describes its use in the deep search stage, i.e., when a list of parameter values ​​to which the optimization algorithm is applied has already been determined, and the best solution is output from a set of solutions generated by the optimization algorithm parameterized by one of the parameter value sets on the list. However, as described above, the optimization algorithm may be implemented in the search stage to determine a shorter list of parameter value sets suitable for further search in the deep search stage from a wide range of possible parameter values. In this embodiment, the optimization algorithm is implemented initially for a large number of possible parameter values ​​in the parameter space, but with fewer initial states for each parameter value set and for fewer iterations, so that a "solution" indicates the quality of the algorithm for that parameter value set, and the results of this search optimization stage are used to generate a list of parameter value sets to be implemented for a large number of initial states and more iterations of the optimization algorithm. In this embodiment, both hardware configurations shown in Figures 5A and 5B are used in the search stage to generate and sample initial solutions 508 that are evaluated against an optimality metric, such as an energy function. The parameter controller 500 uses the evaluated solutions to narrow down the set of parameter value sets to determine a smaller set of candidate parameter value sets for the optimization algorithm, and the controller sets these values ​​in hardware 504 configured to implement the optimization algorithm for the deeper search in the deep search phase, as already described above. Figure 5B thus illustrates the use of an optimization algorithm over multiple phases, feeding back the results of the search phase to the implementation of parameters in the deep search phase, as indicated by the arrow between solution sampling 508 and the parameter controller 500. However, as described above, the list of parameters may be obtained in other ways, in which case the hardware is configured to implement a fixed set of parameter values, such that the solution output for a given set of parameter values ​​is not used to inform the optimization algorithm of future parameter value sets.This case is shown in FIG. 5A and may be implemented for any particular hardware configuration for implementing a particular instance of the optimization algorithm, such as configuration 504 shown in FIG. 5B.

[0088] It should be noted that the same optical computer may be used to implement both the "deep search" stage and the "search stage" described above, with parameters selected randomly or by some search technique over a predefined parameter space, and the optimization algorithm run for each of a larger set of parameter value set combinations, but each optimization is run for a smaller number of initial states and with fewer iterations than when processing the list of parameter value sets determined in the "deep search" stage described above.

[0089] 6 shows an exemplary wavelength selective switch configuration that may be implemented in an optical computing system for performing vector matrix multiplication, which may be used to implement the spin-spin interaction (also called variable interaction) term of an optimization algorithm. The wavelength selective switch includes an input array 908 of light sources generating a set of signals at different wavelengths, a lenslet array 900, a modified spatial light modulator 902, a dispersive element 814 (e.g., a diffractive element), and an output array of optical signals that are detected at an array of optical receivers, not shown in FIG.

[0090] A spatial light modulator (SLM) includes a set of modulators configured to modulate incident light by different respective factors. Typically, a spatial light modulator includes multiple vertical columns, with a different factor associated with each column, such that the optical signal received at any point along a given column of the SLM is modulated by the same factor. In order to use a spatial light modulator for vector-matrix multiplication in this exemplary solver architecture, the vertical axis of the SLM needs to give different weights, even to the same wavelength, so that the overall function of vector-matrix multiplication is realized. This is because, in the case of matrix multiplication, an input vector needs to be multiplied with each row of matrix Q to generate the full output vector. The SLM 902 is a modified version of a typical SLM (containing one modulation factor per column), where an array of modulators is arranged in an array, and losses are applied by each modulator that reflect the matrix weight applied to the input, i.e., the rows of the modified SLM encode the matrix row weight. Thus, each of the input signals needs to be processed to spread vertically so that they hit each row of the SLM 902, which corresponds to a series of vector-vector multiplications.

[0091] In the current example, the input array 908 is a vector H3(x t ) signal. This vector passes through a lenslet array 900, which has a specific geometry that spreads the signal vertically while collimating the beam in the horizontal direction of SLM 902 corresponding to the wavelength of the signal. This allows many more input signals of different wavelengths to be processed in a single SLM. The lenslet array improves the collimation of the beam in both directions.

[0092] The SLM 902 includes a 2D array of modulators, with each element of the array applying a respective weight of the matrix G to the received input signal, in contrast to a typical SLM. A typical SLM does not require elements of the same "column" but different vertical positions to have different values. Each weighted signal, modulated with a specific wavelength but different weight, i.e., each signal of a column of the SLM 902, needs to bounce off a dispersive element 814 at a different vertical position to ensure that the combination of the WDM signals occurs at the right receiver of the receiver array 904. The dispersive element may be implemented as a diffractive element, such as a diffraction grating or a prism. The output signal may be directed from the element 814 through one or more lenses to direct the signal into a beam at the correct vertical height to be detected using coherent summation at the receiver corresponding to the output vector element represented by that beam.

[0093] The wavelength selective switch configuration shown in Figure 6 is just one example of an optical hardware configuration suitable for implementing the variable interaction terms of the optimization algorithm. Other components such as ring resonators and Mach-Zehnder interferometers may alternatively be used to implement the vector multiplication. Matrix-vector multiplication may be decomposed into a set of vector-vector multiplications, each of which is implemented by one of the components described above.

[0094] It should be understood that the above-described embodiments are disclosed by way of example only.

[0095] More generally, according to one aspect disclosed herein, there is provided a computer-implemented method including: receiving a plurality of candidate parameter value sets of an ordered sequence of candidate parameter value sets in a specified order in the ordered sequence, each of the plurality of candidate parameter value sets including a respective candidate parameter value for at least one parameter of an optimization algorithm, wherein a number of received candidate parameter value sets is based on a processing budget; applying an optimization algorithm to a plurality of initial states of a model representing a system, with at least one parameter of the optimization algorithm set to the respective candidate parameter value to generate a corresponding plurality of candidate update states of the model, for each candidate parameter value set in the sequence; evaluating the plurality of candidate update states according to an optimality metric, wherein the evaluating includes evaluating each of the candidate update states according to an optimality metric such that different states of the candidate update states have different optimality scores to generate a corresponding optimality score for the candidate update state; selecting the candidate update state having the highest corresponding optimality score as an estimated optimal state of the model; and outputting the selected estimated optimal state of the model to one of a user interface, a network interface, computer storage, or a destination application.

[0096] The candidate parameter value sets may be received from user input, computer memory, a network interface, or an external application or device configured to generate parameter value sets.

[0097] Outputting the selected estimated optimal state to a user interface may include providing the state in a graphical user interface implemented on a computer display or by producing an aural output of the state interpretable by a user or other system. The computer storage may be one of non-volatile computer memory, such as a hard disk drive, solid state drive, or flash drive, or temporary computer storage, such as a random access memory. The destination application may be a computer implemented application, such as a modeling application or a computer aided design application. The user or application may issue controls or actions to implement the state in the real world system directly or by controlling a tool operable to create or modify a state in the real world system. The estimated optimal state may also be output to a device external to the system in which the optimization method is performed.

[0098] In an embodiment, the at least one parameter of the optimization algorithm is a plurality of parameters of the optimization algorithm, each of the plurality of candidate parameter value sets comprising a plurality of candidate parameter values, each candidate parameter value of the candidate parameter value set being a respective value for each parameter of the optimization algorithm, and the step of applying the optimization algorithm to the plurality of initial states comprises applying the optimization algorithm with the plurality of parameters of the optimization algorithm set to a respective plurality of candidate parameter values.

[0099] In an embodiment, the received candidate parameter value sets are selected as a subset of the first k parameter value sets in the sorted list of parameter value sets, where k is a number selected based on a processing budget.

[0100] In an embodiment, the sorted list of parameter value sets is sorted according to a performance metric of the optimization algorithm, and for each parameter set in the sorted list, the performance metric measures the expected performance of the optimization algorithm with the parameters of the optimization algorithm set to the respective parameter value set.

[0101] In an embodiment, the optimization algorithm is an iterative optimization algorithm including an update rule that when applied to a state for a current iteration generates a state for a next iteration, and for each set of parameter values ​​in the sequence, said applying the optimization algorithm includes iteratively performing an update by applying the update rule to an initial state over a predefined full depth to obtain a candidate update state, the full depth being the number of iterations over which the update rule is applied.

[0102] In an embodiment, the step of determining the sorted list of parameter value sets includes sampling a plurality of combinations of parameter values ​​from within a predetermined range for each parameter; for each combination, applying a modified optimization algorithm to an exploratory set of initial states of the system to generate a set of exploratory update states; evaluating each of the exploratory update states according to an optimality metric to generate a corresponding optimality score; determining a performance metric including a representative measure of the optimality scores aggregated over the exploratory update states; and ordering the combinations according to the calculated performance metric, wherein the modified optimization algorithm includes iteratively applying the update rule over a partial depth, the partial depth being the number of iterations over which the update rule is applied by the modified optimization algorithm, the partial depth being less than the full depth, and / or the exploratory set of initial states being less than the plurality of initial states.

[0103] In an embodiment, the model includes a matrix and the ranges for each parameter are determined by performing a linear stability analysis on selected eigenvalues ​​of the matrix.

[0104] In an embodiment, the eigenvalues ​​are selected by calculating a predetermined number of the largest eigenvalues ​​and calculating an optimality score for the corresponding eigenvector, where selecting the eigenvalue corresponding to the eigenvector yields the highest optimality score from the calculated optimality scores.

[0105] In an embodiment, the processing budget includes constraints on one or more of processing time, memory consumed, number of processing cycles performed, or processing energy consumption, and the number of candidate parameter value sets received is the number that can be processed within the processing budget constraints.

[0106] In an embodiment, a system is represented by a graph that defines interactions between pairs of the system's variables, and each state of the system is an assignment of values ​​to the system's variables.

[0107] In an embodiment, the optimality score is calculated by evaluating an energy function of the model, where the energy function represents the total energy of the physical system represented by the model.

[0108] In an embodiment, the optimization algorithm is a gradient descent algorithm with momentum.

[0109] In an embodiment, the system represented by the model is one of a computing system, an electronic system, an electrical or electromagnetic system, a mechanical system, a chemical system, or the application of a treatment to a living organism, and the method further includes implementing the estimated optimal state in the system.

[0110] Another aspect disclosed herein provides a method for optimizing a state of a system representable by a matrix G, the method comprising: a. Receiving an input vector x0 representing the state of the system at an initial time step t=0, and an update equation of the form: bx t+1 =x t -Δt [α H1(x t)-β·H2(G·H3(x t ))]-γ(x t -x t-1 ) iteratively updating the prior vector at each successive time step t according to Including, H1, H2, and H3 are linear or nonlinear functions (functions are vectors x t applies independently to each element of x t may use different functions), α is the dissipation rate, γ is a momentum parameter, and β is a parameter that defines the relative contribution of the system energy function to the update.

[0111] According to another aspect of the disclosure, there is provided a computer-implemented method that includes receiving a plurality of candidate parameter value sets in a specified order in an ordered sequence of candidate parameter value sets, each candidate parameter value set including one or more respective candidate parameter values ​​for one or more parameters of an optimization algorithm, each of the candidate parameter values ​​being a respective one value of the one or more parameters, the number of candidate parameter value sets being based on a processing budget; applying the optimization algorithm to a plurality of initial states of a model representing a system, with one or more parameters set to the respective one or more candidate parameter values, to generate, for each respective parameter value set in the sequence, a corresponding plurality of candidate update states of the model; evaluating each of the candidate update states according to an optimality metric to generate an optimality score; selecting the candidate update state corresponding to the highest optimality score as an estimated optimal state of the model; and outputting the selected estimated optimal state of the model to one of a user interface, computer storage, or a destination application.

[0112] In an embodiment, the method may further include steps according to any method described herein.

[0113] According to one aspect disclosed herein, receiving a plurality of candidate parameter value sets in a specified ordered sequence related to one another, each of the plurality of candidate parameter value sets including a respective candidate parameter value for at least one parameter of an optimization algorithm, the number of candidate parameter value sets received being based on a processing budget; For each set of candidate parameter values ​​in the ordered sequence, applying the optimization algorithm to each of a plurality of initial states of the model representing the system, with at least one parameter of the optimization algorithm set to a respective candidate parameter value, to generate a corresponding plurality of candidate updated states of the model; generating corresponding optimality scores for the candidate update states by evaluating each of the candidate update states according to an optimality metric, such that different candidate update states of the candidate update states have different optimality scores; selecting the candidate update state having the highest corresponding optimality score as the putative optimal state of the model; outputting the estimated optimal state of the selected model to one of a user interface, computer storage, or a destination application; A computer-implemented method is provided, comprising:

[0114] The received candidate parameter value sets may be selected as a subset of the first k parameter value sets in the sorted list of parameter value sets, where k is a number selected based on the processing budget.

[0115] The sorted list of parameter value sets may be sorted according to a performance metric of the optimization algorithm, and for each of the parameter value sets in the sorted list, the performance metric measures the expected performance of the optimization algorithm with the parameters of the optimization algorithm set to the respective parameter value set.

[0116] The optimization algorithm may be an iterative optimization algorithm including an update rule that, when applied to a state for a current iteration, generates a state for a next iteration, and for each set of candidate parameter values ​​in the ordering sequence, said applying the optimization algorithm includes obtaining candidate update states by iteratively performing updates by applying the update rule to an initial state over a predefined full depth, the full depth being the number of iterations over which the update rule is applied.

[0117] The step of determining the sorted list of parameter value sets may include sampling a plurality of combinations of parameter values ​​from within a predetermined range for each parameter of the optimization algorithm; For each combination, applying the modified optimization algorithm to each of a plurality of exploratory initial states of the system, with parameters of the modified optimization algorithm set to the combination, to generate a plurality of exploratory updated states; evaluating each of the exploratory update states according to an optimality metric to generate a corresponding optimality score; determining a performance metric that includes a representative measure of optimality scores aggregated across multiple exploratory update states; ordering the combinations according to the calculated performance metric; It may include, The modified optimization algorithm includes iteratively applying the update rule over a sub-depth, where the sub-depth is the number of iterations over which the update rule is applied by the modified optimization algorithm, and where the sub-depth is less than the full depth, and / or the exploratory set of initial states is less than the multiple initial states.

[0118] The model may include a matrix, and the predetermined ranges for each parameter are determined by performing a linear stability analysis on selected eigenvalues ​​of the matrix.

[0119] The eigenvalues ​​may be selected by calculating a predetermined number of the largest eigenvalues ​​and calculating an optimality score for the corresponding eigenvector, where selecting the eigenvalue corresponding to the eigenvector yields the highest optimality score from the calculated optimality scores.

[0120] The processing budget may include constraints on one or more of processing time, memory consumed, number of processing cycles performed, or processing energy consumption, and the number of candidate parameter value sets received is the number that can be processed within the processing budget constraints.

[0121] A system may be representable by a graph that defines interactions between pairs of the system's variables, and each state of the system is an assignment of values ​​to the system's variables.

[0122] The optimality score may be calculated by evaluating an energy function of the model, where the energy function represents the total energy of the physical system represented by the model.

[0123] The optimization algorithm may be a gradient descent algorithm with momentum.

[0124] The system represented by the model may be one of a computing system, an electronic system, an electrical or electromagnetic system, a mechanical system, a chemical system, or the application of a treatment to a living organism, and the method further includes implementing the estimated optimal state in the system.

[0125] Another aspect disclosed herein provides a computer-implemented method for optimizing a state of a system representable by a matrix G, the method comprising: receiving an input vector x0 representing the state of the system at an initial time step t=0 and an update equation of the form: x t+1 =x t -Δt [α H1(x t )-β·H2(G·H3(x t))]-γ(x t -x t-1 ) iteratively updating the vector at each successive time step t according to Including, H1, H2, and H3 are linear or nonlinear functions (functions are vectors x t applies independently to each element of x t may use different functions), α is the dissipation rate, γ is a momentum parameter, and β is a parameter that defines the relative contribution of the system energy function to the update.

[0126] A further aspect disclosed herein provides a computer system including a memory and one or more processors, or optical hardware configured to implement any of the methods disclosed herein.

[0127] A further aspect disclosed herein provides a computer program product for programming a computer system to perform the steps or functionality of any of the methods disclosed herein.

[0128] Other variations or use cases may be apparent to one of ordinary skill in the art given the disclosure herein. The scope of the present disclosure is not limited by the above-described embodiments, but only by the appended claims.

Claims

1. 1. A computer-implemented method, comprising: receiving a plurality of candidate parameter value sets in a specified ordered sequence related to one another, each of the plurality of candidate parameter value sets including a respective candidate parameter value for at least one parameter of an optimization algorithm, the number of the candidate parameter value sets received being based on a processing budget; For each set of candidate parameter values ​​in the ordered sequence: - applying the optimization algorithm to each of a plurality of initial states of a model representing a system, with the at least one parameter of the optimization algorithm set to a respective one of the candidate parameter values, thereby generating a corresponding plurality of candidate updated states of the model; generating corresponding optimality scores for the candidate update states by evaluating each of the candidate update states according to an optimality metric, such that different candidate update states of the candidate update states have different optimality scores; selecting the candidate update state having the highest corresponding optimality score as a putative optimal state of the model; outputting the estimated optimal state of the selected model to one of a user interface, computer storage, or a destination application; A method comprising:

2. 2. The method of claim 1 , wherein the received candidate parameter value sets are selected as a subset of a first k parameter value sets of a sorted list of parameter value sets, where k is a number selected based on the processing budget.

3. 3. The method of claim 2, wherein the sorted list of parameter value sets is sorted according to a performance metric of the optimization algorithm, and for each of the parameter value sets in the sorted list, the performance metric measures the expected performance of the optimization algorithm with the parameters of the optimization algorithm set to the respective parameter value set.

4. 4. The method of claim 1, wherein the optimization algorithm is an iterative optimization algorithm comprising an update rule that, when applied to a state for a current iteration, generates a state for a next iteration, and wherein for each set of candidate parameter values ​​in the ordered sequence, the applying of the optimization algorithm comprises obtaining the candidate update states by iteratively performing an update by applying the update rule to the initial states over a predefined full depth, the full depth being the number of iterations for which the update rule is applied.

5. The step of determining the sorted list of parameter value sets comprises: sampling a plurality of combinations of parameter values ​​from within a predetermined range for each parameter of the optimization algorithm; For each combination, applying the modified optimization algorithm to each of a plurality of exploratory initial states of the system with the parameters of the modified optimization algorithm set to the combination to generate a plurality of exploratory updated states; - evaluating each of said exploratory update states according to said optimality metric to generate a corresponding optimality score; determining a performance metric comprising a representative measure of the optimality scores aggregated across the plurality of exploratory update states; ordering the combinations according to the calculated performance metric; Including, 5. The method of claim 4 when dependent on claim 3, wherein the modified optimization algorithm includes iteratively applying the update rule over a partial depth, the partial depth being the number of iterations over which the update rule is applied by the modified optimization algorithm, the partial depth being less than the full depth, and / or the exploratory set of initial states being less than the plurality of initial states.

6. The method of claim 5 , wherein the model includes a matrix and the ranges for each parameter are determined by performing a linear stability analysis on selected eigenvalues ​​of the matrix.

7. 7. The method of claim 6, wherein the eigenvalues ​​are selected by calculating a predetermined number of the largest eigenvalues ​​and calculating the optimality score for the corresponding eigenvector, and selecting the eigenvalue corresponding to the eigenvector results in the highest optimality score from the calculated optimality scores.

8. 8. The method of claim 1, wherein the processing budget includes constraints on one or more of processing time, memory consumed, number of processing cycles performed, or processing energy consumption, and the number of received candidate parameter value sets is the number that can be processed within the constraints of the processing budget.

9. 9. The method of any one of claims 1 to 8, wherein the system is representable by a graph defining interactions between pairs of variables of the system, each state of the system being an assignment of values ​​to the variables of the system.

10. 10. The method of any one of claims 1 to 9, wherein the optimality score is calculated by evaluating an energy function of the model, the energy function representing the total energy of the physical system represented by the model.

11. The method according to any one of claims 1 to 10, wherein the optimization algorithm is a gradient descent algorithm with momentum.

12. 12. The method of any one of claims 1 to 11, wherein the system represented by the model is one of a computing system, an electronic system, an electrical or electromagnetic system, a mechanical system, a chemical system, or the application of a treatment to a living organism, the method further comprising implementing the estimated optimal state in the system.

13. 1. A computer-implemented method for optimizing a state of a system representable by a matrix G, the method comprising: An input vector x representing the state of the system at an initial time step t=0 0 and an update expression of the form: x t+1 =x t -Δt・[α・H 1 (x t )-β・H 2 (G・H 3 (x t ))]-γ(x t -x t-1 ) iteratively updating the vector at each successive time step t according to Including, H 1 , H 2 , H 3 is a linear or nonlinear function (where the function is a vector x t applies independently to each element of x t may use different functions), α is a dissipation rate, γ is a momentum parameter, and β is a parameter that defines the relative contribution of a system energy function to the update.

14. memory and one or more processors; or Optical hardware configured to implement the method according to any one of claims 1 to 13. A computer system comprising:

15. A computer program for programming a computer system to carry out the steps of any one of claims 1 to 13.