Quantum Computation

Modellierung und Visualisierung des Verhaltens innovativer komplexer Systeme – Zusammenfassender Bericht uber¨ das FuE-Semester WS 02/03 –

Roland Rudiger¨ Fachbereich Informatik FH Braunschweig/Wolfenbuttel¨ 10. Mai 2003

Inhaltsverzeichnis

1 Ziel und Ubersicht¨ 1

2 Vortragst¨atigkeit, Artikel und Implementierungen 2

3 Einfuhrung¨ und Kommentare zur Literatur 2

4 Quantenphysik und Quantencomputer 3

5 Quantenalgorithmen 4

6 Quantenprogrammiersprachen 6

7 Interaktive Java-Applikation 11

8 Perspektiven und weitere Arbeit 12 1 Ziel und Ubersicht¨

Im Verlauf ungef¨ahr der letzten 15 Jahre hat sich an der Schnittstelle zwischen Informatik und Physik ein neuartiges Gebiet etabliert. Ausgangspunkt war die Entdeckung, dass gewisse physikalische Ph¨anomene, welche in der Regel in sehr kleinen Systemen auftreten, typischerweise in atomaren Systemen, eine potenzi- elle Ressource fur¨ praktische Anwendungen in der Informatik darstellen. Diese Anwendungen liegen u. a. in den Bereichen hocheffiziente Algorithmen und Kryp- tographie. In der Offentlichkeit¨ sind diese Forschungsaktivit¨aten bekannt geworden unter den Oberbegriffen quantum computation und quantum cryptography. In großen Firmen wie z.B. IBM oder AT&T gibt es seit langer Zeit Arbeitsgrup- pen mit Forschungsschwerpunkten in diesem Gebiet. In der Tat stammt einer der wesentlichen wissenschaftlichen Durchbruche¨ der letzten Jahre (Shor-Algorithmus) aus der Firma AT&T, der außerordentliches Aufsehen hervorgerufen hat, weil er die Sicherheit von Verschlusselungsverfahren¨ auf der Basis heutiger public-key co- des tangiert. Ebenso wie Charles Bennett von IBM, einem der Pioniere des quantum com- puting, ist auch Isaac Chuang in einem IBM-Forschungslabor t¨atig; seine Gruppe hat im Jahre 2001 die erste gr¨oßere Implementierung eines Quantenrechners (mit 7 qubits) auf NMR-Basis realisiert. Inzwischen ist die Entwicklung so weit fortge- schritten, dass sich speziell der Bereich Quantenkryptographie auch kommerziell zu etablieren beginnt (Firmen sind u.a. id Quantique und Magi Q). Eine Konsequenz dieser Entwicklung sollte sein, dass sich auch die FHs in Leh- re und Forschung mit diesem Thema besch¨aftigen. Erste Schritte gibt es bereits: im Physik-Curriculum der Virtuellen Fachhochschule (VFH) sind dazu Unterla- gen ausgearbeitet. Im Unterschied zu der Zielrichtung dieses VFH-Curriculums, dessen Hauptgewicht eher auf der Physik liegt, sollte sich die T¨atigkeit in diesem Forschungssemester mehr auf typische Informatik-Aspekte konzentrieren. Die Quantenphysik ist ein Gegenstand, der in der normalen Sprache der Phy- siker in FHs kaum zu vermitteln ist, da eine Einfuhrung¨ in die mathematischen Voraussetzungen zu aufw¨andig ist; der Ansatz muß insofern also ein anderer sein. Die Idee besteht darin, von vornherein in der Ausbildung auf Simulation, Visua- lisierung und weitere Darstellungsmittel der Informatik wie z.B. programmier- sprachliche Konstrukte zu setzen, was gleichzeitig auch den Vorteil hat, dass ein Großteil der Kenntnisse, die dabei erworben werden, weit uber¨ die speziellen und spezifischen Eigenschaften des jeweils simulierten Systems hinausgeht, also univer- sell ist. Ein gewisser Schwerpunkt des Forschungssemesters lag daher auch in der Besch¨aftigung mit der Thematik Quantenprogrammiersprachen; eine Ubersicht¨ ist enthalten im Abschnitt 6. Seit dem Herbst 2001 besteht ein Kontakt zur Arbeitsgruppe von Prof. Wer- ner im Institut fur¨ mathematische Physik (IMaPh) der TU Braunschweig, die in diesem Themenbereich seit langem etabliert und aktiv ist und ihrerseits uber¨ zahlreiche Kontakte zu anderen Gruppen mit diesem Arbeitsgebiet verfugt.¨ Im Rahmen des Forschungssemesters wurden u. a. an diesem Institut zwei Vortr¨age zum Thema Quantum Programming Languages (Abschnitte 2 und 6) gehalten.

1 2 Vortragst¨atigkeit, Artikel und Implementierungen

Zum Thema des FuE-Semesters wurden insgesamt vier Vortr¨age gehalten, drei im WS 02/03 und ein weiterer im SS 03. Im Einzelnen: . Basics of Quantum Computation Vortrag im Department of High Performance Computing – Center of Logi- stics and Expert Systems GmbH , Salzgitter, am 18. Dezember 2002

. Quantum Programming Languages—A Survey Zwei Vortr¨age am Institut fur¨ Mathematische Physik der TU Braunschweig, am 26. und 27. Februar 2003

. Simulation and Programming of Quantum Computers Vortrag im Department of High Performance Computing – Center of Logi- stics and Expert Systems GmbH , Salzgitter, am 25. April 2003

. Der Abschnitt 6 zu Quantenprogrammiersprachen (Seite 6) dieser Zusam- menfassung, der aus Sicht der Informatik ein besonders interessantes Thema behandelt und gleichzeitig die aktuellste Neuentwicklung darstellt, soll den Kern eines Artikels bilden.

. Im Abschnitt 7 (Seite 11) wird eine Java-Applikation beschrieben, die eine interaktive Darstellung von Kurven erlaubt und die auch fur¨ typische Frage- stellungen im Zusammenhang mit diesem Forschungssemester in zwei Vari- anten implementiert wurde. Die Programme bieten in didaktischer Hinsicht gleichzeitig Anschauungsmaterial fur¨ die Lehrveranstaltung Softwaretechnik als Beispiele fur¨ die GUI-Programmierung entsprechend dem MVC-Modell (Model-View-Controller).

3 Einfuhrung¨ und Kommentare zur Literatur

Die Literatur zur Thematik Simulation und Quantum Computation, selbst zu spe- ziellen Teilgebieten, ist heute recht umfangreich. Die folgenden Hinweise sind ge- ordnet nach den erforderlichen Fachkenntnissen, beginnend mit allgemeinverst¨and- lichen Artikeln bis hin zu Aufs¨atzen uber¨ aktuelle Forschungsaktivit¨aten, die in aller Regel ein detailliertes Insider“-Wissen voraussetzen. ” . Ein hervorragender Einstieg in das ganze Gebiet, nicht nur fur¨ Studieren- de, sind viele der Artikel, die in der Zeitschrift Spektrum der Wissenschaft erscheinen. Ohne den Zwang zur Besch¨aftigung mit Formalismen, kann man sich dort daruber¨ informieren, was eigentlich Quantenphysik ist ([2], [20], [14], [36], [37], [38], [39]), welche speziellen und ungew¨ohnlichen Eigenschaften Quan- tensysteme besitzen ([5], [6], [7], [8], [15], [18], [21], [22], [27], [31], [35], [40]

2 [44], [45]) und wie im Prinzip Quantensysteme als Computer oder fur¨ Zwecke der Kryptographie eingesetzt werden k¨onnten ([9], [11], [12], [19][29], [46]).

. Lohnend ist auf jeden Fall auch ein Blick in die Folien zum einem Vortrag (im Rahmen der Vortragsreihe der Regionalgruppe Braunschweig der Ge- sellschaft fur¨ Informatik) uber¨ das Thema Quanten-Computer – Grundideen und Perspektiven, den Prof. Werner am 13. M¨arz 2002 in der FH Braun- schweig/Wolfenbuttel¨ gehalten hat.

. Als halb-popul¨are“ Texte w¨aren zu erw¨ahnen: ein popul¨ares Buch von Ro- ” ger Penrose, welches u.a. Uberlegungen¨ zur Quantenphysik allgemein enth¨alt [28] sowie speziell zu Quantencomputern und zu Algorithmen der Artikel von Werner in [43].

. Als Bucher¨ sind in erster Linie zwei Monographien auf dem Niveau mathe- matischer bzw. theoretisch-physikalischer Lehrbucher¨ zu nennen ([13],[23]), sowie ein Sammelband, der einen schnellen Einstieg in das Gesamtgebiet erlaubt [1]; darin ist insbesondere ein Artikel von Werner zur Quantenin- formationstheorie enthalten, dem Forschungsgebiet der Braunschweiger Ar- beitsgruppe.

. Fachartikel sowie lecture notes sind [10], [16], [30], [42], die allerdings er- hebliche Vorkenntnisse voraussetzen. Hier ist auch die Einfuhrung¨ in die Quanteninformationstheorie von Werner zu nennen.

. Aktuelle Forschungsbeitr¨age aus verschiedenen Bereichen der Physik werden heutzutage generell auf einem Server abgelegt. Die M¨oglichkeiten, sich in ein Gebiet einzuarbeiten und auf einem aktuellen Stand zu halten, sind daher in der Physik zur Zeit hervorragend. Die Adresse (URL) des Servers fur¨ den Themenbereich des Forschungssemesters ist http://de.arXiv.org/archive /quant-ph.

4 Quantenphysik und Quantencomputer

Die Quantenphysik, deren eigentlicher Beginn auf das Jahr 1926 datiert wird, stand uber¨ lange Zeit in dem Ruf, dass sie eher der reinen Grundlagenforschung zuzurechnen ist und dass in erster Linie philosophisch interessierte Physiker sich damit besch¨aftigen. Dieser Aspekt hat sich zwar bis heute unver¨andert erhalten; gleichzeitig sind jedoch in den letzten Jahrzehnten eine große Zahl von Anwendun- gen entstanden. Tegmark und Wheeler weisen in [39] darauf hin, dass inzwischen ein Drittel des Bruttoinlandsprodukts der USA auf Erfindungen beruht, die erst durch die Quantenphysik erm¨oglicht wurden (z.B. Halbleiter, Laser, Kernspinto- mographie). Insofern muß man heute die Quantenphysik ungeachtet der Interpre- tationsprobleme, die nach Meinung vieler Physiker nach wie vor bestehen, auch dem Bereich der Technik bzw. Technischen Physik zuordnen. Ein solcher Man- ” gel“ bezuglich¨ der Interpretation, wenn er denn wirklich einer ist, wird auch in

3 Zukunft Physiker und Informatiker kaum davon abhalten, uber¨ m¨ogliche neuar- tige Anwendungen nachzudenken. Zitiert wird in diesem Zusammenhang Kelvin mit der Außerung,¨ dass er ein physikalisches Ph¨anomen erst dann als befriedigend erkl¨art ansieht, wenn es dazu ein mechanisches Modell gibt. Im Rahmen eines solches Programms w¨are auch heute noch die gesamte Elektrodynamik und da- mit die Elektrotechnik als nicht erkl¨art“ anzusehen, und naturlich¨ denkt auch ” kein ernstzunehmender Physiker heute noch uber¨ eine solche Erkl¨arung nach. In Analogie dazu ist naturlich¨ denkbar, dass die Quantenphysik ebenso keine weitere Erkl¨arung zul¨aßt. Ein Begriff, der bereits auf Schr¨odinger zuruckgeht¨ und der fur¨ das quan- tum computing von besonderer Bedeutung ist, hat in diesem Zusammenhang eine h¨ochst ungew¨ohnliche Karriere“ gemacht: es ist der Begriff Verschr¨ankung. Er ” beschreibt die Tatsache, dass Quantensysteme st¨arker miteinander korreliert sein k¨onnen als klassische Systeme, ein mit den Mitteln der klassischen Physik nicht er- kl¨arbares Ph¨anomen. Die Karriere“ dieses Begriffs besteht darin, dass er zun¨achst ” außer von philosophisch interessierten Physikern kaum zur Kenntnis genommen wurde; er kam daher auch selbst in sehr bekannten, etablierten Lehrbuchern¨ und infolgedessen auch in Vorlesungen zur Quantenmechanik nicht vor. Inzwischen ist klar geworden, dass Verschr¨ankung eine wichtige Ressource ist, die – wenn sie denn experimentell unter Kontrolle gebracht und gehalten werden kann – zu ganz außergew¨ohnlichen technischen Anwendungen fuhren¨ kann. Aufgrund der mathematischen Beschreibung der Zust¨ande eines Quantensy- stems ist es klar, dass Quantensysteme auf klassischen Rechnern nicht effizient simuliert werden k¨onnen. Der Grund liegt darin, dass sich die Dimension des Zustandsraumes (eines Hilbert-Raumes) verdoppelt, wenn man das betrachtete 1 System um ein sog. qubit (etwa: Spin- 2 -Teilchen) vergr¨oßert (Explosion des Zu- standsraumes). Feynman war der erste, der den positiven Aspekt dieser Tatsache gesehen und formuliert hat: das Verhalten von Quantensystemen kann man effi- zient durch andere Quantensysteme simulieren oder allgemeiner: wenn man mit Quantensystemen rechnen kann, so ließe sich dadurch im Prinzip eine exponen- tielle Beschleunigung gegenuber¨ klassischen Rechnern erreichen: Quantensysteme besitzen so etwas wie eine inh¨arente Parallelit¨at. Allerdings braucht man Algorith- men, die diese F¨ahigkeit von Quantensystemen auch ausnutzen k¨onnen; bei weitem nicht jeder Algorithmus w¨are automatisch schneller auf einem Quantenrechner als auf einem klassischen Rechner.

5 Quantenalgorithmen

Die Entdeckung von Peter Shor [33] im Jahre 1994, dass Quantensysteme dazu ausgenutzt werden k¨onnen, große Zahlen exponentiell schneller zu faktorisieren als dies mit konventionellen Rechnern m¨oglich ist, hat zu einem Boom an Forschungs- arbeiten im Bereich des quantum computing gefuhrt.¨ Inzwischen ist deutlich ge- worden, dass das Auffinden von Algorithmen, die auf Quantenrechnern potenziell schneller laufen als auf klassischen Rechnern, nicht einfach ist. Neben dem Algo-

4 rithmus von Shor werden in der Lehrbuchliteratur [23, 13]) im wesentlichen zwei weitere Algorithmen genannt, n¨amlich der Algorithmus von Deutsch und Jozsa sowie der Algorithmus von Grover zur schnellen Suche in einer ungeordneten li- nearen Struktur. Als ein Beispiel ist im folgenden der bekannte Algorithmus von Shor [33] in einer Pseudocode-Notation abgedruckt: INPUT a composite number N OUTPUT a non-trivial factor F of N (* (F = 1) (F = N) *) 6 ∧ 6 BEGIN IF N is even THEN OUTPUT 2 EXIT END IF N = qk THEN OUTPUT ←q EXIT END (* q = prime *) REPEAT ← REPEAT randomly choose a, 2 a N 1, which has not yet been chosen ≤ ≤ − find period p of x ax (mod N) (* “the quantum part” *) 7→ (* solution of ap = 1 (mod N) *) UNTIL p is even F = gcd(N, ap/2 + 1) UNTIL (F = 1) (F = N) OUTPUT 6 F ∧ 6 END. ←

Der wesentliche Fortschritt dieses Algorithmus besteht darin, dass ein entspre- chend großer Quantenrechner (der in der erforderlichen Gr¨oße zur Zeit noch hypo- thetisch ist) die Faktorisierung effizient ausfuhren¨ k¨onnte, w¨ahrend eine solche Fak- torisierung klassisch nicht effizient durchfuhrbar¨ ist. Die Komplexit¨at des besten klassischen Algorithmus zur Faktorisierung wird in der zitierten Lehrbuchliteratur 64 1/3 1/3 2/3 angegeben als O exp ( 9 ) N (ln N) ; zum Vergleich: die Komplexit¨at des Shor-Algorithmus ist O N 3 , wobei N die Anzahl der bits der zu faktorisierenden  Zahl ist. Abbildung 1 enth¨alt eine Darstellung der beiden Funktionen, die jeweils diese Komplexit¨atsklassen definieren. Dieser Algorithmus ist hier deshalb abgedruckt, weil so eine der wesentlichen Eigenschaften dieses und anderer Quantenalgorithmen deutlich wird: große Tei- le des Algorithmus sind klassisch und sollten daher nach M¨oglichkeit auch auf einem klassischen Rechner abgearbeitet werden, denn die technischen Probleme, ein Quantensystem in einem sog. koh¨arenten Zustand zu halten, sind erheblich. Ein solcher Aufwand macht daher sicherlich keinen Sinn, wenn eine Beschleunigung gegenuber¨ einem klassischen Rechner in dem betreffenden Teil des Algorithmus ohnehin nicht erreicht werden kann. Das legt eine Systemarchitektur nahe, wie sie zuerst genauer von Knill [17] formuliert worden ist (Abbildung 2). Ein Quantenrechner besteht aus einer Master- Slave-Architektur: Master ist ein klassischer Rechner, der die Flußkontrolle ausubt,¨ auf dem also das eigentliche Programm l¨auft. Dieser steuert den Quantenrechner

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

1010

(b) 105

10 100 200 300 400 500 N = number of bits

Abbildung 1: Komplexit¨at der Faktorisierung: klassisch (a) vs. Shor (b) uber¨ einen quantum device driver. Die physikalische Gesetzm¨aßigkeit, die hinter dieser Architektur steht, besagt, dass ein Programmschritt, der vom Zustand des Quantensystems abh¨angt, eine Messung am Quantensystem verlangt. Nur diese Operation ist daher blockierend fur¨ den klassischen Rechner. Am Rande sei erw¨ahnt, das hier interessanterweise eine gewisse historische Analogie zu den vor ca. 10 Jahren ¨außerst popul¨aren Transputern besteht. Auch die konnte man auffassen als eine Art Coprozessoren. Die weiter unten angeschnit- tene Frage, ob man zur Programmierung solcher Coprozessoren eine eigene Spra- che ben¨otigt (wie bei den Transputern das Occam) oder auf Bibliotheksfunktionen einer entsprechenden speziellen Bibliothek mittel einer Standardsprache zugreift, also z.B. C++, war bereits zu der Zeit ein umstrittenes Thema.

6 Quantenprogrammiersprachen

Die Beschreibung von Algorithmen bedarf einer Notation. In den zitierten Lehr- buchern¨ werden Algorithmen wie in der Informatik-Literatur ublich¨ als ein Ge- misch aus mathematischer Notation und verbaler Beschreibung notiert. Es ist daher naheliegend, hier einen Schritt weiter zu gehen und zu versuchen, eine Notation zu definieren, die eine echte Programmiersprache darstellt, mit der Algorithmen also in eine auf einem Rechner lauff¨ahige Form gebracht werden k¨onnen. Solche Sprachen werden als Quantenprogrammiersprachen (quantum pro- gramming languages) bezeichnet. Quantenrechner gibt es zwar noch nicht, wohl aber eine inzwischen recht große Anzahl von Simulatoren. Eine Zusammenstellung und vergleichende Untersuchung

6 Abbildung 2: QC: Programmiermodell wurde von J. Wallace [41] durchgefuhrt.¨ Quantenrechner k¨onnen nichts, was nicht klassische Rechner auch k¨onnen, sie k¨onnen es mit einem geeigneten Algorithmus aber schneller; oder genauer: es gibt Algorithmen fur¨ Quantenrechner, die einer anderen Komplexit¨atsklasse angeh¨oren als entsprechende klassische Algorithmen. Die Kombination aus einer Quantenprogrammiersprache und einem Simulator er- laubt es also im Prinzip, Programmentwicklung wie an einem Quantenrechner durchzufuhren¨ und solche Programme laufen zu lassen, zu testen“ im Informatik- ” Jargon, sofern die zu l¨osenden Probleme nicht zu groß sind. Die Gr¨oßenordnungen, um die es geht, findet man z.B. in dem Lehrbuch von Gruska [13, p. 123]. Sie sind im Falle des Shor-Algorithmus allerdings gigantisch groß, wie auch aus Abbildung 1 hervorgeht. Man kann sicherlich einwenden, dass die Arbeiten zu Quantenprogrammier- sprachen noch verfruht¨ sind angesichts der Tatsache, dass Quantenrechner mit einer großen Zahl von qubits, wie sie fur¨ eine brauchbare Implementierung des Shor-Algorithmus erforderlich sind, nach vorherrschender Meinung auf absehbare Zeit nicht, nach Meinung einiger Wissenschaftler vielleicht auch nie zur Verfugung¨ stehen werden. Eine Besch¨aftigung mit Quantenprogrammiersprachen scheint trotzdem aus ei- ner ganzen Reihe von Grunden¨ auch jetzt schon lohnend zu sein. Niklaus Wirth hat stets betont, dass Programmiersprachen eben nicht nur ein Mittel sind, Rechner dazu zu bringen, etwas zu tun; sie sind vielmehr auch ein Kommunikationsmit- tel zwischen Menschen. In diesem Sinne erlauben Quantenprogrammiersprachen uber¨ Quantensysteme in einer aus Sicht der Physik durchaus neuartigen Weise zu sprechen“. ” Informatik-Konzepte stammen aus physikalischer Sicht naturlich¨ aus einer klassischen“ Welt, d.h. also einer solchen, in der die spezifischen Ph¨anomene ” der Quantenphysik keine Rolle spielen. Man kann daher nicht erwarten, dass alle Konzepte beim Umgang mit Quantenrechnern, als Quantensystemen, tragf¨ahig bleiben. Details dazu wurden in den Vortr¨agen (Abschnitt 2) diskutiert. Bisher wurden folgende konkreten Vorschl¨age und Implementierungen ver¨offentlicht:

7 . q-Gol (Greg Baker) [3] ist anzusehen als ein erster und recht fruher¨ Versuch.

. Sehr weit ausgearbeitet ist QCL von B. Omer¨ (TU Wien) [24, 25, 26]. Hierbei handelt es sich um eine eigene C/Pascal-¨ahnliche prozedurale Sprache, die neben den klassischen Konstrukten einer traditionellen klassischen Sprache auch Deklarationen und Anweisungen enth¨alt, die sich spezifisch auf den Quantenrechner beziehen.

. Ein bis zu einem gewissen Grade vergleichbarer Ansatz wird mit Q language von Bettelli et al. [4] verfolgt. Im Unterschied zu QCL ist deren Sprache eine Sammlung von C++-Klassen. Die eigentliche Programmierung besteht daher in einer konventionellen objekt-orientierten Entwicklung von C++- Programmen auf der Basis dieser Bibliothek. Beide Ans¨atze kann man ansehen als Hochsprachen, die als eine Art Erwei- terung einen Assembler auf Quantenebene enthalten: man geht in jedem Fall z.B. direkt mit (Quanten-) Registern um.

. Von P. Selinger [32] stammt eine neue funktionale Sprache, die insbesondere uber¨ eine formal definierte Semantik verfugt.¨

. Die Sprache qGCL von Sanders und Zuliani ist anzusehen als eine Spezifi- kationssprache, ebenfalls mit einer formal definierten Semantik, die auf der probabilistischen Sprache pGCL beruht, die ihrerseits auf GCL (Guarded Command Language) von Dijkstra aufbaut.

Die folgenden Tabelle (aus einem der Seminarvortr¨age an der TU Braun- schweig, vgl. Abschnitt 2) gibt eine Ubersicht.¨

QCL Q language qGCL (Block-)QPL new language × × × standard lang. / library × imperative language × × × functional language × simulator available × × pragmatic approach × × theoretical approach × × formal semantics × × universal language × × × × QCL (Quant. Computation Language) B. Omer¨ Q language S. Bettelli, T. Calarco, L. Serafini qGCL (Quant. Guarded Command Lang.) J.W. Sanders, P. Zuliani QPL (Quant. Programming Language) P. Selinger

8 Der Ansatz, die Programmierung eines QC mit den Mitteln einer klassischer Sprache zu beschreiben, ist zuerst von Bettelli et al. [4] mit den Mitteln von C++ detailliert ausgearbeitet worden. Fur¨ konkrete Programmierarbeiten bedeutet das, dass ein Programmierer, der auf der Basis dieser Schnittstelle ein syntaktisch kor- rektes Programm schreibt, jedenfalls nichts programmieren kann, was gegen Ge- setze der Quantenphysik verst¨oßt. Jede Aktion auf der Schnittstelle bel¨aßt das System, gegebenenfalls also repr¨asentiert durch den angeschlossenen Simulator, in einem physikalisch realisierbaren Quantenzustand. Naturlich¨ muß die Wirkungsweise dieser black box wie jeder ADT in der In- formatik beschrieben werden. Es wird nicht m¨oglich sein, sinnvolle Programme zu schreiben, ohne eine Kenntnisse der zugrundeliegenden Mechanismen, also der Quantenphysik. Analog zu dem Umgang mit großen kommerziellen Bibliotheken kann man aber versuchen, uber¨ dieser elementaren Schnittstelle eine komplexere und fur¨ die Zwecke praktischer Programmierung komfortablere Schnittstelle auf- zubauen. Man wurde¨ auf diesem Wege Bausteine (building blocks) erhalten, die sich m¨oglicherweise klassisch beschreiben lassen und die eine konventionelle Pro- grammierung zulassen. Unbekannt fur¨ den Programmierer bliebe dann nur die Erkl¨arung, warum denn ein solcher Baustein schneller als jeder konventionell pro- grammierte Baustein gleicher Funktionalit¨at w¨are oder genauer, warum der in dem Baustein verborgene und implementierte Algorithmus einer anderen, prak- tisch besseren Komplexit¨atsklasse angeh¨ort als ein konventioneller Algorithmus. Der Versuch, eine solche klassische Erkl¨arung aufzustellen, w¨are gleichbedeutend mit dem Auffinden einer sog. lokalen realistischen Theorie, deren Existenz heute durch die Arbeiten von Bell und – von der experimentellen Seite – von Aspect et al. als widerlegt gilt. Eine allgemeinverst¨andliche Darstellung findet man z.B. in [43]. Ein Beispiel fur¨ einen solchen Baustein gibt es bereits, n¨amlich die diskrete Fouriertransformation, die den zentralen Teil des Algorithmus von Shor bildet. Weitere solche idealerweise allgemein verwendbaren Bausteine zu finden, bedeutet letztlich nicht mehr und nicht weniger, als weitere Quantenalgorihmen zu finden, die schneller als ihre klassischen Gegenstucke¨ sind. Die Expressibilit¨at einer Sprache ist am besten an einem Beispiel zu erken- nen, in welchem ein typisches Quantenph¨anomen codiert wird. Das folgende kurze QCL-Programm (aus einem der Vortr¨age, vgl. Abschnitt 2) beschreibt die sog. Quanten-Teleportation in ihrer einfachsten elementaren Form. Eine Erkl¨arung der dahinterstehenden Physik findet man in der Monographie von Nielsen und Chuang [23, p. 27]. Weitere Programmbeispiele zu QCL findet man auf den Folien zu diesen Vor- tr¨agen. teleportation: /* Alice: a[0] ------... a[1] ------...

9 Bob: b[0] ------...

Nielsen & Chuang, p. 27; teleportation a[0] -> b[0] */ const i = (0,1); int m0; int m1; qureg a[2]; // Alice’s 2-qubits register qureg b[1]; // Bob’s 1-qubit register real x; // random values, 0 <= x < 1.0 procedure prepare(real x, qureg p){ // prepare some example state complex u00 = cos(2*pi*x) + i*0; complex u01 = -sin(2*pi*x) + i*0; complex u10 = sin(2*pi*x) + i*0; complex u11 = cos(2*pi*x) + i*0; Matrix2x2(u00, u01, u10, u11, p); // unitary operation } operator entangle(qureg p, qureg q){ // entangle qubits p and q Mix(p); CNot(q, p); } x = random(); prepare(x, a[0]); entangle(a[1], b[0]);

!entangle(a[0], a[1]); measure a[0], m0; measure a[1], m1;

/* Alice to Bob: -----+ / / +-----> */ if m1 == 1 { Matrix2x2((0,0), (1,0), (1,0), (0,0), b[0]);// sigma_x }; if m0 == 1 { Matrix2x2((1,0), (0,0), (0,0), (-1,0), b[0]);// sigma_z };

10 7 Interaktive Java-Applikation

Im Zusammenhang mit physikalischen oder technischen Fragestellungen wie sie im Forschungssemester behandelt wurden, tritt h¨aufig das Problem auf, gegensei- tige Abh¨angigkeiten von Parametern zu studieren. Solche Abh¨angigkeiten werden naturlich¨ traditionell durch Kurvendiagramme dargestellt, die aber als (statische) Diagramme jedenfalls dann nicht besonders ubersichtlich¨ sind, wenn die darge- stellten Funktionen durch Parameter aus einer Funktionenschar auszuw¨ahlen sind. Ein Beispiel w¨aren Funktionen der Art y = f(x; a, b) mit x, y, a, b R. Denn dann ∈ braucht man eine Kurvendarstellung fur¨ jedes Parametertupel; außerdem wird in komplexeren F¨allen die Anderung¨ des Graphen bei Anderungen¨ von a und b nicht wirklich anschaulich“. ” Neuere Programmiersprachen wie Java mit seiner exzessiv großen Klassen- bibliothek, der Java-API (Application Programming Interface), erlauben es, mit zwar nicht ganz geringem aber ertr¨aglichem Aufwand ein System zu implementie- ren, welches z.B. eine solche Kurvendarstellung interaktiv erlaubt. Eine M¨oglich- keit besteht darin, zwei Fenster auf dem Bildschirm zu ¨offnen, von denen das eine die Kurvendarstellung von einer oder auch mehreren Kurven aufnimmt und das andere als eine Art Parameterraum dient, also etwa fur¨ die Parameter a und b aus dem obigen Beispiel. Man kann dann den Mauszeiger in diesem Parameterraum bewegen, wobei die aktuelle Position des Mauszeigers das aktuelle Parameterpaar (a, b) festlegt. Durch das Programm wird dann die Kurvendarstellung unmittel- bar angepaßt, so dass der Benutzer des Programms einen unmittelbaren und recht anschaulichen Eindruck entsprechender Abh¨angigkeiten erh¨alt. Ein solches System wurde als Beispiel einer Java-Anwendung erheblicher Gr¨oße in zwei Varianten implementiert. Die erste Variante enth¨alt die darzustellenden Funktionen als fest eincompilierte Funktionsausdrucke,¨ die andere verwendet die Technik der sog. reflections, durch die die darzustellenden Funktionen dynamisch, also zur Laufzeit des Programms, festgelegt werden k¨onnen. Das Fehlen eines Funktionstyps in Java bedeutet, dass die Funktionen jeweils durch eine Klasse zu repr¨asentieren sind. Das Systemdesign wurde konsequent nach dem design pattern entworfen, wel- ches unter dem Namen MVC-Modell (Model-View-Controller) bekannt ist. Danach sind verschiedene Systemkomponenten unter dem Aspekt so voneinander zu tren- nen, dass Teile ausgetauscht werden k¨onnen, ohne dass der Rest ge¨andert oder angepaßt werden mußte¨ (separation of concerns). Die verschiedenen Aspekte sind hier die konkreten Definitionen der Funktionen (das Model). Eine Implementierung uber¨ reflections ist flexibel genug, um Funktionen z.B. auch implizit zu definieren, etwa als numerische L¨osungen von Differentialgleichungen. Die Darstellung der Funktionen bildet den Teil View und die korrekte Reaktion auf Mausbewegungen sowie auf die Eingabe in den speziell dafur¨ vorgesehenen Eingabefeldern fur¨ die Intervalle bzw. der Startwerte wird vom Controller behandelt.

11 8 Perspektiven und weitere Arbeit

Die in dem Forschungssemester begonnene Arbeit soll fortgefuhrt¨ werden. Aus Sicht der Informatik bieten sich hier insbesondere zwei Aspekte an: obwohl es inzwischen eine große Zahl von Simulatoren gibt [41], ist der Aufwand, zumin- destens einen Simulatorkern zu entwerfen und zu implementieren, nicht so groß, dass sich der Aufwand nicht lohnen wurde.¨ Der Erfahrungsgewinn sowohl, was die Physik- als auch die Informatik-Aspekte betrifft, scheint den Aufwand zu recht- fertigen. Die Steuerung eines solchen Simulators erfordert eine Art Sprache“, die ” im einfachsten Fall durch eine Klassenbibliothek gegeben sein k¨onnte. Ob ein sol- cher Ansatz einfacher und direkter w¨are als eine von Grund auf neu konzipierte Sprache wie z.B. das in Abschnitt 6 diskutierte QCL von B. Omer,¨ w¨are zu un- tersuchen. Besonders interessant scheint dabei der im Zusammenhang mit ADTs (Abstrakten Datentypen) stets im Vordergrund stehende Aspekt zu sein, einen operationalen Systemzugang zu erm¨oglichen oder, mit anderen Worten, ein Sy- stem zu entwerfen, das es auch Nicht-Spezialisten erlaubt, mit Quantensystemen umzugehen, ohne eine Ausbildung in Quantenphysik absolviert zu haben. Ob das m¨oglich sein wird, gegebenenfalls wenigstens bis zu einem gewissen Grade, w¨are zu untersuchen. In der Literatur werden dazu verschiedenen Meinun- gen ge¨außert (Interview in [34]).

Ich m¨ochte an dieser Stelle Prof. Werner und seiner Arbeitsgruppe vom Institut fur¨ Mathematische Physik (IMaPh) der TU Braunschweig herzlich danken fur¨ die freundliche Aufnahme, fur¨ die M¨oglichkeit, mich an den Arbeitsgespr¨achen auch aktiv durch Vortr¨age zu beteiligen und fur¨ eine ganze Reihe von fachlichen Diskussionen, ohne die eine Einarbeitung in das fur¨ mich neue Gebiet in der zur Verfugung¨ stehenden Zeit nicht m¨oglich gewesen w¨are.

12 Literatur

[1] G. Alber, T. Beth, M. Horodecki, P. Horodecki, R. Horodecki, M. Rotteler, H. Weinfurter, R. Werner und A. Zeilinger. Quantum Information: An In- troduction to Basic Theoretical Concepts and Experiments. Springer-Verlag, 2001.

[2] David Z. Albert. David Bohms Quantentheorie. Spektrum der Wissenschaft, 7:70–77, 1994.

[3] G. Baker. “Qgol”. A system for simulating quantum computations: Theory, Implementations and Insights. PhD thesis, Macquarie University, 1996. www.

[4] S. Bettelli, T. Calarco und L. Serafini. Toward an architecture for quantum programming, 2001. arXiv: abs.

[5] Immanuel Bloch, Theodor W. H¨ansch und Tilman Esslinger. Wenn Materie Quantenwellen schl¨agt. Uberlagerung¨ zweier Atomstrahlen aus einem Bose- Einstein-Kondensat. Spektrum der Wissenschaft, 7:23, 2000.

[6] Raymond Y. Chiao, Paul G. Kwiat und Aephraim M. Steinberg. Schneller als Licht? Spektrum der Wissenschaft, 10:40–49, 1993.

[7] Graham P. Collins. Bose-Einstein-Kondensat. Experimente mit dem exoti- schen Quantengas. Spektrum der Wissenschaft, 2:50, 2001.

[8] Eric A. Cornell und Carl E. Wieman. Die Bose-Einstein-Kondensation. Spek- trum der Wissenschaft, 5:44, 1998.

[9] David P. Di Vincenzo. The physical implementation of quantum computation. Fortschritte der Physik, 48:771–783, 2000. www.

[10] A. Ekert, P. Hayden und H. Inamori. Basic concepts in quantum computation. Technical report, November 2000. arXiv: abs.

[11] Neil Gershenfeld und Isaac L. Chuang. Flussige¨ Quantencomputer. Spektrum der Wissenschaft, 8:54–59, 1998.

[12] Michael Gross. Quantencomputer lernen rechnen. Spektrum der Wissenschaft, page 16, 1998.

[13] Jozef Gruska. Quantum Computing. McGraw-Hill, 1999.

[14] John Horgan. Quanten-Philosophie. Spektrum der Wissenschaft, 9:82–91, 1992.

[15] Yoseph Imry und Richard A. Webb. Quanteninterferenz und der Aharonov- Bohm-Effekt. Spektrum der Wissenschaft, 6:88–95, 1989.

[16] M. Keyl. Fundamentals of quantum information theory. Phys. Rep., 369(5):431–548, 2002. www.

13 [17] Emanuel H. Knill. Conventions for quantum pseudocode, 1996. www.

[18] Paul Kwiat, Harald Weinfurter und . Wechselwirkungsfreie Quantenmessung. Spektrum der Wissenschaft, 1:42–49, 1997.

[19] Seth Loyd. Quanten-Computer. Spektrum der Wissenschaft, 12:62–68, 1995.

[20] Oliver Morsch. Ein Baukasten fur¨ Quantensysteme. Spektrum der Wissen- schaft, 7:24, 1998.

[21] Oliver Morsch. Gestoppter Lichtpuls. Spektrum der Wissenschaft, 7:22, 2001.

[22] Oliver Morsch. Zeno und der Quanten-Schnellkochtopf. Spektrum der Wis- senschaft, 2:14, 2002.

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

[24] B. Omer.¨ A procedural formalism for quantum computing. Master’s thesis (theoretical physics), TU Wien, 1998. www.

[25] B. Omer.¨ Quantum programming in QCL. Master’s thesis (computer science), TU Wien, 2000. www.

[26] B. Omer.¨ Classical concepts in quantum programming, 2002. arXiv: abs.

[27] Alexander Pawlak. U-Haft fur¨ ein Photon. Zerst¨orungsfreier Nachweis von Lichtquanten. Spektrum der Wissenschaft, 1:21, 2000.

[28] . Shadows of the mind. Oxford University Press, 1994.

[29] Christoph P¨oppe. Eine neue Art, Quantenbits stabil zu speichern. Spektrum der Wissenschaft, 12:69, 1995.

[30] John Preskill. Physics 229: Advanced mathematical methods of physics— quantum computation and information. Technical report, California Institute of Technology, 1998. www.

[31] Uwe Reichert. Neuartige Quantenflussigkeit.¨ Spektrum der Wissenschaft, 12:20, 1998.

[32] Peter Selinger. Towards a quantum programming language. www.

[33] P.W. Shor. In S. Goldwasser, Hrsg., Proceedings of the 35th Annual Sym- posium on the Foundations of Computer Science, page 124. IEEE Computer Society Press, Los Alamitos, CA, 1994.

[34] Eric Smalley. Programming goes quantum. www.

[35] Spekrum. Bizarre Elektronenkristalle. Spektrum der Wissenschaft, 6:25, 2001.

14 [36] Michael Springer. Schr¨odingers K¨atzchen werden erwachsen. Milliarden Elek- tronen kreisen zugleich links und rechts herum. Spektrum der Wissenschaft, 11:12, 2000.

[37] Michael Springer. Ein makroskopisches Objekt aus der Quantenwelt. Spek- trum der Wissenschaft, 12:12, 2001.

[38] Michael Springer. Verschr¨ankung total. Finale Widerlegung von Einsteins Kritik an der Quantenmechanik. Spektrum der Wissenschaft, 6:21, 2001.

[39] Max Tegmark und . 100 Jahre Quantentheorie. Spek- trum der Wissenschaft, 4:68, 2001.

[40] Lene Vestergaard Hau. Gefrorenes Licht. Spektrum der Wissenschaft, 9:38, 2001.

[41] J. Wallace. Quantum computer simulators – a review (version 2.1), 1999. www.

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

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

[44] Georg Wolschin. Bose-Einstein tunnelt a la Josephson. Spektrum der Wis- senschaft, 5:24, 1999.

[45] Georg Wolschin. Wie ein Quantensee erstarrt. Spektrum der Wissenschaft, 5:12, 2002.

[46] . Wir befinden uns noch in der Pionierphase (Interview). Spektrum der Wissenschaft, 1:86, 2002.

15