NMR quantum computation J.A. Jones a,b, * a Oxford Centre for Molecular Sciences, New Chemistry Laboratory, South Parks Road, Oxford OX1 3QT, UK b Centre for Quantum Computation, Clarendon Laboratory, Parks Road, Oxford OX1 3PU, UK Received 31 July 2000 Contents 1. Introduction .................................................................. 326 1.1. Structure and scope ......................................................... 326 2. Limits to computation ........................................................... 327 2.1. Computational complexity .................................................... 327 2.2. Quantum complexity ........................................................ 328 3. Atomic computation ............................................................ 329 3.1. Computational circuits ...................................................... 330 3.2. Reversible computation ...................................................... 330 3.3. Reversible function evaluation ................................................. 331 4. Quantum computation ........................................................... 331 4.1. Quantum parallelism ........................................................ 332 4.2. Deutsch’s algorithm ........................................................ 332 4.3. Quantum gates ............................................................ 333 4.4. Universality of quantum gates ................................................. 333 5. Building NMR quantum computers ................................................. 334 5.1. Qubits .................................................................. 334 5.2. Logic gates ............................................................... 334 5.3. Initialisation .............................................................. 334 5.4. Readout ................................................................. 335 5.5. Some two spin systems ...................................................... 335 5.6. Scaling the system up ....................................................... 336 6. Qubits and NMR spin states ....................................................... 336 6.1. One qubit states ........................................................... 337 6.2. Two qubit states ........................................................... 337 7. NMR logic gates ............................................................... 338 7.1. One qubit gates ............................................................ 338 7.2. Controlled-not gates ....................................................... 339 7.3. Other two qubit gates ....................................................... 340 7.4. Gates in larger spin systems .................................................. 340 Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360 0079-6565/01/$ - see front matter q 2001 Elsevier Science B.V. All rights reserved. PII: S0079-6565(00)00033-9 www.elsevier.nl/locate/pnmrs * Tel.: 144-1865-272247; fax: 144-1865-272387. E-mail address: jones@qubit.org (J.A. Jones). 7.5. Multi-qubit logic gates ...................................................... 340 7.6. Single transition selective pulses . . ............................................. 340 7.7. Geometric phase-shift gates ................................................... 341 8. Initialisation and NMR .......................................................... 341 8.1. Spatial averaging .......................................................... 342 8.2. Logical labelling ........................................................... 342 8.3. Temporal averaging ........................................................ 343 8.4. The use of “cat” states ...................................................... 343 9. Readout ..................................................................... 344 9.1. Simple readout ............................................................ 344 9.2. Tomography .............................................................. 345 10. Practicalities .................................................................. 345 10.1. Selective pulses ........................................................... 345 10.2. Composite pulses .......................................................... 346 10.3. Abstract reference frames .................................................... 346 11. Simple algorithms .............................................................. 347 11.1. Functions and phases ....................................................... 347 11.2. Deutsch’s algorithm ........................................................ 347 11.3. NMR implementations ...................................................... 348 11.4. Extensions and simplifications ................................................. 349 11.5. Grover’s quantum search ..................................................... 350 11.6. NMR implementations ...................................................... 351 11.7. Extensions ............................................................... 352 12. Quantum phenomena ............................................................ 353 12.1. Entangled states ........................................................... 353 12.2. Quantum teleportation ....................................................... 353 12.3. Error correction ........................................................... 354 13. NMR and entanglement .......................................................... 355 13.1. Quantifying entanglement .................................................... 356 13.2. NMR and quantum mechanics ................................................. 357 14. Conclusions .................................................................. 357 Acknowledgements ................................................................ 358 Appendix A. An explicitly separable decomposition of a pseudo-entangled state ................... 358 References ...................................................................... 358 1. Introduction Quantum computation [1–3] offers the prospect of revolutionising many areas of science by allowing us to solve problems well beyond the power of our current classical computers [4]. In particular a quan- tum computer would be superb for simulating the behaviour of other complex quantum mechanical systems [5,6]. Although the theory of quantum computation has been studied for many years, and many important theoretical results have been obtained, early attempts to actually build even the smallest quantum computer proved extremely challenging. In recent years there has been considerable interest in the use of NMR techniques [7] to implement quan- tum computations [8–14]. It has proved surprisingly simple to build small NMR quantum computers, and while such computers are themselves too small for any practical use, their mere existence has brought great excitement to a field largely deprived of experi- mental achievements. 1.1. Structure and scope In this article I will describe how NMR techniques may be used to build simple quantum information processing devices, such as small quantum computers, J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360326 and show how these techniques are related to more conventional NMR experiments. Many tricks and techniques well known from conventional NMR studies can be applied to NMR quantum computation, and it is likely that some of these will be applied in any large scale quantum computer which is eventually built. Conversely, techniques from quantum computa- tion could have applications within NMR. It is impossible to explain how NMR may be used to implement quantum computations without first explaining what quantum computation is, and what it could achieve. This in turn requires a brief discus- sion of classical reversible computation [15]. In order to reduce these introductory sections to a reasonable length many technical points have inevitably been skipped over. Wherever possible I will use traditional product operator notation [16] to describe how NMR quantum computers are implemented; it will some- times, however, be necessary to use more abstract quantum mechanical notations [17] to describe what these computers seek to achieve. Before the advent of NMR quantum computation, almost all research in this field was performed within a small community of physicists and mathematicians. Some important results have never been published as conventional papers, but simply circulate as electronic preprints; copies of most of these can be obtained from the quant-ph archive on the LANL e-print server [18]. Similarly, many other papers appear as LANL e-prints long before more formal publication. 2. Limits to computation Over the last forty years there has been astonishing progress in the power of computational devices using silicon based integrated circuits. This progress is summarised in a set of “laws”, usually ascribed to Moore, although some were developed by other people. Over this period the power of computational devices has roughly doubled every eighteen months, or increased ten-fold every five years. Unfortunately, this extraordinary technological progress may not continue for much longer, as this increase in comput- ing power requires a corresponding decrease in the size of the transistors on the chip; this shrinking process cannot be continued indefinitely as the tran- sistors will eventually be reduced to the atomic scale. At current rates of progress it is estimated [19] that the ultimate limits of this approach will be reached by about 2012, and any further progress in the power of our computers will require a radically different approach. One possible approach is to use the power offered by quantum computation. 2.1. Computational complexity Even if the problems described above are side- stepped in some way, there are still strong limits to the problems which we can solve with current compu- ters. These limits are derived from the underlying theory of computation itself, and in particular from computational complexity theory [20]. Complexity theory considers the classification of mathematical problems according to how difficult they are to deal with, and seeks to divide them into those which are relatively easy (tractable) and those which are uncom- fortably difficult (intractable). Note that complexity theory is not concerned with problems which we do not know how to solve, or which we know cannot be solved, but only with problems for which an algorith- mic solution (tractable or intractable) is known. The classical theory of computation has remained largely unchanged for decades, with a central role played by the Church–Turing thesis. This asserts that all physically reasonable models of computation are ultimately equivalent to one another, so that it is not really necessary to consider any particular compu- ter when assessing the complexity of a problem; any reasonable model will do. In particular, the tractability or otherwise of a problem is independent of the computational device used. As we will see, quantum computation challenges this thesis, as quantum computers appear to be fundamentally more powerful than their classical equivalents. To make further progress it is necessary to use a more precise measure of the complexity of an algo- rithm. The usual approach is to determine the compu- tational resources (most commonly defined as the number of elementary computational operations) required to implement it. Clearly this measure will depend on the exact nature of the computational resources available to our computer, and so this is not directly useful. A better approach is to consider not a single isolated problem, but a family of closely related problems, and to determine how the resources J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360 327 required scale within this family. To take a simple example, adding two n digit numbers with pencil and paper requires n separate additions, together with n carries, and so the time required for addition scales linearly with n. Similarly, multiplying two n digit numbers by long multiplication requires n 2 multiplications and a similar number of additions. Mathematically, adding two n digit numbers is said to be O(n) (that is, of order n). The exact number of steps required will depend on exactly how elementary computational steps are counted, but the total number of steps will always scale linearly with n. Similarly, long multiplication can always be performed in a number of steps which varies quadratically with n, and so is O(n 2 ). The complexity of a problem, rather than an algo- rithm, may be defined as the complexity of the best known algorithm for solving the problem; thus addi- tion is O(n). It might seem that multiplication is O(n 2 ), but in fact long multiplication is not the best known algorithm; a better approach is known with complex- ity about O(n log n) [20]. Strictly speaking one should also distinguish between an upper bound on the number of steps known to be sufficient to solve a problem (indicated by O), and a lower bound on the number of steps known to be required to solve a problem (indicated by V); a problem, such as addition of n digit numbers, which is both O(n) and V(n)is denoted as Q(n). Problems, such as addition and multiplication, whose complexity is at worst a polynomial function of n, are said to be easy, while problems whose complexity is worse than a polynomial function of n are said to be hard. For example, consider the problem of finding the prime factors of an n digit composite number. The obvious way to do this is to simply try dividing the composite number by every number less than its square root; as there are approximately 10 n p 10 n=2 such trial divisors, this algorithm has complexity O(10 n/2 ). Better algorithms for factoring are known, but they all have the same property of exponential complexity. For problems with polynomial complexity, espe- cially those whose complexity is described by a low power of n, such as n or n 2 , the effort required to solve a problem increases only slowly with n. Thus it should be possible to tackle such problems for a reasonable range of input sizes, and a modest increase in computer power should give a significant increase in this range. Exponential functions, however, rise extre- mely rapidly with n, and so it will only be possible to solve problems with exponential complexity for rela- tively small input sizes; furthermore a modest increase in computer power will result in only a tiny increase in the range of problems that can be solved. The apparent exponential complexity of factoring is a matter of some importance, as it underlies many cryptographic schemes in use today, notably those based on the Rivest–Shamir–Adleman (RSA) approach to public key cryptography, such as Pretty Good Privacy (PGP) [21]. These schemes involve a public key, which anyone may use to encrypt a message, and a private key, which is required to decrypt such messages. The relationship between these two keys is equivalent to the relationship between the product of two large prime numbers and the two prime numbers themselves. The security of the system depends on the difficulty of determining the private key from a long public key, which itself depends on the complexity of factoring. By contrast, the computational complexity of encrypting and decrypting messages is only a polynomial function of the size of the keys. Thus a small increase in the amount of effort required to use the cryptographic scheme results in an enormous increase in its security. 2.2. Quantum complexity Quantum computation offers the possibility of bypassing some of the limits apparently imposed by complexity theory. This is because a quantum compu- ter could implement entirely new classes of algo- rithms which would allow currently intractable problems to be solved with ease. The first serious discussion of quantum computa- tion was by Feynman, who analysed the difficulty of simulating quantum mechanical systems using classi- cal computers [5]. This difficulty is well known and easy to understand; it arises from the enormous free- dom available to quantum systems. For example, a system of n coupled spin-1/2 nuclei inhabits a Hilbert space of size 2 n , and so must be described by a vector with 2 n components. Thus it appears that any classical algorithm to simulate the behaviour of n spin-1/2 parti- cles must have complexity at least O(2 n ); within NMR this corresponds to the well known computational J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360328 difficulty of simulating a large strongly coupled spin system. This apparently inevitable exponential complexity makes the simulation of quantum mechan- ical systems an intractable problem. Despite this apparent complexity, however, coupled spin systems evolve in the “correct” manner. Thus, in some sense, such a spin system appears to have the capacity to solve a problem which is intract- able by conventional classical means. Clearly using a system to simulate itself is not a huge step forward, but Feynman suggested that it might also be possible to use one quantum mechanical system to simulate another quite different system. Thus an easily control- lable system might be used to simulate the behaviour of another less well behaved system, while a carefully chosen system might be usable as a general purpose quantum simulator [5,6]. Feynman’s ideas appear to have been limited to the simulation of physical systems, and the ideas he described have more in common with analogue computers than with current digital computers. In 1985, however, Deutsch extended these ideas and described a quantum mechanical Turing machine, which could act as a general purpose computer [22]. Deutsch also described a (somewhat contrived) problem [23–25] which could be solved more effi- ciently on a quantum mechanical computer than on any classical computer, suggesting that it might be possible to use a quantum computer to solve otherwise intractable problems. Since that time several quantum algorithms [26] have been developed, the most notable of which is Shor’s quantum factoring algorithm [4]; this allows a composite number to be factored with a complexity only slightly greater than O(n 2 ), thus rendering factor- ing tractable. As well as being of great mathematical interest, this algorithm has obvious practical signifi- cance, as it poses a threat to many current crypto- graphic schemes. The discovery of Shor’s algorithm triggered an enormous increase in research directed at quantum computation and related areas of quantum information theory. 3. Atomic computation Before describing how quantum mechanical com- puters can be built, it is useful to consider how an atomic scale system, such as a group of coupled nuclei, could be used to implement classical com- putations [15,27,28]. Discussions of this predate J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360 329 Fig. 1. A circuit to compute the exclusive-or (xor) function, z x xor y, using and, or and not gates. Note that this circuit uses three implicit gates, two clone gates, shown as small circles, where wires split into two (to copy the input) and one swap gate (where the wires cross over). These implicit gates are fairly easy to implement in traditional electronic computers, but can cause problems in other designs and so cannot simply be ignored. Some authors even consider the wires which interconnect gates as non-trivial gates in their own right. Fig. 2. (a) A circuit to compute the exclusive-or (xor) function, z x xor y, using only nand and not gates. This is not the best such circuit; simpler circuits are known, but this one preserves the basic structure seen in Fig. 1. (b) A circuit to implement a not gate, y not x, using a nand gate. By combining circuits (a) and (b) it is possible to implement xor using only nand gates. Any other function may be computed in a similar fashion, and so nand is a universal gate. Note, however, that both circuits use implicit clone gates, while (a) also uses one implicit swap gate. suggestions that quantum devices might have funda- mentally different properties. The basic approach is very simple. Classical computation [15] is implemented with two state devices, usually called bits, and these two states can be mapped to the two eigenstates of a quantum mechanical two level system. The calculation then proceeds by manipulating the states of various bits such that the final state of some group of bits (the “output register”) depends on the result of the desired computation. As will be shown later, quantum compu- tation is very similar, except that the bits are not confined to their eigenstates; this effectively allows many different calculations to be carried out in parallel. 3.1. Computational circuits Although several different theoretical models are useful for abstract descriptions of computers, one of the most convenient approaches for describing how to build small computers is the circuit model, in which bits interact through gates which implement Boolean logic operations. One traditional set of classical gates is the one bit not gate together with two different two bit gates, and and or. These three gates are said to form an adequate set, in that any desired logic opera- tion can be performed by building an appropriate circuit (see Fig. 1 for an example) using some combi- nation of these three gates. In fact it is not necessary to use all these gates: they can themselves all be obtained using combinations of nand gates (Fig. 2), and so the nand gate is universal for classical computation. It is, however, necessary to proceed with some caution, as several other “implicit” gates are also required, such as the clone gate, which makes a copy of a bit, and the swap gate, which allows two wires to cross one another. This description works well with conventional computers, in which bit states are represented by voltages applied to wires, but it cannot be used with atomic computers. Atomic computers represent bit values using the quantum states of atomic systems, so a logic gate can neither create nor destroy bits; thus logic gates such as and, which have two input bits and only one output bit, are immediately ruled out. Similarly, atomic systems evolve under a series of unitary transformations, which correspond to rever- sible operations, while many of the operations described above are clearly not reversible. In order to build atomic computers, therefore, it is necessary to use a different approach, using only reversible logic operations. 3.2. Reversible computation The theory of reversible computation [15,27,28] has been studied extensively and, perhaps surpris- ingly, it is simple to perform any logic operation in a reversible manner. The only irreversible operation required when performing a computation [29,30] is the preparation of a well defined initial state, usually taken as having all bits in state 0; after this initialisa- tion process the computation can be performed entirely reversibly. The basic approach needed to achieve reversible logic can be summarised in two simple rules. First, any logical inputs to a gate must be preserved in the outputs; this is most simply achieved by copying them to output bits without change. Secondly, the output of the gate (here assumed for simplicity to comprise a single bit) must be combined in a reversible fashion with an additional auxiliary bit, for example by adding the two bits together using binary arithmetic modulo two. Binary arithmetic modulo two, usually indicated by the symbol % , has the useful properties that x % 0 0 % x x and x % 1 1 % x not x ; while x % x 0: A simple example of a reversible logic gate based on this approach is the controlled-not gate (see Fig. 3), which has two inputs, x and y and two corresponding outputs x 0 and y 0 . The first input bit is copied to its output bit, so x 0 x; and is also combined with the second input bit to give y 0 x % y: Thus a not gate is applied to the second bit (the target bit) if and only if the first bit (the control bit) is J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360330 Fig. 3. The controlled-not gate, which plays a central role in rever- sible and quantum computation. The target bit is marked by a % symbol, indicating the close relationship with binary arithmetic modulo two; the control bit is marked by a dot and a vertical control line (the dot is important in drawings of larger circuits where a control line may have to cross lines representing other bits). in state 1. Note that a controlled-not gate is comple- tely reversible; indeed it can be reversed by simply applying the same gate again (that is, controlled-not is its own inverse). Furthermore, as x % y x xor y the controlled-not gate is just a reversible xor gate. A more complex example is provided by the controlled-controlled-not gate, often called the Toffoli gate (Fig. 4), which plays a central role in reversible logic. This gate has three inputs, x, y and z, and three corresponding outputs, x 0 , y 0 and z 0 . The first two input bits, which are the logical inputs, are copied unchanged, so that x 0 x and y 0 y.Anot gate is then applied to the third bit if and only if both x and y are in state 1; hence z 0 z % (x and y). Thus this gate can be considered as a reversible equivalent to the conventional and and nand gates: to evaluate x and y just use a Toffoli gate with z 0; while for a nand gate set z 1: The combination of the Toffoli gate with the controlled-not and simple not gates forms an adequate set, in that it is possible to build any other gate using only a combination of these gates (in parti- cular controlled-not gates can also be used to build the two implicit gates, clone and swap, as shown in Fig. 5). Indeed, the Toffoli gate is universal in its own right, as a Toffoli gate can be easily converted into a controlled-not gate by setting x 1; and to a simple not gate by setting x y 1: 3.3. Reversible function evaluation Central to reversible computation is the idea of reversible function evaluation. I will initially assume that the function has a single bit as both input and output, but the generalisation to more complex func- tions is straightforward. This can be achieved by constructing a circuit with two inputs and two outputs, as shown in Fig. 6 (an f-controlled-not) and setting b 0: The two values of the function, f(0) and f(1), can then be evaluated by setting a 0 and a 1; respectively. The f-controlled-not gate can itself be built out of simpler gates, such as those described above; in most cases this will also require a number of ancilla bits to hold intermediate results. For simpli- city these ancilla bits are usually omitted from diagrams such as Fig. 6. 4. Quantum computation We now have all the basic elements needed to describe how quantum computers could be used to extend our computational abilities. While large scale quantum algorithms, such as Shor’s algorithm, are too complex to describe here, the basic ideas are relatively simple. As described above, a quantum mechanical two- level system can be used to build a reversible classical computer by using the two eigenstates of the system to represent bits in logical states 0 and 1. For example, the two Zeeman levels of a spin-1/2 nucleus in a magnetic field, ual and ubl, would be suitable for this purpose. For simplicity the two states are usually denoted u0l and u1l, allowing quantum computation to be described without reference to any particular implementation; this choice of basis set is called the computational basis. The system will not be confined to these two eigenstates, however, but can also be found in superpositions, such as u0l 1 u1l 2 p 1 (the 2 p term is necessary to ensure that the state is normalised). For this reason a quantum mechanical two level system has much more freedom than a J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360 331 Fig. 4. The Toffoli gate, which gives x 0 x; y 0 y; and z 0 z % (x and y). Fig. 5. (a) The controlled-not gate can be used to reversibly clone a bit. (b) Three controlled-not gates implement a swap gate. Fig. 6. The f-controlled-not gate, for reversible function evaluation: a 0 a and b 0 b % f a : classical bit, and so is called a quantum bit, or qubit for short. A qubit in a superposition state is (in some sense) in both of the states contributing to the super- position at the same time, so a qubit can simulta- neously occupy two different logical states. Computational circuits are implemented within quantum computers by performing physical manipu- lations so that the computer evolves under a propaga- tor which implements the desired unitary transformation. Just as circuits can be built up from gates these propagators can be assembled from simpler elements, and so these propagators are often referred to as circuits, even though their physical implementation may bear little resemblance to conventional electrical circuits. As before, this abstract model allows quantum computers to be described in a device-independent fashion. As discussed below, it is possible to construct any quantum circuit by combining a small number of simple propagators, usually called gates. These gates only affect one or two qubits at a time, and so it is perfectly practical to describe their propagators expli- citly, for example as a matrix. A matrix description clearly depends on the choice of basis set, but the usual choice is to work in the computational basis, in which the basis vectors correspond with the differ- ent logical states of the computer; thus for a two qubit gate the basis set is {u00l; u01l; u10l; u11l}: In many proposed physical implementations of quantum computers, such as NMR, this basis set is also the natural basis for the system, as the basis states are eigenstates of the background Hamiltonian. 4.1. Quantum parallelism The central feature underlying all quantum algo- rithms is the idea of quantum parallelism, which in turns stems from the ability of quantum systems to be found in superposition states. Consider once again the reversible circuit for function evaluation (Fig. 6). This can be achieved by constructing a propagator, U f , applied to two qubits, which performs ualubl! U f ualub % f a l 2 and setting ubl u0l: The two values of the function, f(0) and f(1), can then be evaluated by setting ual u0l and ual u1l as before. Now consider the effect of applying this circuit when the first qubit is in a superposition described by Eq. (1) and the second qubit is in state u0l. This can be easily calculated as quantum mechanics is linear, and so the effect of applying a gate to a superposition is a superposition of the results of applying the gate to the two eigen- states. Hence the result is u0l 1 u1l 2 p u0l! U f u0lu f 0 l 1 u1lu f 1 l 2 p : 3 Thus the quantum computer has simultaneously evaluated the values of f(0) and f(1). When applied to more complex systems, quantum parallelism has potentially enormous power. Consider a function for which the input is described by n bits, so that there are 2 n possible inputs (since n bits can be used to describe any integer between 0 and 2 n 2 1); a quantum computer using n qubits as inputs can eval- uate the function over all of these 2 n inputs in one step. In effect a quantum computer with n input qubits appears to have the computational power of 2 n classi- cal computers acting in parallel. Unfortunately it is not always possible to use this quantum parallelism in any useful way. Performing parallel function evaluation over n qubits will result in a state of the form X 2 n 2 1 i 0 uilu f i l 2 n=2 ; 4 which is a superposition of the 2 n possible inputs, each entangled with its own function value. If any attempt is made to measure the state of the system, then the superposition will collapse into one of its component values, urluf(r)l, where the value of r is chosen at random. Thus even though it seems possible to eval- uate the function over its 2 n input values, it is only possible to obtain one of these values. It is, however, sometimes possible to obtain useful information in a more subtle way. In some cases, the answer of interest does not depend on specific values, f(r), but only on global properties of the function itself. This is the basis of both Deutsch’s toy algorithm and Shor’s quantum factoring algorithm. 4.2. Deutsch’s algorithm Deutsch’s algorithm [23–25] was the first quantum algorithm to be discovered, and is one of the few J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360332 quantum algorithms simple enough to describe here. The problem can be described in terms of function evaluation, but a more concrete picture can be obtained by thinking about coins. Normal coins have two different faces, conventionally called heads and tails, but fake coins can be obtained which have the same pattern on both faces. Consider an unknown coin, which could be either a normal coin or a fake coin. In order to determine which type it is, it would seem necessary to look at both sides to find out whether they showed heads or tails, and then see whether these two results were the same (a false coin) or different (a true coin). With a quantum device, however, it would be possible to look at both sides simultaneously, and thus determine whether the coin was normal or fake in a single glance. The trick lies in abandoning any attempt to deter- mine the pattern shown on either side of the coin; instead one must simply ask whether the two faces are the same or different. This is a property not of the individual faces of the coin, but of the whole coin, and thus may be extracted from a state of the kind described by Eq. (3). A more detailed explana- tion of this approach is given in Section 11. 4.3. Quantum gates Just as classical reversible computations can be performed using circuits built up out of reversible gates, quantum circuits can be constructed using quantum gates [31]. Unlike classical circuits, however, quantum circuits can include gates which generate and analyse qubits which are in superposi- tions of states. One such gate is the single qubit Hadamard gate, H, which implements the transformations u0l! H u0l 1 u1l = 2 p 5 u1l! H u0l 2 u1l = 2 p 6 As discussed below, this is closely related to a 908 pulse, but differs in some subtle ways; in particular the Hadamard is its own inverse. The Hadamard gate is useful as it takes a qubit in an eigenstate to a uniform superposition of states. By analogy one can define multi-qubit Hadamard gates which take a quantum register into a uniform super- position of all its possible values: u00l! H u00l 1 u01l 1 u10l 1 u11l =2: 7 This can be easily achieved by applying a one qubit Hadamard to each qubit. Another important property of the Hadamard gate can be seen by examining the right hand sides of Eqs. (5) and (6). These differ only by the presence of a minus sign, so the two super- positions differ only by the phase with which the two eigenstates are combined. The ability of the Hadamard gate to convert such phase differences into different eigenstates plays a central role in many quantum algorithms. 4.4. Universality of quantum gates The gates we have seen so far are enough to explain some simple quantum algorithms; for example, Deutsch’s algorithm can be described using only Hadamard gates and reversible function evaluation gates. It is, however, useful to consider other more general quantum gates; indeed as any unitary trans- formation can be considered as a quantum gate, we may need to consider an infinite number of gates. Within classical models of computation (both reversible and irreversible) it is possible to construct any desired gate by combining copies of a small number of simple gates. A similar situation applies in quantum computation, but in this case there are an infinite number of possible gates (even if we restrict ourselves to single qubit gates, any rotation around any axis constitutes a valid one qubit gate). Clearly it cannot be possible to construct an infinite number of different gates by combining a finite number of simpler gates, but it is possible to simulate any gate to any desired accuracy [32,33], which is good enough. Perhaps surprisingly there exists a very large number of two qubit gates which are universal in this restricted sense, in that it is possible to simulate any desired gate (that is, any unitary trans- formation) using only one of these universal gates together with its twin, obtained by swapping the roles of the two qubits. Indeed, mathematically speak- ing, almost all two qubit gates are universal [34–36]. While mathematically interesting, this result is of little immediate practical implication for most J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360 333 possible implementations of a quantum computer, as it is usually more sensible to use a larger and more convenient set of gates. As one qubit gates are usually much simpler to perform than gates involving two or more qubits, it is often reasonable to assume that any one qubit gate (or, at least a reasonable approximation to it) is available. The combination of this set of one qubit gates with any single non-trivial two qubit gate, such as the controlled-not gate forms an adequate set [33], from which any other gate may be built with relative ease. 5. Building NMR quantum computers While it would in principle be possible to use a wide range of different approaches to build a quantum computer, all the main proposals to date [2,3] have used broadly similar approaches, based on the quan- tum circuit model outlined above. This model contains five major components, each of which must be implemented in order to construct a working computer [37]. Four central components can all be implemented within NMR systems as described below, while the fifth component, error correction, is discussed in Section 12. 5.1. Qubits The first of these requirements, a set of qubits, appears easy to achieve, as the two spin states of spin-1/2 nuclei in a magnetic field provide a natural implementation. However, one important feature which distinguishes NMR quantum computers from other suggested implementations is that NMR studies not a single isolated quantum system, but rather a very large number (effectively an ensemble) of such systems. Thus an NMR quantum computer is actually an ensemble of indistinguishable computers, one on each molecule in the NMR sample. This has a number of subtle and important consequences as discussed below. 5.2. Logic gates In order to perform an arbitrary computation it is necessary to implement arbitrary quantum logic circuits. This can be achieved as long as it is possible to implement an adequate set of gates, which can be combined together to implement any other desired gate. While many different sets of gates are possible, a simple approach is to implement the set of all possi- ble one qubit gates, together with one or more non- trivial two qubit gates [33]. One qubit gates correspond to rotations of a spin within its own one-spin Hilbert space, which can be readily achieved using RF fields. Note that it is neces- sary to apply these rotations selectively to individual qubits. In most other suggested implementations of quantum computation [2,3] this is easily achieved using some type of spatial localisation: the physical objects implementing the qubits are located at well defined and distinct locations in space. This approach is not possible in NMR, as each qubit is implemented using an ensemble of nuclei, each of which is located at a different place in the NMR sample, and all of which are undergoing rapid motion. Instead different qubits are implemented using different nuclei in the same molecule, and they are distinguished using the different resonance frequencies of each nucleus. Two qubit gates, such as the controlled-not gate, are more complicated as they involve conditional evolution (that is, the evolution of one spin must depend on the state of the other spin), and thus require some interaction between the two qubits. The J- coupling in NMR is well suited to this purpose. Note that all the different nuclei making up an NMR quantum computer must participate in a single coupling network. It is not necessary (or even desir- able) that all the nuclei are directly coupled together, but they must be connected, directly or indirectly, by some chain of resolved couplings. Since J-coupling only occurs within a molecule, and does not connect different molecules, we can treat an ensemble of molecules as an ensemble of identical mutually isolated computers. 5.3. Initialisation Quantum logic gates transform qubits from one state to another, but this is only useful if the qubits start off in some well defined initial state. In practice it is sufficient to have some method for reaching any one initial state, and the obvious choice is to have all the qubits in the u0l state, corresponding to a clear opera- tion. Any other desired starting state can then be easily obtained. J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360334 When, as for NMR, the computational basis coin- cides with the natural basis of the quantum system it should in principle be easy to implement clear as it takes the quantum computer to its energetic ground state, and this can be achieved by some cooling process. Unfortunately this approach is not practical in NMR as the Zeeman energy gap is small compared with the Boltzman energy at any reasonable temperature; thus at room temperature the population of all the states will be almost equal, with only small deviations (around one part in 10 4 ) from the average. Techniques for enhan- cing spin polarisation [38], such as optical pumping [39–41], and the use of para-hydrogen [42–44] allow this deviation to be increased, but with the exception of optically pumped noble gases it has so far proved impos- sible to even approach a pure ground state system. This apparent inability to implement the CLEAR operation led to NMR being rejected as a practical technology for implementing quantum computers. Recently, however, it was realised [8] that this conclu- sion was over hasty, as with an ensemble quantum computer it is not actually necessary to produce a pure ground state; instead it suffices to produce a state which behaves in the same manner as the pure ground state. This point can be clarified by consider- ing the density matrix describing a single isolated spin-half nucleus. This exhibits nearly equal popula- tions for the two eigenstates, but with a slight excess in the (low energy) u0l state compared with the (slightly higher energy) u1l state. No NMR signal will be observed from the equal populations, as the signals from different molecules will cancel out, but a small signal can be seen which arises from the devia- tions away from the average. Thus, ignoring questions of signal intensity, for a single isolated nucleus the thermodynamic equilibrium state is indistinguishable from a pure u0l state. States of this kind are often called pseudo-pure states,oreffective pure states [8–10]. Unfortunately the simple approach outlined above does not work for larger spin systems, as the pattern of population devia- tions is more complicated, and does not have the desired form. Several different techniques have, however, been developed to tackle this problem. 5.4. Readout The last stage in any quantum computation is to characterise the final state of the system, so that the result of the computation may be read out. Just as for initialisation, a range of different approaches have been used, but all these approaches combine two major elements. For simplicity I will assume that the computation ends with the result qubits in eigenstates; thus it is only necessary to determine whether a given qubit is in (the pseudo-pure) state u0l or u1l. The simplest approach is to apply a 908 pulse to the corresponding spin, and observe the NMR spectrum [11]. Since u0l corresponds to the ground state, a qubit in u0l will give rise to an absorption line; correspond- ingly a qubit in state u1l will give an emissive signal. It is, of course, necessary to acquire some sort of refer- ence signal, in order to distinguish between these two extremes, but this can be easily achieved by acquiring the spectrum of the pseudo-pure initial state. The second major approach [12] is to determine the state of one qubit by analysing the multiplet structure within the spectrum of a neighbouring spin. If several spins are coupled together, then individual lines within a multiplet can be assigned to specific states of these neighbours. Thus, the spectrum of one spin can give information on the states of several different qubits. 5.5. Some two spin systems While a number of different systems have been used to build small NMR quantum computers, all their major features can be explored using two differ- ent two-qubit systems which were used in the earliest demonstrations of NMR quantum computation [11,12]. The most important difference between these systems is that one uses a homonuclear two- spin system, while the other is heteronuclear. The first example system uses the two 1 H nuclei of partially deuterated cytosine in D 2 O (see Fig. 7). As J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360 335 Fig. 7. The structure of partially deuterated cytosine obtained by dissolving cytosine in D 2 O; the three protons bound to nitrogen nuclei exchange with solvent deuterons, leaving two 1 H nuclei as an isolated two spin system (all other nuclei can be ignored). this system is homonuclear it is possible to excite both nuclei with a single hard pulse, and to observe both nuclei in the same spectrum. Another more subtle advantage is that the pattern of Boltzmann popula- tions is simpler in homonuclear systems than in their heteronuclear counterparts. There are, however, two significant disadvantages of such as system. Firstly the two 1 H multiplets have relatively similar frequencies, as they lie only about 1.51 ppm apart, and thus it is necessary to use soft frequency selective pulses [45] (or sequences of hard pulses and delays with equivalent effects) in order to address the spins individually. Secondly, the J-coupling between the two spins is relatively small (about 7 Hz), and so controlled gates take a fairly long time to implement. It would, of course, be possible to choose a different molecule, in which the chemical shift difference or J- coupling was larger, but it is difficult to improve one without making the other worse. While it is unlikely that cytosine is the absolutely optimal choice, no other homonuclear 1 H system would be very much better. The heteronuclear alternative is probably the most widely used two qubit NMR system. It is based on the 1 H and 13 C nuclei in 13 C-labelled chloroform. This has the huge advantage that it is possible to separately excite the two spins using hard pulses, rendering selective excitation essentially trivial. Furthermore, the relatively large size of the J-coupling allows two qubit gates to be performed much more rapidly than in homonuclear systems. In this heteronuclear system it is not possible to acquire signals from both spins simultaneously, but this is not a major problem as it is possible to determine the states of both spins by examining either the 1 H or the 13 C spectrum. Simi- larly, the complex pattern of populations over the four energy levels of this system does not fit with the origi- nal scheme for generating pseudo-pure states; however, some more modern schemes are in fact simpler to implement in heteronuclear systems. Considering all these issues together, it is not easy to say whether it is better to use homonuclear or heteronuclear systems to implement two qubit NMR quantum computers: heteronuclear systems are perhaps simpler to work with, but homonuclear systems give more elegant results. With larger spin systems the issues become even more complex, and a wide range of options have been explored. It is clear, however, that the simplest approach of using a fully heteronuclear spin system is unlikely to be practical beyond five qubit systems, as there are only five “obvious” spin-half nuclei which can be used ( 1 H, 13 C, 15 N, 19 F and 31 P). In practice NMR quantum computers with more than three qubits are likely to include two or more spins of the same nuclear species; it is, therefore, essential to consider how computation can be performed in homonuclear systems. 5.6. Scaling the system up The requirements outlined above are adequate for building small quantum computers, suitable for simple demonstrations of quantum information processing. If, however, one wishes to build a large scale quantum computer, suitable for performing interesting computations, then it is necessary to consider whether the approaches used are limited to such small systems, or whether (and if so, how) they can be scaled up. A fifth requirement for practical quantum computation [37], the implementation of fault-tolerant quantum error correction, is described in Section 12. This is an important practical question, but not one which will be addressed in detail here. The problems of scaling up NMR quantum computers are formid- able, and have been well described elsewhere [38,46,47]. Most authors now agree that NMR approaches are likely to be limited to computers containing 10–20 qubits; this is significantly smaller than estimates of the size required to perform useful computations (50–300 qubits). Furthermore the apparent inability of NMR systems to perform effi- cient quantum error correction rules out their use for many types of problem. The fundamental difficulties involved in scaling up current NMR quantum computers to large sizes have led some authors to suggest that this approach does not actually implement real quantum computation at all. This is a quite subtle question which will be discussed further in Section 13 below. 6. Qubits and NMR spin states Traditional designs for quantum computers comprise a number of two-level systems which inter- act with one another and have some specific interac- tion with the outside world, through which they can be J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360336 monitored and controlled, but are otherwise isolated. NMR systems are rather different: a typical NMR sample comprises not one spin-system, but a very large number of copies, one from each molecule in the sample, effectively forming an ensemble of copies. Traditional quantum computers are usually described using Dirac’s bra(c)ket notation [17], but NMR systems are better described using density matrices, usually written in the product operator basis [16], which has a number of important conse- quences. It is possible to draw close analogies between the states of traditional quantum computers and those used in descriptions of NMR systems [48], but it is necessary to proceed with caution. 6.1. One qubit states A single qubit can be in either of its two eigenstates, u0l and u1l, or in some linear superposition of them. Such a state is most conveniently written as a column vector in Hilbert space, for example ucl c 0 c 1 ! : 8 NMR quantum computers cannot be properly described in this way; instead they must be described using the corresponding density matrix r uclkcu c p 0 c 0 c p 1 c 0 c p 0 c 1 c p 1 c 1 ! 9 which can then be decomposed as a sum of the four Pauli basis states or their product operator equiva- lents, 1 2 E, I x , I y , and I z . Consider first the eigenstates, u0l and u1l, which correspond to the density matrices u0lk0u 10 00 ! 1 2 E 1 I z 10 and u1lk1u 00 01 ! 1 2 E 2 I z ; 11 respectively. As all NMR observables are traceless, multiples of the unit matrix can be added to density matrices at will, and so as far as any NMR experiment is concerned the density matrix I z is equivalent to u0l, while 2I z is equivalent to u1l. In the language intro- duced above, I z and 2I z are pseudo-pure states, corre- sponding to u0l and u1l, respectively. This approach cannot, however, be extended to larger spin systems without modifications. Next consider superpositions, such as u0l 1u1l = 2 p ; with its corresponding density matrix 1 2 1 2 1 2 1 2 ! 1 2 E 1 I x : 12 As before multiples of the unit matrix can be ignored, and so u0l 1 u1l = 2 p is equivalent to I x . Simi- larly u0l 1 iu1l is equivalent to I y , while u0l 2 u1l is equivalent to 2I x . Just as single qubit eigenstates are closely related to one spin magnetisations, their super- positions are closely related to one spin coherences. 6.2. Two qubit states While there is a simple relationship between qubit states and NMR states for a single qubit (a one spin system), this relationship is more complicated in systems with two or more qubits [48]. Typically quan- tum algorithms start with all qubits in state u0l, which for a two-qubit computer is the state u00l. The corre- sponding density matrix u00lk00u 1000 0000 0000 0000 0 B B B B B B @ 1 C C C C C C A 13 is not the same as the thermal equilibrium density matrix I z 1 S z 100 0 000 0 000 0 00021 0 B B B B B B @ 1 C C C C C C A : 14 The ideal density matrix (Eq. (13)) can, however, be decomposed as the sum of four product operators: u00lk00u 1 2 1 2 E 1 I z 1 S z 1 2I z S z ; 15 and this sum (ignoring multiples of the unit matrix as J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360 337 usual) can be assembled using conventional NMR techniques, as described below. Superpositions can be treated in much the same way, but they are not directly related to NMR coher- ences in any very simple way. For example consider the state u00l 1 u01l = 2 p ; in which the first spin is in state u0l, while the second spin is in a superposition of states. The corresponding density matrix can be decomposed directly 1 2 1 2 00 1 2 1 2 00 0000 0000 0 B B B B B B @ 1 C C C C C C A 1 2 1 2 E 1 I z 1 S x 1 2I z S x ; 16 but there is a more subtle approach. Note that u00l 1 u01l = 2 p can be written as a product of single qubit states u00l 1 u01l 2 p u0l u0l 1 u1l 2 p ; 17 and so the corresponding density matrix can also be decomposed as a direct product of Eqs. (10) and (12): 10 00 ! ^ 1 2 1 2 1 2 1 2 ! 1 2 E 1 I z £ 1 2 E 1 S x 1 2 1 2 E 1 I z 1 S x 1 2I z S x : (18) Unlike the single qubit case, a simple superposition does not correspond directly to an NMR coherence, but instead to a complex mixture of coherences and populations. It is, however, rarely necessary to worry about this, as such states can be easily obtained from states like Eq. (13). Finally consider superpositions of the form u00l 1 u11l = 2 p ; which cannot be broken down into a product of one qubit states (such states are said to be entangled). As they cannot be factored it is necessary to decompose the corresponding density matrices directly. In this case 1 2 00 1 2 0000 0000 1 2 00 1 2 0 B B B B B B @ 1 C C C C C C A 1 2 1 2 E 1 2I z S z 1 2I x S x 2 2I y S y ; 19 which is a mixture of longitudinal two-spin order and DQ x double quantum coherence. 7. NMR logic gates After the rather abstract discussions above, we now turn to the details of methods by which quantum logic gates can be (and have been) implemented within NMR. 7.1. One qubit gates Many one qubit logic gates can be implemented directly. For example, a simple not gate, which inter- converts u0l and u1l; can be implemented as a 1808 x rotation [48]. Rotations about axes in the xy-plane can be achieved using RF pulses, while rotations about the z-axis can be accomplished either by using periods of free precession under the Zeeman Hamiltonian, or by composite z-pulses [49]. This does not, however, cover the full range of gates which may be desired, as some of these correspond to rotations about tilted axes. An obvious (and important) example is the Hada- mard gate. While this superficially resembles a 908 pulse, this resemblance is misleading, as the Hada- mard gate is its own inverse. Clearly the Hadamard must correspond to a 1808 rotation, and a little thought reveals that this rotation occurs around an axis tilted at 458 within the xz-plane. This could be achieved directly by using off-resonance excitation, but this has a number of practical difficulties. Alternatively it can be implemented using a composite pulse sequence, such as 458 y 2 1808 x 2 458 2y ; as 1808 x 2 458 ^y can be replaced by 458 7y 2 1808 x this three pulse sequence may be simplified to the two pulse sequence 908 y 2 1808 x or 1808 x 2 908 2y : J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360338 In fact, when implementing quantum algorithms on NMR quantum computers it is rarely necessary or desirable to use a Hadamard gate, as it can generally be replaced by the NMR pseudo-Hada- mard gate, a 908 y pulse [48]. As this gate is not self-inverse it is usually necessary to replace pairs of Hadamard gates by one pseudo-Hadamard and one inverse pseudo Hadamard 908 2y gate. This is a simple example of a general rule in experimen- tal implementations of quantum computation: rather than directly implementing the gates commonly used in theoretical descriptions, it is better to use simpler gates which are broadly func- tionally equivalent to them. 7.2. Controlled-not gates This approach is also applicable to the implementa- tion of controlled two-qubit gates. While it is perfectly possible to implement a controlled-not gate, this is not necessarily the most sensible approach. The controlled-not gate can itself be assembled from simpler basic gates, and it may be more sensible to use these basic gates directly. A natural way to implement a controlled-not gate is to use a three gate circuit, as shown in Fig. 8(a). The two boxes marked H are one qubit Hadamard gates, and the central gate (two circles connected by a control line) is a two qubit controlled p phase-shift gate. This gate performs the transformation u1lu1l! p 2 u1lu1l 20 while leaving all other states unchanged, and so is described by the matrix p 100 0 010 0 001 0 00021 0 B B B B B B @ 1 C C C C C C A 21 Unlike the controlled-not gate this phase shift gate is symmetric; it is not meaningful to ask which qubit the phase shift was applied to. Note that the other controlled-not gate, in which the roles of control and target qubit are reversed, can be constructed by simply moving the two Hadamard gates to the upper line. When implementing this circuit on an NMR quantum computer it is preferable to avoid using Hadamard gates, as these are difficult to implement. Instead these two gates are replaced by an inverse pseudo-Hadamard (a 90 2y pulse) and a pseudo-Hadamard gate (a 90 y pulse) respectively, as shown in Fig. 8(b). To see how to implement the controlled phase shift gate it is best to break down the propagator, Eq. (21), using the product operator basis set. As this propaga- tor is diagonal, it must arise from evolution under the diagonal operators I z , S z ,2I z S z and (for completeness) 1 2 E: It can be decomposed in two ways, p exp 2i £ p=2 1 2 E 2 I z 2 S z 1 2I z S z ; 22 or p exp 2i £ p=2 2 1 2 E 1 I z 1 S z 2 2I z S z : 23 The choice between these two decompositions is simply a matter of experimental convenience. The use of 1 2 E in these equations might appear to give rise to difficulties, as this is not normally considered as a product operator which can arise in NMR Hamiltonians. In fact it is of no significance at all, as the effect of the 1 2 E term is simply to impose a global phase shift. Such global phase shifts have no physical meaning, and cannot be detected; note that these global phase shifts have no effect on density matrix (or product operator) descriptions of the spin system. Physically this corre- sponds to the fact that there is no absolute zero against which energies may be measured. Implementing these propagators (Eqs. (22) and (23)) is fairly straightforward. The pure spin–spin coupling term (2I z S z ) can be generated using conventional spin- echo techniques, while the two Zeeman Hamiltonians J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360 339 Fig. 8. (a) A circuit for implementing a controlled-not gate; the two outer gates are one qubit Hadamard gates, while the central gate is a controlled p-phase-shift gate (see text for details). (b) A circuit for implementing a controlled-not gate on an NMR quantum compu- ter; the one qubit Hadamard gates are replaced by pseudo-Hada- mard (h) and inverse pseudo-Hadamard (h 21 ) gates. (I z and S z ) can be achieved by appropriately timed periods of free precession, by the use of composite z-pulses, or most simply by just rotating the RF refer- ence frame. As the three terms all commute, they need not be applied simultaneously, but can be applied in any order. When the individual elements making up the propagator are combined, it is frequently possible to combine or cancel individual pulses, thus simplify- ing the whole sequence. This results in a wide variety of possible pulse sequences, and the choice among them is largely a matter of taste. For example, one possible sequence for implementing p is 1 4J 2 180 x 2 1 4J 2 90 x 2 90 2y 2 90 x 24 where all pulses are applied to both spins. While the possible pulse sequences differ in detail they have one feature in common: an evolution time of 1 2 J (occasionally 3/2J) during which the spins evolve under the spin–spin coupling, so that the anti- phase condition is achieved. This is, of course, the central feature of coherence transfer sequences such as INEPT, indicating the close relationship between controlled two qubit gates and coherence transfer. 7.3. Other two qubit gates While the controlled-not gate is important it is not the only two-qubit gate worth considering: while it is possible to construct any desired gate using only controlled-not gates and one-qubit gates, it is usually more efficient to use a wider repertoire of basic gates. One simple and important example is the controlled square-root of not gate, which plays a central role in traditional constructions of the three-qubit Toffoli gate [31]; this is one member of a more general family of nth roots of not. Such gates can be built in much the same way as controlled-not gates, except that the controlled p phase-shift gate must be replaced by the more general transformation u1lu1l! f e if u1lu1l 25 with f p=n: Clearly f can be constructed in much the same way as p, Eq. (23). 7.4. Gates in larger spin systems The approaches described above can be easily imple- mented in two spin systems, allowing quantum compu- ters with two qubits to be easily constructed. With larger spin systems, however, the process can become much more complicated [38]. It is not possible simply to use pulse sequences designed for two spin systems, as it is necessary to consider the evolution of all the additional spins in the system. In particular it may be necessary to refocus the evolution of these spins under their chemical shift and J-coupling interactions. The simplest method is to nest spin echoes within one another, so that all the undesirable interactions are removed, but this na?¨ve approach requires an exponentially large number of refocusing pulses (that is, the complexity of the pulse sequence doubles with every additional spin). This problem can be overcome by using efficient refocusing sequences [50,51], which allow refocusing to be achieved with quadratic overhead. It is, of course, rare to find a large spin system where all the couplings have significant size; in most cases long range couplings will be small enough to be neglected. This greatly simplifies the problem, both by reducing the number of couplings which have to be refocused, and by simplifying the echo sequences required [50,52]. It might seem that it would be difficult to implement some logic gates in such a partially coupled spin system, as the necessary spin–spin couplings are missing. In fact this is not a problem, as long as every pair of spins is connected by some chain of couplings: quantum swap gates [53,54] can be used to move quantum information along this chain. 7.5. Multi-qubit logic gates Multi-qubit logic gates are gates, such as the Toffoli gate, which perform controlled operations involving more than two qubits. Such gates can of course be imple- mented by constructing appropriate networks of one qubit and two-qubit gates [31], but as the NMR Hamil- tonian can contain terms connecting multiple pairs of spins it should be possible to build some such gates directly, with a significant saving in pulse sequence complexity. This is indeed the case, and several inter- esting results have been obtained [55,56]. 7.6. Single transition selective pulses An alternative approach for building controlled two qubit gates is to use ultra-soft selective pulses [45], with excitation profiles so narrow that they pick out, J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360340 for example, a single transition from within a doublet. This corresponds to only exciting the nucleus of inter- est when the neighbouring nucleus is in a certain state [57]; if the excitation corresponds to a 1808 pulse then this provides a simple way of constructing a controlled-not gate [58]. The relationship between this approach and the (more common) multiple pulse sequence approach is analogous to that between the old fashioned selective population transfer experi- ment [59] and its more modern counterpart, INEPT [60]. One advantage of this approach [58,61] is that it is relatively easy to extend it to multi-qubit gates such as the Toffoli gate. This can be achieved by using a selective pulse which affects one of the four transi- tions of a spin coupled to two neighbours. A corre- sponding disadvantage is that in this case constructing a simple controlled-not gate requires either a selec- tive pulse which excites two of the four transitions in such a system or the application of two single transi- tion selective pulses in sequence. The traditional Toffoli gate corresponds to invert- ing a qubit when two other qubits are in the state u1l, but there is an entire family of related gates which effect an inversion for some given pattern of states. Each such gate corresponds to exciting a different transition in the multiplet, and so the entire family of gates can be achieved directly. In practice, however, the central regions of a multiplet can become quite crowded, with many lines nearly over- lapping, and it will be difficult to select a single tran- sition. By contrast the two transitions at the extreme ends of the multiplet will always be relatively well separated from their nearest neighbours, and it is best to concentrate on these two frequencies. Other gates can then be constructed by surrounding these basic gates with not gates applied to the neighbouring spins, thus permuting the identities of the lines in the multiplet. 7.7. Geometric phase-shift gates A third approach for implementing NMR quantum computation, based on the use of geometric phase- shift gates, has recently been described [62,63]. Like the conventional approach it relies on controlled phase-shift gates, but the phase shifts are generated using geometric phases [64], such as Berry’s phase [65], rather than the more conventional dynamic phases. Berry phases have been demonstrated in a wide variety of systems [64], including NMR [66,67] and the closely related technique of NQR [68–70], and can be used to implement controlled phase shift gates in NMR systems [62,63]. This approach has few advantages for NMR quantum computation, but may prove useful in other systems [63]. 8. Initialisation and NMR As it is impractical to cool down NMR spin systems to their ground state [38,46,47], initialisation of an NMR quantum computer in practice means assem- bling an appropriate pseudo-pure state. This approach is useful only if some practical procedure for assem- bling such states can be devised. For the simplest possible system (a single nucleus) the process is trivial, as the thermal equilibrium density matrix has the desired form, but with larger systems the situation is more complicated. The essen- tial feature of a pseudo-pure state is that it has a diag- onal density matrix in which the populations of all the spin states (the elements along the diagonal) are the same, with the exception of one state (normally u0l u000…0l which has a larger population. By contrast, at thermal equilibrium the spin state populations are distributed in accordance with the Boltzmann equa- tion, and so exhibit a more complex variation. For a homonuclear two spin system the equilibrium density matrix (neglecting multiples of the identity matrix and an initial scaling factor) is I z 1 S z , while the desired pseudo-pure state is proportional to I z 1 S z 1 2I z S z (Eq. (15)). The original approach for assembling pseudo-pure states, developed by Cory et al. [8,9], uses conven- tional NMR techniques. Assembling such a mixture using pulse sequences and field gradients is a fairly straightforward, if somewhat unusual, NMR problem. This process is commonly called spatial averaging, presumably a reference to the use of field gradients. A second early approach, suggested by Gershenfeld and Chuang [10], is to use a subset of the energy levels in a more complex spin system. For example, in a homonuclear three spin system it is possible to find a set of four energy levels which exhibit the pattern of J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360 341 populations corresponding to the pseudo-pure state of a two spin system. This approach, often called logical labelling, is elegant in principle but complex to apply in practice, and has only rarely been experimentally demonstrated. More recently a variety of different approaches have been used, although these all combine elements of the two basic approaches above. The most popular technique, usually called temporal averaging [71], works by performing many different experiments, each with a different initial state. For example, in a two qubit system, one might perform experiments starting from I z , S z , and 2I z S z . If the spectra from these three experiments are then added together, the result is equivalent to a single experiment starting from a mixture of these states. Clearly temporal aver- aging and spatial averaging are related in much the same way as coherence selection methods based on phase cycling and gradients. Finally, a new approach combines these methods in a cunning way, using the analogy between multiple quantum coherence and so- called “cat” states to generate pseudo-pure states in a fairly efficient manner [72]. 8.1. Spatial averaging The direct “spatial averaging” technique may be exemplified by the original sequence of Cory et al. [8,9] for constructing a pseudo-pure state in a two spin system: I z 1 S z ! 608S x I z 1 1 2 S z 2 3 p 2 S y ! crush I z 1 1 2 S z ! 458I x 1 2 p I z 2 1 2 p I y 1 1 2 S z ! couple 1 2 p I z 1 1 2 p 2I x S z 1 1 2 S z ! 458I 2 y 1 2 I z 2 1 2 I x 1 1 2 2I x S z 1 1 2 S z 1 1 2 2I z S z ! crush 1 2 I z 1 1 2 S z 1 1 2 2I z S z 26 where the sequence is described in product operator notation, “crush” indicates the application of a crush field gradient pulse, and “couple” indicates evolution under the scalar coupling for a time 1 2 J. Note that the two crush pulses must be applied along different axes, or with different strengths, to prevent undesired terms from being refocused. Several alternative sequences for creating two spin pseudo-pure states have been developed; for example [73] I z 1 S z ! 458 I x 1 S x ! couple ! 308 I 2 y 1 S 2 y ! crush 3 8 r I z 1 S z 1 2I z S z (27) where zero quantum terms (which in a homonuclear spin system will survive the crush pulse) have been neglected. This scheme works well in heteronuclear spin systems, but in homonuclear systems it is neces- sary to use a more complex approach to deal with the zero quantum terms. These sequences can be generalised to larger spin systems, but this process is quite complex. For this reason most work on larger spin systems has used temporal averaging techniques. Recently, however, Knill et al. [72] have developed a general scheme based on cat states, which allows pulse sequences for any spin system to be developed. This approach is described below. 8.2. Logical labelling Logical labelling [10] is most easily understood by examining the thermal equilibrium density matrix for a homonuclear three spin system: I z 1 S z 1 R z 1 2 {3;1;1;21;1;21;21;23}; 28 where the braces indicate a diagonal matrix defined by listing its diagonal elements. While this matrix does not have the right form for a three spin pseudo-pure state it is possible to select out four levels (corre- sponding to the states u000l, u011l, u101l and u110l) which have the same population pattern as I z 1 S z 1 2I z S z 1 2 {3;21;21;21}; 29 and so this subset of levels can be used as a two spin pseudo-pure state. It would be possible to use these states directly, but this would greatly complicate subsequent logic operations as there is no simple correspondence J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360342 between these four states of the three spin system and the four basic states of a two spin system. Instead it is better to permute the populations of the various states, performing u001l$u101l and u010l$u110l; these permutations can be achieved using controlled-not gates. At the end of this process the populations are given by 1 2 {3;21;21;21;1;1;1;23}; 30 so that the states u000l, u001l, u010l and u011l are in a pseudo-pure state. Note that these four states all have the first spin in state u0l, and so the first spin acts as an ancilla spin, labelling the “correct” subspace. Similar, but more complex, procedures can be used with larger spin systems [10]. The overhead required is fairly small; that is the number of pseudo-pure spins which can be encoded in a spin system is only slightly smaller than the size of the system. However, while these results are elegant the complexity of implement- ing logical labelling means that experimental demon- strations have so far been confined to three spin systems [61,74]. 8.3. Temporal averaging As discussed previously, temporal averaging [71] bears much the same relationship to spatial averaging as phase cycling does to the use of gradients to select coherence transfer pathways. The name can, however, be used to cover a variety of different approaches. As described above (Eq. (15)), a pseudo-pure state of a two spin system can be assembled as a mixture of three terms: I z , S z and 2I z S z . The simplest approach to temporal averaging is just to perform a computation starting from each of these states, and add the results together at the end. This is easily generalised to larger spin systems: for a system of n spins it is necessary to perform 2 n 2 1 separate experiments. In some simple experiments it is possible to show that only some of these starting states will give an observable signal [75], and so it is unnecessary to perform experiments starting in other states. This permits substantial experimental simplifications, but it is not a general technique. A better approach is to use the original scheme of Knill et al. [71]. The thermal equilibrium density matrix for a two spin system I z 1 S z {1;0;0;21} 31 (where the braces have the same meaning as before) can be easily converted into two other states, I z 1 2I z S z {1;0;21;0} 32 and S z 1 2I z S z {1;21;0;0}: 33 These three states are related by simple permutations of the populations of the levels, which can be achieved using controlled-not gates. Adding together the three starting states gives 2 I z 1 S z 1 2I z S z {3;21;21;21}; 34 which is a pseudo-pure state. Adding together the spectra from computations started in these three states therefore gives the spectrum which would be produced from a pseudo-pure state. Once again this process is easily generalised to larger spin systems. The most obvious approach is to average over the 2 n 2 1 cyclic permutations of the populations in an n spin system. This exhaustive averaging scheme is just as inefficient as the na?¨ve approach outlined above, but Knill et al. [71] have shown that similar results can be achieved by aver- aging over much smaller numbers of states. 8.4. The use of “cat” states The schemes described above are perfectly practi- cal for small spin systems but are harder to use with larger systems. Recently Knill et al. [72] have described a simple approach which works for spin systems of any size and which can be used with either the gradient (spatial averaging) or phase cycling (temporal averaging) approaches. Their method is based on the properties of “cat” states, named by analogy with Schro¨dinger’s Cat. An n qubit cat state is a superposition state of the form f ^ n u00…0l ^ u11…1l = 2 p ; 35 so that either all the n qubits are in state u0l, or all the qubits are in state u1l. (In fact the relative phase of the two states contributing to the superposition can take any value between 0 and 2p, but it is convenient to restrict ourselves to the two values 0 and p, giving rise to the factor of ^1). States of this form are said to be entangled, and play a central role in quantum information processing and experimental tests of quantum mechanics. The role of entanglement in J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360 343 NMR quantum computers will be explored in more detail below, but for the moment it is suffi- cient to note that cat states are closely related to (but not simply equivalent to) multiple quantum coherence [48]. As discussed above (Eq. (19)) the two qubit cat state f 1 2 u00l 1 u11l = 2 p (commonly called a Bell state [76]) is a mixture of DQ x double quantum coherence and longitudinal two-spin order. Similarly the three qubit cat state f 1 3 (usually called a GHZ state [76]) is a mixture of 3Q x triple quantum coher- ence and the three possible states of longitudinal two- spin order, and a general n qubit cat state will correspond to a mixture of n quantum coherence and ordered population states. Thus an n quantum filtration sequence is almost (though not quite) equivalent to selecting n qubit cat states. Cat states are easily prepared from pure states, using controlled-not gates. One possible network for a three qubit system is shown in Fig. 9; networks for larger systems can be derived by analogy. Simi- larly by reversing this network cat states can be converted back into pure states. Thus, if it is possible to prepare an n qubit cat state, it should be possible to obtain a corresponding pure state. This suggests a simple scheme for preparing pseudo-pure states. If the network shown in Fig. 9 is applied to a three spin system in its thermal equili- brium state, the resulting mixture will include a component of triple quantum coherence, and thus of the desired cat state. This component can be selected, either by phase cycling or by using gradient methods. Finally the network can be reversed to convert the cat state back into a pseudo-pure state. Unfortunately this does not quite have the desired effect, as triple quantum coherence is not quite equivalent to the desired cat state; in fact 3Q x corre- sponds to uf 1 3 lkf 1 3 u 2 uf 2 3 lkf 2 3 u; and so both cat states will be retained by the triple quantum filter. The effect of reversing the network is then to convert this to the pseudo-pure state corresponding to u000lk000u 2 u100lk100u I z ^ u00lk00u: 36 This is a pseudo-pure state of the last two spins, and in general multiple quantum selection of cat states provides a convenient way of generating an n 2 1 qubit pseudo-pure state in an n spin system. Further- more, for some purposes states of the form given by Eq. (36) can be used as if they were n qubit pseudo- pure states [72]. 9. Readout As described above there are two main methods for determining the final state of an NMR quantum computer: by examining the spectrum of the spins corresponding to the qubits of interest, and by exam- ining the spectra of other neighbouring spins. These methods are simplest to describe when the quantum computer ends its computation with all the answer qubits in the eigenstates u0l and u1l, rather than in superposition states or entangled states, as in this case a small number of measurements will provide all the information required [11]. A more thorough approach is to completely characterise the final state of the spin system by so called quantum state tomo- graphy [12]; while the results can be interesting in small spin systems the effort required to perform tomography increases rapidly with the size of the spin system, and this approach is probably impractical for systems of more than three spins. 9.1. Simple readout The simplest situation to consider is a one qubit NMR quantum computer which ends a calculation in the pseudo-pure state corresponding to u0l or u1l. As discussed above (Eqs. (10) and (11)), these corre- spond to the NMR states I z and 2I z , respectively, and excitation with a 908 I y pulse will convert these to ^I x . Thus the two states will give rise to absorption and emission lines in the NMR spectrum; this is hardly surprising as they correspond to excess population in the low energy and high energy spin states. It is, of course, necessary to obtain a reference signal against which the phase of the signal of interest can be determined, but this is easily achieved, either by using the NMR signal from a reference compound, J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360344 Fig. 9. A network for creating the three qubit cat state f 1 3 : or by acquiring a signal from the computer in a known state, u0l or u1l. The situation is similar, but more complex, with larger spin systems. The NMR state corresponding to u00l is not just I z 1 S z ; as might na?¨vely be expected; instead it is I z 1 S z 1 2I z S z (see Eq. (15)). A general two qubit pseudo-pure eigenstate can be expressed similarly as uablkabu 1 2 21 a I z 1 21 b S z 1 21 a%b 2I z S z : 37 This can be analysed in two ways: by exciting and observing both spins, or by exciting and observing just one spin, say I. The first approach is perhaps the most natural approach in a homonuclear spin system, while the second method is more appropriate in a hetero- nuclear spin system. If both spins are excited, then the two population terms (I z and S z ) are converted to single quantum coherences, while the longitudinal two spin order is converted to unobservable double and zero quantum coherence. Thus the observable signal from a state of the form Eq. (37) is proportional to 21 a I x 1 21 b S x : 38 Clearly the desired information can be obtained from the phases (absorption or emission) of the NMR signals from the two spins. The situation is slightly more complicated if only one spin is observed: application of a 908 I y pulse to the state Eq. (37) gives 21 a I x 1 21 b S z 1 21 a%b 2I x S z =2; 39 and the observable signal is proportional to 21 a I x 1 21 b 2I x S z : 40 Thus only one of the two lines in the I spin doublet will be observed; which of the two lines this is depends on b, the state of spin S, while the phase of the signal depends on a, the state of spin I, as before. 9.2. Tomography Many NMR quantum computation experiments have used a readout scheme called quantum state tomography, and while this scheme is impractical for use with large spin systems it merits some expla- nation. The easiest approach to readout is simply to determine the states of one or more critical qubits which contain the desired answer, while an alterna- tive, far more thorough, approach is to characterise the complete density matrix describing the final state of the system [12]. This state tomography approach requires a large number of different measurements to fully characterise all the elements of density matrix, and for large spin systems the complexity of this approach becomes prohibitive. For small systems, however, it provides detailed information not just on the result of the calculation, but also on any error terms. The density matrix describing a two spin system can itself be described using fifteen real numbers, corresponding to the amounts of the fifteen two-spin product operators in the state (neglecting the identity matrix as usual). In a heteronuclear spin system it is possible to determine the values of four of these coef- ficients (the amounts of I x , I y ,2I x S z , and 2I y S z ) just by observing the I spin free induction decay, while four more can be determined by observing spin S. The seven remaining coefficients can then be determined in a minimum of two more experiments by exciting either I or S before observation. In general the spec- trum of a single spin can provide at most 2 n real numbers, while 4 n 2 1 numbers are required to char- acterise the spin system; thus a minimum of 2 n sepa- rate experiments will be required. In practice the schemes actually used are substantially less efficient, greatly increasing the effort required for full tomogra- phy. For example, one tomographic analysis of a heteronuclear two qubit system involved nine separate experiments [77]. 10. Practicalities 10.1. Selective pulses Implementing these pulse sequences in a fully heteronuclear spin system is straightforward, but in a homonuclear spin system complications arise from the need to perform selective excitation. The simplest approach is the use of conventional selective pulses [45]. These pulses can be simple Gaussian pulses incorporating a phase ramp to allow off-resonance excitation, but it is probably better to use more subtle pulse shapes, such as members of the BURP family of J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360 345 pulses [54]. The soft pulses should excite all the lines in the target multiplet in an identical fashion, while leaving other lines completely untouched. In practice this is difficult to achieve in 1 H systems, leading to the substantial errors clearly visible in many experiments. As pulse sequences implementing quantum logic gates can contain a large number of selective pulses separated by delays, it is necessary to address each spin in its own rotating frame. In homonuclear two- spin systems, however, such as those used to imple- ment two qubit NMR computers, it is possible to use a simpler approach. Suppose the centres of the two multiplets are separated by n Hz; in this case the two frames will rotate with a relative frequency n.If the rotating frames were aligned at the beginning of the pulse sequence, they will come back into align- ment at time intervals 1/n. As long as excitation and observation is performed stroboscopically it is possi- ble to treat both nuclei as inhabiting the same rotating frame. Similarly, by choosing times such that the two rotating frames are 90 or 1808 out of phase, it is possi- ble to use variations on the simple “jump and return” pulse sequence [78] to perform selective excitation. This approach [79] can prove simpler than using selective pulses directly, but it cannot easily be used in systems with more than two spins of a given nuclear species. 10.2. Composite pulses Composite pulses [45,80] play an important role in many NMR experiments, enabling the effects of experimental imperfections, such as pulse length errors and off-resonance effects, to be reduced. Such pulses could also prove useful in NMR quantum computers, acting to reduce systematic errors in quan- tum logic gates [81]. Unfortunately most conventional composite pulse sequences are not appropriate for quantum computers as they only perform well for certain initial states, while pulse sequences designed for quantum information processing must act as general rotors, that is they must perform well for any initial state. Composite pulses of this kind (sometimes called Class A composite pulses [80]) are rarely if ever needed for more conventional NMR experiments, and so have been relatively little studied. One impor- tant example is a composite 908 pulse developed by Tycko [80,82], which has recently been generalised to arbitrary rotation angles [81]. These composite pulses give excellent compensation of off-resonance effects at small offset frequencies, such as those found for 1 H nuclei, but are of no use for the much larger off- resonance frequencies typically found for 13 C. Fortunately when composite pulses are used for NMR quantum computation one great simplification can be made: it is only necessary that the pulse sequence perform well over a small number of discrete frequency ranges, corresponding to the reso- nance frequencies of the nuclei used to implement qubits; it is not necessary to design pulses which work well over a broad frequency range. In particular many NMR quantum computers use at most two spins of each nuclear species (see, for example, [75]), and it is convenient to place the RF frequency in the centre of the spectrum, so that the two spins have equal and opposite resonance offsets [79]. Thus it is sufficient to tailor the composite pulse sequence to work well at these two frequencies, while the performance at all other frequencies can be completely ignored [83]. 10.3. Abstract reference frames One technique which has proved extremely useful in the implementation of NMR quantum computers with more than two qubits is the use of abstract refer- ence frames [72]. As it is necessary to address each spin in its own rotating frame of reference, it is possi- ble to simply rotate this frame to absorb the effects of z rotations, whether these arise from attempts to imple- ment quantum gates (see Eqs. (22) and (23)), or the failure to fully refocus chemical shifts. For example, 908 ^z rotations occur in the imple- mentations of many interesting gates. If need be these can be achieved either by periods of free preces- sion, or by composite z-pulses. A simpler approach, however, is to achieve the same effect by rotating the RF reference frame, so that subsequent pulses are applied with appropriate phase shifts. Thus, for exam- ple, the pulse sequence 90 z 90 x can be replaced by 90 2y 90 z : the phase of the RF pulse has been shifted, and the z-pulse has been delayed. Ideally it is possible to use this method to delay the z rotation to the very end of the pulse sequence, where it can be replaced by a rotation of the RF detection axis, or in many cases ignored altogether. J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360346 11. Simple algorithms Now that we have seen all the elements necessary to implement quantum logic operations within NMR it is useful to see how they can be assembled to build small NMR quantum computers. Only two algorithms will be discussed in detail, both of which can be implemented using two qubit computers, that is two spin systems. Brief reference will, however, be made to more complex systems. Computers as small as these bear little immediate resemblance to the computers in widespread use today: with only two qubits there is simply no avail- able memory in which to store extraneous data or programs! Instead the program is built into the design of the NMR pulse sequence used to implement the computation, and the two qubits are used to store the input data and the result of the computation, as well as forming the “CPU” of the system. 11.1. Functions and phases Before discussing the algorithms themselves, it is useful to describe a trick widely used in quantum computation for converting the results of a function evaluation into a phase shift. This phase trick plays a central role in conventional implementations of many algorithms, but with NMR quantum computers it is often more appropriate to redesign the computer to implement the desired phase shifts directly. These simple demonstration algorithms are based on the analysis of one-bit binary functions, that is functions which take in one or more bits as input and return a single bit (that is, 0 or 1) as output. These functions can be evaluated on reversible computers using f-controlled-not gates, as shown in Fig. 6, with the result returned as the value of an additional output bit, which begins the computation initialised to 0. An equivalent approach can be used with quantum computers, Fig. 10, but it is also possi- ble to perform function evaluation with this “output” qubit set not to u0l but to the superposition u0l 2 u1l = 2 p : Since u0 % bl 2 u1 % bl 2 p 21 b u0l 2 u1ul 2 p 41 an f-controlled-not will perform the transformation uxl u0l 2 u1l 2 p ! f 21 f x uxl u0l 2 u1l 2 p 42 and so the result of the function is returned as a phase. Note that the starting state of the ancilla qubit can be easily prepared from the state u1l by the application of a Hadamard gate (Eq. (6)). This phase trick might seem pointless, indeed coun- terproductive, as it seems to return the result of the function as a global phase, and such global phases have no physical meaning. As we shall see, however, the phase trick can be combined with quantum paral- lelism in a cunning and useful way. 11.2. Deutsch’s algorithm Deutsch’s algorithm [23–25] is concerned with the analysis of binary functions from one bit to one bit, that is functions which take in one bit as input and return another bit as output. Clearly there are four such functions, as shown in Table 1. These four func- tions can be divided into two groups: the two constant functions, for which f(x) is independent of x ( f 00 and f 11 ), and the two balanced functions, for which f(x)is zero for one value of x and one for the other ( f 01 and f 10 ). Equivalently, the functions can be classified according to the parity of the function, f 0 % f 1 : Given some unknown function f (chosen from among these four functions), it is possible to deter- mine which function it is by applying f to two inputs, 0 and 1, using the circuit shown in Fig. 10. This proce- dure also provides enough information to determine the parity of f, and thus whether the function is J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360 347 Fig. 10. A quantum circuit for the classical analysis of a binary function f; this circuit is drawn for a quantum computer but is equivalent to that for a classical reversible computer (see Fig. 6). Table 1 The four possible binary functions mapping one bit to another; each function is conveniently labelled by the bit pattern in its truth table Xf 00 (x) f 01 (x) f 10 (x) f 11 (x) 00011 10101 constant or balanced. However knowing the parity of f corresponds to only one bit of information, and so it might be possible to answer this question using only one evaluation of the function f. This cannot be achieved with a classical computer, but with a quan- tum computer the problem can be solved using Deutsch’s algorithm. The basic idea behind Deutsch’s algorithm is to combine the phase trick with quantum parallelism. Suppose that the f-controlled-not gate is applied with the input qubit in the state u0l 1 u1l = 2 p and the ancilla qubit in the state u0l 2 u1l = 2 p ; then from Eq. (42) the result of the computation will be 21 f 0 u0l 1 21 f 1 u1l 2 p ! u0l 2 u1l 2 p 21 f 0 u0l 1 21 f 0 % f 1 u1l u0l 2 u1l 2 ! : (43) The ancilla qubit remains in u0l 2 u1l = 2 p ; while the “input” qubit now contains the state u0l ^ u1l = 2 p ; where the choice of plus or minus sign depends on f 0 % f 1 : As relative phases in super- positions can be detected (for example, by applying a Hadamard gate as shown in Eqs. (5) and (6)), this allows the parity of f to be determined with only one function evaluation. A quantum circuit for Deutsch’s algorithm is shown in Fig. 11. The Hadamard gates act to interconvert eigenstates and superpositions, allowing both the phase trick and quantum parallelism to be implemen- ted. Note that in this algorithm there is no input, and the result ends up in the first qubit, not the second qubit as occurs for traditional function evaluation. The second qubit is used simply as an ancilla to imple- ment the phase trick. As discussed previously, it is not possible to program such a simple computer; instead the choice of function f is “hard wired” into the computer by the design of the f-controlled-not gate. 11.3. NMR implementations Deutsch’s algorithm was not only the first quantum algorithm to be described: it was also the first algo- rithm to be implemented on an NMR quantum compu- ter, first using a homonuclear system (cytosine) and then a heteronuclear system ( 13 C-labelled chloro- form). These two implementations will be described below, while more modern implementations, includ- ing some extensions and simplifications, are described in the next section. The cytosine system [11] used the two 1 H nuclei remaining on a cytosine molecule when dissolved in D 2 O (Fig. 7). The two 1 H multiplets are separated by 763 Hz (at a 1 H frequency of 500 MHz), with a J- coupling of 7.2 Hz. Selective excitation was achieved using Gaussian shaped soft pulses incorporating a phase ramp, and the lengths of the soft pulses were chosen as multiples of the inverse of the frequency separation of the two resonances, so that the unexcited spin experienced no net rotation during a selective pulse. Both classical function analysis and Deutsch’s algorithm were implemented, using the modified J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360348 Fig. 11. A quantum circuit implementing Deutsch’s algorithm to determine the parity of a binary function f. Fig. 12. Modified quantum circuit for the classical analysis of f(0) on an NMR quantum computer; U f is a propagator corresponding to the f-controlled-not gate in the conventional circuit (Fig. 10). Function evaluation is followed by 908 y pulses to excite the NMR spectrum. Clearly f(1) can be obtained in a very similar fashion. Fig. 13. Modified quantum circuit for the implementation of the Deutsch algorithm on an NMR quantum computer. Hadamard gates have been replaced by pseudo-Hadmard and inverse pseudo- Hadamard gates, that is 908 ^y pulses. The final 908 y excitation pulses cancel out the 908 2y pulses, and thus all four pulses can be omitted. quantum circuits shown in Figs. 12 and 13. In these figures the f-controlled-not gates have been written as general two qubit propagators, U f , Hadamard gates have been replaced by 908 ^y pulses, and final 908 y pulses have been added at the end of each sequence to convert eigenstates to observable magnetisation; for simplicity pulses which simply act to cancel one another are omitted. The initial pseudo-pure states were prepared using field gradient techniques (spatial averaging), and the final results were determined by examining the phase (^x) of the NMR signals from the two spins. The heart of these computations is contained in the implementation of the propagators U f . Each propaga- tor corresponds to flipping the state of the second spin as follows: U 00 , never flip the second spin; U 01 , flip the second spin when the first spin is in state u1l; U 10 , flip the second spin when the first spin is in state u0l; U 11 , always flip the second spin. The first and last cases are particularly simple, as U 00 corresponds to doing noth- ing, while U 11 is just a selective 1808 x pulse (a not gate) on the second spin. The second propagator is a controlled-not gate, while the third case is a reverse controlled-not gate, so that a not gate is applied to the target when the control spin is in state u0l. These last two gates can be implemented as described above. The sequences actually used were 90S y 2 1 4J 2 180 x 2 1 4J 2 180 x 90I y 90I x 90 2y 90S ^x 44 where pulses not marked as either I or S were applied to both nuclei. The phase of the final pulse distin- guishes U 01 (for which the final pulse was S 1x ) from U 10 (for which it was S 2x ). In retrospect it is clear that these sequences are unnecessarily complicated; substantial simplifications could have been achieved by combing pulses and by absorbing phase shifts into abstract reference frames. The second implementation of Deutsch’s algorithm used the heteronuclear two spin system provided by 13 C-labelled chloroform in solution in deuterated acet- one. The initial pseudo-pure state was prepared by temporal averaging, although results were also shown for computations beginning in the thermal equilibrium state, while the results of the computation were determined both by direct observation of the 1 H spectrum, and by full quantum state tomography, which allows errors to be studied. Only the Deutsch algorithm was demonstrated, with no results shown for classical computations. The pulse sequences used to implement U 01 and U 10 were similar to those used for cytosine; slight differ- ences can be traced to the heteronuclear nature of the spin system and the consequent ability to place both spins exactly on resonance. The sequences used to implement the two balanced functions, U 00 and U 11 were more complicated than for cytosine, as periods of free precession were included so that each of the four propagators was applied over approximately the same time period (about 1/2J). This means that the effects of relaxation (dominated by the relatively short T 2 of the 13 C nucleus) were similar in all cases. 11.4. Extensions and simplifications In addition to these two early examples several more implementations of Deutsch’s algorithm, and its more general cousin the Deutsch–Jozsa algorithm [24], have been published. From among these a few particularly interesting examples will be described in more detail. The Deutsch–Jozsa algorithm is a generalisation of Deutsch’s algorithm which considers binary functions with any number of input bits. Clearly such functions need not be either constant (that is, give the same output for all input values) or balanced (output 0 for half the possible inputs and 1 for the remainder); for example a binary function with two input bits could return 0 for one of the four input values and 1 for the other three. Suppose, however, that it is guaranteed that some (otherwise unknown) function f is either constant or balanced (such theoretically convenient if apparently arbitrary guarantees are usually referred to as promises), and it is necessary to determine to which of these two categories the function belongs. To solve this problem by classical means would in the worst case require the evaluation of f for just over half its inputs (if the function uses n input bits it may be necessary to evaluate the function over 2 n21 1 1 inputs), while even in the best case it would be neces- sary to evaluate the function at least twice. By contrast the Deutsch–Jozsa algorithm can always distinguish between constant and balanced functions with a single function evaluation. The first experimental implementation of the Deutsch–Jozsa algorithm [58], which used functions J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360 349 with two input bits, is also notable as the first example of the use of transition selective pulses. The three qubit system chosen was the homonuclear spin system made up by the three 1 H nuclei in 2,3-dibromopropa- noic acid. For simplicity pseudo-pure states were not prepared; instead the algorithm was simply applied to the spin system in its thermal state. Function evalua- tion for the six possible balanced functions was accomplished by the simultaneous application of single transition selective 1808 pulses to two of the four components of the low field multiplet (which exhibits the largest separations between the four components), and the result of the computation was determined by observation of NMR signal intensities in the two high field multiplets. This simple approach worked remarkably well; the deviations from ideal behaviour seen in experimental spectra were largely ascribed to the effects of strong coupling. The Deutsch–Jozsa algorithm has also been applied to larger spin systems, most notably a largely hetero- nuclear 5 spin system (containing single 1 H, 15 N and 19 F nuclei, together with two 13 C nuclei) derived from glycine [75]; in this case multiple pulse techniques were used to implement controlled gates. This system permits functions with 4 input bits to be studied, but only one constant and one (particularly simple) balanced function were actually implemented, out of a possible total of two constant and 12870 balanced functions. Similarly while an approach related to temporal averaging was used for initialisation, it was used to construct an initial state which gave the same signal as a pseudo-pure state, rather than the pseudo-pure state itself. Thus this can only be consid- ered as a partial implementation. Another important variation on the Deutsch–Jozsa algorithm is to remove the ancilla qubit which is normally used to implement the phase trick, convert- ing function values into phase shifts. This indirect approach is not necessary for NMR implementations, as it is possible to implement controlled phase-shift gates directly. Indeed it is usually simpler to do this; in particular the propagator for both constant functions is reduced to “do nothing”. This approach, sometimes called the refined Deutsch–Jozsa algorithm [84], has the advantage that one fewer qubit is required to implement a given algorithm. It does however have one minor disadvantage for demonstration algorithms, as such systems are intrinsically quantum mechanical and cannot be used to implement classical function analysis. This simplified approach has been used with a three spin system (the three 13 C nuclei in labelled alanine) to implement the Deutsch–Jozsa algorithm for func- tions with three bit inputs [85]. In this case there are 70 balanced functions, from which ten representative functions were chosen. At the other extreme this tech- nique can also be used to implement the refined Deutsch algorithm using a single qubit! In this case the algorithm is so simple as to be almost trivial: the U f propagator is a 1808 z pulse for the two balanced functions, while for the two constant functions it is as usual “do nothing”. Since the z-pulse can be absorbed into the RF reference frame, the pulse sequence can in principle be reduced to a 908 y pulse followed by observation along ^x. Such a simple experiment seems hardly worth performing, but for completeness it has been demonstrated as one member of a set of experiments using the isolated one spin and two spin 1 H systems is 5-nitro-2-furaldehyde [86]. 11.5. Grover’s quantum search Grover’s algorithm [87,88] is designed to speed up searches comparable to searching for a needle in a haystack. More mathematically it concerns the analy- sis of binary functions which map a large number of bits to a single output bit, where the task is to deter- mine an input for which the value of the function is 1. If the function has many inputs for which its value is 1 (that is, if the haystack contains a substantial number of needles), one of these inputs can be easily located by trial and error, but if there is only one suitable input among a large number of unsuitable inputs (one needle in a large haystack), locating this single input is obviously a difficult process. Suppose that the function f has inputs described by n bits, so that there are N 2 n possible inputs, and that f 1 for only one of these inputs. The only general way to locate this input is to evaluate f over some trial inputs, and look for a value f 1 (a satis- fying input). A lucky guess would permit this input to be located in one try, but this can hardly be relied on; on average a random search (the best classical algo- rithm) would require about N/2 trial evaluations, or N 2 1 evaluations in the worst case. The situation is similar if there are k inputs which satisfy the function; J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360350 in this case about N/k trials will be required. By contrast, Grover’s algorithm permits a satisfying value to be located with only O N=k p evaluations. This increase in computational efficiency is less impressive than the exponential increase seen for Shor’s quantum factoring algorithm [4], but is still quite substantial; furthermore the algorithm is quite general, with a range of potential applications. Early NMR implementations [77,89,90] concen- trated on the case n 2; so that there are four possible inputs, with only a single satisfying input. For this case the operation of the algorithm is fairly simple to explain, and more complicated cases can be under- stood by analogy. The algorithm involves two steps: evaluation of the function over all possible inputs, followed by a selection process to pick out the desired result. As an example I will assume that f 01 1 while f x 0 for all other inputs x. The algorithm begins with one quantum register (that is a group of qubits) in a uniform superposition of the four possible inputs, so that its state is u00l 1 u01l 1 u10u 1 u11l =2: 45 An attempt to read out the value of this register will return one of the four possible inputs at random. A propagator implementing the function f is then applied, so that f is evaluated over all 4 inputs; the propagator is set (either directly or indirectly by means of the phase trick) to return the value of f as a phase shift, that is uxl! U f 21 f x uxl; 46 so that at the end of the calculation the quantum regis- ter is in the state u00l 2 u01l 1 u10l 1 u11l =2: 47 The desired satisfying input has now in some sense been identified, as it bears the unique mark of a nega- tive phase; this is not, however, of any immediate use, as an attempt to analyse this state will still return one of the four contributing inputs at random. It is, there- fore, necessary to apply some propagator which converts the phase difference into an amplitude difference. This process might seem simple, but it is in fact quite tricky, as any such propagator must correspond to a logically reversible unitary operation. There is, however, a solution: inversion around the average. This slightly peculiar operation takes in a superposi- tion and reflects the amplitude of each component around the average amplitude of all the components. In the example, the individual amplitudes are ^ 1 2 ; and the average amplitude of the four components is 1=4; reflecting 1=2 around 1=4 gives 0, while reflecting 21=2 gives 1. Thus this operation acts to concentrate all the amplitude on one member of the superposition, giving a final state of just u01l. Surprisingly this appar- ently complex operation can be performed using only Hadamard gates and a controlled phase-shift gate which negates u00l while leaving all other states alone. A quantum network for implementing this algorithm is shown in Fig. 14; this network assumes that the function is evaluated using propagators which apply the necessary phase shifts directly; this can of course be achieved using an ancilla qubit if desired, but direct application of phase shifts has been the universal practice in NMR implementations of this algorithm. 11.6. NMR implementations The first implementation of Grover’s search [77] was performed using a heteronuclear NMR quantum computer based on chloroform. This used temporal averaging to prepare the initial pseudo-pure state, and quantum state tomography to characterise the final result. Quantum logic gates were implemented using multiple pulse sequences as discussed below. As this implementation used a heteronuclear spin system, both nuclei were placed on resonance in their respective rotating frames; thus it was not necessary to refocus chemical shifts, and periods of free precession correspond to evolution under the spin–spin coupling. The four desired controlled phase shift gates were J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360 351 Fig. 14. A quantum circuit for the implementation of Grover’s quantum search algorithm on a two qubit computer. Boxes marked H are Hadamard gates. The first two qubit gate U f ab corresponds to evaluation of the function f ab , replacing an eigenstate uijl by 2uijl if i a and j b; while U f 00 simply replaces u00l by 2u00l. achieved (up to an irrelevant global phase) by combin- ing this with ^z rotations on the two spins; these were explicitly implemented using composite z-pulses. The Hadamard gates were implemented using the two pulse sequence 90 2y 180 x described in Section 7. Finally the elements of the pulse sequence with the exception of the initial pair of Hadamard gates were assembled together to give a single propagator, U ab , and sequential pairs of pulses were combined where ever possible to give simpler pulse sequences. Thus the final pulse sequences for U ab were 1 2J 2 90 2y 90S ^x 90I ^x 2 1 2J 2 90 2y 90 2x 48 where, as before, pulses not marked as either I or S were applied to both nuclei. The choice of ^ signs on the second and third pulses determined which of the three functions f was implemented. Results were shown only for U 11 , in which case both signs are positive, but experiments were performed for all four functions. The second NMR implementation of Grover’s quantum search [89] was based on the homonuclear 1 H spin system in cytosine. In this case spatial aver- aging was used to prepare the initial pseudo-pure state, and the result was analysed by excitation and detection of the two 1 H signals; this provides a parti- cularly simple and immediate readout scheme. Quan- tum logic gates were implemented using multiple pulse sequences, with soft pulses used to perform selective excitation and spin echoes used to refocus chemical shifts; sequential pairs of pulses were combined within the individual propagators U f ab ; but no attempt was made at global simplification of the pulse sequence. For these reasons the homonuclear implementation produced relatively poor results, although the cosmetic appearance of the spectra was greatly improved by the application of a magnetic field crush gradient between the end of the quantum circuit and the application of a final 908 pulse prior to detection. 11.7. Extensions Grover’s quantum search algorithm is not, of course, limited to two qubit implementations, but can be used to search over a space described by any number of input qubits, n, in which case there are N 2 n possible inputs. For n . 2 the behaviour of the algorithm is similar to but more complex than that described above; a single application of U ab (that is, function evaluation and inversion around the average) acts to concentrate the intensity of the superposition on the satisfying state, but does not simply produce this state. Instead it is necessary to apply these two operations repeatedly, driving the register towards the desired state. The intensity of the desired state oscil- lates with a frequency inversely proportional to N p ; and so after O N p applications of U ab the intensity will be largely on the satisfying state; measurement of the register will then return this state with high prob- ability. Further application of U ab will then drive the register away from the desired state, and so it is important to choose the correct number of repetitions. This oscillatory behaviour was in fact demonstrated for the two qubit case in the first NMR implementa- tion [77], where U ab was applied between zero and seven times. More recently Grover’s algorithm has been implemented with three qubits, searching over eight possible inputs, with up to 28 repetitions of the propagator [91]; this implementation used the 1 H– 19 F– 13 C spin system in 13 C labelled CHFBr 2 . Another variant on Grover’s algorithm occurs when there is more than one satisfying input; in this case the number of such inputs is usually called k. The algo- rithm is almost identical to the simple case when k 1; except that it is only necessary of use O N=k p repetitions to drive the quantum register into an equally weighted superposition of the k satisfying inputs. A measurement on this register will then cause the superposition to collapse into one of its constituent values, and so one of the k satisfying inputs can be returned at random. Clearly this requires either that the value of k be known beforehand, or that it be determined; fortunately k can be readily esti- mated using an extension of Grover’s search called quantum counting [79,92–94]. The basic idea behind quantum counting is that in addition to driving the quantum register towards the satisfying values application of the Grover propaga- tors also results in a phase shift which depends on the value of k/N. In a conventional implementation of Grover’s algorithm this phase shift is a global phase shift, and so cannot be detected. Quantum counting, however, uses an approach similar to Deutsch’s algo- rithm to convert this phase shift into a relative phase shift which can be measured. This algorithm requires J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360352 one additional qubit, and so when it was implemented on the cytosine system [79] it was performed using one bit functions, for which either zero, one, or two inputs satisfy the function. 12. Quantum phenomena In addition to implementing quantum computa- tions, NMR techniques have also been used to imple- ment other more general aspects of quantum information processing, including demonstrations of some quantum phenomena. A few of the more impor- tant examples are described below. 12.1. Entangled states Entangled states [76] are states of quantum mechanical systems which cannot adequately be char- acterised by describing the states of their component subsystems; instead the properties of such states are properties of the system as a whole. An important example is provided by the four Bell states: f ^ u00l ^ u11l 2 p c ^ u10l ^ u01l 2 p : 49 (The cat states introduced in Section 8 are an obvious generalisation of f ^ to systems of more than two qubits.) Such states play a central role in experimental tests of quantum theory, and also form the essential information processing resource for quantum commu- nication techniques. For this reason there is significant interest in techniques for generating entangled systems, especially multiple particle entangled systems such as cat states. The quantum network for generating cat states is well known, and the three qubit version is shown in Fig. 9. This was used early on to generate Bell states and three qubit cat states (GHZ states) [95], and more recently has been used to prepare seven qubit cat states [72]. There are, however, several reasons for questioning the true significance of these results, and they have certainly not generated as much excite- ment as similar results with smaller numbers of qubits in other quantum technologies [96]. The first reason for skepticism is the close relation- ship between cat states and multiple quantum coher- ences. As described above (Section 8) nQ x multiple quantum coherence corresponds to a mixture of uf 1 n lkf 1 n u and uf 2 n lkf 2 n u; thus the generation of high order multiple quantum coherence is nearly equiva- lent to the production of cat states. Seen in this light, seven quantum coherence is not particularly impress- ive: solid state NMR techniques have been used to generate coherence orders above one hundred [97]. A second difficulty with NMR cat states arises from the use of pseudo-pure states. As discussed in Section 13, the fact that NMR density matrices are always highly mixed, with nearly equal populations in all spin states, appears to mean that they cannot, strictly speaking, exhibit entanglement. Thus NMR cat states might be more properly described as pseudo- entangled states. Finally even if truly entangled NMR states were to be produced there are serious limitations on the use of NMR to investigate quantum mechanics. The ensem- ble nature of NMR measurements complicates the investigation of deviations from classical behaviour, while the short distances over which NMR entangle- ment can be produced (normally confined to molecu- lar dimensions) compares unfavourably with the distance achievable with entangled photons (hundreds of metres). 12.2. Quantum teleportation Quantum teleportation [98–100] is a particularly intriguing example of quantum communication; in essence it involves the transfer of an unknown quan- tum state from one quantum particle to another, with- out any attempt to characterise the state. The technique relies on the peculiar, apparently non- local, correlations inherent in entangled states, such as Bell states. Note that quantum teleportation does not permit the direct transfer of a quantum system into empty space: a suitable target particle (one half of a Bell state) must be provided at the destination to receive the quantum information. Thus it is the state of the particle which is teleported, and not the particle itself. Quantum teleportation has been implemented on a three spin NMR quantum computer [101] using two 13 C nuclei and a single 1 H nucleus in 13 C labelled trichloroethene. The process can be summarised by uc a l u0 b 0 c l 1 u1 b 1 c l ! u0 a 0 b l 1 u1 a 1 b l uc c l 50 where ucl indicates an arbitrary quantum state, and the J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360 353 subscripts a, b, c simply label the three qubits. Although this implementation raises some interesting issues, arguments similar to those used above for entangled states can be applied to NMR teleportation, and once again optical implementations [100] are rather more convincing. 12.3. Error correction Any computing technology is ultimately based on some physical device, and such devices are inevitably error prone. There are two main methods by which the effects of these random errors can be reduced: stabi- lisation techniques which act to cancel out the effects of small errors, and error correction techniques which detect, characterise and finally fix the results of larger errors. Stabilisation against small errors is an inherent feature of digital information processing. In any digi- tal system information is stored as ones and zeroes, which are ultimately represented as two states of a physical system, such as high and low voltages. Small fluctuations away from the two ideal voltages (noise) do not matter, as long as it is always clear whether the voltage is high or low. In some cases this passive insensitivity to noise can be further enhanced by active stabilisation, which acts to continuously drive the system towards the nearer of the two ideal states. Because of this intrinsic stabilisa- tion digital information processing devices are effec- tively invulnerable to the effects of noise, as long as the noise signals remain below some critical thresh- old. If the noise rises above this threshold, however, stabilisation is no longer effective, and it is necessary to resort to error correction. Error correction techniques are even more impor- tant for quantum information processing, as simple stabilisation techniques are ruled out. Unlike bits qubits are not confined to two states, but can also exist in superpositions of these states, and any stabi- lisation scheme which drives a qubit back towards the two eigenstates will of course destroy these vital superpositions. For some time it was believed that the nature of superposition states would also render error correction schemes impractical, but happily this is not in fact the case. Classical error correction schemes [15] are most simply described in terms of the transmission of infor- mation along a noisy channel, which has the effect of flipping bits (that is, changing them from 0 to 1 and vice versa) at random, with an error probability e. Quantum error correction schemes are similar except that as well as correcting qubit flip errors (that is errors which take a qubit from u0l to u1l) it is also necessary to correct phase errors (which interconvert, for exam- ple, u0l 1 u1l and u0l 2 u1l). For simplicity, however, I will only describe how classical schemes work. All such schemes (including quantum schemes [102– 105]) use multiple copies of each bit (or qubit); the redundancy provided by these ancillas allows errors to be detected and corrected. The simplest classical scheme is triplet coding, in which a bit is encoded using three repetitions (so that 0 is encoded as 000, while 1 is encoded as 111) and decoded by taking a majority vote (so that 000, 001, 010 and 100 all decode as 0, while 111, 110, 101 and 011 all decode as 1). This scheme is robust against random errors in any one of the three bits. Of course if there are errors in two of the bits then the message will still be corrupted; however the chance of two errors occurring is e 2 1 2 e ; and as long as e is small this possibility can be neglected. If the level of errors is too high then triplet coding is no longer effective, but more robust schemes (involving even greater redun- dancy) can be used. Triplet coding and other error correction schemes might seem very different from stabilisation schemes, J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360354 Fig. 15. The relationship between the triplet error correction code and active stabilisation. The eight possible states of three bits can be placed on the eight corners of a cube, where the sides of the cube connect states which differ by a single bit flip and the two ideal states (000 and 111) lie at opposite corners. Decoding a triplet state by majority vote is equivalent to moving the state to the nearer of the two ideal corners. but in fact the basic ideas are quite similar as shown in Fig. 15. In effect the code divides the eight possible settings of a three bit system into two subspaces, just as voltages can be divided into high and low. Note that if a simpler doublet coding scheme (in which 0 is represented as 00 and 1 as 11) is used it is still possible to detect single bit errors, but not to correct them, as the two states which can occur after a bit flip error (01 and 10) lie equally close to the two ideal states. In communication (as opposed to data storage) schemes, however, it may be sufficient to detect errors, as the erroneous bits can then be sent again. Some simple quantum error detection and correc- tion protocols have been implemented on NMR quan- tum computers [106,107]. Full quantum error correction requires at least five qubits to encode a single state, but simpler schemes exist which use only three qubits; these simplified schemes can only correct phase errors or bit-flip errors, but not both. Phase errors occur as a result of spin–spin relaxation, while bit-flip errors correspond to spin-lattice relaxa- tion, and so in many NMR systems phase errors will dominate. Furthermore, phase errors only occur in quantum computers, as they have no classical analo- gue. For these reasons early studies on NMR error correction have concentrated on three qubit phase- correcting codes. It should be noted that these NMR experiments are demonstrations of the principle of error correction, rather than practical implementations of error correct- ing codes. In order to effectively suppress errors in a quantum computation it is necessary to apply the error correction protocol repeatedly; this in turn requires that the ancilla qubits be maintained in the correct state. This is most simply achieved by initialising them to u0l before each correction round. Unfortu- nately the NMR techniques described in Section 8 allow qubits to be initialised only once, at the start of the calculation; they cannot be repeatedly reinitia- lised. This appears to rule out current NMR imple- mentations as practical technologies for quantum computation [38]. 13. NMR and entanglement Finally I will return to the question, briefly discussed in Section 5, of whether NMR quantum computers are in fact true quantum computers at all. Much of the opposition to NMR as a quantum computing technology stems from the formidable difficulties [38] in scaling up the current small systems to computers with a reasonable number of qubits. A particularly common observation is that the use of pseudo-pure states is exponentially inefficient [46,47], in that the amount of pseudo-pure state which can be extracted from an NMR system at ther- mal equilibrium falls off exponentially with the number of spins in the system. Of course this problem can be overcome by using an exponentially large sample, but this approach would remove any increase in computational efficiency supposedly arising from quantum mechanical effects: there are a wide range of classical techniques (such as DNA computing [108]) which allow exponential gains in computing power to be obtained from exponentially large samples. This problem is not in principle unique to NMR; it will occur in any potential quantum computing tech- nology which works in the high temperature limit [38]. It can in principle be overcome by working at sufficiently low temperatures, or by using some other initialisation technique to produce a non-Boltzmann population distribution, although the technical problems involved are substantial [38]. However NMR is the only technology among those currently under investigation which falls into this category. In addition to the obvious technological issues raised by this exponential efficiency there are also some more fundamental concerns. It has long been suspected that the non-classical power of quantum computation is closely linked to the existence of entangled states during quantum computations [109]. Although this belief has never actually been proved, and some recent theoretical results have suggested that it may not be entirely correct [110], it is clear that some important algorithms such as Shor’s quantum factoring algorithm do require the generation of entangled states [111]. It can be shown that the pseudo-entangled states generated in NMR quantum computations do not actually fulfil the mathematical requirements for true entanglement [112], casting doubt on their ability to exhibit true quantum phenomena. As we shall see, however, this concern may not be entirely well founded. J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360 355 13.1. Quantifying entanglement Although the concept of entanglement is relatively easy to explain, actually quantifying the amount of entanglement in any given system is a surprisingly difficult task. For a system of two qubits in a pure state the problem is relatively straightforward, and the four Bell states (f ^ and c ^ ; see Section 12) form a basis set describing the possible maximally entangled states. With larger systems the problem is much more difficult, as different definitions of entan- glement lead to quite different conclusions. Difficulties can also arise when considering mixed states, such as those observed in NMR experiments. These difficulties occur because there is no unique way to break down a given mixed state into a mixture of pure states. To see this consider the maximally mixed state, which for a two qubit system has the form 1 4 1 4 000 0 1 4 00 00 1 4 0 000 1 4 0 B B B B B B @ 1 C C C C C C A : 51 This is perhaps most easily described as an equally populated mixture of the four eigenstates, but this is by no means the only possible description: an equally weighted mixture of the four Bell states will have exactly the same form! It might be claimed that this alternative decomposition is unnatural, but there are no real grounds for such a statement, as the choice of basis set is entirely arbitrary, and this approach is sometimes referred to as the preferred ensemble fallacy. Similar difficulties arise when considering the pseudo-entangled states formed from pseudo-pure states, such as 1 2 e 1 4 1 euc 1 lkc 1 u 11e 4 00 e 2 0 12e 4 00 00 12e 4 0 e 2 00 11e 4 0 B B B B B B @ 1 C C C C C C A 52 (mixed states of this kind were first considered by Werner [113], and thus are often referred to as Werner states). It is tempting to argue that this mixed state is a mixture of the maximally mixed state together with a fraction e of an entangled state, but as discussed above there is no particular reason to choose this description. The amount of apparent entanglement in the state could be increased by decomposing the maximally mixed state as a mixture of entangled states, but it is also possible to choose decomposi- tions which reduce the apparent contribution from entanglement. While it is not possible to say how much entangle- ment is in any particular mixed state it is possible to determine the minimum contribution from entangled states which must be present in the state (in a pure entangled state this minimum fraction is, of course, one). If this minimum quantity is greater than zero then it is reasonable to say that the mixed state does contain some entanglement; if, however, the mini- mum amount is zero then it is possible to describe the mixed state using only product states (and thus without invoking entanglement), and the state is said to be separable. In particular it can be shown [114] that two qubit pseudo-entangled states are in fact separable if e , 1=3: An explicit separable decompo- sition of Eq. (52) with e 1=9 is given in Appendix A. With larger systems the problem is more compli- cated, but two important results are known [112]. Given any state ucl of an n-qubit system, a mixture made by mixing a fraction e of this state into the maximally mixed state, 1/2 n , can always be shown to be separable for sufficiently small values of e, such that e # 1 1 1 2 2n21 , 2 4 n : 53 It can also be shown that non-separable states do exist for sufficiently large values of e, such that e . 1 1 1 2 n=2 , 2 2 n=2 : 54 By comparison the values of e obtainable with NMR quantum computers working within the high tempera- ture limit [38,46,47] are given by e , n 2 n 55 which lies between the two bounds given in Eqs. (53) and (54). Using realistic parameters it can be calculated that the states used in NMR quantum J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360356 computations are always separable for systems with less than about 13 qubits and may (or may not) become entangled beyond this point. Since the systems used so far have involved no more that seven qubits, all NMR quantum computations to date have involved purely separable states. 13.2. NMR and quantum mechanics The observation that NMR quantum computers have so far only used separable states has led some authors to suggest that they are not true quantum computers at all! When assessing claims of this kind it must be remembered that quantum is being used here in its technical sense of provably non-classical. Consider, for example, a set of NMR quantum compu- ters which are identical except for having different values of e, with some of them lying above the entan- glement limit discussed previously, and the remainder lying below this limit. It seems very strange to claim that two groups of computers are fundamentally different in character, with the first group being quan- tum mechanical and the second group classical, but it is more reasonable to suggest that only the computers in the first group are capable of exhibiting convin- cingly non-classical behaviour. Even this claim, however, may be too strong. It seems highly unlikely that it is the mere presence of entanglement which leads to non-classical efficiency; rather it is the ability to interconvert a wide range of entangled and non-entangled states. Thus in order to claim that NMR quantum computing experiments are classical it is not sufficient to show that they involve only classical states; instead it is necessary to show that the processes which connect these states can themselves be described classically. To date attempts to achieve this have failed [115], and it is not clear that such a model is possible. In an unrelated approach, some authors have attempted to draw a distinction between the density matrix (which is a description of the state of an NMR system) and the state itself, although it is tricky to draw this distinction in an entirely convincing fashion. It is true, however, that the density matrix approach is only an approximate description of an NMR system, and that any conclusions based on this approximation are to some extent open to suspicion. 14. Conclusions When assessing NMR quantum computation it is important to take a balanced view, avoiding both excessive excitement at the apparently impressive results achieved so far and undue despair at the limita- tions that have been identified. NMR quantum compu- tation has been the subject of a great deal of sceptical scrutiny, probably more than any other approach. In part this is a result of the great success of NMR as a technique for quantum information processing; furthermore, the highly developed nature of NMR experiments, in comparison with many other putative quantum technologies, means that the limits of the technique are well known and understood. On the positive side, NMR is far ahead of any competing technology in the implementation of quan- tum computations and other forms of quantum infor- mation processing. Although some basic elements have been implemented using other technologies, such as the ion trap controlled-not gate [116], NMR remains the only technology capable of imple- menting a complete quantum algorithm. Progress from two qubit devices [8–12] to systems with seven qubits [72] has been extremely rapid, and there is every reason to believe that more progress will soon be made. Against this it must be pointed out that most researchers believe that the current designs for NMR quantum computers cannot be extended very much farther: while there is some disagreement as to which technical difficulty will actually stop further progress it is widely agreed that it will be difficult to progress beyond 10–20 qubits. While current demon- stration systems are undoubtedly interesting they are far too small to be used to tackle problems beyond the range of current classical computers. Similarly, although there are important applications of quantum information processing, such as quantum cryptogra- phy [117], which require only devices with small numbers of qubits, all such applications lie in the field of quantum communication where NMR meth- ods appear completely unsuitable. The discovery [112] that current NMR implemen- tations of quantum computation do not seem to involve entanglement might appear a serious blow, but its implications should not be overstated. This result does not mean that NMR quantum computers J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360 357 are not true quantum computers, although it does appear to mean that they cannot be used to achieve non-classical efficiencies. However it has long been known [46,47] that the exponential inefficiency of pseudo-pure state preparation means that current implementations are unlikely to exhibit true efficiency gains. It seems likely that in the next few years it will be possible to use para-hydrogen techniques [42–44] to build two qubit NMR quantum computers above the entanglement threshold, but it will be tricky to extend this approach to larger systems. Acknowledgements I thank Mark Bowdrey, Holly Cummins, Ruth Dixon and Vlatko Vedral for helpful conversations, and Steffen Glaser for providing a preprint of his work [44]. Appendix A. An explicitly separable decomposition of a pseudo-entangled state While it can be shown that a two qubit pseudo- entangled state with e , 1=3 is in fact separable [114], the argument used to derive this result does not provide an explicit decomposition of such states into product states, but merely proves that such a decomposition exists. It is, however, fairly simple to find such a decomposition [112] for mixed states with low values of e. The process begins by constructing an overcom- plete basis for a single qubit; a basis set of this kind is sufficient to describe any state of a single qubit (a single spin), but contains more basic elements than is strictly necessary. One suitable basis is the set of six states u0lu1l u0l ^ u1l 2 p u0l ^ iu1l 2 p A1 which may be labelled as b j , j 1;2;…;6: This can then be used to construct a two qubit basis set, b jk ,by taking direct products. This basis set, comprising 36 elements, was constructed by taking products of single qubit states, and so is explicitly composed of product states only. Thus any density matrix which can be decomposed in this basis must be separable. As an example consider a pseudo-entangled state of the form given by Eq. (52) with e 1=9: r 2 9 1 1 1 9 uc 1 lkc 1 u 1 18 5001 0400 0040 1005 0 B B B B B B @ 1 C C C C C C A : A2 This can be written in the form r X jk P jk b jk A3 and the proportions P jk of each basis state b jk can be obtained from the trace of the product of r and b jk giving P 1 36 201111 021111 112011 110211 111102 111120 0 B B B B B B B B B B B B @ 1 C C C C C C C C C C C C A : A4 This calculation also makes clear the danger of an unquestioning equation of entanglement and multiple quantum coherence. The state shown in Eq. (A2) clearly contains double quantum coherence (it can be decomposed in product operator notation as 1 2 E=2 1 2I z S z =18 1 DQ x =9) and yet is not provably entangled. References [1] C.H. Bennett, D. DiVincenzo, Nature 404 (2000) 247. [2] C. Macchiavello, G.M. Palma, A. Zeilinger (Eds.), Quantum Computation and Quantum Information Theory, World Scientific, Singapore, 2000 (in press). [3] D. Bouwmeester, A. Ekert, A. Zeilinger (Eds.), The Physics of Quantum Information Springer, Berlin, 2000. [4] P.W. Shor, SIAM Rev. 41 (1999) 303. [5] R.P. Feynman, Int. J. Theor. Phys. 21 (1982) 467. [6] S. Lloyd, Science 273 (1996) 1073. [7] R.R. Ernst, G. Bodenhausen, A. Wokaun, Principles of Nuclear Magnetic Resonance in One and Two Dimensions, Oxford University Press, Oxford, 1987. [8] D.G. Cory, A.F. Fahmy, T.F. Havel, PhysComp ‘96, in: T. Toffoli, M. Biafore, J. Lea?o (Eds.), New England Complex Systems Institute, 1996, pp. 87–91. J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360358 [9] D.G. Cory, A.F. Fahmy, T.F. Havel, Proc. Natl Acad. Sci. USA 94 (1997) 1634. [10] N.A. Gershenfeld, I.L. Chuang, Science 275 (1997) 350. [11] J.A. Jones, M. Mosca, J. Chem. Phys. 109 (1998) 1648. [12] I.L. Chuang, L.M.K. Vandersypen, X. Zhou, D.W. Leung, S. Lloyd, Nature 393 (1998) 143. [13] J.A. Jones, NMR Quantum Computing, in: C. Macchiavello, G.M. Palma, A. Zeilinger (Eds.), Quantum Computation and Quantum Information Theory, World Scientific, Singapore, 2000 (in press). [14] J.A. Jones, Quantum Computing and NMR, in: D. Bouwmee- ster, A. Ekert, A. Zeilinger (Eds.), The Physics of Quantum Information, Springer, Berlin, 2000. [15] R.P. Feynman, in: A.J.G. Hey, R.W. Allen (Eds.), Feynman Lectures on Computation, Addison-Wesley, Reading, MA, 1996. [16] O.W. S?rensen, G.W. Eich, M.H. Levitt, G. Bodenhausen, R.R. Ernst, Prog. NMR Spectrosc. 16 (1983) 163. [17] M. Goldman, Quantum Description of High-Resolution NMR in Liquids, Clarendon Press, Oxford, 1988. [18] http://www.arxiv.org/quant-ph. [19] M. Schulz, Nature 399 (1999) 729. [20] D. Welsh, Codes and Cryptography, Clarendon Press, Oxford, 1988. [21] B. Schneier, Applied Cryptography, Wiley, New York, 1996. [22] D. Deutsch, Proc. R. Soc. Lond. A 400 (1985) 97. [23] D. Deutsch, in: R. Penrose, C.J. Isham (Eds.), Quantum Concepts in Space and Time, Clarendon Press, Oxford, 1986. [24] D. Deutsch, R. Jozsa, Proc. R. Soc. Lond. A 439 (1992) 553. [25] R. Cleve, A. Ekert, C. Macchiavello, M. Mosca, Proc. R. Soc. Lond. A 454 (1998) 339. [26] A. Ekert, R. Jozsa, Rev. Mod. Phys. 68 (1996) 733. [27] C.H. Bennett, IBM J. Res. Dev. 17 (1973) 525. [28] E. Fredkin, T. Toffoli, Int. J. Theor. Phys. 21 (1982) 219. [29] R. Landauer, IBM J. Res. Dev. 5 (1961) 183. [30] R. Landauer, Int. J. Theor. Phys. 21 (1982) 283. [31] D.P. DiVincenzo, Proc. R. Soc. Lond. A 454 (1998) 261. [32] D. Deutsch, Proc. R. Soc. Lond. A 425 (1989) 73. [33] A. Barenco, C.H. Bennett, R. Cleve, D.P. DiVincenzo, N. Margolus, P. Shor, T. Sleator, J. Smolin, H. Weinfurter, Phys. Rev. A 52 (1995) 3457. [34] A. Barenco, Proc. R. Soc. Lond. A 449 (1995) 679. [35] D. Deutsch, A. Barenco, A. Ekert, Proc. Roy. Soc. Lond. A 449 (1995) 669. [36] S. Lloyd, Phys. Rev. Lett. 92 (1995) 346. [37] D.P. DiVincenzo, Fort. der Physik 48 (2000) 771. See also LANL e-print quant-ph/0002077. [38] J.A. Jones, Fort. der Physik 48 (2000) 909. See also LANL e-print quant-ph/0002085. [39] T.G. Walker, W. Happer, Rev. Mod. Phys. 69 (1997) 629. [40] G. Navon, Y.Q. Song, T. Ro?o?m, A. Appelt, R.E. Taylor, A. Pines, Science 271 (1996) 1848. [41] T. Pietra?, Colloids Surf. A 158 (1999) 51. [42] J. Natterer, J. Bargon, Prog. NMR Spectrosc. 31 (1997) 293. [43] S.B. Duckett, C.J. Sleigh, Prog. NMR Spectrosc. 34 (1999) 71. [44] P. Hu¨bbler, J. Bargon, S.J. Glaser, J. Chem. Phys. 113 (2000) 2056. [45] R. Freeman, Spin Choreography, Spektrum, Oxford, 1997. [46] W.S. Warren, Science 277 (1997) 1688. [47] N.A. Gershenfeld, I.L. Chuang, Science 277 (1997) 1689. [48] J.A. Jones, R.H. Hansen, M. Mosca, J. Magn. Reson. 135 (1998) 353. [49] R. Freeman, T.A. Frenkiel, M.H. Levitt, J. Magn. Reson. 44 (1981) 409. [50] J.A. Jones, E. Knill, J. Magn. Reson. 141 (1999) 322. [51] D.W. Leung, I.L. Chuang, F. Yamaguchi, Y. Yamamoto, Phys. Rev. A 61 (2000) 042310. [52] N. Linden, E. Kupce, R. Freeman, Chem. Phys. Lett. 311 (1999) 321. [53] Z.L. Ma′di, R. Bru¨schweiler, R.R. Ernst, J. Chem. Phys. 109 (1998) 10 603. [54] N. Linden, H. Barjat, E. Kupce, R. Freeman, Chem. Phys. Lett. 307 (1999) 198. [55] M.D. Price, S.S. Somaroo, A.E. Dunlop, T.F. Havel, D.G. Cory, Phys. Rev. A 60 (1999) 2777. [56] M.D. Price, T.F. Havel, D.G. Cory, New. J. Phys. 2.10 (2000) 1. [57] A. Barenco, D. Deutsch, A. Ekert, R. Jozsa, Phys. Rev. Lett. 74 (1995) 4083. [58] N. Linden, H. Barjat, R. Freeman, Chem. Phys. Lett. 296 (1998) 61. [59] K.G.R. Pachler, P.L. Wessels, J. Magn. Reson. 12 (1973) 337. [60] G.A. Morris, R. Freeman, J. Am. Chem. Soc. 101 (1979) 760. [61] K. Dorai, A.A. Kumar, Phys. Rev. A 61 (2000) 042306. [62] J.A. Jones, V. Vedral, A. Ekert, G. Castagnoli, Nature 403 (2000) 869. [63] A. Ekert, M. Ericsson, P. Hayden, H. Inamori, J.A. Jones, D.L.K. Oi, V. Vedral, J. Mod. Opt. (2000) (in press). [64] A. Shapere, F. Wilczek, Geometric Phases in Physics, World Scientific, Singapore, 1989. [65] M.V. Berry, Proc. R. Soc. Lond. A 392 (1984) 45. [66] D. Suter, G. Chingas, R. Harris, A. Pines, Mol. Phys. 61 (1987) 1327. [67] M. Goldman, V. Fleury, M. Gue′ron, J. Magn. Reson. A 118 (1996) 11. [68] R. Tycko, Phys. Rev. Lett. 58 (1987) 2281. [69] S. Appelt, G. Wa¨ckerle, M. Mehring, Phys. Rev. Lett. 72 (1994) 3921. [70] J.A. Jones, A. Pines, J. Chem. Phys. 106 (1997) 3007. [71] E. Knill, I. Chuang, R. Laflamme, Phys. Rev. A 57 (1998) 3348. [72] E. Knill, R. Laflamme, R. Martinez, C.-H. Tseng, Nature 404 (2000) 368. [73] M. Pravia, E. Fortunato, Y. Weinstein, M.D. Price, G. Tekle- mariam, R.J. Nelson, Y. Sharf, S. Somaroo, C.H. Tseng, T.F. Havel, D.G. Cory, Concepts Magn. Reson. 11 (1999) 225. [74] L.M.K. Vandersypen, C.S. Yannoni, M.H. Sherwood, I.L. Chuang, Phys. Rev. Lett. 83 (1999) 3085. [75] R. Marx, A.F. Fahmy, J.M. Myers, W. Bermel, S.J. Glaser, Phys. Rev. A 62 (2000) 012310. [76] D. Bouwmeester, A. Zeilinger, The Physics of Quantum J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360 359 Information: Basic Concepts, in: D. Bouwmeester, A. Ekert, A. Zeilinger (Eds.), The Physics of Quantum Information, Springer, Berlin, 2000. [77] I.L. Chuang, N. Gershenfeld, M. Kubinec, Phys. Rev. Lett. 80 (1998) 3408. [78] P. Plateau, M. Gue′ron, J. Am. Chem. Soc. 104 (1982) 7310. [79] J.A. Jones, M. Mosca, Phys. Rev. Lett. 83 (1999) 1050. [80] M.H. Levitt, Prog. NMR Spectrosc. 18 (1986) 61. [81] H.K. Cummins, J.A. Jones, New J. Phys. 2.6 (2000) 1. [82] R. Tycko, Phys. Rev. Lett. 51 (1983) 775. [83] H.K. Cummins, J.A. Jones, J. Magn. Reson, 2001, in press. See also LANL e-print quant-ph/0008034. [84] D. Collins, K.W. Kim, W.C. Holton, Phys. Rev. A 58 (1998) R1633. [85] D. Collins, K.W. Kim, W.C. Holton, H. Sierzputowska- Gracz, E.O. Stejskal, Phys. Rev. A 62 (2000) 022304. [86] Arvind, K. Dorai, A. Kumar, LANL e-print quant-ph/ 9909067. [87] L.K. Grover, Phys. Rev. Lett. 79 (1997) 325. [88] L.K. Grover, Science 280 (1998) 228. [89] J.A. Jones, M. Mosca, R.H. Hansen, Nature 393 (1998) 344. [90] J.A. Jones, Science 280 (1998) 229. [91] L.M.K. Vandersypen, M. Steffen, M.H. Sherwood, C.S. Yannoni, G. Breyta, I.L. Chuang, Appl. Phys. Lett. 76 (2000) 646. [92] M. Boyer, G. Brassard, P. H?yer, A. Tapp, Fort. Der. Physik 46 (1998) 493. [93] G. Brassard, P. H?yer, A. Tapp, Proceedings of ICALP 1998; see also LANL e-print quant-ph/9805082. [94] M. Mosca, Proceedings of Randomized Algorithms, 1998. [95] R. Laflamme, E. Knill, W.H. Zurek, P. Catasti, S.V.S. Mariappan, Phil. Trans. R. Soc. Lond A 356 (1998) 1941. [96] D. Bouwmeester, J.-W. Pan, M. Daniell, H. Weinfurter, A. Zeilinger, Phys. Rev. Lett. 82 (1999) 1345. [97] L. Emsley, A. Pines, Lectures on Pulsed NMR, in: B. Mara- viglia (Ed.), Proceedings of the International School of Physics ‘Enrico Fermi’ (Societa` Italiana di Fisica, 1992). [98] D. Bouwmeester, H. Weinfurter, A. Zeilinger, Quantum Dense Coding and Quantum Teleportation, in: D. Bouwmee- ster, A. Ekert, A. Zeilinger (Eds.), The Physics of Quantum Information, Springer, Berlin, 2000. [99] C.H. Bennett, G. Brassard, C. Cre′peau, R. Jozsa, A. Peres, W.K. Wooters, Phys. Rev. Lett. 70 (1993) 1895. [100] D. Bouwmeester, J.-W. Pan, K. Mattle, M. Eible, H. Wein- furter, A. Zeilinger, Nature 390 (1997) 575. [101] M.A. Nielsen, E. Knill, R. Laflamme, Nature 396 (1998) 52. [102] P.W. Shor, Phys. Rev. A 52 (1995) 2493. [103] A.M. Steane, Phys. Rev. Lett. 77 (1996) 793. [104] A.M. Steane, Philos. Trans. R. Soc. Lond. A 356 (1998) 1739. [105] A.M. Steane, Nature 399 (1999) 6732. [106] D.G. Cory, M.D. Price, W. Maas, E. Knill, R. Laflamme, W.H. Zurek, T.F. Havel, S.S. Somaroo, Phys. Rev. Lett. 81 (1998) 2152. [107] D. Leung, L. Vandersypen, X.L. Zhou, M. Sherwood, C. Yannoni, M. Kubinec, I. Chuang, Phys. Rev. A 60 (1999) 1924. [108] L.M. Adleman, Science 266 (1994) 1021. [109] A. Ekert, R. Jozsa, Philos. Trans. R. Soc. Lond. A 356 (1998) 1769. [110] E. Knill, R. Laflamme, Phys. Rev. Lett. 81 (1998) 5672. [111] N. Linden, S. Popescu, LANL e-print quant-ph/9906008. [112] S.L. Braunstein, C.M. Caves, R. Jozsa, N. Linden, S. Popescu, R. Schack, Phys. Rev. Lett. 83 (1999) 1054. [113] R.F. Werner, Phys. Rev. A 40 (1989) 4276. [114] A. Peres, Phys. Rev. Lett. 77 (1996) 1412. [115] R. Schack, C.M. Caves, Phys. Rev. A 60 (1999) 4354. [116] C. Monroe, D.M. Meekhof, B.E. King, W.M. Itano, D.J. Wineland, Phys. Rev. Lett. 75 (1995) 4714. [117] A. Ekert, N. Gisin, B. Huttner, H. Inamori, H. Weinfurter, Quantum Cryptography, in: D. Bouwmeester, A. Ekert, A. Zeilinger (Eds.), The Physics of Quantum Information, Springer, Berlin, 2000. J.A. Jones / Progress in Nuclear Magnetic Resonance Spectroscopy 38 (2001) 325–360360