Andrew Childs University of Maryland Arxiv:1711.10980
Total Page:16
File Type:pdf, Size:1020Kb
Toward the first quantum simulation with quantum speedup Andrew Childs University of Maryland Dmitri Maslov Yunseong Nam Neil Julien Ross Yuan Su arXiv:1711.10980 Simulating Hamiltonian dynamics on a small quantum computer Andrew Childs Department of Combinatorics & Optimization and Institute for Quantum Computing University of Waterloo based in part on joint work with Dominic Berry, Richard Cleve, Robin Kothari, and Rolando Somma Workshop on What do we do with a small quantum computer? IBM Watson, 9 December 2013 Toward practical quantum speedup IBM Google/UCSB Delft Maryland Important early goal: demonstrate quantum computational advantage … but can we find a practical application of near-term devices? Challenges • Improve experimental systems • Improve algorithms and their implementation, making the best use of available hardware Our goal: Produce concrete resource estimates for the simplest possible practical application of quantum computers Quantum simulation “… nature isn’t classical, dammit, A classical computer cannot even represent and if you want to make a the state efficiently. simulation of nature, you’d better make it quantum mechanical, and by golly it’s a wonderful problem, A quantum computer cannot produce a because it doesn’t look so easy.” complete description of the state. Richard Feynman (1981) Simulating physics with computers But given succinct descriptions of • the initial state (suitable for a quantum computer to prepare it efficiently) and Quantum simulation problem: Given a • a final measurement (say, measurements description of the Hamiltonian H, an of the individual qubits in some basis), evolution time t, and an initial state (0) , a quantum computer can efficiently answer produce the final state ( t ) (to within| i questions that (apparently) a classical one some error tolerance ²|) i cannot. Product formula simulation L To get a better approximation, use higher-order Suppose we want to simulate H = H` formulas. `=1 X E.g., second order: iAt/2r iBt iAt/2r r i(A+B)t Combine individual simulations with the Lie (e− e− e− ) = e− product formula. E.g., with two terms: + O(t3/r2) iAt/r iBt/r r i(A+B)t lim e− e− = e− Systematic expansions to arbitrary order are r !1 known [Suzuki 92] r e iAt/re iBt/r = e i(A+B)t + O(t2/r) − − − Using the 2kth order expansion, the number of exponentials required for an approximation To ensure error at most ², take with error at most ² is at most 2 r = O ( H t) /✏ 1/2k 2k 2 L H t k k 5 L H t k k k k ✏ ⇣ ⌘ [Lloyd 96] [Berry, Ahokas, Cleve, Sanders 07] Quantum walk simulation Quantum walk corresponding to H Simulation by phase estimation N Alternately reflect about span j , λ λ arcsin^λ (phase estimation) {| i}j=1 N | i 7! | i| i iλt ^ j := j ⌫ H⇤ k + ⌫j N +1 , e− λ arcsin λ | i | i⌦ jk| i | i 7! | i| i ✓ k=1 ◆ iλt X q e− λ (inverse phase est) and swap the two registers. 7! | i If H is sparse, this walk is easy to implement. Theorem: O ( t/ p ✏ ) steps of this walk suffice to simulate H for time t with error at most ². Spectral theorem: Each eigenvalue ¸ of H i arcsin λ corresponds to two eigenvalues e± of the walk operator (with eigenvectors± closely related to those of H). [Childs10; Berry, Childs 12] Taylor series simulation Main idea: Directly implement the series LCU Lemma: Given the ability to perform k unitaries Vj with unit complexity, one can iHt 1 ( iHt) e− = − perform the operation U = β V with k! j j j k=0 complexity O ( β ) . Furthermore, if U is X j | j| K (nearly) unitary then this implementationP can ( iHt)k − be made (nearly)P deterministic. ⇡ k! k=0 X Main ideas: Write H = ` ↵ ` H ` with H ` unitary. • Implement U with some amplitude: P 0 sin ✓ 0 U + cos ✓ Φ Then | i| i 7! | i | i | i • Boost the amplitude for success by oblivious K ( it)k amplitude amplification − k! ↵`1 ↵`k H`1 H`k ··· ··· log(t/✏) kX=0 `1X,...,`k Query complexity: O t is a linear combination of unitaries. log log(t/✏) [Berry, Childs, Cleve, Kothari, Somma 14 & 15] Quantum signal processing Combining known lower bounds on the complexity of simulation as a function of t and ² gives 1 t log ✏ log ✏ ⌦ t + 1 vs. upper bound of O t t log log ✏ log log ✏ ⇣ ⌘ ⇣ ⌘ Recent work, using an alternative method for implementing a linear combination of quantum walk steps, gives an optimal tradeoff. Main idea: Encode the eigenvalues of H in a two-dimensional subspace; use a carefully-chosen sequence of single-qubit rotations to manipulate those eigenvalues, performing the desired evolution. [Low, Chuang 16] Algorithm comparison Algorithm Query complexity Gate complexity Product formula, 1st order O(d4t2/✏) O(d4t2/✏) 2k 3 dt 1/2k 2k 3 dt 1/2k Product formula, (2k)th order O 5 d t( ✏ ) O 5 d t( ✏ ) Quantum walk O(dt/p✏) O(dt/p✏) 2 log(dt/✏) 2 log2(dt/✏) Fractional-query simulation O d t log log(dt/✏) O d t log log(dt/✏) 2 log(dt/✏) 2 log2(dt/✏) Taylor series O d t log log(dt/✏) O d t log log(dt/✏) log(dt/✏) log3.5(dt/✏) Linear combination of q. walk steps O dt log log(dt/✏) O dt log log(dt/✏) log(1/✏) log(1/✏) Quantum signal processing O dt + log log(1/✏) O dt + log log(1/✏) OPTIMAL! What to simulate? Quantum chemistry? Spin systems! n Heisenberg model on a ring: H = ~ ~ + h σz h [ h, h] uniformly random j · j+1 j j j 2 − j=1 X This provides a model of self-thermalization and many-body localization. The transition between thermalized and localized phases (as a function of h) is poorly understood. Most extensive numerical study: fewer than 25 spins. [Luitz, Laflorencie, Alet 15] Could explore the transition by preparing a simple initial state, evolving, and performing a simple final measurement. Focus on the cost of simulating dynamics. 3 For concreteness: h =1,t= n, ✏ = 10− , 20 n 100 Algorithms Algorithm Gate complexity (t, ²) Gate complexity (n) Product formula (PF), 1st order O(t2/✏) O(n5) Product formula (PF), (2k)th order O(52kt1+1/2k/✏1/2k) O(52kn3+1/k) Quantum walk O(t/p✏) O(n4 log n) log2(t/✏) 4 log2 n Fractional-query simulation O t log log(t/✏) O n log log n 2 log (t/✏) 3 log2 n Taylor series (TS) O t log log(t/✏) O n log log n log3.5(t/✏) 4 log2 n Linear combination of q. walk steps O t log log(t/✏) O n log log n Quantum signal processing (QSP) O(t + log(1/✏)) O(n3) Algorithms Algorithm Gate complexity (t, ²) Gate complexity (n) Product formula (PF), 1st order O(t2/✏) O(n5) Product formula (PF), (2k)th order O(52kt1+1/2k/✏1/2k) O(52kn3+1/k) Quantum walk O(t/p✏) O(n4 log n) log2(t/✏) 4 log2 n Fractional-query simulation O t log log(t/✏) O n log log n 2 log (t/✏) 3 log2 n Taylor series (TS) O t log log(t/✏) O n log log n log3.5(t/✏) 4 log2 n Linear combination of q. walk steps O t log log(t/✏) O n log log n Quantum signal processing (QSP) O(t + log(1/✏)) O(n3) multiplexor :: [Double] -> [Qubit] -> Qubit -> Circ ([Qubit], Qubit) multiplexor as controls target = case controls of -- No controls. [] -> do let angle = as !! 0 Circuit synthesis expYt (- angle) target return ([], target) -- One control. [q0] -> do let (as0, as1) = split_angles as ([], target) <- multiplexor as0 [] target target <- qnot target `controlled` q0 ([], target) <- multiplexor as1 [] target target <- qnot target `controlled` q0 We implemented these algorithms using return ([q0], target) -- Two controls. [q0,q1] -> do let (as0, as1) = split_angles as Quipper, a quantum circuit description language ([q1], target) <- multiplexor as0 [q1] target target <- qnot target `controlled` q0 ([q1], target) <- multiplexor as1 [q1] target target <- qnot target `controlled` q0 that facilitates concrete resource counts. return ([q0,q1], target) -- Three controls. [q0,q1,q2] -> do let (as0, as1, as2, as3) = split_angles_3 as ([q2], target) <- multiplexor as0 [q2] target target <- qnot target `controlled` q1 ([q2], target) <- multiplexor as1 [q2] target target <- qnot target `controlled` q0 Gate sets: ([q2], target) <- multiplexor as3 [q2] target target <- qnot target `controlled` q1 ([q2], target) <- multiplexor as2 [q2] target target <- qnot target `controlled` q0 • Clifford+Rz return ([q0,q1,q2], target) -- Four or more controls. qs -> do let (as0, as1) = split_angles as let (qhead:qtail) = qs (qtail, target) <- multiplexor as0 qtail target • Clifford+T target <- qnot target `controlled` qhead (qtail, target) <- multiplexor as1 qtail target target <- qnot target `controlled` qhead return (qs, target) where -- Compute angles for recursive decomposition of a multiplexor. split_angles :: [Double] -> ([Double], [Double]) Quipper can produce Clifford+T circuits split_angles l = let (l1, l2) = splitIn2 l in let p w x = (w + x) / 2 in let m w x = (w - x) / 2 in using recent optimal synthesis algorithms (zipWith p l1 l2, zipWith m l1 l2) -- Compute the angles for recursive decomposition of a multiplexor -- with three controls, saving 2 CNOT gates, as in the -- optimization in Fig. 2 of Shende et.al. split_angles_3 :: [Double] -> ([Double],[Double],[Double],[Double]) [Kliuchnikov, Maslov, Mosca 13; Ross, Selinger 16]. split_angles_3 l = let (l1, l2, l3, l4) = splitIn4 l in let pp w x y z = (w + x + y + z) / 4 in let pm w x y z = (w + x - y - z) / 4 in let mp w x y z = (w - x - y + z) / 4 in let mm w x y z = (w - x + y - z) / 4 in let lpp = zipWith4 pp l1 l2 l3 l4 in We verified correctness by simulating subroutines and small instances.