Quantencomputer – Programmierer müssen umlernen
Wir stehen am Beginn einer neuen Ära: dem Zeitalter des Quantencomputings. Zugegeben, die Technologie befindet sich noch in der Entwicklungsphase. Besonders die Hardware ist derzeit nur bedingt verfügbar. Und es wird vermutlich noch etliche Jahre dauern, bis die Technologie in der Breite zur Verfügung steht. Doch bei Quantencomputing ändert sich nicht nur die Hardware. Ein Aspekt, der gern unterschätzt wird, ist die Programmierung der Algorithmen für Quantencomputer.
Bei Quantencomputern muss man sich von Anfang an bewusst machen, dass die Technologie einen neuen Programmieransatz benötigt. Deutlich wird dies vor allem bei den Algorithmen – also der Essenz aller IT-Anwendungen. Theoretisch könnte man auf einem Quantencomputer auch klassische Algorithmen implementieren. Schließlich lassen sich auf einem Quantencomputer alle Berechnungen durchführen, die auf einem klassischen Computer möglich sind.
Allerdings wären diese Berechnungen Aufgrund der Eigenschaften der quantenphysikalischen Systeme, mit denen Quantencomputer realisiert werden, äußerst ineffizient, und die Vorteile des Quantencomputings blieben ungenutzt. Daher geht es darum, spezielle Quantenalgorithmen zu entwickeln, die die Eigenschaften der Quantencomputer effektiv nutzen. Mit ihnen ist es möglich, komplexe mathematische Anforderungen, etwa multiple Optimierungsprobleme, in deutlich kürzerer Zeit zu lösen.
Ein Beispiel verdeutlicht dies: Ein Verkehrsunternehmen möchte seine Routen optimieren, indem es den Menschen einen maßgeschneiderten Transportservice anbietet und gleichzeitig den Einsatz seiner Fahrzeugflotte verbessert. Schon die Aufgabe, die kürzeste Route für ein Fahrzeug zu finden, um mehrere Orte nacheinander anzufahren (das TravelingSalesman-Problem), liegt bei mehr als einer Handvoll Orte jenseits aktueller Computerkapazitäten. Noch herausfordernder sind Ideen wie Busse, die nicht einer strikten Route folgen, sondern ihre Fahrtroute in Abhängigkeit vom aktuellen Verkehr anpassen.
Vorteile bei unstrukturierten Daten
Ein weiteres Beispiel, bei dem Quantencomputer den klassischen Computern überlegen sind, ist die Suche in sehr großen, unstrukturierten Datenmengen. Soll ein bestimmter Eintrag in einem solchen Datenhaufen gefunden werden, nutzen klassische Computer lineare Suchalgorithmen bei denen O(N) Rechenschritte nötig sind – N entspricht hier der Anzahl der Datenelemente, und O zeigt an, dass es um die Größenordnung geht. Das heißt, es sind nicht immer genau N Schritte notwendig, aber der Aufwand wächst proportional zu N. Der Grover-Algorithmus als ein Beispiel für einen Quantenalgorithmus benötigt dafür lediglich O(sqrt(N)) Schritte (sqrt = Quadratwurzel), was eine quadratische Beschleunigung darstellt.
Der Grund für die Überlegenheit von Quantenalgorithmen liegt in deren Fähigkeit, mit Operatoren auf überlagerten Zuständen zu arbeiten. Man spricht hier von Superposition und Verschränkung, welche grundlegende Eigenschaften der Quantenwelt darstellen. Um das zu verstehen, muss man sich vor Augen führen, wie klassische Computer arbeiten: Für Berechnungen etwa speichert ein solcher Rechner Informationen in Form von Bits beziehungsweise Bitfolgen ab und wertet diese aus.
Quantenalgorithmen und die Power von Qubits
Dafür kommen klassische Algorithmen zum Einsatz, die gemäß ihrer Programmierung ein bestimmtes Problem durch eine festgelegte Reihe von definierten Einzelschritten lösen sollen. Während klassische Algorithmen mit Bits arbeiten, die stets nur einen Zustand haben (0 oder 1), werden beim Quantencomputing Qubits verwendet, die sich in einer Überlagerung der Zustände befinden können (1 und 0 überlagert), was quasi parallele Berechnungen ermöglicht. Bei dieser Überlagerung, also wenn das Qubit sich nicht nur in einem Zustand befindet, sondern mit jeweils einer gewissen Wahrscheinlichkeit in beiden gleichzeitig, spricht man von Superposition. In der Konsequenz hat so beispielsweise ein Quantencomputer mit 40 Qubits die Möglichkeit,
2 hoch 40 verschiedene Zustände gleichzeitig zu betrachten, anstatt sie wie ein klassischer Computer nacheinander auszurechnen.
Aufgrund der verfügbaren Technologien sind die Qubits dabei aufgrund von Störungseinflüssen probabilistisch – das heißt, eine gefundene Lösung kann richtig sein, kann aber auch fehlerhaft sein. Daher müssen die Berechnungen mehrfach iteriert werden, um die richtige Lösung bestimmen zu können (die dann aber auch nur mit einer bestimmten Fehlerwahrscheinlichkeit richtig ist). Diese Problematik der NISQ-Phase (Noisy Intermediate-Scale Quantum Computers) sollen FTQC-Systeme (Fault Tolerant Quantum Computers) lösen.
Die Nutzung der Superposition vervielfacht die Kapazität, sodass Quantencomputer mit einer moderaten Anzahl von Qubits Probleme lösen könnten, für die selbst die leistungsstärksten Supercomputer Jahre an Rechenzeit benötigen würden. Um die Power der Qubits zu entfesseln, braucht es spezielle Algorithmen. Dabei wird eine weitere quantenphysikalische Eigenschaft ausgenutzt, das Entanglement (Verschränkung). Dabei können Qubits so miteinander verbunden werden, dass eine Veränderung eines Qubits auch den Status des mit diesem verschränkten Qubits ändert. Auf dieser Basis werden die Quantengatter implementiert, die dann Operationen mit den Qubits ermöglichen, analog zu den Logik-Gattern der klassischen Computer (AND, OR, NOT, ...).
Problematisch ist die Eigenschaft der Quantensysteme, diese Superpositionen und Verschränkungen zu verlieren, wenn sie beobachtet, also gemessen werden – hier sei an Schrödingers Gedankenexperiment mit der Katze in der Box erinnert. Das macht es unmöglich, Zwischenergebnisse einer Berechnung zu bekommen, ohne die Berechnung selbst abzubrechen.
Der physischen Implementierung der Qubits wird derzeit viel mehr Aufmerksamkeit eingeräumt als der eigentlichen Integration. Doch sobald Quantum Processing Units (QPUs) im Markt verfügbar sind, werden die Unternehmen einen Vorteil haben, die sich mit dem konkreten Einsatz beschäftigt haben. Doch Entwickler brauchen ein gutes Verständnis davon, wie die Systeme funktionieren und wie sie mit ihnen umgehen müssen. Das Problem: Berechnungsstrategien, die die Vorteile des Quantencomputers nutzen, können bisher nicht auf bestehender Quanten-Hardware angewendet werden, da die Hardware noch zu fehleranfällig ist. Die heute verfügbaren Qubits benötigen sehr spezielle Umgebungsbedingungen, und selbst wenn sie richtig eingestellt sind, sind sie häufig dafür anfällig, ihre Quanteneigenschaften zu verlieren. Dies würde eine Berechnung erfolglos machen.