Simulation and Programming of Quantum Computers

Roland Rudiger¨ [email protected]

Lecture given at Department of Transportation, University of Applied Sciences and Department of High Performance Computing – Center of Logistics and Expert Systems GmbH, Salzgitter, Germany April 25, 2003 Outline

. Quantum computation—basic concepts

. Algorithms and simulation

. Quantum programming languages

. Realization of QCs—present state Quantum computation—basic concepts Introductory remarks and example General remarks on quantum mechanics . Feynman: “I think I can safely say that nobody understands quan- tum mechanics.” . Bohr: “Anyone who is not shocked by quantum theory has not understood it.” . “Quantum mechanics is a mathematical framework or set of rules for the construction of physical theories.” (Nielsen & Chuang [NC00, p. 2]) . framework is highly counter-intuitive: physical states and processes are described in a state space terminology . main differences to classical physics: – superposition principle (At any given time a quantum system can be “in more than one state”.) but: Statements in natural language like this might be mis- leading and inadequate (and sometimes wrong). – statistical interpretation (The outcomes of measurements obey probabilistic laws.) . in QM: typically 3 steps: preparation of a state (unitary) time evolution → → measurement . the problem: there is no direct intuitive interpretation of the notion of “state”: states comprise the statistics of measurement outcomes . a pragmatic advice to students: “Shut up and calculate.” An example

1 . spin-2 particle: a potential realization of a 2 level system (a “qubit”) . experimental experience: for every given space direction there are exactly two possible measurement outcomes: . ~, where ~ = h , h = Planck’s constant ±2 2π . state space: 2-dim Hilbert-space: = C2 H possible choice of basis: ~eup,~edown system states after a measurement of the electron spin in z-direction

. conventional notation: z , z (Dirac’s “ket”-vectors, the second |↑ i |↓ i half of a “bra”-(c)-“ket”)

or (in context of quantum computation): 0 = z , 1 = z | i |↑ i | i |↓ i . general state: ψ = α 0 + β 1 , where α 2 + β 2 = 1, α, β C | i | i | i | | | | ∈ ~ . spin operator: S~ = (S ,S ,S ) = ~σ x y z 2 . The components of ~σ = (σx, σy, σz) are the Pauli-matrices (also denoted by (X,Y,Z)):

0 1 0 i 1 0 σx = σy = − σz =  1 0   i 0   0 1  − . spin operators in terms of the basis ( 0 , 1 ): | i | i ~ Sx = ( 0 1 + 1 0 ) 2 | ih | | ih | ~ Sy = ( i 0 1 + i 1 0 ) 2 − | ih | | ih | ~ Sz = ( 0 0 1 1 ) 2 | ih | − | ih | . eigenvalues: ~ and eigenstates: ±2 of S : = 1 ( 0 + 1 ), = 1 ( 0 1 ) x x √2 x √2 |↑ i 1 | i | i |↓ i 1 | i − | i of Sy : y = ( 0 + i 1 ), y = ( 0 i 1 ) |↑ i √2 | i | i |↓ i √2 | i − | i of Sz : z = 0 , z = 1 |↑ i | i |↓ i | i . Suppose the system will be prepared in state z : |↑ i arbitrary space-direction ~n, ~n = 1: | |

z

n ~n = (sin θ cos ϕ)~x + (sin θ sin ϕ)~y + (cos θ)~z y

x

determine solutions of

(~n S~) s = s s : structure of this eq.: ×× × = s × · | i | i ×× × × An elementary calculation yields: ~ s+ = 2 θ θ iϕ s+ = ~n = cos 0 + sin e 1 | i |↑ i 2| i 2 | i ~ s = 2 − − θ θ iϕ s = ~n = sin 0 + cos e 1 | −i |↓ i − 2| i 2 | i some typical situations—overview and summary:

observable values prep. new probability (diagonal representation) state state

~ ~ ~ 2 Sx = x x x x + z x z x = 0.5 2 |↑ ih↑ | − 2 |↓ ih↓ | 2 |↑ i |↑ i |h↑ |↑ i| ~ 2 z x z x = 0.5 − 2 |↑ i |↓ i |h↑ |↓ i| ~ ~ ~ 2 Sy = y y y y + z y z y = 0.5 2 |↑ ih↑ | − 2 |↓ ih↓ | 2 |↑ i |↑ i |h↑ |↑ i| ~ 2 z y z y = 0.5 − 2 |↑ i |↓ i |h↑ |↓ i| ~ ~ ~ 2 Sz = z z z z + z z z z = 1 2 |↑ ih↑ | − 2 |↓ ih↓ | 2 |↑ i |↑ i |h↑ |↑ i| ~ 2 z z z z = 0 − 2 |↑ i |↓ i |h↑ |↓ i|

~ ~ ~ 2 2 θ S~ ~n = ~n ~n ~n ~n + z ~n z ~n = cos · 2 |↑ ih↑ | − 2 |↓ ih↓ | 2 |↑ i |↑ i |h↑ |↑ i| 2 ~ 2 2 θ z ~n z ~n = sin − 2 |↑ i |↓ i |h↑ |↓ i| 2 Postulates of quantum mechanics adopted from Nielsen & Chuang [NC00, p. 80] (and simplified) . Postulate 1: Associated to any isolated physical system is a Hilbert space (the state space); state vector: is a unit vector (a “ray”) . Postulate 2: Evolution of a closed quantum system: described by a unitary transformation

ψ0 = U ψ ( ψ0 = statet=t , ψ = statet=t ) | i | i | i 2 | i 1 . Postulate 2’: Time evolution of the state of a closed quantum system: described by the Schr¨odinger equation,

d ψ   i~ | i = H ψ or ψ(t) = exp (( i/~)Ht) ψ(0) dt | i | i − | i  U  | {z } H: Hermitian operator, the “Hamiltonian” of the closed system. . Postulate 3’: (Projective) measurements: also: von Neumann measurement, measurement of the first kind: – Projective measurement: described by an observable, M, a Her- mitean operator. (eigenvalues are real) This observable can be written as:

M = mPm (= m m m ), where X Pm | ih | m Pm: projector onto the eigenspace of M with eigenvalue m – The possible outcomes of the measurement correspond to the eigenvalues, m. Probability:

2 Pr(getting result m) = ψ Pm ψ (= ψ m m ψ = m ψ ) h | | i h | ih | i |h | i| – state of the quantum system immediately after the measure- ment: P ψ m m ψ iα ψafter measurement = | i (= hm|ψi m = e m ). | i ψ Pm ψ |h | i|| i | i ph | | i Remark: Projective measurements are nowadays considered as a description of the measurement process which is not adequate in all situations. . Postulate 4: State space of a composite physical system (the “and” in quantum physics (Penrose [Pen94])): tensor product of the state space of the component physical systems. formally:

ψ1 ψ2 ψn | i ⊗ | i ⊗ · · · ⊗ | i . Remarks: – The postulates / the interpretation may seem strange and odd. – Isn’t there any simpler theory? – Local realistic theories seem closer to common sense. but: they predict a “Bell correlation” β with 2 β +2 − ≤ ≤ (one variant of Bell’s inequalities) – QM predicts and experiments by Aspect et al. (1982) and Tittel et al. (1998) show that these inequalities are violated:

2√2 2.0

β 0.0

2.0 −2√2 − 0 π/4 π/2 θ – The experiments confirm quantum physics. – Therefore: Local realistic theories must be ruled out. Quantum networks . some definitions (D. Deutsch, as quoted in [EHI00]) – A qubit is a system in which the Boolean states 0 and 1 are represented by a prescribed pair of normalized and mutually orthogonal quantum states labeled as 0 , 1 . {| i | i} – A quantum register is a collection of n qubits. – A quantum logic gate is a device which performs a fixed unitary operation on selected qubits in a fixed period of time. – A quantum network is a device consisting of quantum logic gates whose computational steps are synchronized in time. . example: 1 qubit ( = C2): H

preparation / .. measurement / ψ   state | i .. observable |U{z(2) } states are ψ = α 0 + β 1 , where α 2 + β 2 = 1 | i | i | i | | | | . example: 3 qubits ( = C2 C2 C2): ...... H  ⊗...... ⊗ ψ0  ......  preparation / | i   measurement /  ......  ψ1    ......  state | i   observable  ......  ψ2  ......    | i  ......  | U{z(8) }

– state of the system is ψ = ψ2 ψ1 ψ0 | i | i ⊗ | i ⊗ | i – e.g.: 0 1 1 = 011 = 3 → | i ⊗ | i ⊗ | i | i | i 1 1 1 = 111 = 7 → | i ⊗ | i ⊗ | i | i | i basis: → 000 = 0 001 = 1 010 = 2 011 = 3 | i | i | i | i | i | i | i | i 100 = 4 101 = 5 110 = 6 111 = 7 | i | i | i | i | i | i | i | i any advantage so far, compared with classical systems? NO! → but: look at superpositions: 1 0 + 1 1 1 = 1 011 + 111 = 1 3 + 7 → √2| i | i⊗| i⊗| i √2| i | i √2| i | i a superposition of 8 numbers (which can possibly be pro- → cessed simultaneously) 1 1 1 0 + 1 0 + 1 0 + 1 √2| i | i ⊗ √2| i | i ⊗ √2| i | i 1 = 3 000 + 001 + 010 + 011 √2 | i | i | i | i + 100 + 101 + 110 + 111 | i | i | i | i . state space tends to become large: H – state space of a n qubit system: = C2n H – this is a problem for (classical) simulators and – the key to potential successful applications of quantum com- puters . example: n = 5 qubits:

......  ......  ......    ......     ......     ......     ......     ......     ......     ......     ......     ......  ψ0    ......  | i    ......  ψ1    ......  preparation / | i   measurement /  ......  ψ2    ......  state | i   observable  ......  ψ3  ......    | i  ......    ψ4  ......    | i  ......     ......     ......     ......     ......     ......     ......     ......     ......     ......   ......  | unitary 32 32{z matrix U (32) } × . How can this matrix be broken down into smaller parts? or: How can a complex network be constructed from simpler build- ing blocks? . An answer analogous to classical circuit theory exists: . Theorem: Single qubit and CNOT gates can be used to implement an arbitrary unitary operation on n qubits: Theses gates are universal. . but: “no straightforward method is known to implement these in a fashion which is resistant to errors” [NC00, p. 194] . There exist discrete sets of gates which can be used to perform universal quantum computation using quantum error-correcting codes. . An arbitrary unitary operation can be approximated by one of two possible discrete sets of gates: . one set of gates: – Hadamard-gate – phase-gate – CNOT-gate (controlled-NOT, XOR) – T-gate

Hadamard phase CNOT T-gate acts on C2 C2 C2 C2 C2 ⊗

H S u T e 1 ... 1 1 1 .  . 1 ..  1 . 1       √2 1 1 . i  ... 1  . eiπ/4 −    .. 1 .  1/2 x i π x i π x x 2 ( 1) x + 1 x x e 2 x x y x x y x e 4 x | i → −  − | i | − i | i → | i | i ⊗ | i → | i ⊗ | ⊕ i | i → | i (dots denote vanishing matrix elements) . action details:

2 Hadamard-gate: (H⊗ = H H): ⊗ 00 1( 0 + 1 ) ( 0 + 1 ) = 1( 0 + 1 + 2 + 3 ) | i → 2 | i | i ⊗ | i | i 2 | i | i | i | i 01 1( 0 + 1 ) ( 0 1 ) = 1( 0 1 + 2 3 ) | i → 2 | i | i ⊗ | i − | i 2 | i − | i | i − | i 10 1( 0 1 ) ( 0 + 1 ) = 1( 0 + 1 2 3 ) | i → 2 | i − | i ⊗ | i | i 2 | i | i − | i − | i 11 1( 0 1 ) ( 0 1 ) = 1( 0 1 2 + 3 ) | i → 2 | i − | i ⊗ | i − | i 2 | i − | i − | i | i special example: “mix operation” applied to “ground state”:

3 1 H⊗ 000 = 3 000 + 001 + 010 + + 111 | i √2 | i | i | i ··· | i

phase-gate: T-gate: 0 0 0 0 | i → |π i | i → |π i 1 ei 2 1 1 ei 4 1 | i → | i | i → | i CNOT-gate: 00 00 | i → | i 01 01 | i → | i 10 11 | i → | i 11 10 | i → | i purely classical operation? NO: 1 1 ( 0 + 1 ) 0 CNOT ( 00 + 11 ) (entangled state) √2 | i | i | i −→ √2 | i | i . tool-based construction and simulation of a quantum networks: look at the applet / Java application Quasi (University Karlsruhe) Algorithms and simulation Algorithms presently known algorithms: . Deutsch/Jozsa . Grover’s “database” search algorithm (O(√N) vs O(N)) . Shor’s factoring algorithm (O(poly) vs O(exp), details next 2 slides) . also: variants and generalizations are known an example of quantum parallelism: visualization of Grover’s algorithm (applet, University of Hertfordshire): Quantum Computer - quantum search simulator general scheme of Shor’s algorithm in pseudocode notation: INPUT a composite number N OUTPUT a non-trivial factor F of N (* (F = 1) (F = N) *) 6 ∧ 6 BEGIN IF N is even THEN OUTPUT 2 EXIT END ← IF N = qk THEN OUTPUT q EXIT END (* q = prime *) ← REPEAT REPEAT randomly choose a, 2 a N 1, which has not yet been chosen ≤ ≤ − find period p of x ax (mod N) (* “the quantum part” *) 7→ (* solution of ap = 1 (mod N) *) UNTIL p is even F = gcd(N, ap/2 + 1) UNTIL (F = 1) (F = N) 6 ∧ 6 OUTPUT F ← END. time complexity of Shor’s algorithm (b) vs best known classical algo- rithm (a) (arbitrary units)

64 1/3 1/3 2/3 20 (a) exp ( ) N (ln N) 10 9  (b) N 3 (Shor) (a) 1015 time

1010

(b) 105

10 100 200 300 400 500 N = number of bits time complexity of Grover’s algorithm (b) vs (standard) classical algo- rithm = linear search (a) (arbitrary units)

106 (a) N/2 5 10 (b) √N (Grover)

104 (a) time 103

102 (b) 10

1 10 102 103 104 105 106 N = number of items in unsorted database Simulators—an overview . review of quantum computer simulators by J. Wallace [home page] . 37 “simulators” (Jan. 2002) covering a wide range of QM . some features: – implementation languages: Pascal, C++, Java, . . . , Haskell, Mathematica, . . . , Perl, . . . ; also: implementation on a parallel machine – simulation of single algorithms vs generic simulator – visualization of quantum physical processes / algorithms – new language vs library support for implementing algorithms in conventional languages – specific new data structures (entanglement of variables) – different computing models: quantum Turing machine vs quan- tum circuit model Quantum programming languages (QPLs) Design Considerations . talking about and specifying QPLs?? answers for questions (never) to come? . What can (or cannot) be expected? (pros and cons)

– new fundamental insights into the weirdness of quantum theory?? QPLs might serve as a “catalyst” for asking new questions – helpful in finding new algorithms?? cf learning Pascal and re-inventing heap-sort – but: exact notations of algorithms require some sort of pro- gramming language notation one goal could be: formalized description of algorithms by means of a universal language – fresh look at quantum systems (What can physics learn from classical concepts of computer science?) – feasibility of computer science concepts (of classical origin) (What can computer science learn from physics?) – What can be formulated using existing language concepts? example modularization: composing a larger system from its parts: allocated memory is additive – QPL-design isn’t merely numerics of matrix operations

ψ0 = U ψ | i | i main difference: program structure – “operational view” to quantum systems one important aspect of programming languages: handling of a system / machine by non-specialists – didactic aspects . hardware model (programming model): QRAM model (Knill [Kni96], Bettelli et al. [BCS01])

- quantum bytecode  - quantum device device  driver measure

Classical Computer Quantum Processor (Master) (Slave) basic idea [BCS01, p. 15]: What is really needed is a mechanism for generating the whole circuital description before the quan- tum device is even fired up, applying algebraic simplifications once for all. . alternatives for QPL design: – pragmatic vs “theoretical approach” – new language vs conventional language with library extension historical analogy: transputer . Desiderata for a QPL (see paper by S. Bettelli, L. Serafini, T. Calarco on Q language, 2001 [cs.PL.0103009.ps.gz])

. completeness: it must be possible to code every quantum algorithm . classical extension: the (quantum) language must include a high level “classical computing paradigm” . separability: keep classical and quantum programming sep- arated . expressivity: language must provide high level constructs . hardware independence . one way of designing an ADT based “high level” language:

QFT ......

QPL based on basic functions ...

6 6 6 6 6

CNotCreate (α, β, γ, δ) Reset MeasureU QPLs: examples Survey QCL Q language qGCL (Block-)QPL new language × × × standard lang. / library × imperative language × × × functional language × simulator available × × pragmatic approach × × theoretical approach × × formal semantics × × universal language × × × × QCL (Quant. Computation Language) B. Omer¨ Q language S. Bettelli, T. Calarco, L. Serafini qGCL (Quant. Guarded Command Lang.) J.W. Sanders, P. Zuliani QPL (Quant. Programming Language) P. Selinger QCL (B. Omer)¨ General properties The relevant papers on QCL: . Classical Concepts in Quantum Programming, 2002 [Om02¨ ] abs . Quantum Programming in QCL, 2000 [Om00¨ ] (B. Omer’s¨ master thesis in computing science) . A Procedural Formalism for , 1998 [Om98¨ ] (B. Omer’s¨ master thesis in theoretical physics) general comments / features: first actual quantum programming language • (rudimentary) procedural language, classical sublanguage • not on top of a standard classical language • automatic scratch space management • syntactic reversibility of user-defined quantum operations • syntax like C / Pascal • universal language: can implement and simulate all known quan- • tum algorithms no (formal) semantics • non-trivial unitary operations are functions (function call syntax): • QCL is a procedural language, not an OO language QCL as a classical language—an elementary example

while m <= k { // Example of QCL as a classical language l = l - 1; // recursive and non-recursive functions: p = p*l/m; m = m + 1; int binCoeffR(int n, int k) { } // recursive implementation return p; // precondition n, k >= 0 } if (k == 0) or (n == k) { return 1; int n = 12; int k = 3; } print "binCoeffR(", n, ",", k, ") is: ", return binCoeffR(n-1, k-1) binCoeffR(n, k); + binCoeffR(n-1, k); } print "binCoeffNR(", n, ",", k, ") is: ", binCoeffNR(n, k); //------print "The End."; int binCoeffNR(int n, int k) { // non-recursive implementation /* result: // precondition n, k >= 0 : binCoeffR( 12 , 3 ) is: 220 int p = n; int m = 2; int l = n; : binCoeffNR( 12 , 3 ) is: 220 if (k == 0) or (n == k) { : The End. return 1; */ } quantum memory management

/* QCL, p 53 */

// start QCL with 16 qubits qureg a[4]; // allocate a 4-qubit register qureg b[3]; // allocate another 3-qubit register print "a: ", a, " b: ", b; // show actual qubit mappings

/* : a: |...... 3210> b: |...... 210....> */ /* QCL, p. 53 */ qureg a[3]; // allocate 3 qubits procedure test() { qureg b[2]; // local register print a, b; } test(); // local register b gets allocated qureg c[3]; // allocate another 3 qubits print a, c; // qubits from b have been reclaimed

/* : |...... 210> |...... 10...> : |...... 210> |...... 210...> */ // example: initialize a qureg qureg a[6]; qufunct inc(qureg p) { // QCL, 2002, p. 7 int i; for i=#p-1 to 1 step -1 { CNot(p[i], p[0:i-1]); } Not(p[0]); } procedure setto(qureg p, int x) { // initialize p with int val x int i; for i = 0 to x-1 { inc(p); 0 X } } 1 reset; dump a; setto(a, 19); dump a; 2 /* result: 3 : SPECTRUM a: |543210> 1 |000000> 4 : SPECTRUM a: |543210> 1 |010011> 5 */ // example: statistical experiment int m; int count0; int count1; const total = 30000; qureg q[4]; count0 = 0; count1 = 0; { reset; Mix(q); // apply Hadamard operations measure q[0], m; if m == 0 { count0 = count0 + 1; } else { 0 count1 = count1 + 1; H M } } until count0 + count1 >= total; 1 H M print "prob0: ", (count0+0.0)/(count0+count1); 2 H M print "prob1: ", (count1+0.0)/(count0+count1); 3 H M /* result is: : prob0: 0.503367 : prob1: 0.496633 */ testing the expressiveness of the language . . . example: teleportation Alice ψ H M1 | i |

0 Alice H M2 | i | j spatially ...... separated Bob 0 M2 M1 ψ | i σx σz | i preparation j of EPR pair teleportation: QCL program

/* operator entangle(qureg p, qureg q){ Alice: // entangle qubits p and q a[0] ------... Mix(p); a[1] ------... CNot(q, p); } Bob: reset; b[0] ------... x = random(); prepare(x, a[0]); // prepare state psi Nielsen / Chuang, p. 27: teleportation a[0] -> b[0] */ const i = (0,1); int M0; int M1; entangle(a[1], b[0]); qureg a[2]; // Alice’s 2-qubits register qureg b[1]; // Bob’s 1-qubit register !entangle(a[0], a[1]); real x; // random values, 0 <= x < 1.0 measure a[0], M0; procedure prepare(real x, qureg p){ measure a[1], M1; // prepare some example state psi complex u00 = cos(2*pi*x) + i*0; /* Alice to Bob ... complex u01 = -sin(2*pi*x) + i*0; -----+ complex u10 = sin(2*pi*x) + i*0; / ... by classical complex u11 = cos(2*pi*x) + i*0; / communication ... Matrix2x2(u00, u01, u10, u11, p); +-----> continued ... // unitary operation */ } /* result if M1 == 1 { (peeping into the simulator state): Matrix2x2((0,0), (1,0), : prepared state: (1,0), (0,0), b[0]); //sigma_x : SPECTRUM a[0]: |..0> }; 0.370046 |0> + 0.629954 |1> if M0 == 1 { : teleported state: Matrix2x2((1,0), (0,0), : SPECTRUM b[0]: |0..> (0,0), (-1,0), b[0]);//sigma_z 0.370046 |0> + 0.629954 |1> }; */

// net result: a[0] -> b[0] Realization of QCs—present state details in Nielsen / Chuang [NC00, p. 277] long list of schemes including: . optical photon computer [NC00, p. 287] – Qubit representation: e.g. polarization – Unitary evolution: arbitrary transforms can be constructed from phase shifters, beam-splitters, and nonlinear Kerr media – Initial state preparation: create single photon states (e.g. by attenuating light) – Readout: detect single photons (e.g. using a photomultiplier tube) . optical cavity quantum electrodynamics [NC00, p. 297] – Qubit representation: states of an optical cavity – Unitary evolution: arbitrary transforms can be constructed from optical elements . ion traps [NC00, p. 309]

– Qubit representation: nuclear spin state of an atom, and lowest level vibrational modes (phonons) of trapped atoms “phonon bus” – Unitary evolution: by laser pulses, qubits interact via a shared phonon state. – Initial state preparation: cool the atom (by trapping and using optical pumping) into their motional ground state, and hyper- fine ground state. . nuclear magnetic resonance (NMR) [NC00, p. 324] – Qubit representation: spin of an atomic nucleus. – Unitary evolution: transforms are constructed from magnetic field pulses applied to spins in a strong magnetic field. Couplings between spins are provided by chemical bonds be- tween neighboring atoms. – Initial state preparation: polarize the spins by placing them in a strong magnetic field – Readout: measure voltage signal induced by precessing mag- netic moment. – present state (7 qubits, result (Shor) is 15 = 5 3) [VSB+01]: · molecule containing five 19F and two 13C spin-1/2 nuclei ∗ experiment at room temperature ∗ total number of degrees of freedom (including decoherence ∗ effects): 47 47 real parameters × therefore, simulation of experiment is intractable. ∗ basic idea of CNOT realization by means of NMR • (see N. Gershenfeld, I.L. Chuang: Spektrum der Wissenschaft, August 1998, p. 54)

C H C H

apply pulse

rapid slow precession precession

apply pulse . What about the future of quantum computation? might seem rather frustrating: state-of-the-art experiment (7 qubits) gives 15 = 5 3. · Peter Zoller’s answer (interview, Spektrum der Wissenschaft, January 2002 [Zol02]):

– Within the next 20 years there will be no QC for factorizing large numbers using Shor’s algorithm. – but: QCs with 10 to 20 qubits within the next few years – In the near future two applications can possibly be realized: 1. long-distance quantum communication (within 10 years?): realization of repeaters by use of EPR-pairs (entangled pho- ton pairs which are spatially separated) 2. simulation of quantum systems: example: classical simulation of a system consisting of 300 spin-1/2-particles requires a number of memory cells ex- ceeding the number of atoms in the universe, whereas a 300 qubit QC could do the job: might be of considerable interest for chemical and pharma- ceutical companies – P. Zoller: We should not gaze at the Mount Everest only. There are many lower attractive peaks on our way, i.e. quantum cryptography and simulation of quantum systems by quantum computers. References

[ABH+01] G. Alber, T. Beth, M. Horodecki, P. Horodecki, R. Horodecki, M. Rotteler, H. We- infurter, R. Werner, and A. Zeilinger. : Am Introduction to Basic Theoretical Concepts and Experiments. Springer-Verlag, 2001.

[BCS01] S. Bettelli, T. Calarco, and L. Serafini. Toward an architecture for quantum pro- gramming, 2001. abs.

[EHI00] A. Ekert, P. Hayden, and H. Inamori. Basic concepts in quantum computation. Technical report, NN, January 2000. nn. [Gru99] Jozef Gruska. Quantum Computing. McGraw-Hill, 1999.

[Key02] M. Keyl. Fundamentals of quantum information theory. Phys. Rep., 369(5):431–548, 2002. http://arxiv.org/pdf/quant-ph/0202122. [Kni96] Emanuel H. Knill. Conventions for quantum pseudocode, 1996. www.

[NC00] Michael A. Nielsen and Isaac L Chuang. Quantum Computation and Quantum Information. Cambridge University Press, 2000.

[Om98]¨ B. Omer.¨ A procedural formalism for quantum computing. Master’s thesis, TU Wien, 1998. .

[Om00]¨ B. Omer.¨ Quantum programming in QCL. Master’s thesis, TU Wien, 2000. .

[Om02]¨ B. Omer.¨ Classical concepts in quantum programming, 2002. . [Pen94] . Shadows of the mind. Oxford University Press, 1994.

[Pre98] John Preskill. Physics 229: Advanced mathematical methods of physics—quantum computation and information. Technical report, California Institute of Technology, 1998. http://www.theory.caltech.edu/people/preskill/229/.

[VSB+01] L.M.K. Vandersypen, M. Steffen, G. Breyta, C.S. Yannoni, M.H. Sherwood, and I.L. Chuang. Experimental realization of shor’s quantum factoring algorithm using nuclear magnetic resonance, 2001. http://arxiv.quant-ph/0112176 v1.

[Wer98] R.F. Werner. Quantum information and quantum computing. Technical report, IMaPh, TU BS, 1998.

[Wer02] R.F. Werner. Quantenrechner – die neue Generation von Supercomputern? In Jurgen¨ Audretsch, editor, Verschr¨ankte Welt. Faszination der Quanten. Wiley-VCH, 2002.

[Zol02] Peter Zoller. Wir befinden uns noch in der Pionierphase (Interview). Spektrum der Wissenschaft, 1:86, 2002. quantum computer. —END OF TALK—

and thank you for your interest