A brief overview of quantum computing

…

…

Complex Systems Summer School, Santa Fe

Tom Carter

http://cogs.csustan.edu/˜ tom/quantum June 29, 1999

Our general topics:

• Hilbert spaces and quantum mechanics.

• Tensor products and entangled quantum states.

• Quantum bits (qubits), the physics of computation, elements of quantum computing.

• Tractability of computation (e.g., factoring and boolean satisfiability).

• Models for quantum computing.

• Suggestions for practical implementations of quantum computers.

• Problems and prospects.

”There was a time when the newspapers said that only 12 men understood the theory of relativity. I do not believe there ever was such a time. There might have been a time when only 1 man did, because he was the only guy who caught on, before he wrote his paper. But after people read the paper a lot of people understood the theory of relativity in some way or other, certainly more than 12. On the other hand, I think I can safely say that nobody understands quantum mechanics”

-Richard Feynman

Hilbert space setting for quantum mechanics

• A Hilbert space H is a complete normed vector space over ℂ :

1. H is a vector space over ℂ

2. There is an inner product ⟨·|·⟩ : H x H → ℂ which is conjugate linear: ⟨v|w⟩ = \overline{⟨w|v⟩} ⟨v|αw⟩ = α⟨v|w⟩ for α ∈ ℂ ⟨v + w |z⟩ = ⟨v|z⟩ + ⟨w|z⟩ ⟨v|v⟩ ≥ 0 and ⟨v|v⟩ = 0 iff v = 0

3. From the inner product, as usual, we define the norm of a vector: ∥v∥^{2} = ⟨v|v⟩

4. H is complete with respect to the norm.

• We will typically use the bra/ket notation: |v⟩ is a vector in H , and ⟨v| is the covector which is the conjugate transpose of v.

• A unitary operator U : H → H is a linear mapping whose conjugate transpose is its inverse: U^{†} = U^{−1}

• Unitary operators are norm preserving: ∥Uv∥^{2} = ⟨v|U^{†}U|v⟩ = ⟨v|v⟩ = ∥v∥^{2}

• We will think of a quantum state as a (normalized) vector |v⟩ ∈ H . For math folks, we are in effect working in Complex projective space, normalizing to 1 so that the probabilities make sense.

• The dynamical evolution of a quantum system is expressed as a unitary operator acting on the quantum state.

• Eigenvalues of a unitary matrix are of the form e^{iω} where ω is a real-valued angle. A unitary operator is in effect a rotation.

• A measurement consists of applying an operator O to a quantum state v. To correspond to a classical observable, O must be Hermitian, O^{†} = O, so that all its eigenvalues are real. If one of its eigenvalues λ is associated with a single eigenvector u_{λ}, then we observe the value λ with probability |⟨v|u_{λ}⟩|^{2} (i.e., the square of the length of the projection along u_{λ}).

• In general, if there is more than one eigenvector u_{λ} associated with the eigenvalue λ, we let P_{λ} be the projection operator onto the subspace spanned by the eigenvectors, and the probability of observing λ when the system is in state v is ∥P_{λ}v∥^{2}.

• Most projection operators do not commute with each other, and are not invertible. Therefore, we can expect that the order in which we do measurements will matter, and that doing a measurement will irreversibly change the state of the quantum system.

• Just for reference, a typical expression of Schrödinger’s equation looks like

[−\frac{ℏ^{2}}{2m_{e}} ▽^{2} +V (x, y, z)] Ψ = iℏ\frac{∂}{∂t}Ψ

with general solution

Ψ(x, y, z, t) = ∞ ; ∑ ; n=0 c_{n}Ψ_{n}(x, y, z) exp (\frac{−iE_{n}t}{ℏ})

• Another way to think of this is that we have to find the Hamiltonian H which generates evolution according to:

H|Ψ(t) ⟩ = iℏ\frac{∂}{∂t}|Ψ(t) ⟩.

In our context, we will have to solve for H given a desired U:

|Ψ_{f} ⟩ = exp (−\frac{i}{ℏ} ∫ Hdt) |Ψ_{0} ⟩ = U|Ψ_{0} ⟩

A solution for H always exists, as long as the linear operator U is unitary.

Tensor products

• We can form tensor products of a wide variety of objects. For example:

1. The tensor product of an n dimensional vector u and an m dimensional vector v is an nm dimensional vector u ⊗ v.

2. If A and B are operators on n and m dimensional vectors, respectively, then A ⊗ B is an operator on nm dimensional vectors.

3. if H_{1} and H_{2} are Hilbert spaces, then H_{1} ⊗ H_{2} is also a Hilbert space. If H_{1} and H_{2} are finite dimensional with bases {u_{1}, u_{2}, … u_{n}} and {v_{1}, v_{2}, … v_{m}} respectively, then H_{1} ⊗ H_{2} has dimension nm with basis {u_{i} ⊗ v_{j}|1 ≤ i ≤ n, 1 ≤ j ≤ m}.

• The conjugate transpose distributes over tensor products:

(A ⊗ B)^{†} = A^{†} ⊗ B^{†}.

• The tensor product of several matrices is unitary if and only if each one of the matrices is unitary up to a constant. Let U = A_{1} ⊗ … ⊗ A_{n}. Then U is unitary if A_{i}^{†}A_{i} = k_{i}I and ∏_{i} k_{i} = 1.

U^{†}U = (A_{1}^{†} ⊗ … ⊗ A_{n}^{†})(A_{1} ⊗ … ⊗ A_{n})
= A_{1}^{†}A_{1} ⊗ … ⊗ A_{n}^{†}A_{n}
= k_{1}I ⊗ … ⊗ k_{n}I
= I

Qubits

• A quantum bit, or qubit, is a unit vector in a two dimensional complex vector space for which a particular orthonormal basis, denoted by {|0⟩, |1⟩}, has been fixed. It is important to notice that the basis vector |0⟩ is NOT the zero vector of the vector space.

• For example, the basis |0⟩ and |1⟩ may correspond to the |↑⟩ and |→⟩ polarizations of a photon respectively, or to the polarizations |↗⟩ and |↖⟩. Or |0⟩ and |1⟩ could correspond to the spin-up and spin-down states (|↑⟩ and |↓⟩) of an electron.

• For the purposes of quantum computing, the basis states |0⟩ and |1⟩ are taken to encode the classical bit values 0 and 1 respectively.

• Unlike classical bits however, qubits can be in a superposition of |0⟩ and |1⟩ such as a|0⟩ + b|1⟩ where a and b are complex numbers such that |a|^{2} + |b|^{2} = 1.

• If such a superposition is measured with respect to the basis {|0⟩, |1⟩}, the probability that the measured value is |0⟩ is |a|^{2} and the probability that the measured value is |1⟩ is |b|^{2}.

• Key properties of quantum bits:

1. A qubit can be in a superposition state of 0 and 1.

2. Measurement of a qubit in a superposition state will yield probabilistic results.

3. Measurement of a qubit changes the state to the one measured.

4. There is no transformation which exactly copies all qubits. This is known as the ‘no cloning’ principle. Interestingly, it is nonetheless possible to ‘teleport’ a quantum state, but in the process, the original quantum state is destroyed …

Magic

”The Universe is full of magical things patiently waiting for our wits to grow sharper.”

-Eden Phillpotts

”Any sufficiently advanced technology is indistinguishable from magic.”

-Arthur C. Clarke

Entangled quantum states

• If we have available more than one (physical) qubit, we may be able to entangle them. The tensor product of the Hilbert spaces for the individual qubits is the appropriate model for these entangled systems.

• For example, if we have two qubits with bases {|0⟩_{1}, |1⟩_{1}} and {|0⟩_{2}, |1⟩_{2}} respectively, the tensor product space has the basis

{|0⟩_{1}⊗|0⟩_{2}, |0⟩_{1}⊗|1⟩_{2}, |1⟩_{1}⊗|0⟩_{2}, |1⟩_{1}⊗|1⟩_{2}}.

We can (conveniently) denote this basis as

{|00 ⟩, |01 ⟩, |10 ⟩, |11 ⟩}.

• More generally, if we have n qubits to which we can apply common measurements, we will be working in the 2^{n}-dimensional Hilbert space with basis

{|00 … 00 ⟩, |00 … 01 ⟩, …, |11 … 10 ⟩, |11 … 11 ⟩}

• A typical quantum state for an n-qubit system is

2^{n}−1 ; ∑ ; i=0 a_{i}|i⟩

where a_{i} ∈ ℂ, ∑ |a_{i}|^{2} = 1, and {|i⟩} is the basis, with (in our notation) i written as an n-bit binary number.

Shocking

“Anyone who is not shocked by quantum theory has not understood it.” –Neils Bohr

“One is led to a new notion of unbroken wholeness which denies the classical analyzability of the world into separately and independently existing parts. The inseparable quantum interconnectedness of the whole universe is the fundamental reality.” –David Bohm

“I don’t like it, and I’m sorry I ever had anything to do with it.” –Erwin Schrodinger

Quantum Computing

• This exponential growth in number of states, together with the interference of states and the ability to subject the entire space to transformations (either unitary dynamical evolution of the system, or a measurement projection into an eigenvector subspace), provides the foundation for quantum computing.

• In general, if we had enough time, we could simulate any quantum computation with a classical computer. The real potential value of quantum computers lies in speeding up computations.

• The critical questions are:

1. How much can we speed up particular computations?

2. Can we build a physical implementation of a quantum computer?

3. Does the implementation allow us to carry out useful computations before decoherence interactions with the environment disturb the system too much?

4. Given the “no cloning” principle, can we develop quantum error detection/correction systems? In particular, we can’t just take measurements for error control since measurements have irreversible effects on quantum systems.

Simple quantum gates

• These are some examples of useful single-qubit quantum state transformations. Because of linearity, the transformations are fully specified by their effect on the basis vectors. The associated matrix is also shown.

\begin{matrix}\begin{aligned}I : & |0⟩ & → & |0⟩ \\ & |1⟩ & → & |1⟩ \end{aligned} & ( \begin{matrix}1 & 0 \\ 0 & 1 \end{matrix} ) \\ \begin{aligned}σ_{x} : & |0⟩ & → & |1⟩ \\ & |1⟩ & → & |0⟩ \end{aligned} & ( \begin{matrix}0 & 1 \\ 1 & 0 \end{matrix} ) \\ \begin{aligned}σ_{y} : & |0⟩ & → & |1⟩ \\ & |1⟩ & → & −|0⟩ \end{aligned} & ( \begin{matrix}0 & −1 \\ 1 & 0 \end{matrix} ) \\ \begin{aligned}σ_{z} : & |0⟩ & → & |0⟩ \\ & |1⟩ & → & −|1⟩ \end{aligned} & ( \begin{matrix}1 & 0 \\ 0 & −1 \end{matrix} ) \end{matrix}

I is the identity transformation, σ_{x} is negation, σ_{z} is a phase shift operation, and σ_{y} = σ_{z}σ_{x} is a combination of both. All these gates are unitary. For example

σ_{y}σ_{y}^{†} = ( \begin{matrix}0 & −1 \\ 1 & 0 \end{matrix} ) ( \begin{matrix}0 & 1 \\ −1 & 0 \end{matrix} ) = I.

• Another important single-bit transformation is the Hadamard transformation defined by

\begin{aligned}H : & |0⟩ & → & \frac{1}{\sqrt{2}}(|0⟩ + |1⟩) \\ & |1⟩ & → & \frac{1}{\sqrt{2}}(|0⟩ − |1⟩). \end{aligned}

Applied to n bits each in the |0⟩ state, the transformation generates a superposition of all 2^{n} possible states.

(H ⊗ H ⊗ ⋯ ⊗ H)|00 … 0 ⟩
= \frac{1}{\sqrt{2^{n}}} ((|0⟩ + |1⟩) ⊗ ⋯ ⊗ (|0⟩ + |1⟩))
= \frac{1}{\sqrt{2^{n}}} 2^{n}−1 ; ∑ ; x=0 |x⟩.

The transformation acting on n bits is called the Walsh or Walsh-Hadamard transformation W.

• An important example of a two qubit gate is the controlled-not gate, C_{not}, which complements the second bit if the first bit is 1 and leaves the bit unchanged otherwise.

\begin{aligned}C_{not} : & |00 ⟩ & → & |00 ⟩ \\ & |01 ⟩ & → & |01 ⟩ \\ & |10 ⟩ & → & |11 ⟩ \\ & |11 ⟩ & → & |10 ⟩ \end{aligned} ( \begin{matrix}1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{matrix} )

The transformation C_{not} is unitary since C_{not}^{†} = C_{not} and C_{not}C_{not} = I. The C_{not} gate cannot be decomposed into a tensor product of two single-bit transformations.

• It is useful to have graphical representations of quantum state transformations, especially when several transformations are combined. The controlled-not gate C_{not} is typically represented by a circuit of the form

×^{}

The open circle indicates the control bit, and the × indicates the conditional negation of the subject bit. In general there can be multiple control bits. Some authors use a solid circle to indicate negative control, in which the subject bit is toggled when the control bit is 0.

Similarly, the controlled-controlled-not, which negates the last bit of three if and only if the first two are both 1, has the following graphical representation.

[figure: ×]

Single bit operations are graphically represented by appropriately labelled boxes as shown.

Z H

• The three-bit controlled-controlled-not gate or Toffoli gate is also an instance of this conditional definition:

T = |0⟩⟨0| ⊗ I ⊗ I + |1⟩⟨1| ⊗ C_{not}.

T : |000 ⟩ → |000 ⟩
|001 ⟩ → |001 ⟩
|010 ⟩ → |010 ⟩
|011 ⟩ → |011 ⟩
|100 ⟩ → |100 ⟩
|101 ⟩ → |101 ⟩
|110 ⟩ → |111 ⟩
|111 ⟩ → |110 ⟩

T can be used to construct a complete set of the classical boolean connectives and thus general combinatory circuits since it can be used to construct the not and and operators in the following way:

T |1, 1, x ⟩ = |1, 1, ∼ x ⟩
T |x, y, 0⟩ = |x, y, x ∧ y⟩

Tractability of computation

• We can generally categorize computational algorithms according to how the resources needed for execution of the algorithm increase as we increase the size of the input. Typical resources are time and (storage) space. In different contexts, we may be interested in worst-case or average-case performance of the algorithm. For theoretical purposes, we will typically be interested in large input sets …

• The hope of quantum computing is that problems that are difficult or impossible for classical computers to solve can be handled by quantum computers.

• A standard mechanism for comparing the growth of functions with domain ℕ is “big-Oh.” One way of defining this notion is to associate each function with a set of functions. We can then compare algorithms by looking at their “big-Oh” categories.

• Given a function f, we define O(f) by:

g ∈ O(f) ⟺

there exist c > 0 and N ≥ 0 such that |g(n)| ≤ c|f(n)| for all n ≥ N.

• We further define θ(f) by:

g ∈ θ(f) iff g ∈ O(f) and f ∈ O(g).

• In general we will consider the run-time of algorithms in terms of the growth of the number of elementary computer operations as a function of the number of bits in the (encoded) input. Some important categories – an algorithm’s run-time f is:

1. Logarithmic if f ∈ θ(log (n)).

2. Linear if f ∈ θ(n).

3. Quadratic if f ∈ θ(n^{2}).

4. Polynomial if f ∈ θ(P (n)) for some polynomial P (n).

5. Exponential if f ∈ θ(b^{n}) for some constant b > 1.

6. Factorial if f ∈ θ(n!).

• Typically we say that a problem is tractable if (we know) there exists an algorithm whose run-time is (at worst) polynomial that solves the problem. Otherwise, we call the problem intractable.

• There are many problems which have the interesting property that if someone (an oracle?) provides you with a solution to the problem, you can tell in polynomial time whether what they provided you actually is a solution. Problems with this property are called Non-deterministically Polynomial, or NP, problems. One way to think about this property is to imagine that we have arbitrarily many machines available. We let each machine work on one possible solution, and whichever machine finds the (a) solution lets us know.

• There are some even more interesting NP problems which are universal for the class of NP problems. These are called NP-complete problems. A problem S is NP-complete if S is NP and, there exists a polynomial time algorithm that allows us to translate any NP problem into an instance of S. If we could find a polynomial time algorithm to solve a single NP-complete problem, we would then have a polynomial time solution for all NP problems.

• Some examples:

1. Factoring a number is NP. First, we recognize that if M is the number we want to factor, then the input size m is approximately log (M) (that is, the input size is the number of digits in the number). The elementary school algorithm (try dividing by each number less than \sqrt{M}) has run-time approximately 10^{\frac{m}{2}}, which is exponential in the number of digits. On the other hand, if someone hands you two numbers they claim are factors of M, you can check by multiplying, which takes on the order of m^{2} operations. It is worth noting that there is a polynomial time algorithm to determine whether or not a number is prime, but for composite numbers, this algorithm does not provide a factorization. Factoring is a particularly important example because various encryption algorithms such as RSA (used in the PGP software) depend for their security on the difficulty of factoring numbers with several hundred digits.

2. Satisfiability of a boolean expression is NP-complete. Suppose we have n boolean variables {b_{1}, b_{2}, …, b_{n}} (each with the possible values 0 and 1). We can form a general boolean expression from these variables and their negations:

f(b_{1}, b_{2}, …, b_{n}) = _{k}^{⋀}(_{i,j≤n}^{⋁}(b_{i}, ∼ b_{j})).

A solution to such a problem is an assignment of values 0 or 1 to each of the b_{i} such that f(b_{1}, b_{2}, …, b_{n}) =1. There are 2^{n} possible assignments of values. We can check an individual possible solution in polynomial time, but there are exponentially many possibilities to check. If we could develop a feasible quantum computation for this problem, we would in some sense resolve the traditional P=^{?} NP problem … 3. The discrete Fourier transform of a

sequence a^{⇀} = ⟨a_{j}⟩_{j=0}^{q−1} is the sequence

A^{⇀} = ⟨A_{k}⟩_{k=0}^{q−1} where

A_{k} = \frac{1}{\sqrt{q}} q−1 ; ∑ ; j=0 a_{j}e^{\frac{2πijk}{q}}

One way to think about this is that A^{⇀} = F a^{⇀} where the linear transformation F is given by:

[F]_{j,k} = \frac{1}{\sqrt{q}}e^{\frac{2πijk}{q}}

Note that the inverse of F is F^{†} – that is,

[F^{−1}]_{k,j} = \frac{1}{\sqrt{q}}e^{−\frac{2πijk}{q}} .

Suggestively, this says that the discrete Fourier transform is a unitary operation. The action of this transformation on a vector of dimension q looks as though it would take the q^{2} operations of matrix multiplication, but there is enough structure that the classical fast Fourier transform algorithm can be done in q log (q) operations. The corresponding quantum Fourier transform U_{QF T} with base 2^{n} is defined by

U_{QF T} : |x⟩ ↦ \frac{1}{\sqrt{2^{n}}} 2^{n}−1 ; ∑ ; c=0 e^{\frac{2πicx}{2n}}|c⟩.

We will see that this can be accomplished in approximately n^{2} operations rather than n2^{n}. This is an exponential speed-up of the process.

Outline of Shor’s algorithm for factoring

We begin with 2 n-qubit registers. Apply the Walsh transformation on the first to give a uniform superposition of states:

| 0^{→}⟩ ⊗ | 0^{→}⟩ ⇒ \frac{1}{\sqrt{Q}} Q−1 ; ∑ ; l=0 |l⟩ ⊗ | 0^{→}⟩

Apply a transformation which computes y^{l} mod N:

\frac{1}{\sqrt{Q}} Q−1 ; ∑ ; l=0 |l⟩ ⊗ |y^{l}modN⟩

Measure the second register:

\frac{1}{\sqrt{A}} Q−1 ; ∑ ; l=0|y^{l}=y^{l0} |l⟩ ⊗ |y^{l_{0}}⟩ =

\frac{1}{\sqrt{A}} A−1 ; ∑ ; j=0 |jr + l_{0}⟩ ⊗ |y^{l_{0}}⟩

Apply the quantum Fourier transform over Z_{Q} on the first register:

\frac{1}{\sqrt{Q}} Q−1 ; ∑ ; k=0 (\frac{1}{\sqrt{A}} A−1 ; ∑ ; j=0 e^{2πi(jr+l_{0})k/Q} ) |k⟩ ⊗ |y^{l_{0}}⟩

Measure the first register. Let k_{1} be the outcome. Approximate the fraction \frac{k_{1}}{Q} by a fraction with denominator smaller than N. If the denominator d doesn’t satisfy y^{d} = 1mod N, throw it away, else call the denominator r_{1}. Repeat all previous steps poly (log (N)) times to get r_{1}, r_{2}, … Output the minimal r.

Possibilities for physical implementation

• Implementations of quantum computers will be a difficult experimental challenge. Quantum computer equipment must satisfy a variety of constraints: (1) the qubits must interact very weakly with their environment to minimize decoherence and preserve their superpositions, (2) the qubits must interact very strongly with one another for the logic gates and information transfer to be effective, and (3) the initialization and readout of states must be efficient. Not many known physical systems can satisfy these requirements, although there are some possibilities.

• A collection of charged ions held in an electromagnetic trap is one possibility. Each atom stores a qubit of information in a pair of internal electron levels. Each atom’s levels are protected from environmental influences. Scaling to larger numbers of qubits should be able to be done by adding more atoms to the collection. When appropriate laser radiation is applied to the atoms, only one of the two internal states fluoresces. This allows detection of the state of each qubit. The atoms are coupled by virtue of their mutual Coulomb repulsion. Experimental development of trapped ion quantum computation is at the level of single-ion and two-ion qubit systems. Extensions to larger numbers of trapped ions has been difficult, but there do not seem to be impossible theoretical limits to scaling.

• Another system which could be developed into a quantum computer is a single molecule, in which nuclear spins of individual atoms represent qubits. This is the basis of the NMR technique mentioned above. The spins can be manipulated, initialized, and measured. For example, the carbon and hydrogen nuclei in a chloroform molecule can be used to represent two qubits. Applying a radio-frequency pulse to the hydrogen nucleus addresses that qubit and causes it to rotate from a |0⟩ state to a superposition \frac{1}{\sqrt{2}}(|0⟩ + |1⟩) state. Interactions through chemical bonds allow multiple-qubit logic to be performed. However, it is difficult to find molecules with more than 10 spins in them and with a large coupling constant between every pair of spins …

Decoherence and error correction

• Decoherence in general arises from interactions with the environment, which typically has the effect of measuring the system and thus collapsing a quantum computation. In addition, we have to be careful about leaving temporary qubits floating around. We can expect them to be entangled with the rest of the system, and thus an observation of the “dust” left behind by intermediate computations could effect a measurement of the system, invalidating later stages. Thus, one emphasis in research on quantum computation has been on how to efficiently avoid leaving any garbage floating about.

• As noted above, error detection/correction is difficult in the quantum environment since we cannot reliably clone an arbitrary qubit. Further, any intermediate measurement of the system for error control is likely to invalidate our computation. There are, however, approaches using polarization encoding schemes for error control.

Prospects

• The history of quantum mechanical algorithms is very brief. There are two main approaches that have resulted in descriptions of efficient quantum computational algorithms: the first is estimates of periodicity that resulted in the factorization algorithm, and the second is amplitude amplification that has led to Grover’s quantum search and related algorithms.

• Over the past 70 or 80 years, physicists have observed various quantum mechanical phenomena that lead to puzzling and even apparently paradoxical results. Most of these still remain to be investigated from a quantum computing perspective.

• One interesting question is how slight difference in the laws of quantum mechanics might affect these issues. Some interesting work by Abrams et al. shows that if there was even the slightest amount of nonlinearity in quantum mechanics, it would be possible to modify the amplitude amplification scheme of Grover’s quantum search algorithm to obtain an efficient algorithm solving the NP-complete satisfiability problem. However, most people believe that such nonlinearity probably does not exist because it would also lead to faster-than-light communication, noncausality, and other violations of fundamental physical principles …

Finis

“Nature uses only the longest threads to weave her patterns, so that each small piece of her fabric reveals the organization of the entire tapestry.” - Richard Feynman

References

[1] Abrams D S and Lloyd S, Non-Linear Quantum Mechanics implies Polynomial Time solution for NP-complete and #P problems, http://xxx.lanl.gov/abs/quant-ph/9801041

[2] Aharonov D, Beckman D, Chuang I and Nielsen M, What Makes Quantum Computers Powerful? http://wwwcas.phys.unm.edu/m̃nielsen/science.html

[3] Aharonov, D., Quantum Computation, Annual Reviews of Computational Physics VI, Edited by Dietrich Stauffer, World Scientific, 1998

[4] Barenco A A universal two-bit gate for quantum computation, Proc. R. Soc. Lond. A 449 679–683, 1995

[5] Barenco A, Deutsch D, Ekert E and Jozsa R, Conditional quantum dynamics and quantum gates, Phys. Rev. Lett. 74 4083–4086, 1995

[6] Barenco A, Bennett C H, Cleve R, DiVincenzo D P, Margolus N, Shor P, Sleator T, Smolin J A and Weinfurter H, Elementary gates for quantum computation, Phys. Rev. A 52, 3457–3467, 1995

[7] Bell J S On the Einstein-Podolsky-Rosen paradox, Physics 1 195–200, 1964 [8] Bell J S On the problem of hidden variables in

quantum theory, Rev. Mod. Phys. 38 447-52, 1966 Speakable and unspeakable in quantum mechanics 1987 (Cambridge University Press)

[9] Bennett C H, Brassard G, Crépeau C, Jozsa R, Peres A and Wootters W K Teleporting an unknown quantum state via dual classical and Einstein-Podolsky-Rosen channels, Phys. Rev. Lett. 70 1895–1898, 1993

[10] Bennett C H, DiVincenzo D P, Smolin J A and Wootters W K Mixed state entanglement and quantum error correction, Phys. Rev. A 54 3825, 1996

[11] Bennett C H, Bernstein E, Brassard G and Vazirani U Strengths and Weaknesses of quantum computing, SIAM Journal of Computation 26 5 pp 1510–1523 October, 1997

[12] Boyer M, Brassard G, Hoyer P and Tapp A, Tight bounds on quantum searching, in Fortsch.Phys. 46, (1998) pp. 493-506

[13] Brassard G, Searching a quantum phone book, Science 275 627-628 1997 [14] Calderbank A R and Shor P W, Good quantum

error-correcting codes exist, Phys. Rev. A 54 1098-1105, 1996

[15] Chuang I L, Laflamme R, Shor P W and Zurek W H, Quantum computers, factoring, and decoherence, Science 270 1633–1635, 1995

[16] Chuang I L, Laflamme R and Paz J P, Effects of Loss and Decoherence on a Simple Quantum Computer, http://xxx.lanl.gov/abs/quant-ph/9602018

[17] Clausen M, Fast Generalized Fourier transforms, Theoret. Comput. Sci. 56 55–63 1989

[18] Coppersmith D, An approximate Fourier transform useful in quantum factoring, IBM Research Report RC 19642, 1994

[19] Cormen T, Leiserson C and Rivest R, Introduction to Algorithms, (pp 776–800 for FFT, 837–844 for primality test, 812 for extended Euclid algorithm, 834–836 for RSA cryptosystem) MIT press, 1990

[20] Cory D G, Fahmy A F, and Havel T F, Nuclear magnetic resonance spectroscopy: an experimentally accessible paradigm for quantum computing, in Proc. of the 4th Workshop on Physics and Computation (Complex Systems Institute, Boston, New England) 1996 [21] Deutsch D, Quantum theory, the Church-Turing

principle and the universal quantum computer, In Proc. Roy. Soc. Lond. A 400 97-117, 1985

[22] Deutsch D, Quantum computational networks, In Proc. Roy. Soc. Lond. A 425 73-90, 1989

[23] Deutsch D and Jozsa R, Rapid solution of problems by quantum computation, In Proc. Roy. Soc. Lond A 439 553-558, 1992

[24] Deutsch D, Barenco A and Ekert A, Universality in quantum computation, In Proc. R. Soc. Lond. A 449 669-677, 1995

[25] DiVincenzo D P, Two-bit gates are universal for quantum computation, Phys. Rev. A 51 1015-1022 1995

[26] DiVincenzo D P, Quantum computation, Science 270 255-261 1995

[27] Einstein A, Rosen N and Podolsky B, Phys. Rev. 47, 777 1935

[28] Ekert A and Jozsa R Quantum computation and Shor’s factoring algorithm, Rev. Mod. Phys. 68 733 1996 [29] Feynman R P Simulating physics with computers,

In Int. J. Theor. Phys. 21 467-488, 1982

[30] Feynman R P, Quantum mechanical computers, In Found. of Phys. 16 507-531, 1986 see also Optics News February 1985, 11-20.

[31] R. Feynman, Feynman lectures on computation, 1996.

[32] Garey M R and Johnson D S, Computers and Intractability, published by Freeman and Company, New York, 1979

[33] Gershenfeld N A and Chuang I L Bulk spin-resonance quantum computation, Science, 275:350–356, 1997.

[34] Grover L K, Quantum mechanics helps in searching for a needle in a haystack, Phys. Rev. Lett. 79, 325-328 1997 and the original STOC paper: A fast quantum mechanical algorithm for database search Proc. of the 28th Annual ACM Symposium on Theory of Computing (STOC) 212–221, 1996

[35] Grover L K, A framework for fast quantum mechanical algorithms, http://xxx.lanl.gov/abs/quant-ph/9711043 [36] Grover L K, Quantum computers can search

arbitrarily large databases by a single query in Phys. Rev. Let. 79 23, 4709–4712, 1997

[37] Grover L K, A fast quantum mechanical algorithm for estimating the median, http://xxx.lanl.gov/abs/quant-ph/9607024

[38] Hagley E et. al, Generation of Einstein Podolsky Rosen pairs of atoms, Phys. Rev. Lett, 79, 1–5, 1997

[39] Hamming R W 1986 Coding and information theory, 2nd ed, (Prentice-Hall, Englewood Cliffs)

[40] Hardy G H and Wright E M 1979 An introduction to the theory of numbers (Clarendon Press, Oxford)

[41] Haroche S and Raimond J-M 1996 Quantum computing: dream or nightmare? Phys. Today August 51-52

[42] Hodges A 1983 Alan Turing: the enigma (Vintage, London)

[43] Hungerford T W, 1974 Algebra (Springer-Verlag, New York)

[44] A. J. Jones, M. Mosca and R. H. Hansen, Implementation of a Quantum Search Algorithm on a Nuclear Magnetic Resonance Quantum Computer, in Nature 393 (1998) 344-346, and see also A. J. Jones and M. Mosca, Implementation of a Quantum Algorithm to Solve Deutsch’s Problem on a Nuclear Magnetic Resonance Quantum Computer, in J. Chem. Phys. 109 (1998) 1648-1653

[45] Knill E and Laflamme R 1997 A theory of quantum error-correcting codes, Phys. Rev. A 55 900-911

[46] Knill E, Laflamme R and Zurek W H 1997 Resilient quantum computation: error models and thresholds http://xxx.lanl.gov/abs/quant-ph/9702058

[47] Knuth D E 1981 The Art of Computer Programming, Vol. 2: Seminumerical Algorithms, 2nd ed (Addison-Wesley).

[48] Lipton R J, Using DNA to solve NP-complete problems. Science, 268 542–545, Apr. 28, 1995

[49] Lloyd S 1995 Almost any quantum logic gate is universal, Phys. Rev. Lett. 75, 346-349 [50] Margolus N 1990 Parallel Quantum Computation,

in Complexity, Entropy and the Physics of Information, Santa Fe Institute Studies in the Sciences of Complexity, vol VIII p. 273 ed Zurek W H (Addison-Wesley)

[51] von Neumann, Probabilistic logic and the synthesis of reliable organisms from unreliable components, in automata studies( Shanon,McCarthy eds), 1956

[52] Papadimitriou C H, Computational Complexity, Addison-Wesley, 1994

[53] Peres A 1993 Quantum theory: concepts and methods (Kluwer Academic Press, Dordrecht)

[54] Preskill J 1997 Fault tolerant quantum computation, to appear in Introduction to Quantum Computation, edited by H.-K. Lo, S. Popescu, and T. P. Spiller http://xxx.lanl.gov/abs/quant-ph/9712048

[55] Preskill J, Kitaev A, Course notes for Physics 229, Fall 1998, Caltech Univ., http://www.theory.caltech.edu/people/preskill/ph229

[56] Rieffel E, Polak W An Introduction to Quantum Computing for Non-Physicists http://xxx.lanl.gov/abs/quant-ph/9809016 [57] Rivest R, Shamir A and Adleman L 1979 On

digital signatures and public-key cryptosystems, MIT Laboratory for Computer Science, Technical Report, MIT/LCS/TR-212

[58] J.J.Saqurai Modern Quantum Mechanics, revised edition. Addison Wesley, 1994

[59] Shannon C E 1948 A mathematical theory of communication Bell Syst. Tech. J. 27 379; also p. 623

[60] Shor P W, Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer, SIAM J. Comp., 26, No. 5, pp 1484–1509, October 1997

[61] Steane A M, Error correcting codes in quantum theory, Phys. Rev. Lett. 77 793-797, 1996, Simple quantum error-correcting codes, Phys. Rev. A 54, 4741-4751, 1996, Quantum Reed-Muller codes, submitted to IEEE Trans. Inf. Theory (preprint in LANL e-print quant-ph/9608026, http://xxx.lanl.gov) Active stabilization, quantum computation, and quantum state synthesis, Phys. Rev. Lett. 78, 2252-2255, 1997 [62] Steane A, Quantum Computation, Reports on

Progress in Physics 61 (1998) 117, preprint in http://xxx.lanl.gov/abs/quant-ph/9708022

[63] Toffoli T 1980 Reversible computing, in Automata, Languages and Programming, Seventh Colloquium, Lecture Notes in Computer Science, Vol. 84, de Bakker J W and van Leeuwen J, eds, (Springer) 632-644

[64] Turing A M 1936 On computable numbers, with an application to the Entschneidungsproblem, Proc. Lond. Math. Soc. Ser. 2 42, 230 ; see also Proc. Lond. Math. Soc. Ser. 2 43, 544

[65] Wheeler J A and Zurek W H, eds, 1983 Quantum theory and measurement (Princeton Univ. Press, Princeton, NJ)

[66] Wootters W K and Zurek W H 1982 A single quantum cannot be cloned, Nature 299, 802

[67] Zalka C, Grover’s quantum searching algorithm is optimal, http://xxx.lanl.gov/abs/quant-ph/9711070

[68] Zurek W H, Decoherence and the transition from quantum to classical, Physics Today 44(10), October, 1991 36–44.

On-line references

Some of the references listed above are available on line. They are listed again here for easy access:

Abrams D S and Lloyd S, Non-Linear Quantum Mechanics implies Polynomial Time solution for NP-complete and #P problems, http://xxx.lanl.gov/abs/quant-ph/9801041

Aharonov D, Beckman D, Chuang I and Nielsen M, What Makes Quantum Computers Powerful? http://wwwcas.phys.unm.edu/m̃nielsen/science.html

Chuang I L, Laflamme R and Paz J P, Effects of Loss and Decoherence on a Simple Quantum Computer, http://xxx.lanl.gov/abs/quant-ph/9602018

Grover L K, A framework for fast quantum mechanical algorithms, http://xxx.lanl.gov/abs/quant-ph/9711043

Grover L K, A fast quantum mechanical algorithm for estimating the median, http://xxx.lanl.gov/abs/quant-ph/9607024

Knill E, Laflamme R and Zurek W H 1997 Resilient quantum computation: error models and thresholds http://xxx.lanl.gov/abs/quant-ph/9702058 Preskill J 1997 Fault tolerant quantum computation, to appear in Introduction to Quantum Computation, edited by H.-K. Lo, S. Popescu, and T. P. Spiller http://xxx.lanl.gov/abs/quant-ph/9712048

Preskill J, Kitaev A, Course notes for Physics 229, Fall 1998, Caltech Univ., http://www.theory.caltech.edu/people/preskill/ph229

Rieffel E, Polak W An Introduction to Quantum Computing for Non-Physicists http://xxx.lanl.gov/abs/quant-ph/9809016

Steane A, Quantum Computation, Reports on Progress in Physics 61 (1998) 117, http://xxx.lanl.gov/abs/quant-ph/9708022

Zalka C, Grover’s quantum searching algorithm is optimal, http://xxx.lanl.gov/abs/quant-ph/9711070