System and method of a hybrid algorithm for obtaining a solution of a discrete quadratic model
A hybrid algorithm using Gibbs sampling and Cross-Boltzmann updates efficiently maps problems with arbitrary variables to a binary quadratic model, enabling quantum processors to solve complex problems with reduced classical processor overhead.
Patent Information
- Application Number
- JP2022537040
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-12-20
- Filing Date
- 2020-12-14
- Publication Date
- 2025-07-02
- Estimated Expiration
- 2040-12-14
AI Technical Summary
Existing methods struggle to efficiently solve problems with arbitrary variables using quantum computers due to inefficiencies in mapping these problems to quadratic unconstrained binary optimization (QUBO) or Ising Hamiltonian problems, leading to increased computational overhead on classical processors.
A hybrid algorithm using Gibbs sampling and Cross-Boltzmann updates is employed to efficiently map problems with arbitrary variables to a binary quadratic model, allowing solutions to be obtained using a quantum processor.
This approach enhances computational efficiency by enabling the direct utilization of quantum processors for solving complex problems with arbitrary variables, reducing the need for overhead transformations on classical processors.
Smart Images

Figure 0007701926000066 
Figure 0007701926000067 
Figure 0007701926000068
Abstract
Description
Technical Field
[0001] Field This disclosure generally relates to hybrid algorithms for obtaining solutions to discrete quadratic models using Gibbs sampling and Cross-Boltzmann updates.
Background Art
[0002] Background Quantum Processor A quantum processor can take the form of a superconducting quantum processor. A superconducting quantum processor can include a number of superconducting qubits and associated local bias elements. A superconducting quantum processor can also include coupling elements (also known as couplers) that selectively provide communicable couplings between qubits.
[0003] Further details and embodiments of exemplary quantum processors that can be used in conjunction with the present system and devices are described, for example, in U.S. Patent No. 7,533,068, U.S. Patent No. 8,008,942, U.S. Patent No. 8,195,596, U.S. Patent No. 8,190,548, and U.S. Patent No. 8,421,053.
[0004] Quantum Computation A quantum computer is a system that performs operations on data by directly using at least one quantum mechanical phenomenon such as superposition, tunneling, and entanglement. The elements of a quantum computer are qubits. A quantum computer can provide speedup for certain classes of computational problems, such as computational problems that simulate quantum physics.
[0005] Quantum Annealing Quantum annealing is an operation method that can be used to find the low-energy state of a system, typically, preferably, the ground state of the system. The method relies on the basic principle that natural systems tend to move towards lower energy states because the lower the energy state, the more stable they are. Quantum annealing can use quantum effects such as quantum tunneling as a source of delocalization to reach the energy minimum value.
[0006] A quantum processor can be designed to perform quantum annealing and / or adiabatic quantum computing. The evolution Hamiltonian is proportional to the sum of a first term proportional to the problem Hamiltonian and a second term proportional to the delocalization Hamiltonian, and can be constructed as follows. H E ∝A(t)H P +B(t)H D where H E is the evolution Hamiltonian, H P is the problem Hamiltonian, H D is the delocalization Hamiltonian, and A(t), B(t) are coefficients that can control the rate of evolution, typically in the range [0,1].
[0007] In some implementations, a time-varying envelope function can be introduced into the problem Hamiltonian. A suitable delocalization Hamiltonian is
Number
Number
Number
[0008] A general problem Hamiltonian can include a first component proportional to the diagonal terms of a single qubit and a second component proportional to the diagonal terms of multiple qubits, and can be in the following form.
Number
Number
[0009] Here,
Number
[0010] Throughout this specification, the terms "problem Hamiltonian" and "final Hamiltonian" are used interchangeably with each other unless otherwise indicated by the context. A particular state of a quantum processor is either energetically preferred or simply preferred by the problem Hamiltonian. These include the ground state, but may also include excited states.
[0011] The Hamiltonians such as H D and H P in the above two equations can each be physically realized in various different ways. A particular example is realized by the implementation of superconducting qubits.
[0012] Sampling Throughout this specification and the appended claims, the terms "sample", "sampling", "sampling device", and "sample generator" are used.
[0013] In statistics, a sample is a subset of a population, i.e., various data taken from a statistical population. In electrical engineering and related fields, sampling is related to taking a set of measurements of an analog signal or some other physical system.
[0014] In many fields, including simulation and computing of physical systems (especially analog computing), the above meanings can be combined. For example, a hybrid computer can draw samples from an analog computer. An analog computer, as an example of a sample generator, can operate to provide samples from a selected probability distribution, where the probability distribution assigns each probability sampled to each data point in the population. The population can correspond to all possible states of a processor, and each sample can correspond to a respective state of the processor.
[0015] 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. A Markov chain can be described as a sequence of discrete random variables and / or as a random process where the state at each time step depends only on the previous state.
[0016] A Markov chain can be obtained by proposing new points according to a Markov proposal process. The new points are either accepted or rejected. If a new point is rejected, a new proposal is made, and so on. The new points that are accepted probabilistically converge to the target distribution.
[0017] Gibbs sampling Gibbs sampling is a Markov chain Monte Carlo (MCMC) algorithm that samples from the conditional distribution of one variable of the target distribution, given all the other variables. Like other MCMC algorithms, Gibbs sampling generates a Markov chain of samples, each of which is correlated with nearby samples.
[0018] Softmax distribution The softmax function is a function that takes as input a vector of K real numbers and normalizes it to a probability distribution consisting of K probabilities proportional to the exponents of the input numerical values. That is, after applying softmax, each component is in the interval (0, 1), and the sum of those components is 1, and as a result, it can be interpreted as a probability. Softmax is often used in neural networks to map the unnormalized output of the network to a probability distribution over the predicted output classes.
[0019] The foregoing examples of the related art and the limitations related thereto are intended to be illustrative and not exclusive. Other limitations of the related art will become apparent to those of ordinary skill in the art as they read this specification and study the drawings. SUMMARY OF THE INVENTION MEANS FOR SOLVING THE PROBLEM
[0020] Brief Summary Some classes of problems (e.g., problems with arbitrary variables) cannot be efficiently mapped to a quadratic unconstrained binary optimization (QUBO) problem or an Ising Hamiltonian problem. Thus, those problems need to be executed on a classical or digital processor with some overhead (e.g., transformation of variables), and then the solution is obtained by a quantum computer. Thus, it is desirable to efficiently obtain the solution of a problem with arbitrary variables by efficiently mapping the problem to a model (e.g., a binary quadratic model) and then obtaining the solution by a quantum computer. A method of operation in a processor-based system will be described. The method includes applying an algorithm to a problem having n arbitrary variables v i obtaining two candidate values for each of the arbitrary variables v i constructing a Hamiltonian using a binary value s i to determine which of the two candidate values each of the arbitrary variables v i should take, constructing a binary quadratic model based on the Hamiltonian, and obtaining a sample from the binary quadratic model from a quantum processor as the solution of the problem. A Gibbs sampler can be applied to a problem having n arbitrary variables v i and two candidate values for each of the arbitrary variables v i can be obtained from the Gibbs sampler. Applying an algorithm to a problem having n arbitrary variables v i includes calculating the energy of each state of an arbitrary variable based on the interaction between the arbitrary variable and other variables of the arbitrary variable for each of the arbitrary variables, calculating, for each of the arbitrary variables, the respective exponential weight of the arbitrary variable for each of the different values D i of the arbitrary variable, and calculating a normalized probability that each of the arbitrary variables takes one of the values D i proportional to the exponential weight. For n arbitrary variables v iApplying an algorithm to a problem having, for each of any variables, calculating the energy of any variable as a function of the magnitude of any variable and the current state of all other variables of any variable, and for each of any variables, the number D of each of all different values of any variable i calculating the respective exponential weights of any variable for each of i , calculating, for each of any variables, an executable region for any variable, the executable region including a set of values respecting a constraint set, and for each of any variables, the number D of each of all different values i calculating a mask for any variable in each of i , and for each of any variables, calculating a normalized probability that collectively represents the probability of taking one of i of any variable proportional to the exponential weight and the mask i Building a binary quadratic model may include defining a new variable x using s and two candidate values and transforming the problem into an optimization problem in the space of s i Building a binary quadratic model may include relaxing a constrained binary optimization problem to an unconstrained binary optimization problem using a penalty term and obtaining the sum of each of two candidate values i The method may further include applying an embedding algorithm to the binary quadratic model to define an embedding in a quantum processor before obtaining samples from the binary quadratic model from the quantum processor i The method includes applying an algorithm to a problem having n arbitrary variables v until an end condition is met, obtaining two candidate values for each of the arbitrary variables v from the algorithm, and determining for each of the arbitrary variables v which of the two candidate values to take using a binary value s i Applying an algorithm to a problem having, for each of any variables, calculating the energy of any variable as a function of the magnitude of any variable and the current state of all other variables of any variable, and for each of any variables, the number D of each of all different values of any variable i obtaining two candidate values for each of the arbitrary variables v from the algorithm, and for each of the arbitrary variables v i determining which of the two candidate values each of the arbitrary variables v should take using a binary value s iIt may further include repeatedly constructing a Hamiltonian to be used, constructing a binary quadratic model based on the Hamiltonian, obtaining samples from the binary quadratic model from a quantum processor, and incorporating the samples into the problem. The method may further include determining whether an end condition is satisfied. The end condition may include determining whether a measure representing the quality evaluation of any variable is satisfied. The problem may be a resource scheduling problem. A processor-based system including at least one classical processor is operable to execute any of the above methods. The processor-based system may include a quantum processor communicatively coupled to at least one classical processor.
[0021] The protein design problem can be formulated as a combinatorial optimization problem. This optimization problem can be solved using a branch-and-bound algorithm and / or simulated annealing. The simulated annealing method uses a Metropolis proposal, but as the number of cases of the categorical distribution increases, the use of the Metropolis proposal becomes inefficient, thus increasing the computation time, and these methods become inefficient for complex problems. The present disclosure describes systems and methods useful for improving computational efficiency that can be used, for example, in efficiently performing protein side-chain optimization. A method of operation for computing the softmax distribution of an input problem having n variables in a processor-based system is described. Each variable takes on a respective number D i of completely different values. The method includes, for each variable of the input problem, computing the energy of each state of the variables of the input problem based on the interaction of each variable with the other variables, and for each variable of the input problem, computing the respective exponential weight of the variable in each of the respective number D i of completely different values of the variable, and for each variable of the input problem, a variable proportional to the exponential weight, where the variable is the respective number D icalculating a normalized probability that collectively represents the probability of taking one of them, and obtaining a number of samples from the numerical values of the normalized probabilities. The number of samples can be obtained from the normalized probabilities via inverse transform sampling. The input problem can be a protein side-chain optimization problem. The method includes, for each variable of the input problem until an end condition is satisfied, calculating the energy of each state of the variable based on the interaction between the respective variable and other variables, and for each variable of the input problem, the respective number D of each of the completely different values of the variable i calculating the numerical value of each respective exponential weight for the variable in each of them, and for each variable of the input problem, the respective number D of each of the completely different values of the variable that is proportional to the exponential weight i calculating a normalized probability that collectively represents the probability of taking one of them, obtaining a number of samples from the normalized probability, and further iteratively repeating incorporating the number of samples into the input problem. The method may further include determining whether the end condition is satisfied. The end condition may include determining whether a measure representing the quality assessment of the variable is satisfied. A processor-based system including at least one classical processor is operable to execute any of the above methods.
[0022] Integer problems are generally solved using branch and bound or tree-based algorithms such as, for example, dead-end elimination (DEE). Under certain circumstances, an integer problem can be solved by relaxing the integer variables to continuous variables, but even when the variables are relaxed, finding the optimal solution in the feasible space is not guaranteed. In addition, many current solvers are unable to scale well as the problem size increases, thus resulting in very long computation times and not being suitable for all applications. A method of operation for calculating the softmax distribution of an input problem having n variables in a processor-based system is described. Each variable has a respective number D of each of the completely different values iTake. The method is to calculate the energy of the variables of the input problem as a function of the magnitude of the variable and the current state of all other variables for each variable of the input problem, and for each variable of the input problem, the number D of each of the completely different values of the variable i Calculate the numerical value of the exponential weight of the variable in each of them, and for each variable of the input problem, calculate the executable region for the variable, where the executable region includes a set of values that respect the constraint set, and for each variable of the input problem, the number D of each of the completely different values of the variable i Calculate the mask for the variable in each of them, and for each variable of the input problem, calculate the numerical value of the normalized probability representing the probability of taking one of the numbers D of each of the completely different values of the variable proportional to the exponential weight and the mask i Including obtaining a large number of samples from the numerical value of the normalized probability. The input problem can be a constrained quadratic integer problem. A large number of samples from the numerical value of the normalized probability can be obtained via inverse transform sampling. The method is to calculate the energy of the variables of the input problem as a function of the magnitude of the variable and the current state of all other variables for each variable of the input problem until the end condition is met, and for each variable of the input problem, the number D of each of the completely different values of the variable i Calculate the numerical value of each exponential weight for the variable in each of them, and for each variable of the input problem, calculate the executable region for the variable, where the executable region includes a set of values that respect the constraint set, and for each variable of the input problem, the number D of each of the completely different values of the variable i Calculate the mask for the variable in each of them, and for each variable of the input problem, the number D of each of the completely different values of the variable proportional to the exponential weight and the mask iIt may further include repeatedly performing calculating a numerical value of a normalization probability of taking one of them, obtaining a large number of samples from the normalization probability, and incorporating the large number of samples into an input problem. The method may further include determining whether an end condition is satisfied. The end condition may include determining whether a measure representing a quality evaluation of a variable is satisfied. A processor-based system including at least one classical processor is operable to execute any of the above methods.
[0023] Brief Description of Some of the Drawings In the drawings, the same reference numerals 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 can be arbitrarily enlarged and positioned to make the drawings easier to read. Further, a particular shape of an element as depicted is not necessarily intended to convey information regarding the actual shape of a particular element, and may be selected only for ease of recognition in the drawings.
Brief Description of the Drawings
[0024]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Mode for Carrying Out the Invention
[0025] Detailed Description In the following description, specific details are set forth in order to provide a thorough understanding of the various implementations disclosed. However, one 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 associated with computer systems, server computers, and / or communication networks are not shown or described in detail so as not to unnecessarily obscure the description of the implementations.
[0026] Unless the context requires otherwise, throughout this specification and the following claims, the word "comprising" shall be synonymous with "including", and shall be inclusive or open-ended (i.e., not excluding additional, unrecited elements or method acts).
[0027] Throughout this specification, references to "one implementation" or "an implementation" mean that a particular feature, structure, or characteristic described in connection with the implementation is included in at least one implementation. Thus, the appearances of the phrases "in one implementation" or "in an implementation" in various places throughout this specification are not necessarily all referring to the same implementation. Moreover, the particular features, structures, or characteristics may be combined in any suitable manner in one or more implementations.
[0028] As used in this specification and the appended claims, the singular forms "a", "an", and "the" include plural referents unless the context clearly dictates otherwise. It should also be noted that the term "or" is generally used in its inclusive sense (i.e., "and / or") unless the context clearly dictates otherwise.
[0029] Throughout this specification and the appended claims, the terms "sample", "sampling", and "sample generator" are intended to have their corresponding meanings in the fields of statistics and electrical engineering. Statistically, a sample is a subset of a population, e.g., individual data, data points, objects, or subsets of data, data points, or objects. In electrical engineering, sampling refers to collecting a number of measurements (e.g., analog signals) of a physical system.
[0030] A hybrid computing system can draw samples from an analog processor. The analog processor can be configured to provide samples from a statistical distribution and thus serve as a sample generator. An example of a processor that can operate as a sample generator is a quantum processor designed to perform quantum annealing, where each sample corresponds to the state of the processor and the population corresponds to all possible states of the processor.
[0031] The headings and summaries of the disclosure provided herein are for convenience only and should not be construed as limiting the scope or meaning of the implementations.
[0032] FIG. 1 shows a hybrid computing system 100 including a classical computer 102 coupled to a quantum computer 104. An example of a classical computer 102 includes a digital processor (CPU) 106 that can be used to perform classical digital processing tasks and is thus represented as a classical processor in this specification and the claims.
[0033] Classical computer 102 may include at least one digital processor (such as a central processing unit 106 having one or more cores), at least one system memory 108, and at least one system bus 110 that couples various system components (including coupling system memory 108 to central processing unit 106). The digital processor can 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), etc.
[0034] Classical computer 102 may include a user input / output subsystem 112. In some implementations, the user input / output subsystem includes one or more user input / output components such as a display 114, a mouse 116, and / or a keyboard 118.
[0035] System bus 110 can adopt any known bus structure or architecture, including a memory bus coupled to a memory controller, a peripheral bus, and a local bus. System memory 108 may include non-volatile memory such as read-only memory ("ROM"), static random access memory ("SRAM"), flash NANO, and volatile memory (not shown) such as random access memory ("RAM").
[0036] In addition, 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 can take various 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 can be a CD-ROM or a DVD, and the magnetic disk can be a magnetic floppy disk or a diskette. The non-volatile memory 120 can communicate with the digital processor via the system bus 110 and may include an appropriate interface or controller 122 coupled to the system bus 110. The non-volatile memory 120 can function as a long-term storage device for processor or computer-readable instructions, data structures, or other data (sometimes referred to as program modules) for the classical computer 102.
[0037] Although the classical computer 102 has been described as employing a hard disk, an optical disk, and / or a magnetic disk, those skilled in the art will understand that other types of non-volatile computer-readable media, such as magnetic cassettes, flash memory cards, flash, ROM, smart cards, etc., can be employed. Those skilled in the art will also understand that some computer architectures employ both volatile and non-volatile memory. For example, data in volatile memory can be cached in non-volatile memory or in a solid-state disk that uses integrated circuits to provide non-volatile memory.
[0038] Various processors or computer-readable instructions, data structures, or other data can be stored in the system memory 108. For example, the system memory 108 can store instructions for communicating with a remote client and instructions for scheduling the use of resources including resources on the classical computer 102 and the quantum computer 104. For example, the system memory 108 can store processor or computer-readable instructions, data structures, or other data that, when executed by a processor or computer, cause the processor or computer to perform one, multiple, or all of the acts of methods 200 (FIG. 2)-1100 (FIG. 11).
[0039] In some implementations, the system memory 108 can store processor or computer-readable computational instructions for performing pre-processing, co-processing, and post-processing on the quantum computer 104. The system memory 108 can store a quantum computer interface instruction set for interacting with the quantum computer 104.
[0040] The quantum computer 104 can include one or more quantum processors such as the quantum processor 124. The quantum computer 104 can be provided in an isolated environment, for example, an isolated environment that protects the internal elements of the quantum computer from heat, magnetic fields, and other external noise (not shown). The quantum processor 124 includes programmable elements such as qubits, couplers, and other devices. According to the present disclosure, a quantum processor such as the quantum processor 124 can be designed to perform quantum annealing and / or adiabatic quantum computing. Examples of quantum processors are described in U.S. Patent No. 7,533,068.
[0041] Proteins are made up of amino acids, a group of naturally occurring small molecules, and the primary structure of a protein is determined by the sequence of amino acids. The secondary and tertiary structures of a protein are determined by the 3D structure of the folded protein under the influence of electrostatic forces (e.g., van der Waals, salt bridges, hydrogen bonds, dipole-dipole, etc.), and protein folding is the physical process by which a protein chain acquires its native three-dimensional structure. Therefore, the problem of protein folding can be summarized as determining the tertiary structure of a protein considering the amino acid sequence. The inverse problem (protein design) is the problem of finding the amino acid sequence that forms a desired folded structure with desired properties. Examples of properties that can be desired include pharmacokinetics, binding, thermal stability, function, flexibility, developability, and / or manufacturability.
[0042] Side-chain optimization is part of protein design that formulates a combinatorial optimization problem to find the amino acid sequence and its optimal conformation that minimizes the energy of some objective function. Side-chain optimization is at the heart of computational peptide design and has applications in the biochemistry and pharmaceutical industries. Side-chain optimization can be well represented as a combinatorial optimization problem. This optimization problem can be solved using branch-and-bound algorithms and / or simulated annealing. An example of an algorithm used for side-chain optimization is dead-end elimination (DEE). The simulated annealing method uses a Metropolis proposal, where a change in a categorical variable is proposed and then the acceptance rate is measured. However, as the number of cases of the categorical distribution increases, the use of the Metropolis proposal becomes inefficient, and thus the computational time becomes long, and these methods become inefficient for complex problems.
[0043] The present disclosure describes a system and method useful for improving computational efficiency that can be used, for example, when efficiently performing protein side-chain optimization. Classical computers can use Markov chain Monte Carlo (MCMC) methods (e.g., simulated annealing, parallel tempering, population annealing, etc.) and can replace the Metropolis proposal procedure with Gibbs sampling.
[0044] The side-chain optimization problem can be expressed using
Number
Number
[0045] At any given stage of the MCMC method, the Metropolis proposal procedure is replaced with Gibbs sampling. The effective energy of each state of the variable x i is calculated based on its interaction with other variables. The energy i for the variable x and all cases j = (1, 2,..., D i ), i.e.,
Number
Number
Number
[0046] The probability that the variable x i takes on state j is the weight w ijis proportional to. This probability is known as the softmax probability distribution. To obtain a sample from the probability distribution, therefore, the weights are normalized as follows for obtaining a sample of the state of variable [Number] : [Number] where β is the inverse temperature at which sampling is performed.
[0047] The sample can be obtained from the softmax distribution of Equation (6) using standard algorithms or methods such as, for example, inverse transform sampling.
[0048] The obtained sample can be further purified by a quantum computer, for example, as part of a hybrid algorithm that uses cluster reduction. The cluster reduction hybrid algorithm is disclosed in more detail in U.S. Patent Application Publication No. 20200234172.
[0049] FIG. 2 is a flow diagram of an example of a method 200 of operation of a computing system for sampling from a softmax distribution over cases of a categorical distribution. The method 200 can be executed on a hybrid computing system (e.g., the hybrid computing system 100 of FIG. 1) that includes at least one digital or classical processor and a quantum processor, or by a classical computing system that includes at least one digital or classical processor.
[0050] The method 200 includes acts 201-206. However, those skilled in the art will understand that the number of acts shown is illustrative, and that in some implementations, certain acts may be omitted, additional acts may be added, and / or the order of the acts may be changed.
[0051] Method 200 begins at 201, for example, in response to a call from another routine.
[0052] At 202, the digital processor computes the effective energy of an input problem having n categorical variables
Number
Number
[0053] At 203, the digital processor computes the exponential weights w i for all cases j of variable x ij (Equation 7).
[0054] At 204, the digital processor computes the normalized probability p ij that each variable x i takes state j, proportional to the weights w ij computed at 203 (Equation 8).
[0055] At 205, the digital processor obtains samples from the probability distribution p ij , for example, using inverse transform sampling.
[0056] At 206, method 200 ends and is not started again, for example, until it is called again.
[0057] 3 is a flow diagram of an example iterative method 300 of operation of a computing system for sampling from a softmax distribution over instances of categorical distributions. Method 300 can be performed on a hybrid computing system (e.g., hybrid computing system 100 of FIG. 1) that includes at least one digital or classical processor and a quantum processor, or by a classical computing system that includes at least one digital or classical processor.
[0058] Method 300 includes acts 301-308. However, one of ordinary skill in the art will appreciate that the number of acts shown are examples and that in some implementations, certain acts may be omitted, additional acts may be added, and / or the order of acts may be changed.
[0059] The method 300 begins at 301, for example, in response to a call from another routine.
[0060] At 302, the digital processor calculates an effective energy
number
number
[0061] In 303, the digital processor calculates the variable x i For every instance j, the exponential weight w ij Calculate (Equation 7).
[0062] In 304, the digital processor calculates the normalized probability p that each variable i takes state j, which is proportional to the weight w calculated in 303 ij (Equation 8). ij (Equation 8) is calculated.
[0063] In 305, the digital processor obtains samples from the probability distribution p, for example, using inverse transform sampling. ij Samples are obtained from the probability distribution p.
[0064] In 306, the digital processor incorporates the samples obtained in 305 into the input problem of 302.
[0065] In 307, the digital processor checks whether the termination condition is satisfied. If the termination condition is satisfied, the control transfers to 308. Otherwise, the control transfers to 302, and the effective energy
Number
[0066] In 308, method 300 ends and, for example, is not started again until it is called again.
[0067] The integer programming problem is a mathematical optimization or feasibility problem where some or all of the variables are restricted to integers and a set of constraints must be respected. Integer problems are generally solved using branch and bound or tree-based algorithms such as, for example, dead-end elimination (DEE). In certain situations, an integer problem can be solved by relaxing the integer variables to continuous variables, but relaxing the variables does not guarantee finding the optimal solution in the feasible space. In addition, many current solvers are unable to scale well as the problem size increases, thus resulting in very long computation times and not being suitable for all applications.
[0068] The present disclosure describes systems and methods for solving a quadratic integer programming problem with constraints using a computing system (e.g., the hybrid computing system 100 of FIG. 1) that includes at least one classical or digital computer and a quantum computer, or by a classical computing system that includes at least one digital or classical computer. The classical or digital computer can use Markov chain Monte Carlo (MCMC) methods (e.g., simulated annealing, parallel tempering, population annealing, etc.) and can replace the Metropolis proposal procedure with constrained Gibbs sampling.
[0069] Integer variable x i The effective energy E of can be computed by a digital processor as a function of the magnitude of the integer and the current state of all other variables. [Number] where h i is the bias of variable x i and Q i,j is the pairwise interaction of two variables x i and x j .
[0070] All variables xi and the energy for all cases or values j [Number] is the exponential weight, i.e., [Number] is used to calculate. The probability that the variable x i takes the value j is proportional to the weight [Number] (Equation 10). This probability is known as the softmax probability distribution. To obtain a sample from the probability distribution, thus, to obtain a sample of the state of the variable x i , the weights are normalized as follows. [Number] where D i is the number of possible values for the variable x i .
[0071] Samples can be obtained from the softmax distribution using standard algorithms or methods such as, for example, inverse transform sampling. However, sampling from the probability distribution p(x i ) of Equation 11 results in a violation of one or more constraints of the problem and thus does not provide a solution to the constrained quadratic integer problem of interest.
[0072] Assuming that the constraint C can be expressed as [Number] (where S represents the set of variables that must respect the constraint C), the feasible region for the variable x i is [Number] .
[0073] Variable x i 's mask M j is
Number
[0074] Therefore, in only the executable region, the probability that variable x i takes the value j is
Number
[0075] Samples can be obtained from the above probability distribution (Equation 15) using, for example, inverse transform sampling.
[0076] The obtained samples can be further purified by a quantum computer, for example, as part of a hybrid algorithm that uses cluster reduction. The cluster reduction hybrid algorithm is disclosed in more detail in U.S. Patent Application Publication No. 20200234172.
[0077] Figure 4 is a flowchart of an example of a method 400 of operation of a computing system for sampling from a softmax distribution over cases of a categorical distribution using constraints. Method 400 can be executed on a hybrid computing system (e.g., hybrid computing system 100 of FIG. 1) that includes at least one digital or classical processor and a quantum processor, or can be executed by a classical computing system that includes at least one digital or classical processor.
[0078] Method 400 includes acts 401-408. However, those skilled in the art will understand that the number of acts shown is illustrative, and in some implementations, certain acts can be omitted, additional acts can be added, and / or the order of the acts can be changed.
[0079] Method 400 begins at 401, for example, in response to a call from another routine.
[0080] At 402, the digital processor calculates the effective energy E of the integer variables of an input problem having n integer variables. The integer variable x i The energy E(x i ) is calculated as a function of the integer magnitude and the current state of the other variables according to Equation 9. The input problem can be received as part of the input set at 401.
[0081] At 403, the digital processor calculates, according to Equation 10, each variable x i and the exponential weight w ij for all cases j.
[0082] At 404, the digital processor calculates, according to Equation 13, the executable region i for each integer variable x
Number
Number
[0083] At 405, the digital processor calculates, according to Equation 14, the mask M i for each variable x j taking the value j.
[0084] At 406, the digital processor calculates the normalized probability p i for each variable x ij taking on state j only within the executable region, and the probability that the variable x i takes on state j is, according to Equation 15, the exponential weight
Number
[0085] In 407, the digital processor obtains samples from the probability distribution p computed in 406, for example, by using inverse transform sampling. ij from.
[0086] In 408, method 400 ends and is not started again, for example, until it is called again.
[0087] FIG. 5 is a flowchart of an example of an iterative method 500 of operation of a computing system for sampling from a softmax distribution over cases of a categorical distribution with constraints. Method 500 can be executed on a hybrid computing system (e.g., hybrid computing system 100 of FIG. 1) including at least one digital or classical processor and a quantum processor, or can also be executed by a classical computing system including at least one digital or classical processor.
[0088] Method 500 includes acts 501-510. However, those skilled in the art will understand that the number of acts shown is illustrative, and in some implementations, certain acts can be omitted, additional acts can be added, and / or the order of the acts can be changed.
[0089] Method 500 begins at 501, for example, in response to a call from another routine.
[0090] In 502, the digital processor computes the effective energy E of the integer variables of the input problem as described above with reference to act 402 of method 400.
[0091] In 503, the digital processor computes, for each variable x i and the exponential weight w ij for all cases j.
[0092] At 504, the digital processor calculates the executable region for each integer variable x according to Equation 13 i for
Number
Number
[0093] At 505, the digital processor calculates the mask M for each variable x that takes the value j according to Equation 14 i for j and calculates.
[0094] At 506, the digital processor calculates the normalization probability p that each variable x i takes the state j only in the executable region, and the probability that the variable x ij takes the state j is proportional to the exponential weight i and the mask M according to Equation 15.
Number
[0095] At 507, the digital processor obtains samples from the probability distribution p calculated at 506 using, for example, inverse transform sampling. ij to obtain samples.
[0096] At 508, the digital processor incorporates the samples obtained at 507 into the input problem of 502.
[0097] In 509, the digital processor checks whether the termination condition is satisfied. If the termination condition is satisfied, the control transfers to 510. Otherwise, the control transfers to 502, and the effective energy E is calculated again for the problem with the samples incorporated. The termination condition can be a determination that a measure or parameter representing the quality of a variable is satisfied. An example of a measure of the quality of a variable is the energy of the variable. The determination can be based on, for example, an evaluation of the variable, which is performed by the digital processor.
[0098] In 510, method 500 ends and, for example, is not started again until it is called again.
[0099] Some classes of problems (e.g., problems with arbitrary variables) cannot be efficiently mapped to a quadratic unconstrained binary optimization (QUBO) problem or an Ising Hamiltonian problem. Thus, those problems need to be executed on a classical or digital processor with some overhead (e.g., transformation of variables), and then the solution is obtained by a quantum computer. Thus, it is desirable to efficiently obtain the solution of a problem with arbitrary variables by efficiently mapping the problem to a model (e.g., a binary quadratic model) and then obtaining the solution by a quantum computer. In the present disclosure and the appended claims, the term arbitrary variable is used to denote continuous, discrete, or binary variables.
[0100] The present disclosure describes a system and method for obtaining a solution to a problem with arbitrary variables using cross-Boltzmann updates using a hybrid computing system (e.g., the hybrid computing system 100 of FIG. 1) that includes at least one classical or digital computer and a quantum computer. The at least one classical or digital computer constructs a binary problem using cross-Boltzmann updates, and then the binary problem can be solved by the quantum computer.
[0101] The problem can involve a number of arbitrary variables v that can be continuous, discrete, or binary. A digital computer can apply an algorithm to a problem with a number of arbitrary variables, and an arbitrary variable v with an old value
Number
Number
Number
[0102] Then, the determination of whether to update the variables v i and v j can be expressed through the Hamiltonian H.
Number
[0103] The binary variable s i (e.g., factorial Bernoulli decisions), i.e., s i ~p(s i |v t-1 ) (20) can be replaced with samples from the Boltzmann distribution as follows:
Number
[0104] For each of the non-binary variables v i the digital processor can select two candidate values. The digital processor can select candidate values using a native sampler in the space of integer or continuous variables. In at least one implementation, the native sampler can be a Gibbs sampler. For example, the native sampler can return two independent samples X 1 and X 2 . The digital processor can then define a new variable x i using the binary variable s i .
Number
[0105] For discrete, non-binary variables v i the problem can be converted to a quadratic unconstrained binary optimization (QUBO) problem in the following way. The energy function E is equivalent to QUBO.
Number
[0106] The above equation 24 is
Number
[0107] The above problem can be directly solved using a quantum processor (e.g., a quantum annealer) or via classical simulated annealing. However, directly solving the solution of equation 24 can be inefficient because of the large number of qubits per variable.
[0108] Instead of directly solving the solution of equation 24, a quantum processor can find the solution of a sub-problem in the form of the following equation 25.
Number
[0109] The problem of equation 25 is similar to the input problem, but instead of finding the sum of each of all possible values of variable x, it finds the sum of each of two values selected by a digital processor using a native sampler. Equation 25 can be
Number
Number
[0110] FIG. 6 is a flowchart of an example of a method 600 of operation of a hybrid computing system using cross Boltzmann updates. The method 600 can be executed on a hybrid computing system (e.g., the hybrid computing system 100 of FIG. 1) that includes at least one digital or classical processor and a quantum processor.
[0111] The method 600 includes acts 601-608. However, those skilled in the art will understand that the number of acts shown is an example and that in some implementations, certain acts can be omitted, additional acts can be added, and / or the order of the acts can be changed.
[0112] The method 600 begins at 601, for example, in response to a call from another routine.
[0113] At 602, the digital processor applies an algorithm to an input problem having n arbitrary variables x i . The n arbitrary variables can be continuous, discrete, or binary variables. The input problem can be received as part of an input set at 601. The digital processor can apply a native solver (e.g., a Gibbs sampler) to the input problem.
[0114] At 603, the digital processor obtains two candidate values for each variable of the input problem via the native solver applied at 602. The candidate values can be independent samples.
[0115] At 604, the digital processor constructs a Hamiltonian H of the problem using a binary s i , and s t-1 takes on a value of 1 when the variable v i having an old value v t incorporates the updated value v i , and the Hamiltonian H depends on the binary variable s. H = Σ i h i s i + Σ ij Jij s i s j (19)
[0116] Equation 19 was introduced above and is reproduced here for clarity. For details, see the above description with reference to Equation 19.
[0117] At 605, the digital processor constructs a binary quadratic model of the problem from the Hamiltonian H of act 604. Depending on the nature of any variable x i , the digital processor reduces the binary quadratic model in different ways. For non-binary variables, the new variable x i is defined as follows using s, as described in more detail in the first reference of Equation 22 above. i
Number
[0118] For discrete, non-binary variables, as described in more detail in the first reference of Equation 26 above, the subproblem E, i.e.,
Number
[0119] At 606, the digital processor sends the binary quadratic model of 605 to the quantum processor. In at least one implementation, an embedding algorithm (e.g., minor embedding) is applied to the model of act 605, generating an embedding problem that can be sent to the quantum processor. Examples of embedding techniques can be found in U.S. Patent No. 7,984,012, U.S. Patent No. 8,244,662, U.S. Patent No. 9,727,823, U.S. Patent No. 9,875,215, and U.S. Patent No. 10,789,540.
[0120] At 607, the digital processor receives samples from the model sent at 605, generated by the quantum processor. The samples represent solutions to the input problem.
[0121] Method 600 ends at 608 and, for example, is not started again until it is called again.
[0122] FIG. 7 is a flowchart of an example of an iterative method 700 for the operation of a hybrid computing system using cross Boltzmann updates. Method 700 can be executed on a hybrid computing system (e.g., hybrid computing system 100 of FIG. 1) that includes at least one digital or classical processor and a quantum processor.
[0123] Method 700 includes acts 701-710. However, those skilled in the art will understand that the number of acts shown is an example and that in some implementations, certain acts can be omitted, additional acts can be added, and / or the order of the acts can be changed.
[0124] Method 700 begins at 701, for example, in response to a call from another routine.
[0125] At 702, the digital processor applies an algorithm to an input problem having n arbitrary variables x i as described above with reference to act 602 of method 600.
[0126] At 703, the digital processor obtains two candidate values for each variable of the input problem as described above with reference to act 603 of method 600.
[0127] At 704, the digital processor constructs the Hamiltonian H of the problem using the binary value s i as described above with reference to act 604 of method 600.
[0128] At 705, the digital processor constructs a binary quadratic model of the problem from the Hamiltonian H of act 704 as described above with reference to act 605 of method 600.
[0129] In 706, the digital processor sends a binary quadratic model to the quantum processor as described above with reference to act 606 of method 600.
[0130] In 707, the digital processor receives samples from the model sent in 706 that are generated by the quantum processor.
[0131] In 708, the digital processor incorporates the samples received in 707 into the input problem.
[0132] In 709, the digital processor checks whether the termination condition is satisfied. If the termination condition is satisfied, control passes to 710. Otherwise, control passes to 702 and the digital processor reapplies the algorithm to the input problem with the samples incorporated. The termination condition can be a determination that a measure or parameter representing the quality of a variable is satisfied. An example of a measure of the quality of a variable is the energy of the variable. The determination can be based, for example, on an evaluation of the variable, which is performed by the digital processor.
[0133] In 710, method 700 ends and, for example, is not started again until it is called again.
[0134] Also, methods 600 and 700 can also be applied when seeking solutions to problems (e.g., problems of optimizing protein structures) that can benefit from obtaining samples from a categorical distribution, as described above with reference to method 200 of FIG. 2 and method 300 of FIG. 3.
[0135] FIG. 8 is a flowchart of an example of a method 800 of operation of a hybrid computing system that uses cross-Boltzmann updates to sample from a softmax distribution over a categorical distribution. The method 800 can be executed on a hybrid computing system (e.g., the hybrid computing system 100 of FIG. 1) that includes at least one digital or classical processor and a quantum processor.
[0136] The method 800 includes acts 801-810. However, those skilled in the art will understand that the number of acts shown is illustrative, and in some implementations, certain acts may be omitted, additional acts may be added, and / or the order of the acts may be changed.
[0137] The method 800 begins at 801, for example, in response to a call from another routine.
[0138] At 802, the digital processor computes the effective energy
Number
Number
[0139] for all cases j of the variable x i (Equation 7). ij At 804, the digital processor uses the weights w
[0140] computed at 803 ijThe normalized probability p that each variable i takes state j, which is proportional to ij (Equation 8) is calculated.
[0141] At 805, the digital processor obtains two candidate values for each variable of the input problem through sampling from the probabilities calculated at 804. The candidate values can be independent samples.
[0142] At 806, the digital processor constructs the Hamiltonian H of the problem using the binary value s as described in the first reference of Equation 19 above. When the variable v with the old value v i incorporates the updated value v t-1 s i takes a value of 1, and the Hamiltonian H depends on the binary variable s. t i i takes a value of 1, and the Hamiltonian H depends on the binary variable s.
Number
[0143] At 807, the digital processor constructs a binary quadratic model of the problem from the Hamiltonian H of Act 806. Depending on the nature of any variable, the digital processor reduces the binary quadratic model in different ways as described above with reference to Act 605 of Method 600.
[0144] At 808, the digital processor sends the binary quadratic model to the quantum processor. In at least one implementation, an embedding algorithm (e.g., minor embedding) is applied to the model of Act 807 to generate an embedded problem that can be sent to the quantum processor.
[0145] At 809, the digital processor receives samples from the model sent at 808, generated by the quantum processor. The samples represent the solution to the input problem.
[0146] At 810, Method 800 ends and, for example, is not started again until it is called again.
[0147] FIG. 9 is a flowchart of an example of an iterative method 900 of operation of a hybrid computing system using cross-Boltzmann updates for sampling from a softmax distribution over cases of a categorical distribution. Method 900 can be executed on a hybrid computing system (e.g., hybrid computing system 100 of FIG. 1) that includes at least one digital or classical processor and a quantum processor.
[0148] Method 900 includes acts 901-912. However, one of ordinary skill in the art will understand that the number of acts shown is an example, and that in some implementations, certain acts may be omitted, additional acts may be added, and / or the order of the acts may be changed.
[0149] Method 900 begins at 901, for example, in response to a call from another routine.
[0150] At 902, the digital processor computes the effective energy of an input problem having n categorical variables as described above with reference to act 802 of method 800.
Number
[0151] At 903, the digital processor computes the exponential weights w i for all cases j of variable x ij (Equation 7).
[0152] At 904, the digital processor computes the normalized probability p ij that each variable i takes state j, proportional to the weights w ij (Equation 8).
[0153] At 905, the digital processor obtains two candidate values for each variable of the input problem via sampling from the probabilities computed at 904. The candidate values can be independent samples.
[0154] At 906, the digital processor constructs the Hamiltonian H of the problem using the binary value s as described above with reference to act 806 of method 800. i
[0155] At 907, the digital processor constructs the binary quadratic model of the problem from the Hamiltonian H of act 906 as described above with reference to act 807 of method 800.
[0156] At 908, the digital processor sends the binary quadratic model to the quantum processor. In at least one implementation, an embedding algorithm (e.g., minor embedding) is applied to the model of act 907 to generate an embedded problem that can be sent to the quantum processor.
[0157] At 909, the digital processor receives samples from the model sent at 908 that are generated by the quantum processor. The samples represent solutions to the input problem.
[0158] At 910, the digital processor incorporates the samples received at 909 into the input problem of 902.
[0159] At 911, the digital processor checks whether the termination condition is satisfied. If the termination condition is satisfied, control passes to 912. Otherwise, control passes to 902 and the digital processor re-computes the effective energy
Number
[0160] At 912, method 900 ends and, for example, is not started again until it is called again.
[0161] Also, methods 800 and 900 can also be applied when obtaining solutions to constrained problems (e.g., quadratic integer problems with constraints) that can benefit from obtaining samples from a categorical distribution, as described above with reference to method 400 of FIG. 4 and method 500 of FIG. 5.
[0162] FIG. 10 is a flowchart of an example of a method 1000 for operating a hybrid computing system that uses cross-Boltzmann updates to sample from a softmax distribution across cases of a categorical distribution using constraints. Method 1000 can be executed on a hybrid computing system (e.g., hybrid computing system 100 of FIG. 1) that includes at least one digital or classical processor and a quantum processor.
[0163] Method 1000 includes acts 1001 - 1012. However, those skilled in the art will understand that the number of acts shown is an example and that in some implementations, certain acts can be omitted, additional acts can be added, and / or the order of the acts can be changed.
[0164] Method 1000 begins at 1001, for example, in response to a call from another routine.
[0165] At 1002, the digital processor computes the effective energy E of the integer variables of an input problem having n integer variables. The energy E of integer variable x i (x i ) is computed as a function of the integer magnitude and the current state of other variables according to Equation 9. The input problem can be received as part of the input set at 1001.
[0166] At 1003, the digital processor, according to Equation 10, for each variable x i and for all cases j, the exponential weight wij Perform the operation.
[0167] In 1004, the digital processor, according to Equation 13, for each integer variable x i Feasible region
Number
[0168] In 1005, the digital processor, according to Equation 14, for each variable x with value j i Mask M j Perform the operation.
[0169] In 1006, the digital processor, only in the feasible region, for each variable x i Normalized probability p that x takes on state j ij Perform the operation, and the probability that variable x i takes on state j is, according to Equation 15, the exponential weight
Number
[0170] In 1007, the digital processor obtains two candidate values for each variable of the input problem through sampling from the probabilities calculated in 1006. The candidate values can be independent samples.
[0171] In 1008, the digital processor constructs the Hamiltonian H of the problem using the binary value s i as described in the first reference of Equation 19 above, and when the variable v t-1 with the old value v i takes on the updated value v t then s i takes on a value of 1, and the Hamiltonian H depends on the binary variable s.
Number
[0172] In 1009, the digital processor constructs a binary quadratic model of the problem from the Hamiltonian H of act 1008. Depending on the nature of the variable x i the digital processor reduces the binary quadratic model in different ways as described above with reference to act 605 of method 600.
[0173] In 1010, the digital processor sends the binary quadratic model to the quantum processor. In at least one implementation, an embedding algorithm (e.g., minor embedding) is applied to the model of act 1009, generating an embedded problem that can be sent to the quantum processor.
[0174] In 1011, the digital processor receives samples from the model sent in 1010, generated by the quantum processor. The samples represent solutions to the input problem.
[0175] In 1012, method 1000 ends and, for example, is not started again until it is called again.
[0176] FIG. 11 is a flow diagram of an example of an iterative method 1100 of operation of a hybrid computing system using cross-Boltzmann updates for sampling from a softmax distribution over cases of a categorical distribution using constraints. Method 1100 can be executed on a hybrid computing system (e.g., hybrid computing system 100 of FIG. 1) that includes at least one digital or classical processor and a quantum processor.
[0177] Method 1100 includes acts 1101-1114. However, those skilled in the art will understand that the number of acts shown is an example and that in some implementations, certain acts can be omitted, additional acts can be added, and / or the order of the acts can be changed.
[0178] Method 1100 begins at 1101, for example, in response to a call from another routine.
[0179] At 1102, the digital processor computes the effective energy E of the integer variables of the input problem having n integer variables, as described above with reference to act 1002 of method 1000.
[0180] At 1103, the digital processor computes, according to equation 10, each variable x i and the exponential weight w for all cases j. ij for.
[0181] At 1104, the digital processor computes, according to equation 13, the executable region i for each integer variable x
Number
[0182] At 1105, the digital processor computes, according to equation 14, the mask M i for each variable x having value j. j for.
[0183] At 1106, the digital processor computes, only in the executable region, the normalization probability p i that each variable x ij takes on state j, and the probability that variable x i takes on state j is, according to equation 15, proportional to the exponential weight
Number
[0184] At 1107, the digital processor obtains two candidate values for each variable of the input problem via sampling from the probabilities computed at 1106. The candidate values can be independent samples.
[0185] At 1108, the digital processor constructs the Hamiltonian H of the problem using the binary value s as described above with reference to act 1008 of method 1000. i
[0186] At 1109, the digital processor constructs the binary quadratic model of the problem from the Hamiltonian H of act 1108 as described above with reference to act 1009 of method 1000.
[0187] At 1110, the digital processor sends the binary quadratic model of act 1109 to the quantum processor as described above with reference to act 1010 of method 1000.
[0188] At 1111, the digital processor receives samples from the model sent at 1110, generated by the quantum processor. The samples represent solutions to the input problem.
[0189] At 1112, the digital processor incorporates the samples received at 1111 into the input problem.
[0190] At 1113, the digital processor checks whether the termination condition is met. If the termination condition is met, control passes to 1114. Otherwise, control passes to 1102 and the digital processor re-computes the effective energy
Number
[0191] At 1114, method 1100 ends and is not started again, for example, until it is called again.
[0192] The systems and methods described above can be used to optimize resource scheduling, such as, for example, scheduling equipment and / or personnel for job assignments at a location. Resource scheduling is an NP-hard problem and can be formulated, for example, as a linear integer program. A linear integer program can be solved using commercially available software such as, for example, the SCIP solver, the CPLEX® optimizer, or the Gurobi® optimizer. However, formulating resource scheduling as an integer linear program introduces binary variables to enforce logical constraints, thereby increasing complexity and, in turn, the computational time required to solve the resource scheduling problem. Long computational times mean that resource managers spend significant amounts of time allocating resources to jobs, shifts, or locations, increasing business inefficiency.
[0193] Resource scheduling can be formulated as a discrete quadratic model f, which encodes one-hot constraints and then has its solution determined on a quantum processor. Such a model can be considered a binary quadratic model with one-hot constraints, as described above with reference to Equation 19.
Number
[0194] The variable x d,i can be defined for each resource i and each day d. Resources can start and be utilized at various times, for various durations, and in different departments and locations. Of all combinations of these attributes, only one option can be selected at a time. For example, x (d,i),(s,u,j,l)Indicates that resource i starts at location l in department j during time u at time s on date d. If the above formulation only considers the start time, it is impossible for any of the available combinations of time, duration, department, and location described to occur simultaneously.
Number
[0195] The set S d,i can be expanded in case 0 (indicating that no case is selected) to convert the above inequality into an equation.
Number
[0196] In some implementations, it is desirable to schedule a particular resource (e.g., a more efficient resource, a new resource, etc.) for a particular job, shift, or location, which is preferably done without introducing new variables so as not to increase the complexity of the problem. The resource scheduling problem can be optimized by biasing individual resources.
Number
[0197] The demand for resources can be optimized by minimizing the interval between the scheduled time and the required time for every date, time, department, and location. The function f1 minimizes the interval between the scheduled resources and the demand for resources.
Number
[0198] Also, in order to ensure that each resource is allocated a fixed number of time u, it may be desirable to add another objective function f2 to the problem. The function f2 minimizes the interval between the scheduled time and the planned time, where S i is the set of planned times.
Number
[0199] In some implementations, in order to ensure that a non-active period (e.g., two consecutive days of inactivity) is scheduled for a given resource, it may be desirable to add another objective function f3, where it is represented by 0 (i.e., not scheduled). In one implementation, for example, it may be desirable to schedule two consecutive days off for regular maintenance.
Number
[0200] The following is an example of a set of constraints that can be applied to the resource scheduling problem. However, those skilled in the art will understand that the following set of constraints is for illustrative purposes only, and that some constraints may not be used, or other constraints may be added.
[0201] Working hours are assigned to each resource based on the availability of the resource.
[0202] The length of the shift can vary depending on, for example, the type or location of the assignment.
[0203] The time between two consecutive shifts can vary, for example, according to the distance between the physical locations of two consecutive shifts or according to the regular maintenance of the equipment. In an exemplary implementation, the time between shifts for a resource can be at least 15 hours.
Number
[0204] Each resource is assigned a time close to the planned number of hours.
[0205] Each resource can be allocated a scheduled inactive period. For example, the equipment can be made idle for one day a week or for two consecutive days a week for regular maintenance performed weekly.
[0206] Each department is assigned resources closed to the number of resources required per day and per week.
[0207] Multiple departments or locations can be optimized together and share the same resources.
[0208] The binary quadratic model constructed using the above constraints can then use any of the respective methods 600, 700, 800, 900, 1000, 1100 of FIGS. 6, 7, 8, 9, 10, 11 to obtain a solution using a hybrid computing system (e.g., the hybrid computing system 100 of FIG. 1).
[0209] FIG. 12 is a flowchart of an example of a method 1200 for operating a hybrid computing system to optimize resource scheduling. The method 1200 can be executed on a hybrid computing system (e.g., the hybrid computing system 100 of FIG. 1) that includes at least one digital or classical processor and a quantum processor.
[0210] The method 1200 includes acts 1201-1206. However, those skilled in the art will understand that the number of acts shown is an example, and in some implementations, certain acts can be omitted, additional acts can be added, and / or the order of the acts can be changed.
[0211] The method 1200 begins at 1201, for example, in response to a call from another routine. The method 1200 can take, as an input set, data about each resource (e.g., planned availability and planned inactive periods) and data about each department and location (e.g., required resources).
[0212] At 1202, the digital processor formulates the input data into a set of constraints for each resource, date, time, department, and location. In at least one implementation, the digital processor formulates the following constraints. For each resource, a work time is allocated based on the availability of the resource. The length of the shift can vary, for example, depending on the type or location of the allocation. The time between two consecutive shifts can vary, for example, depending on the distance between the physical locations of the two consecutive shifts or depending on the regular maintenance of the equipment. For each resource, a time close to the planned number of hours is allocated. For each resource, a scheduled inactive period can be allocated. For each department, resources that are closed to the required number of resources per day and per week are allocated.
[0213] In 1203, the digital processor constructs a binary quadratic model based on the set of constraints formulated in 1202. The digital processor can adopt any one of the respective methods 600, 700, 800, 900, 1000, 1100 of FIGS. 6, 7, 8, 9, 10, 11.
[0214] In 1204, the digital processor sends the binary quadratic model constructed in 1203 to the quantum processor. In at least one implementation, an embedding algorithm (e.g., minor embedding) is applied to the model of act 1203, generating an embedding problem that can be sent to the quantum processor.
[0215] In 1205, the digital processor receives samples from the model sent in 1204, generated by the quantum processor. The samples represent solutions to the input problem.
[0216] In 1206, method 1200 ends and, for example, is not started again until it is called again.
[0217] The methods, processes, or techniques described above can be implemented by a series of processor-readable instructions stored on one or more non-transitory processor-readable media. Some examples of the methods, processes, or techniques described above are partially executed by special devices such as adiabatic quantum computers or quantum annealers or systems (e.g., computers including at least one digital processor) for programming or controlling the operation of adiabatic quantum computers or quantum annealers. The methods, processes, or techniques described above may include various acts, but those skilled in the art will understand that in alternative examples, certain acts may be omitted and / or additional acts may be added. Those skilled in the art will understand that the order of the acts shown is presented for illustrative purposes only and can be changed in alternative examples. Some of the acts or operations of the methods, processes, or techniques described above are executed repeatedly. Some of the acts of the methods, processes, or techniques described above can be executed during each iteration, after a number of iterations, or at the end of all iterations.
[0218] The above description of the disclosed embodiments is not intended to be exhaustive or to limit the embodiments to the precise form disclosed. Specific embodiments and examples are described herein for illustrative purposes, but as will be recognized by those skilled in the art, various equivalent modifications can be made without departing from the spirit and scope of the present disclosure. The teachings of the various embodiments provided herein are not necessarily limited to the examples of quantum computing methods generally described above, but can also be applied to other methods of quantum computing.
[0219] The various implementations described above can be combined to provide further implementations. All U.S. patent publications, U.S. patent applications, foreign patents, and foreign patent applications by the same applicant mentioned in this specification and / or listed in the application data sheet are hereby incorporated by reference in their entirety, including but not limited to, U.S. Patent No. 7,533,068, U.S. Patent Publication No. 2020 / 0234172, U.S. Patent No. 7,984,012, U.S. Patent No. 8,244,662, U.S. Patent No. 9,727,823, U.S. Patent No. 9,875,215, U.S. Patent No. 10,789,540, and U.S. Provisional Patent Application No. 62 / 951,749.
[0220] These and other changes 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 this specification and the claims, but rather the claims should be construed to include all possible implementations together with the full scope of equivalents to which such claims are entitled. Accordingly, the claims are not limited by the present disclosure.
Claims
1. A method of operation in a processor-based system, Applying an algorithm to a problem having n arbitrary variables v i by applying the algorithm to the problem for each of said arbitrary variables, calculating the energy associated with said arbitrary variable; for each of said arbitrary variables, calculating the respective exponential weight of said arbitrary variable for each of the respective numbers Di of completely different values of said arbitrary variable; for each of said arbitrary variables, calculating a normalization probability that is at least proportional to said exponential weight, wherein each of said arbitrary variables takes one of the respective numbers Di of completely different values of said arbitrary variable; comprising: obtaining two candidate values for each of the arbitrary variables v from the algorithm i and any variable v i to determine which of the two candidate values each of them should take, a Hamiltonian that uses the binary value s i is constructed, and constructing a binary quadratic model based on said Hamiltonian; applying an embedding algorithm to said binary quadratic model to define an embedding in a quantum processor; transmitting said binary quadratic model to said quantum processor; obtaining, from said quantum processor, a sample from said binary quadratic model as a solution to said problem. A method comprising:
2. n arbitrary variables v i Applying an algorithm to a problem having n arbitrary variables v i includes applying a Gibbs sampler to a problem having n arbitrary variables v, and obtaining two candidate values for each of the arbitrary variables v i from the algorithm, and obtaining two candidate values for each of the arbitrary variables v i from the Gibbs sampler, the method according to claim 1.
3. The method according to claim 1, wherein calculating the energy associated with each of said arbitrary variables includes calculating the energy of each state of said arbitrary variable based on the interaction between said arbitrary variable and other variables of said arbitrary variable.
4. Applying an algorithm to a problem having n arbitrary variables v i is possible For each of said arbitrary variables, calculating an executable region for said arbitrary variable, said executable region including a set of values that respect a set of constraints; for each of said arbitrary variables, calculating a mask for said arbitrary variable at each of the respective numbers Di of completely different values; comprising: wherein calculating the energy associated with each of said arbitrary variables includes calculating the energy of said arbitrary variable as a function of the magnitude of said arbitrary variable and the current state of all other variables of said arbitrary variable for each of said arbitrary variables; The method according to claim 1, wherein said normalization probability is further proportional to said mask.
5. Constructing a binary quadratic model involves s i and using two candidate values to define a new variable x i and converting the problem into an optimization problem in the space of s i The method according to any one of claims 1 to 4, comprising
6. The method according to any one of claims 1 to 4, wherein constructing a binary quadratic model includes relaxing a constrained binary optimization problem to an unconstrained binary optimization problem using a penalty term and obtaining the sum of each of said two candidate values.
7. until an end condition is met Apply an algorithm to a problem having n arbitrary variables v i and Obtaining two candidate values for each of the arbitrary variables v from the algorithm i and Any variable v i For each of which to take one of the two candidate values, a Hamiltonian is constructed using the binary value s i and Constructing a binary quadratic model based on the Hamiltonian; Obtaining samples from the binary quadratic model from the quantum processor; Incorporating the samples into the problem; Repeatedly repeating the above; The method according to claim 1, further comprising the above.
8. Further comprising determining whether an end condition is satisfied, and determining whether the end condition is satisfied includes determining whether a measure representing the quality evaluation of the arbitrary variable is satisfied. The method according to claim 7.
9. The method according to any one of claims 1 to 4, wherein the problem is a resource scheduling problem.
10. An arithmetic method in a processor-based system, comprising: Applying an algorithm to a problem having n arbitrary variables vi; Obtaining two candidate values for each of the arbitrary variables vi from the algorithm; Constructing a Hamiltonian that uses binary values si to determine which of the two candidate values each of the arbitrary variables vi should take; Constructing a binary quadratic model based on the Hamiltonian; Applying an embedding algorithm to the binary quadratic model to define an embedding in a quantum processor; Transmitting the binary quadratic model to the quantum processor; Obtaining samples from the binary quadratic model from the quantum processor as a solution to the problem; including; Applying an algorithm to a problem having n arbitrary variables vi includes: Calculating the energy of each state of the arbitrary variable based on the interaction between the arbitrary variable and other variables of the arbitrary variable for each of the arbitrary variables; Calculating the respective exponential weights of the arbitrary variable for each of the different numbers Di of values of the arbitrary variable for each of the arbitrary variables; Calculating the normalized probability that each of the arbitrary variables takes one of the values Di, which is proportional to the exponential weight; A method including the above.
11. An arithmetic method in a processor-based system, comprising: Applying an algorithm to a problem having n arbitrary variables vi; Obtaining two candidate values for each of the arbitrary variables vi from the algorithm; Constructing a Hamiltonian that uses a binary value \(s_i\) to determine which of the two candidate values each arbitrary variable \(v_i\) should take; Constructing a binary quadratic model based on the Hamiltonian; Applying an embedding algorithm to the binary quadratic model to define an embedding in a quantum processor; Sending the binary quadratic model to the quantum processor; Obtaining samples from the binary quadratic model from the quantum processor as a solution to the problem; comprising; applying the algorithm to a problem having \(n\) arbitrary variables \(v_i\); for each of the arbitrary variables, computing the energy of the arbitrary variable as a function of the magnitude of the arbitrary variable and the current state of all other variables of the arbitrary variable; for each of the arbitrary variables, computing the respective exponential weights of the arbitrary variable for each of the respective numbers \(D_i\) of completely different values of the arbitrary variable; for each of the arbitrary variables, computing an executable region for the arbitrary variable, the executable region including a set of values that respect a set of constraints; for each of the arbitrary variables, computing a mask for the arbitrary variable at each of the respective numbers \(D_i\) of completely different values; for each of the arbitrary variables, computing a normalized probability that collectively represents the probability that the arbitrary variable takes one of the respective numbers \(D_i\) of completely different values of the arbitrary variable, proportional to the exponential weight and the mask; A method comprising.
Citation Information
Patent Citations
Adiabatic quantum computation method
JP2009524857A
Method and system for decomposing problems involving discrete optimization into multiple smaller subproblems and their use for solving problems
JP2019512779A
System, method and apparatus for sampling from a sampling server
JP2019533241A
Nested quantum annealing correction
US20170364362A1