Algorithm: Quantum Simulation
Description: It is believed that for any physically realistic Hamiltonian H on n degrees of freedom, the corresponding time evolution operator e−iHt can be implemented using poly(n,t) gates. Unless BPP=BQP, this problem is not solvable in general on a classical computer in polynomial time. Many techniques for quantum simulation have been developed for general classes of Hamiltonians [25,95,92,5,12,170,205,211,244,245,278,293,294,295,372,382], chemical dynamics [63,68,227,310,375], condensed matter physics [1,99, 145], relativistic quantum mechanics (the Dirac and Klein-Gordon equations) [367,369,370,371], open quantum systems [376, 377,378,379], and quantum field theory [107,166,228,229,230,368]. The exponential complexity of classically simulating quantum systems led Feynman to first propose that quantum computers might outperform classical computers on certain tasks . Although the problem of finding ground energies of local Hamiltonians is QMA-complete and therefore probably requires exponential time on a quantum computer in the worst case, quantum algorithms have been developed to approximate ground [102,231,232,233,234,235,308,321,322,380,381] and thermal [132,121,281,282,307] states for some classes of Hamiltonians. Efficient quantum algorithms have been also obtained for preparing certain classes of tensor network states [323,324,325,326,327,328].
Algorithm: Partition Functions
Description: For a classical system with a finite set of states S the partition function is Z=∑s∈Se−E(s)/kT, where T is the temperature and k is Boltzmann's constant. Essentially every thermodynamic quantity can be calculated by taking an appropriate partial derivative of the partition function. The partition function of the Potts model is a special case of the Tutte polynomial. A quantum algorithm for approximating the Tutte polynomial is given in . Some connections between these approaches are discussed in . Additional algorithms for estimating partition functions on quantum computers are given in [112,113,45,47]. A BQP-completeness result (where the "energies" are allowed to be complex) is also given in . A method for approximating partition functions by simulating thermalization processes is given in . A quadratic speedup for the approximation of general partition functions is given in . A method based on quantum walks, achieving polynomial speedup for evaluating partition functions is given in .
Algorithm: Adiabatic Algorithms
Description: In adiabatic quantum computation one starts with an initial Hamiltonian whose ground state is easy to prepare, and slowly varies the Hamiltonian to one whose ground state encodes the solution to some computational problem. By the adiabatic theorem, the system will track the instantaneous ground state provided the variation of the Hamiltonian is sufficiently slow. The runtime of an adiabatic algorithm scales at worst as 1/γ3 where γ is the minimum eigenvalue gap between the ground state and the first excited state . If the Hamiltonian is varied sufficiently smoothly, one can improve this to O˜(1/γ2) . Adiabatic quantum computation was first proposed by Farhi et al. as a method for solving NP-complete combinatorial optimization problems [96, 186]. Adiabatic quantum algorithms for optimization problems typically use "stoquastic" Hamiltonians, which do not suffer from the sign problem. Such algorithms are sometimes referred to as quantum annealing. Adiabatic quantum computation with non-stoquastic Hamiltonians is as powerful as the quantum circuit model . Adiabatic algorithms using stoquastic Hamiltonians are probably less powerful , but may be nevertheless more powerful than classical computation. The asymptotic runtime of adiabatic optimization algorithms is notoriously difficult to analyze, but some progress has been achieved [179,180,181,182,187,188,189,190,191,226]. (Also relevant is an earlier literature on quantum annealing, which originally referred to a classical optimization algorithm that works by simulating a quantum process, much as simulated annealing is a classical optimization algorithm that works by simulating a thermal process. See e.g. [199, 198].) Adiabatic quantum computers can perform a process somewhat analogous to Grover search in O(N‾‾√) time . Adiabatic quantum algorithms achieving quadratic speedup for a more general class of problems are constructed in  by adapting techniques from . Adiabatic quantum algorithms have been proposed for several specific problems, including PageRank , machine learning [192, 195], and graph problems [193, 194]. Some quantum simulation algorithms also use adiabatic state preparation.
Algorithm: Simulated Annealing
Description: In simulated annealing, one has a series of Markov chains defined by stochastic matrices M1,M2,…,Mn. These are slowly varying in the sense that their limiting distributions pi1,π2,…,πn satisfy |πt+1−πt|<ϵ for some small ϵ. These distributions can often be thought of as thermal distributions at successively lower temperatures. If π1 can be easily prepared, then by applying this series of Markov chains one can sample from πn. Typically, one wishes for πn to be a distribution over good solutions to some optimization problem. Let δi be the gap between the largest and second largest eigenvalues of Mi. Let δ=miniδi. The run time of this classical algorithm is proportional to 1/δ. Building upon results of Szegedy [135,85], Somma et al. have shown [84, 177] that quantum computers can sample from πn with a runtime proportional to 1/δ√. Additional methods by which classical Markov chain Monte Carlo algorithms can be sped up using quantum walks are given in .