System and method of a hybrid algorithm for finding solutions to discrete quadratic models

A hybrid algorithm using Gibbs sampling and cross-Boltzmann updates efficiently maps problems with arbitrary variables to binary quadratic models, enhancing computational efficiency and solving complex problems like protein design and resource scheduling using classical and quantum processors.

JP7868229B2Active Publication Date: 2026-06-01D WAVE SYSTEMS INC

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
D WAVE SYSTEMS INC
Filing Date
2025-06-20
Publication Date
2026-06-01

AI Technical Summary

Technical Problem

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 computation times and suboptimal solutions.

Method used

A hybrid algorithm combining Gibbs sampling and cross-Boltzmann updates is employed to efficiently map problems with arbitrary variables to a binary quadratic model, utilizing both classical and quantum processors to obtain solutions.

Benefits of technology

This approach significantly improves computational efficiency by enabling rapid and accurate solutions for problems with arbitrary variables, such as protein design and resource scheduling, by leveraging the strengths of both classical and quantum computing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007868229000066
    Figure 0007868229000066
  • Figure 0007868229000067
    Figure 0007868229000067
  • Figure 0007868229000068
    Figure 0007868229000068
Patent Text Reader

Abstract

To use Gibbs sampling and Cross-Boltzmann updates to solve discrete quadratic models.SOLUTION: Methods compute an energy of each state of each variable based on its interaction with other variables, exponential weights, and normalized probabilities proportional to the exponential weights. The energy of each variable is computed as a function of the magnitude of each variable and a current state of all other variables, exponential weights are computed, the feasible region for each variable is computed, and normalized probabilities proportional to the exponential weights and respecting constraints are computed. Methods executed via a hybrid computing system obtain two candidate values for each variable, construct a Hamiltonian that uses a binary variable to determine which candidate values each variable should take, then construct a binary quadratic model based on the Hamiltonian. Samples from the binary quadratic model are obtained via a quantum processor.SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] field This disclosure relates to a hybrid algorithm for finding solutions to discrete quadratic models using Gibbs sampling and cross-Boltzmann updates in general. [Background technology]

[0002] background Quantum processor Quantum processors can take the form of superconducting quantum processors. Superconducting quantum processors may include many superconducting qubits and associated local bias elements. They may also include coupling elements (also known as couplers) that selectively provide communicative coupling between qubits.

[0003] Further details and embodiments of exemplary quantum processors that can be used in conjunction with this system and device are described, for example, in U.S. Patents 7,533,068, 8,008,942, 8,195,596, 8,190,548 and 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. Quantum computers can provide acceleration for certain classes of computational problems, such as computational problems that simulate quantum physics.

[0005] Quantum annealing Quantum annealing is a computational method that can be used to find the 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 to move towards lower energy states because lower energy states are more stable. Quantum annealing can use quantum effects, such as quantum tunneling, as the source of delocalization to reach the energy minimum.

[0006] Quantum processors can be designed to perform quantum annealing and / or adiabatic quantum operations. The evolutionary Hamiltonian is proportional to the sum of a first term proportional to the problem Hamiltonian and a second term proportional to the delocalized Hamiltonian, and can be constructed as follows: H E ∝A(t)H P +B(t)H D In the formula, H E is the evolved Hamiltonian, H P This is the Hamiltonian of the problem, and H D is the delocalized Hamiltonian, where A(t) and B(t) are coefficients that can control the rate of evolution, and are typically in the range [0,1].

[0007] In some implementations, a time-varying envelope function can be introduced into the problem Hamiltonian. A suitable delocalized 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 accompanying 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 refers to taking a set of measurements of an analog signal or some other physical system.

[0014] In many fields, including the simulation and computing of physical systems (particularly analog computing), the aforementioned meanings can be merged. For example, a hybrid computer can draw samples from an analog computer. An analog computer is an example of a sample generator, acting as a sample provider. An analog computer can operate to provide samples from a selected probability distribution, which assigns the probability of each sampled value to each data point in the population. The population can correspond to all possible states of a processor, and each sample can correspond to each state of the processor.

[0015] Markov chain Monte Carlo Markov chain Monte Carlo (MCMC) is a class of computational techniques, including, for example, pseudo-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 in which 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 the Markov proposal process. These new points are either accepted or rejected. If a new point is rejected, a new proposal is submitted, and so on. Accepted new points are those that probabilistically converge to the target distribution.

[0017] Gibbs sampling Gibbs sampling is a Markov chain Monte Carlo (MCMC) algorithm that samples from a conditional distribution of one variable of a target distribution, where all other variables are given. 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 takes a vector of K real numbers as input and normalizes it to a probability distribution consisting of K probabilities proportional to the exponents of the input numbers. That is, after applying softmax, each component lies in the interval (0,1), and when these components are summed up, they equal 1, which can then be interpreted as a probability. Softmax is often used in neural networks to map the network's denormalized output to a probability distribution across predicted output classes.

[0019] The aforementioned examples of the related technology and their associated limitations are intended to be illustrative and not exclusive. Other limitations of the related technology will become apparent to those skilled in the art as they continue to read this specification and examine the drawings. [Overview of the Initiative] [Means for solving the problem]

[0020] Brief Overview Some classes of problems (e.g., problems with arbitrary variables) cannot be efficiently mapped to quadratic unconstrained binary optimization (QUBO) problems or Ising Hamiltonian problems. Therefore, these problems require some overhead (e.g., variable transformation) to be performed on classical or digital processors, and then the solution must be obtained by a quantum computer. Thus, it is desirable to efficiently find solutions to problems 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. The computation method in a processor-based system is described below. The method involves n arbitrary variables v i Applying an algorithm to a problem that has an arbitrary variable v i To obtain two candidate values ​​for each of and an arbitrary variable v i Each of them needs to decide which of the two candidate values ​​to take by looking at the binary values ​​s i This may include constructing a Hamiltonian using n arbitrary variables v, constructing a binary quadratic model based on the Hamiltonian, and obtaining samples from the binary quadratic model from a quantum processor as a solution to the problem. i For problems involving , the Gibbs sampler can be applied, and any variable v can be taken from the Gibbs sampler. i Two candidate values ​​can be obtained for each of n arbitrary variables v i Applying an algorithm to a problem involving the following is to calculate the energy of each state of any variable for each arbitrary variable, based on the interaction of any variable with other variables, and for each arbitrary variable, the number of completely different values ​​D of any arbitrary variable. i The process involves calculating the exponential weights for each of the arbitrary variables, and determining the value D for each of the arbitrary variables, which is proportional to the exponential weights. i This may include calculating the normalized probability of taking one of the following values: n arbitrary variables v iApplying the algorithm to a problem having the following is to calculate the energy of any variable as a function of the magnitude of any variable and the current state of all other variables for each of any variables, and for each of any variables, the number of completely different values ​​of each of the variables D i The calculation involves determining the exponential weights of each arbitrary variable for each of the variables, and for each arbitrary variable, calculating the feasible region for each arbitrary variable, wherein the feasible region includes a set of values ​​that respect the constraint set, and for each arbitrary variable, calculating the number of completely different values ​​D i The process involves calculating a mask for any variable in each of the following, and for each of the arbitrary variables, the number of different values ​​of each arbitrary variable that are proportional to the exponential weight and the mask. i This may include calculating a normalized probability that collectively represents the probability of choosing one of the options. Constructing a binary quadratic model involves s i And a new variable x using the two candidate values i Define the problem and s i This may involve transforming the problem into an optimization problem in the space of . Constructing a binary quadratic model may involve using a penalty term to relax the constrained binary optimization problem into an unconstrained binary optimization problem and finding the sum of each of the two candidate values. The method may further involve applying an embedding algorithm to the binary quadratic model to define the embedding in the quantum processor before obtaining samples from the binary quadratic model from the quantum processor. The method may involve using n arbitrary variables v until the termination condition is met. i Applying an algorithm to a problem that has an arbitrary variable v i To obtain two candidate values ​​for each of and an arbitrary variable v i Each of them needs to decide which of the two candidate values ​​to take by looking at the binary values ​​s iThe method may further include iteratively constructing a Hamiltonian using, 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 a termination condition is met. The termination condition may include determining whether a measure representing a quality assessment of any variable is met. The problem may be a resource scheduling problem. A processor-based system including at least one classical processor is operable to perform any of the above methods. The processor-based system may include a quantum processor communicatively coupled to at least one classical processor.

[0021] Protein design problems can be formulated as combinatorial optimization problems. These optimization problems can be solved using branch-bound algorithms and / or pseudo-annealing. While pseudo-annealing methods utilize the Metropolis proposal, its use becomes inefficient as the number of cases in the categorical distribution increases, resulting in longer computation times and making these methods inefficient for complex problems. This disclosure describes systems and methods useful for improving computational efficiency, which can be used, for example, when efficiently performing protein side-chain optimization. A method of operation for computing the softmax distribution of an input problem with n variables in a processor-based system is described. Each variable has a number of distinct values, D. i The method involves calculating the energy of each state of the input variable based on the interaction between each variable and other variables, and calculating the number of completely different values ​​of each variable D for each input variable. i The process involves calculating the exponential weights for each variable in each of the input problems, and for each variable in the input problem, calculating the number of completely different values ​​of the variable that are proportional to the exponential weights. iThe method involves calculating a normalized probability that collectively represents the probability of taking one of the options, and obtaining a large number of samples from the numerical values ​​of the normalized probability. The large number of samples can be obtained from the normalized probability via inverse transform sampling. The input problem may be a protein side chain optimization problem. The method involves calculating the energy of each state of each variable in the input problem based on the interaction between each variable and other variables, and for each variable in the input problem, calculating the number of completely different values ​​of the variable D i This involves calculating the numerical values ​​of the exponential weights for each variable in the input problem, and for each variable in the input problem, calculating the number of values ​​D for each variable that is proportional to the exponential weight and is a completely different value for the variable. i The method may further include calculating a normalized probability that collectively represents the probability of choosing one of the options, obtaining a large number of samples from the normalized probability, and iteratively incorporating the large number of samples into the input problem. The method may further include determining whether a termination condition is met. The termination condition may include determining whether a measure representing a quality assessment of the variables is met. A processor-based system including at least one classical processor can be operated to perform any of the above methods.

[0022] Integer problems are generally solved using branch-bound or tree-based algorithms such as dead-end removal (DEE). Under certain circumstances, integer problems can be solved by relaxing integer variables to continuous variables, but relaxing the variables does not guarantee finding the optimal solution in the runnable space. In addition, many current solvers do not scale well as the problem size increases, and therefore the computation time becomes very long, making them unsuitable for all applications. A method of computation for the softmax distribution of an input problem with n variables in a processor-based system is described. Each variable is a number D of completely different values. iThe method involves calculating the energy of each variable in the input problem as a function of the magnitude of the variable and the current state of all other variables, and for each variable in the input problem, calculating the number of completely different values ​​of the variable D. i The calculation involves determining the numerical values ​​of the exponential weights of each variable in each of the input problems, and for each variable in the input problem, calculating the feasible region for the variable, wherein the feasible region includes a set of values ​​that respect the constraint set, and for each variable in the input problem, calculating the number of completely different values ​​for each of the variables D i The process involves calculating a mask for each variable in the input problem, and for each variable in the input problem, the number of exponential weights and masks proportional to the number of completely different values ​​of the variable D. i The method involves calculating a normalized probability value representing the probability of taking one of the options, and obtaining a large number of samples from the normalized probability values. The input problem may be a constrained quadratic integer problem. The large number of samples from the normalized probability values ​​can be obtained via inverse transform sampling. The method involves calculating the energy of each variable in the input problem as a function of the magnitude of the variable and the current state of all other variables, and for each variable in the input problem, calculating the number of distinct values ​​D for each variable. i The calculation involves determining the numerical values ​​of the respective exponential weights for each variable in each of the input problems, and for each variable in the input problem, calculating the feasible region for the variable, wherein the feasible region includes a set of values ​​that respect the constraint set, and for each variable in the input problem, calculating the number of completely different values ​​for the variable D i The process involves calculating a mask for each variable in the input problem, and for each variable in the input problem, the number of exponential weights and masks proportional to the number of completely different values ​​of the variable D. iThe method may further include iteratively calculating a normalized probability of one of the values, obtaining a large number of samples from the normalized probability, and incorporating the large number of samples into the input problem. The method may further include determining whether a termination condition is met. The termination condition may include determining whether a measure representing a quality assessment of the variable is met. A processor-based system including at least one classical processor can be operated to perform any of the above methods.

[0023] A brief explanation of some of the figures in the drawing. In drawings, the same reference number identifies similar elements or actions. The size and relative position of elements in drawings are not necessarily proportional to the actual size. For example, the shapes and angles of various elements are not necessarily proportional to the actual size, and some of these elements may be arbitrarily enlarged and positioned to improve the readability of the drawing. Furthermore, the specific shapes of elements depicted are not necessarily intended to convey information about the actual shape of those elements, but may be selected solely for the purpose of making them easily recognizable in the drawing. [Brief explanation of the drawing]

[0024] [Figure 1] This is a schematic diagram of an example of a hybrid computing system that includes quantum processors and classical processors. [Figure 2] This is a flowchart illustrating an example of how a computing system works to sample from a softmax distribution across a range of categorical distributions. [Figure 3] This is a flowchart illustrating an example of how to iterate on the operation of a computing system to sample from a softmax distribution across a range of categorical distributions. [Figure 4] This is a flowchart illustrating an example of how a computing system works to sample from a softmax distribution over a set of constrained categorical distributions. [Figure 5]This is a flowchart illustrating an example of how to iterate on the operation of a computing system to sample from a softmax distribution over a constrained set of categorical distributions. [Figure 6] This is a flowchart illustrating an example of how a hybrid computing system using cross-Boltzmann updates works. [Figure 7] This is a flowchart illustrating an example of how to iterate on the operation of a hybrid computing system using cross-Boltzmann updates. [Figure 8] This is a flowchart illustrating an example of how a hybrid computing system using cross-Boltzmann updates works to sample from a softmax distribution across a range of categorical distributions. [Figure 9] This is a flowchart illustrating an example of how to iterate the operation of a hybrid computing system using cross-Boltzmann updates to sample from a softmax distribution across a range of categorical distributions. [Figure 10] This is a flowchart illustrating an example of how a hybrid computing system using cross-Boltzmann updates works to sample from a softmax distribution across a categorical distribution using constraints. [Figure 11] This is a flowchart illustrating an example of how to iterate the operation of a hybrid computing system using cross-Boltzmann updates to sample from a softmax distribution across a categorical distribution using constraints. [Figure 12] This is a flowchart illustrating an example of how a hybrid computing system operates to optimize resource scheduling. [Modes for carrying out the invention]

[0025] Detailed explanation The following descriptions include specific details to provide a thorough understanding of the various implementations disclosed. However, those skilled in the art will recognize that the implementations can be practiced without one or more of these specific details, or using other methods, components, materials, etc. In other examples, well-known structures associated with computer systems, server computers, and / or communication networks are not described or shown in detail to avoid unnecessarily obscuring the implementations.

[0026] Unless the context requires otherwise, throughout this specification and the following claims, the word “comprising” is synonymous with “including,” and is comprehensive or unrestrictive (i.e., does not exclude additional, undescribed elements or method acts).

[0027] Throughout this specification, any reference to “one implementation configuration” or “implementation configuration” means that the specific features, structure, or characteristics described in relation to the implementation configuration are included in at least one implementation configuration. Therefore, the appearance of the phrase “in one implementation configuration” or “in a implementation configuration” in various places throughout this specification does not necessarily refer to the same implementation configuration. Furthermore, specific features, structure, or characteristics can be combined in any suitable manner in one or more implementation configurations.

[0028] Where used in this specification and the attached claims, singular forms such as "a," "an," and "the" include plural referents unless explicitly indicated by the context. It should also be noted that the term "or" is generally used to include "and / or" unless explicitly indicated by the context.

[0029] Throughout this specification and the accompanying claims, the terms “sample,” “sampling,” and “sample generator” are intended to have their corresponding meanings in the fields of statistics and electrical engineering. In statistics, a sample is a subset of a population, for example, individual data, data points, objects, or a subset 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] Hybrid computing systems can draw samples from analog processors. Analog processors can be configured to provide samples from statistical distributions, thus becoming sample generators. An 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 all possible states of the processor.

[0031] The headings and abstracts of this disclosure provided herein are for convenience only and should not be construed as representing the scope or meaning of any implementation.

[0032] Figure 1 shows a hybrid computing system 100, which includes a classical computer 102 coupled to a quantum computer 104. An example of the classical computer 102 includes a digital processor (CPU) 106 that can be used to perform classical digital processing tasks, and is therefore referred to as a classical processor in this specification and in the claims.

[0033] A classic computer 102 may include at least one digital processor (such as a central processor unit 106 having one or more cores), at least one system memory 108, and at least one system bus 110 that connects various system components (including connecting the system memory 108 to the central processor unit 106). The digital processor may be any logic processing unit, such as one or more central processing units ("CPU"), graphics processing units ("GPU"), digital signal processors ("DSP"), application-specific integrated circuits ("ASIC"), programmable gate arrays ("FPGA"), or programmable logic controllers (PLC).

[0034] A classic 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] The system bus 110 can employ any known bus structure or architecture, including a memory bus coupled to a memory controller, a peripheral bus, and a local bus. The system memory 108 may include non-volatile memory such as read-only memory ("ROM"), static random-access memory ("SRAM"), and flash nano, as well as volatile memory (not shown) such as random-access memory ("RAM").

[0036] Furthermore, the classical computer 102 may also include other non-temporary 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 may be a CD-ROM or DVD, and the magnetic disk may be a magnetic floppy disk or diskette. The non-volatile memory 120 can communicate with a digital processor via a system bus 110 and may include a suitable interface or controller 122 coupled to the system bus 110. The non-volatile memory 120 may function as long-term storage for processor or computer-readable instructions, data structures, or other data (sometimes called program modules) for the classical computer 102.

[0037] While classic computers have been described as employing hard disks, optical disks, and / or magnetic disks, those skilled in the art will understand that other types of non-volatile computer-readable media, such as magnetic cassettes, flash memory cards, flash memory, ROM, and smart cards, can also 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 cached in solid-state disks that provide non-volatile memory using integrated circuits.

[0038] Various processor or computer-readable instructions, data structures, or other data can be stored in system memory 108. For example, system memory 108 can store instructions for communicating with a remote client and instructions for scheduling the use of resources, including resources on classical computer 102 and quantum computer 104. For example, system memory 108 can 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 actions of methods 200 (Figure 2) to 1100 (Figure 11).

[0039] In some implementations, system memory 108 can store processor or computer-readable computation instructions for performing pre-processing, co-processing, and post-processing on the quantum computer 104. System memory 108 can also store a quantum computer interface instruction set for interacting with the quantum computer 104.

[0040] The quantum computer 104 may include one or more quantum processors, such as the quantum processor 124. The quantum computer 104 may be provided in an isolated environment, such as 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 this disclosure, quantum processors such as the quantum processor 124 can be designed to perform quantum annealing and / or adiabatic quantum operations. An example of a quantum processor is 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 bonds, etc.), and protein folding is the physical process by which a protein chain acquires its natural three-dimensional structure. Therefore, the problem of protein folding can be summarized as determining the tertiary structure of a protein, taking into account the sequence of amino acids. The inverse problem (protein design) is the problem of finding the sequence of amino acids that forms a desired folded structure with desired properties. Examples of desired properties include pharmacokinetics, binding affinity, thermal stability, function, flexibility, developability, and / or manufacturability.

[0042] Side-chain optimization is a part of protein design that formulates a combinatorial optimization problem to find the optimal configuration of amino acid sequences that minimizes the energy of some objective function. Side-chain optimization is the heart of computational peptide design and has applications in the biochemistry and pharmaceutical industries. Side-chain optimization is well represented as a combinatorial optimization problem. This optimization problem can be solved using branched and limited algorithms and / or pseudo-annealing. An example of an algorithm used for side-chain optimization is dead-end removal (DEE). Pseudo-annealing methods use the Metropolis proposal, in which a change of categorical variables is proposed and then the acceptance rate is measured. However, as the number of cases in the categorical distribution increases, the use of the Metropolis proposal becomes inefficient, and therefore computation time increases, making these methods inefficient for complex problems.

[0043] This disclosure describes systems and methods useful for improving computational efficiency, which can be used, for example, when efficiently performing protein side chain optimization. Classical computers can use Markov chain Monte Carlo (MCMC) methods (e.g., pseudo-annealing, parallel tempering, population annealing, etc.) and the Metropolis proposed treatment can be replaced with Gibbs sampling.

[0044] The side-chain optimization problem is,

number

number

[0045] At any predetermined stage of the MCMC method, the Metropolis proposed procedure is replaced by Gibbs sampling. Variable x i The effective energy of each state is calculated based on its interaction with other variables. i And all cases j=(1,2,...,D i Energy relative to )

number

number

number

[0046] Variable x i The probability that takes state j is given by weight w ijIt is proportional to. This probability is known as the softmax probability distribution. To obtain a sample from the probability distribution, therefore, the variable

number

number

[0047] Samples can be obtained from the softmax distribution of equation (6) using standard algorithms or methods, such as inverse transform sampling.

[0048] The resulting samples can be further refined 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] Figure 2 is a flowchart illustrating an example of Method 200, the operation of a computing system for sampling from a softmax distribution across a case of categorical distributions. Method 200 can be run on a hybrid computing system (e.g., hybrid computing system 100 in Figure 1) including at least one digital or classical processor and a quantum processor, or it can be run on a classical computing system including at least one digital or classical processor.

[0050] Method 200 includes acts 201 to 206. However, those skilled 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 acts may be changed.

[0051] Method 200 starts from 201, for example, in response to a call from another routine.

[0052] In 202, the digital processor provides the effective energy for an input problem with n categorical variables.

number

number

[0053] In 203, the digital processor uses the variable x i Exponential weights w for all cases j ij Perform the calculation (equation 7).

[0054] In 204, the digital processor calculates the weights in 203. ij Each variable x is proportional to i The normalized probability p of taking state j ij Perform the calculation (equation 8).

[0055] In 205, the digital processor uses, for example, inverse transform sampling to determine the probability distribution p ij Obtain a sample from.

[0056] In 206, method 200 terminates and will not start again until it is called again, for example.

[0057] Figure 3 is a flowchart of an example of Method 300, an iterative operation of a computing system for sampling from a softmax distribution across a case of categorical distributions. Method 300 can be run on a hybrid computing system (e.g., hybrid computing system 100 in Figure 1) including at least one digital or classical processor and a quantum processor, or it can be run on a classical computing system including at least one digital or classical processor.

[0058] Method 300 includes acts 301 to 308. 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.

[0059] Method 300 begins with 301, for example, in response to a call from another routine.

[0060] In 302, the digital processor provides the effective energy for an input problem with n categorical variables.

number

number

[0061] In 303, the digital processor uses the variable x i Exponential weights w for all cases j ij Perform the calculation (equation 7).

[0062] In 304, the digital processor calculates the weights in 303. ij The normalized probability p for each variable i to take state j is proportional to the normalized probability p. ij Perform the calculation (equation 8).

[0063] In the 305, the digital processor uses, for example, inverse transform sampling to determine the probability distribution p ij Obtain a sample from.

[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 met. If the termination condition is met, control is transferred to 308. Otherwise, control is transferred to 302, and according to equation (6), the effective energy for the sample-encompassing problem is calculated.

number

[0066] In 308, method 300 terminates and will not start again until it is called again, for example.

[0067] Constrained integer problems are mathematical optimization or feasibility problems in which some or all of the variables are restricted to integers and must respect a set of constraints. Integer problems are generally solved using branch-bound or tree-based algorithms such as dead-end removal (DEE). Under certain circumstances, integer problems can be solved by relaxing the integer variables to continuous variables, but relaxing the variables does not guarantee finding the optimal solution in feasible space. In addition, many current solvers do not scale well as the problem size increases, and therefore the computation time becomes very long, making them unsuitable for all applications.

[0068] This disclosure describes a system and method for finding solutions to constrained quadratic integer problems using a computing system (e.g., the hybrid computing system 100 in Figure 1) comprising at least one classical or digital computer and a quantum computer, or by a classical computing system comprising at least one digital or classical computer. The classical or digital computer may employ Markov chain Monte Carlo (MCMC) methods (e.g., pseudo-annealing, parallel tempering, population annealing, etc.) and may replace the Metropolis proposed treatment with constrained Gibbs sampling.

[0069] integer variable x i The effective energy E can be calculated by a digital processor as a function of its integer magnitude and the current state of all other variables.

number

[0070] All variables xi and energy for all cases or values ​​j

number

number

number

number

[0071] Samples can be obtained from a softmax distribution using standard algorithms or methods, such as inverse transform sampling. However, the probability distribution p(x) in equation 11 is different. i Sampling from ) results in a violation of one or more constraints of the problem and therefore does not provide a solution to the constrained quadratic integer problem in question.

[0072] Constraint C

number

number

[0073] Variable x i Mask size M j teeth,

number

[0074] Therefore, the variable x is only available in the executable region. i The probability that it takes the value j is,

number

[0075] Samples can be obtained, for example, from the above probability distribution (Equation 15) using inverse transform sampling.

[0076] The resulting samples can be further refined 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 illustrating an example of Method 400, the operation of a computing system for sampling from a softmax distribution across a case of categorical distributions using constraints. Method 400 can be run on a hybrid computing system (e.g., hybrid computing system 100 in Figure 1) including at least one digital or classical processor and a quantum processor, or it can be run on a classical computing system including at least one digital or classical processor.

[0078] Method 400 includes acts 401 to 408. 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 acts may be changed.

[0079] Method 400 begins at 401, for example, in response to a call from another routine.

[0080] At 402, the digital processor computes the effective energy E of the integer variables of an input problem having n integer variables. The energy E of an integer variable x i is computed 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 an input set at 401. ) is computed 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 an input set at 401.

[0081] At 403, the digital processor computes, according to Equation 10, each variable x i and the exponential weight w ij for all cases j.

[0082] At 404, the digital processor computes, according to Equation 13, the executable region i for each integer variable x

Number

Number

[0083]

[0084] i and the mask M j for each variable x taking the value j according to Equation 14. i At 406, the digital processor computes the normalized probability p ij for each variable x i taking the state j only within the executable region, where the probability that the variable x takes the state j is according to Equation 15, the exponential weight

Number

[0085] ​And it is proportional to the mask M.

[0085] In 407, the digital processor uses, for example, inverse transform sampling to obtain the probability distribution p calculated in 406. ij Obtain a sample from.

[0086] In 408, method 400 terminates and will not start again until it is called again, for example.

[0087] Figure 5 is a flowchart of an example of Method 500, an iterative operation of a computing system for sampling from a softmax distribution over a constrained case of categorical distributions. Method 500 can be run on a hybrid computing system (e.g., hybrid computing system 100 in Figure 1) including at least one digital or classical processor and a quantum processor, or by a classical computing system including at least one digital or classical processor.

[0088] Method 500 includes acts 501 to 510. 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.

[0089] Method 500 begins with 501, for example, in response to a call from another routine.

[0090] In 502, the digital processor calculates the effective energy E of the integer variable in the input problem, as described above with reference to act 402 of method 400.

[0091] In 503, the digital processor, according to equation 10, calculates each variable x i and the exponential weight w for all cases j ij Perform the calculation.

[0092] In 504, the digital processor uses equation 13 to determine each integer variable x i executable region for

number

number

[0093] In 505, the digital processor takes the value j for each variable x according to equation 14. i Mask M j Perform the calculation.

[0094] In 506, the digital processor considers each variable x only within the executable region. i The normalized probability p that incorporates state j. ij Calculate the variable x i The probability of adopting state j is given by the exponential weights according to equation 15.

number

[0095] In 507, the digital processor uses, for example, inverse transform sampling to calculate the probability distribution p calculated in 506. ij Obtain a sample from.

[0096] In 508, the digital processor incorporates the samples obtained in 507 into the input problem of 502.

[0097] In step 509, the digital processor checks whether the termination condition is met. If the termination condition is met, control is transferred to step 510. Otherwise, control is transferred to step 502, and the effective energy E is calculated again for the problem into which the sample was incorporated. The termination condition may be a determination that a measure or parameter representing the quality of a variable has been met. An example of a measure of the quality of a variable is the energy of the variable. The determination is obtained, for example, based on an evaluation of the variable, which is performed by the digital processor.

[0098] In 510, method 500 terminates and will not start again until it is called again, for example.

[0099] Some classes of problems (e.g., problems with arbitrary variables) cannot be efficiently mapped to quadratic unconstrained binary optimization (QUBO) problems or Ising Hamiltonian problems. Therefore, these problems require some overhead (e.g., variable transformation) to be performed on classical or digital processors, and then the solution must be obtained by a quantum computer. Thus, it is desirable to efficiently find solutions to problems 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 this disclosure and the appended claims, the term "arbitrary variable" is used to indicate continuous, discrete, or binary variables.

[0100] This disclosure describes a system and method for finding solutions to problems with arbitrary variables using cross-Boltzmann updates, using a hybrid computing system (e.g., hybrid computing system 100 in Figure 1) comprising at least one classical or digital computer and a quantum computer. At least one classical or digital computer constructs a binary problem using cross-Boltzmann updates, and the binary problem can then be solved by the quantum computer.

[0101] The problem may involve a large number of arbitrary variables v, which may be continuous, discrete, or binary. Digital computers can apply algorithms to problems with a large number of arbitrary variables, and old values

number

number

number

[0102] Next, variable v i and v j The decision of whether or not to update can be expressed through the Hamiltonian H.

number

[0103] binary variable s i (For example, factorial Bernoulli decisions), that is, s i ~p(s i |v t-1 ) (20) This can be replaced with a sample from the Boltzmann distribution, as follows:

number

[0104] non-binary variable v i For each of these, the digital processor can select two candidate values. The digital processor can select candidate values ​​using a native sampler in the space of integers or continuous variables. In at least one implementation, the native sampler may be a Gibbs sampler. For example, the native sampler may select two independent samples X 1 and X 2 It can return the following: The digital processor then processes the binary variable s i Using this, a new variable x i It is possible to define this.

number

[0105] Discrete, non-binary variable v i In this case, the problem can be transformed into a quadratic unconstrained binary optimization (QUBO) problem in the following way. The energy function E is equivalent to that of QUBO.

number

[0106] The above equation 24 is,

number

[0107] The above problem can be solved directly using a quantum processor (e.g., a quantum annealer) or via classical pseudo-annealing. However, directly solving equation 24 can be inefficient due to the large number of qubits per variable.

[0108] Instead of directly finding the solution to equation 24, a quantum processor can be used to find the solution to a subproblem of the form shown in equation 25 below.

number

[0109] The problem in equation 25 is similar to the input problem, but instead of finding the sum of each of all possible values ​​of the variable x, it finds the sum of each of two values ​​selected by the digital processor using a native sampler. Equation 25 is,

number

number

[0110] Figure 6 is a flowchart illustrating an example of Method 600 for the operation of a hybrid computing system using cross-Boltzmann updates. Method 600 can be implemented on a hybrid computing system (e.g., hybrid computing system 100 in Figure 1) which includes at least one digital or classical processor and a quantum processor.

[0111] Method 600 includes acts 601 to 608. 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.

[0112] Method 600 begins with 601, for example, in response to a call from another routine.

[0113] In the 602, the digital processor handles n arbitrary variables x i An algorithm is applied to an input problem having n variables. Any n variables can be continuous, discrete, or binary. The input problem can be received as part of an input set in 601. A digital processor can apply a native solver (e.g., a Gibbs sampler) to the input problem.

[0114] In 603, the digital processor obtains two candidate values ​​for each variable in the input problem via the native solver applied in 602. These candidate values ​​can be independent samples.

[0115] In the 604, the digital processor uses binary values ​​s i Using the Hamiltonian H in question, and the old value v t-1 A variable v that has i The updated value is v t If you want to incorporate it, i The variable takes the value 1, 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. Its details are explained above, referring to Equation 19.

[0117] In 605, the digital processor constructs a binary quadratic model of the problem from the Hamiltonian H of act 604. i Depending on the properties of the new variable x, the digital processor reduces the binary quadratic model in different ways. i As explained in more detail in the first reference to equation 22 above, s i It is defined as follows:

number

[0118] For discrete, non-binary variables, as explained in more detail in the first reference to equation 26 above, subproblem E, i.e.,

number

[0119] In 606, the digital processor transmits a binary quadratic model of 605 to the quantum processor. In at least one implementation, an embedding algorithm (e.g., a minor embedding) is applied to the model of action 605, generating an embedding problem that can be transmitted to the quantum processor. Examples of embedding techniques can be found in U.S. Patents 7,984,012, 8,244,662, 9,727,823, 9,875,215 and 1,078,9540.

[0120] In 607, the digital processor receives samples from the model transmitted in 605, which were generated by the quantum processor. These samples represent solutions to the input problem.

[0121] Method 600 terminates at 608 and does not start again until it is called again, for example.

[0122] Figure 7 is a flowchart of an example of method 700 for iterating the operation of a hybrid computing system using cross-Boltzmann updates. Method 700 can be performed on a hybrid computing system (e.g., hybrid computing system 100 in Figure 1) which 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 illustrative, and that in some implementations, certain acts may be omitted, additional acts may be added, and / or the order of acts may be changed.

[0124] Method 700 begins with 701, for example, in response to a call from another routine.

[0125] In 702, the digital processor takes n arbitrary variables x as described above with reference to act 602 of method 600. i Apply the algorithm to an input problem having [a specific characteristic].

[0126] In 703, the digital processor obtains two candidate values ​​for each variable in the input problem, as described above with reference to act 603 of method 600.

[0127] In 704, the digital processor, as described above with reference to act 604 of method 600, provides a binary value s i The Hamiltonian H in question is constructed using [this method].

[0128] In 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, referring to act 606 of method 600.

[0130] In 707, the digital processor receives samples from the model sent in 706, 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 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 referring 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 categorical distributions. Method 800 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.

[0136] Method 800 includes acts 801-810. 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 acts may be changed.

[0137] Method 800 begins at 801, for example, in response to a call from another routine.

[0138] At 802, the digital processor computes the energy

Number

Number

[0139] for all cases j of the variable x i (Equation 7). ij At 804, the digital processor computes the weight w

[0140] computed at 803 ijThe normalized probability p for each variable i to take state j is proportional to the normalized probability p. ij Perform the calculation (equation 8).

[0141] In the 805, the digital processor obtains two candidate values ​​for each variable in the input problem through sampling from probabilities calculated in the 804. These candidate values ​​can be independent samples.

[0142] In the 806, the digital processor, as described in the first reference of equation 19 above, uses binary values ​​s i Using the Hamiltonian H in question, and the old value v t-1 A variable v that has i The updated value is v t If you want to incorporate it, i The variable takes the value 1, and the Hamiltonian H depends on the binary variable s.

number

[0143] In 807, the digital processor constructs a binary quadratic model of the problem from the Hamiltonian H of act 806. Depending on the properties of any variables, the digital processor reduces the binary quadratic model in different ways, as described above with reference to act 605 of method 600.

[0144] In 808, the digital processor sends a binary quadratic model to the quantum processor. In at least one implementation, an embedding algorithm (e.g., a minor embedding) is applied to the model of action 807, generating an embedding problem that can be sent to the quantum processor.

[0145] In the 809, the digital processor receives samples from the model transmitted in the 808, which are generated by the quantum processor. These samples represent solutions to the input problem.

[0146] In 810, method 800 has finished and will not start again until it is called again, for example.

[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 a categorical distribution. The method 900 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.

[0148] The method 900 includes acts 901-912. However, those skilled 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] The 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 by referring to act 802 of method 800.

Number

[0151] At 903, the digital processor computes the exponential weights w for all cases j of the variable x i (Equation 7). ij (Equation 7).

[0152] At 904, the digital processor computes the normalized probability p that each variable i takes on state j, which is proportional to the weights w computed at 903 ij (Equation 8). 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] In 906, the digital processor, as described above with reference to act 806 of method 800, provides a binary value s i The Hamiltonian H in question is constructed using [this method].

[0155] In 907, the digital processor constructs a 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] In action 908, the digital processor sends a binary quadratic model to the quantum processor. In at least one implementation, an embedding algorithm (e.g., a minor embedding) is applied to the model in action 907, generating an embedding problem that can be sent to the quantum processor.

[0157] In 909, the digital processor receives samples from the model transmitted in 908, which were generated by the quantum processor. These samples represent solutions to the input problem.

[0158] In the 910, the digital processor incorporates the sample received by the 909 into the input problem of the 902.

[0159] In 911, the digital processor checks whether the termination condition is met. If the termination condition is met, control is transferred to 912. Otherwise, control is transferred to 902, and the digital processor checks the effective energy of the input problem into which the sample was incorporated.

number

[0160] In 912, method 900 terminates and will not start again until it is called again, for example.

[0161] Furthermore, methods 800 and 900 can also be applied to finding solutions to constrained problems (e.g., constrained quadratic integer problems) where it is beneficial to obtain samples from a categorical distribution, as described above with reference to method 400 in Figure 4 and method 500 in Figure 5.

[0162] Figure 10 is a flowchart of an example of Method 1000, an example of how a hybrid computing system operates using cross-Boltzmann updates to sample from a softmax distribution across a case of categorical distributions using constraints. Method 1000 can be run on a hybrid computing system (e.g., hybrid computing system 100 in Figure 1) which includes at least one digital or classical processor and a quantum processor.

[0163] Method 1000 includes acts 1001 to 1012. 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 acts may be changed.

[0164] Method 1000 starts from 1001, for example, in response to a call from another routine.

[0165] In 1002, the digital processor calculates the effective energy E of an integer variable in an input problem having n integer variables. i Energy E(x i ) is calculated according to equation 9 as a function of the magnitude of the integer and the current state of other variables. The input problem can be received as part of the input set in 1001.

[0166] In 1003, the digital processor, according to equation 10, calculates each variable x i and the exponential weight w for all cases jij Perform the calculation.

[0167] In 1004, the digital processor, according to equation 13, calculates each integer variable x i executable region for

number

[0168] In 1005, the digital processor calculates each variable x having a value j according to equation 14. i Mask M j Perform the calculation.

[0169] In 1006, the digital processor considers each variable x only within the executable region. i The normalized probability p that incorporates state j. ij Calculate the variable x i The probability of adopting state j is given by the exponential weights according to equation 15.

number

[0170] In step 1007, the digital processor obtains two candidate values ​​for each variable in the input problem through sampling from the probabilities calculated in step 1006. These candidate values ​​may be independent samples.

[0171] In 1008, the digital processor, as described in the first reference of equation 19 above, uses binary values ​​s i Using the Hamiltonian H in question, and the old value v t-1 A variable v that has i The updated value is v t If you want to incorporate it, i The variable takes the value 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. The variable x i Depending on the nature of the digital processor, it reduces the binary quadratic model in different ways, as described above with reference to act 605 of method 600.

[0173] In action 1010, the digital processor sends a binary quadratic model to the quantum processor. In at least one implementation, an embedding algorithm (e.g., a minor embedding) is applied to the model in action 1009, generating an embedding problem that can be sent to the quantum processor.

[0174] In step 10¹¹, the digital processor receives a sample from the model transmitted in step 10¹¹, which was generated by the quantum processor. The sample represents the solution to the input problem.

[0175] In 1012, method 1000 terminates and will not start again until it is called again, for example.

[0176] Figure 11 is a flowchart of an example of method 1100, an iterative operation of a hybrid computing system using cross-Boltzmann updates for sampling from a softmax distribution across a case of categorical distributions using constraints. Method 1100 can be run on a hybrid computing system (e.g., hybrid computing system 100 in Figure 1) which includes at least one digital or classical processor and a quantum processor.

[0177] Method 1100 includes acts 1101 to 1114. 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 acts may be changed.

[0178] Method 1100 begins with 1101, for example, in response to a call from another routine.

[0179] In 1102, the digital processor calculates the effective energy E of the integer variables in an input problem having n integer variables, as described above with reference to act 1002 of method 1000.

[0180] In 1103, the digital processor calculates each variable x according to equation 10. i and the exponential weight w for all cases j ij Perform the calculation.

[0181] In 1104, the digital processor, according to equation 13, calculates each integer variable x i executable region for

number

[0182] In 1105, the digital processor calculates each variable x having a value j according to equation 14. i Mask M j Perform the calculation.

[0183] In 1106, the digital processor considers each variable x only within the executable region. i The normalized probability p that incorporates state j. ij Calculate the variable x i The probability of adopting state j is given by the exponential weights according to equation 15.

number

[0184] In step 1107, the digital processor obtains two candidate values ​​for each variable in the input problem through sampling from probabilities calculated in step 1106. These candidate values ​​may be independent samples.

[0185] In 1108, the digital processor, as described above with reference to act 1008 of method 1000, provides a binary value s i The Hamiltonian H in question is constructed using [this method].

[0186] In 1109, the digital processor constructs a 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] In 1110, the digital processor transmits the binary quadratic model of act 1109 to the quantum processor, as described above with reference to act 1010 of method 1000.

[0188] In 1111, the digital processor receives samples from the model transmitted in 1110, which were generated by the quantum processor. These samples represent solutions to the input problem.

[0189] In 1112, the digital processor incorporates the sample received in 1111 into the input problem.

[0190] In step 1113, the digital processor checks whether the termination condition is met. If the termination condition is met, control is transferred to step 1114. Otherwise, control is transferred to step 1102, and the digital processor checks the effective energy of the input problem into which the sample was incorporated.

number

[0191] In 1114, method 1100 terminates and will not start again until it is called again, for example.

[0192] The systems and methods described above can be used to optimize resource scheduling, for example, scheduling equipment and / or personnel for assigning work at a given location. Resource scheduling is an NP-hard problem and can be formulated, for example, as a linear integer program. Linear integer programs can be solved using commercially available software, such as the SCIP solver, CPLEX® optimizer, or Gurobi® optimizer. However, formulating resource scheduling as an integer linear programming introduces binary variables to enforce logical constraints, thereby increasing complexity and, consequently, the computation time required to solve the resource scheduling problem. Longer computation times mean that resource managers spend a great deal of time allocating resources to jobs, shifts, or locations, leading to increased operational inefficiency.

[0193] Resource scheduling can be formulated as a discrete quadratic model f, which encodes a one-hot constraint, and its solution is then obtained on a quantum processor. Such a model can be thought of as a binary quadratic model with a one-hot constraint, as described above with reference to equation 19.

number

[0194] Variable x d,i This can be defined for each resource i and each day d. Resources can be started and used at various times, between various time intervals, 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)This indicates that resource i is started on day d, at time s, for a duration u, in department j, and at location l. If the above formulation considers only the start time, it is impossible for any of the available combinations of time, duration, department, and location described to occur simultaneously.

number

[0195] set S d,i By expanding this to Example 0 (indicating that no example has been selected), the above inequality can be transformed into an equality.

number

[0196] In some implementations, it is desirable to schedule specific resources (e.g., more efficient resources, new resources, etc.) to specific jobs, shifts, or locations, preferably without introducing new variables to avoid increasing the complexity of the problem. Resource scheduling problems can be optimized by biasing individual resources.

number

[0197] Resource demand can be optimized by minimizing the interval between the scheduled time and the required time for any given day, time, department, and location. Function f1 minimizes the interval between the scheduled resource and the resource demand.

Number

[0198] Also, in order to ensure that each resource is allocated a fixed number of times 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 a set of planned times.

Number

[0199] In some implementations, it may be desirable to add another objective function f3 to ensure that a non - activity period (e.g., two consecutive days of inactivity) is scheduled for a given resource, 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, for example, according to the type or location of the assignment.

[0203] The time between two consecutive shifts may vary, for example, depending on the physical distance between the two consecutive shifts or on the periodic maintenance of the equipment. In one exemplary implementation, the time between shifts for a resource may be at least 15 hours.

number

[0204] Each resource is allocated a time period close to the planned number of hours.

[0205] Each resource can be allocated a scheduled period of inactivity. For example, equipment can be idle for one or two consecutive days per week for weekly routine maintenance.

[0206] Each department is allocated closed resources to meet its daily and weekly resource requirements.

[0207] Multiple departments or locations can be optimized together and the same resources can be shared.

[0208] Next, the binary quadratic model constructed using the constraints described above can be solved using a hybrid computing system (e.g., hybrid computing system 100 in Figure 1) using one of the methods 600, 700, 800, 900, 1000, or 1100 shown in Figures 6, 7, 8, 9, 10, and 11, respectively.

[0209] Figure 12 is a flowchart illustrating an example of Method 1200, an example of how a hybrid computing system operates to optimize resource scheduling. Method 1200 can be implemented on a hybrid computing system (e.g., hybrid computing system 100 in Figure 1) which includes at least one digital or classical processor and a quantum processor.

[0210] Method 1200 includes acts 1201 to 1206. However, those skilled 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.

[0211] Method 1200 begins with 1201, for example, in response to a call from another routine. Method 1200 may take as an input set data about each resource (e.g., planned availability and planned downtime) as well as data about each work unit and location (e.g., required resources).

[0212] In 1202, the digital processor formulates the input data into a set of constraints for each resource, day, time, department, and location. In at least one implementation, the digital processor formulates the following constraints: Each resource is allocated working hours based on resource availability. Shift length may vary, for example, depending on the type or location of the assignment. The time between two consecutive shifts may vary, for example, depending on the distance between the physical locations of the two consecutive shifts or due to scheduled equipment maintenance. Each resource is allocated a number of hours close to the planned number. Each resource may be allocated a scheduled period of inactivity. Each department is allocated closed resources to the required number of resources per day and per week.

[0213] In 1203, the digital processor constructs a binary quadratic model based on the constraint set formulated in 1202. The digital processor can employ any of the methods 600, 700, 800, 900, 1000, and 1100 shown in Figures 6, 7, 8, 9, 10, and 11, respectively.

[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., a minor embedding) is applied to the model in action 1203, generating an embedding problem that can be sent to the quantum processor.

[0215] In step 1205, the digital processor receives samples from the model transmitted in step 1204, which were generated by the quantum processor. These samples represent solutions to the input problem.

[0216] In 1206, method 1200 terminates and will not start again until it is called again, for example.

[0217] The methods, processes, or techniques described above can be implemented by a series of processor-readable instructions stored in one or more non-temporary processor-readable media. Some examples of the methods described above are partially performed by a special device (e.g., a computer including at least one digital processor) such as an adiabatic quantum computer or quantum annealer or system for programming or controlling the operation of an adiabatic quantum computer or quantum annealer. The methods, processes, or techniques described above may include a variety of actions, but those skilled in the art will understand that in alternative examples certain actions may be omitted and / or additional actions may be added. Those skilled in the art will understand that the order of the actions shown is for illustrative purposes only and may be changed in alternative examples. Some examples of actions or operations of the methods, processes, or techniques described above are performed iteratively. Some actions of the methods, processes, or techniques described above may be performed between each iteration, after a number of iterations, or at the end of all iterations.

[0218] The above description of the implementations presented, including those described in the abstract, is not intended to be exhaustive or to limit the implementations to the exact forms disclosed. Certain implementations and examples are described herein for illustrative purposes only, but various equivalent modifications can be made without departing from the spirit and scope of this disclosure, as will be recognized by those skilled in the art. The teachings of various implementations provided herein are not necessarily limited to the examples of quantum computation methods generally described above, but can also be applied to other methods of quantum computation.

[0219] The various implementations described above can be combined to provide further implementations. All U.S. patent applications, U.S. patent applications, foreign patents and foreign patent applications referred to and / or listed in the application data sheet by the same applicant, including but not limited to U.S. Patent No. 7,533,068, U.S. Patent Publication No. 20200234172, 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. 1,078,9540 and U.S. Provisional Patent Application No. 62 / 951,749, are incorporated herein by reference in their entirety.

[0220] These and other modifications to the implementation can be made in accordance with the detailed description above. In general, the terms used in the following claims should not be interpreted as limiting the claims to any specific implementation disclosed herein and in the claims, but rather as encompassing all possible implementations, along with the entire range of equivalents to which such claims are entitled. Accordingly, the claims are not limited by this disclosure.

Claims

1. A method for calculating the softmax distribution of an input problem with n variables in a processor-based system, wherein each variable has a completely different value, and each of the number D i It is a method of obtaining, For each variable in the aforementioned input problem, the energy of each state of the variable in the aforementioned input problem is calculated based on the interaction between each variable and the other variables. For each variable in the aforementioned input problem, the number D of each variable is a completely different value of the aforementioned variable. i Calculate the respective exponential weights of the aforementioned variables in each of the above, For each variable in the aforementioned input problem, the number D is proportional to the exponential weight, and the value of the variable is completely different from the value of the variable. i This involves calculating a normalized probability that collectively represents the probability of choosing one of the options, Obtaining a large number of samples from the aforementioned normalized probability values ​​and Methods that include...

2. The method according to claim 1, wherein obtaining a large number of samples from the normalized probability includes obtaining a large number of samples from the normalized probability via inverse transform sampling.

3. The method according to claim 2, wherein obtaining a large number of samples from the normalized probability values ​​includes obtaining a large number of samples from a quantum processor.

4. Obtaining a large number of samples from the quantum processor To obtain two candidate values ​​for each variable, Construct a Hamiltonian using the binary value s i to determine which of the two candidate values ​​each variable should take, Constructing a binary quadratic model based on the aforementioned Hamiltonian, Programming the binary quadratic model on the quantum processor, The method according to claim 3, including the method described in claim 3.

5. The method of claim 4, further comprising applying an embedding algorithm to the binary quadratic model in order to define the embedding in the quantum processor before programming the binary quadratic model on the quantum processor using the embedding.

6. The method according to claim 1, wherein calculating the energy of each state of each variable in the input problem includes calculating the energy of each state of each variable in the protein side chain optimization problem.

7. Until the termination condition is met, For each variable in the aforementioned input problem, the energy of each state of the variable is calculated based on the interaction between each variable and the other variables. For each variable in the aforementioned input problem, the number D of each variable is a completely different value of the aforementioned variable. i Calculate the numerical values ​​of the respective exponential weights of the aforementioned variables in each of the above, For each variable in the aforementioned input problem, the number D is proportional to the exponential weight, and the value of the variable is completely different from the value of the variable. i This involves calculating a normalized probability that collectively represents the probability of choosing one of the options, Obtaining a large number of samples from the aforementioned normalized probabilities, To incorporate the aforementioned numerous samples into the input problem and Repeating this over and over again The method according to claim 1, further comprising:

8. This further includes determining whether the termination condition has been met, The method according to claim 7, wherein determining whether the termination condition is met includes determining whether a measure representing the quality evaluation of the variable is met.

9. A method for calculating the softmax distribution of an input problem with n variables in a processor-based system, wherein each variable has a completely different value, and each of the number D i It is a method of obtaining, For each variable in the aforementioned input problem, the energy of the variable in the aforementioned input problem is calculated as a function of the magnitude of the variable and the current state of all other variables. For each variable in the aforementioned input problem, the number D of each variable is a completely different value of the aforementioned variable. i Calculate the numerical values ​​of the exponential weights of the aforementioned variables in each of the above, For each variable in the aforementioned input problem, the calculation involves determining the executable region for that variable, wherein the executable region includes a set of values ​​that respect the constraint set. For each variable in the aforementioned input problem, the number D of each variable is a completely different value of the aforementioned variable. i Calculate a mask for each of the aforementioned variables, For each variable of the input problem, calculate a numerical value of a normalized probability representing the probability of taking one of the respective numbers D of completely different values of the variable, which is proportional to the exponential weight and the mask. i and calculating a numerical value of a normalized probability representing the probability of taking one of them. Obtaining a large number of samples from the aforementioned normalized probability values ​​and Methods that include...

10. The method according to claim 9, wherein obtaining a large number of samples from the normalized probability values ​​includes obtaining a large number of samples from a quantum processor.

11. Obtaining a large number of samples from the quantum processor To obtain two candidate values ​​for each variable, Construct a Hamiltonian using the binary value s i to determine which of the two candidate values ​​each variable should take, Constructing a binary quadratic model based on the aforementioned Hamiltonian, Programming the binary quadratic model on the quantum processor, The method according to claim 10, including the method described in claim 10.

12. The method according to claim 11, further comprising applying an embedding algorithm to the binary quadratic model in order to define the embedding in the quantum processor before programming the binary quadratic model on the quantum processor using the embedding.

13. The method according to claim 9, wherein calculating the energy of each variable in the input problem includes calculating the energy of each variable in a constrained quadratic integer problem.

14. The method according to claim 9, wherein obtaining a large number of samples from the normalized probability values ​​includes obtaining a large number of samples from the normalized probability values ​​via inverse transform sampling.

15. Until the termination condition is met, For each variable in the aforementioned input problem, the energy of the variable in the aforementioned input problem is calculated as a function of the magnitude of the variable and the current state of all other variables. For each variable in the aforementioned input problem, the number D of each variable is a completely different value of the aforementioned variable. i Calculate the numerical values ​​of the respective exponential weights of the aforementioned variables in each of the above, For each variable in the aforementioned input problem, the calculation involves determining the executable region for that variable, wherein the executable region includes a set of values ​​that respect the constraint set. For each variable in the aforementioned input problem, the number D of each variable is a completely different value of the aforementioned variable. i Calculate a mask for each of the aforementioned variables, For each variable in the aforementioned input problem, the number D is proportional to the exponential weight and the mask, and the value of the variable is a completely different value of the variable. i Calculate the normalized probability value of taking one of these, Obtaining a large number of samples from the aforementioned normalized probabilities, To incorporate the aforementioned numerous samples into the input problem and Repeating this over and over again The method according to claim 9, further comprising:

16. This further includes determining whether the termination condition has been met, The method according to claim 15, wherein determining whether the termination condition is met includes determining whether a measure representing the quality evaluation of the variable is met.