A Review of Simulation Techniques of Quantum Computing
Total Page:16
File Type:pdf, Size:1020Kb
A review of simulation techniques of quantum computing Bart lomiej Bukowski Krak´owQuantum Informatics Seminar (KQIS) AGH University of Science and Technology, Krak´ow [email protected] Krak´ow,8.05.19 1 / 33 Simulation techniques of quantum computing Agenda 1 Quantum computations preliminaries 2 Simulating quantum processes 3 Quantum computations simulation techniques 4 Quantum Multiple-Valued Decision Diagrams 5 Ryoshi IDE 2 / 33 Simulation techniques of quantum computing Quantum bits - Qubits State vector basis states in Dirac notation j i = αj0i + βj1i 1 0 α; β 2 j0i = j1i = C 0 1 jαj2 + jβj2 = 1 3 / 33 Simulation techniques of quantum computing Multiple Qubits Tensor product N N N jφi = j 1i j 2i ··· j ni j 1i = α0j0i + α1j1i j 2i = β0j0i + β1j1i 2 3 α0β0 N α0 N β0 6α0β17 j 1i j 2i = = 6 7 = α1 β1 4α1β05 α1β1 α0β0j00i + α0β1j01i + α1β0j10i + α1β1j11i 4 / 33 Simulation techniques of quantum computing Quantum register n-qubit system state 2n−1 X n jφi = αj jjin = α0j0in + α1j1in + ··· + α2n−1j2 − 1in j=0 αj 2 C 2n−1 X 2 jaj j = 1 j=0 5 / 33 Simulation techniques of quantum computing Quantum operations Unitary operator Any operation on a quantum system can be represented by a unitary matrix U which operates on its state vector. The matrix U is unitary, when UUy = UyU = I . Uy is a Hermitian conjugate of U and Uy = (U)T = UT , where U denotes a complex conjugate of matrix U and UT denotes the matrix transposition. a b U = c d α j i = β a b α aα + bβ j 0i = Uj i = · = c d β cα + dβ 6 / 33 Simulation techniques of quantum computing Quantum gates Name Symbol Matrix " # 1 1 Hadamard H p1 2 1 −1 " # 0 −i Pauli-Y Y i 0 " # p 1 − i 1 + i Square Root of Not X 1 2 1 + i 1 − i " # eiγ 0 Phase Scale (by angle γ) θ 0 eiγ " −i γ # e 2 0 Rotation Z Rz i γ 0 e 2 7 / 33 Simulation techniques of quantum computing Quantum circuits Example quantum circuit x1 X • x2 Matrix representation of presented circuit 021 0 0 031 020 0 1 031 B60 1 0 07C B60 0 0 17C C01(X ⊗ I ) = B6 7C B6 7C @40 0 0 15A @41 0 0 05A 0 0 1 0 0 1 0 0 20 0 1 03 60 0 0 17 = 6 7 40 1 0 05 1 0 0 0 8 / 33 Simulation techniques of quantum computing Simulating Quantum Physics with Computers It is impossible to represent the results of quantum mechanics with a classical universal device. [1] Our only hope is that we're going to simulate probabilities. [1] 9 / 33 Simulation techniques of quantum computing Problems with Simulation of Quantum Processes Naive vector-matrix representation memory consumption Qubit Number 5 10 20 21 State vector 512 B 16 kB 16 MB 32 MB Operation matrix 16 kB 16 MB 16 TB 64 TB Memory needed to represent state vector: O(2n). Memory needed to represent unitary matrix: O(22n). Modifying quantum state time complexity Complexity of matrix-vector multiplication requires O(2n) operations for very sparse matrices, but even O(22n) for others. Complexity of matrix-matrix multiplication ranges from O(22n) to O(23n) depending on algorithm and matrix features. 10 / 33 Simulation techniques of quantum computing List of available simulation techniques Numerical Linear Algebra Methods Qubit-wise multiplication [11] P-blocked state representation Hash Table State Representation Decision Diagrams Quantum Multi-Valued Decision Diagrams [20] [19] 11 / 33 Simulation techniques of quantum computing Overview of Quantum Computer Simulators Simulation Libraries libquantum [12] Quantum++ [12] Qlib for MatLab [13] Quantum Programming Languages OpenQASM [14] QML Frameworks Q# [15] Qiskit [16] ProjectQ [4] GUI Simulators QuIDE [17] quirk [18] 12 / 33 Simulation techniques of quantum computing Qubit-wise Multiplication Split the operation on 2n-element vector into smaller matrices Unitary operation on n-qubit system can be expressed as composition of simple, one- or two-qubit elementary gates [11] Example A = I ⊗ I ⊗ H ⊗ I ⊗ I = j0i ⊗ j0i ⊗ j0i ⊗ j0i ⊗ j0i 0 = j0i ⊗ j0i ⊗ Hj0i ⊗ j0i ⊗ j0i Memory usage reduction from O(22n) to O(2n). Avoiding operations on big matrices. 13 / 33 Simulation techniques of quantum computing P-blocked State Representation p − blocked state [21] ρ = ρ1 ⊗ ρ2 ⊗ · · · ⊗ ρk ρi is the state of at most p qubits p p each pi state is represented as density matrix 2 × 2 complexity reduction from O(2n) to O(k22p) (for best case p = 1 −! O(4k)) Drawbacks no entanglements in p + 1 qubits qubit entanglement tracking algorithm for the worst case p = n operations on state vector require O(22n) memory alongside with complications of performed operations because of entanglement tracking algorithm Bell states or any m-qubit GHZ state cannot be represented using this technique 14 / 33 Simulation techniques of quantum computing Hash Table State Representation Improvement over Qubit-wise Multiplication State vector is very sparse Store only non-zero complex values that represent probability of collapsing to certain quantum state 2 3 000 0 6 7 0016 0 7 6 7 6 1 7 010 6 2 7 Keys Values 6 7 0116 0 7 1 6 7 2 2 = 6 1 7 100 6 7 1 6 2 7 4 6 7 2 1016 0 7 1 6 7 6 − p 6 − p1 7 2 110 6 2 7 4 5 111 0 15 / 33 Simulation techniques of quantum computing Binary Decision Diagrams Observation State vector and operation matrices repeat themselves. 2 3 000 0 q0 6 7 0016 0 7 6 7 6 1 7 010 6 2 7 6 7 q1 q1 011 6 0 7 6 7 = 6 1 7 100 6 7 6 2 7 6 7 q2 q2 q2 1016 0 7 6 7 6 − p1 7 110 6 2 7 4 5 111 0 1 − p1 0 2 2 16 / 33 Simulation techniques of quantum computing QMDDs as an enhancement over Decision Diagrams Elementary quantum operations typically affect only a small number of the qubits of a quantum system. The transformation matrix/state vector for the whole system often contains the same pattern repeatedly throughout the matrix. Transformation matrices/state vectors are often sparse with many zero entries frequently appearing in blocks. Every modification of quantum system, that is represented by 2n × 2n matrix can be partitioned into 4 sub-matrices of dimension 2n−1 × 2n−1 as follows: U U U = 00 01 U10 U11 Every state of quantum system can be represented by vector of size 2n that can be partitioned into 2 sub-vectors of size 2n−1: = 0 1 17 / 33 Simulation techniques of quantum computing QMDDs as an enhancement over Decision Diagrams x x2 1 x1 00 01 10 11 2 3 00 0 0 1 0 6 7 x2 x2 x2 01 6 0 0 0 −i 7 6 7 10 6 i 0 0 0 7 4 5 11 0 1 0 0 1 −i 0 i a) Transformation matrix b) Decision Diagram with multiple terminal nodes 18 / 33 Simulation techniques of quantum computing QMDDs as an enhancement over Decision Diagrams x1 x1 0 0 0 0 i x2 x2 x2 0 0 −i i 0 0 0 0 −i 1 1 c) Decision Diagram with edge d) Quantum Multiple-Valued weights Decision Diagram 19 / 33 Simulation techniques of quantum computing QMDDs as an enhancement over Decision Diagrams x x2 1 x1 00 01 10 11 0 0 2 3 i 00 0 0 1 0 6 7 x2 01 6 0 0 0 −i 7 6 7 10 6 i 0 0 0 7 0 0 4 5 −i 11 0 1 0 0 1 a) Transformation matrix d) Quantum Multiple-Valued Decision Diagram 20 / 33 Simulation techniques of quantum computing Quantum Multi-Valued Decision Diagrams - definition Representation of an r n × r n complex matrix as a rooted directed acyclic graph. It has two types of vertices: single terminal vertex and zero or more non-terminal vertices. Each non-terminal vertex denotes the partitioning of a matrix by the application of following equation: " # N(U ) N(U ) U U U = 00 01 ∗ b00 b01 N(U10) N(U11) Ub10 Ub11 There is an initial edge pointing to the root vertex with complex weight representing the QMDD normalization factor. QMDD is reduced: No duplicated edges. All vertices are unique. Above points are also applicable to states vectors. 21 / 33 Simulation techniques of quantum computing QMDDs - normalization QMDDs are built and normalized bottom-up. The non-terminal vertex v is normalized if w(ej ) = 1 for the lowest j for which w(ej ) 6= 0 for j being the outgoing edge's index. −1 −i i x1 x1 0 0 0 0 −i i 22 / 33 Simulation techniques of quantum computing QMDDs - matrices creation and multiplication p1 p1 2 2 x1 x1 x1 0 0 0 0 0 0 x1 x2 x x2 x2 2 0 0 x3 X • x3 x3 x3 x3 x3 a) Quantum Circuit 0 0 0 0 0 0 0 0 0 0 −1 −1 1 1 1 b) First gate c) Second gate d) Gates combined 23 / 33 Simulation techniques of quantum computing QMDDs - multiplication matrix and state vector qi qi qi qi × = + U00 U01 U10 U11 0 1 U00 · 0 U10 · 0 U01 · 1 U11 · 1 qi qi qi + = 0 1 φ0 φ1 0 + φ0 1 + φ1 24 / 33 Simulation techniques of quantum computing QMDDs - complexity Memory State vector worst case (full binary tree): Pi=0 i n nodes: jvj = 1 + i=0 2 = 2 complex values on edges: 2 · (2n − 1) + 1 = 2n+1 − 1 approximately twice as many than in array-based solution only if no redundancies are found Unitary matrix worst case (full quad-tree): Pn−1 i 4n−1 nodes: jvj = 1 + i=0 4 = 1 + 3 Elementary quantum gates targeting single qubit and arbitrary number of control qubits require only linear number of nodes Operations time complexity Kronecker product: O(jvj) Multiplying matrices/state vectors: O(n · jvj) Measuring state vector: O(jvj + n) 25 / 33 Simulation techniques of quantum computing QMDDs - experimental results LiqUI [2] QX [3] ProjectQ [4] QuiDDPro [5] QMDD Computation #Qubits Time[s] Memory[MB] Time[s] Memory[MB] Time[s] Memory[MB] Time[s] Memory[MB] #Nodes Time[s] Memory[MB] #Nodes Entanglemnet 22 3.53 193.33 0.42 200.47 1.08 152.41 0.04 14.93 45 <0.01 48.02 43 23 4.09 248.25 0.80 396.94 0.49 248.01 0.04 14.92 47 <0.01 48.03 45 31 0.04 14.93 63 <0.01 48.11 61 100 0.14 15.98 201 <0.01 49.32 199 QFT 18 3.02 192.91 0.27 16.56 0.87 57.82 24.21 192.77 65535 0.01 48.47 18 21 6.46 192.83 3.63 102.75 0.66 100.75 10208.06 2511.26 4194303 0.01 48.78 21 31 0.03 50.53 31 64 0.09 68.00