Wie programmiert man einen Quantenrechner?

Autor Dr. Anna-Lena Gutberlet |

Ein Quantencomputer kann analog zu einer Turingmaschine programmiert werden. Es werden jedoch spezielle Algorithmen benötigt, damit die besonderen Eigenschaften, wie Superposition und Verschränkung, nicht ungenutzt bleiben.

Anbieter zum Thema

Wie programmiert man einen Quantenrechner?
Wie programmiert man einen Quantenrechner?
(Bild: CC0 / CC0 )

Da Quantencomputer analog zu einer Turingmaschine – ein wichtiges Rechnermodell der theoretischen Informatik – gebaut werden können, eröffnen sich die gleichen Möglichkeiten (und Probleme) zur Programmierung wie bei normalen Computern: Zur Lösung eines Problems werden diverse Rechenoperationen durchgeführt. Das heißt, es werden Quantengatter angewendet, um Qubits zu verschränken, ihren Zustand zu manipulieren oder sie auszulesen. Dazu muss ein Programm geschrieben werden, nach welcher Logik die Gatter angewendet werden.

Quantenalgorithmen

Um einen Quantencomputer zu programmieren, könnte man klassische Algorithmen verwenden. Das würde jedoch keine Vorteile bringen, da die besonderen Eigenschaften des Quantencomputers – vor allem Superposition und Verschränkung – ungenutzt blieben. Spezielle Quantenalgorithmen, wie zum Beispiel der Faktorisierungsalgorithmus von Shor (aus dem Jahr 1994), ermöglichen es komplexe Probleme zu lösen, für welche klassische Methoden zu viel Zeit bräuchten. Eines dieser Probleme ist die Primfaktorzerlegung: Dazu berechnet der Algorithmus alle möglichen Werte in einem Register in Superposition. Mithilfe einer Diskreten-Fourier-Transformation wird anschließend das richtige Ergebnis herausgefiltert.

Es gibt klassische Verfahren zur Berechnung der Primfaktorzerlegung, aber selbst der beste Algorithmus kann diese nicht effizient berechnen. Der Algorithmus von Shor könnte somit dazu benutzt werden, viele heutig gängige Kryptosysteme, beispielsweise RSA, zu knacken.

Ein weiteres Beispiel ist der Suchalgorithmus von Grover. Will man zum Beispiel in einem Telefonbuch mit N Einträgen eine bestimmte Nummer finden, muss man einen Eintrag nach dem anderen durchsehen, bis man den richtigen findet. Im Allgemeinen braucht man, um einen bestimmten Eintrag in einer unsortierten Liste zu finden N/2 Versuche – bei einem Telefonbuch mit 10.00.000 Einträgen also 500.000.

Mit dem Quantenalgorithmus benötigt man im Schnitt nur √N Schritte. Dies wird möglich durch die Grover-Iteration im Quantenregister. Sie erhöht die Wahrscheinlichkeit für das richtige Ergebnis und verringert die Wahrscheinlichkeit für das falsche Ergebnis. Damit Algorithmen von Shor und Grover für Alltagswendungen relevant wären, bräuchte man jedoch Quantencomupter mit Tausenden von Qubits. Nach und nach wurden mehr Algorithmen für Quantencomputer gefunden und das Interesse an der Entwicklung formaler Programmiersprachen, die Rechenschritte besser abstrahieren können, stieg stetig an. Die Konzepte sind in einer Datenbank von Programmiersprachen für Quantencomputer angelegt.

Universell verfügbare Quantencomputer

Im März 2017 kündigte IBM bereits die industrieweit erste Initiative zur Bereitstellung eines universell verfügbaren Quantencomputers für kommerzielle und wissenschaftliche Anwendungen mit dem Namen IBM Q an. Die Systeme und Services sind über einen Online-Zugang der IBM Cloud-Plattform verfügbar. Der Zugriff erfolgt über ein von IBM entwickeltes API auf Basis von Python. Zudem gibt es eine einfache grafische Benutzeroberfläche, über die Interessierte mit den Quantencomputern experimentieren können.

Das D-Wave 2000Q-System bietet eine Standard-Internet-API mit Client-Bibliotheken für C / C ++, Python und MATLAB. Diese Schnittstelle ermöglicht es Benutzern, auf das System entweder als Cloud-Ressource über ein Netzwerk zuzugreifen oder in ihre Hochleistungsrechner-Umgebungen und Rechenzentren zu integrieren. Der Zugriff ist auch über den gehosteten Cloud-Service von D-Wave verfügbar. Mit Hilfe von Entwicklungswerkzeugen und Clientbibliotheken von D-Wave können Entwickler Algorithmen und Anwendungen innerhalb ihrer bestehenden Umgebungen mit Hilfe von Standard-Tools erstellen.

Je nach Architektur der Quantencomputer werden unterschiedliche Programme benötigt, denn der Compiler muss die Befehle im Programm in physikalische Manipulation der Qubits umsetzen – und die Ausführung der Befehle unterscheidet sich für Photonen, Atome oder Supraleiter entschieden. Welche Quantenalgorithmen schließlich genutzt werden, hängt also davon ab, welche Architektur sich durchsetzten wird.

Literatur zu Quantentechnologie

http://www.spiegel.de/wissenschaft/technik/physik-nobelpreis-2012-fuer-haroche-und-wineland-a-860260.html
www.wikipedia.org
www.golem.de
Perspektiven der Quantentechnologie, Stellungnahme der Nationalen Akademie der Wissenschaften Leopoldina, Acatech – Deutsche Akademie der Technikwissenschaften und Union der deutschen Akademien der Wissenschaften, Juni 2015; https://www.leopoldina.org/uploads/tx_leopublication/2015_Quantentechnologien_LF_DE_korr.pdf
https://www.physik.uni-kl.de/fileadmin/widera/Hauptseminar_WS10_11/Ionenfallen.pdf
http://www.deutschlandfunk.de/glasfasernetz-wird-umgeruestet-das-quanten-internet-kommt.684.de.html?dram:article_id=387203
http://www.heute.de/bundesregierung-legt-forschungsprogramm-fuer-abhoersichere-quanten-internet-auf-47326454.html
www.quantencomputer.de

(ID:44909669)