Quantencomputing I Quantencomputing I Hecke Schrobsdorff Max Punck Institut für Dynamik und Selbstorganisation Oberseminar Theoretische Informatik SS 2005 Quantencomputing I Inhalt 1 Einführung 2 Qubits 3 Messen 4 Unitäre Transformationen 5 Quantenregister 6 Quantenschaltkreise 7 Das Deutsch-Problem 8 Deutsch-Jozsa Quantencomputing I Einführung Einführung Hauptidee: Miniaturisierung führt zu Quantenphänomenen. Kann man das nutzen? Quantenmechanik eröffnet neue Rechenmöglichkeiten, vereinfacht einige Berechnungen. Aber nicht alles wird einfacher, es gibt Grenzen in der Beschleunigung. Quantencomputing I Qubits Qubits statt Bits Ein Quantumbit, kurz Qubit, hat die Form |φi = α · |0i + β · |1i mit: α, β ∈ C, |α|2 + |β|2 = 1 | · i: Ket-Schreibweise bezeichnet einen Basiszustand Standard-Orthonormalbasis |0i und |1i Superposition als Linearkombination der Basis kontinuierliche Werte auf dem Einheizkreis Wahrscheinlichkeitsinterpretation (→ Messen) der Amplituden α und β Quantencomputing I Qubits Rechnen mit Qubits Präparation eines Anfangszustands Zustandsänderung mittels unitärer Transformationen, die auf den aktuellen Zustand angewendet werden Informationsextraktion per Messung Achtung! Die Messung ist keine unitäre Transformation, sondern höchst nichtlinear. Quantencomputing I Messen Messen Immer nur bezüglich einer Orthonormalbasis Das Ergebnis ist einer der Basiszustände Die Amplitudenquadrate bezeichnen die Wahrscheinlichkeiten des Messens des entsprechenden Zustands. |α|2 = P(M(φ) = |0i) |β|2 = P(M(φ) = |1i) Zusammenbruch der Superposition Der gemessene Zustand wird angenommen. “Man kann nichts beobachten, ohne es zu verändern” Quantencomputing I Unitäre Transformationen Unitäre Transformationen Qubits liegen immer auf dem Einheitskreis ⇒ alle Transformationen sind unitär Definition : Eine Matrix M heißt unitär, T wenn M ∗ := M = M −1 gilt. Dies entspricht den orthogonalen Matrizen, wenn man sich nicht über C sondern über R bewegt. Reversibilität ist Pflicht Basis von 2 Elementen, also 2 × 2-Matrizen Zustände sind als 2er Vektoren darstellbar Quantencomputing I Unitäre Transformationen Die Hadamardtransformation H1 1 H1 := √ 2 1 1 1 −1 = √1 2 √1 2 Damit ist: H1 |0i = H1 |1i = 1 √ (|0i + |1i) 2 1 √ (|0i − |1i) 2 und wieder (H1−1 = H1 ) 1 H1 √ (|0i + |1i) = |0i 2 1 H1 √ (|0i − |1i) = |1i 2 √1 2 − √1 2 ! Quantencomputing I Unitäre Transformationen nochmal Messen Eine wichtige Basis ungleich {|0i, |1i} ist {|+i, |−i} = {H1 |1i, H1 |0i} 1 1 = { √ (|0i + |1i), √ (|0i − |1i)} 2 2 Zum Messen wird transformiert 1 |φi = √ ((α + β)|+i + (α − β)|−i) 2 Die Amplitudenquadrate in dieser Basis geben dann die Wahrscheinlichkeiten an, wenn in dieser Basis gemessen wird. 1 2 |α 1 2 |α + β|2 − β|2 den Zustand |+i . |−i Quantencomputing I Quantenregister Quantenregister Mehrere Qubits verschaltet geben ein Quantenregister |xn i...|x2 i|x1 i =: |xn ... x2 x1 i Im Prinzip äußeres Produkt der einzelnen Hilbärträume Hier reicht: Basiszustände des n-Registers sind Binärzahlen der Länge n Für n = 2 ist R = α0 · |0i|0i + α1 · |0i|1i + α2 · |1i|0i + α3 · |1i|1i = α0 · |00i + α1 · |01i + α2 · |10i + α3 · |11i n −1 n −1 2X 2X |αi |2 = 1 αi · |ii mit n allgemein: R= i=0 wobei i=0 |ii=|b ˆ n bn−1 ...b1 i und (bn bn−1 ...b1 ) = bin(i) Quantencomputing I Quantenregister Transformation von Registern Manipulationen an Registern werden nun durch unitäre 2n × 2n -Matrizen (!) beschrieben. Beispiel: n = 2 XOR : |x, yi 7→ |x, x 1 0 0 0 1 0 ⇒ XOR = ˆ 0 0 0 0 0 1 ⊕ yi 0 0 1 0 Die klassische Form |x, yi 7→ |x ⊕ yi ist nicht reversibel. gesteuertes NOT : Das zweite Bit wird genau dann negiert, wenn das erste Bit x den Wert 1 hat. Quantencomputing I Quantenregister Die allgemeine Hadamardtransformation Sei |xi eim n-Qubit Quantenregister |xn xn−1 ...x1 i. Verallgemeinerte Hadamardtransformation: n M X 1 x·y Hn |xi = √ (−1) |yi, wobei x · y = xi yi 2 y ∈{|0i,|1i}n i=1 Die Summe läuft über alle möglichen Zustände des Registers. |xi taucht nur noch im Vorzeichen auf. Beispiele: gleichgewichtete Superposition aller Zustände: n 2 −1 1 X (−1)0 |yi Hn |0i = Hn |00...0i = √ 2 y =0 H2 |01i = 21 (|00i − |01i + |10i − |11i) Quantencomputing I Quantenregister Lokalität Jede Transformation eines n-Quantenregisters zerfällt in n Transformationen, die je auf einem Qubit arbeiten. 1 1 1 1 1 1 1 −1 1 −1 H1 H1 H2 = H1 ⊗H1 = √ = 1 −1 −1 2 1 2 H1 −H1 1 −1 −1 1 Das liegt an der Struktur des äußeren Produktes. Dadurch wird die Anzahl der verschiedenen Gatter sehr eingeschränkt. Quantencomputing I Quantenregister Entkopplung der Transformationen Wir hatten: H2 |01i = 21 (|00i − |01i + |10i − |11i) Das lässt sich auch lokal berechnen: H1 aufs erste Qubit |01i −→ = H1 aufs zweite Qubit −→ = 1 √ (|0i + |1i)|1i 2 1 1 √ |01i + √ |11i 2 2 1 1 1 1 √ |0i √ (|0i − |1i) + √ |1i √ (|0i − |1i) 2 2 2 2 1 (|00i − |01i + |10i − |11i) 2 Quantencomputing I Quantenschaltkreise Quantenschaltkreise Schaltkreise liefern eine gute Übersicht von Quantenalgorithmen Sie definieren die Komplexität eines Quantenalgorithmus über die Anzahl der Einqubit-Gatter. |xi |yi XOR XOR XOR |x ⊕ yi |xi Hier passieren folgende Zustandsübergänge: |x, yi → |x, x ⊕ yi tausch → |x ⊕ y, xi → |x ⊕ y, x ⊕ x ⊕ yi = |x ⊕ y, yi → |x ⊕ y, x ⊕ y ⊕ yi = |x ⊕ y, xi Quantencomputing I Quantenschaltkreise Zufall |0i H1 |0i H1 |0i H1 |0i H1 Messung Ein Quantencomputer kann echte Zufallszahlen generieren. Durch Messen einer gleichgewichteten Superposition Registerinhalt nach dem ersten Schritt: n −1 2P Hn √1 |0..0i −→ |ii n 2 i=0 Messen ergibt: |ii mit Wahrscheinlichkeit P = √1 2n Quantencomputing I Das Deutsch-Problem Das Deutsch-Problem Problemstellung Gegeben sei eine Blackbox, die eine Funktion f : {0, 1} 7→ {0, 1} berechnet. Davon gibt es vier verschiedene. Ziel des Spiels ist es nun, zu entscheiden, ob f konstant (f (0) = f (1)) oder f balanciert (f (0) 6= f (1)) ist. Orakelabfragen sind erlaubt Ein klassischer Computer muss zwei solcher Abfragen tätigen Quantencomputer müssen nur einmal schauen. Quantencomputing I Das Deutsch-Problem Das Deutsch-Problem Die Idee Erzeuge eine gleichgewichtete Superposition der beiden Basiszustände Wende f darauf an. Messe bezüglich der Basis, deren reine Zustände die beiden Ergebnisse der Rechnung sind. Quantencomputing I Das Deutsch-Problem Das Deutsch-Problem Eine Transformation für f eine unitäre Form des Funktionsaufrufes ist Uf : |x, yi 7→ |x, y ⊕ f (x)i f ist an sich nicht reversibel Uf schon. Es ist Uf−1 = Uf . Quantencomputing I Das Deutsch-Problem Das Deutsch-Problem Algorithmus 1 2 3 4 R = |x, yi ← |01i R ← H2 R R ← Uf R Messe das erste Bit |xi bezüglich der Basis 1 1 {|+i, |−i} = { √ (|0i + |1i), √ (|0i − |1i)} 2 2 Sage “konstant“ falls das Ergebnis |−i ist, sonst “balanciert“. |0i H |1i H H M f H Quantencomputing I Das Deutsch-Problem Das Deutsch-Problem Analyse H 2 |01i −→ U f −→ 1 2 1 1 1 1 |00i − |01i + |10i − |11i 2 2 2 2 (|0i · (|0 ⊕ f (0)i − |1 ⊕ f (0)i) + |1i · (|0 ⊕ f (1)i − |1 ⊕ f (1)i)) = 1 2|0,f (0)i− 1 |0,1+f (0)i+ 1 |1,f (0)i− 1 |1,1+f (1)i 2 2 2 = 1 2 |0i·(−1)f (0) (|0i−|1i)+|1i·(−1)f (1) (|0i−|1i) ( ) = 1 2 (−1)f (0) |0i+(−1)f (1) |1i (|0i−|1i) ( ) 1 2 (|0i + |1i) · (|0i − |1i) fallsf (0) = f (1) oder − 21 (|0i + |1i) · (|0i − |1i) 1 (|0i − |1i) · (|0i − |1i) = 2 1 oder − · (|0i − |1i) (|0i − |1i) fallsf (0) 6= f (1) |2 {z } | {z } |y i |xi Quantencomputing I Das Deutsch-Problem Das Deutsch-Problem Alternativer Algorithmus 1 2 3 4 5 R = |x, yi ← |01i R ← H2 R R ← Uf R |xi ← H1 |xi Messe das erste Bit |xi bezüglich der Basis {|0i, |1i} Sage “konstant“ falls das Ergebnis |1i ist, sonst “balanciert“. |0i H |1i H M f Quantencomputing I Das Deutsch-Problem Das Deutsch-Problem Analyse Nach GS3 haben wir den folgenden Zustand: 1 1 √ (−1)f (0) |0i − (−1)f (1) |1i · √ (|0i − |1i) 2 2 H1 auf |xi −→ (−1)f (0) √12 (|0i + |1i) + (−1)f (1) √12 (|0i − |1i) · √1 2 =1 √2 (−1)f (0) +(−1)f (1) |0i+ (−1)f (0) +(−1)f (1) |1i · √1 (|0i−|1i) (( ) ( ) ) 2 1 √ ±|1i · 2 (|0i − |1i) fallsf (0) = f (1) 1 ±|0i · √ (|0i − |1i) fallsf (0) 6= f (1) = {z } | 2 {z } |xi | |y i √1 (|0i 2 − |1i) Quantencomputing I Deutsch-Jozsa Deutsch-Jozsa Problem Gegeben sei wieder eine Blackbox, die eine Funktion f : {0, 1}n 7→ {0, 1} berechnet. Wir wissen, dass f entweder konstant balanciert f (i) = f (j)∀i, j ∈ {0, 1}n oder ist. Im letzteren Fall werden gleich viele Eingaben auf 0 wie auf 1 abgebildet. Dann ist also |f −1 (0)| = |f −1 (1)| = 2n−1 . Ein klassischer Computer muss im schlechtesten Fall 2n−1 + 1 solcher Abfragen tätigen Quantencomputer müssen nur einmal schauen. Quantencomputing I Deutsch-Jozsa Deutsch-Jozsa Algorithmus 1 2 3 4 5 R = |xn−1 . . . x0 i|yi ← |0 . . . 0i|1i R ← Hn+1 R R ← Uf R |xi|yi ← (Hn |xi)|yi Messe |xi. Sage “konstant” falls das Ergebnis |0 . . . 0i ist, sonst “balanciert”. |0i H H M |0i H |1i H H f Quantencomputing I Deutsch-Jozsa Deutsch-Jozsa Analyse hn+1 |0 . . . 0i|1i ← ! 2n −1 1 1 X √ |xi · √ (|0i − |1i) = |φ2 i n 2 x=0 2 1 1 Uf |xi √ (|0i − |1i) −→ |xi √ (|f (x)i − |1 ⊕ f (x)i) 2 2 1 f (x) = (−1) · |xi · √ (|0i − |1i) 2 ! n −1 2X 1 1 Uf √ (−1)f (x) |xi · √ (|0i − |1i) |φ2 i −→ n 2 x=0 2 ! n n 2 −1 2 −1 1 X X 1 Hn −→ (−1)f (x) (−1)x·z |zi · √ (|0i − |1i) = |φ4 i 2n 2 z=0 x=0 Quantencomputing I Deutsch-Jozsa Deutsch-Jozsa Analyse M(|xn−1 . . . x0 i) = |φ′4 i |zi = 1 2n n −1 2P x=0 (−1)f (x) (−1)x·z |zi , für festes Fall: konstant Für z = 0 gilt x · z = 0: n |φ′4 i 2 −1 1 X = n ±|0i = ±|0i. 2 x=0 Da |φ′4 i ansonsten symmetrisch ist verschwindet die Amplitude von jedem |zi mit z 6= 0. Fall: balanciert Für z = 0 ist |φ′4 i = 1 2n n −1 2P x=0 (−1)f (x) |0 . . . 0i. Für die eine Hälfte der x ist f (x) = 0, für die andere ist f (x) = 1. Also ist die Amplitude von |0i gleich 0. Quantencomputing I Zusammenfassung Zusammenfassung Die Quantenmechanik bietet neue Möglichkeiten für Algorithmen. Es ist gewöhnungsbedürftig, aber nicht schwer. Manche Verfahren sind überraschend Quantencomputing I Zusammenfassung |cati = √1 |deadi 2 + √1 |alivei 2