thesis2

Werbung
Quantum Computing:
Anwendungen in Kryptographie
und der Darstellung Boolescher
Funktionen
Diplomarbeit
vorgelegt von
Hecke Schrobsdorff
aus
Göttingen
angefertigt im
Institut für Numerische und Angewandte Mathematik
der Georg-August-Universität zu Göttingen
2006
ii
Inhaltsverzeichnis
Vorwort
1. Einleitung
1.1. Quantum Computing . . .
1.2. Kryptographie . . . . . .
1.3. Komplexitätstheorie . . .
1.4. Der Beitrag dieser Arbeit
I.
v
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Allgemeine Einführung: Quantum Computing
2. Einführung Quantenmechanik
2.1. Grundlegende Postulate . . . . . .
2.2. Quantenmechanische Zustände . .
2.3. Hilbertraum . . . . . . . . . . . . .
2.4. Dualer Hilbertraum . . . . . . . .
2.5. Operatoren . . . . . . . . . . . . .
2.6. Messen eines quantenmechanischen
2.7. Produkthilberträume . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
Systems
. . . . .
3. Quantum Computing
3.1. Quantenbits . . . . . . . . . . . . . . .
3.2. Messen beim Quantum Computing . .
3.3. Unitäre Transformationen von Qubits
3.4. Quantenregister . . . . . . . . . . . . .
3.5. Quantenschaltkreise . . . . . . . . . .
3.6. Verschränkung . . . . . . . . . . . . .
3.7. No Cloning Theorem . . . . . . . . . .
.
.
.
.
.
.
.
4. Wichtige Quantenalgorithmen
4.1. Deutsch-Problem . . . . . . . . . . . . .
4.2. Deutsch-Jozsa Algorithmus . . . . . . .
4.3. Grovers unstrukturierte Datenbanksuche
4.4. Shors Faktorisierung . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
3
4
5
7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
II. Brechen klassischer Verschlüsselung mit Quantenalgorithmen
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
12
13
14
14
14
15
16
.
.
.
.
.
.
.
19
20
21
21
22
25
26
27
.
.
.
.
29
29
31
33
38
43
iii
Inhaltsverzeichnis
5. Fiat-Shamir Code
5.1. Zero-Knowledge Beweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2. Fiat-Shamir Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3. Sicherheit des Fiat-Shamir Verfahrens . . . . . . . . . . . . . . . . . . . . .
47
47
49
50
6. Direkter Ansatz
6.1. Algorithmus für das Wurzelziehen in Restklassenringen . . . . . . . . . . . .
6.2. Analyse des Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
52
52
7. Algebraischer Ansatz
7.1. Allgemeine Fouriertransformation . . . . . . . . . . . . . . . . . . . . . . . .
7.2. Suche nach der versteckten Untergruppe . . . . . . . . . . . . . . . . . . . .
7.3. Zusammenhang mit dem Fiat-Shamir Protokoll . . . . . . . . . . . . . . . .
55
55
56
57
III. Synthese von Quantum Ordered Binary Decision Diagrams aus Quantenschaltkreisen
59
8. Klassische OBDDs
8.1. Branchingprogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2. Ordered Binary Decision Diagrams . . . . . . . . . . . . . . . . . . . . . . .
8.3. Synthese und Reduktion von OBDDs . . . . . . . . . . . . . . . . . . . . . .
63
63
64
66
9. Quanten OBDDs
9.1. Quantenbranchingprogramme . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2. Quantum Ordered Binary Decision Diagrams . . . . . . . . . . . . . . . . .
69
69
72
10. Synthese und Reduktion von QOBDDs
10.1. Synthese von QOBDDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2. Reduktion eines QOBDDs . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3. Reduktion und Synthese einfacher Quantenschaltkreise . . . . . . . . . . . .
77
77
79
82
11. Diskussion und Ausblick
11.1. Brechen klassischer Verschlüsselung mit Quantenalgorithmen . . . . . . . .
11.2. Quantum Ordered Binary Decision Diagrams . . . . . . . . . . . . . . . . .
11.3. Reflektion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
91
92
94
Anhang
95
Index
97
Literaturverzeichnis
102
Danksagung
103
iv
Vorwort
Die Vorgeschichte zu dieser Arbeit ist lang. Den Begriff Quantencomputer hörte ich erstmals von Boris Marx aus der von mir betreuten DIFF-I Übungsgruppe. Damals fand ich
die Sache nicht besonders interessant. Hätte nicht Matthias Homeister deutlich später eine
Vorlesung über das Thema gehalten, und hätte ich nicht mit ein paar Freunden verabredet,
sie, hauptsächlich wegen des Dozenten, zu hören, so wäre ich dem Quantum Computing gegenüber noch immer recht misstrauisch eingestellt. Allerdings hatte ich in der Zwischenzeit
in meinem Physikstudium eine gute Einführung in die Quantenmechanik erhalten, so dass
ich recht schnell die Schönheit dieses Konzepts erkennen konnte. Am Ende der Vorlesung
eröffnete uns Matthias Homeister, dass er gedenke ein einführendes Buch zum Quantum
Computing zu schreiben. Da ich schon Feuer gefangen hatte, bot ich mich an, es Korrektur
zu lesen. Im Laufe der Zeit kam dann noch dazu, dass ich die Skizzen für das Buch erstellte.
Durch diese intensive Einarbeitung in das Thema keimte in mir die Hoffnung, doch noch
mein schon länger scheinfreies Mathematikstudium zu beenden. Dank der Unterstützung
von Herrn Prof. Waack und Matthias scheint sie sich jetzt zu erfüllen.
Diese Arbeit versucht die Möglichkeiten zu beleuchten, die das recht neue Themenfeld
des Quantum Computing im Bezug auf klassische Probleme beziehungsweise bekannte klassische Datenstrukturen eröffnet. Der Blickwinkel der Darstellung ist der eines theoretischen
Informatikers. Insofern müssen die Grundlagen des Quantum Computing, die sich in der
Quantenmechanik finden, zumindest soweit sie benötigt werden detailliert eingeführt werden. Deswegen baut sich die Arbeit aus drei Teilen zusammen. Teil I beinhaltet die
Einführung in das Quantum Computing, angefangen bei einem kurzen Überblick über die
Quantenmechanik. Teil II beschäftigt sich mit der ersten Anwendung, dem Versuch ein
kryptographisches Protokoll mit einem Quantencomputer zu brechen. Unabhängig davon
steht Teil III, der die Frage bespricht, wie sich eine klassische Datenstruktur auf einen
Quantencomputer übertragen lässt und welche komplexitätstheoretischen Konsequenzen
dies hat. Eingerahmt werden die drei Teile von einer überblickhaften Einleitung und einem
Kapitel, welches die behandelten Themen noch einmal diskutiert. Im Anhang befinden sich
ein Index, die Literaturliste und die Danksagung.
v
Inhaltsverzeichnis
vi
1. Einleitung
Diejenigen, die nicht schockiert sind, wenn sie zum ersten mal mit Quantenmechanik zu tun haben, haben sie nicht verstanden.
Niels Bohr
Wenn man aber diesen ersten Schock überwunden hat, so eröffnen sich zum einen eine
ganz neue Weltsicht, und zum anderen eine wunderschöne Theorie. So wie die philosophischen Konsequenzen der Quantenmechanik kontrovers diskutiert wurden, hat sich aber
auch ihre Schönheit bis heute nicht nur gehalten, sondern ist durch viele Experimente
und Anwendungen immer weiter gereift. Eine dieser Anwendungen der Quantenmechanik
auf völlig neue Bereiche ist das Thema dieser Arbeit. Wie sieht ein Rechnermodell aus,
das sich auf die Grundlagen der Quantenmechanik stützt? Diese Frage wurde Ende des
letzten Jahrhunderts mit fortschreitender Zeit immer intensiver diskutiert, siehe für einen
Überblick [32, 42, 30]. Mittlerweile ist aus dieser anfänglichen Gedankenspielerei eine ausgewachsene Wissenschaft geworden, da sich vielfältige Anwendungen ergeben. Es existieren
sogar schon erste Quantencomputer. Diese sind allerdings noch fern der Praxisreife, da der
Rekord im Augenblick bei acht Bits Rechenbreite liegt [27].
Die Belange der Quantenhardware sollen allerdings in dieser Arbeit gar nicht zur Sprache
kommen. Wir werden uns hier auf der völlig theoretischen Ebene dem Thema allgemein
nähern, um die Anwendung auf zwei konkrete Probleme vorzubereiten, die die Hauptteile
der Arbeit bilden. Diese behandeln zum einen die Möglichkeit, dass Quantencomputer der
Universalschlüssel zu klassischen Kryptographieverfahren sein können, und zum anderen
die Frage, ob sich Ergebnisse für Quantenkomplexitätsklassen analog zu den klassischen
entwickeln lassen.
Die wichtigste Grundlage der Arbeit ist die Einführung ins Quantum Computing von
Matthias Homeister [32], deren Erstellung zu begleiten die beste Einarbeitung in das Thema bot. Viele der Skizzen sowie die Notation sind identisch. Es wurde hier aber ein weniger
pädagogischer Ansatz gewählt, sondern versucht, die Probleme systematisch einzuführen,
um die nötigen Grundlagen zügig zur Verfügung zu stellen. Weitere Einführungen zum
Thema Quantum Computing sind die Bücher von Dan und Gabriela Marinescu [42] und
Mika Hirvensalo [30], die allerdings einen wesentlich komplizierteren Einstieg wählen, wobei
ersteres aus der Sicht eines Physikers berichtet und letzteres den Weg über Quanteninformation wählt.
Den eigentlichen Teilen der Arbeit über das Brechen eines kryptographischen Protokolls
und die Übertragung einer klassischen Datenstruktur auf ein Quantensystem geht ein recht
ausführlicher Teil voran, der die nötigen Grundlagen bereitstellt. Anfangs werden kurz die
relevanten Aspekte der Quantenmechanik besprochen, und von dort ausgehend die revolutionäre Idee erläutert, einen Rechner auf diesen Gesetzen zu konstruieren, das Quantum
1
1. Einleitung
Computing. Zur Illustration werden am Ende des ersten Teils noch einige Quantenalgorithmen besprochen, die in den beiden nachfolgenden Teilen wieder aufgegriffen werden.
Die Einleitung vollzieht den Ablauf der Arbeit nach, indem jedem Teil ein Abschnitt
gewidmet ist, der kurz überblickhaft auf die dort behandelten Punkte eingeht. Der nächste
Abschnitt 1.1 bespricht, wie aus einer erfolgreichen, wenn auch unintuitiven, physikalischen
Theorie ein Rechnermodell entwickelt wurde, welches sehr überraschende Möglichkeiten
liefert, neue Algorithmen zu konstruieren, die den klassischen in Teilen deutlich überlegen
sind. Abschnitt 1.2 greift eine dieser Möglichkeiten auf, die bereits für viel Aufsehen über
Quantencomputer gesorgt haben. Quantenalgorithmen sind bei speziellen Aufgaben exponentiell schneller als klassische. Dies kann nun dazu genutzt werden, kryptographische
Anwendungen anzugreifen. In Abschnitt 1.3 wird ein komplett anderer Blickwinkel auf
das Quantum Computing eingenommen, das neue Rechenmodell wird als eigenständiges
Gebiet begriffen, und nicht nur als Hilfsmittel um gewisse Engpässe im klassischen Fall zu
umgehen. Als solches soll eine Datenstruktur besprochen werden, die dazu benutzt werden
kann, Platzkomplexität eines Quantenrechners zu untersuchen.
1.1. Quantum Computing
Anfang des 20. Jahrhunderts wurde mit der Entwicklung der Quantenmechanik ein großer
Teil der damals offenen Probleme der Physik gelöst, so zum Beispiel die Schwarzkörperstrahlung. Auch wenn die Konsequenzen, die diese neue Theorie mit sich brachte, so massiv
den Grundsätzen der klassischen Physik widersprachen, dass viele Wissenschaftler sie als
unsinnig ablehnten, gelang ihr doch über vielfältige Bestätigung durch Experimente nach
und nach der Durchbruch zu dem was sie heute ist: Die gültige theoretische Beschreibung
der Welt auf mikroskopischer Ebene. Auch der Zusammenhang mit der klassischen Physik, die sich als Grenzfall erwies, in dem Quantenphänomene keine Rolle mehr spielen, ist
geklärt.
Nichts destotrotz bleibt die Quantenmechanik dem Alltagsverständnis weiterhin fern, was
auch nicht weiter schlimm ist, da sich unsere Wahrnehmung im makroskopischen Bereich
abspielt, so sie denn nicht über aufwendige Messapparaturen verstärkt wird. Allerdings
gibt es immer wieder Berührungspunkte von Alltag und Quantenmechanik, zum Beispiel
wenn man verstehen möchte wie ein Laser funktioniert.
Einen kompletten Abriss der Quantenmechanik zu liefern, kann nicht Ziel dieser Arbeit
sein, dennoch sind die dem Quantum Computing zugrunde liegenden quantenmechanischen
Prinzipien alles andere als offensichtlich, weswegen sie eine kurze Einführung erfahren sollen. Der fundamentalste Begriff der Quantenmechanik ist wohl der des Zustands. Dieser
beschreibt vollständig alle Eigenschaften eines Quantensystems zu einem bestimmten Zeitpunkt. Allerdings sind nicht alle diese Eigenschaften dem Beobachter zugänglich, wie es
in einem klassischen System der Fall wäre. Der Zustand kann lediglich über Messungen
beobachtet werden, die nicht nur Informationen über den Zustand des Systems preisgeben,
sondern diesen auch direkt beeinflussen, da die Messapparatur gegenüber dem Quantensystem nicht mehr vernachlässigt werden kann.
Dazu kommt, dass ein quantenmechanischer Zustand bezüglich einer Eigenschaft nicht
entschieden sein muss, sondern mehrere sich eventuell widersprechende Eigenschaften zu
2
1.2. Kryptographie
bestimmten Anteilen innehaben kann. Erst die Messung zwingt das System sich für einen
bestimmten Wert der Eigenschaft zu entscheiden. Dies passiert stochastisch, bezüglich der
Größe der jeweiligen Anteile. Nach der Messung ist das System dann allerdings wirklich
entschieden. Es hat dann tatsächlich die gemessene Eigenschaft, und keine Anteile mehr,
die dieser widersprechen würden.
Diese sogenannte Wahrscheinlichkeitsinterpretation bringt einige rechnerische Konsequenzen mit sich, die allesamt im Kapitel 2 erläutert werden. So wird die Quantenmechanik in das mathematische Gerüst der Hilberträume gewiesen, das einen Großteil der
rechnerische Schönheit ausmacht, die einem bei der Arbeit mit Quantensystemen immer
begleitet.
Die Entwicklung von Computern steuert zu immer kleineren Bauteilen, so dass hier
früher oder später zwangsweise Quanteneffekte wirksam werden. Welche Auswirkungen
das auf die Arbeitsweise eines Computers haben wird, wurde bereits in den achtziger Jahren des 20. Jahrhunderts als Gedankenexperiment begonnen [19, 15]. Damals hatte sich
die Quantenmechanik bereits ihren festen Platz in der Physik erobert, und die mathematische Klarheit dieser Theorie hatte sich herumgesprochen. Die anfängliche Fragestellung
ist ziemlich schnell gegeben: Wie arbeitet ein Rechner, der sich nicht auf die kleinste Informationseinheit Boolesches Bit, sondern auf ein sogenanntes Quantenbit stützt. Dieses
zeichnet sich dadurch aus, dass es nicht nur die Werte 1 und 0 sicher annehmen und halten
kann, sondern sich in einem quantenmechanischen Zustand befindet, der die Zustände |1i
und |0i als Basis hat, sie aber zu gewissen Anteilen gleichzeitig annehmen kann.
Der Hauptvorteil liegt auf der Hand: Es ist mit einem Quantenrechner möglich, auf
vielen Eingaben simultan zu rechnen. Dies liefert an sich eine erhebliche Beschleunigung
gegenüber klassischen Computern. Aber man erkauft sich die neuen Rechenmöglichkeiten damit, sich den Gesetzen der Quantenmechanik unterordnen zu müssen. So können
zum Beispiel in einem Quantensystem nicht mehr beliebige Rechenoperationen durchgeführt werden, sondern die Änderung eines Quantenzustands kann nur unitär erfolgen.
Es können daher auch nicht einfach so Quantenbits gelöscht werden. Allerdings liefert
die Einschränkung auch Gutes, da reversible Berechnungen keine Energie verbrauchen,
das Problem der starken Hitzeentwicklung klassischer Computer tritt nicht auf. Diese ungewöhnlichen Rechenregeln machen eine sorgfältige Beschäftigung mit Quantenalgorithmen
notwendig. Dies soll in Kapitel 4 erfolgen, nachdem Kapitel 3 die grundlegenden Punkte
des Quantum Computing besprochen hat.
Es werden zwei der bahnbrechenden Quantenalgorithmen besprochen, die die Vorteile
des Quantum Computing eindrucksvoll präsentieren, aber auch Schwierigkeiten werden
aufgezeigt, auf die man bei Design von Quantenalgorithmen stößt. Ebenso werden sie
offenbaren, dass, obwohl das Konzept des Quantum Computing auf den ersten Blick wie ein
Wundermittel zur Berechnung klassisch schwieriger Problem erscheint, der Beschleunigung
auch harte Grenzen gesetzt sind.
1.2. Kryptographie
Mit dem in Abschnitt 4.4 besprochenen Quantenalgorithmus von Shor zur effizienten
Faktorisierung wurde die Befürchtung wach, dass Quantencomputer grundsätzlich in der
3
1. Einleitung
Lage sein könnten, aktuelle Kryptographieverfahren zu brechen. So wie sich die RSAKryptographie darauf stützt, dass das Faktorisieren nicht in Polynomialzeit zu erreichen
ist, basieren viele kryptographische Verfahren auf der Annahme, dass ein bestimmtes,
meist zahlentheoretisches Problem nicht schnell zu lösen ist. Dass sich nicht jedes Problem zwangsläufig mit Hilfe eines Quantencomputers lösen lassen kann, liefert die Einschränkung der Beschleunigung in Abschnitt 4.3, die im Zusammenhang mit Grovers Algorithmus behandelt wird. Trotzdem hält sich die Hoffnung, dass mit einem ausreichend
pfiffigen Quantenalgorithmus doch ein Großteil der klassisch schwierigen Probleme zu lösen
sei.
Auf dieser Hoffnung basiert Teil II, welcher ein spezielles kryptographisches Protokoll
zu brechen versucht. Bei dem untersuchten Fiat-Shamir Protokoll handelt es sich um ein
Zero-Knowledge Protokoll, also ein Kommunikationsprotokoll, welches es erlaubt, eine andere Partei zu überzeugen in Besitz eines Geheimnisses zu sein, ohne dasselbe preisgeben
zu müssen. Dieses konkrete Verfahren wird zum Beispiel für Autorisierungsvorgänge verwendet.
Die Grundlage der Sicherheit des Fiat-Shamir Protokolls liegt in der Annahme, dass es
nicht möglich ist, effizient Quadratwurzeln in einem Restklassenring zu berechnen. Konkret
besitzt die beweisende Partei eine Zahl, die in einem öffentlich bekannten Restklassenring
Z∗n quadriert wird, wobei n = p · q das Produkt zweier großer Primzahlen ist. Bei der
Quadratur entsteht nun eventuell ein Überlauf, so dass die Operation Wurzelziehen nicht
mehr eindeutig ist, sondern in unserem speziellen Fall vier Lösungen hat. Außerdem kann
man die Wurzel nicht mehr mit Näherungsverfahren eingrenzen, da wegen der Endlichkeit
des Ringes prinzipiell jedes Element infrage kommt.
Ein naiver Ansatz zur Brechung des Fiat-Shamir Protokolls wird nun einen Quantenzustand erzeugen, der alle Zahlen aus Z∗n zusammen mit ihren jeweiligen Quadraten in
verschränkter Form enthält. Nun gilt es nur noch die gesuchte Quadratzahl zusammen
mit ihren Wurzeln durch geschicktes Messen herauszufiltern. Bei der näheren Betrachtung
dieser Vorgehensweise wird allerdings klar, dass genau darin der Haken liegt. Es ist nicht
schwer, ein Quantensystem zu erzeugen, dass die gesuchte Information enthält. Diese nun
aus dem System herauszubekommen, ist die wirkliche Kunst, einen guten Quantenalgorithmus zu entwickeln.
Ein etwas bedachterer Ansatz versucht, die bekannten erfolgreichen Quantenalgorithmen
auf Ähnlichkeiten zu unserem Problem abzusuchen, um diese dann soweit abzuwandeln,
dass sie Quadratwurzeln berechnen. Dies soll in Kapitel 7 angedacht werden. Leider wird
dabei recht schnell deutlich, wie tief man in die Darstellungstheorie eintauchen muss, um
den wirklichen Kern der populären Quantenalgorithmen zu verstehen. Insofern muss sich
diese Arbeit darauf beschränken, die Parallelen zu benennen, die zwischen den bekannten
Algorithmen und einer möglichen Lösung des Quadratwurzelproblems bestehen.
1.3. Komplexitätstheorie
Eine andere Sichtweise auf das Quantum Computing liefert Teil III. Mit dem Aufkommen
eines neuen Berechnungsmodells taucht natürlich auch die Frage auf, in wieweit die dort
erreichten Fortschritte auf die bestehende Informatik zurückwirken. So gerät zum Beispiel
4
1.4. Der Beitrag dieser Arbeit
die Churchsche These ins Wanken, nach der sich alle effizient berechenbaren Probleme mit
einer Turingmaschine effizient berechnen lassen. Es ist nicht schwer eine Quantenberechnung anzugeben, die mit Hilfe einer Turingmaschine niemals lösbar sein wird. Ebenso steht
die Frage in Raum, ob Quantenrechner in der Lage sind, NP-vollständige Probleme effizient
zu berechnen. Daraus allerdings Folgerungen über die Gleichheit von P und NP abzuleiten
ist falsch. Es handelt sich schließlich um völlig neue Komplexitätsklassen, die im Rahmen
des Quantum Computing aufgestellt werden müssen. Diese sind im allgemeinen anders
gelagert als klassische .
Insofern ist es sinnvoll, die bekannten klassischen Komplexitätsklassen auf das Modell
der Quantenberechnung zu übertragen und dort zu untersuchen, ob sie ähnlich zueinander
gelagert sind, wie ihre klassischen Gegenstücke. Um das zu erreichen, werden nach und
nach die Betrachtungen, die zur Trennung beziehungsweise Vereinigung klassischer Komplexitätsklassen geführt haben, auf Quantencomputer übertragen. In dieser Arbeit wird
dazu eine Darstellungsweise Boolescher Funktionen betrachtet, die Ordered Binary Decision Diagrams (OBDDs). Ihr Vorteil liegt darin, dass sie wenig Platz benötigen, und insofern
die Platzkomplexität gewisser Funktionen angeben.
Um aber mit einem solchen Modell arbeiten zu können, sind gewisse Eigenschaften
wünschenswert. So soll zum Beispiel die Synthese zweier Boolescher Formeln effizient nachvollzogen werden können. Um dies zu erreichen, wurden für klassische OBDDs Algorithmen
zur Synthese, und vor allem zur Reduktion eines OBDDs entwickelt. Die Reduktion führt
sogar zu einer eindeutigen minimalen Darstellung. Dies wäre natürlich auch für QuantenOBDDs (QOBDDs) wunderbar. Dass dies nicht einfach möglich ist, ergibt sich ziemlich
schnell aus der Verwandtschaft, die zwischen QOBDDs und probabilistischen OBDDs besteht. Der Suchraum für eine Reduktion ist einfach viel zu groß, als dass sie effizient zu
bewältigen wäre.
Also wurden die Ziele für diese Arbeit kleiner gesteckt. Es soll der Versuch skizziert
werden, wie man aus einem Quantenschaltkreis, einer kompakten Beschreibung von Quantenalgorithmen, der nur zwei bekannte Gatter enthält, nach und nach einen QOBDD synthetisiert. In diesem Fall ist eine gewisse Reduktion möglich.
1.4. Der Beitrag dieser Arbeit
Das Fazit dieser Arbeit sei gleich vorweggenommen: Quantum Computing ist harte Mathematik. Beide Ansätze dieser Arbeit, sich der Thematik zu nähern, laufen geradewegs
in die Tiefen der Darstellungstheorie. Insofern konnte auch keiner der Wege bis zu einem
fulminanten Ergebnis geführt werden. Stattdessen werden möglichst detailliert die aufgetretenen Schwierigkeiten benannt, um dadurch einen tieferen Einblick in die Komplexität
des Quantum Computing zu liefern, als durch eine vordergründige Beschäftigung mit den
mittlerweile sehr ausgefeilt beschriebenen bahnbrechenden Quantenalgorithmen erreichbar
ist. Dort wird dem Interessierten eher vermittelt, dass Quantum Computing auf eine sehr
klare, einfache Weise in der Lage ist, klassisch schwierige Probleme zu lösen.
Teil II liefert eine Wegbeschreibung, wie das Fiat-Shamir Protokoll durch einen zu dem
Algorithmus von Grover verwandten Ansatz gebrochen werden kann. Dies direkt zu versuchen wird hier als unzulänglich gezeigt. Aber ein etwas überlegterer Ansatz, der eine
5
1. Einleitung
speziell angepasste Fouriertransformation benutzt, ähnlich zu Shors Faktorisierungsalgorithmus, mag zum Erfolg führen. Dies auszuarbeiten, und vor allem die Effizienz dieses
zweiten Ansatzes zu untersuchen muss aber auf spätere Arbeiten vertagt werden.
Teil III bespricht die Schwierigkeiten, einen QOBDD zu Zwecken der Verifikation von
Quantenschaltkreisen zu synthetisieren und zu reduzieren. Dass dafür hier eine allgemeine
Lösung angegeben werden kann, war nicht zu erwarten, es ist sogar fragwürdig, ob dies
überhaupt möglich ist. Deswegen wird abschließend noch eine vereinfachte Situation betrachtet, in der eine Reduktion möglich ist, indem nur zwei verschiedene Gatter in dem zu
darzustellenden Quantenschaltkreis zugelassen werden.
6
Teil I.
Allgemeine Einführung: Quantum
Computing
7
Überblick
Quantum Computing ist ein interdisziplinäres Forschungsfeld, da sich die zugrundeliegende Technik und Begriffswelt auf die Quantenmechanik als Teilbereich der theoretischen
Physik bezieht, aber die Arbeitsweisen und Beweisverfahren der theoretischen Informatik
entspringen. Um die einzelnen Aspekte dieser Arbeit sinnvoll beschreiben zu können, ist
viel Vorarbeit vonnöten. So werden die Anwendungen bezüglich Kryptographie und Boolescher Funktionen nach Teil II beziehungsweise Teil III zurückgestellt, um in diesem Teil
Raum für eine umfassende Einführung in die Thematik zu geben.
Einerseits fußt das gesamte Quantum Computing auf dem theoretischen Konzept der
Quantenmechanik. Allerdings sind die zugrundeliegenden Ideen zum Teil so kontraintuitiv,
dass es einiger Zeit bedarf, sich mit den Denkweisen anzufreunden. Also sollen diese Grundlagen in der nötigen Tiefe eingeführt werden, um dem Anspruch dieser Arbeit gerecht zu
werden, aus dem Blickwinkel der theoretischen Informatik zu berichten.
Zum Anderen basieren einige der Resultate dieser Arbeit auf wichtigen Ergebnissen des
Quantum Computing, die ebenfalls nicht zum Allgemeinwissen eines Informatikers gehören,
und deswegen besprochen werden sollen. Auch hier ist wieder eine gewisse Vorarbeit zu
leisten, um die Notation und die Hauptkniffe, die nachher wieder aufgegriffen werden,
einzuführen.
Dieser Teil baut sich aus drei Kapiteln auf. Kapitel 2 führt die für diese Arbeit wichtigen
Aspekte der Quantenmechanik ein. Kapitel 3 erklärt die Konsequenzen, die sich ergeben,
wenn man die Gedankenwelt der Quantenmechanik einem Rechnermodell zugrundelegt.
Hier wird auch versucht, ein intuitives Verständnis für die Arbeitsweise eines Quantencomputers zu legen. In Kapitel 4 werden dann mit dem Algorithmus von Grover zur
unstrukturierten Datenbanksuche und dem Algorithmus von Shor zur Faktorisierung zwei
der wichtigsten Ergebnisse des Quantum Computing beschrieben.
9
10
2. Einführung Quantenmechanik
Die Quantenmechanik ist ein sehr gutes Beispiel dafür, wie weit man sich von natürlicher Intuition entfernen kann, wenn man ein theoretisches Konzept konsequent zu Ende
denkt. Die zugrundeliegenden Konzepte sind mit gesundem Menschenverstand nicht zu
greifen, sondern müssen anfangs akzeptiert werden, auf dass sich im Laufe der Zeit ein
gewisses Verständnis dafür entwickelt. Das Schöne an dieser Theorie ist, dass sie sich sehr
formal aus wenigen Annahmen ableiten lässt und dennoch in erstaunlich genauem Maße
die Realität beschreibt. Dies ist bei weitem nicht bei jeder physikalischen Theorie der Fall.
Häufig werden Gleichungen postuliert, die der phänomenologischen Seite eines Experiments
möglichst nahe kommen, und diese werden mit jedem kontradiktorischen Ergebnis weiter
verkompliziert. Eine ähnliche Entwicklung hätte Schrödingers Ansatz einer Wellenmechanik nehmen können [50]. Er postulierte eine Wellengleichung, die nirgendwo abgeleitet
werden kann, sondern nur auf der Annahme beruht, dass alle Materie als Welle aufgefasst
werden kann. Allerdings erwies sich die Schrödingergleichung als äquivalent zur diskontinuierlichen frühen Quantenmechanik, die er eigentlich ablehnte. Dieses Kapitel basiert stark
auf den Einführungsbüchern zur Quantenmechanik von Wolfgang Nolting [46, 47], die eine
äußerst verständliche Einführung in die Thematik bieten.
In Abschnitt 2.1 sollen kurz die dem Dirac-Formalismus, einer Notationsweise der Quantenmechanik, zugrundeliegenden Postulate angegeben werden, die eine Motivation für die
danach getätigten mathematischen Betrachtungen und Definitionen liefern. In den folgenden Abschnitten geht es dann um die Dirac-Notation, die eine wunderbar kompakte, klar
definierte Sprache liefert, um sich über die mathematisch nicht trivialen Objekte unterhalten zu können ohne sich mit dem Ballast herumzuplagen, der ihnen anhaftet. Abschnitt
2.2 legt den Grundstein für die Einführung des Begriffs des Zustands. Im folgenden Abschnitt 2.3 wird das mathematische Konstrukt des Hilbertraumes besprochen, in dem alle
Quantensysteme beschrieben werden. Abschnitt 2.4 geht auf die Schreibweise des Skalarprodukts im Dirac-Formalismus ein, welche das Rechnen mit Quantensystemen immens
vereinfacht. Ebenso wird der dabei auftauchende Dualraum zum Hilbertraum erklärt. Die
möglichen Manipulationen eines Quantensystems erfolgen über eine spezielle Klasse von
Transformationen. Gerade im Zusammenhang mit Quantum Computing spielt dies eine
besondere Rolle, da die nötigen Einschränkungen in den Transformationen das Design von
Quantenalgorithmen sehr erschweren. Abschnitt 2.5 trägt dem Rechnung und beschreibt
ihre Besonderheiten ausführlich. Ein für das Quantum Computing ebenfalls sehr wichtiger Punkt wird in Abschnitt 2.6 erläutert. Man kann niemals durch Beobachtungen den
exakten Zustand eines Quantensystems bestimmen, sondern nur bestimmte Eigenschaften
desselben. In Abschnitt 2.7 soll die Erweiterung der Berechnungsbreite von einem auf
mehrere Quantenbits besprochen werden.
11
2. Einführung Quantenmechanik
2.1. Grundlegende Postulate
Die Herangehensweise an die Quantenmechanik, die einem Mathematiker besonders nahe
liegt, ist der Dirac-Formalismus. Er geht völlig axiomatisch vor, entwickelt durch Folgerungen die gesamte Theorie und benutzt dafür eine deutlich kompaktere Notation, als es in
der Alternativbeschreibung mit Hilfe der Schrödingergleichung der Fall ist. Die abstrakte
Sichtweise, die nur über Zustände eines Quantensystems redet, ist aus der Sicht der Informatik deutlich intuitiver. Da die theoretische Physik den Anspruch hat, die Realität
zu modellieren, muss allerdings noch der Zusammenhang von real messbaren Größen, die
unsere Erfahrungswelt ausmachen, und den abstrakten Gebilden des Dirac-Formalismus
festgelegt werden.
Die folgenden fünf Postulate, dargestellt nach [46], bieten die vollständige Grundlage, auf
die sich die Quantenmechanik aus der Sicht des Dirac-Formalismus stützt. Hier sollen sie
kurz wiedergegeben werden, wobei die neuen Begriffe dann in den folgenden Abschnitten
erläutert werden.
Postulat 1
Dem aktuellen Zustand eines Quantensystems entspricht ein Hilbert-Vektor.
Postulat 2
Wird eine physikalische Größe gemessen, so entspricht diesem Vorgang die
Anwendung eines linearen hermiteschen Operators.
Postulat 3
Eine Messung, die am System vorgenommen wird, ändert dieses. Diese Tatsache wird dadurch beschrieben, dass der zur Messgröße gehörige Operator,
sowie die Projektion auf einen seiner Eigenvektoren hintereinander ausgeführt
werden. Das System befindet sich nach der Messung in dem gemessenen Eigenzustand.
Postulat 4
Die möglichen Messergebnisse der untersuchten Größe entsprechen den Eigenwerten des Operators.
Postulat 5
Der Ausgang einer Messung ist nicht in jedem Fall vorhersehbar. Vielmehr
haftet jedem Eigenwert des Messoperators abhängig vom aktuellen Zustand
eine bestimmte Wahrscheinlichkeit an, diesen bei einer Messung zu erhalten.
Diese entspricht dem Quadrat des Skalarprodukts vom aktuellen Zustand und
dem jeweiligen Eigenvektor.
Die Postulate lassen schon den Weg erkennen, den die Quantenmechanik wählt um die
Welt zu beschreiben. Es geht um Vektoren eines Hilbertraumes, die dem Systemzustand
entsprechen, und Operatoren, die selbigen verändern können. Die nächsten Abschnitte
sollen nun die mathematische Seite obiger Postulate erläutern und die quantenmechanische
Begriffswelt auf solide Definitionen stellen.
12
2.2. Quantenmechanische Zustände
2.2. Quantenmechanische Zustände
Die Interaktion eines Beobachters mit einem physikalischen System erfolgt immer über eine
Messung. Das Ergebnis derselben hängt natürlich von der aktuellen Situation des Systems
ab.
Definition 2.1
Die Gesamtkonfiguration eines quantenmechanischen Systems heißt Zustand, auch Zustandsvektor. Er wird für gewöhnlich |ψi geschrieben.
Ein Problem des quantenmechanischen Begriffs Zustand ist, dass es im allgemeinen keine
Möglichkeit gibt, alle Eigenschaften eines Systems vollständig zu bestimmen, wie es in der
klassischen Physik (als Gegensatz zur Quantenmechanik) der Fall ist. Da jede Messung
eine Veränderung des aktuellen Zustands mit sich bringt, ist es völlig normal, wenn ein
Quantensystem bei zwei Messungen derselben Größe sehr unterschiedliche, zum Teil sogar
gegensätzliche Messwerte liefert, nur weil zwischen den Messungen noch eine andere Größe
bestimmt wurde. Dies führt zur Notwendigkeit eines weiteren Zustandsbegriffes, der die
maximale Bestimmtheit eines Systems angibt.
Definition 2.2
Gleichzeitige Messung eines maximalen Satzes von verträglichen Eigenschaften präpariert
einen reinen Zustand |ψi.
Verträglich heißen Eigenschaften, die simultan messbar sind. In Abschnitt 2.5 wird darauf weiter eingegangen werden. Der reine Zustand |ψi beinhaltet also alle Informationen,
die wir zu einem Zeitpunkt von dem System haben können.
Da bei Quantenberechnungen der Ausgangspunkt klar definiert sein muss, um eine Korrektheit des Algorithmus zu gewährleisten, ist der Begriff der Präparation von enormer
Bedeutung für die Praktikabilität des Quantum Computing.
Definition 2.3
Ein Quantensystem wird präpariert, indem es bezüglich einer speziellen Größe gemessen
wird. Nach der Messung befindet sich das System sicher in dem gemessenen Zustand
bezüglich der entsprechenden Größe.
Dies besagt auch, dass die Beschreibung eines Quantensystems in Form eines Zustandsvektors stark von der Basis abhängt, in der der Zustand dargestellt wird. Bezüglich einer
beliebigen Basis muss er aber nicht in einem Basiszustand vorliegen, sondern kann aus einer
Linearkombination der Basisvektoren bestehen. Diese Zustände nennt man Superposition.
Definition 2.4
Ein Zustand der sich bezüglich einer Basis aus mehreren Basiszuständen zusammensetzt,
heißt Superposition.
Allgemein ist der Zustand eines Systems aber immer eine abstrakte Größe, da er prinzipiell nie genau bestimmt werden kann. Messungen (siehe Abschnitt 2.6) liefern immer nur
Informationen über einen Teilaspekt des Gesamtsystems. Auf der abstrakten Ebene aber
hilft er die Abläufe in einem System komplett zu beschreiben. Es gibt immer nur den Zustand des Gesamtsystems, nie einen isolierten Zustandsvektor der Teilsysteme, es sei denn,
die Teilsysteme sind völlig voneinander isoliert. Dies wird in Abschnitt 2.7 aufgegriffen, wo
der Übergang von Teilzuständen zu einem Gesamtsystem beschrieben wird.
13
Zustand
reiner Zustand
Präparation
eines
Zustandes
Superposition
2. Einführung Quantenmechanik
2.3. Hilbertraum
Hilbertraum
Wie im letzten Abschnitt bereits erwähnt, heißen quantenmechanische Zustände auch Zustandsvektoren. Dies hat seinen Ursprung darin, dass sie laut Postulat 1 tatsächlich in
einem Vektorraum leben, der allerdings bestimmte Eigenschaften hat. Mathematisch gesehen handelt es sich um einen Hilbertraum.
Definition 2.5
Ein vollständiger unitärer Vektorraum H heißt Hilbertraum. Als solcher hat er ein Skalarprodukt und darüber auch eine Norm.
normiert
Definition 2.6
Ein Zustandsvektor heißt normiert, wenn er die Norm Eins hat.
orthogonal
Die Wahrscheinlichkeitsinterpretation der Quantenmechanik, die sich in Postulat 5
äußert, hat eine interessante Implikation, die große Kreise zieht. Wenn das Quadrat der
Projektion des aktuellen Zustands auf den gemessenen Eigenzustand gleich der Wahrscheinlichkeit ist, diesen zu messen ist, so muss die Summe dieser Wahrscheinlichkeiten 1 ergeben,
da auf jeden Fall einer der Eigenzustände angenommen wird. Demnach ist jeder quantenmechanische Zustand normiert.
Definition 2.7
Zwei Zustandsvektoren heißen orthogonal, wenn ihr Skalarprodukt verschwindet.
Auch wenn ein Hilbertraum im allgemeinen nicht endlich dimensional ist, bleibt seine Dimension aber immer abzählbar. Dies ermöglicht die Definition eines Vollständigen
Orthonormalsystems als Basis.
2.4. Dualer Hilbertraum
Dualer
Hilbertraum
Ein wichtiger Punkt in der Kompaktheit des Dirac-Formalismus auf den noch nicht näher
eingegangen wurde, ist die Bedeutung des Symbols | · i für einen Zustand. Dieses Symbol
wird ”ket”-Vektor genannt, da er die zweite Hälfte einer Klammer (von englisch bracket)
ist, die als Symbol für das Skalarprodukt im Hilbertraum h · | · i steht. Der ”bra”-Vektor h · |
ist also ein Funktional, dass einen ket-Vektor auf das Skalarprodukt mit einem bestimmten
Vektor abbildet.
Definition 2.8
Der zu H duale Hilbertraum H∗ ist der Raum der linearen Funktionale der Elemente
von H
H∗ = {hψ | |hψ | : H → C, hψ | linear }
(2.1)
2.5. Operatoren
Bis jetzt haben wir den Zustand eines Systems beschrieben, können ihn aber weder beeinflussen, noch Informationen über ihn gewinnen. In der Sprache der Hilberträume sind
14
2.6. Messen eines quantenmechanischen Systems
Manipulationen des Systems, also Messungen ebenfalls, durch lineare Operatoren beschrieben.
Definition 2.9
Operator
Ein Operator A ist eine Abbildung, die jedes Element |ψi ∈ DA ⊆ H eindeutig auf
ein Element |φi ∈ WA ⊆ H abbildet. Dabei sind DA die Definitionsmenge und WA die
Wertemenge von A. Man schreibt |φi = A|ψi = |Aψi.
Definition 2.10
Observable
Ein Operator A mit reellen Messwerten, die also direkt beobachtbar sind, heißt Observable.
Die Forderung, dass die Eigenwerte von Operatoren, die Messungen beschreiben, reell
sein sollen impliziert, dass Observablen hermitesche Operatoren sind. Das heißt, dass A
gleich seinem adjungierten Operator A+ ist. Dieser definiert sich darüber, dass er auf die
bra-Komponente des Skalarprodukts so wirkt, wie A auf die ket-Komponente: hφ | Aψi =
hA+ φ | ψi.
Wie in Abschnitt 2.3 erläutert, ist jeder Quantenzustand normiert. Dies muss natürlich
auch für die Dauer einer Berechnung so beibehalten werden. Dass heißt, dass die Transformationen, die man zum Berechnen von Zustandsübergängen von Quantensystemen benutzen kann, alle normerhaltend sein müssen. Wir haben also nur Drehungen und Spiegelungen
zur Verfügung. Dies sind in einem Hilbertraum gerade die unitären Transformationen.
Definition 2.11
T
Eine Matrix M heißt unitär, wenn M ∗ := M = M −1 gilt.
Dies entspricht den orthogonalen Matrizen, wenn man sich nicht über C sondern über R
bewegt.
2.6. Messen eines quantenmechanischen Systems
Wie sich in Postulat 4 andeutet, ist die Hauptaufgabe in der Berechnung quantenmechanischer Systeme das Eigenwertproblem des zur interessanten Messgröße gehörigen hermiteschen Operators. Da die Eigenvektoren eines hermiteschen Operators orthogonal sind,
im Falle eines entarteten Eigenwertes können sie orthogonal gewählt werden, kann man
für jede Observable eine Basis des aktuellen Hilbertraumes aus Eigenvektoren bestimmen.
Beim Messen des Systems bezüglich einer Eigenschaft wird nun, nach den Postulaten 3, 4
und 5, der Zustand in die Basis aus den Eigenvektoren der Observablen transformiert und
mit der Wahrscheinlichkeit, die dem Quadrat des Koeffizienten des jeweiligen Eigenvektors
entspricht, auf diesen abgebildet.
Wir haben also nach einer Messung die Gewissheit, dass das System in der gemessenen
Eigenschaft den gemessenen Wert hat, unabhängig davon, wie groß der Anteil des Eigenvektors an der Darstellung des ursprünglichen Zustands war. Man sagt, dass die Superposition
eines Zustands zum Zeitpunkt der Messung zusammenbricht.
Natürlich gewinnt man nur Informationen über die gemessene Größe. Allerdings ist
ein wichtiges Ergebnis der Quantenmechanik, dass es Messgrößen gibt, die sich gleichzeitig
15
unitär
2. Einführung Quantenmechanik
messen lassen, und eben auch solche, bei denen das prinzipiell unmöglich ist. Über die Korrespondenz von Messgrößen und hermiteschen Operatoren zusammen mit der Vorschrift,
wie ein System gemessen wird, ist dies sehr einfach einzusehen: Wir transformieren den
aktuellen Zustand in die Eigenbasis einer Observablen A, und ziehen per Messung einen
Eigenwert ai . Das System befindet sich nach der Messung im dazugehörigen Eigenzustand
der Observablen |ai i. Misst man nun eine weitere Größe B, die eine komplett verschiedene
Eigenbasis hat, so hat der vorherige Zustand nun eine Repräsentation, die einer SuperpoP
sition der Eigenvektoren von B entspricht: |ai i = hbj | ai i|bj i. Die Messung von B ergibt
nun mit der Wahrscheinlichkeit |hbj | ai i|2 den Wert bj . Nehmen wir an, dass dies eingetreten ist, das System befindet sich nach der Messung also im Zustand |bj i. Man könnte
meinen, dass man nun die zwei Größen A und B des Systems bestimmt hat, wie es ja in
der klassischen Physik der Fall wäre. Sollte man jetzt aber wieder die Größe A messen,
so würde man nur mit der Wahrscheinlichkeit |hai | bj i|2 den Wert |ai i beobachten. Das
Quantensystem hat also durch die Messung von B seine Eigenschaft bezüglich A massiv
geändert.
Sollten die Eigenbasen von A und B aber dieselben sein, so steht einer simultanen Messbarkeit nichts im Wege, da die Darstellung nach dem Basiswechsel immer noch immer ein
Basiszustand ist, und keine Superposition.
Wird im Verlauf der Zeitentwicklung eines Quantensystems gemessen, ohne dass das Messergebnis bekannt ist, erhält man über die Superposition hinaus einen gemischten Zustand,
der einer Wahrscheinlichkeitsverteilung über die möglichen Messergebnisse entspricht. Dies
ist bei den hier besprochenen Quantensystemen nicht nötig, da wir immer am Ende der
Berechnung messen werden.
2.7. Produkthilberträume
Die Quantenmechanik geht davon aus, dass man ein abgeschlossenes System betrachtet, das
heißt, dass es nicht mit seiner Umgebung wechselwirkt. Dies ist natürlich in der Realität
niemals zu erreichen. Allerdings ist dies eine fundamentale Annahme, die für die Physik
sehr grundlegend ist. Wenn man den Ehrgeiz entwickelt, immer das Gesamtsystem – Würde
das dann lediglich unser Universum beinhalten? – zu beschreiben, so wäre man nie in der
Lage, irgendwelche Aussagen zu treffen.
Auch wenn nun die Annahme eines abgeschlossenen Systems häufig praktisch sein mag,
gibt es doch auch immer wieder Situationen, wo es gerade darauf ankommt, dass das
betrachtete System aus mehr als einem Teilchen besteht, es also Wechselwirkungen gibt. In
der Quantenmechanik ist dies der Übergang vom Einteilchen- auf ein Mehrteilchensystem,
im Quantum Computing der Übergang von der Berechnung auf einem Bit hin zu einem
Quantenregister (siehe dazu Abschnitt 3.4).
Nun ist aber die Verknüpfung der Hilberträume zweier Einzelsysteme nicht einfach eine
Addition der jeweiligen Basisvektoren in eine neuere, größere Basis, sondern die Räume
verschmelzen, indem komplett neue Basisvektoren gebildet werden, die sich aus je einem
der Basisvektoren des einen, sowie des anderen Systems ergeben. Die Dimension des neuen
Systems entspricht also dem Produkt der beiden Ursprungsdimensionen.
Sollten wir die zwei Einzelsysteme H1 und H2 haben, wobei H1 die Basis
16
2.7. Produkthilberträume
{|ai, |bi, |ci} hat, und H2 die Basis {|di, |ei}, so hat das Gesamtsystem H3 die Basis
{|adi, |aei, |bdi, |bei, |cdi, |cei}. Dadurch bleibt die ganze Rechnung über klar, welches Subsystem in welchem Zustand ist.
Mathematisch gesehen erfolgt die Erweiterung eines Systems über das äußere, das
Kroneckerprodukt. Sollte es mit dem inneren Produkt verträglich sein, so ist es identisch
mit dem Tensorprodukt, dessen Notation wir hier verwenden wollen. Dementsprechend
erweitern sich auch die Operatoren folgendermaßen:


A11 · B · · ·


..

.
A⊗B =
 A21 · B

..
.
Amm · B
Damit ist das Repertoire der quantenmechanischen Requisiten vollständig, dass zum
Verstehen der Eigenheiten des Quantum Computing vonnöten ist. Im nächsten Abschnitt
soll dann auch endlich konkret über die Realisierung eines Rechenmodells mit den Mitteln
eines Quantensystems gesprochen werden.
17
2. Einführung Quantenmechanik
18
3. Quantum Computing
Ein klassischer Computer ist ein Digitalrechner. Das heißt, seine kleinste Informationseinheit sind Bits, die den Zustand 1 oder 0 haben können. Diese Bits werden in Einheiten,
sogenannten Registern zusammengefasst, deren Zustand also auch nur endlich viele Werte
annehmen kann. Rechenoperationen können nun in Abhängigkeit von Inhalten bestimmter
Register den Inhalt von eventuell anderen Registern manipulieren. Wie auch immer dies
in der Hardware realisiert ist, erfolgt doch jegliche Berechnung eines klassischen Rechners
diskret.
Wenn man sich die Entwicklung von heutigen Rechnern ansieht wird man feststellen,
dass die Hardwareeinheit, die ein Bit hält immer kleiner und kleiner wird. Nun ist bekannt, dass Quanteneffekte bei großen Skalen keinen merklichen Einfluss auf unsere Umwelt
haben, wenn man aber zu entsprechend kleinen Skalen geht, nicht mehr vernachlässigbar
sind. Die Computerindustrie hätte sich also früher oder später die Frage stellen müssen,
die in den achtziger Jahren des zwanzigsten Jahrhunderts aufkam: Was passiert, wenn ein
Rechenmodell nicht auf klassischen Bits basiert, sondern davon ausgeht, dass jede kleinste
Informationseinheit eine Superposition der Zustände |1i und |0i hält, wenn also jedes sogenannte Quantenbit einem quantenmechanischen Teilchen entspricht. Dies hat natürlich
weitreichende Konsequenzen, wie das letzte Kapitel schon angedeutet hat, da eben die
gesamte Quantentheorie in solch einem System zum Einsatz kommt.
Wie sich nun die verschiedenen Begrifflichkeiten aus der klassischen Informatik für das
Quantum Computing übersetzen, soll Thema dieses Kapitels sein. Hauptsächlich werden
Begriffe definiert, zum Beispiel im nächsten Abschnitt 3.1 der des Qubits. Es werden aber
auch Besonderheiten des Quantum Computing erläutert, die aus der konsequenten Anwendung der Quantenmechanik resultieren, wie zum Beispiel das Messen von Qubits, was
Thema von Abschnitt 3.2 ist, oder Abschnitt 3.3, der die Manipulatonsmöglichkeiten eines Qubits mit Hilfe von unitären Transformationen bespricht. Abschnitt 3.4 betrachtet
die Konsequenzen des Übergangs von einem Quantenbit auf ein ganzes Quantenregister.
Andersherum sind aber Hilberträume von Subsystemen so gut trennbar, dass man jede
Transformation eines Quantenregisters auch wieder als Nacheinanderausführung von mehreren Transformationen, die jeweils nur auf dem Hilbertraum eines einzelnen Quantenbits
wirken, zerlegen kann. Man spricht vom Prinzip der Lokalität. Deutlich übersichtlicher
wird die Beschreibung von Quantenalgorithmen, wenn man sich der Darstellungsform der
Schaltkreise bedient. Diese werden in Abschnitt 3.5 eingeführt. Der Vollständigkeit halber
wird in Abschnitt 3.6 noch der Aspekt Verschränkung besprochen, den es so nur in Quantensystemen gibt und der die Möglichkeiten des Quantum Computing enorm erweitert. Mit
Abschnitt 3.7 wird die neben der Unitaritätsbedingung schwerste Einschränkung, die einem im Quantencomputing begegnet, besprochen, dass nämlich Quantenbits nicht kopiert
werden können.
19
3. Quantum Computing
3.1. Quantenbits
Qubit
Wie bereits oben erwähnt wurde, liegt der fundamentale Unterschied zwischen Quantum
Computing und dem klassischen Rechnermodell in der kleinsten Informationseinheit. Klassischerweise kann ein Bit zwei Zustände annehmen, die mit 0 und 1 bezeichnet werden.
Wenn man aber an Schrödingers Katze denkt, einer der wenigen Punkte, der über Quantenmechanik allgemein bekannt ist, fällt einem ein, dass ein Quantensystem nicht auf einen
definierten Zustand festgelegt ist, sondern sich auch irgendwo dazwischen aufhalten darf.
So befindet sich die Katze zu entsprechend geminderten Anteilen sowohl im Zustand tot
wie auch im Zustand lebendig . Mit unserem Quantenbit ist es nun ähnlich. Es kann nicht
nur die Zustände |0i und |1i annehmen, sondern auch beliebige normierte Superpositionen
derselben.
So kann man die Zustände |0i und |1i als Repräsentanten der klassischen Zustände 0 und
1 ansehen. Dies ist wichtig, wenn man mit einem Quantencomputer ein klassisches Problem
lösen möchte. Dazu muss man das Messergebnis, dass ja einen der Quantenbasiszustände
liefert, noch auf die möglichen klassischen Ergebnisse abbilden.
Definition 3.12
Ein Quantenbit, kurz Qubit, hat die Form
α · |0i + β · |1i
mit: α, β ∈ C,
|α|2 + |β|2 = 1
Die Koeffizienten α, β heißen Amplitude. Dies rührt aus der wellenmechanischen Sichtweise Schrödingers her, der jeden Zustand als Wellenfunktion auffasst. Allerdings finden
sich auch Wellenelemente in der Dirac-Notation eines Qubits. Addiert man zwei Qubits
mit entgegengesetztem Vorzeichen, also entgegengesetzter Phase, so annullieren sie sich,
wie man es aus der Vektorrechnung gewöhnt ist. Dies ist ein Verhalten, dass man sonst
von der linearen Überlagerung von Wellen kennt.
Da die Koeffizienten α, β jeweils zu den Basisvektoren des Hilbertraumes gehören, ist es
möglich ein Quantenbit als Vektor, wie in der Analytischen Geometrie zu schreiben.
α
β
Die gesamten Berechnungen lassen sich also auch in der Form von Vektoren für Zustände
und Matrizen für Transformationen schreiben.
Um überhaupt sinnvolle Quantenberechnungen anzustellen, ist es wichtig, mit einem definierten Zustand, dem Startzustand, anzufangen. Dies geschieht, wie es in Abschnitt 2.2
beschrieben wurde, indem ein maximaler Satz verträglicher Messungen durchgeführt wird
(siehe auch Abschnitt 3.2). Sollte man einen Zustand messen, der nicht dem gewünschten
Startzustand entspricht, so misst man das nächste Teilchen, bzw. wendet entsprechende Transformationen an, die aus dem dann bekannten Zustand sicher den gewünschten
Startzustand herstellen.
20
3.2. Messen beim Quantum Computing
3.2. Messen beim Quantum Computing
Das Messen eines Quantensystems offenbart ziemlich deutlich die Verschiedenheit von klassischen und Quantensystemen. Zum einen muss man akzeptieren, dass eine Messung keine
berührungslose Beobachtung des Systems ist, sondern ein direkter Eingriff, der den aktuellen Zustand massiv ändern kann. Auf der anderen Seite ist, selbst wenn man maximale
Sicherheit über den Zustand des Systems gewonnen hat, das Messergebnis in vielen Fällen
nicht vorhersagbar. Quantenmechanische Messungen sind im Allgemeinen nicht deterministisch.
Wichtig bei einer Messung ist immer die Information bezüglich welcher Messgröße, welches hermiteschen Operators, beziehungsweise bezüglich welcher Orthonormalbasis gemessen wird. Wie in Abschnitt 2.6 besprochen, befindet sich das System nach der Messung in
einem der Eigenzustände des zur Messgröße gehörigen hermiteschen Operators. Welcher
dieser Basiszustände angenommen wird, kann nur über Wahrscheinlichkeiten angegeben
werden. Diese errechnen sich nach Postulat 5 aus den Projektionen des aktuellen Zustands
auf die Basiszustände.
Konkret heißt das für unser Qubit, das sich im Zustand
α · |0i + β · |1i
befindet, dass eine Messung bezüglich der Basis {|0i, |1i} mit Wahrscheinlichkeit
|α|2 den Eigenwert zum Eigenzustand |0i
und mit Wahrscheinlichkeit
|β|2 den Eigenwert zum Eigenzustand |1i
ergibt. Es ist prinzipiell nicht möglich das Ergebnis vorherzusagen, wenn keine der beiden Amplituden verschwindet. Lediglich bei häufig wiederholter Messung von identisch
präparierten Zuständen offenbart sich die jeweilige Wahrscheinlichkeit über die relativen
Häufigkeiten.
Ein wichtiger Trick, mit dem man sich das Design von Quantenalgorithmen erheblich vereinfachen kann ist, die richtige Basis zu wählen, bezüglich derer man misst. Im Allgemeinen
liefert eine Messung nur mit einer gewissen Wahrscheinlichkeit das eine oder das andere
Messergebnis. Es sei denn, wir messen bezüglich einer Basis, die den aktuellen Zustand als
Basisvektor enthält. Da beim Design eines Quantenalgorithmus die gesamte Zeit über der
Zustand des Systems bekannt ist, kann man sich manchmal eine Basis heraussuchen, die
mit Sicherheit die gesuchte Information über das Rechenergebnis liefert.
3.3. Unitäre Transformationen von Qubits
Der Hilbertraum eines Qubits ist zweidimensional, seine Standardbasis ist {|0i, |1i}. Demnach sind die möglichen Transformationen als unitäre 2 × 2-Matrizen darstellbar. Auf
der Ebene von Einzelqubits bis hin zu einfachen Berechnungen bietet sich die VektorMatrixschreibweise an, da sie die Intuition begünstigt, wenn man ausblendet, dass die
Amplituden komplex sind.
21
3. Quantum Computing
Hadarmardmatrix
Um die Wirkungsweise von unitären Transformationen auf ein Qubit zu zeigen, und
gleichzeitig eine wichtige Transformation und die neben der Standardbasis wichtigste Basis
unseres H einzuführen, soll hier ein Beispiel besprochen werden.
Definition 3.13
Die Hadamardmatrix die auf einen Einqubitzustand wirkt ist
!
√1
√1
1
1 1
2
2
H1 := √
=
√1
√1
−
2 1 −1
2
2
(3.1)
Beispiel 3.1
Die Basiszustände der Standardbasis werden durch H1 auf eine bis auf Vorzeichen gleich Gewichtete Superposition abgebildet. Misst man den resultierenden
Zustand bezüglich der Standardbasis erhält man in beiden Fällen mit Wahrscheinlichkeit 21 einen der beiden Basisvektoren.
H1 |0i =
H1 |1i =
1
√ (|0i + |1i)
2
1
√ (|0i − |1i)
2
Die Hadamardtransformation hat noch die angenehme Eigenschaft, dass sie
zu sich selbst invers ist. Man kann also eine mit H erzeugte gleichgewichtete
Superposition sehr einfach wieder auf die Standardbasis abbilden.
1
H1 √ (|0i + |1i) = |0i
2
1
H1 √ (|0i − |1i) = |1i
2
Hadarmardbasis
Definition 3.14
Die Basis
1
|+i = √ (|0i + |1i) ,
2
1
|−i = √ (|0i − |1i)
2
in die die Standardbasis von der Hadamardtransformation überführt wird, nennt man Hadamardbasis.
Dass die Hadamardbasis zur Standardbasis genau um pi
4 gedreht ist, zeichnet sie unter
allen möglichen Basen aus. Bei Quantenalgorithmen, die viele mögliche Eingaben simultan
betrachten, wird der anfangs präparierte Zustand |0i auf |+i abgebildet, so dass wirklich
alle Basiszustände gleichermaßen vorkommen.
3.4. Quantenregister
Aus der Sicht eines Informatikers ist der Übergang von einem Bit zu einem ganzen Register eine völlig natürliche Sache. Dieser Übergang ist auch für das Quantum Computing
22
3.4. Quantenregister
von erheblicher Bedeutung, da Berechnungen auf einem Qubit alles andere als spannend
sind. Allerdings treten aus Gründen die schon in Abschnitt 2.7 besprochen wurden bei
der Kombination mehrerer Quantensysteme zu einem Gesamtsystem Effekte auf, die es im
klassischen Fall nicht gibt. Die Definition ist aber erstmal völlig geradlinig.
Definition 3.15
2n
Die Standardbasis eines n-Qubitregisters besteht aus 2n Vektoren. Sie werden mit den
möglichen Inhalten eines klassischen n-Bitregisters benannt.
|x( n − 1)i...|x1 i|x0 i =: |xn−1 ... x1 x0 i
(3.2)
Jeder dieser Zustände entspricht dem Zustand, bei dem sich alle n Qubits im jeweiligen
Zustand |xi i für Qubit i befindet.
Formal lebt jedes der Qubits weiter in seinem
L eigenen Hilbertraum Hi . Der Gesamtzustand lebt im äußeren Produkt HRegister = ni=1 Hi der einzelnen Hilberträume Hi . Naiverweise würde man annehmen, dass es sich hierbei um die Kombination von Vektoren in
derselben Basis handelt, allerdings würde das vektorielle Addieren der einzelnen Zustände
die Information darüber zerstören, welches Qubit sich in welchem Zustand befindet.
Effektiv bekommt man bei obiger Schreibweise eine binäre Nummerierung der Basiszustände, wie man es von klassischen Registern gewohnt ist. Dies macht es wieder recht
einfach, auch kompliziertere Quantenalgorithmen zu verstehen, da man sich nicht dauernd
mit solch aufgeblasenen Hilberträumen herumplagen muss. Mit der Superposition über
die gewohnten Binärzustände hat man eine angenehm direkte Notation, mit der sich gut
rechnen lässt.
Der Übersichtlichkeit halber verwendet man folgende Schreibweise, die ja ebenfalls in der
Informatik üblich ist:
|xn−1 ... x1 x0 i =: |ii wobei i =
n−1
X
j=0
xj · 2j
Um ein tieferes Verständnis für die Vorgänge in Quantenregistern zu bekommen, bietet
es sich an, für das Beispiel n = 3 die Zusammenfassung von zwei Qubits zu einem Quantenregister anzuschauen. Bei n = 2 tritt der Effekt der Multiplikativität der Dimensionen
noch nicht hervor.
Beispiel 3.2
Für n = 3 haben wir drei zweidimensionale Hilberträume, die zu einem Gesamtraum verkettet werden sollen. Jedes der drei Qubits sei zur Basis |0i, |1i
dargestellt. Um die verschiedenen Hilberträume in solch spezifischen Beispielen
unterscheiden zu können, verwendet man Indizes an den ket-Klammern. Also
ist der jeweilige Zustand:
Qubit 1:
Qubit 2:
Qubit 3:
|ψ1 i = α1 · |0i1 + β1 · |1i1
|ψ2 i = α2 · |0i2 + β2 · |1i2
|ψ3 i = α3 · |0i3 + β3 · |1i3 .
23
Quantenregister
3. Quantum Computing
Der Registerzustand hat nun acht Basisvektoren:
{|0i3 |0i2 |0i1 , |0i3 |0i2 |1i1 , |0i3 |1i2 |0i1 , |0i3 |1i2 |1i1 ,
=
=
|1i3 |0i2 |0i1 , |1i3 |0i2 |0i1 , |1i3 |0i2 |1i1 , |1i3 |1i2 |1i1 }
{|000i, |001i, |010i, |011i, |100i, |101i, |110i, |111i}
{|0i, |1i, |2i, |3i, |4i, |5i, |6i, |7i}
Die Verkettung der Zustände |ψ3 i, |ψ2 i und |ψ1 i hat dann folgende Amplituden:
|ψ3 ψ2 ψ1 i =
α1 α2 α3 · |0i + β1 α2 α3 · |1i + α1 β2 α3 · |2i
+ β1 β2 α3 · |3i + α1 α2 β3 · |4i + β1 α2 β3 · |5i
+ α1 β2 β3 · |6i + β1 β2 β3 · |7i
Um auf einem n-Qubitregister rechnen zu können, müssen auch die Transformationen,
die auf den einzelnen Hilberträumen wirken zu entsprechenden Transformationen die auf
dem Gesamtraum arbeiten zusammengefasst werden. Dementsprechend liegt jedem Berechnungsschritt eine Transformation zugrunde, die sich aus dem direkten Produkt der
einzelnen Transformationen dieses Schritts errechnet.
Am einfachsten für ein intuitives Verständnis der Transformation von Registern ist die
Vektor-Matrix-Schreibweise. Der Hilbertraum eines n-Qubitregisters hat die Dimension
2n , die Vektoren haben also ebenso 2n Einträge und Manipulationen an n-Qubitregistern
werden dann durch unitäre 2n × 2n -Matrizen beschrieben.
Beispiel 3.3
Sei n = 2. Betrachten wir die unitäre Form des XOR. Eine wichtige Folgerung aus der Unitarität von Transformationen ist, dass sie auch reversibel sein
müssen. Man muss also den Anfangszustand aus der Ausgabe der Transformation wieder herausrechnen können. Dafür bietet sich folgende Form für das
XOR an, die auch controlled NOT (CNOT) genannt wird, da das zweite Bit
genau dann negiert wird, wenn das erste Bit x den Wert 1 hat.
XOR : |x, yi 7→ |x, x ⊕ yi
|00i |01i |10i |11i


1 0 0 0

⇒ XOR =
ˆ 
 0 1 0 0 
 0 0 0 1 
0 0 1 0
|00i
|01i
|10i
|11i
Allerdings gilt auf der anderen Seite das wichtige Prinzip der Lokalität, nach dem sich
jede Transformation eines n-Qubitregisters in Einzeltransformationen zerlegen lässt, die
jeweils nur in einem zweidimensionalen Hilbertraum leben, siehe [32]. Das liegt an der
Struktur des äußeren Produktes, welches die einzelnen Hilberträume nicht direkt miteinander verschränkt, sondern lediglich eine simultane Beschreibung aller Einzelzustände liefert.
Die allgemeine Hadamardtransformation verdeutlicht gut, wie sich eine Registertransformation nach dem Prinzip der Lokalität wieder als Einzeltransformationen schreiben lässt.
24
3.5. Quantenschaltkreise
Definition 3.16
Hn
Sei |xi ein n-Qubit Quantenregister |xn xn−1 ...x1 i.
1
Hn |xi = √ n
2
X
x·y
(−1)
y∈{|0i,|1i}n
|yi, wobei x · y =
n
M
xi y i
(3.3)
i=1
ist die verallgemeinerte Hadamardtransformation. Die Summe läuft über alle möglichen
Zustände des Registers. |xi taucht nur noch im Vorzeichen auf.
Beispiel 3.4
n
n
2 −1
2 −1
1 X
1 X
(−1)0 |yi = √
|yi
Hn |0i = Hn |00...0i = √ n
2n y=0
2 y=0
erzeugt also die gleichgewichtete Superposition aller Zustände. Dies wird in
vielen Quantenalgorithmen ausgenutzt, um eine Operation auf viele Zustände
gleichzeitig anzuwenden.
3.5. Quantenschaltkreise
Quantenschaltkreise geben eine sehr übersichtliche Beschreibung eines Quantenalgorithmus, da auf einen Blick die wichtigen Berechnungsschritte des Algorithmus offen liegen,
und sich nicht hinter umständlichen äußeren Produkten von Transformationen verstecken.
Auch spart man sich die Indizes an den Zuständen der einzelnen 1-Qubit-Hilberträume.
Außerdem ermöglichen Quantenschaltkreise eine sehr praktikable Definition der Komplexität eines Quantenalgorithmus über die Anzahl der Einqubit-Gatter, welche grundlegend
für die Quantenkomplexität ist.
Analog zu klassischen Schaltkreisen werden Quantenalgorithmen mit Hilfe von Leitungen
für einzelne Registereinträge sowie Boxen für Berechnungsschritte, also Transformationen
als Quantenschaltkreise dargestellt.
Beispiel 3.5
Das Schaltbild des XOR von aus Beispiel 3.3 ist:
|x1i
|x1i
|x2i
|x1 ⊕ x2i
Abbildung 3.1.: Das Gatter für die Verknüpfung XOR.
Beispiel 3.6
Ein Quantencomputer ist, im Gegensatz zum klassischen Computer, in der Lage
echte Zufallszahlen zu generieren. Dies sieht man folgendermaßen ein:
25
3. Quantum Computing
|0i
H
M
|0i
H
Abbildung 3.2.: Ein Quantenschaltkreis für die Generierung echter Zufallszahlen. Durch
die Hadamardtransformationen wird eine gleichgesichtete Superposition
über alle Basiszustände erzeugt. Eine Messung liefert dann jedes der Elemente mit derselben Wahrscheinlichkeit.
Aufgrund der Lokalität entspricht das jeweilige Anwenden von H1 auf jedes
Qubit der Anwendung von Hn auf den Quantenregister |x1 ...xn i = |0...0i.
n
2 −1
1 X
|0..0i −→ √
|ii,
2n i=0
Hn
wobei i wieder in Binärdarstellung zu interpretieren ist. Die Messung liefert
in diesem Zustand mit Wahrscheinlichkeit 21n einen der 2n Basiszustände. Wir
haben also die Gleichverteilung erzeugt.
3.6. Verschränkung
Für unseren Angriff auf ein kryptographisches Protokoll in Teil II benötigen wir die Verschränkung von Qubits miteinander, die schon von Einstein als Spooky action at a distan”
ce“ bezeichnet wurde, ist eines der seltsamen Phänomene der Quantenmechanik, ist aber
formal schnell erklärt.
Genaugenommen handelt es sich bei der Verschränkung lediglich um eine Abhängigkeit
der Zustände der einzelnen Qubits eines Registers voneinander, indem bestimmte Amplituden der Superposition Null sind, so das nur spezielle Kombinationen von Zuständen bei
einer Messung ermittelt werden können. So kann die Messung des einen Qubits den Zustand
des anderen vollständig festlegen, wie das folgende Beispiel illustriert.
Beispiel 3.7
Wir stellen ein verschränktes Qubitpaar her. Siehe Abbildung 3.3.
|00i
H⊗id
−→
CNOT
−→
1
1
√ (|0i + |1i)|0i = √ (|00i + |10i)
2
2
1
√ (|00i + |11i)
2
Sollte man nun eines der beiden Qubits messen, so weiß man, in welchem der
beiden Zustände sich dieses Qubit befindet. Damit ist aber auch klar, in welchem der beiden möglichen Zustände sich das andere Qubit nach der Messung
befindet.
26
3.7. No Cloning Theorem
|0i
H
|φi
|0i
Abbildung 3.3.: Schaltkreis zur Erzeugung des verschränkten Zustands |φi = √12 (|00i +
|11i). Hier lässt sich die Belegung der beiden Leitungen auf der rechten
Seite nicht mehr isoliert angeben, da die Belegungen einander bedingen.
Das Ausnutzen von Verschränkung ist einer der Hauptvorteile des Quantum Computers
gegenüber einem klassischen Rechner, da so das doch recht komplizierte Messen zumindest
etwas vereinfacht werden kann. Es wird auch in vielen Algorithmen angewandt, wie zum
Beispiel der superschnellen Fast Fourier Transform [35] oder in der Quantenkommunikation.
3.7. No Cloning Theorem
Neben der Unitaritätsbedingung macht einem das No cloning Theorem das Design von
Quantenalgorithmen schwer. Da im Gegensatz zum klassischen Rechenmodell ein Quantencomputer nicht in der Lage ist, Qubits zu kopieren. Dies ist auch wieder das Ergebnis
einfacher, konsequenter Anwendung der Theorie, aber an sich völlig unintuitiv. Wir betrachten ein Quantensystem im Zustand |ψi ⊗ |si, wobei |ψi beliebig und |si beliebig aber
fest gewählt ist.
Satz 3.1 (No Cloning Theorem)
Es gibt keine unitäre Transformation, die dieses System für jedes |ψi in den Zustand
|ψi ⊗ |ψi versetzt.
Beweis
Annahme:
U |ψi ⊗ |si → |ψi ⊗ |ψi
U |φi ⊗ |si → |φi ⊗ |φi
⇒
hU (ψ ⊗ s) | U (φ ⊗ s)i
=
hψ ⊗ ψ | φ ⊗ φi
außerdem ist
hU (ψ ⊗ s) | U (φ ⊗ s)i
=
hψ ⊗ s | φ ⊗ si
=
=
⇒ hψ ⊗ ψ | φ ⊗ φi
⇒ hψ | φi
=
=
hψ | φi · hs | si
hψ | φi
hψ | φihψ | φi
(hψ | φi)2
Das geht nur für orthogonale oder identische Zustände
2
27
3. Quantum Computing
28
4. Wichtige Quantenalgorithmen
Nachdem im letzten Kapitel die wichtigsten Begriffe und Implikationen des Quantum Computing eingeführt wurden, soll in diesem Kapitel eine gewisse Intuition für die Arbeitsweise von Quantenalgorithmen erarbeitet werden. Deswegen ist als Einstieg das DeutschProblem in Abschnitt 4.1 und gleich im Anschluss in Abschnitt 4.2 die Verallgemeinerung
zum Deutsch-Josza Algorithmus gewählt. Sie berühren die Eigenart von Quantenalgorithmen, auf vielen Eingaben simultan rechnen zu können. Sie vermitteln so die Faszination,
die vom Quantum Computing ausgeht, da es in einigen Belangen erhebliche Beschleunigung gegenüber klassischer Berechnung liefert. Die Darstellungen dieses Kapitels sind [32]
nachempfunden. Dort sind Beweise für die Ergebnisse nachzulesen.
Im weiteren Verlauf des Kapitels werden dann die Algorithmen von Grover in Abschnitt
4.3 und von Shor in Abschnitt 4.4 besprochen. Sie sind ebenso wie die Lösung des DeutschProblems Meilensteine des Quantum Computing. Für diese Arbeit sind sie wichtig, da sich
einige der Lösungsstrategien, die in Teil II benutzt werden, an diesen beiden Algorithmen anlehnen. Beide Algorithmen sind leider etwas kompliziert, und nehmen daher in
ihrer Behandlung viel Raum ein. Allerdings liefern sie auch weiteres Verständnis für die
Arbeitsweise aber auch für die Grenzen des Quantum Computing.
4.1. Deutsch-Problem
Großes Interesse erweckt das Quantumcomputing, wenn es darum geht, Probleme in teilweise wesentlich weniger Aufwand zu berechnen, als es mit klassischen Rechnern möglich
ist. Ein solches Problem ist das von Deutsch [15].
Gegeben sei eine Blackbox, die eine Funktion f : {0, 1} → {0, 1} berechnet.
Ziel des Spiels ist es nun, zu entscheiden, ob
f konstant (f (0) = f (1)) oder
f balanciert (f (0) 6= f (1)) ist.
Es ist uns erlaubt, für bestimmte Werte das Orakel zu befragen, was die Funktion in diesem
Fall tun würde. Ein klassischer Computer muss zwei solcher Abfragen tätigen, nämlich
einmal für 0, einmal für 1, da das Wissen um einen der Werte noch keinerlei Informationen
über die gesuchte Antwort enthält. Es gibt aber einen Quantenalgorithmus, der dieses
Problem mit nur einer einzigen Orakelabfrage löst.
Wir verwenden für unsere Berechnung ein Quantenregister R aus zwei Bits. Zunächst
brauchen wir eine unitäre Form des Funktionsaufrufs, da f an sich nicht reversibel ist.
Betrachten wir also:
Uf : |xyi 7→ |x, y ⊕ f (x)i
Dann ist Uf−1 = Uf .
29
4. Wichtige Quantenalgorithmen
4.1.1. Algorithmus für das Deutschproblem
GS1: R = |x, yi ← |01i
GS2: R ← H2 R
GS3: R ← Uf R
GS4: |xi ← H1 |xi
GS5: Messe das erste Bit |xi bezüglich der Basis {|0i, |1i}
Sage konstant“ falls das Ergebnis |1i ist, sonst balanciert“.
”
”
4.1.2. Analyse
Uf wurde tatsächlich nur einmal evaluiert.
Der Algorithmus ist korrekt:
H
2
|01i −→
=
=
Uf
−→
=
=
=
=
H1 auf |xi
−→
=
=
1
(|0i + |1i) · (|0i − |1i)
2
1
(|0i · (|0i − |1i) + |1i · (|0i − |1i))
2
1
1
1
1
|00i − |01i + |10i − |11i
2
2
2
2
1
(|0i · (|0 ⊕ f (0)i − |1 ⊕ f (0)i) + |1i · (|0 ⊕ f (1)i − |1 ⊕ f (1)i))
2
1
1
1
1
|0, f (0)i − |0, 1 ⊕ f (0)i + |1, f (1)i − |1, 1 ⊕ f (1)i
2
2
2
2
1
|0i · (−1)f (0) (|0i − |1i) + |1i · (−1)f (1) (|0i − |1i)
2
1
(−1)f (0) |0i + (−1)f (1) |1i (|0i − |1i)
2
1
1 √ (−1)f (0) |0i + (−1)f (1) |1i · √ (|0i − |1i)
2
2
1
1
1
f (1) 1
f (0)
√
√ (|0i + |1i) + (−1)
√ (|0i − |1i) · √ (|0i − |1i)
(−1)
2
2
2
2
1
1
√
(−1)f (0) + (−1)f (1) |0i + (−1)f (0) + (−1)f (1) |1i · √ (|0i − |1i)
2
2

1
√
±|1i
·
(|0i
−
|1i)
falls
f
(0)
=
f
(1)

2

±|0i · √12 (|0i − |1i) falls f (0) 6= f (1)
|{z} |

{z
}

|xi
|yi
Das Deutsch-Problem zeigt sehr deutlich die Möglichkeiten, die aus der Verwendung von
Superpositionen erwachsen. Es lässt sogar hoffen, dass zum Beispiel Datenbanksuchen mit
nur einem Aufruf auskommen könnten, wenn man nur einen geschickten Quantenalgorithmus findet. Leider ist dies nicht der Fall, wie wir in Abschnitt 4.3 über den Algorithmus
von Grover sehen werden.
Eine direkte Erweiterung des Deutsch-Algorithmus ist der Algorithmus von DeutschJozsa, der im nächsten Abschnitt besprochen werden soll, da das Deutsch-Problem mit der
30
4.2. Deutsch-Jozsa Algorithmus
|0i
H
|1i
H
H
M
f
Abbildung 4.1.: Schaltkreis für eine Lösung des Deutsch-Problems durch einen Quantenalgorithmus. die Berechnungsbreite beträgt zwei Qubit. Die Messung findet
nur in ersten Qubit statt.
Frage nach einer Funktion, die nur auf einem Bit arbeitet praktisch nicht sehr interessant
ist.
4.2. Deutsch-Jozsa Algorithmus
Hier wird das Deutsch-Problem erweitert auf eine Funktion, die nicht nur auf einem Qubit
arbeitet, sondern auf einem n-Qubitregister, allerdings bildet sie auf Boolesche Werte ab.
Gegeben sei wieder eine Blackbox, die eine Funktion f : {0, 1}n → {0, 1} berechnet. Die
Funktion f sei entweder konstant f (i) = f (j) ∀i, j ∈ {0, 1}n oder balanciert, das heißt, es
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) Orakelabfragen tätigen.
Wieder bringt ein Quantenalgorithmus eine erhebliche Beschleunigung, da er nur einmal
schauen muss [16].
GS1: R = |xn−1 . . . x0 i|yi ← |0 . . . 0i|1i
GS2: R ← Hn+1 R
GS3: R ← Uf R
GS4: R ← (Hn ⊗ id1 )R
GS5: Messe |xi.
GS6: Sage konstant falls das Ergebnis |0 . . . 0i ist, sonst balanciert.
4.2.1. Analyse
Wieder wurde das Orakel nur einmal befragt. Außerdem ergibt die Messung am Ende mit
Sicherheit das Ergebnis |0i, wenn f konstant ist, bzw. mit Sicherheit ein Ergebnis ungleich
31
4. Wichtige Quantenalgorithmen
|0i
H
H
M
|0i
H
|1i
H
H
f
Abbildung 4.2.: Schaltkreis eines Quantenalgorithmus, der das Deutsch-Jozsa-Problem löst.
Die Berechnung findet auf einem (n + 1)-Quantenregister statt.
|0i, wenn f balanciert ist. Die im Verlauf der Berechnung eingenommenen Zustände sind:
!
2n −1
1
1 X
Hn+1
√
|xi · √ (|0i − |1i)
|0 . . . 0i|1i →
n
2 x=0
2
!
n −1
2X
Uf
1
1
√
|xi √ (|f (x)i − |1 ⊕ f (x)i)
−→
2n x=0
2
!
n
2 −1
1
1 X
f (x)
√
(−1)
|xi · √ (|0i − |1i)
=
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) ,
n
2
2
z=0 x=0
wobei x · z das Vektorskalarprodukt von x und z ist.
Dies sieht sehr kompliziert aus, aber durch das Vorwissen, dass f entweder konstant
oder balanciert ist, lässt sich das Messergebnis klassifizieren. Die Messung von |xn−1 . . . x0 i
ergibt für festes z:
2n −1
1 X
(−1)f (x) (−1)x·z |zi
2n x=0
Fall: konstant Für z = 0 gilt x · z = 0:
n
n
2 −1
2 −1
1 X
1 X
f (x)
x·z
(−1)
(−1) |zi = n
±|0i = ±|0i.
2n
2
x=0
x=0
Da der Zustand ansonsten symmetrisch ist verschwindet die Amplitude von jedem |zi mit
z 6= 0.
Fall: balanciert Für z = 0 ist
n
n
2 −1
2 −1
1 X
1 X
f (x)
x·z
(−1)
(−1)
|zi
=
(−1)f (x) |0 . . . 0i.
2n
2n
x=0
32
x=0
4.3. Grovers unstrukturierte Datenbanksuche
Da f aber balanciert ist, ist für die eine Hälfte der x f (x) = 0, für die andere f (x) = 1.
Also ist die Amplitude von |0i gleich 0.
4.3. Grovers unstrukturierte Datenbanksuche
Ein sehr wichtiges Ergebnis für das Quantum Computing ist der Algorithmus für die unstrukturierte Suche von Grover [26]. Er startet mit einem sehr optimistischen Ansatz, der
die simultane Auswertung einer Funktion auf einer ganzen Superposition realisiert, ähnlich,
wie es beim Algorithmus von Deutsch-Jozsa der Fall war. Allerdings ergibt die Analyse des
Grover-Algorithmus, dass es allgemein nicht möglich ist, aus dem so erhaltenen Quantenzustand die gesuchte Information sofort auszulesen, da das Ergebnis wieder eine Superposition
ist, in der die Amplitude des gesuchten Ergebnisses nicht aus der anderer Basiszustände
hervorsticht. Eine Messung liefert also nur mit gewisser Wahrscheinlichkeit das gesuchte
Ergebnis. Der Algorithmus behilft sich, indem die Amplitude des gesuchten Basiszustands
sukzessive verstärkt wird, allerdings macht dieser Vorgang die enorme Beschleunigung der
simultanen Auswertung zunichte. Insofern ist der Algorithmus von Grover auch einer der
größten Dämpfer, den die Euphorie über die neuen Möglichkeiten des Quantum Computing hinnehmen musste, hofften doch viele, dass Quantencomputer für jedes Problem in
NP effiziente Lösungen liefern könnten.
Gegeben ist eine Datenbank mit N Elementen {0, . . . , N −1} es ist N = 2n . Die Schlüssel
sind die Elemente {0, 1}n . Die Satellitendaten werden nicht betrachtet. Das gesuchte
Element sei x̂. Die Datenbank wird als eine Funktion f : {0, 1}n → {0, 1} modelliert.
Die Funktion f ist der Test auf Übereinstimmung mit dem Element x̂: es gibt also genau
ein Element x̂, für das gilt f (x̂) = 1. Für alle x ∈ {0, 1}n mit x 6= x̂ gilt demnach
f (x) = 0. Eine Datenbankanfrage entspricht der Auswertung von f . Um f in einem
Quantenalgorithmus verwenden zu können, bringen wir f in die Form eines Quantenorakels
Uf : |x, yi 7→ |x, y ⊕ f (x)i.
Gesucht ist nun das Element x̂ für das f den Wert 1 ergibt.
4.3.1. Der Grover-Algorithmus
GS1: Beginne mit der gleichverteilten Superposition
GS2: Führe solange aus, bis die Amplitude von |x̂i groß ist:
a) Negiere das Vorzeichen des gesuchten Elementes |x̂i
b) Spiegele die Amplituden der aktuellen Superposition am Mittelwert
aller Amplituden.
GS3: Messe |xi und gib das Ergebnis aus.
Beispiel 4.8
Für den Fall N = 4 ist die Situation sehr einfach, wie die Abbildungen 4.3 und
4.4 zeigen. Nehmen wir an, dass x̂ = 1 ist.
Nach der Negation der Amplitude von x̂ aus der gleichgewichteten Superposition
1
1
1
1
|0i + |1i + |2i + |3i
2
2
2
2
33
4. Wichtige Quantenalgorithmen
Uf
x̂
x̂
Abbildung 4.3.: Negieren des Vorzeichens der Amplitude von x̂ im Fall N = 4 während der
ersten Iteration des Grover-Algorithmus.
ergibt sich der Zustand
1
1
1
1
|0i − |1i + |2i + |3i
2
2
2
2
Der Mittelwert der Amplituden ist also 3 ·
x̂
1
4
Spiegeln
an 41
1
2
−
1
2
= 14 .
x̂
Abbildung 4.4.: Spiegeln der Amplituden des gesamten Registers am Mittelwert 41 aller
Amplituden, im Fall N = 4 während der ersten Iteration des GroverAlgorithmus.
Spiegelt man nun alle Amplituden des Zustands aus Abbildung 4.3 so ergibt
sich der Zustand
0 · |0i + |1i + 0 · |2i + 0 · |3i = |1i
Das betrachtete Quantenregister befindet sich also mit Amplitude 1 im gesuchten Zustand. Eine Messung liefert mit Sicherheit das Ergebnis |1i. Dass nach
einmaliger Spiegelung ein sicheres Messergebnis erwartet werden kann, liegt an
der sehr günstigen Konfiguration, die bei N = 4 auftaucht. Die Fälle, in denen
man mit einer Spiegelung hinkommt, sind aber rar, so dass der Algorithmus
nicht so einfach verallgemeinert werden kann.
Spiegeln
x̂
x̂
Abbildung 4.5.: Spiegelung während einer Grover-Iteration für allgemeines N . Die Amplitude von x̂ wächst, aber es bleibt eine Restwahrscheinlichkeit, bei einer
Messung ein falsches Element zu erhalten.
34
4.3. Grovers unstrukturierte Datenbanksuche
Für allgemeines N sieht die Situation leider nicht so rosig aus: wie Abbildung 4.5 verdeutlicht, man erhält im Allgemeinen nicht Amplitude 1 bei x̂. Wiederholen der GroverIteration kann die Amplitude von x̂ weiter erhöhen. Dabei muss aber bedacht werden, dass
die Amplitudenverstärkung periodisch verläuft. Das heißt, dass man sich nach einer bestimmten Anzahl an Iterationen wieder in dem Zustand befindet, mit dem man begonnen
hatte, der gleichgewichteten Superposition.
4.3.2. Formalisierung des Grover-Algorithmus
Wir benötigen wie beim Deutsch-Problem ein weiteres Qubit |yi, um die Reversibilität der
nötigen Transformationen gewährleisten zu können. Dieses Qubit versetzen wir anfangs in
den Zustand |yi = H|1i = √12 (|0i − |1i) = |−i.
Das Orakel findet sich in der gewohnten Transformation Uf wieder.
Uf
1
|xi|−i −→ |xi √ (|f (x)i − |1 ⊕ f (x)i)
2
f (x)
= (−1)
|xi|−i
Die Grover Iteration verläuft in den zwei Schritten: Kippen und Spiegeln.P Das Kippen
N −1
wird vom Orakel Uf besorgt. Das Spiegeln von einer Superposition |xi = i=0
αi |ii an
PN −1 αj
x̄ = j=0 N wird durch folgende Abbildung realisiert.
N
−1
X
i=0
αi |ii 7→
N
−1 X
i=0
Diese Operation entspricht der Matrix

2
−1 + N2
N
2

−1 +

N
DN = 
..
..

.
.
2
N
2
N
2 · x̄ − αi |ii
2
N
...
...
..
.

2
N
2
N
..
.
. . . −1 +
2
N




Um aber die Komplexität dieses Algorithmus zu bestimmen, ist es nötig, die Transformationen in lokaler Form anzugeben. Die Spiegelung kann man folgendermaßen schreiben:


−1 0 . . . 0

. . .. 
 0
. . 
1


DN = −Hn · RN · Hn mit RN =  . .
.. ... 0 

 ..
0 ... 0 1
Dabei ist Hn die bekannte Hadamardmatrix, die sich, wie im Abschnitt 3.5 über Quantenschaltkreise besprochen, lokal darstellen lässt. die Matrix RN ist ein Spezialfall des
bedingten Vorzeichenwechsels. Betrachten wir die spezielle Funktion g mit
1 für xn−1 = . . . = x0 = 0
g(xn−1 , . . . , x0 ) =
,
0 sonst.
35
4. Wichtige Quantenalgorithmen
so erhalten wir wie oben die Transformation Ug , wobei das Hilfsqubit |yi ebenfalls als |−i
präpariert wird. Dann ergibt
Ug : |xi|yi 7→ |xi|y ⊕ g(x)i
auf |xi die Transformation RN . Wir benutzen ein zu der Black Box analoges Bauteil, um
uns ein Zwischenergebnis berechnen zu lassen.
4.3.3. Laufzeit des Grover-Algorithmus
Die große Frage ist jetzt: Wie oft müssen wir die Grover-Iteration ausführen, bis die
Amplitude von x̂ ihren höchsten Wert erreicht hat? Erst dann sollte gemessen werden, um
möglichst sicher das richtige Ergebnis zu messen. Die Anzahl an Iterationen, die maximale
Amplitude von x̂ garantiert heißt im folgenden G(N ). Sie hängt nur von der Größe des
Raumes ab.
Um G(N ) zu bestimmen, betrachten wir die Auswirkung der Grover-Iteration geometrisch. Mit
N −1
1 X
|xi
|si = √
N x=0
gilt
−DN
Uf
= IN − 2|sihs |
und
= IN − 2|x̂ihx̂ |.
Die Groveriteration ist also eine Drehung, die sich auf zwei Spiegelungen zurückführen
lässt. Wie eine dieser Spiegelungen zustande kommt verdeutlicht die Abbildung 4.6. Dass
wir hier −DN haben und nicht die gewünschte Transformation lässt sich kompensieren,
indem wir nicht um |x̂i drehen, sondern um |x̂⊥ i, dieser Wechsel ändert das Vorzeichen
und verkleinert die auftretenden Drehwinkel.
|si
hs | xi
|xi
2 · hs | xi
|xi − 2 · hs | xi · |si
Abbildung 4.6.: Die Wirkungsweise der Spiegelung −DN , der Spiegelung eines Vektors |xi
an der Hyperebene die auf |si senkrecht steht.
In jedem Iterationsschritt liegen die Vektoren |x̂⊥ i und |si den Spiegelungen zugrunde, so
dass jeder Schritt zwei Spiegelungen in der von |x̂⊥ i und |si aufgespannten Ebene bedeuten.
36
4.3. Grovers unstrukturierte Datenbanksuche
Die Drehung hängt immer von dem von |x̂⊥ i und |si eingeschlossenen Winkel ab. Dieser
ergibt sich aus
cos α = hx̂⊥ | si beziehungsweise
N −1
1 X
sin α = hx̂ | √
xi
N x=0
=
=
Für großes N gilt arcsin √1N ≈
N −1
1 X
√
hx̂ | xi
N x=0
1
√ .
N
√1 .
N
Nach m Iterationen haben wir insgesamt um den
√
Winkel (2m+1) √1N gedreht. Das heißt, dass für m = π4 N der Drehwinkel π2 + √1N erreicht
ist. Für große N sollten wir also hinreichend nahe an |x̂i angelangt sein.
Dann gilt für die Anzahl nötiger Iterationen
G(N ) ≈
√ π√
N =O
N .
4
Um die Komplexität des Algorithmus zu bestimmen, betrachten wir die einzelnen Gatter:
Das Orakel Uf zählt als ein Gatter. Die Transformation −RN benötigt log N lokale Gatter.
Jeder Iterationsschritt ist also mit O (log N ) Gattern realisierbar, also hat der gesamte
Schaltkreis die Größe
√ O log N · N .
4.3.4. Implikationen für die Komplexitätstheorie
Eine der wichtigsten Fragen die mit dem Quantum Computing aufgekommen sind, ist, ob
sich N P -vollständige Probleme mit Quantencomputern effizient lösen lassen. Gilt also für
die Quantenkomplexitätsklasse BQP , dass N P ⊂ BQP ?
Das Ergebnis des Grover-Algorithmus zusammen mit dem folgenden Satz ergibt leider
ein sehr ernüchterndes Bild.
Satz 4.2
Kein Quantenalgorithmus zur Datenbanksuche kommt mit weniger als O
kanfragen aus. In diesem Sinne ist Grovers Algorithmus optimal. [32]
√ N Datenban-
Man kann jedes N P -vollständige Problem in eine Datenbanksuche über die Ergebnisse
umwandeln, indem man ein Orakel konstruiert, das eine Testfunktion realisiert, ob diese
Eingabe eine Lösung des Problems ist. Aber die eben ermittelte quadratische Beschleunigung reicht nicht, um einen exponentiellen Algorithmus effizient zu machen.
37
4. Wichtige Quantenalgorithmen
4.4. Shors Faktorisierung
Das wohl aufsehenserregendste Ergebnis in der kurzen Geschichte des Quantum Computing
ist der Faktorisierungsalgorithmus von Shor [51]. Dieser liefert eine Möglichkeit effizient
eine beliebige Zahl in ihre Primfaktoren zu zerlegen. Da heutzutage in der Kryptographie
viele Verschlüsselungsverfahren, zum Beispiel die RSA-Verschlüsselung, auf der Annahme beruhen, dass dies nicht effizient möglich ist, kommt dem Algorithmus eine besondere
Bedeutung zu, da mit einer praktikablen Realisierung des Quantencomputers diese kryptographischen Verfahren auf einen Schlag unsicher würden.
Shors Faktorisierungsalgorithmus basiert auf einem Quantenalgorithmus, der die Periode
einer Funktion bestimmt. Dazu wird die Quantenfouriertransformation genutzt. Hat man
erst einmal die Möglichkeit, effizient die Periode einer Funktion, beziehungsweise die Ordnung eines Elements zu bestimmen, so kann man einen effizienten klassischen Algorithmus
angeben, der eine Zahl faktorisiert.
4.4.1. Mathematische Grundlagen
Periode
In diesem Abschnitt werden einige Begriffe und Sätze gebraucht, die hier kurz wiedergegeben werden sollen.
Definition 4.17
Die Periode einer Funktion f ist die kleinste Zahl p, für die gilt:
f (x + p) = f (x) ∀x ∈ Df
Ordnung
Definition 4.18
Die Ordnung einer Zahl ist die kleinste Zahl p, für die gilt:
ap ≡ 1 mod (n)
Satz 4.3
Ist n ∈ Z ungerade und keine Primpotenz, so gilt für mindestens die Hälfte der Zahlen a
in {0, . . . , n − 1}, die mit n teilerfremd sind:
die Periode p der Funktion f (x) = ax mod (n) ist gerade, und n teilt ap/2 + 1 nicht.
4.4.2. Klassischer Hauptalgorithmus
Der klassische Algorithmus wird später einen Quantenalgorithmus aufrufen, der die Periode
eines Elements effizient berechnen kann. Hier wollen wir erst einmal davon ausgehen, dass
wir das bereits können.
Eingabe: eine ungerade ganze Zahl n, die keine Primpotenz ist
Ausgabe: ein echter Teiler von n
GS1: Wähle zufällig eine Zahl a aus {2, . . . , n − 1}.
38
4.4. Shors Faktorisierung
GS2: z ← ggT(a, n). Falls z 6= 1: Ausgabe z. Abbruch.
GS3: Ermittle die Periode p von ax mod (n).
GS4: Falls p ungerade ist: Beginne wieder mit GS1.
GS5: Ermittle ggT(ap/2 + 1, n) und ggT(ap/2 − 1, n)
Hat sich kein echter Teiler ergeben, beginne erneut mit Schritt 1. Sonst:
Ausgabe z.
4.4.3. Analyse des klassischen Algorithmus
Angenommen, wir haben die Möglichkeit, die Ordnung p eines Elements a effizient zu
bestimmen: ap ≡ 1 mod (n). Damit wissen wir:
ap = 1 + k · n für ein k
mit ap − 1 = (ap/2 − 1)(ap/2 + 1)
⇒ k · n = (ap/2 − 1)(ap/2 + 1)
Man kann zeigen, dass (ap/2 − 1) kein Vielfaches von n ist. Der ggT(ap/2 + 1, n) oder
ggT(ap/2 − 1, n) ergeben einen echten Teiler von n, außer (ap/2 − 1) ist mit n teilerfremd,
und (ap/2 +1) ist ein Vielfaches von n. Nach Satz 4.3 ist dieser Fall jedoch unwahrscheinlich.
Ist n ungerade und nicht die Potenz einer Primzahl (n 6= pk , für p Primzahl), so führt
dieser Algorithmus mit Wahrscheinlichkeit größer 1/2 beim ersten Versuch zum Erfolg.
4.4.4. Laufzeit des klassischen Shor
Im Verlauf des klassischen Algorithmus sind der Euklidische Algorithmus zur Bestimmung
des ggT sowie die Berechnung
von ap/2 mod (n) die aufwendigsten Operationen. Sie
können beide in O (log n)3 erledigt werden [32]. Die erwartete Laufzeit beträgt
X k
· O (log n)3 = O (log n)3
k
2
k≥1
4.4.5. Shors Quantenalgorithmus
Nun müssen wir noch effizient die Ordnung eines Elements bestimmen können. Der dazu
nötige Quantenalgorithmus basiert zum großen Teil auf der Quantenfouriertransformation.
Leider ist die Darstellung derselben äußerst umfangreich, so dass hier nur auf die umfassende Darstellung in [32] verwiesen sei. Wir benötigen ein 2N -Quantenregister R = |xi ⊗ |yi,
dessen Größe N eine Zweierpotenz der Größenordnung des Quadrats der zu faktorisierenden
Zahl ist.
Eingabe: Eine Funktion f : {0, . . . , N − 1} → {0, . . . , N − 1} mit Periode p in Form eines
Quantenorakels.
Uf : |xi ⊗ |yi 7→ |xi ⊗ |y ⊕ f (x)i
Ausgabe: Wenn p|N wird j · N/p für ein j ausgegeben.
Wenn p6 | N so wird nur etwas in der Nähe von j · N/p ausgegeben.
39
4. Wichtige Quantenalgorithmen
GS1: Präpariere R = |xi|yi ← |0 . . . 0i|0 . . . 0i
GS2: R ← (HN ⊗ idN )R
GS3: R ← Uf R
GS4: Messe Register |yi.
GS5: R ← (QFTN ⊗ idN )R
GS6: Messe |xi und gib den Inhalt aus.
|0i
H
QFT
|0i
M
H
|0i
f
M
|0i
Abbildung 4.7.: Schaltkreis für den Quantenteil des Shor-Algorithmus.
Dass die Ausgabe des Algorithmus nicht direkt die gesuchte Periode p ergibt, ist nicht
tragisch, da man sie sehr leicht klassisch aus der Ausgabe berechnen kann, indem man sich
des Verfahrens der Näherungsbrüche bedient (siehe [23]). Da der Algorithmus garantiert,
dass das Ergebnis schon nahe an der gesuchten Zahl liegt, führt dieses Verfahren mit hoher
Wahrscheinlichkeit zur wirklichen Periode.
4.4.6. Analyse des Quantenalgorithmus von Shor
Sehen wir uns die Entwicklung des Zustands von R im Verlauf der Berechnung an:
R
=
HN ⊗id
−→
Uf
→
|xi|yi ← |0 . . . 0i|0 . . . 0i
N −1
1 X
√
|ii|0 . . . 0i
N i=0
N −1
1 X
√
|ii|f (i)i = |φi
N i=0
Wenn nun |yi gemessen wird, so wird mit der Wahrscheinlichkeit 1/N eines eines der |ii
gemessen. Zum einen ist dieser Zustand durch die Messung bekannt, zum anderen befindet
sich R tatsächlich mit seiner zweiten Hälfte im Zustand |f (i)i. Da die Amplituden aller |ji
40
4.4. Shors Faktorisierung
für j 6= i verschwunden sind, liegen in der ersten Hälfte von R, |xi, nun die ganzen Urbilder
von |f (i)i mit gleicher Amplitude vor. Wir wissen, dass f die Periode p hat. also haben
die Urbilder die Form |ki, |k + pi und so weiter. Es seien A viele verschiedene Urbilder.
Sei nun erst einmal N ein Vielfaches von p. Dann ist A = N/p. Dann befindet sich R
nach der Messung also im Zustand:
|φi
1
√ (|ki + |k + pi + · · · + |k + (A − 1)pi) ,
A
Messen von |yi
−→
wobei diese Darstellung nicht ganz korrekt ist, da die Zustände noch bezüglich mod (N )
zusammengefasst sind. Das Messergebnis ist also
A−1
1 X
√
|k + j · p
A j=0
mod (N )i|f (k)i.
Der nächste Schritt sieht nun die Anwendung der Quantenfouriertransformation vor. Sie
fasst, grob gesprochen, einen Vektor als Koeffizientendarstellung eines Polynoms auf, und
bestimmt dessen Entwicklung bezüglich periodischer Funktionen. Der resultierende Vektor
enthält nun die Frequenzanteile des Polynoms.
Definition 4.19
Auf dem Basisvektor |ji ∈ {|0i, . . . , |N − 1i} wirkt die Quantenfouriertransformation
QFTN folgendermaßen:
N −1
1 X j·i
QFTN |ji = √
ωN |ii,
N i=0
l die l-te N -te Einheitswurzel e2πl/N bezeichnet.
wobei ωN
Wir erhalten also in R:
QFTN (|xi)
−→
=
N −1 A−1
1 X X (k+j·p)·w
√
|wi|f (k)i
ω
N A w=0 j=0 N
A−1
N −1
1 X k·w X j·p·w
√
ωN |wi|f (k)i
ωN
N A w=0
j=0
k·w lediglich die Phase. Sie beeinflusst die WahrWie man sieht, verschiebt der Faktor ωN
jpw
jw
scheinlichkeit nicht, bei einer Messung |wi zu erhalten. Es ist außerdem noch ωN
= ωA
,
da wir A = N/p angenommen hatten. Also messen wir |wi mit der Wahrscheinlichkeit:
1 0
(A−1)pw 2
py
P (w) =
ω + ωN + · · · + ωN
NA N
1 0
(A−1)w 2
y
=
ωA + ωN + · · · + ωN
NA
jw
A )hj = 1. Also ist auch
= (ωA
Für den Fall, dass nun w = h · A ist, gilt ωA
P (w) =
A
1
1 2
A =
=
NA
N
p
41
QFTN
4. Wichtige Quantenalgorithmen
(A−1)pw
0 + ω py + · · · + ω
Ist nun w kein Vielfaches von A, so ist P (w) = 0, da die Summe ωN
N
N
alle N -ten Einheitswurzeln genau einmal enthält und diese sich zu Null addieren.
Im Fall p|N erhalten wir sicher ein richtiges Ergebnis. Für den Fall p6 | N ist es leider
jpw
nicht so einfach. Der Trick, ωN
als A-te Einheitswurzel auszudrücken, klappt nun nicht.
Allerdings kann man zeigen, dass unser Ergebnis bereits so nahe bei dem gesuchten Wert
liegt, dass die Näherungsbrüche uns mit hoher Wahrscheinlichkeit die gesuchte Periode
geben.
4.4.7. Laufzeit des quantischen Shor
Hadamardtransformation und Quantenfouriertransformation werden auf 2 log n Quantenbits ausgeführt. Damit ist die Hadamardtransformation
mit 2 log n und die Quantenfou
2
riertransformation mit O (log
n) Gattern realisierbar. Die modularen Potenzen lassen
3 Gattern realisieren. Daraus folgt eine Gesamtlaufzeit von
sich klassisch
mit
O
(log
n)
O (log n)3 für den Quantenteil.
Allerdings fehlt noch die Ermittlung der genauen Periode, für den Fall, dass der Quantenalgorithmus nur einen approximativen Wert ausgegeben hat. Die Methode der Näherungsbrüche liefert uns den wahren Wert leider nurmit einer Erfolgswahrscheinlichkeit von
≈ 1/(20 log log n) in einer Laufzeit von O (log n)3 .
Diese Ergebnisse zusammengefasst, liefern nun die erwartete Gesamtlaufzeit von Shors
Algorithmus
O log log n · (log n)3 = O (log n)4 .
42
Teil II.
Brechen klassischer Verschlüsselung
mit Quantenalgorithmen
43
Überblick
Das aufsehenserregendste Ergebnis des Quantum Computing ist der Faktorisierungsalgorithmus von Shor, der im letzten Abschnitt 4.4 besprochen wurde. Er hat weitreichende
Konsequenzen, da eine Aufgabe gelöst wird, von deren Unlösbarkeit lange ausgegangen
wurde, und sogar sich technisch darauf verlassen wurde. Zum Beispiel basiert das RSAVerfahren auf der Annahme, dass man große Zahlen nur sehr mühsam faktorisieren kann.
Sollte nun ein Quantencomputer gebaut werden, der auf einer realistischen Bitbreite rechnen kann, so würden all diese Verfahren über Nacht nutzlos.
Dies wirft die Frage auf, wie es denn mit anderen Möglichkeiten aussieht, seine Datenübertragung vor unbefugtem Zugriff zu sichern. Bis auf wenige Ausnahmen wie zum
Beispiel One-Time-Pads, wo Bücher voller ausgewürfelter Bits direkt ausgetauscht werden müssen, die für den alltäglichen Gebrauch viel zu aufwendig sind, basieren alle kryptographischen Verfahren auf Annahmen, dass ein bestimmtes, meist zahlentheoretisches,
Problem, wie obige Faktorisierung, nicht effizient lösbar ist.
In diesem Teil soll das Fiat-Shamir Protokoll, ein praktikables Verifizierungsverfahren,
auf Angriffe mit einem Quantencomputer getestet werden. Das Verfahren selber soll in
Kapitel 5 beschrieben werden. Leider, oder für die Benutzer des Protokolls, zum Glück,
ist es mir nicht gelungen einen effizienten Angriff zu entwickeln. Dafür liefern die Versuche
eine gute Beschreibung der möglichen Ansatzpunkte eines Quantenalgorithmus. In Kapitel
6 wird ein direkter Ansatz vorgestellt, der aber nicht die nötige Beschleunigung liefert
um effizient zu sein. Kapitel 7 bespricht dann die Möglichkeit tiefe Erkenntnisse aus der
Algebra und Gruppentheorie in einen Quantenalgorithmus einfließen zu lassen. Das Ende
dieses Teils ist offen gehalten, da eine vollständige Betrachtung der algebraischen Situation
den Rahmen dieser Arbeit sprengen würde.
45
46
5. Fiat-Shamir Code
Ein wichtiger Teilbereich der Kryptographie sind neben Verschlüsselungsverfahren, mit
denen Daten vor fremdem Zugriff geschützt werden, Verifizierungsverfahren. Diese erlauben
die Identität des Kommunikationspartners zu sichern, wobei nur ein unsicherer Kanal für
die Übermittlung zur Verfügung steht.
Dies wird im Fall des Fiat-Shamir Protokolls [20] mit dem Prinzip des Zero-Knowledge
realisiert. Auch wenn der Grad an Sicherheit des Verfahrens umstritten ist [24], ist es
praktisch relevant. Die zugrunde liegende Idee dabei ist, dass ein Prover einen Verifier
überzeugt, im Besitz eines Geheimnisses zu sein. Dieses kann zum Beispiel seine Identität
eindeutig beweisen. Dieser Vorgang soll allerdings vonstatten gehen, ohne das Geheimnis
preisgeben zu müssen, da dann ja sowohl der Verifier, wie auch jeder Lauscher an der
Leitung in der Lage wären, sich für den Prover auszugeben.
Das Fiat-Shamir Protokoll stützt sich nun auf die Annahme, dass es (noch) keine effiziente
Möglichkeit gibt, Quadratwurzeln in einem Restklassenring zu berechnen. Dazu wird vom
Prover eine Quadratzahl v veröffentlicht. In Abhängigkeit von Anfragen des Verifiers und
eines pro Kommunikationszyklus zufällig gewählten Elements wird dem Verifier eine Zahl
übermittelt, in die die Wurzel von v eingewoben ist. Dieser kann nun testen, ob er v
wiederfindet, nachdem er die erhaltene Zahl bestimmt manipuliert hat.
Um das Protokoll mit seinen Eigenheiten einzuführen, wird Abschnitt 5.1 ZeroKnowledge besprechen, im darauffolgenden Abschnitt 5.2 soll das Verfahren detailliert
vorgestellt werden. Abschließend bespricht Abschnitt 5.3 die Sicherheit des Verfahrens
indem bewiesen wird, dass sich die Berechnung von Wurzeln in Restklassenringen auf die
Faktorisierung zurückführen lässt.
5.1. Zero-Knowledge Beweise
Wenn von Kryptographie die Rede ist, wollen sich traditionell Alice und Bob unterhalten,
ohne dass Eve mithören kann. Diese Personen sollen auch hier kommunizieren. Alice hat
Informationen, die für Bob bestimmt sind, aber nicht für Eve. Die meisten herkömmlichen
Kryptographieverfahren haben das Problem, dass Alice einen Schlüssel an Bob weitergeben muss, mit dem dieser die von Alice verschlüsselten Daten wieder lesbar machen kann.
Gerät der Schlüssel nun in die Hände von Eve, so kann diese ohne weiteres die Informationen erhalten, nämlich auf dieselbe Art und Weise, wie es Bob möglich sein soll, aus der
chiffrierten Nachricht den Klartext zurückzugewinnen. Dies ist bei den in den achtziger
Jahren entwickelten Zero-Knowledge Beweisen [25] nicht der Fall. Sie sind aber nicht so
sehr zum Datenaustausch geeignet, sondern eher dazu, einen Beweis zu führen, ohne seine
Durchführung Schritt für Schritt preiszugeben. Dies ist zum Beispiel dann wichtig, wenn
mit dem Verfahren, das der Beweis benutzt, viel Geld verdient werden kann.
47
5. Fiat-Shamir Code
Um die Idee hinter Zero-Knowledge Beweisen zu vermitteln, ist folgendes Beispiel am
geeignetsten: Angenommen, Alice habe das Rezept für den Stein der Weisen. Sie wäre
sehr dumm, es zum Patentamt zu tragen, um es dort registrieren zu lassen, da schon bald
der Patentbeamte alle Bleileitungen des Gebäudes vergoldet hätte, kurze Zeit später kein
Blei mehr auf der Welt existieren würde, und der Goldpreis so sehr gefallen wäre, dass sich
niemand mehr für einem Stein der Weisen interessieren würde. Allerdings ist es nicht so
einfach, ein Patent anzumelden, ohne dem Amt den Beweis vorzulegen, dass man wirklich
ein entsprechendes Verfahren beherrscht. Dem Beamten einfach für jeden Bleiklumpen ein
Stück Gold zu geben mag im Einzelfall zu einer Patenteintragung führen, ist noch kein
endgültiger Beweis für die Existenz des Steins der Weisen. Also muss Alice sich etwas
Raffinierteres einfallen lassen, um das Patentamt zu überzeugen.
Beim Zero-Knowledge geht es nun darum, dass Alice Bob überzeugt, etwas zu können
oder zu wissen, ohne dass sie ihm verrät, wie es geht. Bob ist dabei gar nicht so sehr
die vertrauensunwürdige Person, sondern es ist vielmehr der Vorgang, ihm das Geheimnis
anzuvertrauen, der anfällig ist für Angriffe von Eve. Deswegen ist das Entscheidende der
Verfahren die Zero-Knowledge-Eigenschaft, die besagt, dass Eve nichts über das Geheimnis
erfahren kann, wenn sie Alice und Bob beim Überzeugungsprozess zusieht.
Ein Teil der Zero-Knowledge Protokolle basiert auf einem Dialog von Alice und Bob, sie
werden interaktive Verfahren genannt. Dabei stellt Bob Aufgaben an Alice, die diese nur
bearbeiten kann, wenn sie das Geheimnis tatsächlich kennt. Bob muss dabei die Aufgaben
so stellen, dass Alice die Antworten nur raten kann, wenn sie nicht im Besitz der Information
ist, so dass sich die Fehlerwahrscheinlichkeit, dass sie richtig antwortet, obwohl sie das
Geheimnis nicht kennt, mit jeder richtigen Antwort auf Bobs Nachfragen halbiert. Damit
kann Bob in annehmbarer Zeit praktisch sicher sein.
Mathematisch kann man natürlich nicht von einem Beweis sprechen, da dieser, zumindest
theoretisch, vom Leser nachvollzogen können werden muss. Zero-Knowledge Verfahren
müssen nicht nur durchführbar sein, dass heißt, dass Alice die Aufgabe von Bob auch
erfüllen kann, und die Zero-Knowledge Eigenschaft haben, das heißt, dass ein Simulator in
der Lage sein muss, in Polynomialzeit einen Beweis nachzustellen, der von Eve nicht vom
Originalvorgang unterschieden werden kann, sondern auch noch korrekt sein, Alice darf
keine Chance haben, eine der Aufgaben von Bob mit einer größeren Wahrscheinlichkeit als
1
2 richtig zu lösen, wenn sie das Geheimnis nicht kennt.
Die Verbindung von Komplexitätstheorie und Zero-Knowledge Verfahren besteht darin,
dass jeglicher Algorithmus in NP leicht zu einem Zero-Knowledge Verfahren ausgebaut werden kann [8]. Sollte also jemand die effiziente Berechnung eines in NP liegenden Problems
gefunden habe, so kann er dies in Zero-Knowledge Beweisform der Welt mitteilen, da diese
nicht in der Lage ist, schnell genug nachzurechnen.
Im folgenden Abschnitt soll es nun um ein spezielles, technisch auch realisiertes, interaktives Zero-Knowledge Verfahren gehen. Das Fiat-Shamir-Verfahren, nach seinen Entwicklern
benannt [20], wird unter anderem im VideoCrypt-Protokoll von Pay-TV Decodern benutzt,
um sich dem Sender zu authentifizieren, ohne einen Schlüssel zu verschicken. Dieser könnte
leicht abgefangen, und dazu benutzt werden, von einem beliebigen Gerät aus den Empfang
freizuschalten. Hier ist also Alice der Decoder, der den gekauften Chipschlüssel besitzt, Bob
der Sender des Programms, das es zu bezahlen gilt und Eve wäre der Kunde des Senders,
der seinen Schlüssel einem Freund zur Verfügung stellen möchte.
48
5.2. Fiat-Shamir Protokoll
5.2. Fiat-Shamir Protokoll
Das Zero-Knowledge Beweisverfahren von Fiat und Shamir [20] beruht auf der Annahme,
dass es sehr schwer ist, in der multiplikativen Gruppe des Restklassenrings Z∗n , Quadratwurzeln zu berechnen. Alice besitzt also die geheime Quadratwurzel einer veröffentlichten Zahl
aus Z∗n und kann Bob davon überzeugen, ohne ihm die Wurzel zu offenbaren. Durch die
relativ einfachen Berechnungen, die im Laufe des Protokolls vollführt werden müssen, wird
dieses Verfahren für Authentifizierungsaufgaben anwendbar, wie zum Beispiel am Geldautomaten, wo nichts über die Person herausgefunden werden muss, außer ihre Identität. Zur
Datenübertragung beziehungsweise -verschlüsselung eignet es sich hingegen nicht.
Als erstes muss Alice einen Schlüssel generieren. Dazu denkt sie sich zwei große Primzahlen p und q aus und veröffentlicht deren Produkt n = p · q. Das ist nötig, um den Ring
Z∗n zu bestimmen, in dem gerechnet wird. Die Zahl, die ihr die eindeutige Authentifizierung gegenüber Bob ermöglicht, ist eine weitere Zahl s, deren Quadrat v ≡ s2 mod (n)
wiederum veröffentlicht wird. Die Zahl v benutzt Bob, um zu testen, ob Alice s wirklich
kennt.
Das Fiat-Shamir Protokoll sieht folgendermaßen aus (Darstellung nach [39]):
Alice wählt zufällig eine Zahl y ∈ Z∗n , bildet x ≡ y 2 mod (n) und sendet x an Bob.
Bob wirft eine Münze und sendet das erzeugte Zufallsbit b an Alice.
y falls b = 0
Alice antwortet mit z =
y · s mod (n) falls b = 1
z 2 mod (n) = x falls b = 0
Bob testet nun ob
2
z mod (n) = x · v mod (n) falls b = 1
⋆
⋆
⋆
⋆
Wenn dieser Vorgang m mal durchgeführt wird und Bobs Tests immer wahr ergeben
haben, kann Bob sagen, dass die Wahrscheinlichkeit, dass Alice s nicht kennt, unter 21m
liegt.
Satz 5.4
Das Fiat-Shamir Protokoll ist ein Zero-Knowledge Verfahren.
Beweis
Durchführbarkeit
Alice kennt sowohl s wie auch y, so dass sie Bobs Anfragen richtig beantworten kann.
Korrektheit
Eve, die s nicht kennt, kann auf Bobs Anfrage nicht antworten, wenn er das Bit 1 sendet.
Aber sie kann in jedem der beiden Möglichkeiten für Bobs Bit entsprechende Vorkehrungen
treffen und Bob ein geschummeltes x übermitteln. Deswegen ist die Interaktivität der
Beweisform sehr wichtig. Wenn Eve nicht vorhersehen kann, welches Bit Bob schickt, kann
sie nur mit Wahrscheinlichkeit 21 seine Anfrage korrekt beantworten.
Wenn Eve annimmt, dass Bob das Bit 0 schickt, braucht sie nicht viel zu tun, da sie s
dafür nicht benötigt. Sollte sie aber b = 1 antizipieren, so bildet sie Anfangs x = y 2 v −1
mod (n). Sollte Bobs Anfrage wie erwartet 1 sein, schickt sie z = y und Bob stellt fest,
49
5. Fiat-Shamir Code
dass z 2 ≡ y 2 ≡ y 2 v −1 v ≡ xv mod (n) ist. Sollte Bobs Anfrage aber b = 0 sein, so müsste
Eve s kennen, um seine Anfrage zu bearbeiten.
Zero-Knowledge-Eigenschaft
Eine beobachtende Eve kann keine Informationen aus dem Gesehenen ziehen, da ihr die
Möglichkeit fehlt, die Anfragen von Bob zu steuern, beziehungsweise nachzuprüfen, ob diese
nicht abgesprochen wurden. Der für einen formalen Beweis nötige Argumentationsweg
ist, dass Eve durch eine Videoaufzeichnung des Vorganges niemand anderes in der Art
überzeugen kann, wie Alice es getan hat. Jeder wäre in der Lage, eine Videoaufnahme zu
generieren, die durch nichts von der Originalsequenz unterscheidbar wäre.
2
5.3. Sicherheit des Fiat-Shamir Verfahrens
Um den Sicherheitsgrad des Fiat-Shamir-Protokolls abschätzen zu können, hilft folgender
Satz:
Satz 5.5
Sei n = p · q, p 6= q prim. Dann ist das Berechnen von Quadratwurzeln
tens so schwierig, wie das Faktorisieren von n.
mod (n) mindes-
Beweis
Angenommen, wir haben eine Möglichkeit, effizient Wurzeln in Z∗n zu berechnen. Wähle
b1 ∈ Z∗n zufällig und bilde a = b21 mod (n). Bestimme eine Wurzel b2 von a. Da n das
Produkt zweier Primzahlen ist, hat a genau vier Quadratwurzeln nach dem Gaußschen
Reziprozitätssatz [14]. Diese sind {x, n − x, y, n − y}. Mit Wahrscheinlichkeit 12 erhalten
wir b1 oder n − b1 . Dies nützt uns nichts, also starten wir nochmal und würfeln ein neues b1
aus. Im Mittel sollten wir nach dem zweiten Versuch ein b2 6∈ {b1 , n − b1 } erhalten haben.
Nun gilt in Z∗n aber
(b1 + b2 )(b1 − b2 ) ≡ b21 − b22 ≡ a − a ≡ 0 mod (n)
das heißt, dass p und q das Produkt (b1 + b2 )(b1 − b2 ) teilen. Jetzt muss also nur noch der
ggT(n, b1 + b2 ) berechnet werden und wir haben einen Teiler von n und damit auch den
zweiten.
2
Um die Frage, wie leicht das Protokoll mit Hilfe eines Quantenalgorithmus angegriffen
werden kann, wird in den nächsten zwei Kapiteln dieses Teils besprochen. Beide beschäftigen sich mit der Frage, ob die Berechnung von Quadratwurzeln mit Hilfe eines Quantencomputers effizient zu bewerkstelligen ist. Anfangs soll ein naiver Ansatz besprochen werden,
der leider nicht zum Ziel führt, da er sich auf die Datenbanksuche zurückführen lässt, deren
quadratische Beschleunigung nicht ausreicht, die Berechnung effizient zu machen. Danach
wird die Richtung aufgezeigt, in die eine umfassende Behandlung des Problems gehen müsste. Dieser Ansatz führt aber sehr schnell in solche Tiefen der Darstellungstheorie, dass eine
Behandlung im Rahmen dieser Arbeit nicht möglich ist.
50
6. Direkter Ansatz
Wenn man sich die Quantenalgorithmen aus Kapitel 4 ansieht, ist man versucht, die Aufgabe der zu findenden Wurzeln geradeheraus anzugehen. Dies soll hier in diesem Kapitel
beschrieben werden, wobei, damit sei der Schluss dieses Kapitels vorweggenommen, die
Grenzen des Quantum Computing noch einmal an eigenen Leibe erfahren werden können.
Die Idee ist so naheliegend wie einfach. Es wird eine Superposition erzeugt, die sowohl
alle Zahlen wie deren Quadrate in verschränkter Form enthält. Das weitere Vorgehen
ähnelt dem Algorithmus von Grover aus Abschnitt 4.3. Dies war mir allerdings bei der
anfänglichen Konstruktion nicht klar. Die Fragestellung ist wie gehabt. Wir haben eine
Quadratzahl v ∈ Z∗n , wobei n = p · q das Produkt zweier Primzahlen ist. Die Gleichung
s2 = v hat demnach vier Lösungen für s. Wir erstellen uns ein Quantenregister in dem alle
Zahlen aus Z∗n mit ihren Quadraten verschränkt sind. Nun gilt es noch die Anteile von v
herauszufiltern. Dazu benötigen wir eine Funktion fv , die auf Gleichheit mit v testet, also
genau dann fv (x) = 1 ist, wenn x = v. Diese Funktion ist direkt über das Skalarprodukt
h· | ·i in H gegeben. Wenn man diese Funktion nun so benutzt, wie die Datenbankfunktion
im Algorithmus von Grover, bekommt man bei den richtigen vier Einträgen ein negatives
Vorzeichen in der Amplitude und kann die normale Amplitudenverstärkung nutzen.
|xi
|yi
|xi
A
|y ⊕ x2i
Abbildung 6.1.: Bauteil A für die unitäre Berechnung eines Quadrats.
Seien |xi, |yi n-Qubitregister. Wir betrachten ein (2n + 1)-Qubitregister R = |x, y, zi,
das anfangs auf den Zustand |0, 0, −i präpariert wird. Die auftretenden Transformationen
sind die Hadamardtransformation Hn auf einem n-Qubitregister, die Transformation A,
die die Quadrate von |xi nach |yi schreibt,
A|x, y, −i = |x, y ⊕ x2 , −i
und die Transformation, die die Funktion fv realisiert, wobei
fv (y) = hy|vi
Uf : |yn−1 , ..., y0 , bi 7→ |yn−1 , ..., y0 , b ⊕ fv (y)i
In Abbildung 6.2 ist der Schaltkreis der Berechnung angegeben.
51
6. Direkter Ansatz
|0i
H
|0i
|φi
A
|−i
U fv
Abbildung 6.2.: Schaltkreis für den wesentlichen Teil des Algorithmus zur Berechnung einer Quadratwurzel in Z∗n . Die zwei oberen Leitungen fassen je einen nQbitregister zusammen. Die gestrichelte Box ist die Stelle der Amplitudenverstärkung, da in dem Fall die Transformation Ufv wiederholt angewendet
werden muss. Das Ergebnis
Ausführung
P der zweiten LeitungPbei einmaliger
n−1
2
−n/2
von Ufv ist |φi = 2
i2 =v |i, v, −i , siehe Anai=0, i2 6=v |i, i , −i −
lyse.
6.1. Algorithmus für das Wurzelziehen in Restklassenringen
GS1: R = |x, y, zi ← |0, 0, −i
GS2: |xi ← Hn |xi
GS3: R ← AR
GS4: R ← Ufv R
GS5: ausreichend häufige Amplitudenverstärkung
GS6: Messe |xi.
6.2. Analyse des Algorithmus
Die Zwischenschritte der Berechnung sind
|0, 0, −i
Hn |xi
7−→
A
7−→
U fv
7−→
=
n−1
1 X
√ n
|i, 0, −i
2 i=0
n−1
1 X
|i, i2 , −i
√ n
2 i=0
n−1
1 X
2
(−1)fv (i ) |i, i2 , −i
√ n
2 i=0

n−1
X
X

1 
2
 = |φi
|i,
i
,
−i
−
|i,
v,
−i
√ n

2  i=0
i2 =v
i2 6=v
52

6.2. Analyse des Algorithmus
Die Amplitude der Wurzeln von v ist negativ, die restlichen Amplituden sind alle positiv.
Analog zum Vorgehen in Grovers Amplitudenverstärkung lassen sich nun die Wahrscheinlichkeiten, bei einer Messung von |xi eine der Wurzeln von v zu messen erhöhen.
Prinzipiell lassen sich mit diesem Konzept nun Wurzeln in Restklassenringen berechnen. Aber wie wir bereits im Zusammenhang mit Grovers Algorithmus in Abschnitt 4.3
besprochen haben, sind wir tatsächlich dem Irrweg aufgesessen, aus unserem Problem eine
Datenbanksuche zu konstruieren. So attraktiv dies auch ist, so haben wir doch zu einer
exponentiell großen Datenbank nur eine quadratische Beschleunigung. Dieser Ansatz ist
nicht effizient.
Deswegen seien hier auch alle Detailfragen, wie genau die Transformationen A und Ufv zu
realisieren sind, dahingestellt. Es würde uns eh nichts nützen. Aus dieser Erkenntnis heraus
fasst das nächste Kapitel das Problem noch einmal von einer ganz neuen Seite an. Man kann
die Suche nach der Quadratwurzel als Suche nach einer versteckten Untergruppe auffassen,
und diese mit Hilfe einer verallgemeinerten Quantenfouriertransformation berechnen, siehe
zum Beispiel [37].
53
6. Direkter Ansatz
54
7. Algebraischer Ansatz
Wie das letzte Kapitel gezeigt hat, ist es nicht immer möglich, obwohl sich das Quantum
Computing noch in der Pionierphase befindet, mit einem naiv-direkten Ansatz ein schweres
Problem mit einem Quantenalgorithmus zu lösen. Es tauchen in der Literatur aber immer
wieder Hinweise auf, dass es doch möglich sein sollte, das Fiat-Shamir-Protokoll mit Hilfe
eines Quantencomputers zu brechen, zum Beispiel in [13, 28, 29, 36, 38]. Allerdings wurde
das nirgends detailliert beschrieben, da die Veröffentlichungen, die sich dem Problem von
der gruppentheoretischen, klassisch kryptographischen Seite nähern, sich nicht auf konkrete
Protokolle beziehen, sondern eher Klassen von Kryptographiesystemen behandeln. Auf der
anderen Seite steht die Behandlung der diskreten Fouriertransformation, beziehungsweise
des diskreten Logarithmus mit Quantenalgorithmen, dem sehr viele Veröffentlichungen gewidmet sind.
Der Zusammenhang ist in der Suche nach sogenannten versteckten Untergruppen gegeben. Dieser Suche entspricht das Bestimmen der Quadratwurzeln um das Fiat-ShamirProtokoll zu brechen. Dieses Kapitel beschränkt sich darauf, kurz die jeweilige Literatur
vorzustellen, in der die Hinweise zu finden sind und die besprochenen Probleme zu definieren. Aus Zeitgründen muss ein konkretes Nachvollziehen der einzelnen Schritte bezogen
auf das Finden der Quadratwurzeln in Restklassenringen leider ausbleiben, auch wenn es
sehr wünschenswert gewesen wäre. Allerdings liegt die nötige Tiefe der Materie außerhalb
des Rahmens dieser Arbeit.
In diesem Kapitel wird erst die allgemeine Fouriertransformation und ihre Rolle in den
erfolgreichen Quantenalgorithmen in Abschnitt 7.1 besprochen. Abschnitt 7.2 wird die Suche nach einer versteckten Untergruppe definieren und den Zusammenhang zur allgemeinen
Fouriertransformation angeben. Abschließend soll in Abschnitt 7.3 erklärt werden, wie dies
nun dazu genutzt werden kann, das Fiat-Shamir-Protokoll zu brechen.
7.1. Allgemeine Fouriertransformation
Es gibt eine der klassischen diskreten Fouriertransformation übergeordnete Klasse von Fouriertransformationen, die bezüglich einer beliebigen abelschen Gruppe arbeiten. In [36] wird
herausgearbeitet, dass alle Quantenalgorithmen, die eine exponentielle Beschleunigung gegenüber klassischer Berechnung liefern, allesamt auf einer Fouriertransformation bezüglich
verschiedener Gruppen beruhen. Das sind der Algorithmus von Deutsch [16] und der Algorithmus von Shor [51], die in Kapitel 4 beschrieben wurden, sowie der Algorithmus von
Simon [55], der für eine Funktion entscheidet, ob sie bijektiv oder periodisch ist. Dies weist
darauf hin, dass auch für unser Problem ein solcher Ansatz der Erfolgversprechendste ist.
In der Physik, vor allem in der Signaltechnik, ist die Fouriertransformation eins der
wichtigsten rechnerischen Hilfsmittel, da sie eine verlustfreie Übersetzung einer Funktion,
von der Zeitdarstellung in die Frequenzdarstellung, beziehungsweise von der Orts- in die
55
7. Algebraischer Ansatz
Impulsdarstellung liefert. Durch diesen Trick lassen sich vor allem Faltungen und ähnliches
sehr einfach ausrechnen. Diese Form der Fouriertransformation ist aber nur einer ihrer
Spezialfälle. Das Konzept eines solch umfassenden Basiswechsels lässt sich verallgemeinern,
so dass die Transformation bezüglich einer beliebigen endlichen Gruppe stattfindet. Eine
prägnante Beschreibung der allgemeinen Fouriertransformation liefert [34]. Dies wollen wir
kurz wiedergeben.
Sei G eine endliche Gruppe. Wir schreiben sie multiplikativ, η sei die Ordnung von G.
Sei CG die komplexe Gruppenalgebra von G. Sei BZeit = {g1 , . . . , gη } die Standardbasis von
P
u(g)v(g) sei das natürliche innere Produkt in CG. Die multiplikative
CG, und (u, v) =
g∈G
Darstellung
einer Gruppe
Fouriertransformation
Gruppe der invertierbaren (d × d)-Matrizen mit komplexen Einträgen sei GLd (C).
Definition 7.20
Eine komplexe Matrixdarstellung ρ von G ist ein Gruppenhomomorphismus ρ : G →
GLd (C). Die Dimension d = dρ heißt Grad oder Dimension der Darstellung ρ. Zwei
Darstellungen ρ1 und ρ2 vom Grad d heißen äquivalent, wenn es eine invertierbare Matrix
A ∈ GLd (C) gibt, so dass ρ2 (g) = A−1 ρ1 (g)A für alle g ∈ G gilt.
Eine Darstellung ρ : G → GLd (C) heißt irreduzibel, wenn es keinen Unterraum von Cd
gibt, der invariant unter ρ(g) für alle g ∈ G ist, außer der Null. Die Darstellung ρ heißt
unitär, wenn ρ(g) für alle g ∈ G unitär ist.
Für jede Darstellung existiert eine äquivalente unitäre Darstellung. Bis auf Äquivalenz gibt es nur endlich viele irreduzible Darstellungen von G. Diese Anzahl sei mit ν
bezeichnet, sie ist gleich der Anzahl verschiedener Konjugationsklassen von G. Für die
darstellungstheoretischen Sätze siehe [22].
Sei R = {ρ1 , . . . , ρν } eine vollständige Menge nichtäquivalenter, irreduzibler, unitärer
Darstellungen von G. Der jeweilige Grad von ρi sei di . Für jede der Darstellungen ρ ∈ R
heißt der Vektor ρkl ∈ CG Matrixkoeffizient von R, er definiert sich über den (k, l)-ten
Eintrag von ρ(g) für alle g ∈ G. Das innere Produkt zweier Matrixkoeffizienten aus R ist
genau dann ungleich Null, wenn sie gleich sind. Für jeden Matrixkoeffizienten ρkl sei bρ,k,l
der normalisierte Matrixkoeffizient, und BFrequenz = {bρ,k,l } die Menge der normalisierten
Matrixkoeffizienten.
Man kann zeigen, dass die Grade di der Darstellungen ρi ∈ R der
Pν
2
Relation
i=1 di = η genügt. Daraus folgt, dass BFrequenz eine Orthonormalbasis des
Vektorraumes CG ist.
Definition 7.21
Der lineare Operator FG auf CG, der einen Vektor v ∈ CG in der Standardbasis BZeit
auf seine Darstellung v̂ ∈ CG in der Basis BFrequenz abbildet, heißt Fouriertransformation
für CG auf R.
Jeder Eintrag von v̂ heißt Fourierkoeffizient von v.
Die gewöhnliche Fouriertransformation ergibt sich für G = Z2n [17]. Jede Fouriertransformation kann effizient implementiert werden [36, 40].
7.2. Suche nach der versteckten Untergruppe
Die Anwendung der Fouriertransformation in Quantenalgorithmen ist formal gruppentheoretisch gesehen die Suche nach einer versteckten Untergruppe. In diesem Abschnitt soll
56
7.3. Zusammenhang mit dem Fiat-Shamir Protokoll
zum einen das Problem definiert werden, wobei sich die Darstellung an [18] anlehnt, zum
anderen soll beschrieben werden, wie der Zusammenhang zwischen versteckter Untergruppe
und allgemeiner Fouriertransformation aussieht.
Definition 7.22
H-periodisch
Eine Funktion f auf G mit beliebigem Wertebereich heißt H-periodisch, wenn sie konstant auf den Linksnebenklassen einer Untergruppe H von G ist. Nimmt f auf jeder
Nebenklasse einen unterschiedlichen Wert an, so heißt f strikt H-periodisch.
Definition 7.23
versteckte
Untergruppe
Ist f strikt H-periodisch, so heißt H versteckte Untergruppe von G.
Definition 7.24
Die Suche nach der versteckten Untergruppe lautet wie folgt:
Gegeben ist eine Beschreibung von G und eine Funktion f , die zu einer Untergruppe H
strikt H-periodisch ist.
Finde eine erzeugende Menge von H.
Einen guten Überblick über die Zusammenhänge von der Suche nach versteckten Untergruppen und Quantenalgorithmen, die sich auf eine Fouriertransformation stützen, liefert
[41]. Dort wird ein allgemeiner Quantenalgorithmus angegeben, der für die Darstellung
einer Gruppe G, welche eine versteckte Untergruppe H beinhaltet, H berechnet, indem die
Fouriertransformation bezüglich G benutzt wird. Die Autoren geben außerdem an, dass
die so vorgenommene Bestimmung der Untergruppe H nicht immer effizient, in manchen
Fällen sogar gar nicht, realisierbar ist. Zum Beispiel ist das Problem der versteckten Untergruppe nicht implementierbar, wenn es sich bei G um eine unendliche Gruppe handelt. Im
Einzelfall ist es aber noch möglich, die Berechnung einer irreduziblen Komponente vorzunehmen, die sich dann klassisch in Polynomialzeit auf das vollständige Ergebnis erweitern
lässt.
7.3. Zusammenhang mit dem Fiat-Shamir Protokoll
Erste Hinweise darauf, dass sich die Quadratwurzelberechnung auf das Ermitteln einer Untergruppe zurückführen lässt, liefert [13]. In dieser Publikation wird ein Überblick über
die bestehenden Kryptographieverfahren gegeben, die auf schweren Problemen in quadratischen Zahlkörpern beruhen. Das von uns untersuchte Fiat-Shamir-Protokoll gehört zwar
nicht zu dieser Klasse, aber die dort geleistete Arbeit gibt Anhaltspunkte, wie man verfahren kann, um ein ähnlich gelagertes Problem auf die gruppentheoretische Ebene zu
bekommen.
Der Zusammenhang des Fiat-Shamir-Protokolls und reellen quadratischen Zahlkörpern
gibt [29]. In [28] wird ein Polynomialzeitalgorithmus angegeben, der in solchen reellen quadratischen Zahlkörpern Regulatoren errechnet, die wiederum benutzt werden können, um
die oben genannten Probleme zu lösen. Eine leichte Variation des Fiat-Shamir-Protokolls
existiert, dass auf der Berechnung eines Hauptideals beruht [12]. Diese Variante wird mit
dem in [28] angegebenen Polynomialzeit-Quantenalgorithmus gebrochen.
57
hidden
subgroup
problem
7. Algebraischer Ansatz
Im Bezug auf unser Problem ist es aber hilfreicher, sich von der anderen Seite zu nähern,
und die versteckte Untergruppe zu identifizieren, die uns die Quadratwurzeln offenbart.
Die effiziente Implementierung der Suche kann aber leider nicht angegeben werden.
Analog zu der in [41] gegebenen Formulierung des Algorithmus von Grover als Berechnung einer versteckten Untergruppe, können wir nun zumindest formal die Lösung zur
Bestimmung der Quadratwurzeln in Restklassenringen angeben. Nehmen wir an, dass wir
die Situation aus dem letzten Kapitel haben. Wir haben in einem (2n + 1)-Quantenregister
aus Hn ⊗ Hn ⊗ H1 den Zustand


|φi =
n−1
X

1 X
√ n
|i, i2 , −i −
|i, v, −i

.
2
2
i=0
i =v
i2 6=v
In den ersten n Qubits befinden sich die Zahlen von 1 bis n codiert. Sie befinden sich
allesamt in einer gleichgewichteten Superposition. In den zweiten n Qubits befinden sich
die Quadratzahlen aus {1, . . . , n}. Sie sind jeweils mit ihren vier Wurzeln verschränkt.
Die uns interessierende Gruppenoperation ist Sn , die symmetrische Gruppe auf den Symbolen 1, . . . , n. Sie soll nur auf den zweiten n-Hilbertraum wirken. Die von uns gesuchte
Untergruppe ist der Stabilisator Stabv = {g ∈ Sn |g(v) = v} bezüglich |yi = |vi. Wir haben
also Invarianz unter der Gruppenoperation
!
n−1
n−1
X
X
ai |g(i)i.
ai |ii 7→
Stabv × H → H,
g,
i=0
i=0
Da die Stabilisatoren in Sn eindeutig den stabilisierten Elementen entsprechen, genügt zur
Bestimmung der Quadratwurzel die Ermittlung von Stabv . Wendet man ihn auf obigen verschränkten Zustand an, so stabilisiert er auf dem ersten n-Hilbertraum genau die gesuchten
Quadratwurzeln.
Diese Erkenntnisse in einen effizient arbeitenden Quantenalgorithmus zu übersetzen ist
leider nicht so offensichtlich, wie es an dieser Stelle scheint, da sich in vielen Detailfragen
nach konkreten Transformationen Probleme auftun, die man nicht erwartet. Auch die
Ausformulierung dieser recht konkreten Punkte ist also leider zurückzustellen.
58
Teil III.
Synthese von Quantum Ordered
Binary Decision Diagrams aus
Quantenschaltkreisen
59
Überblick
Eine Richtung, sich mit Quantum Computing zu beschäftigen, ist, den neuen Fundus
an algorithmischen Möglichkeiten zu nutzen, um Probleme anzugehen, die klassisch nicht
oder nur ineffizient lösbar sind. Dies war die dem letzten Teil zugrunde liegende Motivation.
In diesem Teil soll nun Quantum Computing als eigenständiges Rechenmodell betrachtet
werden.
Die Theoretische Informatik ist zwar, verglichen mit einer Disziplin wie Mathematik oder
Physik, ein sehr junges Gebiet, blickt aber doch auf eine lange Entwicklung zurück, in deren
Verlauf viele Bereiche sehr detailliert erforscht wurden. Um nun eine möglichst umfassende
Beschreibung des Quantum Computing zu bekommen, kann jeder Ansatz aus dem klassischen Computing nach und nach übertragen werden. Durch das Korrespondenzprinzip der
Quantenmechanik ergibt sich eine natürliche Übersetzung der Begriffe. Ob diese allerdings
denselben Anforderungen genügen, wie ihr klassischer Gegenpart, ist nicht klar. Es ist
sogar sehr wahrscheinlich, dass sich die so erschaffenen Quantengebilde stark abweichend
verhalten. Nicht zuletzt das No-Cloning-Theorem (Abschnitt 3.7) sorgt dafür, dass viele
im Klassischen völlig selbstverständliche Dinge, wie das Kopieren von Bits, im Quantenfall
einfach nicht möglich sind.
In diesem Teil der Arbeit soll nun untersucht werden, welche Konsequenzen es hat, wenn
man das Konzept der Ordered Binary Decision Diagrams (OBDD), einer Graphendarstellung Boolescher Funktionen, mit einem Quantenrechner realisiert. Dazu wird Kapitel 8
das klassische Konzept der OBDDs vorstellen und ihre Relevanz besprechen. In Kapitel 9
wird dieses Konzept konsequent auf den Quantenfall übertragen. Im abschließenden Kapitel 10 wird der Frage nachgegangen, ob es möglich ist, QOBDDs zur Verifizierung von
Quantenschaltkreisen zu verwenden.
61
62
8. Klassische OBDDs
Boolesche Funktionen sind eine für die Informatik wichtige Funktionenklasse, da sie viele
Probleme beschreiben können und trotzdem gut theoretisch behandelbar sind. Außerdem
sind natürlich alle Programme im PC Boolesch realisiert. Um nun Boolesche Funktionen darzustellen, gibt es verschiedene Modelle: zum Beispiel Formeln, Wertetabellen und
Schaltkreise, aber auch Branchingprogramme, die eine Oberklasse der Ordered Binary Decision Diagrams (OBDDs) darstellen. Letztere bieten den Vorteil, gleichzeitig noch eine
algorithmische Auswertung der Funktion zu beschreiben.
Dieses Kapitel folgt in seiner Darstellung der sehr klar formulierten Dissertation von
Detlef Sieling [52], in der OBDD-Algorithmen beschrieben und untere Schranken bewiesen
werden. In Abschnitt 8.1 soll das Konzept der Branchingprogramme im allgemeinen eingeführt werden. Abschnitt 8.2 erläutert, welche Einschränkungen aus einem allgemeinen
Branchingprogramm ein OBDD machen. Die Hauptaufgabe dieses Teils der Arbeit wird
in Kapitel 10 in der Synthese von Quanten-OBDDs aus Quantenschaltkreisen liegen. Um
dies einzuführen widmet sich Abschnitt 8.3 erst einmal der Synthese klassischer OBDDs.
8.1. Branchingprogramme
Eine sehr anschauliche Art Boolesche Funktionen darzustellen, nutzt gerichtete Graphen.
Jeder Knoten ist mit je einer Variablen xi beschriftet und von ihm gehen je eine Null- und
eine Einskante aus. Ist man an einem Knoten angelangt, so testet man die angegebene
Variable, und je nach Ergebnis wählt man den Knoten, zu dem die entsprechende Kante
weist.
Definition 8.25
Ein Branchingprogramm ist ein gerichteter azyklischer Graph mit genau einer Quelle.
Der Graph enthält nur innere Knoten mit Ausgangsgrad 2 und Senken mit Ausgangsgrad
0. Die inneren Knoten sind mit Variablennamen markiert, und die ausgehenden Kanten
sind den Werten 0 und 1 zugeordnet. Die Senken sind mit 0 oder 1 markiert.
Die Berechnung einer Booleschen Funktion mit einem Branchingprogramm startet in der
Quelle. An jedem Knoten v wird die dort angegebene Variable xi getestet. Im Fall xi = 1
wird der mit der 1-Kante an v gebundene Knoten angenommen. Ist xi = 0 so wird in den
Knoten gewechselt, der an der 0-Kante von v hängt. Wird eine Senke erreicht, so ist die
Berechnung beendet, und als Ergebnis wird die Markierung der Senke ausgegeben.
Jede Boolesche Funktion kann durch ein Branchingprogramm dargestellt werden. Dies
sieht man mit folgender Überlegung ein: mit Hilfe der sogenannten Shannon-Zerlegung
teilen wir unsere Funktion f = x̄1 f |x1=0 ∨ x1 f |x1 =1 . Dann erzeugen wir den ersten Knoten
unseres Branchingprogramms und markieren ihn mit der Variable x1 . An die Nullkante
hängen wir das Ergebnis der weiteren Zerlegung von f |x1 =0 , an die Einskante das Ergebnis
63
Branchingprogramm
8. Klassische OBDDs
Berechnungspfad
für f |x1=1 . Dies können wir fortsetzen, bis ein vollständiger Entscheidungsbaum für f
aufgebaut wurde.
Definition 8.26
Die Abfolge von Knoten, die im Verlauf einer Berechnung einer Booleschen Funktion
durch ein Branchingprogramm besucht werden, nennt man Berechnungspfad.
In einem Branchingprogramm muss nun nicht zwingend der Eingangsgrad eines jeden
Knotens gleich eins sein, sondern ist beliebig. Man kann also die Darstellung eines Entscheidungsbaumes innerhalb der Klasse der Branchingprogramme noch erheblich reduzieren, indem isomorphe Teilgraphen verschmolzen werden. Dies wird in Abbildung 8.1 für
die Funktion f (x1 , x2 , x3 ) = x̄2 ∨ x̄3 illustriert.
x1
x1
0
1
0
x2
x2
0
1
x3
x3
x2
1
0
x3
0
1
0
1
0
1
1
1
0
1
1
1
0
x3
1
1
x3
0
1
1
0
0
x3
1
1
0
1
0
Abbildung 8.1.: Entscheidungsbaum und reduziertes Branchingprogramm für die Funktion
f (x1 , x2 , x3 ) = x̄2 ∨ x̄3
Diese Reduktion eines Entscheidungsbaumes liefert eine deutlich kompaktere Darstellung. So hat ein Entscheidungsbaum ganze 2n − 1 innere Knoten, es gibt aber zu jeder
Booleschen Funktion ein Branchingprogramm der Größe O (2n /n) [56]. Man kann zeigen,
dass für fast alle Booleschen Funktionen die Darstellung als Branchingprogramm mindestens die Größe Ω(2n /n) haben. In sofern ist obiges Ergebnis optimal.
Leider ist der Begriff des Branchingprogramms sehr allgemein. Es sind keine Techniken
bekannt, daraus Schranken abzuleiten, die die Diskussion der Komplexitätstheorie, speziell
der Platzkomplexität, voranbringen würden. Dazu bedarf es einer Einschränkung von
Branchingprogrammen, die im nächsten Abschnitt eingeführt werden soll.
8.2. Ordered Binary Decision Diagrams
Wenn man Branchingprogramme betrachtet, deren Knoten so markiert sind, dass auf jedem
Berechnungspfad durch den Graphen die Variablen in derselben Reihenfolge und jeweils
höchstens ein Mal abgetestet werden, erhält man Ordered Binary Decision Diagrams als
nichtuniforme Darstellung für Boolesche Funktionen {0, 1}n → {0, 1} [10].
64
8.2. Ordered Binary Decision Diagrams
Definition 8.27
Ein Ordered Binary Decision Diagram, OBDD, ist ein Branchingprogramm, in dem auf
jedem Berechnungspfad alle Variablen höchstens einmal und gemäß einer vorgegebenen
Ordnung getestet werden. Das heißt, es gibt eine Permutation π ∈ Sn , so dass für jede
Kante, die von einem mit xi markierten Knoten zu einem mit xj markierten Knoten führt,
π(i) < π(j) gilt.
Wie wir im letzten Abschnitt in Abbildung 8.1 gesehen haben, kann man jede Boolesche Funktion als OBDD darstellen, da ein Entscheidungsbaum ja ebenfalls eine feste
Variablenordnung respektiert. Die Einschränkung von Branchingprogrammen zu OBDDs
beschneidet also nicht die darstellbaren Funktionen, sondern bläht nur die Darstellungen
bestimmter Funktionen auf, die mit einem kompakten Branchingprogramm aber nur mit
einem exponentiell großen OBDD darstellbar sind. Leider gilt dies für fast alle Booleschen
Funktionen. So unter anderem auch für die praktisch sehr relevante Multiplikation zweier
Binärzahlen.
Da beim Verschmelzen isomorpher Teilgraphen (siehe Abbildung 8.1) keine Knoten direkt
gelöscht, sondern nur vereinigt wurden, ist die Einhaltung der Variablenordnung π = id
auch in der reduzierten Darstellung gewährleistet. Auch wurde kein Knoten hinzugefügt,
so dass die Variablen immer noch nur ein einziges Mal getestet wurden. Der rechte Graph
in Abbildung 8.1 ist also auch ein OBDD.
Der Vorteil der OBDDs liegt in ihrer Schichtstruktur. Durch die auf jedem Berechnungspfad gleiche Variablenordnung kann man sämtliche Knoten, die mit derselben Variablen
markiert sind, in eine Schicht schreiben. Durch die feste Variablenordnung ist gewährleistet, dass alle Kanten in eine tiefere Schicht weisen. Es gibt weder Kanten innerhalb
einer Schicht, noch in höhere Schichten. Nach jedem Test einer Variablen wechselt die Berechnung aus der aktuellen Schicht in die nächste. Dadurch ist es möglich Aussagen über
den Platzverbrauch dieser Berechnung zu machen. Die Intuition, die Berechnung bräuchte
soviel Platz dass der gesamte Graph G repräsentiert werden kann, ist falsch [4]. Es wird zu
jedem Zeitpunkt ein Knoten einer bestimmten Schicht angenommen. Wir müssen also nur
soviele Register zur Verfügung stellen, wie nötig sind, um alle Knoten der breitesten Schicht
zu repräsentieren. Zusammen mit einer Zuordnung der einzelnen Knoten jeder Schicht zu
diesen Registern, ist die Berechnung eines großen Graphen auf sehr wenig Speicherplatz
realisiert.
Die Datenstruktur OBDD ist eine sehr stark eingeschränkte Variante eines Branchingprogramms. Wenn man sich mit solch restriktiven Modellen befasst taucht schnell die
Frage auf, wie sich Aussagen verändern, wenn man die Einschränkung etwas aufweicht.
Die naheliegendste Erweiterung von OBDDs sind die sogenannten k-OBDDs die eine kfache Auswertung der Variablen, aber bezüglich einer einzigen Variablenordnung, erlauben
[6].
Damit OBDDs zu einem erfolgreichen Konzept werden können, sind eine Menge Punkte
wichtig. Eine geeignete Darstellung einer Booleschen Funktion sollte gewisse Aufgaben
erledigen können, die hier kurz nach [52] zusammengefasst werden. Sei Gf eine Darstellung einer Booleschen Funktion f : {0, 1}n → {0, 1}, Gg eine Darstellung der Booleschen
Funktion g : {0, 1}n → {0, 1}.
1. Auswertung: Berechne f (a) für eine Eingabe a ∈ {0, 1}n .
65
OBDD
8. Klassische OBDDs
2. Erfüllbarkeit: Gibt es eine Eingabe a mit f (a) = 1?
3. Erfüllbarkeit-Anzahl: Berechne |f −1 (1)|.
4. Erfüllbarkeit-Alle: Gib f −1 (1) an.
5. Reduktion/Minimierung: Berechne für f eine Darstellung G′ minimaler Größe. Ist
G′ eindeutig bestimmt, so heißt dies Reduktion.
6. Äquivalenztest: Teste anhand Gf , Gg , ob f = g gilt.
7. Synthese: Berechne eine Darstellung für f ⊗ g anhand Gf , Gg , wobei ⊗ : {0, 1}2 →
{0, 1} irgendeine binäre Verknüpfung ist.
8. Ersetzung durch Konstanten: Berechne eine Darstellung für f |xi =c , wobei xi eine
Variable und c eine Konstante ist.
9. Ersetzung durch Funktionen: Berechne aus Gf und Gg eine Darstellung für f |xi =g .
10. Quantifizierung: Berechne eine Darstellung für (∀xi : f ) := f |xi =0 ∧ f |xi =1 , beziehungsweise (∃xi : f ) := f |xi =0 ∨ f |xi =1
11. Redundanztest: Teste, ob f |xi =0 = f |xi =1 für gegebenes xi .
Da in dieser Arbeit in Kapitel 10 Punkt 5 und Punkt 7 für den Quantenfall untersucht
werden, soll deren Behandlung im nächsten Abschnitt für klassische OBDDs wiedergegeben
werden. Die anderen Punkte sind ebenso wichtig, jedoch teilweise direkt ersichtlich oder
aber zu weitgehend, als dass eine umfassende Besprechung hier sinnvoll wäre.
8.3. Synthese und Reduktion von OBDDs
Ein gutes Konzept für die Darstellung Boolescher Funktionen muss die im vorigen Abschnitt
gegebenen Aufgaben auf einfache Weise und vor allem effizient bewältigen können. Die hier
zu besprechenden Vorgänge der Synthese und Reduktion hängen eng zusammen. Um zum
Beispiel die Äquivalenz zweier Boolescher Formeln zu prüfen, bietet es sich an, jeweils die
Darstellung als OBDD zu bestimmen, diese zu reduzieren, und die erhaltenen Darstellungen
auf Gleichheit zu testen. Dazu benötigt man aber einen Algorithmus, der sukzessive einen
OBDD aus einer Booleschen Formel aufbaut. Dies passiert naheliegenderweise indem,
angefangen mit den Atomen, immer wieder die OBDDs zu den Teilformeln vereinigt werden.
Um den Aufwand für diese sukzessive Synthese zu minimieren, ist es äußerst praktisch, die
erhaltene Darstellung vor der nächsten Synthese zu reduzieren.
Dass die Synthese von OBDDs effizient möglich ist, wurde schon bewiesen bevor der
Begriff eingeführt wurde [21]. Dasselbe Ergebnis für die Reduktion entstand wesentlich
später [11]. Anhand zweier einfacher Reduktionsregeln kann man jeden OBDD zu einer
Minimaldarstellung bringen. Diese reduzierten OBDDs sind eindeutig.
Um nun einen OBDD zu reduzieren, benötigt man nur folgende zwei Regeln, die man
solange in beliebiger Reihenfolge anwendet, bis keine der Regeln mehr angewandt werden
kann.
66
8.3. Synthese und Reduktion von OBDDs
1. Deletion Rule: Wenn beide ausgehenden Kanten eines Knotens, der mit xi markiert
sei, auf denselben Folgeknoten weisen, so ist der Test von xi überflüssig, der xi -Knoten
kann also gelöscht werden, seine Eingangskanten weisen nun auf den Folgeknoten,
siehe Abbildung 8.2.
2. Merging Rule: Gibt es zwei Knoten, die mit derselben Variablen gekennzeichnet sind,
und deren Null- und Einskanten jeweils zu demselben Knoten verweisen, so kann man
beide vereinigen, da die nachfolgende Berechnung jeweils gleich wäre. Es entsteht ein
Knoten mit den Nachfolgern und allen Eingangskanten der beiden alten Knoten, siehe
Abildung 8.3.
xi
0
1
xi+1
xi+1
Abbildung 8.2.: Illustration der Deletion Rule
xi
xi
1
0
xi+1
0
1
xi+1
xi
0
xi+1
1
xi+1
Abbildung 8.3.: Illustration der Merging Rule
Die Synthese zweier OBDDs ist leider etwas komplizierter, da ein völlig neuer Graph
aufgebaut wird, dessen Knoten aus Kombinationen aus je zwei Ursprungsknoten bestehen.
Betrachten wir zwei OBDDs Gf und Gg die jeweils die Darstellung der Booleschen Funktion
f, g : {0, 1}n → {0, 1} bezüglich derselben Variablenordnung sind. Diese beiden Funktionen
sollen nun bezüglich des Booleschen Operators ⊗ : {0, 1}2 → {0, 1} verknüpft werden. Wir
wollen also ein OBDD Gf ⊗g von f ⊗ g ermitteln.
Im Prinzip werden simultan beide OBDDs durchlaufen, und wenn beide eine Senke erreicht haben, werden die beiden Ergebnisse bezüglich ⊗ verknüpft. Allerdings müssen nicht
alle Variablen im Verlauf einer Berechnung durch Gf und Gg getestet werden. So kann
es vorkommen, dass die Nachfolgeknoten in den Einzel-OBDDs nach dem Test von xi mit
unterschiedlichen Variablen markiert sind. Da wir an die gemeinsame Variablenordnung,
67
8. Klassische OBDDs
sie sei der Einfachheit halber die Identität, gebunden sind, müssen wir mit der Auswertung
in dem einen OBDD warten, bis der andere OBDD in der Testfolge an derselben Stelle
angekommen ist. Bei Senken gilt natürlich dasselbe, sollte ein OBDD noch nicht fertig
gerechnet haben, der andere aber schon eine Senke erreicht haben, so wird das Ergebnis
des fertigen OBDD gehalten, und am Ende, wenn der andere OBDD soweit ist, werden die
Ergebnisse verknüpft.
Formal sieht das folgendermaßen aus: Der Gesamt-OBDD Gf ⊗g hat für jedes Paar von
Knoten vf ∈ Gf und vg ∈ Gg einen Knoten (vf , vg ). Als Quelle haben wir die Kombination
aus den beiden Quellen. Die Markierung eines Knotens wird wie folgt gegeben. Seien
jeweils vf,c , vg,c die c-Nachfolger von vf in Gf beziehungsweise von vg in Gg für c ∈ {0, 1}.
1. Fall: vf und vg sind beide mit xi markiert.
Dann wird (vf , vg ) ebenfalls mit xi markiert. Sein Nullnachfolger ist (vf,0 , vg,0 ) sein
Einsnachfolger ist (vf,1 , vg,1 ).
2. Fall: vf ist mit xi markiert und vg mit xj und i > j.
Dann wird (vf , vg ) mit xj markiert. Sein Nullnachfolger ist (vf , vg,0 ) sein Einsnachfolger ist (vf , vg,1 ).
3. Fall: vf ist eine Senke und vg mit xj markiert.
Dann wird (vf , vg ) mit xj markiert. Sein Nullnachfolger ist (vf , vg,0 ) sein Einsnachfolger ist (vf , vg,1 ).
4. Fall: vf ist mit xi markiert und vg mit xj und i < j.
Dann wird (vf , vg ) mit xi markiert. Sein Nullnachfolger ist (vf,0 , vg ) sein Einsnachfolger ist (vf,1 , vg ).
5. Fall: vf ist mit xi markiert und vg ist eine Senke.
Dann wird (vf , vg ) mit xi markiert. Sein Nullnachfolger ist (vf,0 , vg ) sein Einsnachfolger ist (vf,1 , vg ).
6. Fall: vf und vg sind Senken.
Der Knoten (vf , vg ) ist eine Senke in Gf ⊗g . Seine Markierung wird über die Verknüpfung der beiden Senkenmarkierungen ermittelt.
Der so erhaltene Produktgraph ist allerdings noch kein OBDD. Es gibt im allgemeinen
Knoten, die von der Quelle aus nicht erreicht werden können. Es wurden Synthesealgorithmen vorgeschlagen, die überflüssige Knoten von vornherein nicht erzeugen [11], allerdings
sind sie nicht so schnell, wie diese etwas speicheraufwendigere Variante, bei der im Nachhinein alle überflüssigen Knoten gelöscht werden, wenn anschließend reduziert wird.
68
9. Quanten OBDDs
Die Übertragung des Konzepts OBDD auf einen Quantencomputer liefert uns eine Möglichkeit, die Platzkomplexität von nichtuniformen Quantenalgorithmen zu untersuchen, siehe
zum Beispiel [49]. Einen guten Einstieg bietet die graphentheoretische Definition über probabilistische Branchingprogramme [45], die in diesem Kapitel wiedergegeben werden soll.
Sie schließt sich nahtlos an die Einführung der klassischen OBDDs des letzten Kapitels an.
Dem gegenüber steht der Weg, QOBDDs direkt zu definieren [1], ohne den Vergleich zu
einer Graphenrepräsentation zu suchen. Diese Beschreibung von QOBDDs ist allerdings
weniger anschaulich.
In dem Sinne wird Abschnitt 9.1 Quantenbranchingprogramme definieren, indem erst
die oben eingeführten Branchingprogramme zu probabilistischen Branchingprogrammen
erweitert werden, und dann der Übergang zum Quantenfall erfolgt. In Abschnitt 9.2 erfolgt
dann die Einschränkung zu Quanten-OBDDs.
9.1. Quantenbranchingprogramme
Um Quantenbranchingprogramme zu definieren ist die Definition von probabilistischen
Branchingprogrammen ein guter Zwischenschritt. Diese sind dem Quantenfall sehr nah,
bieten aber nicht dieselben rechnerischen Möglichkeiten. Der Hauptunterschied zwischen
deterministischen und probabilistischen Branchingprogrammen ist, dass nun die ausgehenden Kanten nicht mehr mit Eins und Null markiert sind, sondern es pro Knoten zwei
Mengen von ausgehenden Kanten gibt. Die eine der Mengen wird betrachtet, wenn die zum
Knoten gehörige Variable Eins ist, die andere im Fall Null. Die Elemente der Kantenmengen sind nun ihrerseits mit Wahrscheinlichkeiten markiert, die den jeweiligen Übergang
gewichten. An jedem Knoten wird nun die dort zu testende Variable ausgewertet und
bezüglich der jeweiligen Wahrscheinlichkeitsverteilung einer der Nachfolgeknoten gezogen.
Definition 9.28
Ein probabilistisches Branchingprogramm, PBP, ist ein gerichteter azyklischer Graph
mit zwei Senken, die mit 0 beziehungsweise 1 markiert sind. Die internen Knoten sind
mit Booleschen Variablen xi , i ∈ {1, . . . , n} markiert. Ein ausgezeichneter Knoten hat den
Eingangsgrad Null, er ist die Quelle. Zu jedem inneren Knoten v gehören zwei Mengen von
ausgehenden Kanten, die 1-Kanten E1 (v) und die 0-Kanten E0 (v). Jede Kante e trägt ein
positives Gewicht w(e) ≤ 1. Die Summe der Gewichte von E1 (v) und E0 (v) ist jeweils 1.
Ein probabilistisches Branchingprogramm berechnet aufgrund einer Eingabe von n Bits
einen Booleschen Wert, analog zu den deterministischen Branchingprogrammen, siehe Definition 8.25. Gestartet wird an der Quelle. An jedem Knoten wird die dort angegebene
Variable getestet. Je nach Wert wird nach der durch die Gewichte gegebenen Wahrscheinlichkeitsverteilung eine der Kanten aus E1 (v) beziehungsweise E0 (v) gezogen. Wenn eine
69
PBP
9. Quanten OBDDs
Senke erreicht ist, wird der zugehörige Wert ausgegeben.
Ein probabilistisches Branchingprogramm berechnet eine Boolesche Funktion f (mit Fehlerrate e = 1/2 − δ, δ > 0) wenn es den korrekten Wert von f für einen beliebigen Input
mindestens mit Wahrscheinlichkeit 1/2 + δ ausgibt.
Beispiel 9.9
Um den Übergang von deterministischen auf probabilistische Branchingprogramme zu verdeutlichen gibt Abbildung 9.1 zwei Beispiele. Ihre Berechnung
ist trivial und die probabilistische Berechnung liefert keinen Vorteil gegenüber
der deterministischen, sie sollen lediglich das Prinzip der zwei Kantenmengen
zeigen. Sie berechnen beide die Funktion f (x1 , x2 ) = x1 · x2 , jedoch mit unterschiedlicher Fehlerwahrscheinlichkeit. Da der linke Graph lediglich Kanten mit
Gewicht 1 hat, ist er deterministisch, berechnet f also mit Fehler 0.
Betrachten wir den rechten Graphen. Gestartet wird im oberen Knoten. Ist
x1 = 1, so gelten die durchgezogenen Kanten. Wir befinden uns nur mit Wahrscheinlichkeit 45 im zweiten inneren Knoten. Mit der Restwahrscheinlichkeit 15
sind wir falsch“ gegangen. Im Fall x1 = 0 ist es andersherum. Das heißt, das
”
wir für alle Eingaben mit einem Fehler von 51 rechnen.
x1
1
5
1
1
4
5
4
5
x2
1
0
E0
E1
x1
1
1
1
x2
1
5
0
1
1
Abbildung 9.1.: Zwei probabilistische Branchingprogramme, die die Funktion f (x1 , x2 ) =
x1 ·x2 mit Fehlerrate 0 (links) beziehungsweise 51 (rechts) berechnen. Durchgezogene Linien gehören zu 1-Kanten, gestrichelte zu 0-Kanten.
Der Übergang zu einem Quantenbranchingprogramm ist nicht mehr schwer. Dieses ist
ein Quantensystem, das in einem Hilbertraum lebt, der pro Knoten des probabilistischen
Branchingprogramms einen assoziierten Zustandsvektor enthält. Der Zustand des Quantenbranchingprogrammes ist demnach eine Superposition dieser Vektoren. Die folgende
Definition wird der Einfachheit erst einmal davon ausgehen, dass jeder Knoten einen neuen
Basisvektor definiert. Dies ist nicht nötig, wenn es darum geht, wenig Platz zu verbrauchen.
Es werden jetzt komplexe Kantengewichte zugelassen, und es wird auch nicht nach jedem
Test einer Variable eine Kante ausgewählt, sondern der Zustand geht zu entsprechenden
Amplitudenanteilen in die verschiedenen nachfolgenden Knoten. Vor jedem Schritt wird
allerdings gemessen, ob sich das Programm bereits in einem terminalen Zustand befindet.
Sollte die Messung einen terminalen Zustand feststellen, so wird das zugehörige Ergebnis
ausgegeben, wenn nicht, wird weitergerechnet.
70
9.1. Quantenbranchingprogramme
Definition 9.29
QBP
Ein Quantenbranchingprogramm, QBP, ist eine Erweiterung eines probabilistischen
Branchingprogramms. Wir erlauben komplexe Gewichte, deren Betrag zwischen 0 und
1 liegt. Aufgrund der Normierung muss nun gelten:
X
e∈E0 (v)
||w(e)||2 = 1,
X
e∈E1 (v)
||w(e)||2 = 1
Außerdem müssen alle Nachfolgeknoten eines Knotens mit derselben Variable markiert
sein, damit auch im nächsten Schritt nur eine Variable getestet werden braucht.
Die Knoten des Graphen werden in drei Mengen aufgeteilt: akzeptierende (Qacc ),
verwerfende (Qrej ) und nicht haltende Knoten (Qnon ). Jedem der Knoten q ∈ Q =
Qacc ∪ Qrej ∪ Qnon wird ein Basisvektor |qi zugeordnet, so dass der von diesen Basisvektoren
aufgespannte Hilbertraum sämtliche möglichen Konfigurationen des QBPs beschreibt.
Die Gewichte finden sich in der Übergangsfunktion γ wieder:
γ : (Q × {0, 1} × Q) → C,
γ(v, b, v ′ ) = w(e),
wobei w(e) das Gewicht der b-Kante von Knoten v zu Knoten v ′ ist, beziehungsweise 0,
wenn die Kante nicht existiert. Der zu einem Berechnungsschritt gehörige Operator ist:
Txγ |vi =
X
v′ ∈Q
γ(v, x(v), v ′ )|v ′ i,
wobei x = (x1 , . . . , xn ) der Inputvektor ist, und x(v) der Wert der Variable mit der v
markiert ist. Damit wir ein wohldefiniertes Quantensystem haben, muss Txγ unitär sein.
Für die Messung benutzen wir die Observable O = Eacc ⊕ Erej ⊕ Enon , wobei Eacc , Erej
und Enon die von den jeweiligen Basisvektoren aufgespannten Unterräume sind.
Die Berechnung erfolgt wieder ausgehend von der ausgezeichneten Quelle. In jedem
Schritt wird der Operator Txγ angewandt, nachdem bezüglich O gemessen wurde. Dadurch
wird |ψi+1 i auf einen der drei Unterräume Eacc , Erej und Enon projiziert. Befindet er sich
im Unterraum Eacc so wird 1 ausgegeben, befindet er sich in Erej , so wird 0 ausgegeben
und beide Male die Berechnung abgebrochen. Andernfalls ist der resultierende Zustand
|ψi+1 i = Txγ |ψi i.
Ein Quantenbranchingprogramm berechnet eine Boolesche Funktion f (mit Fehlerrate
e = 1/2−δ, δ > 0) wenn es den korrekten Wert von f für einen beliebigen Input mindestens
mit Wahrscheinlichkeit 1/2 + δ ausgibt.
Dass Quantenbranchingprogramme beschränkter Breite mächtiger sind als probabilistische Branchingprogramme beschränkter Breite, wurde mit Hilfe der Funktion HALFn
gezeigt.
1 falls |{xi |xi = 1}| = n2
HALFn (x1 , . . . , xn ) =
0 sonst
Diese Funktion kann im Quantenfall dargestellt werden, dem klassischen Modell ist es aber
nicht möglich [45].
71
9. Quanten OBDDs
9.2. Quantum Ordered Binary Decision Diagrams
QOBDD
Der Schritt von einem Quantenbranchingprogramm zu einem Quanten-OBDD ist nun wieder derselbe, wie im klassischen Fall. Wir schränken das Testen der Variablen ein, indem
jede Variable nur einmal getestet werden darf und außerdem eine feste Variablenordnung
eingehalten werden muss.
Definition 9.30
Ein Quantum Ordered Binary Decision Diagram, QOBDD, ist ein Quantenbranchingprogramm, das auf jedem Berechnungspfad jede Variable nur einmal und bezüglich einer
festgelegen Variablenordnung testet.
Der Übergang von klassische auf Quanten-OBDDs, den wir in den letzten Seiten nachvollzogen haben, war sehr organisch, da immer recht kleine Schritte durchgeführt wurden. Wir
haben kurz die klassische Einschränkung von Branchingprogrammen auf OBDDs besprochen, dann den Weg angetreten von klassischen deterministischen Branchingprogrammen
über eine Erweiterung der Übergangsfunktion des Graphen G zu probabilistischen Branchingprogrammen. Durch die Auswahl immer einer Kante in jedem Berechnungsschritt
ändert sich strukturell nicht viel. Auch der nächste Schritt war gut nachzuvollziehen, indem
nun diese Entscheidung nicht in jedem Schritt gefällt wurde, sondern über den quantenmechanischen Zustand eine Art Wahrscheinlichkeitsverteilung über die vorhandenen Knoten
erlaubt wurde, auch die Erweiterung der Gewichte auf komplexe Zahlen ändert nichts
radikal. Da die Einschränkung von Quantenbranchingprogrammen zu QOBDDs analog
zum klassischen Fall verlief, ist auch hier nichts dramatisches geschehen. Die Unterschiede machen sich eher subtil bemerkbar, zum Beispiel, dass die Forderung nach unitären
Transformationen gleichzeitig die Einschränkung hin zu einem reversiblen OBDD liefert.
Die gegebenen Definitionen liefern zwar eine gültige Beschreibung eines QOBDDs, beschreiben aber die konkrete platzgünstige Realisierung nicht. Ähnlich wie im klassischen
Fall, wo die konkret benutzten Register immer nur eine Schicht pro Zeitschritt repräsentieren, müssen wir auch im Quantenfall untersuchen, wie groß der reale Platzverbrauch
des Programms ist. Wir haben hier die Graphendarstellung eines QOBDDs besprochen,
in der jeder Knoten jeder Schicht einzeln repräsentiert wird. Demgegenüber steht die speichergünstige Variante, ganz analog zum klassischen Fall aus Abschnitt 8.2, die sich der
Vorteile der Schichtung bewusst ist, und nur soviele Qubits zur Berechnung des QOBDDs
benutzt, wie benötigt werden, um die breiteste Schicht darzustellen. Nachdem das kommende Beispiel demonstriert hat, wie eine Realisierung von einem QOBDD aussieht, wenn
man sich strikt an Definition 9.30 hält wird eine alternative Definition besprochen, die sich
direkt den Vorteilen der Schichtstruktur bedient.
Beispiel 9.10
Ein Beispiel für ein QOBDD für die Funktion f = x1 ⊕ x2 ist in Abbildung 9.2
als Quantenbranchingprogramm gemäß Definition 9.1 gegeben. Alle Übergangsamplituden sind komplexe Zahlen, die 1- sowie die 0-Kanten sind je Knoten
normiert. Vom Startknoten q1 erreicht man nur die Knoten q2 und q3 . Deswegen
müssen sie mit derselben Variable, in diesem Fall x2 markiert sein, da sonst nicht
bestimmt wäre, welche Variable im nächsten Schritt getestet werden muss. Der
Graph enthält keine Zyklen, er besitzt eine Quelle mit Eingangsgrad Null, und
zwei Senken mit Ausgangsgrad Null.
72
9.2. Quantum Ordered Binary Decision Diagrams
q1
x1
√1
2
− √12
q2
√1
2
q3
x2
x2
√1
2
q4
− √12
1
E0
E1
√1
2
√1
2
√1
2
√1
2
√1
2
√1
2
0
− √12
q5
Abbildung 9.2.: Das Quantenbranchingprogramm aus Beispiel 9.10 als Graph, der die Funktion f = x1 ⊕ x2 mit Fehler 0 berechnet [45].
Die Überführungsfunktion γ explizit anzugeben, ist nicht sinnvoll, da dies sehr
lang und unübersichtlich wäre. Besser ist es, gleich die anzuwendenden Operatoren anzugeben. Gestartet wird im Zustand |q1 i. Je nach dem Wert von
x1 wird eine der Transformationen Tx01 : |q1 i → √12 (|q2 i + |q3 i) beziehungsweise
Tx11 : |q1 i → √12 (−|q2 i + |q3 i) angewandt. Um die Transformationen in ihrer Allgemeinheit anzugeben, müssen wir 5 × 5-Matrizen verwenden. Die Basis
von H ist {|q1 i, |q2 i, |q3 i, |q4 i, |q5 i} = {|1i, |2i, |3i, |4i, |5i}. Die Unterteilung der
Knoten ist Qacc = {q5 }, Qrej = {q4 } und Qnon = {q1 , q2 , q3 }.
Eine Möglichkeit für die erste Transformation Tx1 ist die Folgende. Es ist nicht
bestimmt, wie die Basisvektoren |2i, |3i, |4i, |5i transformiert werden. Hier wurde lediglich eine möglichst simple Erweiterung auf eine unitäre Matrix gewählt.




0
0
1 0 0
0
0 1 0 0
 √1
 − √1 √1 0 0 0 
√1
0 0 0 
 2



2
2
2




√1
Tx01 =  √12 − √12 0 0 0 
0
0
0
Tx11 =  √12

2




 0
 0
0
0 1 0 
0 0 1 0 
0
0
0 0 1
0
0 0 0 1
Interessant sind hier nur die Einträge der ersten Spalte, da wir anfangs unseren
QOBDD auf den Zustand |q1 i präparieren. Wo es möglich ist, ohne die Unitarität der Matrizen zu verletzen, wurde nur eine 1 in die Diagonale geschrieben.
An anderer Stelle sind eventuell verwirrende Übergangsamplituden eingefügt,
die aber im Verlauf einer Berechnung nicht zum Tragen kommen.
Mögliche Realisierungen der

1 0
0
 0 0
0

 0 0
0
0
Tx2 = 
 0 √1
√1

2
2
0 √12 − √12
Transformation Tx2 sind


1
0
0 0
 0
0
1 0 




1
0
0 1 
Tx2 =  0
 0 − √1
0 0 


2
0 0
0 √12
0
0
0
√1
2
√1
2
0
1
0
0
0
0
0
1
0
0







73
9. Quanten OBDDs
Erst nach der zweiten Transformation besteht die Möglichkeit bei der Messung
einen terminalen Zustand zu messen. Dies ist dann allerdings sicher. Nach
der ersten Transformation haben nur die zu q2 und q3 gehörigen Basisvektoren
nicht verschwindende Amplitude. Also ist eine Messung bezüglich terminaler
Zustände nach der ersten Transformation ohne Effekt. Insofern können wir die
beiden Transformationen zusammenfassen, und in Abhängigkeit vom Input x
den Zustand vor der Messung angeben. Betrachten wir beispielsweise x = (0, 1).
|ψfinal i = Tx|q1 i = Tx12 · Tx01 |q1 i
 

0
0
1
0
0 0 0
1
1


 0
√
√
0
0 1 0   2

2


0
0 0 1 
=  0
 ·  √12 − √12
 0 − √1 √1 0 0  
  0

0
2
2
√1
0 √12
0
0
0
0
2

  
0 0 1 0 0
1
 0 0 0 1 0   0 

  
  
= 
 0 0 0 0 1 · 0 
 0 1 0 0 0   0 
1 0 0 0 0
0
 
0
 0 
 

ˆ 1 , da q5 ∈ Qacc
= 
 0  = |q5 i =
 0 
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
 
 
 
 
·
 

1
0
0
0
0






Indem man nun für die verschiedenen Inputs das Produkt von Txǫ11 und Txǫ22 für
x = (ǫ1 , ǫ2 ) bildet und die erste Spalte, das Bild vom Startzustand, betrachtet,
sieht man, dass obiger QOBDD f ohne Fehler berechnet.
⋆
QOBDD,
alternativ
Beispiel 9.10 zeigt ziemlich deutlich die Redundanzen, die auftreten, wenn man jedem
Knoten des Graphen einen eigenen Basisvektor zuweist. Zum Beispiel wird unnötigerweise der Fortschritt der Berechnung gespeichert, obwohl doch eine fest definierte Anzahl
an Transformationen angewendet werden muss, bevor ein Ergebnis feststeht. Eine Funktion, die als klassischer OBDD eine Breite von 2 hätte, benötigt einen 5-dimensionalen
Hilbertraum, um durch einen QOBDD dargestellt zu werden. Genau wie bei der Bestimmung des Platzverbrauchs eines klassischen OBDDs reicht es aber aus, die breiteste Stelle
des Graphen zu ermitteln, und für jeden Knoten auf diesem Niveau einen Basisvektor zu
verwenden. Um schnell zu einer nachvollziehbaren Darstellung zu kommen, soll nun ein
alternativer Zugang zu QOBDDs betrachtet werden, wie er von [1, 33] benutzt wird.
Definition 9.31
Ein Quantum Ordered Binary Decision Diagram, QOBDD, auf einer Eingabe x =
(x1 , . . . , xn ) der Breite w und Länge n besteht aus
74
einer Menge B = {|1i, . . . , |wi} von Basisvektoren des zugrundeliegenden Hilbertraumes H,
9.2. Quantum Ordered Binary Decision Diagrams
einer Abfolge von Paaren unitärer Transformationen (Ty0i , Ty1i ), i = 1, . . . , n auf H,
wobei die Abfolge y1 , . . . , yn eine Permutation von x1 , . . . , xn ist,
einem ausgezeichneten Startzustand |1i und
einer Menge akzeptierender Basisvektoren aus B, die den akzeptierenden Unterraum
aufspannen.
⋆
⋆
⋆
Die Rechenweise ist dieselbe wie in Definition 9.1, außer dass wir nur messen, wenn alle n
Transformationen abgearbeitet wurden.
Die Vorteile dieser Definition liegen auf der Hand. Wir sparen uns die redundante Zeitrepräsentation in zusätzlichen Basisvektoren und benötigen keine reinen terminalen Zustände,
da ja erst am Ende gemessen wird. Dass wir das tun können ist offensichtlich. In der Darstellung als geschichteter Graph werden die terminalen Zustände in der untersten Schicht
liegen. Jede der Messungen, die in den Berechnungsschritte vor erreichen dieser Schicht
durchgeführt wurden, werden mit Wahrscheinlichkeit 1 einen nichtterminalen Zustand ergeben, und keinerlei Auswirkungen auf den aktuellen Zustand haben, da keine Amplitude
der terminalen Zustände vorhanden ist, die wegfallen würde.
Die so erreichte Darstellung ist formal sehr sauber, da die Struktur eines QOBDDs
dadurch sehr vereinfacht werden kann. Pro getesteter Variable xi haben wir die zwei
Transformationen Tx0i und Tx1i die je nach Belegung ǫi von xi angewendet werden. Eine
kompakte Notation eines QOBDDs ist demnach
|ψi = (Tx0n , Tx1n ) · ... · (Tx01 , Tx11 )|1i.
Für eine feste Belegung x = (ǫ1 , . . . , ǫn ) hat jeder QOBDD die Form
|ψi = Txǫnn · ... · Txǫ11 |1i.
(9.1)
Wieviel schlanker ein nach Definition 9.31 definierter QOBDD ist, zeigt die Fortführung
von Beispiel 9.10.
Beispiel 9.11
Stellen wir anhand von Definition 9.31 einen QOBDD für die Funktion f =
x1 ⊕ x2 zusammen. Die Eingabe ist zweidimensional x = (x1 , x2 ). Unser
Startzustand ist |1i, der akzeptierende Zustand |2i. Wie man an der Graphendarstellung des QOBDD für die Funktion in Abbildung 9.2 sehen kann,
reichen zwei Basiszustände aus, siehe Abbildung 9.3. Also ist B = {|1i, |2i}.
Die Transformationen sind ebenfalls schnell ersichtlich, da sie klassisch sind.
1 0
0 1
0
1
Tx1 =
Tx1 =
0 1
1 0
1 0
0 1
0
1
Tx2 =
Tx2 =
0 1
1 0
Nun haben wir das Thema Quantum Ordered Binary Decision Diagrams ausreichend eingeführt um uns dem Ziel dieses Teils der Arbeit, der Synthese und Reduktion von QOBDDs
zu widmen.
75
9. Quanten OBDDs
q1
x1
√1
2
− √12
q2
√1
2
q4
− √12
1
x1 , x2 = 0 x , x = 1 x1 , x2 = 0
1 2
q3
x2
x2
√1
2
E0
E1
√1
2
√1
2
√1
2
√1
2
√1
2
√1
2
0
|1i
− √12
|2iacc
x1 , x2 = 1
q5
Abbildung 9.3.: Die speichergünstige Realisierung des QOBDDs aus Abbildung 9.2, die die
Funktion f = x1 ⊕ x2 mit Fehler 0 berechnet und lediglich einen zweidimensionalen Hilbertraum benötigt.
76
10. Synthese und Reduktion von QOBDDs
Ursprüngliches Ziel dieses Kapitels und auch des dritten Teils dieser Arbeit ist, zu klären, ob
sich QOBDDs dazu eignen, Quantenschaltkreise darzustellen, die eine Boolesche Funktion
realisieren. Außerdem könnten sie Hilfsmittel bereitstellen, um zum Beispiel verschiedene
Quantenschaltkreise auf Äquivalenz zu untersuchen, wie klassische OBDDs es für Boolesche
Formeln liefern. Was wir prinzipiell gerne erreichen würden, ist bereits für den klassischen
Fall in Abschnitt 8.2 aufgelistet. An dieser Liste ändert sich im Quantenfall nichts. Da aber
wegen der komplexen Übergangsamplituden die Anzahl möglicher verschiedener QOBDDs
gegenüber den klassischen OBDDs immens steigt, ist es fragwürdig, ob die Punkte obiger
Liste überhaupt realisierbar sind. Um dieser Frage nachzugehen, soll sich dieses Kapitel
mit den Aspekten Synthese und Reduktion von QOBDDs befassen.
Da QOBDDs Boolesche Funktionen darstellen, kann es in diesem Kapitel auch nur um
Schaltkreise gehen, die eine Boolesche Funktion realisieren. Dazu schränken wir den Eingabebereich auf klassische Bits ein, und verlangen eine Vorschrift, wie aus dem Ergebnis
des Quantenschaltkreises ein Boolescher Wert als Ergebnis extrahiert wird.
Für die Verifikation von Quantenschaltkreisen benötigen wir die sukzessive Synthese eines QOBDDs aus einem Quantenschaltkreis. Angefangen von der Eingabeebene sollen nach
und nach einzelne Gatter als Verknüpfung zwischen den atomaren QOBDDs dienen. Die
so erhaltenen Graphen werden nun, sofern sie im Schaltkreis durch Gatter verbunden sind,
zu größeren QOBDDs verschmolzen. Die allgemeine Synthese, das Thema von Abschnitt
10.1, lässt allerdings die Dimension des zugrundeliegenden Hilbertraumes explodieren, da
sich in jedem Syntheseschritt die Dimensionen multiplizieren, wie es im Abschnitt 2.7 über
die Verkettung einzelner Quantensysteme besprochen wurde. Um nun die Synthese trotzdem effizient bewältigen zu können, ist eine sinnvolle, effiziente Minimisierung drängendste
Notwendigkeit. Die Reduktion ist das Thema von Abschnitt 10.2. Eine allgemeine effiziente Reduktion ist allerdings nicht zu erwarten. Zum einen ist nicht ersichtlich, ob es sie
überhaupt geben kann, zum anderen wäre eine vollständige Besprechung im Rahmen dieser
Arbeit nicht zu leisten. Die Schwierigkeiten, die bei einem solchen Unterfangen auftreten
werden also in Abschnitt 10.2 im Vordergrund stehen.
Im Anschluss in Abschnitt 10.3 soll eine vereinfachte Situation betrachtet werden, in der
eine Reduktion möglich ist. Unter der Annahme, dass der zu synthetisierende Quantenschaltkreis als Gatter lediglich die einwertige Hadamardtransformation (Definition 3.13)
und das zweiwertige XOR (Beispiel 3.3) enthält, wird die Problematik noch einmal konkret
durchgesprochen.
10.1. Synthese von QOBDDs
Formal gesehen verläuft die Synthese zweier QOBDDs sehr gradlinig analog zu der Synthese zweier klassischer OBDDs, die in Abschnitt 8.3 besprochen wurde [33]. Die Bildung
77
10. Synthese und Reduktion von QOBDDs
der Produktzustände (vf , vg ) ist im Quantenfall noch viel naheliegender, da bei der Verknüpfung von zwei Quantensystemen |φi und |ψi über das äußere Produkt ebenfalls solche Produktzustände |φ ⊗ ψi gebildet werden. Wenn wir die Darstellung eines QOBDD
aus Gleichung (9.1) benutzen, die am Ende des letzten Abschnittes eingeführt wurde, ist
die Synthese noch wesentlich einfacher, da sich das System in jedem Berechnungsschritt
bezüglich des äußeren Produkts der aktuellen Transformationen entwickelt.
Seien Gf und Gg die QOBDDs, die die Booleschen Funktionen f : {0, 1}n → {0, 1} und
g : {0, 1}n → {0, 1} mit Fehlerwahrscheinlichkeit ef und eg berechnen. Wir beschreiben
sie hier in der Graphendarstellung, die Definition 9.30 liefert. Die Eingabe muss für beide
QOBDDs die gleiche Dimension haben. Die Variablenordnung sei ohne Einschränkung der
Einfachheit halber die Identität. Die Hilberträume Hf und Hg haben folgenden Basen, die
den Zuständen der Graphen entsprechen:
Hf
= Span({|p1 i, . . . , |pk i})
Hg = Span({|q1 i, . . . , |ql i})
Ihre Darstellung bezüglich der Variablenbelegung x = (ǫ1 , . . . , ǫn ) sei:
Gf :
Gg :
Sxǫnn · ... · Sxǫ11 |1i
Txǫnn · ... · Txǫ11 |1i
Die jeweiligen Ergebnisse werden aus der Messung von
Of
= Span(Pacc ) ⊕ Span(Prej ) ⊕ Span(Pnon ) beziehungsweise
Og = Span(Qacc ) ⊕ Span(Qrej ) ⊕ Span(Qnon )
ermittelt.
Der QOBDD Gf ∗g bezüglich einer beliebigen Booleschen Operation ∗ : {0, 1}2 → {0, 1}
lebt nun im Hilbertraum
Hf ∗g = span({|r1 i, . . . , |rl·k i}),
wobei
|rj+(i−1)·l i = |pi ⊗ qj i,
i ∈ {1, . . . , k}, j ∈ {1, . . . , l}.
Seine Darstellung bezüglich der Variablenbelegung x = (ǫ1 , . . . , ǫn ) ist
Gf ∗g : (Sxǫnn ⊗ Txǫnn ) · ... · (Sxǫ11 ⊗ Txǫ11 )|1i.
Das Funktionsergebnis von Gf ∗g wird nun aus den entsprechend generierten akzeptierenden
beziehungsweise zurückweisenden Mengen ermittelt. Für ∗ = ∧ ist zum Beispiel
Racc = {rj+(i−1)·l |pi ∈ Pacc ∧ qj ∈ Qacc }
Rrej = {rj+(i−1)·l |pi ∈ Prej ∨ qj ∈ Qrej }
Rnon = {r|r 6∈ Racc ∧ r 6∈ Rrej }.
Die Fehlerwahrscheinlichkeit ef ∗g des Synthese-QOBDDs ist
ef ∗g = (1 − (1 − ef )(1 − eg )).
78
10.2. Reduktion eines QOBDDs
Damit ist der synthetisierte QOBDD nach Definition 9.30 bestimmt. Allerdings explodiert die Dimension des neuen QOBDDs mit jedem weiteren Syntheseschritt, da sich die
Anzahlen der Basisvektoren multiplizieren. Auch wenn zur Synthese die Speichergünstige Darstellung gewählt wird, ist das Ergebnis ein übermäßig großer QOBDD. Um sinnvoll einen QOBDD aus einem Schaltkreis zusammenbauen zu können, muss der erhaltene
QOBDD noch reduziert werden. Die hier benutzte Darstellungsweise vermittelt bereits
ganz gut, wie aussichtslos dieses Unterfangen ist. Wir haben n unitäre Transformationen, die jeweils von der Eingabe abhängen. Die Frage ist nun, welcher QOBDD dieselbe
Funktion mit demselben oder einem geringeren Fehler berechnet, und dessen Hilbertraum
minimale Dimension hat. Dasselbe Problem taucht bereits auf, wenn man einen QOBDD
in der Graphendarstellung vorliegen hat, und seine speichergünstige Realisierung laut Definition 9.31 ermitteln möchte. In völlig allgemeiner Form nützen allerdings die schön
anschaulichen Vergleiche zu gerichteten Graphen recht wenig, da, um zum Beispiel ein
Äquivalent der Merging-Rule für QOBDDs ausführen zu können, völlige Gleichheit der mit
komplexen Amplituden belegten Kanten vorliegen muss. Der nächste Abschnitt wird anfangs versuchen das Problem der Reduktion eines QOBDDs anschaulich anzugehen, um die
Behauptung, dass eine Reduktion nicht einfach möglich ist, zu stützen. Bearbeiten lässt
sich das Problem nur in abstrakt algebraischer Form, was aber lediglich in Grundzügen
angedeutet werden soll.
10.2. Reduktion eines QOBDDs
Der Produkt-QOBDD, den wir im letzten Abschnitt konstruiert haben, ist leider unnötig
groß, da er alle kombinatorisch möglichen Zustandspaare in die Basis des neuen Hilbertraumes aufnimmt, ohne danach zu fragen, ob sie im Verlauf einer Berechnung tatsächlich
einmal eine von Null verschiedene Amplitude tragen können. Betrachten wir zum Beispiel
zwei QOBDDs in der Graphendarstellung. Nach dem Test der ersten Variable x1 wechseln
beide QOBDDs von ihrem Startzustand zu einem Zustand der nächsten Schicht. Dann ist
es offensichtlich, dass die Zustandspaare mit genau einem Startzustand niemals benutzt
werden, da die beiden Startzustände gleichzeitig verlassen wurden, und sie auch niemals
wieder erreicht werden können, da G azyklisch ist.
Eine Möglichkeit der Minimisierung des Produkt-QOBDDs wäre also, die Zustände
durchzugehen, und anhand von Beobachtungen, wie die des letzten Absatzes, bestimmte
Zustände aus der Basis von H auszuschließen, um somit die Berechnungsbreite zu reduzieren. Es ist allerdings sehr schwierig, zu garantieren, dass dabei tatsächlich alle unnützen
Zustände gefunden werden.
Eine weitere Idee, wie man einen QOBDD verkleinern könnte, entspringt der Beobachtung, dass die auftretenden Matrizen, zumindest bei der Berechnung klassischer Probleme,
wie es ja Boolesche Funktionen auch sind, häufig lediglich Permutationen sind. Dies ist
immer dann der Fall, wenn die aktuelle Transformation eine deterministische Berechnung
repräsentiert. Ein prominentes Beispiel im Zusammenhang mit QOBDDs ist das Einlesen eines Inputbits. Hier muss das System sicher das Bit verstanden haben, wenn korrekt
weitergerechnet werden soll. Die Hoffnung ist, Permutationen von Nichtpermutationen zu
trennen, und den deterministischen Bereich klassisch reduzieren zu können. Damit das
79
10. Synthese und Reduktion von QOBDDs
funktioniert, muss sich der deterministische Bereich in den unteren Lagen befinden, da sich
die deletion rule wie auch die merging rule auf die unter einem Knoten liegenden Kanten
beziehen. Es ist zwar möglich, sämtliche Nicht-Permutationen in die erste Transformation
zu schieben, und so den QOBDD von unten her reduzieren zu können, allerdings wird die
erste Transformation damit explizit vom gesamten Input abhängig, und arbeitet auf der
vollen Breite von H, wie das folgende Beispiel zeigt. Die Konsequenz ist, dass 2n Matrizen
simultan darauf zu untersuchen sind, ob sie bestimmte Basisvektoren nicht benötigen, die
bei der klassischen Reduktion wegrationalisiert wurden, leider ein hoffnungsloses Unterfangen.
Beispiel 10.12
Angenommen, wir haben einen QOBDD vorliegen, dessen Transformationen
allesamt Permutationen sind. Seine Darstellung sei
|ψi = Pxǫnn · ... · Pxǫ11 |1i.
Er sei bereits klassisch reduziert.
Nun fügen wir wegen unserer sukzessiven Synthese aus einem fiktiven Quantenschaltkreis eine Einqubit-Hadamardtransformation H1i = idi−1 ⊗ H1 ⊗ idw−i
auf Qubit |qi i an. Sie wirkt direkt auf |ψi. Vor der Synthese mit dem nächsten Teil-QOBDD muss diese Nichtpermutation nun in die erste Transformation
geschoben werden, damit nach der Synthese die Transformationen 2 bis n nur
Permutationen sind und wieder klassisch reduziert werden kann. Da die Hadarmardtransformation aber nicht mit den Permutationen, die zusätzlich noch
von der Eingabe abhängen, kommutiert, sieht unser QOBDD nach dem Hochschieben folgendermaßen aus:
H1i |ψi = H1i · Pxǫnn · ... · Pxǫ11 · |1i
n−1
= Pxǫnn · ((Pxǫnn )−1 · H1i · Pxǫnn ) · Pxǫn−1
· ... · Pxǫ11 · |1i
..
.
= Pxǫnn · ... · ((Pxǫ22 )−1 · ... · (Pxǫnn )−1 · H1i · Pxǫnn · ... · Pxǫ11 ) · |1i
,...,ǫn
= Pxǫnn · ... · Pxǫ22 · Txǫ11,...,x
· |1i
n
Wir waren zwar erfolgreich in unserem Vorhaben, dass bis auf die erste Transformation alle anderen Transformationen Permutationen sind, und könnten jetzt
munter von unten her klassisch reduzieren. Allerdings haben wir uns diese
Situation damit erkauft, dass nun die erste Transformation von allen n Eingabebits abhängt. Selbst wenn wir bis zum zweiten Niveau einen wunderbar
schlanken QOBDD erhalten hätten, müsste auch die erste Transformation darauf getestet werden, ob sie mit entsprechend wenigen Basisvektoren auskommen
kann, da unser QOBDD auf einer festen Breite, also Dimension des zugrundeliegenden Hilbertraumes rechnet, und diese richtet sich nach der breitesten Stelle.
Effektiv handelt es sich bei der ersten Transformation aber um 2n verschiedene
Matrizen. Wir haben also unser Problem nicht nur nicht vereinfacht, sondern es
80
10.2. Reduktion eines QOBDDs
sogar exponentiell aufgeblasen, da im Urzustand nur 2n verschiedene Matrizen
vorgelegen haben.
Das Problem muss also grundsätzlich anders angegangen werden. Wir interessieren uns
für den minimalen Unterraum U von H, den die Berechnung benötigt. Dazu wäre es hilfreich, von jeder der 2n Transformationen die Drehebenen und Spiegelachsen zu bestimmen.
Der von ihnen aufgespannte Raum ist U . Die alternative Vorgehensweise, die eventuell algorithmisch günstiger ist, betrachtet zu jeder der 2n Transformationen den fixen Unterraum
und schneidet diese alle. Dadurch erhält man H \ U .
Um die Unterräume zu bestimmen, auf denen die Transformationen arbeiten, beziehungsweise, die sie fix lassen, hilft die Algebra, genauer die Darstellungstheorie [22], die
sich mit der Repräsentation von Gruppenelementen als Matrizen beschäftigt, die auf einem Vektorraum operieren. Dort ist die Hauptaufgabe die Unterräume zu bestimmen, die
von allen Gruppenelementen in sich überführt werden. Unsere Anforderung ist schwächer.
Wir interessieren uns erst einmal für eine einzelne Matrix, und wollen die fix gelassenen
Unterräume von den nur invarianten Unterräumen, die also in sich selbst abgebildet werden, der Dreh- beziehungsweise Spiegelebene, trennen. Wir wollen eine Matrix in ihre
irreduziblen Bestandteile zerlegen, und dann entscheiden, welcher Unterraum jeweils bei
der Berechnung eine Rolle spielt. Sollte ein Unterraum zweidimensional sein, so ist er eine
Drehebene. Ist ein Unterraum eindimensional, so kann es sich entweder um eine irrelevante
Dimension handeln, die fix bleibt, oder aber dies ist die Normale auf eine Spiegelebene.
Nur leider müssen diese abstrakten Aspekte konkret umgesetzt werden. In den mathematischen Betrachtungen der Darstellungstheorie werden nur Äquivalenzklassen behandelt,
so dass keine Vorschläge gemacht werden, wie denn nun eine konkrete Matrix in Blockdiagonalform gebracht werden kann. Diese Techniken finden sich in den Dissertationen von
Minkwitz [44], der den Zusammenhang zwischen schneller Fouriertransformation und der
Darstellungstheorie beschreibt, und Püschel [48], der dessen Ergebnisse verallgemeinert und
konkrete Algorithmen angibt, mit denen die Zerlegungsmatrizen gefunden werden können,
die aus einer beliebigen Matrix eine Blockdiagonalmatrix machen.
Die Wiedergabe der verwendeten Technik würde aber den Rahmen dieser Arbeit sprengen. Also sollen lediglich die Hauptideen kurz aufgelistet werden. Ziel von [48] ist es,
ein Algorithmenpaket aufzubauen, welches eine effiziente Zerlegung von Matrizen, ja sogar ganzer Gruppen, in ihre irreduziblen Bestandteile realisiert. Dazu werden viele der
allgemeinen algebraischen Sätze ins Konkrete verfeinert, und darauf aufbauend ein Verfahren angegeben, mit dem sukzessive die Zerlegungsmatrix aufgebaut wird, so dass in jedem
Schritt ein irreduzibler Bestandteil herausgefiltert wird. Außerdem werden die irreduziblen
Bestandteile sortiert ermittelt. Dazu wird eine Matrix auf Symmetrien untersucht, und die
gefundenen Symmetrien genutzt, um die Matrix zu zerlegen.
Wir können nun für jede der 2n Transformationen den fixen Unterraum bestimmen,
indem wir uns die irreduziblen Komponenten besorgen, die identischen Abbildungen herausfiltern und über die Zerlegungsmatrix die zur Drehebene beziehungsweise Spiegelnormalen gehörigen Eigenvektoren bestimmen. Nun fassen wir alle so erhaltenen Vektoren
zusammen, und bestimmen mit Hilfe eines Orthonormierungsverfahrens eine Basis des Berechnungsraumes. Diese liefert uns auch direkt die Basiswechselmatrix, die alle 2n Matrizen
in Blockdiagonalform überführt, wobei durch Umbenennung dafür gesorgt sei, dass die in
81
10. Synthese und Reduktion von QOBDDs
allen Transformationen überflüssigen Dimensionen die letzten k Vektoren der neuen Basis
sind. Nun kann man den Hilbertraum H des QOBDDs einschränken, indem die letzten k
Basiszustände herausgeteilt werden. Die Matrizen der Transformationen verkleinern sich
um die letzten k Zeilen und Spalten.
Zusammen mit dem anfänglichen Herausteilen von Zuständen, die genau einen der alten
Startzustände enthalten, und die aufgrund der ersten Transformation nicht erreicht werden
können, und dem abschließenden Zusammenfassen der akzeptierenden und zurückweisenden
Zustände in jeweils einem Basisvektor ergibt die oben genannte Art der Reduktion schon
eine deutlich verkleinerte Darstellung der Booleschen Funktion als QOBDD.
Dies ist eine sehr formale Minimisierung eines QOBDDs, die aber einen praktikablen
Eindruck erweckt. Leider trügt das. Zum Beispiel kann die Realisierung der Berechnung
dermaßen ungünstig gewählt sein, dass mehr Dimensionen in den einzelnen Transformationen benutzt werden, als zur Darstellung der Booleschen Funktion nötig gewesen wäre. Der
geschickte Wechsel in eine andere Basis macht einen der Hauptvorteile des Quantum Computing aus. Die Möglichkeit an jeder Stelle der Berechnung beliebig die Basis zu wechseln
wird durch obigen Weg einen QOBDD zu reduzieren gar nicht berücksichtigt. Er funktioniert nur, wenn die Matrizen simultan diagonalisierbar sind, also eine gemeinsame Basis aus
Eigenvektoren besitzen. Aber selbst dann ist nicht gewährleistet, dass keine Optimierung
mehr möglich ist.
Obwohl die strukturelle Reduktion im klassischen sehr schön anschaulich über die deletion rule und die merging rule erreichbar war, ist es im Quantenfall nicht so einfach.
Erschwerend kommt hinzu, dass die Übergangsamplituden kontinuierliche Werte annehmen können. Also sind solche Dinge, wie isomorphe Teilbäume extrem unwahrscheinlich,
man muss sich zwangsläufig auf ein formales Niveau zurückziehen und kann nicht auf anschauliche Argumente zurückgreifen. Aus diesen Gründen ist die strukturelle Reduktion
eines QOBDDs im Rahmen dieser Arbeit nicht erreichbar gewesen.
10.3. Reduktion und Synthese einfacher Quantenschaltkreise
Auch wenn man davon absieht, dass der letzte Abschnitt das Problem nicht einmal überblickweise abschließend behandeln konnte, bleiben die dort besprochenen Techniken ziemlich abstrakt. Um nun aber doch eine gewisse Vorstellung davon zu bekommen, welche
Schwierigkeiten sich bei der Reduktion von QOBDDs ergeben, soll in diesem Abschnitt
eine abgespeckte Version von Quantenschaltkreisen synthetisiert werden. Wir erlauben als
einzige Gatter die Einqubithadamardtransformation H1 und das zweiwertige XOR.
|x1i
|x2i
H
|H1 · x1i
|(H1 · x1) ⊕ x2i
Abbildung 10.1.: Eine Verallgemeinerung des Schaltkreises aus Abbildung 3.3 als Beispiel
für einen Quantenschaltkreis, der lediglich die Hadarmardtransformation
und XOR als Gatter enthält. Er soll als anschauliches Beispiel dienen,
um die Verfahren die dieser Abschnitt einführt zu illustrieren.
82
10.3. Reduktion und Synthese einfacher Quantenschaltkreise
Damit der gesamte Hergang der Synthese nachvollziehbar wird, beginnen wir in Abschnitt 10.3.1 mit dem Einlesen der Eingabebits, für das anfangs ebenfalls ein eigener
QOBDD aufgebaut werden muss, analog zum ITE-Algorithmus, der eine Implementation
von klassischen OBDDs angibt [43]. Danach wird Abschnitt 10.3.2 die Konsequenzen der
Hadamardtransformation eines Quantenregisters beleuchten. Die Synthese zweier durch
XOR verknüpfter QOBDDs wird Thema von Abschnitt 10.3.3 sein. Abschließend wird in
Abschnitt 10.3.4 untersucht, inwieweit die Beschränkung auf diese zwei einfachen Gatter
eine Erleichterung der Reduktion des resultierenden QOBDDs gebracht hat.
Als Bild kann man sich eine abgewandelte Form des Quantenschaltkreises zur Herstellung zweier verschränkter Qubits aus Abbildung 3.3 vorstellen, wie sie hier in Abbildung
10.1 gegeben ist. Die nächsten Abschnitte werden sich nun von links nach rechts durch
diesen Quantenschaltkreis bewegen und die dort nötigen Schritte mit ihren Schwierigkeiten
besprechen.
10.3.1. Das Einlesen der Eingabebits als QOBDD
Der erste Schritt bei der Realisierung eines Quantenschaltkreises als QOBDD ist der, die
Eingabebits einzulesen. Schließlich werden die Leitungen eines Quantenschaltkreises ganz
zu Beginn mit den Eingaben belegt. Wenn wir nun von links nach rechts den Schaltkreis
entlang gehen, und jedes auftauchende Gatter zu einer Erweiterung beziehungsweise Synthese der bereits existierenden atomaren QOBDDs nutzen, müssen anfangs Mini-OBDDs
erzeugt werden, die jeweils das Einlesen eines Bits besorgen.
|x1i
|x2i
H
|H1 · x1i
|(H1 · x1) ⊕ x2i
Abbildung 10.2.: Wir beginnen ganz links damit, dass die beiden Eingabebits x1 und x2 auf
die beiden Leitungen des Quantenschaltkreises gelegt werden.
Da wir den Quantenschaltkreis aus Abbildung 10.1 in einen QOBDD umwandeln wollen,
werden wir hier gleich zwei Bits einlesen. Die zwei folgenden QOBDDs stellen also die
Funktionen f1 (x1 ) = x1 und f2 (x2 ) = x2 mit Fehler Null dar. Wir wollen sie später
vereinigen. Da sie gerade noch völlig verschiedene Eingabebits betrachten, müssen sie
erst einmal zu QOBDDs mit gleicher Anzahl von Variablen und gleicher Variablenordnung
gemacht werden. Dazu müssen wir also auch den Input der beiden QOBDDs jeweils um
ein im Augenblick noch unsinniges Bit erweitern.
Die Darstellung als Graph lebt in einem dreidimensionalen Hilbertraum, da wir die
drei orthogonalen Unterräume der akzeptierenden, zurückweisenden und nichtterminalen
Zustände benötigen. Wir wollen hier aber gleich mit der speichergünstigen Variante arbeiten. Für die zwei Senken des untersten Niveaus benötigen wir eine Breite von zwei.
Demnach ist die Basis von Hf1 {|p1 i, |p2 i} und die von Hf2 ist {|q1 i, |q2 i}, wobei der ersten
Dimension jeweils der Startzustand, sowie der zurückweisende Zustand in den verschiedenen Schichten zugeordnet sei, der zweiten der akzeptierende Zustand in der terminalen
Schicht. Der QOBDD Gf1 entwickelt sich bezüglich der Einlesetransformation und danach
83
10. Synthese und Reduktion von QOBDDs
bezüglich der Identität, da er nicht von x2 abhängt.
0 1
1 0
1
0
Sx1 =
Sx1 =
1 0
0 1
Sx12 = id2
Sx02 = id2
In der ersten Schicht befindet sich der Zustand mit Amplitude 1 im Startzustand |1i, der
Übergang von |2i in der zweiten Spalte der Matrix Tx1 ist also unbestimmt. Allerdings ist
die obige Form die einzige Erweiterung auf eine unitäre Transformation.
Bei Gf2 ist es umgekehrt.
0
Tx11 = id2
id2
Tx1 = 0
1
1 0
1
0
Tx2 =
Tx2 =
1 0
0 1
Analog zu obigem Vorgehen kann man nun n QOBDDs für alle n Eingabebits eines
Quantenschaltkreises erstellen. Sie alle beziehen sich auf die gleiche Variablenordnung
und -anzahl. Demnach enthalten sie jeweils (n − 1) mal die Identität als Transformation.
Um das weiterführende Einbauen der wirklichen Transformationen vorzubereiten, könnte
man diese n Mini-QOBDDs bereits vereinigen. Das würde allerdings den Vorteil zunichte
machen, dass wir in jedem Schritt eine recht überschaubare Situation erhalten, wenn es
ans Reduzieren geht, da wir den QOBDD nach und nach aufbauen wollen.
Formal wäre eine Synthese eines QOBDDs aus einem Quantenschaltkreis natürlich sehr
einfach, wie bereits die allgemeine Synthese von zwei beliebigen QOBDDs gleicher Variablenordnung. Wir erstellen obige Mini-QOBDDs, vereinigen sie alle zu einem großen
QOBDD auf einem 2n dimensionalen Hilbertraum, der am Ende den Input gespeichert
hält. Die Darstellung des QOBDD bezüglich der Eingabe (ǫ1 , . . . , ǫn ) sei
|ψi = Pxǫnn · ... · Pxǫ11 |1i.
Die Einlesetransformationen sind allesamt Permutationen. Diese Darstellung lässt sich
nicht weiter reduzieren, da am Ende eine sichere Repräsentation der Eingabe vorliegen
muss, und dafür benötigen wir eine Breite von 2n .
Jede weitere Transformation hängt nun nicht mehr von der Eingabe ab, da sie ja durch die
einzelnen Dimensionen codiert ist. Sie können ohne weiteres links an die obige Darstellung
angesetzt werden, und formal mit der n-ten Permutation verschmolzen werden, um nur n
vom Input abhängende Transformationen zu haben.
Dass dies nicht ganz im Sinne unserer Idee ist, ist offensichtlich. Wir haben ein QOBDD
exponentieller Breite, das in dieser Form nicht vernünftig reduziert werden kann, wie ja
bereits in Beispiel 10.12 besprochen wurde. Mehr unserem Ziel entsprechend ist es also, die
Mini-QOBDDs nicht gleich anfangs zu vereinigen, sondern nur dann, wenn zwei Leitungen
des Quantenschaltkreises durch eine übergreifende Transformation, in unserem vereinfachten Fall XOR, miteinander verbunden werden. Der so erhaltene QOBDD hat dann eine
sehr gut definierte Struktur, und es kann der Versuch einer Reduktion der neuen Breite
gestartet werden. Um aber diese definierte Situation in unserem Fall genauer zu kennen,
müssen die nächsten Abschnitte erst einmal die Auswirkungen der Anwendung der zwei
erlaubten Transformationen untersuchen.
84
10.3. Reduktion und Synthese einfacher Quantenschaltkreise
10.3.2. Anfügen des Hadamardgatters zu einem QOBDD
|x1i
|H1 · x1i
H
|x2i
|(H1 · x1) ⊕ x2i
Abbildung 10.3.: Als nächster Schritt soll die obere Leitung hadamardtransformiert werden.
Das eine erlaubte Gatter in unserer vereinfachten Ausgangssituation ist die Hadamardtransformation H1 auf einem Qubit, wie sie in Definition 3.13 gegeben ist. Sie liegt in
der Form H1i = idi−1 ⊗ H1 ⊗ idw−i vor, die bereits in Beispiel 10.12 benutzt wurde. Wie aus
Abbildung 10.1 ersichtlich ist, werden durch das Einfügen einer Hadamardtransformation
keine zwei Teil-QOBDDs zusammengeführt, sondern lediglich die letzte Transformation des
aktuellen QOBDDs, der die entsprechende Leitung beinhaltet, im Falle unseres Beispieles
also Gf1 .
Diese Art der Erweiterung des QOBDDs ändert wie bereits besprochen nur die letzte
der Transformationen. In unserem Beispiel wird also
!
!
1
1
1
1
Sx12 = H1 · id =
√
2
√1
2
√
2
− √12
und
Sx02 = H1 · id =
√
2
√1
2
√
2
− √12
.
Dass nach dem Einfügen einer Hadamardtransformation keine Reduktion möglich ist, leuchtet ein, da wir annehmen, dass vor der Aufnahme des nächsten Gatters die QOBDDs bereits reduziert wurden, und die Hadamardtransformation die Breite nicht verändert, sondern eher noch, im Sinne von Abschnitt 10.2, den zur Berechnung genutzten Unterraum
vergrößert. Auf jeden Fall haben wir mit einer Hadamardtransformation die Permutationseigenschaft der letzten Transformation zerstört. Dies erschwert uns nachher die Reduktion.
Die Hadamardtransformation nach oben zu verschieben, bringt uns auch keine Vereinfachung, wie wir bereits in Beispiel 10.12 gesehen hatten.
10.3.3. Die Synthese zweier mit XOR verknüpfter QOBDDs
Spannender wird die Situation, wenn tatsächlich Leitungen des Quantenschaltkreises verbunden werden, und Produkt-QOBDDs konstruiert werden müssen. Dieser Fall soll in
diesem Abschnitt durchgegangen werden. Dazu ist zu sagen, dass das XOR-Gatter klassischer Natur ist. Es ist also prinzipiell möglich, einen XOR-QOBDD genauso wie den
klassischen OBDD für XOR mit einer Breite von zwei darzustellen, wie es am Ende von
Abschnitt 9.2 gezeigt wurde. Insofern sind die umständlichen Darstellungen dieses Abschnitts nur zu Demonstrationszwecken gedacht. Es ist aber einfacher ein Problem, dessen
Lösung, wie hier über die klassische Korrespondenz, bekannt ist, möglichst nah an der formalen Definition zu halten, um deren Arbeitsweise zu erklären, als ein Beispiel zu wählen,
dessen Lösung im Dunkeln verbleibt.
Wir wollen also für die Synthese des in Abbildung 10.1 dargestellten Quantenschaltkreis
die in den letzten beiden Abschnitten ermittelten Teil-QOBDDs nun bezüglich XOR zusammenfügen, und dabei möglichst formal, wie in Abschnitt 10.1 eingeführt, vorgehen.
85
10. Synthese und Reduktion von QOBDDs
|x1i
|H1 · x1i
H
|x2i
|(H1 · x1) ⊕ x2i
Abbildung 10.4.: Als letzter Syntheseschritt werden die beiden Leitungen über das XORGatter verbunden. Wir müssen also die bis hierhin eigenständigen
QOBDDs verschmelzen.
Dazu ermitteln wir erst einmal den Produkthilbertraum.
H = Span({|1i ⊗ |1i, |1i ⊗ |2i, |2i ⊗ |1i, |2i ⊗ |2i, })
= Span({|1, 1i, |1, 2i, |2, 1i, |2, 2i, })
= Span({|1i, |2i, |3i, |4i})
Der Startzustand des Synthese-QOBDDs ist |1i, da dieser das Produkt aus den zwei ursprünglichen Startzustände ist. Die Berechnung bezüglich der Eingabe x = (ǫ1 , . . . , ǫn )
ist
G : |ψi = (Sx2 ⊗ Tx2 )ǫ2 · (Sx1 ⊗ Tx1 )ǫ1 |1i.
Die einzelnen Transformationen sind
(Sx1 ⊗ Tx1 )1
(Sx1 ⊗ Tx1 )0
(Sx2 ⊗ Tx2 )1
(Sx2 ⊗ Tx2 )0

0 0
 0 0
= 
 1 0
0 1

1 0
 0 1
= 
 0 0
0 0

0
1 
1
= √ 
2 0
1

1
1 
0
= √ 

1
2
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1

0
1 
,
0 
0

0
0 
 = id4 ,
0 
1

0
1
1
0 
,
0 −1 
−1 0

1
0
0
1 
.
−1 0 
0 −1
Um nun die Menge Qacc richtig zuzuordnen, müssen wir uns noch klarmachen, welche
Boolesche Funktion unser Quantenschaltkreis überhaupt darstellen soll. Eigentlich interessierte uns in Abschnitt 3.6 die Verschränkung der zwei Qubits. Dies ist nun keine Boolesche
Funktion. Wenn wir aber annehmen, dass die Hadamardtransformation lediglich Fehlerquelle in dem oberen Teil-QOBDD ist, und wir eigentlich nur XOR berechnen wollen,
86
10.3. Reduktion und Synthese einfacher Quantenschaltkreise
ergäbe sich die folgende Zuordnung:
Racc = {|2i, |3i} = {|1, 2i, |2, 1i}
Damit haben wir den zum Quantenschaltkreis aus Abbildung 10.1 gehörigen QOBDD
gemäß Definition 9.31 vollständig bestimmt. Nun ist aber die Frage, ob es möglich ist,
diesen weiter zu reduzieren. Dieser Frage widmet sich der folgende abschließende Abschnitt
dieses Teils.
10.3.4. Die Reduktion des synthetisierten QOBDDs
Eine völlig allgemeine Reduktion hat sich bereits in Abschnitt 10.2 als schwierig erwiesen.
Wir werden uns hier also speziell an der Situation festhalten, die der Beispielquantenschaltkreis aus Abbildung 10.1 liefert. Eine naheliegende Idee ist nun, sich wieder auf die
Intuition der klassischen Reduktion zurückzubesinnen. Deswegen gibt Abbildung 10.5 die
Graphendarstellung des aktuellen QOBDDs an.
|1i
|2i
|3i
|4i
x1
x1
x1
x1
x2
x2
x2
x2
(Sx1 ⊗ Tx1 )
E0
E1
Amplituden
1
√1
2
− √12
(Sx2 ⊗ Tx2 )
0
1
1
0
Abbildung 10.5.: Graphendarstellung des QOBDDs der aus dem Schaltkreis in Abbildung
10.1 synthetisiert wurde.
Nun können wir das bekannte Arsenal verwenden. Das unterste Niveau ist reduzierbar,
da es je zwei akzeptierende wie zurückweisende Knoten gibt. Dort benötigen wir also nur
zwei Knoten, wenn wir die zwei gleich markierten Knoten jeweils vereinigen. Wir werden
uns erst einmal durch den Graphen reduzieren, und im Nachhinein begutachten, wie weit
wir die einzelnen Schichten wieder auffüllen müssen, um überall dieselbe Breite vorliegen
zu haben. Das Resultat der Vereinigung ist in Abbildung 10.6 gegeben.
Eine weitere Überlegung, die unseren QOBDD verkleinern kann, ist die Beobachtung,
dass der Startzustand |1i durch (Sx1 ⊗ Tx1 ) unabhängig vom Input nur auf die Zustände
|1i beziehungsweise |2i der zweiten Schicht abgebildet wird. In der zweiten Schicht sind
also die Zustände |3i und |4i überflüssig. Dass wir in der obersten Schicht nur den Startzustand |1i benötigen, ist offensichtlich. Wenn wir sie herausnehmen, haben wir in unserem
QOBDD überall eine Breite von 2. Die Graphendarstellung des so reduzierten QOBDDs
zeigt Abbildung 10.7
Wie man nun aber leicht sehen kann, hängt der QOBDD nicht mehr von der Variable x2
ab, da zwischen der zweiten und dritten Schicht die Kanten aus E1 und E0 völlig parallel
87
10. Synthese und Reduktion von QOBDDs
|1i
|2i
|3i
|4i
x1
x1
x1
x1
x2
x2
x2
x2
0
E0
E1
Amplituden
1
√1
2
1
√
− 2
1
Abbildung 10.6.: Die akzeptierenden, sowie die zurückweisenden Knoten wurden jeweils
vereinigt.
|1i
|2i
x1
x1
x2
x2
E0
E1
Amplituden
1
√1
2
0
1
Abbildung 10.7.: Die Zustände |3i und |4i, die im Laufe einer Berechnung in der zweiten
Schicht niemals angenommen werden, sind dort herausgeteilt.
verlaufen. Wenn man klassisch weiter reduziert, würde die merging rule die beiden Knoten
der zweiten Schicht vereinigen und anschließend die deletion rule die zweite Schicht ganz
herausteilen. Das Ergebnis hängt also noch nicht einmal von der ersten Variablen ab. Dieses Ergebnis aus dem Quantenschaltkreis oder der Graphendarstellung von Abbildung 10.5
herauszusehen ist nicht einfach. Für den Schaltkreis hatten wir allerdings auch noch nicht
festgelegt, welche Boolesche Funktion wir damit darstellen wollen. Erst durch die Festlegung der akzeptierenden Zustände haben wir den Test der beiden Variablen überflüssig
gemacht. Ein Blick auf Abbildung 10.5 macht deutlich, dass eine andere Wahl als |2i und
|3i auch nicht zu diesem Ausgang geführt hätte. Das Ergebnis wäre allerdings deutlich
weniger überraschend gewesen, wenn wir vorher eine Analyse der Situation vorgenommen
hätten.
Die Hadamardtransformation der oberen Leitung des Quantenschaltkreises führt zu den
Zuständen |−i beziehungsweise |+i, je nach Wert von x1 . Diese sind eine gleichwertige
Superposition der Zustände |0i und |1i bis auf Vorzeichen. Die Verkettung dieser Zustände
88
10.3. Reduktion und Synthese einfacher Quantenschaltkreise
mit der Eingabe x2 mittels XOR liefert logischerweise auch immer eine gleichwertige Superposition von |0i und |1i, die verschiedenen Ergebnisse unterscheiden sich lediglich in einem
Vorzeichen. Da dieses bei einer Messung, die wir durchführen müssen, wenn wir ein klassisches Bit als Ergebnis erhalten wollen, wegfällt, sind die Ergebnisse für den Beobachter
alle identisch. Dies erklärt das Zusammenbrechen des QOBDDs unter der Reduktion.
Die Reduktion bedarf also eines umständlichen Weges, den QOBDD in seine Graphendarstellung zu übersetzen, nachdem er durch die Synthese erst einmal in der abstrakten
Form gegeben ist. Dieser Graph kann dann mit den klassischen Reduktionsregeln verkleinert werden, wenn eine so günstige Situation wie in unserem Beispiel vorliegt, dass alle
von Null verschiedenen Übergangsamplituden einer Transformation den gleichen Betrag
haben. Allerdings ist dies in unseren vereinfachten Quantenschaltkreisen der Fall. Die Hadamardtransformation hat nur √12 mit unterschiedlichem Vorzeichen als Einträge, XOR ist
sowieso klassisch, hat also nur die Einträge 0 und 1. Jedes Produkt der auftretenden Matrizen, sowie jede durch Synthese via XOR entstandene Transformation enthält nur Nullen
und Einsen, wenn man den richtigen Vorfaktor herauszieht.
Dies könnte jetzt der Ausgangspunkt für detaillierte Analysen sein, welche praktisch
relevanten Booleschen Funktionen sich mit diesen zwei Gattern darstellen lassen, um
abschätzen zu können, welchen Stellenwert das Ergebnis dieses Abschnittes hat. Außerdem
schließen sich Untersuchungen an, um welche Gatter dieses vereinfachte Quantenschaltkreismodell erweitert werden kann, ohne die Eigenschaft der Reduzierbarkeit zu verlieren. Dies
würde aber den Rahmen dieser Arbeit zeitlich wie platzmäßig sprengen. Also schließen wir
diesen Teil mit der Feststellung, dass man die Reduktion eines QOBDDs nicht allgemein,
wohl aber in einer Teilmenge der Probleme durchführen kann.
89
10. Synthese und Reduktion von QOBDDs
90
11. Diskussion und Ausblick
Dieses Kapitel soll noch einmal abschließend die in dieser Arbeit behandelten Themen
durchgehen, jeweils die Resultate zusammenfassen und beschreiben, in welche Richtung
sich Fragen ergeben haben, die es nun im Anschluss zu klären gilt. Der letzte Abschnitt
ist einer persönlichen Reflektion gewidmet.
Insgesamt ist aus dieser Arbeit ein Erlebnisbericht geworden, der den Weg beschreibt von
den anfänglichen Berührungsängsten aber auch der Faszination, die die Quantenmechanik
mit sich bringt, wenn sie kurzerhand mathematisch unumstößlich die sichere Alltagssicht
auf unsere Welt und unsere Wahrnehmung ins Wanken bringt, bis hin in die tiefsten Tiefen
des Quantum Computing, einem florierenden Forschungsgebiet, dessen technische Anwendung noch in den Sternen steht. Der Pioniergeist, der dem Thema noch anhaftet, wird aber
im Laufe der Arbeit massiv gedämpft, da man, um sich wirksam in diesen Forschungszweig
einzuklinken, schnell bei verstaubten Büchern über Darstellungstheorie landet.
Trotzdem liefert diese Arbeit mehr als eine Auflistung von Leidensstationen, nämlich
den Blick durch die Tür hinaus ins Neuland des Quantum Computing. Es zielstrebig zu
durchwandern muss aber auf einen späteren Zeitpunkt vertagt werden.
11.1. Brechen klassischer Verschlüsselung mit
Quantenalgorithmen
Der Faktorisierungsalgorithmus von Shor hat die Hoffnung beziehungsweise Befürchtung
geweckt, ein Quantencomputer wäre in der Lage sämtliche Verschlüsselungsverfahren brechen zu können, die sich auf ein schwer zu berechnendes mathematisches Problem stützen.
Dass das Ergebnis von Grover der Goldgräberstimmung im Quantum Computing einen
starken Dämpfer verpasst hat, hat an dieser Allmachtsvermutung wenig Abbruch getan.
In dieser Arbeit wurde ein Authentifizierungsverfahren untersucht, dass sich auf die Vermutung stützt, dass es nicht effizient möglich ist, in einem Restklassenring Quadratwurzeln zu berechnen. In der Tat lassen sich Ähnlichkeiten zu den durch Quantenalgorithmen
gelösten Problemen feststellen. Ein Brechen des Protokolls durch einen Quantencomputer
einscheint machbar.
11.1.1. Resultate
Die Suche nach einem Quantenalgorithmus, der das Protokoll bricht, führt aber sehr schnell
tief in die Feinheiten des Quantum Computing: der geschickten Entwicklung einer speziellen
auf das Problem angepassten diskreten Fouriertransformation. Dieser Trick hat bisher allen
erfolgreichen Quantenalgorithmen zu ihrer exponentiellen Beschleunigung verholfen.
Der naive Ansatz, der anfangs beschrieben wurde, zeigt noch einmal deutlich, dass es
im Quantum Computing nichts umsonst gibt. Um konkrete Probleme zu lösen, ist der
91
11. Diskussion und Ausblick
gesamte Methodenapparat dieser Forschungsrichtung vonnöten. Teil II zeigt aber lediglich
die Techniken auf, ohne eine konkrete Umsetzung in einem Algorithmus vorzuschlagen.
Mit dem Stabilisator der veröffentlichten Quadratzahl ist eine sogenannte versteckte
Untergruppe identifiziert, deren Suche mittels einer abgewandelten Quantenfouriertransformation realisiert werden kann. Dies wäre der mögliche Lösungsweg für unser Problem
im Rahmen der bekannten Techniken des Quantum Computing. Allerdings bedarf diese
Lösung noch einer genaueren Ausformulierung, sowie einer detaillierten Laufzeitanalyse,
da die Nähe des Wurzelziehens zu Grovers Algorithmus die Vermutung nahelegt, dass der
beschriebene Weg nicht effizient arbeitet.
11.1.2. Offene Fragen
Wie bereits im letzten Abschnitt angedeutet, bleiben einige Punkte offen, die sich direkt an
diese Arbeit anschließen, da noch nicht abschließend geklärt ist, ob wirklich ein effizienter
Quantenalgorithmus entwickelt wurde, der das Fiat-Shamir Protokoll bricht, oder ob er
doch an der mangelnden Beschleunigung des Algorithmus von Grover scheitert.
Leider konnte in dieser Arbeit kein neuer Beitrag für den Fundus an Rechentricks des
Quantum Computing geleistet werden, sondern es wurden lediglich altbekannte Techniken
untersucht, ob sie für dieses spezielle Problem eingesetzt werden können. Dies hat zwar
pädagogischen Wert, hauptsächlich für den Verfasser, ist aber von mäßigem wissenschaftlichem Interesse.
11.2. Quantum Ordered Binary Decision Diagrams
Deutlich interessanter haben sich dagegen die QOBDDs erwiesen, da sie ein erfolgreiches
klassisches Konzept übernehmen, das noch nicht vollständig auf den Quantenfall übertragen
wurde. QOBDDs sind ein Mittel platzbeschränkte Quantenalgorithmen zur Auswertung
klassischer Boolescher Funktionen zu beschreiben. Insofern sind sie ein probates Mittel
Quantenplatzkomplexität zu untersuchen.
Ein besonders wichtiges Resultat klassischer OBDDs ist die Eindeutigkeit der Reduktion
und die Möglichkeit einer einfachen Synthese eines OBDDs aus einer Booleschen Formel.
Dies für QOBDDs ebenfalls zu finden ist sehr unwahrscheinlich, nicht zuletzt wegen der
geringen Wahrscheinlichkeit, gleich gewichtete Kanten in einem allgemeinen Quantenbranchingprogramm zu finden, die man vereinigen könnte.
Als Analogon für die Synthese klassischer OBDDs aus Booleschen Formeln bietet sich
im Quantenfall die Synthese eines QOBDDs aus Quantenschaltkreisen an, die eine übliche
Beschreibung von Quantenalgorithmen sind. Diese können von links nach rechts in der
zeitlichen Abfolge der Berechnung durchgegangen werden, und sukzessive jedes Gatter in
den QOBDD mit aufgenommen werden.
11.2.1. Resultate
Die Synthese eine QOBDDs aus einem Quantenschaltkreis ist sehr gradlinig zu realisieren. Die Produktkonstruktion zweier QOBDDs mit derselben Variablenordnung ist dank
92
11.2. Quantum Ordered Binary Decision Diagrams
der Struktur des äußeren Produkts in der Quantenmechanik eine sehr natürliche Angelegenheit. Einzig das Einlesen der Eingabebits ist nicht sehr offensichtlich. Allerdings gibt
hier der ITE-Algorithmus, der eine Beschreibung der im Rechner realisierten Auswertung
eines OBDDs liefert, bereits alles nötige vor. Bevor die eigentlichen Transformationen des
QOBDD betrachtet werden, wird für jedes Eingabebit ein QOBDD aufgebaut, der zwar alle
Variablen bezüglich der vereinbarten Variablenordnung abruft. Aber lediglich ein spezielles
Bit hat Auswirkungen, so dass es schließlich in diesem Teil-QOBDD gespeichert vorliegt.
Diese Mini-QOBDDs werden dann nach Bedarf, also wenn es ein verbindendes Gatter gibt,
vereinigt. Insofern konnte diese Arbeit auch eine vollständige Beschreibung der Synthese
liefern.
Allerdings gehört zu einer effizienten Synthese auch eine einfach mögliche Reduktion, da
die Produktkonstruktion alleine die Dimension des unterliegenden Hilbertraumes explodieren lässt. Wünschenswert wäre also, wie im klassischen Fall nach jedem einzelnen Syntheseschritt eine Reduktion des neuen QOBDDs durchzuführen, um die Größe des QOBDDs
konsequent klein zu halten.
Dass die Reduktion eines QOBDD allgemein möglich ist, wurde in dieser Arbeit begründet in Frage gestellt. Die Frage nach der Eindeutigkeit stellt sich demnach natürlich
nicht. Eine gewisse Reduktion ist aber dennoch denkbar, wenn auch unter Verwendung
eines sehr aufwendigen Apparates algebraischer Techniken. Die zugrundeliegende Idee ist,
dass alle unitären Transformationen nur Drehungen und Spiegelungen sind. Sie arbeiten
also jeweils auf einem maximal zweidimensionalen Unterraum des Gesamtraumes. Man
kann sich alle diese relevanten Unterräume heraussuchen, und den von ihnen aufgespannten Hilbertraum als verkleinerten Rechenraum benutzen.
Allerdings ist nicht gesagt, dass die Transformationen schon bestmöglich gewählt sind.
Es ist denkbar, dass das Problem mit wesentlich geringerer Breite berechnet werden kann,
wenn einige Transformationen in eine geschicktere Basis transformiert würden. Diese Optimierung der Basis dürfte schon bei zwei kleinen Transformationen ein Problem sein, für
das keine effiziente Lösung existiert. Wenn zum einen die Transformationen größer werden,
zum anderen es deutlich mehr werden, ist an einen effizienten Algorithmus nicht mehr zu
denken.
Um die oben benannte Explosion der Registergröße einzudämmen, wurde eine vereinfachte Ausgangssituation eingeführt, indem angenommen wurde, dass die zu synthetisierenden
Quantenschaltkreise als Gatter nur die Hadamardtransformation auf einem Qubit, sowie
XOR enthalten. In diesem Fall ist es möglich, die klassischen Reduktionsregeln zu verwenden, und so zumindest eine gewisse Reduktion algorithmisch angeben zu können.
11.2.2. Offene Fragen
Einige Punkte wurden bereits am Ende von Teil III angesprochen. Der in dieser Arbeit
erreichte Stand regt direkt einige Erweiterungen an. Zum einen gilt es zu klären, welche
Booleschen Funktionen überhaupt mit den vereinfachten Quantenschaltkreisen dargestellt
werden können, zum anderen sind andere Transformationen darauf zu untersuchen, ob
sie ähnlich angenehme Eigenschaften haben, dass wenn man sie erlaubt immer noch die
angegebene Reduktion möglich ist.
Desweiteren liefert Abschnitt 8.2 eine detaillierte Auflistung, welche Anforderungen eine
93
11. Diskussion und Ausblick
vernünftige Darstellung Boolescher Funktionen erfüllen muss. Auch wenn nicht klar ist,
welche der Punkte sich in welchem Maße realisieren lassen, wäre es doch lohnenswert, in
diese Richtung weiterzuarbeiten.
11.3. Reflektion
Eigentlich hatte ich mir nach meiner Physikdiplomarbeit geschworen, nie wieder etwas
anzufangen, dessen Ausgang so im Ungewissen steht, dass nicht einmal klar ist, ob die
Aufgabe lösbar ist. Irgendwie scheine ich dann aber doch in der Wissenschaft richtig
aufgehoben zu sein, da ich mich wieder mit großer Begeisterung an diese Arbeit setzte.
Man könnte argumentieren, dass anfangs alles noch sehr einfach aussah, als fehlte nur die
zündende Idee. Aber die Aufforderung sei doch mal kurz genial hat schon früher nicht
funktioniert, und dürfte fast wie sei doch mal spontan bei den wenigsten Menschen zum
Erfolg führen.
Die Vorstellung, ein wirklich verwendetes Kryptoverfahren zu brechen, hatte genug Faszination bei mir ausgelöst, um mich einige Zeit am Thema zu halten. Als sich aber die
Hinweise häuften, dass das Problem eventuell im Rahmen irgendwelcher allgemeiner Abhandlungen bereits gelöst worden war, wurde mein Eifer deutlich geringer, nicht zuletzt da
die Thematik doch ein längeres Studium der Darstellungstheorie verlangt hätte, mit dem
ich nicht aufwarten konnte.
Also griff ich dankbar nach dem Strohhalm QOBDD, zwar nicht mit so großer Euphorie
wie es bei der Fiat-Shamir Problematik der Fall gewesen war, aber doch mit genügend Spaß,
den mir Graphentheorie schon immer bereitet hat, vor allem, wenn es so schön einfache
wie anschauliche Techniken gibt, wie die beiden Reduktionsregeln. Dass diese sich nicht
auf den Quantenfall übertragen ließen, nehme ich ihnen heute noch übel.
Meine Schwierigkeiten im Umgang mit den QOBDDs, die dazu geführt haben, dass
das Thema nicht umfassender behandelt wurde, haben sich erst im Zusammenhang mit
dem Aufschreiben der Arbeit bemerkbar gemacht. Vorher existierte immer ein diffuses
Gefühl eines Knotens im Hirn, der sich nicht richtig greifen ließ. Als ich die Definitionen
von QOBDDs im Detail zu Papier brachte, wurde mir erst der Unterschied zwischen der
Graphendarstellung und der Zustandsbeschreibung bewusst. Vorher nahm ich an, die Graphendarstellung sei eher für den klassischen Fall praktikabel, für QOBDDs sollte man sich
aber im Sinne der Allgemeinheit an die Darstellung einer Sequenz von Transformationen
halten.
Insgesamt bin ich sehr froh, dieses Unterfangen nur zum Spass tatsächlich realisiert zu
haben. Es hat mir wirklich viel Spaß gemacht, neben meinen doch eher physikalisch anzugehenden Problemen im Bereich Neuroscience eine Alternativbeschäftigung in der theoretischen Informatik gefunden zu haben. Auch der Kontakt in ein anderes Institut hat mir
gut getan, nicht ganz in meinem eigenen Sumpf zu versinken.
94
Anhang
95
Index
Alice, 47
Amplitude, 20
balanciert, 29
Blei, 48
Bob, 47
h· |, 14
bra-Vektor, 14
Churchsche These, 5
CNOT, 24
controlled NOT, 24
Darstellung einer Gruppe, 56
Dirac-Formalismus, 12
Drehungen, 15
Dualer Hilbertraum, 14
durchführbar, 48
Eigenschaft, 15
Eigenwertproblem, 15
Eve, 47
gemischter Zustand, 16
gesunder Menschenverstand, 11
H, 14
Hadarmardbasis, 22
Hadarmardmatrix, 22
H1 , 22
Hn , 25
hermitescher Operator, 15
hidden subgroup problem, 57
Hilbertraum, 14
H-periodisch, 57
interaktive Verfahren, 48
irreduzibel, 56
isoliert, 13
Katze, 20
|·i, 14
ket-Vektor, 14
kippen, 35
klassische Physik, 13
konstant, 29
korrekt, 48
lebendig, 20
lineare Funktionale, 14
Lokalität, 24
Messung, 12
normiert, 14
OBDD, 65
Observable, 15
Operator, 15
Orakel, 29
Ordnung, 38
orthogonal, 14
PBP, 69
Periode, 38
Postulate, 12
Präparation eines Zustandes, 13
Prover, 47
QBP, 71
QFTN , 41
QOBDD, 72
QOBDD, alternativ, 74
Quantenfouriertransformation, 41
Quantenregister, 23
Qubit, 20
reiner Zustand, 13
reversibel, 24
97
Index
Reziprozitätssatz, 50
Schicht, 65
Schichtstruktur, 65
Shannon-Zerlegung, 63
spiegeln, 35
Spiegelungen, 15
strikt H-periodisch, 57
Superposition, 13
System, 13
tot, 20
Überzeugungsprozess, 48
unitär, 15
unitäre Darstellung, 56
Verifier, 47
Verschränkung, 26
versteckte Untergruppe, 57
verträgliche Messungen, 13
Wahrscheinlichkeitsinterpretation, 12
XOR, 24
Zero-Knowledge, 47
Zero-Knowledge Eigenschaft, 48
Zustand, 13
Zustandsvektor, 13
98
Literaturverzeichnis
[1] F. Ablayev, A. Gainutdinova, and M. Karpinski. Fundamentals of Computation Theory : 13th International Symposium, FCT 2001, Riga, Latvia, August 22-24, 2001,
Proceedings, volume 2138 of Lecture Notes in Computer Science, chapter On Computational Power of Quantum Branching Programs, pages 59 – 70. Springer Berlin /
Heidelberg, 2001.
[2] F. Ablayev, C. Moore, and C. Pollett. Quantum and stochastic branching programs
of bounded width. Lecture Notes in Computer Science, 2380:343–354, 2002.
[3] M. Artin. Algebra. Birkhäuser, 1998.
[4] D. A. Barrington. Bounded-width polynomial-size branching programs recognize exactly those languages in NC1. In STOC ’86: Proceedings of the eighteenth annual
ACM symposium on Theory of computing, pages 1–5, New York, NY, USA, 1986.
ACM Press.
[5] E. Bernstein and U. Vazirani. Quantum complexity theory. Annual Acm Symposium
On Theory Of Computing, 25, 1993.
[6] B. Bollig, M. Sauerhoff, and I. Wegener. Hierarchy theorems for kobdds and kibdds.
Theoretical Computer Science, 205:45 – 60, 1998.
[7] D. Bouwmeester, A. Ekert, and A. Zeilinger, editors. The physics of quantum information. Springer-Verlag, 2000.
[8] G. Brassard, C. Crapeau, and M. Yung. Everything in NP can be argued in perfect
zero-knowledge in a bounded number of rounds. In Proceedings of the 16th ICALP,
1989.
[9] I. N. Bronstein, K. A. Semendjajew, G. Musiol, and H. Mühlig. Taschenbuch der
Mathematik. Verlag Harri Deutsch, Frankfurt am Main, Thun, 4 edition, 1999.
[10] R. Bryant. Symbolic manipulation of boolean functions using a graphical representation. In 22nd Conference on Design Automation, 1985., pages 688–694, 23-26 June
1985.
[11] R. E. Bryant. Graph-based algorithms for boolean function manipulation. IEEE
Trans. Comput., 35(8):677–691, 1986.
[12] J. Buchmann, M. Maurer, and B. Moller. Cryptography based on number fields with
large regulator, 2000.
99
Literaturverzeichnis
[13] J. Buchmann, T. Takagi, and U. Vollmer. Number field cryptography. Technical
Report TI-03/11, TU Darmstadt, 2003.
[14] P. Bundschuh. Einführung in die Zahlentheorie. Springer Verlag Berlin Heidelberg,
1988.
[15] D. Deutsch. Quantum theory, the church-turing principle and the universal quantum
computer. Proceedings of the Royal Society of London. Series A, Mathematical and
Physical Sciences, 400(1818):97–117, Jul 1985.
[16] D. Deutsch and R. Jozsa. Rapid solution of problems by quantum computation.
Proceedings: Mathematical and Physical Sciences, 439(1907):553–558, Dec 1992.
[17] A. Ekert and R. Jozsa. Quantum algorithms: Entanglement-enhanced information
processing. Proc. Trans. R. Soc. Lond. A, 356:1769 – 1782, 1998.
[18] M. Ettinger, P. Hoyer, and E. Knill. The quantum query complexity of the hidden
subgroup problem is polynomial, 2004.
[19] R. E. Feynman. Simulating physics with computers. International Journal of Theoretical Physics, 21:467–488, 1982.
[20] A. Fiat and A. Shamir. How to prove yourself: Practical solutions to identification
and signature problems. In A. Odlyzko, editor, Lecture Notes in Computer Science:
Advances in Cryptology - CRYPTO ’86: Proceedings, volume 263, page 186, 1987.
[21] S. Fortune, J. E. Hopcroft, and E. M. Schmidt. The Complexity of Equivalence and
Containment for Free Single Variable Program Schemes. ICALP, 1978.
[22] W. Fulton and J. Harris. Representation Theory, A First Course. Springer Verlag
New York, 1991.
[23] W. Gellert, D. H. Küstner, D. M. Hellwich, and H. Kästner. Kleine Enzyklodädie
Mathematik. VEB Bibliographisches Institut Leipzig, 11 edition, 1979.
[24] S. Goldwasser and Y. Kalai. On the (in)security of the fiat-shamir paradigm. In 44th
Annual IEEE Symposium on Foundations of Computer Science, 2003. Proceedings.,
pages 102– 113, 2003.
[25] S. Goldwasser, S. Micali, and C. Rackoff. The knowledge complexity of interactive
proof-systems. In STOC ’85: Proceedings of the seventeenth annual ACM symposium
on Theory of computing, pages 291–304, New York, NY, USA, 1985. ACM Press.
[26] L. K. Grover. A fast quantum mechanical algorithm for database search. In STOC
’96: Proceedings of the twenty-eighth annual ACM symposium on Theory of computing,
pages 212–219, New York, NY, USA, 1996. ACM Press.
[27] H. Häffner, W. Hänsel, C. F. Roos, J. Benhelm, D. Chek-al-kar, M. Chwalla, T. Körber,
U. D. Rapol, M. Riebe, P. O. Schmidt, C. Becher, O. Gühne, W. Dür, and R. Blatt.
Scalable multiparticle entanglement of trapped ions. Nature, 438:643–646, December
2005.
100
Literaturverzeichnis
[28] S. Hallgren. Polynomial-time quantum algorithms for pell’s equation and the principal
ideal problem. Annual ACM Symposium on Theory of Computing, 34:653–658, 2002.
[29] S. Hamdy and M. Maurer. Feige-Fiat-Shamir identification based on real quadratic
fields. Technical Report TI-23/99, TU Darmstadt, Fachbereich Informatik, Fachbereich Theoretische Informatik, 1999.
[30] M. Hirvensalo. Quantum Computing. Springer Verlag Berlin, 2 edition, 2004.
[31] M. Homeister. Lower bounds for the sum of graph-driven read-once parity branching
programs. Technical Report 68, Electronic Colloquium on Computational Complexity,
2003.
[32] M. Homeister. Quantum Computing verstehen. Vieweg Verlag Wiesbaden, September
2005.
[33] M. Homeister and S. Waack. Quantum ordered binary decision diagrams with repeated
tests. ArXiv Quantum Physics e-prints, July 2005.
[34] P. Hoyer. Efficient quantum transforms. arXiv:quant-ph, 1997.
[35] R. Jozsa. Entanglement and quantum computation. In S. Hugett, L. Mason, K. P. Tod,
S. T. Tsou, and N. M. J. Woodhouse, editors, Geometric Issues in the Foundations of
Science. Oxford University Press, 1997.
[36] R. Jozsa. Quantum algorithms and the fourier transform. Proceedings of the Royal
Society A: Mathematical, Physical and Engineering Sciences, 454(1969):323 – 337,
1998.
[37] R. Jozsa. Quantum factoring, discrete logarithms, and the hidden subgroupproblem.
Computing in Science & Engineering, 3(2):34–43, Apr 2001.
[38] R. Jozsa. Quantum computation in algebraic number theory: Hallgren’s efficient
quantum algorithm for solving Pell’s equation. Annals of Physics, 306(2):241–279,
August 2003.
[39] V. Junghanns. Zero-Knowledge Protokolle. Vortrag, Universiät Ulm, December 1999.
[40] A. Y. Kitaev. Quantum measurements and the abelian stabilizer problem. arXiv:quantph 9511026, Nov 1995.
[41] S. J. Lomonaco Jr and L. H. Kauffman. Quantum hidden subgroup algorithms: An
algorithmic toolkit, 2006.
[42] D. C. Marinescu and G. M. Marinescu. Approaching Quantum Computing. Pearson
Prentice Hall, 2005.
[43] C. Meinel and T. Theobald. Algorithms and Data Structures in VLSI Design. SpringerVerlag New York, Inc., Secaucus, NJ, USA, 1998.
101
Literaturverzeichnis
[44] T. Minkwitz. Algorithmensynthese für lineare Systeme mit Symmetrie. PhD thesis,
Universität Karlsruhe, 1993.
[45] M. Nakanishi, K. Hamaguchi, and T. Kashiwabara. Ordered quantum branching
programs are more powerful than ordered probabilistic branching programs under
a bounded-width restriction. In COCOON ’00: Proceedings of the 6th Annual International Conference on Computing and Combinatorics, pages 467–476, London, UK,
2000. Springer-Verlag.
[46] W. Nolting. Quantenmechanik - Grundlagen. Number 5/1 in Grundkurs Theoretische
Physik. Vieweg Verlag Wiesbaden, 4 edition, 2000.
[47] W. Nolting. Quantenmechanik - Methoden und Anwendungen. Number 5/2 in Grundkurs Theoretische Physik. Vieweg Verlag Wiesbaden, 3 edition, 2000.
[48] M. Püschel. Konstruktive Darstellungstheorie und Algorithmengenerierung. PhD thesis, Universität Karlsruhe (Technische Hochschule), Augsburg, Jul 1998.
[49] M. Sauerhoff and D. Sieling. Quantum branching programs and space-bounded nonuniform quantum complexity. Theor. Comput. Sci., 334(1-3):177–225, 2005.
[50] E. Schrödinger. An Undulatory Theory of the Mechanics of Atoms and Molecules.
Physical Review, 28:1049–1070, Dec. 1926.
[51] P. W. Shor. Polynomial-time algorithms for prime factorization and discrete logarithms
on a quantum computer. SIAM Journal on Computing, 26(5):1484 – 1509, 1997.
[52] D. Sieling. Algorithmen und untere Schranken für verallgemeinerte OBBDs. PhD
thesis, Universität Dortmund, 1994.
[53] D. Sieling and I. Wegener. NC-algorithms for operations on binary decision diagrams.
Parallel Processing Letters, 3:3–12, 1993.
[54] D. Sieling and I. Wegener. Reduction of OBDDs in linear time. Inf. Process. Lett.,
48(3):139–144, 1993.
[55] D. R. Simon. On the power of quantum computation. SIAM J. Comput., 26(5):1474–
1483, 1997.
[56] I. Wegener. The Complexity of Boolean Functions. Wiley-Teubner, 1987.
102
Danksagung
An dieser Stelle möchte ich den Leuten danken, die, ob bewusst oder nicht, beim Entstehen
dieser Arbeit geholfen haben.
Herrn Prof. Stephan Waack danke ich für die Offenheit für ungewöhnliche Themen,
die nötige Motivationsrede, als ich aufgeben wollte, und seinen unerschütterliches
Vertrauen in mein Können.
Matthias Homeister habe ich für eigentlich alles zu danken. Das ist unter vielem
anderen: trotz der Rolle des Vorgesetzen ein guter Freund geworden zu sein, mich
mit dem Thema Quantum Computing bekannt gemacht zu haben, an seinem Buch
teilhaben zu lassen und nicht zuletzt, bis in die Rechtschreibkorrektur diese Arbeit
betreut zu haben.
Carsten Damm danke ich für spaßige Informatikpraktika, eine interessante Vorlesung
über Kryptographie und das Einspringen, als Matthias vom Prüfungsausschuss nicht
als Korreferent akzeptiert wurde.
Den Luxus, eine zweite Diplomarbeit zu verfassen, verdanke ich Prof. Theo Geisel,
dem es egal ist, was ich neben meiner halben Stelle als Doktorand mit meiner Zeit
anstelle.
Der ganzen Besatzung der Gruppe für Nichtlineare Dynamik des Max Planck Instituts
für Dynamik und Selbstorganisation, speziell meinen Büromitbewohnern Dominik
Heide, Vincent David und Sven Jahnke, danke ich für die beste Arbeitsatmosphäre
der Welt.
Astrid und Heiner danke ich vor allem fürs Dasein, nicht nur aus dem offensichtlichen
Grund, dass ich ohne sie gar nicht existierte.
Ganz besonderer Dank geht an die Bodenstation, Ilka und Tom. Erstere hat sich
teilweise mehr Stress gemacht als ich, wann ich diese Arbeit schreiben soll, zweiterer
ist so friedlich, dass er mich nächtelang diese Arbeit verfassen ließ.
⋆
⋆
⋆
⋆
⋆
⋆
⋆
Vielen Dank an euch alle!
103
Herunterladen