Quantenalgorithmen
Quantenalgorithmen
Inhaltsverzeichnis
1 Einleitung 2
4 Beispiel 11
Frank-Michael Krupp [Link] 2
1 Einleitung
Der Physik-Nobelpreisträger Richard Feynman entwickelte 1982 als
einer der ersten die Idee vom Computer, der mit Quanteneffekten
Informationen verarbeitet. Ein klassisches Teilchen kann sich nur in
einem bestimmten Zustand (0 oder 1) befinden. In der Quanten-
physik kann aber ein Teilchen in einem Zwischenzustand zwischen
mehreren Zuständen sein, der so genannten Superposition. Mit ei-
nem 8 Quantenbit(Qubit)-Register kann der Rechner in 28 Basis-
zuständen sein. Jede unitäre1 Operation wirkt sich auf alle Basis-
zustände gleichzeitig aus. Somit entsteht ein massiver Parallelrech-
ner. Die Messung dieser Superposition führt jedoch dazu, dass die
Teilchen wieder einen eindeutigen Zustand annehmen (Dekohärenz),
28 − 1 Zustände gehen unwiederbringlich verloren. Welcher Zustand
weiterbesteht, kann man mit dem Manipulieren der Wahrschein-
lichkeitsamplitude beeinflussen. Nach und nach entstanden spezielle
Algorithmen, die diese Besonderheiten ausnutzen konnten, und des-
halb statt exponentiellem nur noch polynomialen Aufwand benöti-
gen.
Der Durchbruch gelang Peter Shor 1994 mit einem Faktorisierungs-
algorithmus der statt exponentiellem Aufwand2 nur noch linearen
Aufwand braucht.[SH94]
Der Suchalgorithmus von Lov Grover (Bell Laboratories), mit dem
eine nicht strukturierte Datenbank, z. B. Telefonbuch p anhand be-
kannter Telefonnummer, bestehend aus N Elementen in N/4 Schrit-
ten und nicht wie bisher klassisch in N/2 Schritten durchsucht wer-
den kann, war der erste bedeutende Algorithmus mit dem man be-
weisen konnte, dass Quantenalgorithmen den klassischen Algorith-
men überlegen sind. Mit dem hier vorgestellten Algorithmus, von
Grover 1997 entwickelt, gelingt die Suche in O(1), also konstant vie-
len Anfragen. Er ist eine Abwandlung von Grovers ursprünglichen
Suchalgorithmus, deshalb gehe ich im folgenden Abschnitt kurz auf
diesen ein. Zu einem ähnlichen Resultat kamen Terhal und Smolin
[TS98] mit einem anderen Ansatz.
1A ∗ A∗ = I; alle unitären Transformationen erfüllen die Anforderung, reversibel zu sein
2 Aufwand des bisher schnellsten klassischen Algorithmus (Number field sieve):
1 2
O(e(log n) 3 (log log n) 3 )
Frank-Michael Krupp [Link] 3
2.3 Codierungstrick
Die Idee mit den Teilsystemen und der Mehrheitsentscheidung führ-
te Grover auf eine weitere Verbesserungsmöglichkeit. Durch eine ge-
schickte Codierung der Anfragen läßt sich ein Anfragevektor bilden.
3 Nicht häufiger, da dann an dem gewünschten Zustand vorbeigedreht wird. Die Wahr-
!"#$
.
8
0.
27 !"#$
612.
5 %&'( )**+
4. 3
102/
- . !"#$
,
Dieser wird an die Datenbank geleitet und mit der Antwort und ei-
ner entsprechend trickreichen Codierung ist es möglich, wieder auf
die einzelnen Teilsysteme zurückzuschließen (vgl. Abb. 2).
Vc d
XVYb DeC<IB=J
OT YV
a
V
T QQW
[_` F >C; G =H I:J< 9:;<=>: =? K >C; G =;L DI;
W^] @AB=?;CD =E
\
[VZ
TXWY
UT V
SM R
Q
OM
NP
3.2 Initialisierung
Erzeuge eine große Anzahl η identischer Teilsysteme (η = N (log N )2 ,
Erklärung in 3.7). Jedes System besteht aus ν Qubits, es können also
2ν = N verschiedene Zustände eingenommen werden. N ist zugleich
die Anzahl der Elemente in der zu durchsuchenden Datenbank, es
besteht eine Bijektion zwischen Zuständen und Datenbankelemen-
ten. Der Gesamtzustand ist wie folgt:
|ψ1 i = (|0i |0 i . . . |0i) ⊗ (|0i |0i . . . |0i) ⊗ |0i
| {z } | {z } |{z}
νη N 1
Zustand1 η Teilsysteme Anfrage
Initialisiere die Teilsysteme in einer Superposition. Dazu wird übli-
cherweise die Hadamard-(Fourier2)-Transformation
verwendet. Dies
1 1
ist die unitäre Matrix H = √12 . Das Quantenbit (|0i,
1 −1
das anfangs mit der Wahrscheinlichkeit p = 1 bei einer späteren Mes-
sung den Wert 0 liefert, wird nun in den Zwischenzustand √12 (|0i + |1i )
gesetzt ( √12 sorgt für die Normierung). Bei einer Messung wird die-
ser Zustand zerstört und man erhält mit p = 21 den Wert 0 und mit
p = 12 den Wert 1. Diese Hadamard-Transformation wird auf die
ersten ην Bits und das letzte Bit angewendet und man erhält den
Zustand
(H ⊗ H ⊗ . . . ⊗ H ) ⊗ I ⊗ I ⊗ . . . ⊗ I ⊗ H |ψ1 i
| {z } | {z }
νη N
= (|0i − |1i)
N
P
|ψ3 i = |x1 i |x2 i . . . |xη i ⊗ (|χ1 i ⊗ . . . ⊗ |χN i) ⊗ (|0i − |1i)
x=1
P (χ1 , . . . , χN ) → χx0
| {z } |{z}
Nbit 1bit
Form (−1)f (x) verteilen läßt. Diese Umformung ist nicht offensicht-
lich, der genaue mathematische Beweis ist in [GB97] zu finden, hier
ein vereinfachender Erklärungsversuch: Ist die Anzahl der Teilsys-
teme, die sich auf das x0 beziehen, gerade, so ergibt die Datenban-
kanfrage die 0 und damit (−1)0 = 1. Es kann eine gerade Anzahl
von 1 auf die Teilsysteme in der Form (−1)f (x) vor die betreffenden
Systeme verteilt werden ((−1)2n = 1). Ist die Anzahl dagegen unge-
rade, dann ist (−1)1 = −1 = (−1)2n+1 = (−1)f (x) .
Damit ist das Quantensystem im Zustand
N
⊗η
P
|ψ4 i = f (x)
(−1) |xi ⊗ (|0i)⊗N ⊗ (|0i − |1i)
x=1
3.5 Inversion-About-Average
Nun kommt der anfangs erwähnte Inversion-About-Average-Operator
zum Zug, der wie folgt definiert ist
−1 + N2 2
N
2
N
... N
2
2
N
−1 + N2 2
N
... N
2
2 2 2 2
D= N N
−1 + N
. . . N
.
.. .
.. .
.. . .. .
..
2 2 2 2
N N N
. . . −1 + N
Der Operator D ist unitär, DD∗ = I folgt aus einfachem Nachrech-
nen. Wende D auf jedes Teilsystem an:
D⊗η = D
| ⊗D⊗
{z. . . ⊗ D}
η−mal
Für großes N ist 4/N nicht relevant und die Wahrscheinlichkeit des
Zustandes x0 steigt auf das Neunfache der übrigen.
Diese Transformation kann auch anhand der Abbildungen 3 - 5 ver-
anschaulicht werden.
Sei E = √1N . Der Zustand x0 wird invertiert und hat den Wert
−1E. Die Inversion-About-Average spiegelt den Zustand an der
durch den Durchschnitt der Amplituden gegebenen Achse. Da der
Zustand um −2E unter dieser Achse lag, ist er danach auf 1E −
(−2E) = 3E gestiegen.
Zwischenbemerkungen:
1. Im Standard-Grover-Suchalgorithmus
√ werden diese Operatio-
nen nun O( N )-mal wiederholt, dann ist die Wahrscheinlich-
keit hinreichend groß.
2. Diese Inversion-About-Average und somit der gesamte Algo-
rithmus funktioniert auch mit mehreren ausgewählten Zuständen,
allerdings darf die Anzahl nicht N/4 übersteigen, da dann nicht
mehr zwischen ausgewählten Zuständen und nicht ausgewähl-
ten differenziert werden kann.
3.6 Auswertung
Im letzten Schritt wird jedes der η Teilsysteme gemessen. Dadurch
geht durch Dekohärenz die Superposition verloren und man erhält in
Frank-Michael Krupp [Link] 10
Durchschnitt
Wahrscheinlichkeitsamplituden
Durchschnitt
X0
Wahrscheinlichkeitsamplituden
Durchschnitt
X0
Wahrscheinlichkeitsamplituden
jedem Teilsystem eine Zahl zwischen 1 und N , die auf das entspre-
chende Datenbankelement verweist. Wie gesehen ist die Wahrschein-
lichkeit, dass bei den Systemen der richtige Zustand nicht zerstört
wird, etwas höher als bei den übrigen. Intuitiv ist klar, dass das
am häufigsten ausgewählte Element das gesuchte Element darstellt.
Eine geschlossene Formel läßt sich nur schwer angeben. Gesucht ist
die Wahrscheinlichkeit für das Ereignis x0 wird K-mal gemessen“
”
unter der Bedingung, dass alle anderen Zustände weniger als K-mal
gemessen werden (Binomialverteilung mit Parametern Anzahl η und
Erfolgswahrscheinlichkeit N9 ).
Für die Anzahl der Teilsysteme gilt: Es werden η = N log (N ) Teil-
systeme benötigt.
Erklärung:
Die
Wahrscheinlichkeit,
den gewünschten Zustand zu erhalten, ist
2
√3 = 9
, die Wahrscheinlichkeit für einen falschen Zustand ist
N N
1
ungefähr . Hat
man nun ν Teilsysteme folgt aus dem Gesetz der
N
großen Zahlen, dass die Wahrscheinlichkeiten gegeben sind durch
9η 1η
N
|{z} N
|{z}
1Zustand (N - 1) Zustände
Mit ν = KN erhält man 9K und 1K. Bei großem K sieht man, dass
die Wahrscheinlichkeit den richtigen Zustand zu messen größer ist,
als einen der N − 1 falschen.
Nach dem zentralen Grenzwerttheorem reicht die Wahl K = (log(N ))2
aus. Es sind somit N (log(N ))2 Teilsysteme zu verwenden. Eine ge-
nauere Herleitung findet sich in [Gro97].
3.7 Analyse
Der Algorithmus sieht sehr viel versprechend aus, die Einsparung der
Anfragen geht aber einher mit einem großen Anstieg an Vorbereitungs-
und Auswertungsschritten. Das Finden durch eine Anfrage hat also,
solange es nicht gelingt, den Extra-Aufwand zu vermindern, nur
theoretischen Wert, es sei denn, die Anfragen an eine Datenbank
kosten viel Zeit.
4 Beispiel
Zum Schluß ein Beispiel, das den Ablauf des Algorithmus anhand
einer Datenbank mit 23 = 8 Elementen A, B, C, D, E, F, G, H
verdeutlichen soll.
Frank-Michael Krupp [Link] 12
Es sei F das gesuchte Element. Es ist schon bei der geringen Größe
der Datenbank der große Vorbereitungsaufwand des Systems zu er-
kennen. Es sind nämlich 8(log 8)2 = 72 Teilsysteme zu initialisie-
ren. Jedes besteht aus 3 Quantenbits und wird mit der Hadamard-
Transformation in eine Superposition gebracht. Die Wahrscheinlich-
keitsamplitude ist dann:
1 1 1 1 1 1 1 1
√ ,√ ,√ ,√ ,√ ,√ ,√ ,√
8 8 8 8 8 8 8 8
Betrachte die Teilsysteme in der Basisdarstellung und stelle fest,
worauf sich die einzelnen Teilsysteme beziehen.
Man erhält beispielsweise für die 72 Teilsysteme die Verteilung
A B C D E F G H
9 5 7 16 13 12 3 7
und damit den Indikatorvektor
χA χB χC χD χE χF χG χH
1 1 1 0 1 0 1 1
Diese 8-Bit-Anfrage wird an das Orakel geleitet. Dieses sieht die 0 an
der gesuchten Stelle, und gibt gemäß der Funktion P (x) die 0 zurück.
(Wäre die Wertigkeit von F gleich 13, so wäre die Parität 1 und
das Orakel würde 1 zurückgeben). Gemäß der in 3.5 angegebenen
Umformung wird diese (−1)0 nach vorne in die Teilsysteme gezogen
und die Phase des Zustandes x0 in allen 72 Teilsystemen gedreht.
1 1 1 1 1 1 1 1
√ , √ , √ , √ , √ , −√ , √ , √
8 8 8 8 8 8 8 8
Darauf die Inversion-About-Average-Transformation angewendet er-
gibt:
1 1
3 1 √ √
1 1 1 1 1 1
−4 4 4 4 4 4 4 4 √18 √132
14 − 43 14 1
4
1
4
1
4
1
4
1
4
18
√132
1 1 3 1 1 1 1 1 √
4 4
−4 4 4 4 4 4
8
32
1 1 1 1 1
− 43 14 1 1 1 √ √
4 4 4 4 4 4 8 = 132
1 1 1 1 3 1 1 1 · √1
4 4 4 4
−4 4 4 4 8 √
32
1 1 1 1 1 3
−4 4 1 1 1 √5
4 − √8
4
4 4 4 4
1 1 1 1 1 1 3
−4 4 1
√1 √132
4 4 4 4 4 4 8 32
1 1 1 1 1 1 1
4 4 4 4 4 4 4
− 34 √1 √1
8 32
Wahrscheinlichkeit
0,99
0,98
0,97
0,96
0,95
0,94
0,93
0,92
0,91
0,9
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
Teilsysteme
Abbildung 6: Wahrscheinlichkeitsverteilung