SYSTEM AND METHOD FOR A HYBRID ALGORITHM USING CLUSTER SHRINKAGE - Patent application
By employing a classical processor to cluster and reduce large input problems, and then utilizing a quantum processor to solve these reduced problems, the method effectively addresses the challenge of handling complex inputs in hybrid computing systems.
Patent Information
- Application Number
- JP2024128231
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-06-13
- Filing Date
- 2024-08-02
- Publication Date
- 2025-04-16
- Estimated Expiration
- 2040-01-13
AI Technical Summary
Current hybrid computing systems face challenges in efficiently solving computational problems with large or dense inputs, as they struggle to reduce these inputs to sizes compatible with quantum processors while maintaining effective cluster updates.
The method involves using a classical processor to divide input variables into clusters, contract these clusters to reduce the input size, and then use a quantum processor to solve the reduced problem. This process can be iteratively repeated until a termination condition is met, allowing for the handling of complex problems with large inputs.
This approach enables the efficient reduction of large or dense input problems into smaller, quantum-processor-compatible forms, facilitating the solution of complex computational challenges that would otherwise be infeasible.
Smart Images

Figure 0007663760000007 
Figure 0007663760000008 
Figure 0007663760000009
Abstract
Description
[Technical field]
[0001] Field The present disclosure relates generally to systems and methods for solving computational problems in hybrid computing systems that utilize quantum and classical processors. [Background technology]
[0002] background Quantum Annealing Quantum annealing is a computational method that can be used to find a low-energy state of a system, typically and preferably the ground state of the system. The method relies on the fundamental principle that natural systems tend toward low-energy states because lower energy states are more stable. While classical annealing uses conventional thermal fluctuations to guide the system toward the low-energy state, quantum annealing may use quantum effects, such as quantum tunneling, as a source of delocalization to reach the energy minimum more accurately and / or faster than classical annealing.
[0003] Quantum processors may be designed to perform quantum annealing and / or adiabatic quantum computing, such as: H E ∝A(t)H P +B(t)H D One can construct an evolution Hamiltonian proportional to the sum of a first term proportional to the problem Hamiltonian and a second term proportional to the delocalized Hamiltonian, such that E is the evolution Hamiltonian, H P is the problem Hamiltonian, H D is the delocalized Hamiltonian, where A(t), B(t) are coefficients that can control the evolution rate and are typically in the range [0,1].
[0004] A particular example is provided by the implementation of superconducting qubits.
[0005] Markov Chain Monte Carlo Markov Chain Monte Carlo (MCMC) is a class of computational techniques that includes, for example, simulated annealing, parallel tempering, population annealing, and other techniques. Markov chains can be used, for example, when probability distributions cannot be used. Markov chains can be described as a set of discrete random variables and / or random processes whose states at each time step depend only on the previous state. If the chain is long enough, the aggregation properties of the chain, such as the mean, can match the aggregation properties of the target distribution.
[0006] A Markov chain can be obtained by proposing new points following a Markov proposal process (commonly called an "update operation"). The new point is either accepted or rejected. If the new point is rejected, a new proposal is made, and so on. The accepted new point is one that has a probability of converging to the target distribution. Convergence is guaranteed if the proposal and acceptance criteria satisfy detailed balance and the proposal satisfies the ergodicity requirement. Furthermore, the acceptance of proposals can be done such that the Markov chain is reversible, i.e., the product of transition rates over a closed loop of states in the chain is the same in either direction. A reversible Markov chain can also be said to have detailed balance. Typically, new points are often local to previous points.
[0007] Quadratic unconstrained binary optimization problem Quadratic Unconstrained Binary Optimization (QUBO) problems are traditionally used in computer science, where the variables are true and false states that correspond to 1 and 0 values.
[0008] The QUBO problem is defined using a diagonal matrix Q, which is an N × N upper triangular matrix of actual weights, where x is the function
number
[0009] this is,
number
[0010] In scalar notation, the objective function expressed as a QUBO is:
number
[0011] A quadratic unconstrained binary optimization problem is unconstrained in that there are no constraints on variables other than those represented by Q.
[0012] The above examples of related art and limitations associated therewith are intended to be illustrative and not exhaustive. Other limitations of the related art will become apparent to those of ordinary skill in the art upon reading this specification and studying the drawings. Summary of the Invention [Means for solving the problem]
[0013] overview A method of operation of a hybrid computing system is described, the hybrid computing system having a quantum processor and a classical processor, the method comprising: applying, via the classical processor, an algorithm to a problem having an input with n collective variables; transforming, via the classical processor, the input with n collective variables into a reduced input with k collective variables, where k≦n; and converting, via the quantum processor, a sample S from the reduced input. r and, via a classical processor, sample S rto obtain a set of modified states for the problem. The algorithm applied to the problem with an input having n variables via a classical processor may be a parallel tempering algorithm. The n collective variables may be partitioned into k clusters, and each of the k clusters may be contracted to generate a reduced input having k collective variables. The clusters are then partitioned with respect to a low energy state s or, if possible, with respect to a low energy state S c , and can be expanded to undo the contraction, or if possible, the contraction that was performed, S c The clusters may be expanded in a non-deterministic process according to the correlation or mutual energy observed in and the energy function f or constraints of f on the variables in each cluster. The values of all collective variables in a cluster of state s may be clamped with respect to each other to shrink the clusters. The n collective variables may be partitioned using a low-energy subset of states. The values of the collective variables may be averaged with respect to a low-energy subset of states in each cluster to shrink each of the k clusters. The n collective variables may be partitioned using an unweighted pairwise group method with an arithmetic mean algorithm. Pairwise entropy may be used as a distance measure in the unweighted pairwise group method with an arithmetic mean algorithm. A new state s may be created based on the clustering to shrink each of the k clusters. A heuristic solver may be used to create the new state s. The embedding algorithm may be applied to the problem with the reduced input before obtaining the samples from the quantum processor. The method may be iteratively repeated until a termination condition is met. The termination condition may be to satisfy a measure of quality of the collective variables.
[0014] A hybrid computing system is described, the hybrid computing system including a quantum processor and a classical processor, which includes applying an algorithm to a problem having an input with n collective variables, transforming the input with n collective variables into a reduced input with k collective variables, where k≦n, and receiving samples S from the reduced input from the quantum processor. r and obtaining the sample Sr and augmenting n clusters, n = 1, n = 2, n = 3, n = 4, n = 5, n = 6, n = 7, n = 8, n = 9, n = 10, n = 11, n = 12, n = 13, n = 14, n = 15, n = 16, n = 17, n = 18, n = 19, n = 20, n = 21, n = 22, n = 23, n = 24, n = 25, n = 26, n = 27, n = 28, n = 29, n = 30, n = 31, n = 32, n = 33, n = 40, n = 41, n = 50, n = 51, n = 62, n = 70, n = 82, n = 90, n = 11, n = 15, n = 16, n = 17, n = 18, n = 25, n = 26, n = 34, n = 19, n = 27, n = 35, n = 36, n = 41, n = 51, n = 19, n = 25, n = 26, n = 35, n = 42, n = 19, n = 27, n = 35, n = 28, n = 36, n = 41, n = 51, n = 19, n = 25, n = 35, c The sample S can be non-deterministically shrunk based on the set of r can be extended to undo the contraction, or if possible, the contraction that was done, S c The n collective variables may be expanded in a non-deterministic process according to the correlation or mutual energy observed in and the energy function f or constraints of f on the variables in each cluster. The values of all collective variables in a cluster may be clamped with respect to each other based on their values in state s to shrink the cluster. The n collective variables may be partitioned using a low-energy subset of states. The values of all collective variables may be averaged over a low-energy subset of states in each cluster. The n collective variables may be partitioned into k clusters via an unweighted pair-group method using an arithmetic mean algorithm. Pair-wise entropy may be used as a distance measure in the unweighted pair-group method using an arithmetic mean algorithm. The classical processor receives samples S from the reduced input from the quantum processor. r Prior to obtaining , it may be operable to embed the problem with the reduced input via an embedding algorithm.
[0015] A method of operation of a hybrid computing system is described. The hybrid computing system includes a quantum processor and a classical processor. The method includes generating, via the classical processor, a plurality of variable change proposals for a state s of the problem, formulating, via the classical processor, a quadratic unconstrained binary optimization problem corresponding to an energy change that allows a subset of the plurality of variable change proposals, and solving, via the quantum processor, the quadratic unconstrained binary optimization problem. The problem may be a quadratic unconstrained binary optimization problem or an integer quadratic programming problem. The method may generate the plurality of variable change proposals for the problem for a random state s. The plurality of variable change proposals may be such that no two proposals change the same variable, and no more than two proposals affect a cost function term of the quadratic unconstrained binary optimization problem. The method modifies state s by allowing a subset of the specified plurality of variable change proposals by solving the quadratic unconstrained binary optimization problem, and solving, via the classical processor, the state s until a termination condition is met. n-1 generating a plurality of variable change proposals with respect to , formulating, via a classical processor, a quadratic unconstrained binary optimization problem corresponding to an energy change that allows a subset of the plurality of variable change proposals, solving, via a quantum processor, the quadratic unconstrained binary optimization problem, and solving the quadratic unconstrained binary optimization problem to allow the specified subset of proposals to obtain a state s n-1 The state s n and iteratively repeating the steps of changing the state s to s. The method may further include determining whether a termination condition is met. The termination condition may include a number of iterations and a state s n It may be one of satisfying a quality measure.
[0016] A hybrid computing system is described. The hybrid computing system includes a classical processor and a quantum processor. The classical processor is operable to generate a plurality of variable change proposals for a state s of a problem, formulate a quadratic unconstrained binary optimization problem corresponding to an energy change that allows a subset of the plurality of variable change proposals, and have the quantum processor solve the quadratic unconstrained binary optimization problem. The problem may be one of a quadratic unconstrained binary optimization problem and an integer quadratic programming problem. The state s may be a random state s. The classical processor may be operable to generate the plurality of variable change proposals such that no two proposals change the same variable and no more than two proposals affect a cost function term of the quadratic unconstrained binary optimization problem. The classical processor modifies the state s by allowing a subset of the specified plurality of variable change proposals by solving the quadratic unconstrained binary optimization problem, and maintains the state s until a termination condition is met. n-1 generating a plurality of variable change proposals with respect to , formulating a quadratic unconstrained binary optimization problem corresponding to an energy change that allows a subset of the plurality of variable change proposals, having a quantum processor solve the quadratic unconstrained binary optimization problem, and solving the quadratic unconstrained binary optimization problem to allow the specified subset of proposals to obtain a state s n-1 The state s n The classical processor may be further operable to iteratively repeat the process of changing the state s to s. The classical processor may be further operable to determine whether a termination condition is met. The classical processor may be operable to determine whether a termination condition is met. n The processor may be operable to determine whether one of a group of exit conditions is met, including that the first condition satisfies a measure of quality.
[0017] BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING In the drawings, identical reference numbers identify similar elements or acts. The sizes and relative positions of elements in the drawings are not necessarily drawn to scale. For example, the shapes and angles of various elements are not necessarily drawn to scale, and some of these elements may be arbitrarily enlarged and positioned to improve drawing legibility. Furthermore, the particular shapes of the depicted elements are not necessarily intended to convey any information regarding the actual shape of that particular element, but may simply be selected for ease of recognition in the drawings. [Brief description of the drawings]
[0018] [Figure 1] FIG. 1 is a schematic diagram of an example hybrid computing system having quantum and classical processors. [Diagram 2] 1 is a flow diagram of an example method of operation in a hybrid computing system using cluster shrinkage. [Diagram 3] 4 is a flow diagram of an example iterative method of operation in a hybrid computing system using cluster shrinking. [Figure 4] 1 is a flow diagram of an example method of operation in a classical computer using cluster shrinking. [Diagram 5] 1 is a flow diagram of an example iterative method of operation in a classical computer using cluster shrinking. [Figure 6] 1 is a flow diagram of an example method of operation in a hybrid computing system using a portfolio of classical solvers and cluster shrinkage. [Figure 7] 1 is a flow diagram of an example iterative method of operation in a hybrid computing system using a portfolio of classical solvers and cluster shrinkage. [Figure 8] 1 is a flow diagram of an example method of operation on a classical computer using a portfolio of classical solvers and cluster shrinkage. [Figure 9] 1 is a flow diagram of an example iterative method of operation on a classical computer using a portfolio of classical solvers and cluster shrinkage. [Figure 10] 1 is a flow diagram of an example method of operation in a hybrid computing system with multiple constraint-based updates. [Figure 11] 4 is a flow diagram of an example iterative method of operation in a hybrid computing system with multiple constraint-based updates. [Figure 12] 1 is a flow diagram of an example method of operation in a hybrid computing system for computing reductions and their embeddings. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0019] Detailed Description In the following description, certain specific details are set forth to provide a thorough understanding of various disclosed implementations. However, those skilled in the art will recognize that the implementations may be practiced without one or more of these specific details or with other methods, components, materials, etc. In other instances, well-known structures related to computer systems, server computers, and / or communication networks have not been shown or described in detail so as not to unnecessarily obscure the description of the implementations.
[0020] Unless the context requires otherwise, throughout this specification and the claims that follow, the term "comprising" is synonymous with "including" and is inclusive or open-ended (i.e., does not exclude additional, unrecited elements or method acts).
[0021] References throughout this specification to "one implementation" or "an implementation" mean that a particular feature, structure, or characteristic described in connection with that implementation is included in at least one implementation. Thus, the appearances of the phrase "in one implementation" or "in an implementation" in various places throughout this specification do not necessarily all refer to the same implementation. Furthermore, in one or more implementations, the particular features, structures, or characteristics may be combined in any suitable manner.
[0022] Throughout this specification and the appended claims, the terms "sample", "sampling", "sample generator" are intended to have the corresponding meanings in the fields of statistics and electrical engineering. In statistics, a sample is a subset of a population, such as an individual data, data point, object, or a subset of data, data points, or objects. In electrical engineering, sampling refers to the collection of multiple measurements of a physical system, such as an analog signal. Throughout this specification and the appended claims, the terms "average", "averaging", "averaged" are intended to have the corresponding meanings in the fields of statistics and arithmetic, but are not limited thereto. In the field of statistics, average value can refer to, for example, the mean, median, and mode, while in the field of arithmetic, average value can refer to the arithmetic mean.
[0023] The hybrid computing system can derive samples from an analog processor that can be configured to provide samples from a statistical distribution and thus can be a sample generator. One example of a processor that can act as a sample generator is a quantum processor designed to perform quantum annealing, where each sample corresponds to a state of the processor and the population corresponds to a set of states derived from the processor.
[0024] As used in this specification and the appended claims, the singular forms "a," "an," and "the" include the plural forms unless the context clearly dictates otherwise. It should also be noted that the term "or" is generally utilized in its sense including "and / or" unless the context clearly dictates otherwise.
[0025] The headings and abstract of the disclosure provided herein are for convenience only and do not interpret the scope or meaning of the implementations.
[0026] 1 illustrates a hybrid computing system 100 that includes a classical computer 102 coupled to a quantum computer 104. The example classical computer 102 includes a digital processor (CPU) 106 that can be used to perform classical digital processing tasks, and is therefore referred to herein as a classical processor.
[0027] Classical computer 102 may include at least one digital processor (a central processing unit 106 having one or more cores), at least one system memory 108, and at least one system bus 110 coupling various system components including the system memory 108 to the central processing unit 106. The digital processor may be any logical processing unit, such as one or more central processing units ("CPUs"), graphics processing units ("GPUs"), digital signal processors ("DSPs"), application specific integrated circuits ("ASICs"), programmable gate arrays ("FPGAs"), programmable logic controllers (PLCs), and the like.
[0028] The classical computer 102 may include a user I / O subsystem 112. In some implementations, the user I / O subsystem includes one or more user I / O components, such as a display 114, a mouse 116, and / or a keyboard 118.
[0029] The system bus 110 may utilize any known bus structure or architecture, including a memory bus with a memory controller, a peripheral bus, and a local bus. The system memory 108 may include read only memory ("ROM"), static random access memory ("SRAM"), non-volatile memory such as Flash NANO, and volatile memory (not shown), such as random access memory ("RAM").
[0030] The classical computer 102 may also include other non-transitory computer or processor readable storage media or non-volatile memory 120. The non-volatile memory 120 may take a variety of forms, including a hard disk drive for reading from and writing to a hard disk, an optical disk drive for reading from and writing to a removable optical disk, and / or a magnetic disk drive for reading from and writing to a magnetic disk. The optical disk may be a CD-ROM or DVD, while the magnetic disk may be a magnetic floppy disk or diskette. The non-volatile memory 120 may communicate with the digital processor via the system bus 110 and may include a suitable interface or controller 122 coupled to the system bus 110. The non-volatile memory 120 may serve as long-term storage for the processor or computer readable instructions, data structures, or other data (sometimes referred to as program modules) for the classical computer 102.
[0031] Although classical computer 102 is described as utilizing hard disks, optical disks, and / or magnetic disks, those skilled in the art will appreciate that other types of non-volatile computer readable media may be utilized, such as magnetic cassettes, flash memory cards, flash, ROM, smart cards, etc. Those skilled in the art will appreciate that some computer architectures utilize volatile and non-volatile memory. For example, data in volatile memory may be cached on a solid-state disk utilizing non-volatile memory or integrated circuits providing non-volatile memory.
[0032] Various processor or computer readable instructions, data structures, or other data may be stored in the system memory 108. For example, the system memory 108 may store instructions for communicating with remote clients and scheduling the use of resources, including resources on the classical computer 102 and the quantum computer 104. For example, the system memory 108 may store processor or computer readable instructions, data structures, or other data that, when executed by the processor or computer, cause the processor or computer to perform one, more, or all of the operations of methods 200 (FIG. 2), 300 (FIG. 3), 400 (FIG. 4), 500 (FIG. 5), 600 (FIG. 6), 700 (FIG. 7), 800 (FIG. 8), 900 (FIG. 9), 1000 (FIG. 10), 1100 (FIG. 11), and 1200 (FIG. 12).
[0033] In some implementations, system memory 108 may store processor or computer readable computational instructions that perform pre-processing, co-processing, and post-processing on quantum computer 104. System memory 108 may store quantum computer interface instructions in a set that interact with quantum computer 104.
[0034] Quantum computer 104 may include one or more quantum processors, such as quantum processor 124. Quantum computer 104 may be provided in an isolated environment, such as an isolated environment that shields the internal elements of the quantum computer from thermal, magnetic, and other external noise (not shown). Quantum processor 124 includes programmable elements, such as qubits, couplers, and other devices. In accordance with the present disclosure, quantum processors, such as quantum processor 124, are designed to perform quantum annealing and / or adiabatic quantum computing. Examples of quantum processors are described in U.S. Pat. No. 7,533,068.
[0035] A hybrid computing system, such as the hybrid computing system 100, may be used for problems that are difficult or incompatible with mapping onto the topology of a quantum processor. An example of a problem that does not easily map onto a quantum processor, for example due to poor connectivity of the quantum processor, is a problem with a large dense input. Such problems can be solved with a classical processor using algorithms such as parallel tempering or population-based methods (e.g., genetic algorithms). However, some algorithms, such as parallel tempering with energy cluster transfer by Houdayer et al., are powerful when applied to sparse inputs, but are inefficient for dense inputs. Current techniques either do not perform cluster updates or perform one flip at a time, and are therefore inefficient when clusters have a non-trivial relationship to each other, for example in the case of hard inputs.
[0036] Therefore, there is a need for techniques to reduce inputs that are larger and / or denser than the topology of a quantum processor to inputs that are compatible with the quantum processor and present a problem with a hard, global structure. The hybrid algorithms described in this disclosure utilize classical resources (e.g., a GPU) to solve the local structure of the problem and utilize the quantum processor to solve the global, harder structure of the problem.
[0037] An approach to reducing the problem size is to partition the input variables into clusters that can be contracted, resulting in a reduced input problem that can be solved by a quantum processor. The variables are partitioned such that each variable is in exactly one cluster. Each cluster is then contracted to reduce the original input of n variables to an input of k variables, where n can be a very large number and k is the number of clusters in the partition. The value of k can be selected based on the topology of the quantum processor, e.g., k can be the maximum number of variables that fits the topology of the quantum processor. In at least one implementation, the value of k can be equal to n.
[0038] For a given state s and partition of variables into k clusters, we flip or not flip k clusters for s. k There are several ways to do this. Finding a subset to flip is equivalent to an Ising minimization problem on a reduced input of k variables, which can be solved by a quantum processor. The quantum processor then generates a set of samples based on the reduced input, which can be expanded based on s or according to other means, including but not limited to those described herein. This approach allows for powerful multi-cluster moves that solve the global structure of a problem that can be difficult to solve using purely classical methods. For example, classical algorithms that partition variables into clusters, such as linkage tree genetic algorithms, only consider basic updates based on clusters, e.g., flipping one cluster at a time, rather than considering all possible ways that k clusters can be flipped.
[0039] 2 is a flow diagram of an example method 200 of operation of a hybrid computing system using cluster shrinkage. The method 200 is performed via a hybrid computing system, such as hybrid computing system 100, that includes a quantum processor and a non-quantum or classical processor.
[0040] Although method 200 includes operations 201-208, one skilled in the art will appreciate that the number of operations is exemplary and that in some implementations, certain operations may be omitted, additional operations may be added, and / or the order of operations may be changed.
[0041] The method 200 begins at 201, for example, in response to a call from another routine.
[0042] In 202, a classical processor applies an algorithm to a problem having n collective variables. The problem can be received as part of a set of inputs in 201. In at least one implementation, in 202, a parallel tempering algorithm is applied. The algorithm can be applied for a predetermined time, e.g., for a time sufficient to generate a state useful for partitioning n collective variables in 203.
[0043] In 203, the classical processor partitions n collective variables into k clusters such that each variable is strictly within exactly one cluster, where k < n. In at least one implementation, k ≤ n. In some implementations, the n collective variables are partitioned with respect to a subset of the low energy states S derived from the execution of the algorithm in 202. For example, when the parallel tempering algorithm is applied in 202, the states faced by the coldest random walk will have the lowest energy, and these states are selected to partition the n collective variables. In at least one implementation, the unweighted pair group method with arithmetic mean (UPGMA) algorithm is used to partition the n collective variables into k clusters. Pairwise mutual information is an example of a distance metric that can be used with UPGMA, but other pairwise metrics or scores can also be used. Alternatively, the n collective variables are partitioned with respect to a low energy state s of interest.
[0044] At 204, the classical processor contracts each of the k clusters, thus reducing the number of collective variables and generating a reduced input to the problem of 202. In some implementations, k≦n. In some implementations, the classical processor contracts each cluster by clamping all variables in the cluster based on their values for state s, thus obtaining k variables that represent a reduced input to the problem of 202. The states s may be identified at 202 or may be created by the classical processor using a heuristic solver based on the clustering identified at 203. Alternatively, the classical processor contracts each cluster based on a set of states rather than a single state s, for example, by averaging within each cluster, by applying a sampling heuristic to an energy function restricted to the cluster, or by a non-deterministic algorithm that simulates correlations or mutual compromises observed within the set of states.
[0045] The classical processor sends the problem with reduced input to the quantum processor at 205. In some implementations, an embedding algorithm, such as a minor embedding, is applied to the problem with reduced input to generate an embedded problem that can be sent to the quantum processor.
[0046] At 206, the quantum processor receives samples S from the reduced input. r Returns
[0047] At 207, the classical processor r to obtain a set of new states modified for the original inputs of the n population variables. If state s is used to reduce the input in 204, then sample S r is S r In some implementations, the sample S is expanded for s by flipping the clusters represented by the states from r is extended based on the set of low-energy states. In these or other implementations, the extension may further consider statistics (such as mutual information or correlation) and energy functions observed within the low-energy states.
[0048] At 208, the method 200 ends, for example, until called again.
[0049] 3 is a flow diagram of an example iterative method 300 of operation of a hybrid computing system using cluster shrinkage. The method 300 is performed via a hybrid computing system, such as hybrid computing system 100, that includes a quantum processor and a non-quantum or classical processor.
[0050] Although method 300 includes operations 301-310, one skilled in the art will appreciate that the number of operations is exemplary and that in some implementations, certain operations may be omitted, additional operations may be added, and / or the order of operations may be changed.
[0051] The method 300 begins at 301, for example, in response to a call from another routine.
[0052] At 302, the classical processor applies an algorithm to a problem having n population variables, as described above with reference to operation 202 of method 200.
[0053] At 303, the classical processor partitions the n population variables into k clusters, as described above with reference to operation 203 of method 200.
[0054] At 304, the classical processor contracts each of the k clusters as described above with reference to operation 204 of method 200.
[0055] At 305, the classical processor sends the problem with the reduced input to the quantum processor.
[0056] At 306, the quantum processor receives samples S from the reduced input. r Returns
[0057] At 307, the classical processor processes the sample S as described above with reference to operation 207 of method 200. r Extend.
[0058] At 308, the classical processor integrates the modified state into the n collective variables.
[0059] In 309, the classical processor checks whether a termination condition has been met. If so, control passes to 310, otherwise control passes to 302 where the algorithm is reapplied to the problem. The termination condition may be to determine whether a measure of quality of the population variables has been met.
[0060] At 310, the method 300 ends, for example, until called again.
[0061] Classical computers can generally solve problems with larger input sizes than quantum processors. However, for very large inputs, the time to obtain a solution from a classical computer can be prohibitively long. Thus, there is a need to reduce the problem input size for classical computers. The above-described methods can be utilized to operate a classical computing system that includes a classical computer or multiple classical computers. Additionally, a hybrid computing system can utilize the above-described methods using a classical computer.
[0062] An approach to reducing the problem size is to partition the input variables into clusters that can be contracted, resulting in a reduced input problem that can be solved by a quantum processor. The variables are partitioned such that each variable is in exactly one cluster. Each cluster is then contracted, reducing the original input of n variables to an input of k variables, where n can be a very large number and k is the number of clusters in the partition. In at least one implementation, the value of k can be equal to n.
[0063] For a given state s and partition of variables into k clusters, we flip or not flip k clusters for s. k There are several ways to do this. Finding a subset to flip is equivalent to an Ising minimization problem on a reduced input of k variables, which can be solved on a classical processor using a classical solver. The term classical solver or classical algorithm is used in this disclosure and the accompanying claims to denote a solver or algorithm that uses only classical (i.e., non-quantum) computational resources. Examples of classical solvers that can be used are parallel tempering and simulated annealing. The classical processor then generates a set of samples based on the reduced input, and the set of samples can be expanded based on s. In other implementations, the expansion can be based in part on an energy function and / or statistics observed throughout the problem-solving run.
[0064] 4 is a flow diagram of an example method 400 of solving a computational problem using cluster shrinkage. Method 400 is performed via a classical computing system that includes at least one non-quantum, i.e., classical, processor. Alternatively, method 400 can be performed via a hybrid computing system that uses a classical processor, such as hybrid computing system 100. Although method 400 includes operations 401-408, one skilled in the art will appreciate that the number of operations is exemplary and that in some implementations, certain operations may be omitted, additional operations may be added, and / or the order of operations may be changed.
[0065] The method 400 begins at 401, for example, in response to a call from another routine.
[0066] At 402, the classical processor applies an algorithm to a problem having n collective variables. The problem can be received as part of a set of inputs at 401. In at least one implementation, at 402, a parallel tempering algorithm is applied. The algorithm can be applied for a period of time sufficient to generate, over a given time, a state that can be useful, for example, to partition the n collective variables at 403.
[0067] At 403, the classical processor partitions the n collective variables into k clusters such that each variable is strictly within exactly one cluster, where k < n. In at least one implementation, k ≤ n. In some implementations, the n collective variables are partitioned with respect to a subset of the low-energy states S derived from the execution of the algorithm at 402. For example, when the parallel tempering algorithm is applied at 402, the states faced by the coldest random walk will have the lowest energy, and these states are selected to partition the n collective variables. In at least one implementation, the unweighted pair-group method with arithmetic mean (UPGMA) algorithm is used to partition the n collective variables into k clusters. The pairwise mutual information is an example of a distance metric that can be used with UPGMA, but other pairwise symmetric metrics or scores can also be used. Alternatively, the n collective variables are partitioned with respect to a low-energy state s of interest.
[0068] At 404, the classical processor shrinks each of the k clusters, thus reducing the number of collective variables and generating a reduced input to the problem of 402. In at least one implementation, k≦n. In some implementations, the classical processor shrinks each cluster by clamping all variables in the cluster based on their values for state s, thus obtaining k variables that represent a reduced input to the problem of 402. The state s may be identified at 402 or may be created by the classical processor using a heuristic solver based on the clustering identified at 403. Alternatively, the classical processor shrinks each cluster based on a set of states rather than one state s, for example by averaging within each cluster. In these or other implementations, the shrinkage may further consider statistics observed within the low-energy states and an energy function restricted to each cluster.
[0069] At 405, the classical processor applies a classical algorithm to the problem with the reduced input. In some implementations, a parallel tempering algorithm is applied. In at least one implementation, a simulated annealing algorithm is applied.
[0070] At 406, the classical processor generates samples S from the reduced input after applying the classical algorithm at 405. r get.
[0071] At 407, the classical processor r to obtain a set of new states modified for the original input of the n population variables. If state s is used to reduce the input in 404, then sample S r is S r In some implementations, the sample S is expanded for s by flipping the clusters represented by the states from r is extended based on the set of low-energy states. In these or other implementations, the extension may further consider statistics and energy functions observed within the set of low-energy states.
[0072] At 408, the method 400 ends, for example, until called again.
[0073] 5 is a flow diagram of an example iterative method 500 for solving a computational problem using cluster shrinkage. Method 500 is performed via a classical computing system that includes at least one non-quantum, i.e., classical, processor. Alternatively, method 500 can be performed via a hybrid computing system that uses a classical processor, such as hybrid computing system 100. Although method 500 includes operations 501-510, one skilled in the art will appreciate that the number of operations is exemplary and that in some implementations, certain operations may be omitted, additional operations may be added, and / or the order of operations may be changed.
[0074] The method 500 begins at 501, for example, in response to a call from another routine.
[0075] At 502, a classical processor applies an algorithm to a problem having n population variables, as described above with reference to operation 402 of method 400.
[0076] At 503, the classical processor partitions the n population variables into k clusters, as described above with reference to operation 403 of method 400.
[0077] At 404, the classical processor contracts each of the k clusters, as described above with reference to operation 404 of method 400.
[0078] At 505, the classical processor applies a classical algorithm to the problem having a reduced input, as described above with reference to operation 405 of method 400.
[0079] At 506, the classical processor generates samples S from the reduced input after applying the classical algorithm at 505. r get.
[0080] At 507, as described above with reference to operation 407 of method 400, the classical processor expands sample S r thereof.
[0081] At 508, the classical processor integrates the changed state into n population variables.
[0082] At 509, the classical processor checks whether an end condition is met. If the end condition is met, control passes to 510; otherwise, control passes to 502, where the algorithm is applied to the problem again. The end condition can be to determine whether a measure of the quality of the population variables is met.
[0083] At 510, method 500 ends, for example, until it is called again.
[0084] Alternatively, the problem size can be reduced by applying the portfolio of classical solvers to the problem of n variables, obtaining at least one sample or solution from each classical solver within the portfolio of classical solvers, and thus obtaining a reduced input problem of k variables, where k < n. In at least one implementation, k ≤ n. The classical solvers can all be executed in parallel on different classical computers. Next, the reduced input problem can be solved on the classical processor using the classical solver, obtaining a set of samples based on the reduced input. Alternatively, the reduced input can be solved on a quantum processor based on the reduced input. The set of samples can then be expanded to the original problem size.
[0085] FIG. 6 is a flowchart of an example method of operation 600 in a hybrid computing system using a portfolio of classical solvers. Method 600 is executed via a hybrid computing system, such as hybrid computing system 100, that includes a quantum processor and a non - quantum, i.e., classical, processor.
[0086] Although method 600 includes operations 601-609, one skilled in the art will appreciate that the number of operations is exemplary and that in some implementations, certain operations may be omitted, additional operations may be added, and / or the order of operations may be changed.
[0087] The method 600 begins at 601, for example, in response to a call from another routine.
[0088] At 602, a classical processor applies a portfolio of classical algorithms to a problem having n population variables. The problem may be received as part of a set of inputs at 601. In at least one implementation, the portfolio of classical algorithms includes parallel tempering, simulated annealing, and branch-and-bound. The algorithms may be applied for a predetermined time, e.g., for a time sufficient to generate states that may be useful for shrinking clusters of samples at 605.
[0089] At 603, the classical processor obtains at least one sample from each classical algorithm.
[0090] At 604, the classical processor partitions the n population variables into k clusters based on the sample statistics.
[0091] At 605, the classical processor contracts each of the k clusters, thus reducing the number of collective variables and generating a reduced input to the problem at 602. In some implementations, the classical processor contracts each cluster by clamping all variables in the cluster based on their values for state s, thus obtaining k variables that represent a reduced input to the problem at 602. State s may be identified at 602 after executing a portfolio of classical algorithms. Alternatively, the classical processor contracts each cluster based on a set of states rather than one state s, for example by averaging within each cluster. In these or other implementations, the expansion may further consider statistics observed within low-energy states and an energy function restricted to each cluster. In at least one implementation, the value of k may be equal to n.
[0092] At 606, the classical processor sends the problem with reduced input to the quantum processor. In some implementations, an embedding algorithm, such as a minor embedding, is applied to the problem with reduced input to generate an embedded problem that can be sent to the quantum processor.
[0093] At 607, the quantum processor receives samples S from the reduced input. r Returns
[0094] At 608, the classical processor r to obtain a set of new states modified for the original inputs of the n population variables. If state s is used to reduce the input in 605, then sample S r is S r In some implementations, the sample S is expanded for s by flipping the clusters represented by the states from r is extended based on the set of low-energy states. In these or other implementations, the extension may further consider statistics (such as mutual information or correlation) and energy functions observed within the low-energy states.
[0095] At 609, the method 600 ends, for example, until called again.
[0096] 7 is a flow diagram of an example iterative method 700 of operation of a hybrid computing system using a portfolio of classical solvers. The method 700 is performed via a hybrid computing system, such as hybrid computing system 100, that includes quantum and non-quantum, i.e., classical, processors.
[0097] Although method 700 includes operations 701-711, one skilled in the art will appreciate that the number of operations is by way of example only and that in some implementations, certain operations may be omitted, additional operations may be added, and / or the order of operations may be changed.
[0098] The method 700 begins at 701, for example, in response to a call from another routine.
[0099] At 702, a classical processor applies a portfolio of classical algorithms to a problem having n population variables, as described above with reference to operation 602 of method 600.
[0100] At 703, the classical processor obtains at least one sample from each classical algorithm, as described above with reference to operation 603 of method 600.
[0101] At 704, the classical processor partitions the n population variables into k clusters based on the sample statistics.
[0102] At 705, the classical processor contracts each of the k clusters, as described above with reference to operation 605 of method 600.
[0103] At 706, the classical processor sends the problem with the reduced input to the quantum processor, as described above with reference to operation 606 of method 600.
[0104] At 707, the quantum processor receives samples S from the reduced input. r Returns
[0105] At 708, the classical processor performs a step of generating a sample S as described above with reference to operation 608 of method 600. r Extend.
[0106] In 709, the classical processor integrates the modified state into the n population variables of the original problem from operation 702.
[0107] At 710, the classical processor checks whether a termination condition has been met. If the termination condition has been met, control passes to 711, otherwise control passes to 702 where the portfolio of classical algorithms is again applied to the problem. The termination condition may be to determine whether a measure of quality of the population variables has been met.
[0108] At 711, the method 700 ends, for example, until called again.
[0109] 8 is a flow diagram of an example method 800 of solving a computational problem using a portfolio of classical solvers. Method 800 is performed via a classical computing system that includes at least one non-quantum, i.e., classical, processor. Alternatively, method 800 can be performed via a hybrid computing system that uses a classical processor, such as hybrid computing system 100. Although method 800 includes operations 801-809, one of ordinary skill in the art will appreciate that the number of operations is exemplary and that in some implementations, certain operations may be omitted, additional operations may be added, and / or the order of operations may be changed.
[0110] The method 800 begins at 801, for example, in response to a call from another routine.
[0111] At 802, a classical computing system applies a portfolio of classical algorithms to a problem having n population variables. The problem may be received as part of a set of inputs at 801. In at least one implementation, the portfolio of classical algorithms includes parallel tempering, simulated annealing, and branch-and-bound. The algorithms may be applied for a predetermined time, e.g., for a time sufficient to generate states that may be useful for shrinking clusters of samples at 805. The classical solvers may run in parallel on separate classical processors.
[0112] At 803, the classical processor obtains at least one sample from each classical algorithm.
[0113] At 804, the classical processor partitions the n population variables into k clusters based on the sample statistics.
[0114] At 805, the classical processor shrinks each of the k clusters, thus reducing the number of collective variables and generating a reduced input to the problem of 802. In some implementations, the classical processor shrinks each cluster by clamping all variables in the cluster based on their values for state s, thus obtaining k variables that represent a reduced input to the problem of 802. The state s may be identified at 602 after executing a portfolio of classical algorithms. Alternatively, the classical processor shrinks each cluster based on a set of states rather than one state s, for example by averaging within each cluster. In these or other implementations, the shrinkage may further consider statistics observed within low energy states and an energy function restricted to each cluster. In at least one implementation, the value of k may be equal to n.
[0115] At 806, the classical processor applies a classical algorithm to the problem with the reduced input. In some implementations, a parallel tempering algorithm is applied. In at least one implementation, a simulated annealing algorithm is applied.
[0116] At 807, the classical processor generates samples S from the reduced input after applying the classical algorithm at 806. r get.
[0117] At 808, the classical processor r , to obtain a set of new states modified for the original inputs of the n population variables. If state s is used to reduce the input in 805, then sample S r is S r In some implementations, the sample S is expanded for s by flipping the clusters represented by the states from r is extended based on the set of low-energy states. In these or other implementations, the extension may further consider statistics and energy functions observed within the set of low-energy states.
[0118] At 809, the method 800 ends, for example, until called again.
[0119] 9 is a flow diagram of an example iterative method 900 of operations for solving a computational problem using a portfolio of classical solvers. Method 900 is performed via a classical computing system that includes at least one non-quantum, i.e., classical, processor. Alternatively, method 900 can be performed via a hybrid computing system that uses a classical processor, such as hybrid computing system 100.
[0120] Although method 900 includes operations 901-911, one skilled in the art will appreciate that the number of operations is by way of example only and that in some implementations, certain operations may be omitted, additional operations may be added, and / or the order of operations may be changed.
[0121] The method 900 begins at 901, for example, in response to a call from another routine.
[0122] At 902, a classical processor applies a portfolio of classical algorithms to a problem having n population variables, as described above with reference to operation 802 of method 800.
[0123] At 903, the classical processor obtains at least one sample from each classical algorithm, as described above with reference to operation 803 of method 800.
[0124] At 904, the classical processor partitions the n population variables into k clusters based on the sample statistics.
[0125] At 905, the classical processor contracts each of the k clusters, as described above with reference to operation 805 of method 800.
[0126] At 906, the classical processor applies a classical algorithm to the problem having the reduced input, as described above with reference to operation 806 of method 800.
[0127] At 907, the classical processor generates samples S from the reduced input after applying the classical algorithm at 906. r get.
[0128] At 908, the classical processor performs a step of generating a sample S as described above with reference to operation 808 of method 800. r Extend.
[0129] At 909, the classical processor integrates the modified state into the n population variables of the original problem from operation 902.
[0130] At 910, the classical processor checks whether a termination condition has been met. If so, control passes to 911, otherwise control passes to 902 where the classical algorithm is reapplied to the problem. The termination condition may be to determine whether a measure of quality of the population variables has been met.
[0131] At 911, the method 900 ends, for example, until called again.
[0132] Certain classes of problems, such as quadratic constrained binary optimization (QCBO) problems, may not be directly solvable using a quantum processor capable of operating as a quantum annealer. The QCBO problem can be converted to a quadratic unconstrained binary optimization (QUBO) problem by adding a large penalty term, and the quantum processor can then be programmed to provide the solution to the QUBO. Adding the penalty term to the QCBO is necessary to ensure that any potential solution to the QUBO that does not satisfy the constraints will result in one or more of the penalty terms, thus directing any ground state of the QUBO to satisfy the constraints.
[0133] However, the addition of a penalty term to a QUBO problem can make it difficult to solve. In particular, analog devices such as quantum annealers require high precision to operate, and the addition of a penalty term generally increases the degree of precision required to solve the problem. Thus, solving a QUBO with an added penalty term may not be feasible with analog devices alone. Thus, a hybrid method that utilizes an analog processor such as a quantum annealer while adhering to the additional constraints is desirable for solving QCBOs.
[0134] The Monte Carlo algorithm proposes variable flips and allows the variable flips with a probability based on the change in energy. The hybrid Monte Carlo algorithm formulates a QUBO problem where the hybrid Monte Carlo algorithm has an energy corresponding to the energy change as a result of a combination of variable flip proposals. Each variable in the QUBO corresponds to the acceptance or rejection of one variable flip. The QUBO can then be solved via a quantum processor, and the solution generated is the combination of proposed variable flips that is most likely to be accepted. The hybrid Monte Carlo algorithm can be applied to QCBO problems and other problems where the effect of allowing a subset of proposals can be modeled as a QUBO. For example, the hybrid Monte Carlo algorithm can be applied to quadratic problems, mixed integer problems, and integer quadratic programming.
[0135] The hybrid Monte Carlo algorithm first takes a state s as a potential solution to the problem. The state s can be a random state. The hybrid Monte Carlo algorithm then generates multiple proposed changes (e.g., variable flips) to the state s such that the multiple proposals collectively adhere to two constraints. The first constraint is that no two proposals change the same variable. The second constraint is that no more than two proposals affect a term in a cost function, where the cost function (or energy / fitness function) is expressed as the sum of all terms. The hybrid Monte Carlo algorithm can generate k proposals.
[0136] The hybrid Monte Carlo algorithm is based on the following: b The energy of the QUBO is s b We formulate a QUBO for k variables such that it corresponds to the energy of the original problem with state s that results after modifying s by allowing a subset of k proposals, denoted by
[0137] QUBO can then be programmed into a quantum processor, such as a quantum annealer or any other QUBO solver, to provide a solution. The solution is a subset of the proposed changes. Changing the variables according to the solution results in a new state s as a potential solution to the original problem.
[0138] The hybrid Monte Carlo algorithm can iterate by generating a new set of proposed changes based on the changed states from the previous iteration of the algorithm, formulating a QUBO, and solving the QUBO via a quantum processor.
[0139] 10 is a flow diagram of an example method 1000 of operation of a hybrid computing system using multiple constraint-based updates. The method 1000 is performed in and will be described with reference to a hybrid computing system that includes a quantum processor and a classical processor, such as the hybrid computing system 100 of FIG.
[0140] Although method 1000 includes operations 1001-1007, one skilled in the art will appreciate that the number of operations is by way of example only and that in some implementations, certain operations may be omitted, additional operations may be added, and / or the order of operations may be changed.
[0141] The method 1000 begins at 1001, for example, in response to a call from another routine.
[0142] In 1002, the hybrid computing system 100 considers a state s as a solution to the problem. The state s can be a random state or as part of a set of inputs.
[0143] At 1003, the hybrid computing system 100 determines whether it is possible to generate a change proposal for state s that satisfies two constraints: that no two proposals change the same variable, and that no more than two proposals affect a term in the cost function. The first proposal always satisfies the constraints, but the union of the current proposal and a previously generated proposal may not satisfy both constraints. If it is possible to generate such a proposal, control passes to 1004; otherwise, control passes to 1005.
[0144] At 1004, the hybrid computing system 100 generates a change proposal. The proposal may be stored in a memory system for later use. Control passes to 1003, where the hybrid computing system 100 determines whether it is possible to generate another proposal that adheres to the constraints.
[0145] At 1005, the hybrid computing system 100 formulates a QUBO of k variables, where k is the number of variables for a given binary sequence s of length k. b The energy of the QUBO is s b is the number of modification proposals that corresponds to the energy of the original problem with state s that results after modifying s by allowing a subset of k proposals, denoted by
[0146] At 1006, the hybrid computing system 100 causes the QUBO to be solved by the quantum processor 124. The solution from the quantum processor 124 is a subset of the proposed changes. Changing the variables according to the solution results in a new state s as a potential solution to the original problem.
[0147] At 1007, the method 1000 ends, for example, until called again.
[0148] FIG. 11 is a flow diagram of an example iterative method 1100 of operation of a hybrid computing system using multiple constraint-based updates.
[0149] The method 1100 may be performed in and will be described with reference to a hybrid computing system that includes a quantum processor and a classical processor, such as the hybrid computing system 100 of FIG.
[0150] Although method 1100 includes operations 1101-1109, one skilled in the art will appreciate that the number of operations is by way of example only and that in some implementations, certain operations may be omitted, additional operations may be added, and / or the order of operations may be changed.
[0151] The method 1100 begins at 1101, for example, in response to a call from another routine.
[0152] At 1102, the hybrid computing system 100 considers the state s as a solution to the problem, as described above with reference to operation 1002 of the method 1000.
[0153] At 1103, as described above with reference to operation 1003 of method 1100, the hybrid computing system 100 determines a state s that satisfies two constraints. n It is then possible to generate change suggestions for the
[0154] At 1104, the hybrid computing system 100 generates change proposals, as described above with reference to operation 1004 of method 1000.
[0155] At 1105, the hybrid computing system 100 formulates a QUBO, as described above with reference to operation 1005 of method 1000.
[0156] At 1106, the hybrid computing system 100 causes the QUBO to be solved by the quantum processor 124, as described above with reference to operation 1006 of method 1000.
[0157] In 1107, the hybrid computing system 100 n The state s n+1 where sn+1 In operation 1106, the state s is calculated by admitting k subsets represented by the solution of the QUBO. n This is the state that is generated after changing
[0158] In 1108, the hybrid computing system 100 determines whether an exit condition has been met. In at least one implementation, the exit condition is met when state s n+1 In another implementation, the termination condition is the completion of a number of iterations of the method 1100.
[0159] At 1109, the method 1100 ends, for example, until called again.
[0160] Algorithms executed on hybrid computing systems that include quantum and classical processors, such as hybrid computing system 100, can benefit from embedded algorithms that adapt the problem to the hardware of the quantum processor.
[0161] An example algorithm for embedding a problem into the topology of a quantum processor is based on the following embedding criterion: Given a source graph S and a target graph T, e.g., representing the topology of a quantum processor, an embedding of ε is defined as a mapping from the nodes of S to the set of nodes of T such that 1. For each ν ∈ V(S), the induced subgraph T[ε(ν)] is nonempty and connected, 2. For all u, v∈V(S), ε(u)∩ε(v)=φ if and only if u≠v. The set ε(v) is called a chain.
[0162] The second criterion can be relaxed using tear-up and substitution operations as described below.
[0163] For a source node u ∈ S, 1. Set ε(u) :={}. 2. For each node q ∈ T, the penalty function W(u,q):=α |{(v∈S:q∈ε(v))}|Define q - an exponential function in the number of source nodes currently occupying q. 3. For each S-neighborhood v of u, run a node-weighted variant of Dijkstra's algorithm to compute the node distance D(v,q) and parent P(v,q) with W(u,q) being the weight for q. 4. For each node q ∈ T, calculate the route cost estimate R(q):=Σ ν~u Define D(ν,q) where ν~u means that ν is an S-neighborhood of u. 5. Select node q0 that minimizes R(q) and set ε(u):={q o} to update. 6. For each S-neighborhood ν, the path from q0 through its parents to ε(ν):
number
[0164] The above algorithm returns an embedding, called an overlapping embedding, from a problem defined in graph S to an embedding problem defined in graph T. The above algorithm can also be used in conjunction with externally provided overlapping embeddings that are improved heuristically.
[0165] Given an Ising problem, we define the variables [σ1,...,σ n ]
number
[0166] The systems and methods of the present disclosure describe an algorithm that uses computation, embedding and shrinking in a feedback process to find an embeddable shrink that minimizes a penalty function, which may be supplied by a user or by another method or algorithm.
[0167] Figure 12 is a flow diagram of an example method 1200 of operation in a hybrid computing system for computing reductions and their embedding. Method 1200 is performed in, and will be described with reference to, a hybrid computing system including a quantum processor and a classical processor, such as hybrid computing system 100 of Figure 1. Method 1200 may be utilized as part of methods 200 (Figure 2), 300 (Figure 3), 400 (Figure 4), 500 (Figure 5), 600 (Figure 6), 700 (Figure 7), 800 (Figure 8), and 900 (Figure 9) to reduce the input size of a problem and embed it in a quantum processor.
[0168] Although method 1200 includes operations 1201-1211, one skilled in the art will appreciate that the number of operations is by way of example only and that in some implementations, certain operations may be omitted, additional operations may be added, and / or the order of operations may be changed.
[0169] The method 1200 begins at 1201, for example, in response to a call from another routine.
[0170] At 1202, the hybrid computing system 100 receives a reduction penalty generating function X. The reduction penalty generating function X assigns a penalty X(u,v) to each ordered pair (u,v) of S-nodes. The reduction penalty generating function X may be received as part of a set of inputs to the method 1200.
[0171] In 1203, the hybrid computing system 100 generates a new penalty function X based on the reduced penalty generating function X of 1202.
number
[0172] In 1204, the hybrid computing system 100 identifies an overlapping embedding ε from S to T according to the penalty function W′ in 1203. The hybrid computing system 100 may use a heuristic embedding to generate the overlapping embedding.
[0173] In 1205, the hybrid computing system 100 determines whether the overlap embedding ε identified in 1204 contains overlapping sequences. If ε contains overlapping sequences, control passes to 1206; otherwise, control passes to 1211 and the method 1200 ends.
[0174] At 1206, the hybrid computing system 100 computes for each T node q the set of s nodes Y(q)={v:q∈ε(v)}.
[0175] In 1207, the hybrid computing system 100 selects a forest M of edges from the graph G, where G is defined as a graph with edges (u,v) for any q and edge weight 1-X(u,v), where {u,v}⊂Y(q). The hybrid computing system 100 may select the forest M according to several techniques. In one implementation, M may be a singleton with one edge randomly selected with a distribution according to the edge weight. Alternatively, M may be a maximum weight matching of G. In another implementation, M may be a forest constructed by randomly adding edges, with a probability according to each weight. In yet another implementation, the edge weights are further extended by the size of ε(u)∪ε(v), the diameter of the induced graph T[ε(u)∪ε(v)], or more complex measures predicting the performance of the merged chain.
[0176] In 12008, the hybrid computing system 100 identifies a reduced Ising problem. For each (a, b) ∈ M, the hybrid computing system 100 identifies (σ a ≡±σ b) and simplify b. The hybrid computing system 100 may select the codes according to a number of techniques. In some implementations, if a corpus of past samples is available, one sample is taken and the code for each relation is selected based on the sample. Alternatively, if a corpus of past samples is available, the code for each relation is selected from relations found in the corpus, distributed according to the sample energy of each relation: (σ a ≡σ b ) vs (σ a ≡-σ b In yet another implementation, for example if the problem has already been reduced in successive iterations of method 1200, the hybrid computing system 100 collects a corpus of samples from the auxiliary solver and identifies the sign of each relation according to one of the techniques described above. In at least one implementation, the selection of edges and signs is determined based on the maximum magnitude h i and J i,j In these or other implementations, shrinkage may further take into account the statistics observed within the low-energy states and an energy function restricted to each cluster.
[0177] In 12009, the hybrid computing system 100 reduces the penalty function. The hybrid computing system 100 may reduce X according to several techniques. In one implementation, for each (a, b) in M, the hybrid computing system 100 sets X(a, x):=X(a, x)+X(b, x) and X(x, b):=X(x, a)+X(x, b) and normalizes to the interval (0, 1). Alternatively, if X is calculated from a corpus of samples, the hybrid computing system 100 filters the corpus according to the sign selection in 1208 and recalculates X with the reduced corpus. In yet another implementation, the hybrid computing system 100 calculates samples from the reduced Ising problem in 1208 via an auxiliary solver and recalculates X from the resulting samples.
[0178] At 1210, the hybrid computing system 100 reduces the embedding ε. The hybrid computing system 100 may reduce the embedding ε according to several different techniques. In one implementation, the hybrid computing system 100 sets ε(a):=ε(a)∪ε(b) for each (a,b) in M and refines the embedding ε via a heuristic solver towards the reduced Ising problem at 1208. Alternatively, the hybrid computing system 100 determines a new embedding ε via a heuristic solver, and in some cases the new embedding may be an overlapping embedding.
[0179] At 12011, the method 1200 ends, for example, until called again.
[0180] List of Example Embodiments The embodiments listed below provide examples of features and combinations of features of non-limiting example embodiments of the present invention.
[0181] Example Embodiment 1. A method of operation of a hybrid computing system including a quantum processor and a classical processor, comprising: applying an algorithm via a classical processor to a problem having an input with n population variables; Transforming, via a classical processor, an input having n collective variables into a reduced input having k collective variables, where k≦n; Through the quantum processor, samples S from the reduced input r and Through the classical processor, the sample S r to obtain a set of changes to the problem. The method includes:
[0182] Example Embodiment 2. The method of Example Embodiment 1, wherein applying an algorithm via a classical processor to a problem having an input with n population variables includes applying a parallel tempering algorithm via a classical processor to a problem having an input with n population variables.
[0183] Example 3. A method according to example 1 or 2, converting an input having n collective variables into a reduced input having k collective variables, where k≦n, the converting including partitioning the n collective variables into k clusters and shrinking each of the k clusters to generate a reduced input having k collective variables.
[0184] Example embodiment 4. Contracting each of the k clusters to generate a reduced input having k population variables includes contracting each of the k clusters for a low energy state s to generate a reduced input having k population variables, and r To obtain a set of change states for the problem, we can expand r to obtain a set of changes to the problem.
[0185] Example Embodiment 5. The method of Example Embodiment 4, wherein contracting each of the k clusters with respect to the low energy state s includes clamping all population variables in each cluster relative to one another based on their values in state s.
[0186] Example Embodiment 6. The method of Example Embodiment 5, wherein contracting each of the k clusters with respect to the low energy state s includes creating a new state s based on the clustering.
[0187] Example Embodiment 7. The method of Example Embodiment 3, wherein partitioning the n collective variables into k clusters includes partitioning the n collective variables into k clusters using a low-energy subset of states.
[0188] Example Embodiment 8. The method of Example Embodiment 7, wherein shrinking each of the k clusters includes averaging values of all population variables over a low-energy subset of states within each cluster.
[0189] Example Embodiment 9. The method of Example Embodiment 7 or 8, wherein partitioning the n population variables into k clusters using the low-energy subset of states includes partitioning the n population variables into k clusters via an unweighted pairwise group method using an arithmetic mean algorithm.
[0190] Example Embodiment 10. The method of Example Embodiment 9, wherein partitioning n population variables into k clusters via an unweighted pair-group method using an arithmetic mean algorithm includes partitioning n population variables into k clusters via an unweighted pair-group method using an arithmetic mean algorithm using pairwise entropy as the distance measure.
[0191] Example Embodiment 11. The method of Example Embodiment 6, wherein creating a new state s based on the clustering includes using a heuristic solver to create a new state s for each cluster.
[0192] Example embodiment 12. Samples S from a reduced input via a quantum processor r Obtaining the sample S from the reduced input through a quantum processor r 12. The method of any one of embodiment 1 to 11, further comprising applying an embedding algorithm to the problem with reduced input via a classical processor before obtaining
[0193] Example 13: Until a termination condition is met, applying an algorithm to the problem via a classical processor; and Transforming, via a classical processor, an input having n collective variables into a reduced input having k collective variables, where k≦n; Through the quantum processor, samples S from the reduced input r and Through the classical processor, the sample S r to obtain a set of changes to the problem; and Integrating the change state into the problem The method according to any one of embodiments 1 to 12, further comprising iteratively repeating the steps.
[0194] Example Embodiment 14. The method of Example embodiment 13, further comprising determining whether a termination condition has been met.
[0195] Example Embodiment 15. The method of Example embodiment 14, wherein determining whether a termination condition has been met includes determining whether a measure of quality of a population variable has been met.
[0196] Example embodiment 16. A hybrid computing system including a quantum processor and a classical processor, the classical processor comprising: applying an algorithm to a problem having an input with n population variables; Transforming an input having n aggregate variables into a reduced input having k aggregate variables, where k≦n; From the quantum processor, we get a sample S from the reduced input. r and Sample S r to obtain a set of changes to the problem. 1. A hybrid computing system operable to:
[0197] Example embodiment 17. The system of example embodiment 16, wherein the algorithm is a parallel tempering algorithm.
[0198] Example Embodiment 18. The system of Example Embodiment 16 or 17, wherein the classical processor is operable to partition the n population variables into k clusters and to shrink each of the k clusters to generate a reduced input having k variables.
[0199] Example 19. Each of the k clusters is contracted with respect to the low energy state s, and the sample S r is extended with respect to the low energy state s.
[0200] Example Embodiment 20. The system of Example Embodiment 19, wherein all population variables in each cluster are clamped relative to each other based on their values in state s.
[0201] Example Embodiment 21. The system of Example Embodiment 18, wherein the n population variables are partitioned into k clusters using a low-energy subset of states.
[0202] Example Embodiment 22. The system of Example embodiment 21, wherein the values of all collective variables are averaged over a low-energy subset of states within each cluster.
[0203] Example 23. The system of example 21 or 22, wherein the n population variables are partitioned into k clusters via an unweighted pair-group method using an arithmetic mean algorithm.
[0204] Example Embodiment 24. The system of Example embodiment 23, wherein the unweighted pairwise group method using an arithmetic mean algorithm uses pairwise entropy as the distance measure.
[0205] Example Embodiment 25. The system of example embodiment 20, wherein the new state s is created based on clustering.
[0206] Example Embodiment 26. The system of Example Embodiment 25, wherein a heuristic solver is used to create a new state s for each cluster.
[0207] Example embodiment 27. The classical processor receives samples S from the reduced input from the quantum processor. r The system of any one of embodiments 16 to 26, wherein the system is operable to embed the problem with a reduced input via an embedding algorithm prior to obtaining
[0208] Example Embodiment 28. A method of operation of a hybrid computing system including a quantum processor and a classical processor, comprising: generating, via a classical processor, a number of variable change proposals for a problem state s; formulating, via a classical processor, a quadratic unconstrained binary optimization problem corresponding to energy changes that allows a subset of multiple variable change proposals; Solving quadratic unconstrained binary optimization problems via a quantum processor The method includes:
[0209] Example Embodiment 29. The method of Example embodiment 28, wherein generating a plurality of variable change proposals for the problem includes generating a plurality of variable change proposals for the problem comprising one of a quadratically constrained binary optimization problem and an integer quadratic programming problem.
[0210] Example Embodiment 30. The method of example embodiment 28 or 29, wherein generating a plurality of variable change proposals for state s includes generating a plurality of variable change proposals for the problem for a random state s.
[0211] Example embodiment 31. The method of any one of examples 28-30, wherein generating, via the classical processor, a plurality of variable change proposals for state s includes generating a plurality of variable change proposals such that no two proposals change the same variable and no more than two proposals affect a cost function term of the quadratic unconstrained binary optimization problem.
[0212] Example 32. Modify state s by accepting a subset of a specified set of variable change proposals by solving a quadratic unconstrained binary optimization problem, until a termination condition is met. Through the classical processor, state s n-1 generating a plurality of variable change proposals for formulating, via a classical processor, a quadratic unconstrained binary optimization problem corresponding to energy changes that allow for a subset of proposed variable changes; solving a quadratic unconstrained binary optimization problem via a quantum processor; By solving a quadratic unconstrained binary optimization problem, we can find the state s by accepting a specified subset of proposals. n-1 The state s n Change to 32. The method of any one of embodiments 28 to 31, further comprising iteratively repeating the steps.
[0213] Example Embodiment 33. The method of Example embodiment 32, further comprising determining whether a termination condition has been met.
[0214] Example 34: Determining whether the termination condition is met is based on the number of iterations and the state s n 34. The method of embodiment 33, comprising determining whether at least one condition from the group of satisfying a quality measure is satisfied.
[0215] Example embodiment 35. A hybrid computing system including a classical processor and a quantum processor, the classical processor comprising: generating a number of variable change proposals for a problem state s; formulating a quadratic unconstrained binary optimization problem corresponding to the energy change that allows a subset of multiple variable change proposals; Solving quadratic unconstrained binary optimization problems on a quantum processor 1. A hybrid computing system operable to:
[0216] Example embodiment 36. The system of example embodiment 35, wherein the problem is at least one of a quadratically constrained binary optimization problem and an integer quadratic programming problem.
[0217] Example embodiment 37. The system of example embodiment 35 or 36, wherein state s is a random state s.
[0218] Example Embodiment 38. The system of any one of Examples 35-37, wherein the classical processor is operable to generate multiple variable change proposals such that no two proposals change the same variable and no more than two proposals affect a cost function term of the quadratic unconstrained binary optimization problem.
[0219] Example embodiment 39. A classical processor modifies state s by accepting a subset of a specified number of variable change proposals by solving a quadratic unconstrained binary optimization problem, until a termination condition is met. Status n-1 generating a plurality of variable change proposals for Formulating a quadratic unconstrained binary optimization problem corresponding to the energy change that allows for a subset of proposed variable changes; having a quantum processor solve a quadratic unconstrained binary optimization problem; By solving a quadratic unconstrained binary optimization problem, we can find the state s by accepting a specified subset of proposals. n-1 The state s n Change to The system of any one of embodiments 35 to 38, further operable to iteratively repeat the steps.
[0220] Example Embodiment 40. The system of Example embodiment 39, further comprising a classical processor operable to determine whether a termination condition is met.
[0221] Example 41. The classical processor calculates the number of iterations passed and the state s n The system of example embodiment 40, wherein the system is operable to determine whether one of a group of termination conditions is met, the termination conditions including satisfying a quality measure.
[0222] The above methods, processes, or techniques may be implemented by a series of processor-readable instructions stored on one or more non-transitory processor-readable media. Some examples of the above methods, processes, or techniques, methods, are performed in part by a dedicated device, such as an adiabatic quantum computer or quantum annealer, or a system that programs or otherwise controls the operation of an adiabatic quantum computer or quantum annealer, such as a computer including at least one digital processor. Those skilled in the art will appreciate that the above methods, processes, or techniques may include various operations, and that in alternative examples, certain operations may be omitted and / or additional operations may be added. Those skilled in the art will appreciate that the depicted order of operations is for illustrative purposes only and may be altered in alternative examples. Some of the operations or computations of the above methods, processes, or techniques are performed iteratively. Some operations of the above methods, processes, or techniques may be performed during each iteration, after multiple iterations, or after all iterations.
[0223] The above description of illustrated implementations, including those described in the Abstract, is not intended to be exhaustive or to limit the implementations to the precise form disclosed. While specific implementations and examples are described herein for illustrative purposes, those skilled in the art will recognize that various equivalent modifications may be made without departing from the spirit and scope of the invention. The teachings provided herein of various implementations may also be applied to other methods of quantum computing, not necessarily the example methods of quantum computing generally described above.
[0224] The various implementations described above can be combined to provide further implementations. All commonly assigned U.S. patent application publications, U.S. patent applications, foreign patents, and foreign patent applications referenced herein and / or listed in the Application Data Sheets are hereby incorporated by reference in their entirety, including, but not limited to, U.S. Patent No. 7,533,068.
[0225] These and other variations to the implementations can be made in light of the above detailed description. In general, in the following claims, the terms used should not be construed as limiting the claims to the specific implementations disclosed in the specification and claims, but should be construed to embrace all possible implementations along with the full range of equivalents to which such claims are entitled. Thus, the claims are not limited by this disclosure.
Claims
1. 1. A method of operation of a hybrid computing system including a quantum processor and a classical processor, comprising: generating, via said classical processor, a plurality of variable change proposals for a problem state s, where no two proposals change the same variable, and no more than two proposals affect a cost function term of the quadratic unconstrained binary optimization problem; formulating, via said classical processor, a quadratic unconstrained binary optimization problem corresponding to an energy change that allows for a subset of said plurality of variable change proposals; solving said quadratic unconstrained binary optimization problem via said quantum processor; The method includes:
2. The method of claim 1 , wherein generating a plurality of variable change proposals for the problem comprises generating a plurality of variable change proposals for the problem comprising one of a quadratically constrained binary optimization problem and an integer quadratic programming problem.
3. The method of claim 1 or 2, wherein generating a plurality of variable change proposals for state s comprises generating a plurality of variable change proposals for the problem for a random state s.
4. modifying the state s by accepting the subset of the specified plurality of variable change proposals by solving the quadratic unconstrained binary optimization problem, until a termination condition is met; Through the classical processor, state s n-1 generating a plurality of variable change proposals for formulating, via said classical processor, a quadratic unconstrained binary optimization problem corresponding to said energy changes that allows for a subset of said variable change proposals; solving the quadratic unconstrained binary optimization problem via the quantum processor; By solving the quadratic unconstrained binary optimization problem, the state s is optimized by accepting the subset of the proposals specified. n-1 Let state s n Change to The method of claim 1 , further comprising iteratively repeating:
5. The method of claim 4 , further comprising determining whether an exit condition has been met.
6. Determining whether the termination condition is met includes determining the number of iterations and the state s n The method of claim 5 , further comprising determining whether at least one condition from the group of: satisfying a measure of quality is satisfied.
7. 1. A hybrid computing system including a classical processor and a quantum processor, the classical processor comprising: generating a plurality of variable change proposals for a problem state s, where no two proposals change the same variable, and no more than two proposals affect a cost function term of a quadratic unconstrained binary optimization problem; formulating a quadratic unconstrained binary optimization problem corresponding to an energy change that allows for a subset of the plurality of variable change proposals; causing said quantum processor to solve said quadratic unconstrained binary optimization problem; 1. A hybrid computing system operable to:
8. The system of claim 7 , wherein the problem is at least one of a quadratically constrained binary optimization problem and an integer quadratic programming problem.
9. The system according to claim 7 or 8, wherein the state s is a random state s.
10. The classical processor modifies the state s by accepting the subset of the specified plurality of variable change proposals by solving the quadratic unconstrained binary optimization problem, until a termination condition is met. State S n-1 generating a plurality of variable change proposals for formulating a quadratic unconstrained binary optimization problem corresponding to the energy changes that allows for the subset of the variable change proposals; causing said quantum processor to solve said quadratic unconstrained binary optimization problem; The state s is solved by accepting the subset of the proposals specified by solving the quadratic unconstrained binary optimization problem. n-1 Let state s n Change to The system of claim 7 , further operable to iteratively repeat:
11. The system of claim 10 , further comprising the classical processor operable to determine whether the termination condition is satisfied.
12. The classical processor determines the number of iterations passed and the state s n The system of claim 11 , operable to determine whether one of a group of exit conditions is met, including that the first condition satisfies a measure of quality.
Citation Information
Patent Citations
Quantum processor based systems and methods that minimize a continuous variable objective function
US20140344322A1
Information processing device and method
WO2017017807A1