The idea of quantum computation goes back to as early as 1982, when Richard Feynman considered simulating quantum-mechanical objects with other quantum systems. However, the unusual power of quantum computation was not really appreciated until 1985 when David Deutsch published a theoretical paper [27] in which he described a universal quantum computer. Then in 1994 Peter Shor devised the first quantum algorithm that, in principle, can perform efficient factorisation [30]. In a sense, Shor's algorithm is a `killer application,' which can do something very useful that is also, it is believed, intractable on conventional computers. In fact, the difficulty of factorising large integers is a working hypothesis on which the security of many common methods of encryption (e.g. RSA) is based. For one thing, RSA is a very popular public key encryption scheme used in many e-commerce applications today. In this section, a brief summary of the quantum computer is presented.
In [27], Deutsch laid down the foundation of quantum computation by considering the Church-Turing conjecture:
Every `function which would naturally be regarded as computable' can be computed by the universal Turing machine.
in physical terms. According to Deutsch, instead of considering the Church-Turing conjecture as a pure mathematical formulation, one should consider the physical version of the Church-Turing principle, which is
`Every finitely realizable physical system can be perfectly simulated by a universal model computing machine operating by finite means.'
Indeed, since classical dynamics is continuous, the possible states of a classical system necessarily form a continuum. But there are only countably many ways of preparing a finite input for a Turing machine. Therefore, a Turing machine cannot perfectly simulate any classical dynamic system. Consequently, the Church-Turing principle does not hold in classical physics. On the other hand, a universal quantum computer is capable of perfectly simulating any finite, realizable physical system.
Specifically, a quantum computer
consists of two components, a finite processor and an infinite memory. The computation proceeds in steps of fixed duration
, and during each step only the processor and a finite part of the memory interact, the rest of the memory remaining static [27].
The processor consists of
2-state observables
| (3.21) |
| (3.22) |
| (3.23) |
In the architectures proposed in this thesis, each eigenstate
is associated with a symbol in a particular language. Furthermore, the preparation of the starting state as described in Equation 3.25 is referred to as a representation of a state of affairs. In general, a quantum computer has to have an additional state which is reserved to signal the halt of the computation. However, as far as our language processing applications in this thesis are concerned, we assume that the quantum computer will in any case halt after a sufficiently long sequence of execution (with sufficiently large
in Equation 3.24). Since what we are interested in is the end state of a quantum computer (that is, when the calculation is successfully carried out),
operations are absorbed into one operator with