Parallel Simulation of Quantum Coherent Evolution by Parameterized Arbitrary Time-dependent Hamiltonians
Theory Implementation Results Documentation

Introduction

PSiQCoPATH is the product of the authors' work in Parallel Computing 6.338J at MIT in the Spring of 2005. Our goal was to write a scalably parallel program to efficiently compute the time evolution of finite dimensional quantum systems. In particular, PSiQCoPATH is designed to compute the time evolution of finite dimensional quantum systems with arbitrary time-dependent Hamiltonians in a discrete time simulation to accuracy $\mathcal{O}\left[(\Delta t)^n\right]$. The following section contains an introduction to the theory behind the methods used by PSiQCoPATH, an overview of the program's structure, and finally a few motivating physical examples of systems that can be studied by PSiQCoPATH.

Physical Background

In quantum mechanics, the state of an isolated physical system is fully characterized by a single unit vector $\vert \, \psi \, \rangle $ in a complex vector (Hilbert) space. The "ket" symbol $\vert \, \ \, \rangle $ was originally introduced by Dirac, and plays the role of the vector arrow, i.e. $\vec{v}$, commonly used to denote vectors in linear algebra. Elements of the dual space are denoted by the "bra" symbol $\langle \, \ \,\vert $. Bras act on kets according to the standard Hermitian inner product, denoted by the contracted symbol $\langle \, \phi \,\vert \, \psi \, \rangle $.

Physically observable properties of the system are represented by the action of Hermitian operators on the Hilbert space. Following standard convention, linear operators on the Hilbert space will be denoted by the "hat" symbol $\hat{O}$. If a measurement of observable quantity $O$ is made on the system, the only possible results are those corresponding to eigenvalues of $\hat{O}$. The probability of obtaining the result corresponding to the eigenvalue $\lambda_k$ of $\hat{O}$ is given by $\vert\langle \, \lambda_k \,\vert \, \psi \, \rangle \vert^2$, where $\vert \, \lambda_k \, \rangle $ is the eigenvector of $\hat{O}$ with eigenvalue $\lambda_k$. The expectation value of the measurement is given by $\langle \, \psi \,\vert\,\hat{O}\,\vert\,\psi\,\rangle $.

An operator of particular importance is the system's Hamiltonian operator $\hat{H}$. The Hamiltonian operator is the quantum generalization of system's "energy" operator. Additionally, as in classical analytical mechanics, the Hamiltonian plays a special role as the generator of time evolution.

In the Schrödinger picture of quantum mechanics, the Hermitian operators corresponding to physical observables are static, while the state vector $\vert \, \psi(t) \, \rangle $ evolves in time. Because $\vert \, \psi(t) \, \rangle $ remains a unit vector for all time, its evolution is unitary. This unitary evolution is governed by the Schrödinger equation

$\displaystyle i \frac{d}{dt}\vert \, \psi(t) \, \rangle = \hat{H} \vert \, \psi(t) \, \rangle$     (1)
where $\hat{H}$ is the Hamiltonian operator mentioned above.

In general, $\hat{H}$ can be time-dependent or time-independent. If $\hat{H}$ does not explicitly depend on time, then (1) can be trivially solved by exponentiating $\hat{H}$. When $\hat{H}$ does explicitly depend on time, the situation is much more complicated.

As a first step toward solving the Schrödinger equation in this case, we introduce the unitary time evolution operator $\hat{U}(t,\,t_0)$ through the relation

$\displaystyle \vert \, \psi(t) \, \rangle = \hat{U}(t,\,t_0) \, \vert \, \psi(t_0) \, \rangle$     (2)
Additionally, $\hat{U}(t,\,t_0)$ satisfies
$\displaystyle \hat{U}(t,\,t_0) = \hat{U}(t,\,t_1) \, \hat{U}(t_1,\,t_0)$     (3)
and
$\displaystyle \hat{U}(t_0,\,t) = \hat{U}^{-1}(t,\,t_0).$     (4)

Property (3) leads to a natural way to divide the evolution into a series of discrete time intervals (without approximation):

$\displaystyle \hat{U}(t_N,\,t_0) = \hat{U}(t_N,\,t_{N-1}) \cdots \hat{U}(t_2,\,t_1) \, \hat{U}(t_1,\,t_0)$     (5)

This discretization has not bought us anything yet, as each $\hat{U}(t_{k+1},\,t_k)$ must be found by solving the Schrödinger equation over the time interval $t_k \le t \le t_{k+1}$. However, if $\hat{H}(t)$ has analytic time dependence then $\hat{U}(t_k + \Delta t,\,t_k)$ can be expanded in a Taylor series

$\displaystyle \hat{U}(t_k + \Delta t;\, t_k) = \hbox{\usefont{U}{bbm}{m}{n} \se...
...rac{1}{3!}\left.\frac{d^3\hat{U}}{dt^3}\right\vert_{t_k} (\Delta t)^3 + \cdots.$     (6)
For sufficiently small $\Delta t$, it is a good approximation to truncate this series after only a few terms.

The key to solving the problem is now to relate the derivatives $\left.\frac{d^n\hat{U}}{dt^n}\right\vert_{t_k}$ to functions of $\hat{H}(t_k)$, $\dot{\hat{H}}(t_k)$, etc. It is a simple matter to check that as a result of definition (2), $\hat{U}(t, t_0)$ obeys a Schödinger equation of its own:

$\displaystyle i \frac{d}{dt}\hat{U}(t, t_0) = \hat{H}(t) \hat{U}(t, t_0).$     (7)

This relation can be applied successively to replace the derivative terms of all orders in (6). Up to second order, this gives

$\displaystyle \hat{U}(t_k + \Delta t;\, t_k) = \hbox{\usefont{U}{bbm}{m}{n} \se...
... \hat{H}^2(t_k) \right](\Delta t)^2 \,+\,
\mathcal{O}\left[(\Delta t)^3\right].$     (8)
We have obtained the expression for $\hat{U}(t_k + \Delta t;\, t_k)$ up to third order, but the current implementation of PSiQCoPATH only uses up to second order.

With this expression in hand, we can now calculate the time evolution operator for any quantum system undergoing unitary evolution by any possible time-dependent Hamiltonian. In light of our goal to keep PSiQCoPATH as general as possible, we did not want to give up any of this generality. Thus we sought a way for the user to specify a particular time-dependent Hamiltonian of completely general form.

The solution to this problem comes from the fact that for an $N$-dimensional quantum system, the set of Hermitian operators is spanned by a basis of $d_H = N(N+1)/2$ linearly independent Hermitian matrices. Because if this, it is possible to expand any arbitrary time dependent Hamiltonian into a linear combination of at most $d_H$ fixed ``basis Hamiltonians'' with time-dependent coefficients

$\displaystyle \hat{H}(t) = \sum_{j=1}^{d_H} \alpha_j(t) \hat{H}_j$     (9)
where $\{\hat{H}_j\}$ do not depend on time.

While in principle it is possible to construct a Hamiltonian with all $d_H$ coefficients non-zero, in practice it is rarely necessary to require more than 3 or 4. As an additional benefit, this decomposition leads to a computational speedup in the calculation of $\hat{U}(t_{k+1},\,t_k)$ as will be described later.

High-level System Overview

PSiQCoPATH's work divided into three phases -- input, computation, and output. In the input phase, all necessary data to fully specify the problem are read in to the program from a user-created input file. This file also includes any relevant flags/parameters needed to specify how the calculation should be performed. The specific information contained in the input file will be discussed in the section on implementations below.

In the computation phase, PSiQCoPATH calculates the time evolution of the desired system according to the second order method described above. Depending on the user's intentions, PSiQCoPATH can calculate either the time evolution of a given initial state, i.e. $\vert \, \psi(t) \, \rangle $ given $\vert \, \psi(t_0) \, \rangle $, or it can calculate the full time evolution operator (matrix) $\hat{U}(t,\,t_0)$ of the system over a specified time interval. Single state evolution is calculated using a row-distributed data parallel matrix-vector multiplication algorithm, while time evolution matrix calculations are performed using a matrix-multiply version of the parallel prefix algorithm.

Single state evolution can be performed with significantly lower computational cost than the time evolution matrix calculation for the same system, but yields considerably less information. The time evolution matrix contains complete information about the evolution of the system. Once this operator is known, the evolution of any initial state can be found by a single matrix-vector multiplication.

As a special case of the aforementioned modes of operation, PSiQCoPATH can also be used to simulate so-called ``quantum circuits.'' In the quantum circuit model of quantum computation, a quantum system can be used to perform computations by applying a series of unitary ``gates'' to the system. In reality, the action of each unitary gate arises from evolution under some Hamiltonian as described above. However, if one is not interested in the specifics of the Hamiltonian evolution itself then he/she can compress this information into a sequence of unitary operations exactly as in (5). In quantum circuit mode, PSiQCoPATH calculates the evolution of a system under the influence of a supplied series of unitary gates.

Finally, in the output phase, PSiQCoPATH produces several files containing the results of the calculation. This stage of the program is still fairly rough, and only working in detail for full time evolution matrix calculations. Because PSiQCoPATH can in principle be applied to any type of finite dimensional quantum system, it does not perform any data analysis on its results. However, the output files are created in a format that is easily read in by Matlab. We have developed Matlab scripts to analyze the results produced by PSiQCoPATH for each of the test systems we have run. These scripts will be described in more detail in the section on results.

Applications

While in principle PSiQCoPATH can be used to study any finite dimensional quantum system, finite computer memory, processor speed, and available time place limitations on the size of system that can be studied. Within these limitations, PSiQCoPATH can be applied to any system of choice. As a slightly degenerate case, PSiQCoPATH can be used to simulate quantum circuits as described above. More interestingly, PSiQCoPATH is particularly well suited for studying the nearly adiabatic evolution of quantum systems where $\hat{H}(t)$ is a slowly varying function of time.

The adiabatic theorem states that if $\hat{H}(t)$ varies slowly enough then a system initially prepared in the instantaneous ground state1 of $\hat{H}(t_0)$ will remain in a state close to the instantaneous ground state of $\hat{H}(t)$ for all $t > t_0$. The question of ``how slow is slow enough?'' is not always easy to answer, but roughly speaking the variations are slow enough when the time scale over which $\hat{H}(t)$ changes by a significant amount is long compared to the timescale $\tau$ associated with the minimum energy gap between the ground state and first excited state of the instantaneous Hamiltonian over the course of the evolution, i.e. $\tau \ll \hbar/\Delta E_{min}$.

In addition to the purely intellectual benefit of learning more about quantum dynamics near the adiabatic regime, recent developments in the theory of quantum computation have brought adiabatic evolution into the spotlight of physics research in a more practical context. Farhi et al. (arXiv:quant-ph/0104129) proposed an algorithm for the solution of NP-complete problems via quantum adiabatic evolution in 2001. If this algorithm can be proven to work in all cases, then it will constitute a very significant example of the computational power of quantum systems.

The main idea behind the algorithm that the solution to the problem can be encoded as the ground state of a cleverly constructed ``problem'' Hamiltonian. The ground state of this Hamiltonian cannot be easily constructed, though, as this would require knowledge of the problem's solution. However, it is possible to start the system in the ground state of a different Hamiltonian, the ground state of which is known and can easily be constructed. By slowly ``morphing'' the initial Hamiltonian into the final ``problem'' Hamiltonian, the state of the system can be coaxed into the ground state of the problem Hamiltonian. The solution to the problem is then simply read out by measuring the final state of the system.

This is all well and good, but the question of whether or not this algorithm can be used to efficiently solve all possible instances of NP-complete problems is still a topic of active research. The problem is that a rigorous proof of the algorithm's efficiency would require a proof that it is always possible to construct an adiabatic switching Hamiltonian with a minimum energy gap that shrinks only algebraically with the number of quantum bits (qubits) involved in the problem. If the gap becomes exponentially small as the number of qubits becomes large, then the running time needed to achieve successful adiabatic evolution to the problem's solution will become exponentially long. As of this time, neither proof of nor counterexample to this gap condition have been found.