\documentstyle[twocolumn,epsf]{article}

\textheight=210mm
\topmargin=0mm
\textwidth=170mm
\oddsidemargin=0mm 
\baselineskip=24pt
\raggedbottom
\parindent=0pt

%\renewcommand{\baselinestretch}{1.5}

\parskip=12pt

\newcommand{\ket}[1]{\left| {#1} \right>}
\newcommand{\bra}[1]{\left< {#1} \right|}
\newcommand{\beq}{\begin{eqnarray}}
\newcommand{\eeq}{\end{eqnarray}}
\newcommand{\eq}[1]{(\ref{#1})}
%\newcommand{\lab}[1]{\mbox{\rule{2cm}{0cm}} \hfill [ #1 \label{#1} }
\newcommand{\lab}[1]{\label{#1}}

\begin{document}

\title{Quantum computing}
\author{Andrew Steane\\
Department of Atomic and Laser Physics, University of Oxford\\
Clarendon Laboratory, Parks Road, Oxford, OX1 3PU, England.}
\date{July 1997}
\maketitle

\onecolumn

%\begin{abstract}

\begin{center} {\bf Abstract} \end{center}

The subject of quantum computing brings together
ideas from classical information theory, computer science,
and quantum physics. This review aims to summarise not just quantum
computing, but the whole subject of quantum information theory.
Information can be identified as the most general thing which
must propagate from a cause to an effect. It therefore has
a fundamentally important role in the science of physics. 
However, the mathematical treatment of information,
especially information processing, is quite recent,
dating from the mid-twentieth century. This has meant that the full 
significance of information as a basic concept in physics is only now being 
discovered. This is especially true in quantum mechanics. The theory of 
quantum information and computing puts this significance on a firm footing, 
and has lead to some profound and exciting new insights into the natural
world. Among these are the use of quantum states to permit the
secure transmission of classical information (quantum cryptography), the 
use of quantum entanglement to permit reliable transmission of quantum 
states (teleportation), the
possibility of preserving quantum coherence in 
the presence of irreversible noise processes (quantum error correction), 
and the use of controlled quantum evolution for 
efficient computation (quantum computation). 
The common theme of all these insights is the use of quantum
entanglement as a computational resource.

It turns out that information theory and quantum mechanics fit together very 
well. In order to explain their relationship, this review begins with
an introduction to classical information theory and computer science,
including Shannon's theorem, error correcting codes, Turing machines
and computational complexity. The principles of quantum mechanics
are then outlined, and the EPR experiment described. The EPR-Bell
correlations, and quantum entanglement in general, form the essential
new ingredient which distinguishes quantum from classical information
theory, and, arguably, quantum from classical physics.

Basic quantum information ideas are next outlined, including qubits and data 
compression, quantum gates, the `no cloning' property, and teleportation. 
Quantum cryptography is briefly sketched. The universal quantum computer is 
described, based on the Church-Turing Principle and a network model of 
computation. Algorithms for such a computer are discussed, especially those 
for finding the period of a function, and searching a random list. Such 
algorithms prove that a quantum computer of sufficiently precise 
construction is not only fundamentally different from any computer which can 
only manipulate classical information, but can compute a small class of 
functions with greater efficiency. This implies that some important 
computational tasks are impossible for any device apart from a quantum 
computer. 

To build a universal quantum computer is well beyond the abilities of current 
technology. However, the principles of quantum information physics can be 
tested on smaller devices. The current experimental situation is reviewed, 
with emphasis on the linear ion trap, high-$Q$ optical cavities, and nuclear 
magnetic resonance methods. These allow coherent control in a Hilbert space 
of eight dimensions (3 qubits), and should be extendable up to a thousand or 
more dimensions (10 qubits). Among other things, these systems will allow 
the feasibility of quantum computing to be assessed. In fact such 
experiments are so difficult that it seemed likely until recently that a 
practically useful quantum computer (requiring, say, 1000 qubits) was 
actually ruled out by considerations of experimental imprecision and the 
unavoidable coupling between any system and its environment. However, a 
further fundamental part of quantum information physics provides a solution 
to this impasse. This is quantum error correction (QEC).

An introduction to quantum error correction is provided. The evolution of 
the quantum computer is restricted to a carefully chosen sub-space of its 
Hilbert space. Errors are almost certain to cause a departure from this 
sub-space. QEC provides a means to detect and undo such departures without 
upsetting the quantum computation. This achieves the apparently impossible, 
since the computation preserves quantum coherence even though during its 
course all the qubits in the computer will have relaxed spontaneously many 
times. 

The review concludes with an
outline of the main features of quantum information
physics, and avenues for future research.

%\end{abstract}

PACS 03.65.Bz, 89.70.+c


\newpage
\twocolumn

\tableofcontents
\newpage

\section{Introduction}

The science of physics seeks to ask, and find precise answers to,
basic questions about why nature is as it is. Historically, 
the fundamental principles of physics have been 
concerned with questions such as ``what are things made of?'' and
``why do things move as they do?'' In his {\em Principia}, Newton
gave very wide-ranging answers to some of these questions. By showing
that the same mathamatical equations could describe the motions 
of everyday objects and of planets, he showed that an everyday
object such as a tea pot is made of essentially the {\em same sort of
stuff} as a planet: the motions of both can be described in terms
of their mass and the forces acting on them. Nowadays we would say that
both move in such a way as to conserve energy and momentum. In this
way, physics allows us to abstract from nature concepts such as
energy or momentum which
always obey fixed equations, although the same energy might be
expressed in many different ways: for example, an electron
in the large electron-positron collider at CERN, Geneva, can
have the same kinetic energy as a slug on a lettuce leaf.

Another thing which can be expressed in many different ways is
{\em information}. For example, the two statements
``the quantum computer is very interesting'' and ``l'ordinateur quantique
est tr\`es int\'eressant'' have something in common, although they
share no words. The thing they have in common is their {\em information}
content.
Essentially the same information could be expressed in many other
ways, for example by substituting numbers for letters in a 
scheme such as $a \rightarrow 97,\;b \rightarrow 98,\;c \rightarrow 99$
and so on, in which case the english version of the above statement
becomes 116 104 101 32 113 117 97 110 116 117 109 \ldots. 
It is very significant that information can be expressed
in different ways without losing its essential nature, since this leads
to the possibility of the automatic manipulation of information: a
machine need only be able to manipulate quite simple things like
integers in order to do surprisingly powerful information processing,
from document preparation to differential calculus, even
to translating between human languages. We are familiar with this
now, because of the ubiquitous computer, but even fifty years ago
such a widespread significance of automated information processing
was not forseen.

However, there is one thing that all ways of expressing information
must have in common: they all use real physical things to do the
job. Spoken words are conveyed by air pressure fluctuations, written
ones by arrangements of ink molecules on paper, even thoughts
depend on neurons (Landauer 1991). The rallying cry of the
information physicist
is ``no information without physical representation!'' 
Conversely, the fact that information is insensitive to exactly
how it is expressed, and can be freely translated from one form
to another, makes it an obvious candidate for a
fundamentally important role in physics, like energy
and momentum and other such abstractions. However, until the
second half of this century, the precise mathematical
treatment of information, especially information processing,
was undiscovered, so the significance of information in
physics was only hinted at in concepts such as entropy
in thermodynamics. It now appears that information may have a much deeper 
significance. Historically, much of fundamental physics has been concerned 
with discovering the fundamental particles of nature and the equations which 
describe their motions and interactions. It now appears that a different 
programme may be equally important: to discover the ways that nature allows, 
and prevents, {\em information} to be expressed and manipulated, rather than 
particles to move. For example, the best way to state exactly what can and
cannot travel faster than light is to identify information as the
speed-limited entity. In quantum
mechanics, it is highly significant that the state vector
must not contain, whether explicitly or implicitly, more
information than can meaningfully be associated with a given system.
Among other things this produces the wavefunction symmetry requirements
which lead to Bose Einstein and Fermi Dirac
statistics, the periodic structure of atoms, and so on.

The programme to re-investigate the fundamental principles of
physics from the standpoint of information theory is still
in its infancy. However, it already appears to be highly fruitful,
and it is this ambitious programme that I aim to summarise.

Historically, the concept of information in physics does not have
a clear-cut origin. An important thread can be traced if we
consider the paradox of Maxwell's demon of 1871 (fig. 1) (see also
Brillouin 1956). Recall that Maxwell's 
demon is a creature that opens and closes a trap door between two 
compartments of a chamber containing gas, and pursues the subversive policy 
of only opening the door when fast molecules approach it from the right, or 
slow ones from the left. In this way the demon establishes a temperature 
difference between the two compartments without doing any work, in 
violation of the second law of thermodynamics, and consequently permitting 
a host of contradictions. 

A number of attempts were made to exorcise Maxwell's demon (see
Bennett 1987), such as 
arguments that the demon cannot gather information without doing work, or 
without disturbing (and thus heating) the gas, both of which
are untrue. Some were tempted to
propose that the 2nd law of thermodynamics could indeed be violated
by the actions of an ``intelligent being.'' It was not until 1929
that Leo Szilard made progress by reducing the
problem to its essential components, in which the demon need
merely identify whether a single molecule is to the right or left
of a sliding partition, and its action
allows a simple heat engine, called Szilard's engine, to be run. Szilard
still had not solved the problem, since his analysis 
was unclear about whether or not the
act of measurement, whereby the demon
learns whether the molecule is to the left or the right, must involve
an increase in entropy.

A definitive and clear answer was not forthcoming, surprisingly, 
until a further fifty years had passed. In the intermediate years digital 
computers were developed, and the physical implications
of information gathering and processing were carefully considered.
The thermodynamic costs of elementary information manipulations
were analysed by Landauer and others during the 1960s (Landauer 1961,
Keyes and Landauer 1970),
and those of general computations by Bennett, Fredkin, Toffoli and others 
during the 1970s (Bennett 1973, Toffoli 1980, Fredkin and Toffoli 1982). It was 
found that almost anything can in principle be done in a reversible
manner, i.e. with no entropy cost at all (Bennett and Landauer 1985).
Bennett (1982) made explicit the relation between 
this work and Maxwell's paradox by proposing that the demon can indeed learn 
where the molecule is in Szilard's engine without doing any work or increasing 
any entropy in the environment, and so obtain useful work during one stroke of 
the engine. However, the information about the molecule's location must then be 
present in the demon's memory (fig. 1). As more and more strokes are performed, 
more and more information gathers in the demon's memory. To complete a 
thermodynamic cycle, the demon must {\em erase} its memory, and it is during 
this erasure operation that we identify an increase in entropy in the 
environment, as required by the 2nd law. This completes the essential physics 
of Maxwell's demon; further subtleties are discussed by 
Zurek (1989), Caves (1990), and Caves, Unruh and Zurek (1990). 

The thread we just followed was instructive, but to provide
a complete history of ideas relevent to quantum computing
is a formidable task. Our subject brings together what are arguably
two of the greatest revolutions in twentieth-century science,
namely quantum mechanics and information science (including computer
science). The relationship between these two giants is illustrated
in fig. 2. 

Classical information theory is founded on the
definition of information. A warning is in order here.
Whereas the theory tries to capture much of the normal
meaning of the term `information', it can no more do justice to the
full richness of that term in everyday language than particle
physics can encapsulate the everyday meaning of `charm'. 
`Information' for us will be an abstract term, defined in detail
in section \ref{s:mi}.
Much of information theory dates back to seminal work of Shannon in 
the 1940's (Slepian 1974). The observation that information
can be translated from one form to another is encapsulated and
quantified in Shannon's noiseless coding theorem (1948), which quantifies
the resources needed to store or transmit a given body
of information. Shannon also considered the fundamentally important
problem of communication in the presence of noise, and established
Shannon's main theorem (section \ref{s:ecc}) which is the
central result of classical information theory. Error-free
communication even in the presence of noise is achieved by means
of `error-correcting codes', and their study is a branch of mathematics
in its own right. Indeed, the journal {\em IEEE Transactions on Information
Theory} is almost totally taken up with the discovery and analysis
of error-correction by coding.
Pioneering work in this area was done by Golay (1949) and
Hamming (1950).

The foundations of computer science were formulated at roughly the same 
time as Shannon's information theory, and this is no coincidence. The 
father of computer science is arguably Alan Turing (1912-1954), and its prophet 
is Charles Babbage (1791-1871). Babbage conceived of most of the essential 
elements of a modern computer, though in his day there was not the technology 
available to implement his ideas. A century passed before Babbage's 
Analytical Engine was improved upon when Turing described the Universal Turing 
Machine in the mid 1930s. Turing's genius (see Hodges 1983)
was to clarify exactly what a 
calculating machine might be capable of, and to emphasise the role of 
programming, i.e. software, even more than Babbage had done. The giants
on whose 
shoulders Turing stood in order to get a better view were chiefly the 
mathematicians David Hilbert and Kurt G\"odel. Hilbert had emphasised 
between the 1890s and 1930s the importance of asking fundamental questions 
about the nature of mathematics. Instead of asking ``is this mathematical 
proposition true?'' Hilbert wanted to ask ``is it the case that every 
mathematical proposition can in principle be proved or disproved?''
This was unknown, but Hilbert's feeling, and that of most mathematicians, was 
that mathematics was indeed complete, so that conjectures such as Goldbach's 
(that every even number can be written as the sum of two primes) could be 
proved or disproved somehow, although the logical steps might be as yet 
undiscovered. 

G\"odel destroyed this hope by establishing
the existence of mathematical propositions which were 
undecidable, meaning that they could be neither proved nor disproved. The 
next interesting question was whether it would be easy to identify such 
propositions.
Progress in mathematics had always relied on the use of creative 
imagination, yet with hindsight mathematical proofs appear to be automatic, 
each step following inevitably from the one before. Hilbert asked whether 
this `inevitable' quality could be captured by a `mechanical' process. In 
other words, was there a universal mathematical method, which would 
establish the truth or otherwise of every mathematical assertion? After 
G\"odel, Hilbert's problem was re-phrased into that of establishing 
decidability rather than truth, and this is what Turing sought to address.

In the words of Newman, Turing's bold innovation was to introduce `paper
tape' into symbolic logic. In the search for an automatic process
by which mathematical questions could be decided, Turing envisaged
a thoroughly mechanical device, in fact a kind of glorified typewriter
(fig. 7).
The importance of the {\em Turing machine} (Turing 1936)
arises from the fact that it is
sufficiently complicated to address highly sophisticated mathematical
questions, but sufficiently simple to be subject to detailed analysis.
Turing used his machine as a theoretical construct to show that the assumed 
existence of a mechanical means to establish decidability leads to a 
contradiction (see section \ref{s:halting}). In other words, he was
initially concerned with quite 
abstract mathematics rather than practical computation. However, by 
seriously establishing the idea of automating abstract mathematical proofs 
rather than merely arithmatic, Turing greatly stimulated the development of 
general purpose information processing. This was in the days when a 
``computer'' was a person doing mathematics. 

Modern computers are neither Turing machines nor Babbage engines, though they 
are based on broadly similar principles, and their computational power
is equivalent (in a technical sense) to that of a Turing machine.
I will not trace their development 
here, since although this is a wonderful story, it would take too long to do 
justice to the many people involved. Let us just remark that all of this 
development represents a great improvement in speed and size, but does not 
involve any change in the essential idea of what a computer is, or how it 
operates. Quantum mechanics raises the possibility of such a change, however. 

Quantum mechanics is the mathematical structure which embraces, in 
principle, the whole of physics. We will not be directly concerned 
with gravity, high velocities, or exotic elementary particles, so the 
standard non-relativistic quantum mechanics will suffice. The
significant feature of quantum theory for our purpose is not the precise
details of the equations of motion, but the fact that they treat quantum
amplitudes, or state vectors in a Hilbert space, rather than classical
variables. It is this that allows new types of information
and computing.

There is a parallel between Hilbert's questions about mathematics and the 
questions we seek to pose in quantum information theory. Before Hilbert, 
almost all mathematical work had been concerned with establishing or 
refuting particular hypotheses, but Hilbert wanted to ask what general
type of hypothesis was even amenable to mathematical proof. Similarly,
most research in quantum physics has been concerned
with studying the evolution of specific physical systems, but
we want to ask what general type of evolution is even conceivable
under quantum mechanical rules.

The first deep insight into quantum information theory came with Bell's 
1964 analysis of the paradoxical thought-experiment proposed by Einstein, 
Podolsky and Rosen (EPR) in 1935. 
Bell's inequality draws attention to 
the importance of {\em correlations} between separated quantum systems 
which have interacted (directly or indirectly) in the past, but which no 
longer influence one another. In essence his argument shows that the degree 
of correlation which can be present in such systems exceeds that which 
could be predicted on the basis of {\em any} law of physics which describes 
particles in terms of classical variables rather than quantum states. 
Bell's argument was clarified by Bohm (1951, also Bohm and Aharonov 1957) 
and by Clauser, Holt, Horne and Shimony (1969), and experimental tests were 
carried out in the 1970s (see Clauser and Shimony (1978) and references
therein). Improvements in such 
experiments are largely concerned with preventing the possibility of any 
interaction between the separated quantum systems, and a significant step 
forward was made in the experiment of Aspect, Dalibard and Roger (1982), 
(see also Aspect 1991) since in their work any purported interaction would 
have either to travel faster than light, or possess other almost equally 
implausible qualities. 

The next link between quantum mechanics and information theory came
about when it was realised that simple properties of quantum systems,
such as the unavoidable disturbance involved in measurement, 
could be put to practical use, in {\em quantum cryptography}
(Wiesner 1983, Bennett {\em et. al.} 1982, Bennett and Brassard 1984;
for a recent review see Brassard and Crepeau 1996). 
Quantum cryptography covers several ideas, of which the most firmly
established is quantum key distribution.
This is an ingenious method in which transmitted quantum states are used to
perform a very particular communication task: to establish
at two separated locations a pair of identical, but
otherwise random, sequences of binary digits, without allowing
any third party to learn the sequence. This is very useful
because such a random sequence can be used as a cryptographic
key to permit secure communication. The significant feature
is that the principles of quantum mechanics guarantee
a type of conservation of quantum information, so that
if the necessary quantum information arrives at the parties
wishing to establish a random key, they can be sure it has
not gone elsewhere, such as to a spy. Thus the whole problem
of compromised keys, which fills the annals of espionage, is
avoided by taking advantage of the structure of the natural world.

While quantum cryptography was being analysed and demonstrated, the quantum 
computer was undergoing a quiet birth. Since quantum mechanics underlies
the behaviour of all systems, including those we call classical
(``even a screwdriver is quantum mechanical'', Landauer (1995)), it
was not obvious how to conceive of a distinctively quantum mechanical
computer, i.e. one which did not merely reproduce the action of a
classical Turing machine. Obviously it is not sufficient merely to
identify a quantum mechanical system whose evolution could be interpreted
as a computation; one must prove a much stronger result than this.
Conversely, we know that classical computers can simulate, by their 
computations, the evolution of any quantum system \ldots with one reservation: 
no classical process will allow one to prepare separated systems whose 
correlations break the Bell inequality. It appears from this that the
EPR-Bell correlations are the quintessential quantum-mechanical property
(Feynman 1982).

In order to think about computation from a quantum-mechanical point of view, 
the first ideas involved converting the action of a Turing machine into an 
equivalent reversible process, and then inventing a Hamiltonian which would 
cause a quantum system to evolve in a way which mimicked a reversible Turing 
machine. This depended on the work of Bennett (1973; see
also Lecerf 1963) who had shown that a 
universal classical computing machine (such as Turing's) could be made 
reversible while retaining its simplicity. Benioff (1980, 1982)
and others proposed such Turing-like Hamiltonians in the early 1980s. Although
Benioff's ideas did not allow the full analysis of quantum computation,
they showed that unitary quantum evolution is at least as powerful 
computationally as a classical computer.

A different approach was taken by Feynman (1982, 1986) who considered the 
possibility not of universal computation, but of universal {\em 
simulation}---i.e. a purpose-built quantum system which could simulate the {\em 
physical behaviour} of any other. Clearly, such a simulator would be a 
universal computer too, since any computer must be a physical system. Feynman 
gave arguments which suggested that quantum evolution could be used to 
compute certain problems more efficiently than any classical computer, but his 
device was not sufficiently specified to be called a computer, since he assumed 
that any interaction between adjacent two-state systems could be `ordered', 
without saying how. 

In 1985 an important step forward was taken by Deutsch. Deutsch's proposal 
is widely considered to represent the first blueprint for a quantum 
computer, in that it is sufficiently specific and simple to allow real 
machines to be contemplated, but sufficiently versatile to be a universal 
quantum simulator, though both points are debatable. Deutsch's
system is essentially a line of two-state systems, 
and looks more like a register machine than a Turing machine 
(both are universal classical computing machines). Deutsch proved that if 
the two-state systems could be made to evolve by means of a specific small 
set of simple operations, then {\em any} unitary evolution could be 
produced, and therefore the evolution could be made to simulate that of any 
physical system. He also discussed how to produce Turing-like behaviour 
using the same ideas. 

Deutsch's simple operations are now called quantum `gates', since they
play a role analogous to that of binary logic gates in classical
computers. Various authors have investigated the minimal class of gates
which are sufficient for quantum computation.

The two questionable aspects of Deutsch's proposal are its
efficiency and realisability. The question of efficiency is absolutely
fundamental in computer science, and on it the concept of `universality'
turns. A {\em universal} computer is one that not only
can reproduce (i.e. simulate) the action of any other, but can do so
without running too slowly. The `too slowly' here is defined in
terms of the number of computational steps required: this number must
not increase exponentially with the size of the input (the precise
meaning will be explained in section \ref{s:UTM}). Deutsch's
simulator is not universal in this strict sense, though
it was shown to be efficient for simulating a wide class of
quantum systems by Lloyd (1996). However, Deutsch's
work has established the concepts of quantum networks 
(Deutsch 1989) and quantum
logic gates, which are extremely important in that they allow us
to think clearly about quantum computation.

In the early 1990's several authors (Deutsch and Jozsa 1992, Berthiaume
and Brassard 1992, Bernstein and Vazirani 1993) sought computational 
tasks which could be solved by a quantum computer more efficiently than 
{\em any} classical computer. Such a quantum algorithm would play a 
conceptual role similar to that of Bell's inequality, in defining something 
of the essential nature of quantum mechanics. 
Initially only very small differences in performance were found, in which 
quantum mechanics permitted an answer to be found with certainty, as long 
as the quantum system was noise-free, where a probabilistic classical 
computer could achieve an answer `only' with high probability. 
An important advance was made by Simon (1994), who described an efficient 
quantum algorithm for a (somewhat abstract) problem for which no efficient 
solution was possible classically, even by probabilistic methods. This 
inspired Shor (1994) who astonished the community by describing an 
algorithm which was not only efficient on a quantum computer, but also 
addressed a central problem in computer science: that of factorising large 
integers.

Shor discussed both factorisation and discrete logarithms,
making use of a quantum Fourier transform method discovered by Coppersmith 
(1994) and Deutsch. Further important quantum algorithms were
discovered by Grover (1997) and Kitaev (1995).

Just as with classical computation and information theory, once
theoretical ideas about computation had got under way, an effort
was made to establish the essential nature of quantum information---the
task analogous to Shannon's work. The difficulty here
can be seen by considering the simplest quantum system, a two-state
system such as a spin half in a magnetic field. The quantum
state of a spin is a continuous quantity defined by two real numbers, 
so in principle it can store an infinite amount of classical information.
However, a measurement of a spin will only provide a single
two-valued answer (spin up$/$spin down)---there is no way to
gain access to the infinite information
which appears to be there, therefore it is incorrect to consider
the information content in those terms. This is reminiscent of the 
renormalisation problem in quantum electrodynamics. How much information
can a two-state quantum system store, then? The answer, provided by
Jozsa and Schumacher (1994) and 
Schumacher (1995), is {\em one two-state system's worth}!
Of course Schumacher and Jozsa did more than propose this simple answer,
rather they showed that the two-state system plays the role in
quantum information theory analogous to that of the bit in classical
information theory, in that the quantum information content of
{\em any} quantum system can be meaningfully measured
as the minimum number of two-state systems, now called quantum bits or
qubits, which would be needed to store or transmit the system's state
with high accuracy.

Let us return to the question of realisability of quantum computation. It is 
an elementary, but fundamentally important, observation that the quantum 
interference effects which permit algorithms such as Shor's are extremely 
fragile: the quantum computer is ultra-sensitive to experimental noise and 
impression. It is not true that early workers were unaware of this 
difficulty, rather their first aim was to establish whether a quantum 
computer had any fundamental significance at all. Armed with Shor's 
algorithm, it now appears that such a fundamental significance is 
established, by the following argument: either nature does allow a device to 
be run with sufficient precision to perform Shor's algorithm for large 
integers (greater than, say, a googol, $10^{100}$), or there are fundamental 
natural limits to precision in real systems. Both eventualities represent an 
important insight into the laws of nature. 

At this point, ideas of quantum information and quantum computing come 
together. For, a quantum computer can be made much less sensitive
to noise by means of a new idea which comes directly
from the marriage of quantum mechanics with classical information
theory, namely {\em quantum error correction}. Although the phrase
`error correction' is a natural one and was used with reference
to quantum computers prior to 1996, it was only in that year that
two important papers, of Calderbank and Shor, and independently
Steane, established a general framework whereby quantum information
processing can be used to combat a very wide class of noise
processes in a properly designed quantum system. Much progress
has since been made in generalising these ideas (Knill and Laflamme 1997, 
Ekert and Macchiavello 1996, Bennett {\em et. al.} 1996b,
Gottesman 1996, Calderbank {\em et. al.} 1997). An important
development was the demonstration by Shor (1996) and Kitaev (1996)
that correction can be achieved even when the corrective operations
are themselves imperfect. Such methods lead to a general concept
of `fault tolerant' computing, of which a helpful review is provided by 
Preskill (1997). 

If, as seems almost certain, quantum computation will only work in conjunction
with quantum error correction, it appears that the relationship between quantum 
information theory and quantum computers is even more intimate than that 
between Shannon's information theory and classical computers. Error correction 
does not in itself guarantee accurate quantum computation, since it cannot 
combat all types of noise, but the fact that it is possible at all is a 
significant development. 

A computer which only exists on paper will not actually perform
any computations, and in the end the only way to resolve the issue of
feasibility in quantum computer science is to build a quantum computer.
To this end, a number of authors proposed computer designs based on
Deutsch's idea, but with the physical details more fully worked out
(Teich {\em et. al.} 1988, Lloyd 1993, Berman {\em et. al.} 1994,
DiVincenco 1995b).
The great challenge is to find a sufficiently complex system whose
evolution is nevertheless both coherent (i.e. unitary) and controlable. 
It is not sufficient that only some aspects of a system should be
quantum mechanical, as in solid-state `quantum dots', or that there is an 
implicit assumption of unfeasible precision or cooling, which is often the
case for proposals using solid-state devices. Cirac and Zoller (1995)
proposed the use of a linear ion trap, which was a significant improvement in 
feasibility, since heroic efforts in the ion trapping community had already 
achieved the necessary precision and low temperature in experimental work, 
especially the group of Wineland who demonstrated cooling to the ground state 
of an ion trap in the same year (Diedrich {\em et. al.} 1989,
Monroe {\em et. al.} 1995). More recently, Gershenfeld
and Chuang (1997) and Cory {\em et. al.} (1996,1997) have
shown that nuclear magnetic resonance (NMR) techniques can be adapted
to fulfill the requirements of quantum computation, making this approach
also very promising. Other recent proposals of
Privman {\em et. al.} (1997) and Loss and DiVincenzo (1997) may also
be feasible.

As things stand, no quantum computer has been built, nor looks likely to be 
built in the author's lifetime, if we measure it in terms of Shor's algorithm, 
and ask for factoring of large numbers. However, if we ask instead for
a device in which quantum information ideas can be explored, then
only a few quantum bits are required, and this will certainly be achieved
in the near future. Simple two-bit operations have been carried out
in many physics experiments, notably magnetic resonance, and work
with three to ten qubits now seems feasible. Notable recent experiments
in this regard are those of Brune {\em et. al.} (1994),
Monroe {\em et. al.} (1995b), Turchette {\em et. al.} (1995)
and Mattle {\em et. al.} (1996).


\newpage



\include{cc}
\include{qc1}
\include{qc2}
\include{qcref}

\onecolumn

\centerline{\epsfbox{amsfig1.eps}}

Fig. 1. Maxwell's demon. In this illustration the demon sets up a pressure
difference by only raising the partition when more gas molecules approach
it from the left than from the right. This can be done in a completely
reversible manner, as long as the demon's memory stores the random results
of its observations of the molecules. The demon's memory thus gets hotter. 
The irreversible step is not the acquisition of information, but the
loss of information if the demon later clears its memory.

\newpage\centerline{\epsfbox{amsfig2.eps}}
Fig. 2. Relationship between quantum mechanics and information theory.
This diagram is not intended to be a definitive statement, 
the placing of entries being to some extent subjective, but it
indicates many of the connections discussed in the article.

\newpage\centerline{\epsfbox{amsfig3.eps}}
Fig. 3.  Relationship between various measures of classical information.

\newpage\centerline{\epsfbox{amsfig4.eps}}
Fig. 4. The standard communication channel (``the information theorist's
coat of arms''). The source (Alice) produces information which is
manipulated (`encoded') and then sent over the channel. At the receiver
(Bob) the received values are 'decoded' and the information thus extracted.

\newpage\centerline{\epsfbox{amsfig5.eps}}
Fig. 5. Illustration of Shannon's theorem. Alice sends $n=100$ bits over
a noisy channel, in order to communicate $k$ bits of information to Bob.
The figure shows the probability that Bob interprets the received
data correctly, as a function of $k/n$, when the error probability
per bit is $p=0.25$. 
The channel capacity is $C = 1-H(0.25) \simeq 0.19$.
Dashed line: Alice sends each bit repeated
$n/k$ times. Full line: Alice uses the best linear error-correcting code
of rate $k/n$.
The dotted line gives the performance of error-correcting codes with
larger $n$, to illustrate Shannon's theorem.

\newpage\centerline{\epsfbox{amsfig6.eps}}
Fig. 6. A classical computer can be built from a 
network of logic gates.

\newpage\centerline{\epsfbox{amsfig7.eps}}
Fig. 7. The Turing Machine. This is a conceptual mechanical
device which can be shown to be capable of efficiently simulating all
classical computational methods. The machine has a finite set of
internal states, and a fixed design. It reads one binary symbol at
a time, supplied on a tape. The machine's action on reading a
given symbol $s$ depends only on that symbol and the internal
state $G$. The action consists in overwriting a new symbol $s'$
on the current tape location, changing state to $G'$, and moving
the tape one place in direction $d$ (left or right). The internal
construction of the machine can therefore be specified by a
finite fixed list of rules of the form $(s,G \rightarrow s', G', d)$.
One special internal state is the `halt' state: once in this state
the machine ceases further activity.
An input `programme' on the tape is transformed by the machine
into an output result printed on the tape.

\newpage\centerline{\epsfbox{amsfig8.eps}}
Fig. 8. Example `quantum network.' Each horizontal line represents
one qubit evolving in time from left to right. A symbol on
one line represents a single-qubit gate. Symbols on two qubits
connected by a vertical line represent a two-qubit gate operating
on those two qubits. The network shown carries out the operation
$X_1 H_2 {\sc xor}_{1,3} \ket{\phi}$. The $\oplus$ symbol
represents $X$ ({\sc not}), the encircled $H$ is the $H$ gate,
the filled circle linked to $\oplus$ is controlled-{\sc not}. 

\newpage\centerline{\epsfbox{amsfig9.eps}}
Fig. 9. Basic quantum communication concepts. The figure
gives quantum networks for (a) dense coding, (b) teleportation
and (c) data compression. The spatial separation of Alice and Bob
is in the vertical direction; time evolves from left to right
in these diagrams. The boxes represent measurements, the
dashed lines represent classical information.

\newpage\centerline{\epsfbox{amsfig10.eps}}
Fig. 10. Quantum network for Shor's period-finding algorithm. Here
each horizontal line is a quantum register rather than a single qubit.
The circles at the left represent the preparation of the input
state $\ket{0}$.
The encircled {\cal ft} represents the Fourier transform (see text),
and the box linking the two registers represents a network to
perform $U_f$. The algorithm finishes with a measurement of the $x$
regisiter.

\newpage\centerline{\epsfbox{amsfig11.eps}}
Fig. 11. Evolution of the quantum state in Shor's algorithm. The
quantum state is indicated schematically by identifying the
non-zero contributions to the superposition. Thus a general
state $\sum c_{x,y} \ket{x} \ket{y}$ is indicated by placing
a filled square at all those coordinates $(x,y)$ on the
diagram for which $c_{x,y} \neq 0$. (a) eq. (\protect\ref{step2}).
(b) eq. (\protect\ref{step4}). 

\newpage\centerline{\epsfbox{amsfig12.eps}}
Fig. 12. Ion trap quantum information processor. A string of singly-charged 
atoms is stored in a linear ion trap. The ions are separated by $\sim 
20\;\mu$m by their mutual repulsion. Each ion is addressed by a pair of 
laser beams which coherently drive both Raman transitions in the ions, and
also transitions in the state of motion of the string. The motional
degree of freedom serves as a single-qubit `bus' to transport quantum
information among the ions. State preparation is by optical pumping and
laser cooling; readout is by electron shelving and resonance fluorescence,
which enables the state of each ion to be measured with high signal to
noise ratio.

\newpage\centerline{\epsfbox{amsfig13.eps}}
Fig. 13. Bulk nuclear spin resonance quantum information processor.
A liquid of $\sim 10^{20}$ `designer' molecules is placed in a sensitive
magnetometer, which can both generate oscillating magnetic fields and
also detect the precession of the mean magnetic moment of the liquid. 
The situation is somewhat like having $10^{20}$ independent
processors, but the initial state is one of thermal equilibrium,
and only the average final state can be detected. 
The quantum information is stored and manipulated in the nuclear
spin states. The spin state energy levels of a given nucleus are
influenced by neighbouring nuclei in the molecule, which enables
{\sc xor} gates to be applied. They are little influenced
by anything else, owing to the small size of a nuclear magnetic moment, 
which means the inevitable dephasing of the processors with respect to each 
other is relatively slow. This dephasing can be undone by `spin echo' 
methods. 

\newpage\centerline{\epsfbox{amsfig14.eps}}
Fig. 14. Fault tolerant syndrome extraction, for the QECC given
in equations (\protect\ref{0E}),(\protect\ref{1E}).
The upper 7 qubits are $qc$, the lower are the ancilla $a$.
All gates, measurements and free evolution are assumed to be noisy. 
Only $H$ and 2-qubit {\sc xor} gates are used; when several
{\sc xor}s have the same control or target bit they are shown superimposed,
NB this is a non-standard notation.
The first part of the network, up until the 7 $H$ gates, prepares $a$ in 
$\ket{0_E}$, and also verifies $a$: a small box represents
a single-qubit measurement. If any measurement gives $1$, the
preparation is restarted. The $H$ gates transform the state of $a$
to $\ket{0_E} + \ket{1_E}$. Finally, the 7 {\sc xor} gates between $qc$
and $a$ carry out a single {\sc xor} in the encoded basis $\{\ket{0_E},
\ket{1_E}\}$. This operation carries $X$ errors from $qc$ into $a$,
and $Z$ errors from $a$ into $qc$. The $X$ errors in $qc$
can be deduced from the result of measuring $a$. A further network
is needed to identify $Z$ errors. Such correction never makes $qc$ 
completely noise-free, but when applied between computational steps it 
reduces the accumulation of errors to an acceptable level. 


\begin{table}
\begin{center}
\begin{tabular}{lll}
Message & Huffman & Hamming \\
\\
0000 & 10       & 0000000 \\
0001 & 000      & 1010101 \\
0010 & 001      & 0110011 \\
0011 & 11000    & 1100110 \\
0100 & 010      & 0001111 \\
0101 & 11001    & 1011010 \\
0110 & 11010    & 0111100 \\
0111 & 1111000  & 1101001 \\
1000 & 011      & 1111111 \\
1001 & 11011    & 0101010 \\
1010 & 11100    & 1001100 \\
1011 & 111111   & 0011001 \\
1100 & 11101    & 1110000 \\
1101 & 111110   & 0100101 \\
1110 & 111101   & 1000011 \\
1111 & 1111001  & 0010110
\end{tabular}
\end{center}
\caption{Huffman and Hamming codes. The left column shows the sixteen
possible 4-bit messages, the other columns show the encoded version
of each message. The Huffman code is for data compression: the
most likely messages have the shortest encoded forms; the code
is given for the case that each message bit is three times more
likely to be zero than one. The Hamming code is an error correcting
code: every codeword differs from all the others in at least 3 places,
therefore any single error can be corrected. The Hamming code
is also linear: all the words are given by linear combinations of
$1010101,\;0110011,\;0001111,\;1111111$. They satisfy the
parity checks $1010101,\;0110011,\;0001111$.}
\end{table}


\end{document}
