Stochastic algorithms are frequently used to estimate solutions to problems for which computing exact solutions would have high computational complexity. For example, stochastic algorithms may be used to estimate solutions to NP-complete problems such as the bin packing problem, the Boolean satisfiability problem, and the set cover problem. One type of stochastic algorithm that has achieved widespread use is the Monte Carlo algorithm, in which a distribution of outcomes of a process is sampled and one or more statistical properties of the distribution are estimated from the sample. The present disclosure relates generally to Monte Carlo approaches for evaluating combinatorial optimization problems, as discussed below.
According to one aspect of the present disclosure, a computing device is provided, including a processor configured to receive an energy function of a combinatorial optimization problem to which a solution is configured to be estimated over a plurality of timesteps. The processor may be further configured to compute an inverse temperature lower bound for the combinatorial optimization problem. Computing the inverse temperature lower bound may include estimating a maximum change in the energy function between successive timesteps of the plurality of timesteps. The processor may be further configured to compute an inverse temperature upper bound for the combinatorial optimization problem. Computing the inverse temperature upper bound may include estimating a minimum change in the energy function between successive timesteps of the plurality of timesteps. The processor may be further configured to compute the solution to the combinatorial optimization problem at least in part by executing a Markov chain Monte Carlo (MCMC) algorithm over the plurality of timesteps. An inverse temperature of the MCMC algorithm may be set to the inverse temperature lower bound during an initial timestep of the plurality of timesteps. The inverse temperature of the MCMC algorithm may be set to the inverse temperature upper bound during a final timestep of the plurality of timesteps. The processor may be further configured to output the solution.
This Summary is provided to introduce a selection of concepts in a simplified 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 to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.
Combinatorial optimization problems are problems in which a maximum or minimum is computed for a scalar-valued index function of a plurality of discrete variables. In quantum inspired optimization algorithms, the scalar-valued index function is often referred to as an energy function. One common type of combinatorial optimization problem is a polynomial unconstrained binary optimization (PUBO) problem, in which the variables of the energy function have values included in the set {0,1}. Another common type of combinatorial optimization problem is an Ising problem, in which the variables of the energy function have values included in the set {−1,1}. The set of N variables of the combinatorial optimization problem may be indicated as V={X1, . . . , XN}.
The energy function of the combinatorial optimization problem may be expressed as E=ΣjTj, where the terms Tj of the energy function are given by
The terms may each have respective weights ωj ∈ and may be functions of respective subsets of the set of variables V. The number of variables included in a term Tj is referred to as the degree of the term and is indicated as tj.
The following additional definitions related to the combinatorial optimization problem are provided:
Define T (Xi)={Tj|Xi∈Tj} as the set of terms that include the variable Xi.
Define Tj[Xi=ν] as a term generated from Tj by setting Xi to the value ν.
Define T(Xi=ν)={Tj [Xi=ν]Tj∈T(Xi)} as the set of terms generated by setting Xi to the value ν.
Define ET(X
Define ET(X
An example combinatorial optimization problem is provided below. In this example, the energy function E is given by:
E=0.5X1X2+(−7)X1X38X1X2X3
In this example combinatorial optimization problem, V={X1, X2, X3} and the terms of E are 0.5X1X2, (−7)X1X3, and 8X1X2 X3. In addition, T(X2)={0.5X1X2, 8X1X2 X3}. If the example combinatorial optimization problem is an Ising problem, then T(X2=−1)={−0.5X1, −8X1X3} and ET(X
Solutions to combinatorial optimization problems may be estimated via Markov chain Monte Carlo (MCMC) algorithms. In an MCMC algorithm, a plurality of timesteps are performed. During each timestep, the value of a variable of the energy function is flipped, and the change in the value of the energy function ΔE from flipping the value of the variable is computed. The change in the value of the energy function ΔE may be used to determine whether the change to the value of the variable is accepted or reverted.
In one example, when the combinatorial optimization problem is a minimization problem, the flip to the value of the variable may be accepted when ΔE<0. When ΔE>0, the flip to the value of the variable may be accepted with a probability
In this example expression for the acceptance probability, T ∈ is a temperature that controls the extent to which the MCMC algorithm tends to explore higher-energy regions of the energy function E. Thus, when T is large, the sampling process is more similar to a random walk, and when T is small, the sampling process is more similar to a greedy search. The MCMC solver may be configured to reduce the value of T over the course of executing the MCMC algorithm, such that variable value updates that move the value of the energy function away from local minima become less probable later in the execution of the MCMC algorithm.
The inverse temperature parameter
is frequently used instead of T in combinatorial optimization problems to control the behavior of the MCMC algorithm. The value of β typically changes over the course of executing the MCMC algorithm. For different combinatorial optimization problems, different starting points, endpoints, and rates of change in β may allow for rapid convergence to an accurate solution. Thus, the user of an MCMC solver may have to select values of β suitable to a specific combinatorial optimization problem in order to efficiently and accurately obtain a solution to that combinatorial optimization problem.
In existing MCMC solvers, starting inverse temperature values βstart and ending inverse temperature values βend are frequently requested as user inputs. However, simple inspection of the energy function typically provides the user with little useful information regarding how different values of β are likely to affect the performance of the MCMC solver. Accordingly, users of existing MCMC solvers typically obtain the starting inverse temperature values βstart start and ending inverse temperature values βend by sampling multiple pairs of starting and ending values of β. Users run the MCMC solver with the sampled values of βstart and βend for a reduced number of timesteps, then select values of βstart and βend from among the sampled values and run the MCMC solver with those selected values for the full number of timesteps.
The existing approach for selecting values of βstart and βend discussed above may be time-consuming for the user. The above approach may also result in selection of inefficient values of βstart and βend when the user does not sample over sufficiently large ranges of values. In addition, to select values of βstart and βend that allow the Monte Carlo search to be performed efficiently, the MCMC solver may have to perform large amounts of computation in examples in which the number of variables is large or in which the energy function is computationally expensive to evaluate. Manual selection of βstart βend and may therefore be ill-suited to many combinatorial optimization problems.
In order to address the above challenges, a computing device 10 is provided, as shown in the example of
Other components, such as user input devices 16 and/or user output devices, may also be included in the computing device 10. The one or more input devices 16 may, for example, include a keyboard, a mouse, a touchscreen, a microphone, an accelerometer, an optical sensor, and/or other types of input devices. The one or more output devices may include a display device 18 configured to display a graphical user interface (GUI) 60. At the GUI 60, the user may view outputs of computing processes executed at the processor 12. The user may also provide user input to the processor 12 by interacting with the GUI 60 via the one or more input devices 16. One or more other types of output devices, such as a speaker, may additionally or alternatively be included in the computing device 10.
The computing device 10 may be instantiated in a single physical computing device or in a plurality of communicatively coupled physical computing devices. For example, the computing device 10 may be provided as a physical or virtual server computing device located at a data center. In examples in which the computing device 10 is a virtual server computing device, the functionality of the processor 12 and/or the memory 14 may be distributed between a plurality of physical computing devices. The computing device 10 may, in some examples, be instantiated at least in part at one or more client computing devices. The one or more client computing devices may be configured to communicate with the one or more server computing devices over a network.
The processor 12 may be configured to receive an energy function E of a combinatorial optimization problem 20. As discussed above, the energy function E may be expressed as a sum of a plurality of terms Tj that are each products of a corresponding weight ωj and one or more variables Xi. In other examples, the energy function E may include one or more nonlinear terms that depend nonlinearly on one or more of the variables Xi. The processor 12 may be further configured to receive a min/max indicator 22 that indicates whether an estimated minimum or an estimated maximum of the energy function E is configured to be determined when the processor 12 estimates a solution 52 to the combinatorial optimization problem 20.
It will be understood that it is a goal of the processor 12 executing the stochastic algorithms described herein to find an optimal solution, even though it will not always do so. Solutions 52 given by the algorithm are all valid solutions to the combinatorial optimization problem 20, even though they may not be optimal. In other words, the solution 52 is a valid estimation of an optimal solution, even though it may not be an optimal solution.
The processor 12 may be further configured to compute an inverse temperature lower bound βstart start and an inverse temperature upper bound βend for the combinatorial optimization problem 20. As discussed above, the inverse temperature lower bound βstart may be a starting inverse temperature value and the inverse temperature upper bound βend may be an inverse temperature ending value used when the processor 12 executes an MCMC algorithm 50.
The MCMC algorithm 50 may, for example, be a simulated annealing algorithm 50A, a parallel tempering algorithm 50B, a simulated quantum annealing algorithm 50C, or a population annealing algorithm 50D. In some examples, such as when the MCMC algorithm 50 is a parallel tempering algorithm 50B, the processor 12 may be configured to use multiple different values of the inverse temperature β concurrently when executing the MCMC algorithm 50.
As an alternative to the MCMC techniques listed above, the processor 12 may be configured to execute a stochastic algorithm such as tabu search that is at least partially non-Markovian. In such examples, the probabilities of retaining updates to the variables Xi may be path-dependent at some timesteps 54.
Returning to
e
−β
ΔE
≥P
high
e
−β
ΔE
≤P
low
These inequalities may be solved for βstart and βend to obtain:
The above inequalities for βstart and βend may be rewritten as equations for βstart and βend in terms of maximum and minimum changes in the value of the energy function E between successive timesteps 54:
In the equation for βend, the minimum change in the energy function ΔEmin is the minimum change in the value of the energy function when the energy function E is updated to a less optimal value (a higher value in a minimization problem or a lower value in a maximization problem).
In the above equations for βstart and βend, the maximum change in the energy function ΔEmax and the minimum change in the energy function ΔEmin are given as follows:
However, computing the exact values of ΔEmax and ΔEmin is an NP-complete problem. When the combinatorial optimization problem 20 is an Ising problem, the inner maximum in the equation for ΔEmax is given by:
max|ΔET(X
When the combinatorial optimization problem 20 is a PUBO problem, the inner maximum in the equation for ΔEmax is given by:
max|ΔET(X
Since computing max|ET(X
Since the MCMC algorithm 50 is a stochastic algorithm, using approximate values of βstart start and βend still allows for efficient estimation of the solution to the combinatorial optimization problem 20. Thus, the processor 12 may be configured to estimate ΔEmax and DE mjn rather than computing exact values. Computing the inverse temperature lower bound βstart may include estimating the maximum change in the energy function ΔEmax between successive timesteps 54 of the plurality of timesteps 54. In addition, computing the inverse temperature upper bound βend may include estimating the minimum change in the energy function ΔEmin between successive timesteps 54 of the plurality of timesteps 54. The processor 12 may be configured to execute a maximum energy change estimation algorithm 30 to estimate ΔEmax and execute a minimum energy change estimation algorithm 40 to estimate ΔEmin.
Example pseudocode for the maximum energy change estimation algorithm 30 is provided below:
In some examples, when estimating the minimum change in the energy function ΔEmin, the processor 12 may determine that the estimate of the minimum change in the energy function ΔEmin is equal to zero. In such examples, in response to determining the estimate of the minimum change in the energy function ΔEmin is equal to zero, the processor 12 may be configured to set the estimate of the minimum change in the energy function ΔEmin to a predefined positive number E. For example, the predefined positive number E may be e−10 or some other small positive value. Thus, the processor 12 may be configured to avoid a division by zero when computing βend using ΔEmin.
Example pseudocode for the minimum energy change estimation algorithm 40 when the combinatorial optimization problem is an Ising problem is provided below:
Similarly to when the combinatorial optimization problem 20 is an Ising problem, the processor 12 may also be configured to set the minimum change in the energy function ΔEmin to a predefined positive number ε when the processor 12 determines that the minimum change in the energy function ΔEmin is equal to zero. Setting the minimum change in the energy function ΔEmin to the predefined positive number ε allows the processor 12 to avoid a division by zero when computing βend, as discussed above.
Example pseudocode with which the processor 12 may be configured to estimate the minimum change in the energy function ΔEmin is provided below:
The minimum energy change estimation algorithm 40 may differ depending on whether all terms of the energy function E have the same sign or whether the energy function E includes a plurality of terms with differing signs. In examples in which all the terms of the energy function E have the same sign, the processor 12 may be configured to estimate the one-variable minimum change in the energy function ΔEmin,1var at least in part by computing a minimum of respective absolute values of weights of terms |ωT
In examples in which the energy function E includes a plurality of terms that have differing signs, the processor 12 may be configured to estimate the one-variable minimum change in the energy function ΔEmin,1var at least in part by determining a plurality of sets of positive terms {Tj,+} and a plurality of sets of negative terms {Tj,−} that include the variable Xi for which the one-variable minimum change in the energy function ΔEmin,1var is computed. The processor 12 may be further configured to compute corresponding sums of absolute values of respective weights Σ|ωT
Example pseudocode with which the processor 12 may be configured to estimate the one-variable minimum change in the energy function ΔEmin,1var is provided below:
As discussed above, subsequently to computing the inverse temperature lower bound βstart and the inverse temperature upper bound βend, the processor 12 may be further configured to compute the solution 52 to the combinatorial optimization problem 20 at least in part by executing the MCMC algorithm 50 over the plurality of timesteps 54. The inverse temperature β may be equal to the inverse temperature lower bound βstart during the initial timestep 54A and equal to the inverse temperature upper bound βend during the final timestep 54B. The processor 12 may be further configured to output the solution 52 to the combinatorial optimization problem 20. For example, the processor 12 may be configured to output the solution 52 for display at the GUI 60. Additionally or alternatively, the solution 52 may be output to one or more other computing processes.
At step 104, the method 100 may further include computing an inverse temperature lower bound for the combinatorial optimization problem. Computing the inverse temperature lower bound at step 104 may include, at step 106, estimating a maximum change in the energy function between successive timesteps of the plurality of timesteps. The inverse temperature lower bound may then be computed from the estimated maximum change in the energy function and from a maximum acceptance probability for transitions to less-optimal values of the energy function.
At step 108, the method 100 may further include computing an inverse temperature upper bound for the combinatorial optimization problem. Computing the inverse temperature upper bound at step 108 may include, at step 110, estimating a minimum change in the energy function between successive timesteps of the plurality of timesteps. The minimum change in the energy function is a minimum change that may occur when the value of the energy function is updated to a less-optimal value. The inverse temperature upper bound may be computed from the estimated minimum change in the energy function and from a minimum acceptance probability for transitions to less-optimal values of the energy function.
At step 112, the method 100 may further include computing the solution to the combinatorial optimization problem at least in part by executing an MCMC algorithm over the plurality of timesteps. For example, the MCMC algorithm may be a simulated annealing algorithm, a parallel tempering algorithm, a simulated quantum annealing algorithm, or a population annealing algorithm. When the MCMC algorithm is executed, an inverse temperature of the MCMC algorithm may be set to the inverse temperature lower bound during an initial timestep of the plurality of timesteps. In addition, the inverse temperature of the MCMC algorithm may be set to the inverse temperature upper bound during a final timestep of the plurality of timesteps. Over the course of executing the MCMC algorithm, the inverse temperature may increase from the inverse temperature lower bound to the inverse temperature upper bound according to a linear function or some other function.
At step 114, the method 100 may further include outputting the solution to the combinatorial optimization problem. In some examples, the solution may be output for display at the GUI. Additionally or alternatively, the solution may be output to one or more other computing processes for further processing.
Step 110B may include step 110C in examples in which all the terms of the energy function have the same sign and may include step 110D in examples in which the energy function includes a plurality of terms that have differing signs. At step 110C, step 110B may include estimating the one-variable minimum change in the energy function at least in part by computing a minimum of respective absolute values of weights of terms that include the variable and have a same sign. At step 110D, step 110B may instead include estimating the one-variable minimum change in the energy function at least in part by computing a minimum of differences between sums of absolute values of respective weights of sets of positive terms that include the variable and sets of negative terms that include the variable.
Using the devices and methods discussed above, the inverse temperature values used when solving a combinatorial optimization problem may be computed programmatically without the user having to manually search for suitable values of an inverse temperature lower bound and an inverse temperature upper bound. Thus, the devices and methods discussed above may save the user time when initializing an MCMC solver to estimate a solution to the combinatorial optimization problem. In addition, the devices and methods discussed above may allow the MCMC solver to use values of the inverse temperature lower bound and the inverse temperature upper bound that result in efficient convergence to the solution. Computing the inverse temperature lower bound and the inverse temperature upper bound as discussed above may allow the MCMC solver to quickly and consistently reach values of the solution that accurately approximate the global minimum or maximum of the energy function.
In some embodiments, the methods and processes described herein may be tied to a computing system of one or more computing devices. In particular, such methods and processes may be implemented as a computer-application program or service, an application-programming interface (API), a library, and/or other computer-program product.
Computing system 200 includes a logic processor 202 volatile memory 204, and a non-volatile storage device 206. Computing system 200 may optionally include a display subsystem 208, input subsystem 210, communication subsystem 212, and/or other components not shown in
Logic processor 202 includes one or more physical devices configured to execute instructions. For example, the logic processor may be configured to execute instructions that are part of one or more applications, programs, routines, libraries, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform a task, implement a data type, transform the state of one or more components, achieve a technical effect, or otherwise arrive at a desired result.
The logic processor may include one or more physical processors (hardware) configured to execute software instructions. Additionally or alternatively, the logic processor may include one or more hardware logic circuits or firmware devices configured to execute hardware-implemented logic or firmware instructions. Processors of the logic processor 202 may be single-core or multi-core, and the instructions executed thereon may be configured for sequential, parallel, and/or distributed processing. Individual components of the logic processor optionally may be distributed among two or more separate devices, which may be remotely located and/or configured for coordinated processing. Aspects of the logic processor may be virtualized and executed by remotely accessible, networked computing devices configured in a cloud-computing configuration. In such a case, these virtualized aspects are run on different physical logic processors of various different machines, it will be understood.
Volatile memory 204 may include physical devices that include random access memory. Volatile memory 204 is typically utilized by logic processor 202 to temporarily store information during processing of software instructions. It will be appreciated that volatile memory 204 typically does not continue to store instructions when power is cut to the volatile memory 204.
Non-volatile storage device 206 includes one or more physical devices configured to hold instructions executable by the logic processors to implement the methods and processes described herein. When such methods and processes are implemented, the state of non-volatile storage device 206 may be transformed—e.g., to hold different data.
Non-volatile storage device 206 may include physical devices that are removable and/or built-in. Non-volatile storage device 206 may include optical memory (e.g., CD, DVD, HD-DVD, Blu-Ray Disc, etc.), semiconductor memory (e.g., ROM, EPROM, EEPROM, FLASH memory, etc.), and/or magnetic memory (e.g., hard-disk drive, floppy-disk drive, tape drive, MRAM, etc.), or other mass storage device technology. Non-volatile storage device 206 may include nonvolatile, dynamic, static, read/write, read-only, sequential-access, location-addressable, file-addressable, and/or content-addressable devices. It will be appreciated that non-volatile storage device 206 is configured to hold instructions even when power is cut to the non-volatile storage device 206.
Aspects of logic processor 202, volatile memory 204, and non-volatile storage device 206 may be integrated together into one or more hardware-logic components. Such hardware-logic components may include field-programmable gate arrays (FPGAs), program- and application-specific integrated circuits (PASIC/ASICs), program- and application-specific standard products (PSSP/ASSPs), system-on-a-chip (SOC), and complex programmable logic devices (CPLDs), for example.
The terms “module,” “program,” and “engine” may be used to describe an aspect of computing system 200 typically implemented in software by a processor to perform a particular function using portions of volatile memory, which function involves transformative processing that specially configures the processor to perform the function. Thus, a module, program, or engine may be instantiated via logic processor 202 executing instructions held by non-volatile storage device 206, using portions of volatile memory 204. It will be understood that different modules, programs, and/or engines may be instantiated from the same application, service, code block, object, library, routine, API, function, etc. Likewise, the same module, program, and/or engine may be instantiated by different applications, services, code blocks, objects, routines, APIs, functions, etc. The terms “module,” “program,” and “engine” may encompass individual or groups of executable files, data files, libraries, drivers, scripts, database records, etc.
When included, display subsystem 208 may be used to present a visual representation of data held by non-volatile storage device 206. The visual representation may take the form of a graphical user interface (GUI). As the herein described methods and processes change the data held by the non-volatile storage device, and thus transform the state of the non-volatile storage device, the state of display subsystem 208 may likewise be transformed to visually represent changes in the underlying data. Display subsystem 208 may include one or more display devices utilizing virtually any type of technology. Such display devices may be combined with logic processor 202, volatile memory 204, and/or non-volatile storage device 206 in a shared enclosure, or such display devices may be peripheral display devices.
When included, input subsystem 210 may comprise or interface with one or more user-input devices such as a keyboard, mouse, touch screen, or game controller. In some embodiments, the input subsystem may comprise or interface with selected natural user input (NUI) componentry. Such componentry may be integrated or peripheral, and the transduction and/or processing of input actions may be handled on- or off-board. Example NUI componentry may include a microphone for speech and/or voice recognition; an infrared, color, stereoscopic, and/or depth camera for machine vision and/or gesture recognition; a head tracker, eye tracker, accelerometer, and/or gyroscope for motion detection and/or intent recognition; as well as electric-field sensing componentry for assessing brain activity; and/or any other suitable sensor.
When included, communication subsystem 212 may be configured to communicatively couple various computing devices described herein with each other, and with other devices. Communication subsystem 212 may include wired and/or wireless communication devices compatible with one or more different communication protocols. As non-limiting examples, the communication subsystem may be configured for communication via a wireless telephone network, or a wired or wireless local- or wide-area network, such as a HDMI over Wi-Fi connection. In some embodiments, the communication subsystem may allow computing system 200 to send and/or receive messages to and/or from other devices via a network such as the Internet.
The following paragraphs discuss several aspects of the present disclosure. According to one aspect of the present disclosure, a computing device is provided, including a processor configured to receive an energy function of a combinatorial optimization problem to which a solution is configured to be estimated over a plurality of timesteps. The processor may be further configured to compute an inverse temperature lower bound for the combinatorial optimization problem. Computing the inverse temperature lower bound may include estimating a maximum change in the energy function between successive timesteps of the plurality of timesteps. The processor may be further configured to compute an inverse temperature upper bound for the combinatorial optimization problem. Computing the inverse temperature upper bound may include estimating a minimum change in the energy function between successive timesteps of the plurality of timesteps. The processor may be further configured to compute the solution to the combinatorial optimization problem at least in part by executing a Markov chain Monte Carlo (MCMC) algorithm over the plurality of timesteps. An inverse temperature of the MCMC algorithm may be set to the inverse temperature lower bound during an initial timestep of the plurality of timesteps. The inverse temperature of the MCMC algorithm may be set to the inverse temperature upper bound during a final timestep of the plurality of timesteps. The processor may be further configured to output the solution.
According to this aspect, the processor may be configured to estimate the maximum change in the energy function at least in part by computing, over a plurality of variables of the energy function, a maximum of a sum of absolute values of respective weights of one or more terms that each have a shared variable of the plurality of variables.
According to this aspect, the combinatorial optimization problem may be an Ising problem.
According to this aspect, the processor may be configured to estimate the minimum change in the energy function at least in part by computing, over a plurality of variables of the energy function, a minimum of a difference between corresponding highest and second-highest absolute values of respective weights of a plurality of terms that each have a shared variable of the plurality of variables.
According to this aspect, the combinatorial optimization problem may be a polynomial unconstrained binary optimization (PUBO) problem.
According to this aspect, the processor may be configured to estimate the minimum change in the energy function at least in part by estimating, over a plurality of variables of the energy function, a minimum of a one-variable minimum change in the energy function when a value of a variable of the plurality of variables is changed while respective values of each other variable of the plurality of variables are held constant.
According to this aspect, the processor may be configured to estimate the one-variable minimum change in the energy function at least in part by computing a minimum of respective absolute values of weights of terms that include the variable and have a same sign.
According to this aspect, the processor may be configured to estimate the one-variable minimum change in the energy function at least in part by computing a minimum of differences between sums of absolute values of respective weights of sets of positive terms that include the variable and sets of negative terms that include the variable.
According to this aspect, the MCMC algorithm may be a simulated annealing algorithm, a parallel tempering algorithm, a simulated quantum annealing algorithm, or a population annealing algorithm.
According to this aspect, the processor may be configured to estimate the minimum change in the energy function at least in part by determining that the estimate of the minimum change in the energy function is equal to zero. Estimating the minimum change in the energy function may further include, in response to determining the estimate of the minimum change in the energy function is equal to zero, setting the estimate of the minimum change in the energy function to a predefined positive number.
According to this aspect, the processor may be configured to receive the energy function via a graphical user interface (GUI) without receiving the inverse temperature lower bound or the inverse temperature upper bound at the GUI. The processor may be further configured to output the solution to the GUI.
According to another aspect of the present disclosure, a method for use with a computing device is provided. The method may include receiving an energy function of a combinatorial optimization problem to which a solution is configured to be estimated over a plurality of timesteps. The method may further include computing an inverse temperature lower bound for the combinatorial optimization problem. Computing the inverse temperature lower bound may include estimating a maximum change in the energy function between successive timesteps of the plurality of timesteps. The method may further include computing an inverse temperature upper bound for the combinatorial optimization problem. Computing the inverse temperature upper bound may include estimating a minimum change in the energy function between successive timesteps of the plurality of timesteps. The method may further include computing the solution to the combinatorial optimization problem at least in part by executing a Markov chain Monte Carlo (MCMC) algorithm over the plurality of timesteps. An inverse temperature of the MCMC algorithm may be set to the inverse temperature lower bound during an initial timestep of the plurality of timesteps. The inverse temperature of the MCMC algorithm may be set to the inverse temperature upper bound during a final timestep of the plurality of timesteps. The method may further include outputting the solution.
According to this aspect, computing the maximum change in the energy function may include computing, over a plurality of variables of the energy function, a maximum of a sum of absolute values of respective weights of one or more terms that each have a shared variable of the plurality of variables.
According to this aspect, the combinatorial optimization problem may be an Ising problem.
According to this aspect, estimating the minimum change in the energy function may include computing, over a plurality of variables of the energy function, a minimum of a difference between corresponding highest and second-highest absolute values of respective weights of a plurality of terms that each have a shared variable of the plurality of variables.
According to this aspect, the combinatorial optimization problem may be a polynomial unconstrained binary optimization (PUBO) problem.
According to this aspect, estimating the minimum change in the energy function may include estimating, over a plurality of variables of the energy function, a minimum of a one-variable minimum change in the energy function when a value of a variable of the plurality of variables is changed while respective values of each other variable of the plurality of variables are held constant.
According to this aspect, the MCMC algorithm may be a simulated annealing algorithm, a parallel tempering algorithm, a simulated quantum annealing algorithm, or a population annealing algorithm.
According to this aspect, estimating the minimum change in the energy function may include determining that the estimate of the minimum change in the energy function is equal to zero. Estimating the minimum change in the energy function may further include, in response to determining the estimate of the minimum change in the energy function is equal to zero, setting the estimate of the minimum change in the energy function to a predefined positive number.
According to another aspect of the present disclosure, a computing device is provided, including a processor configured to receive an energy function of a combinatorial optimization problem to which a solution is configured to be estimated over a plurality of timesteps. The processor may be further configured to compute an inverse temperature lower bound for the combinatorial optimization problem. Computing the inverse temperature lower bound may include estimating a maximum change in the energy function between successive timesteps of the plurality of timesteps. The maximum change in the energy function may be estimated at least in part by computing, over a plurality of variables of the energy function, a maximum of a sum of absolute values of respective weights of one or more terms that each have a shared variable of the plurality of variables. The processor may be further configured to compute an inverse temperature upper bound for the combinatorial optimization problem. Computing the inverse temperature upper bound may include estimating a minimum change in the energy function between successive timesteps of the plurality of timesteps. The minimum change in the energy function may be estimated at least in part by estimating, over the plurality of variables of the energy function, a minimum of a difference between corresponding highest and second-highest absolute values of respective weights of a plurality of terms that each have a shared variable of the plurality of variables, or a one-variable minimum change in the energy function when a value of a variable of the plurality of variables is changed while respective values of each other variable of the plurality of variables are held constant. The processor may be further configured to compute the solution to the combinatorial optimization problem at least in part by executing a Markov chain Monte Carlo (MCMC) algorithm over the plurality of timesteps. An inverse temperature of the MCMC algorithm may be set to the inverse temperature lower bound during an initial timestep of the plurality of timesteps. The inverse temperature of the MCMC algorithm may be set to the inverse temperature upper bound during a final timestep of the plurality of timesteps. The processor may be further configured to output the solution.
“And/or” as used herein is defined as the inclusive or ∨, as specified by the following truth table:
It will be understood that the configurations and/or approaches described herein are exemplary in nature, and that these specific embodiments or examples are not to be considered in a limiting sense, because numerous variations are possible. The specific routines or methods described herein may represent one or more of any number of processing strategies. As such, various acts illustrated and/or described may be performed in the sequence illustrated and/or described, in other sequences, in parallel, or omitted. Likewise, the order of the above-described processes may be changed.
The subject matter of the present disclosure includes all novel and non-obvious combinations and sub-combinations of the various processes, systems and configurations, and other features, functions, acts, and/or properties disclosed herein, as well as any and all equivalents thereof.