The state of a classical computer can be described by a string of bits, each of which is implemented by some two-state device. Quantum computers use physical devices whose full quantum state can be controlled. For example [19], an atom in its ground state could represent a bit set to 0, and an excited state for 1. The atom can be switched between these states and also be placed in a uniquely quantum mechanical superposition of these values, which can be denoted as a vector , with a component (called an amplitude) for each of the corresponding classical states for the system. These amplitudes are complex numbers. A superposition should not be confused with a probabilistic representation of ignorance about whether a classical bit is really 0 or 1. Nor is a superposition simply in between a 0 or 1, as could be the case with a 3 volt value for classical bits implemented as 0 and 5 volts. Instead, a superposition has no complete classical analog.
In contrast to a classical machine which, at any given step of its program, has a definite value for each bit, a quantum machine with n quantum bits exists in a general superposition of the classical states for n bits, described by the vector
The amplitudes have a physical interpretation: when the computer's state is measured, the superposition randomly changes to one of the classical states with being the probability to obtain the state s. Thus amplitudes satisfy the normalization condition . This measurement operation is used to obtain definite results from a quantum computation.
Using this rich set of states requires operations that can rapidly manipulate the amplitudes in a superposition. Because quantum mechanics is linear and the normalization condition must always be satisfied, these operations are limited to unitary linear operators [29]. That is, a state vector can only change to a new vector related to the original one by a unitary transformation, i.e., where U is a unitary matrix of dimension . In particular, this requires that the operations be reversible: each output is the result of a single input. In spite of the exponential size of the matrix, in many cases the operation can be performed in a time that grows only as a polynomial in n by quantum computers [7, 35]. Importantly, the quantum computer does not explicitly form, or store, the matrix U. Rather it performs a series of elementary operations whose net effect is to produce the new state vector . On the other hand, the components of the new vector are not directly accessible: rather they determine the probabilities of obtaining various results when the state is measured.
Important examples of such operations are reversible classical programs [3, 22]. Let P be such a program. Then for each classical state s, i.e., a string of bit values, it produces an output , and each output is produced by only a single input. A simple example is a program operating with two bits that replaces the first value with the exclusive-or of both bits and leaves the second value unchanged, i.e., P[00]=00, P[01]=11, P[10]=10 and P[11]=01. When used with a quantum superposition, such classical programs operate independently and simultaneously on each component to give a new superposition. That is, a program operating with n bits gives
where with . This quantum parallelism allows a machine with n bits to operate simultaneously with different classical states.
Unitary operations can also mix the amplitudes in a state vector. An example for n=1 is
This converts , which could correspond to an atom prepared in its ground state, to , i.e., an equal superposition of the two states. Since amplitudes are complex numbers, such mixing can combine amplitudes to leave no amplitude in some of the states. This capability for interference [4, 21] distinguishes quantum computers from probabilistic classical machines.