Quantencomputer erklärt

Programmierer müssen umlernen

04.06.2021
Von 
Jan Wender ist Senior Expert in der Atos-Presales-Organisation in den Bereichen High-Performance Computing und Quanten-Computing. Seit 2016 beschäftigt er sich mit Quanten-Computing.
Mit der Ära der Quantencomputer haben die klassischen Turing-Algorithmen ausgedient. Wir zeigen, was sich ändert.
Quantumcomputer erfordern ein neues Programmierkonzept.
Quantumcomputer erfordern ein neues Programmierkonzept.
Foto: Bartlomiej K. Wroblewski - shutterstock.com

Noch scheint das Thema Quanten-Computing nur graue Theorie zu sein, denn allzu oft ist von realitätsfernen Wissenschaftsprojekten die Rede. Also haben Unternehmen noch viel Zeit? Dies könnte ein gefährlicher Trugschluss sein, denn das Thema nimmt rasant Fahrt auf und ist alles andere als trivial. Ein Aspekt, der gerne unterschätzt wird, ist etwa die Programmierung der Algorithmen für Quantencomputer. Deshalb sollten sich Unternehmen schon jetzt mit dem Konzept vertraut machen.

Quanten-Computing ist mehr als Hardware

Die Rechenleistung von klassischen Computern ist in den letzten Jahrzehnten exponentiell angestiegen. Es hatte sogar den Anschein, als würde Moore´s Law immer weiter gelten. Mittlerweile gibt es aber Zweifel daran, dass diese "Gesetzmäßigkeit" Bestand hat. Unvergessen bleibt der Auftritt des Nvidia-CEO Jensen Huang auf der CES 2019, als er das Ende des Mooreschen Gesetzes konstatierte. Die Hardwareentwicklung wäre schlichtweg nicht mehr imstande, weiterhin solch enorme Entwicklungssprünge zu machen.

Gleichzeitig stehen wir am Beginn einer neuen Ära: Dem Zeitalter des Quanten-Computings. Mit dieser Technologie wird es möglich sein, die bestehende Landschaft der Künstlichen Intelligenz und Datenanalyse massiv zu beeinflussen. Durch die Leistung und Geschwindigkeit der Quantencomputer werden wir in der Lage sein, einige der größten und komplexesten Herausforderungen zu lösen, denen die Menschheit gegenübersteht.

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 Quanten-Computing geht es nicht nur um die Hardware. Vielmehr steht die Art und Weise, wie Quantencomputer genutzt werden können, im Mittelpunkt. Man muss sich bewusst machen, dass die Technologie einen neuen Programmieransatz benötigt - weshalb bestehende Ansätze zu überdenken sind.

Von Algorithmen zu Quantenanwendungen

Deutlich wird dies vor allem bei den Algorithmen - also sozusagen der Essenz von allen IT-Anwendungen. Theoretisch könnte man auf einem Quantencomputer klassische Algorithmen implementieren. Schließlich lassen sich auf einem Quantencomputer alle Berechnungen durchführen, die auf einem klassischen Computer möglich sind. Wie Quantencomputer per se funktionieren, haben wir hier erklärt.

Allerdings wären diese Berechnungen Aufgrund der Eigenschaften der quanten-physikalischen Systeme, mit denen Quantencomputer realisiert werden, äußerst ineffizient und die Vorteile des Quanten-Computings 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.

Mit dem Quantencomputer hat das klassische Konzept der Turing-Algorithmen (im Bild eine Turing-Maschine aus dem Bletchley Park) ausgedient.
Mit dem Quantencomputer hat das klassische Konzept der Turing-Algorithmen (im Bild eine Turing-Maschine aus dem Bletchley Park) ausgedient.
Foto: EQRoy - shutterstock.com

Ein Beispiel verdeutlicht dies: Ein öffentliches 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 Traveling-Salesman-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.

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 Quanten-Algorithmus benötigt dafür lediglich O(sqrt(N)) Schritte (sqrt = Quadratwurzel), was eine quadratische Beschleunigung darstellt.

Diese Aufgaben (und viele mehr) könnten mit Quantenalgorithmen besser gelöst werden. In der Tat experimentieren einige Unternehmen bereits mit diesen Ansätzen.

Quantenalgorithmen und die Power von Qubits

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.

Im Gegensatz zum klassischen Bit mit den definierten Zuständen 0 und 1 könne sich bei Qubit die Zustände überlagern.
Im Gegensatz zum klassischen Bit mit den definierten Zuständen 0 und 1 könne sich bei Qubit die Zustände überlagern.
Foto: Lex Collection - shutterstock.com

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 Quanten-Computing 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 bei einem klassischen Computer nacheinander auszurechnen.

Aufgrund der verfügbaren Technologien sind die Qubits dabei aufgrund von Störungseinflüssen probabilistisch, d.h. 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 auch nur mit einer bestimmten Fehlerwahrscheinlichkeit richtig ist). Diese Problematik der NISQ-Phase (Noisy Intermediate-Scale Quantum Computers) wird verschwinden, sobald FTQC-Systeme (Fault Tolerant Quantum Computers) entwickelt sind.

Ein Problem der Quantencomputer: Sie können Superposition und Entanglement verlieren, so dass es unmöglich wird, Zwischenergebnisse einer Berechnung zu erhalten.
Ein Problem der Quantencomputer: Sie können Superposition und Entanglement verlieren, so dass es unmöglich wird, Zwischenergebnisse einer Berechnung zu erhalten.
Foto: VectorMine - shutterstock.com

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 von heute Jahre an Rechenzeit benötigen würden. Um die Power der Qubits zu entfesseln, benötigt es spezielle Algorithmen, die mit Qubits Daten verarbeiten können. 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 (Schrödingers Gedankenexperiment mit der Katze in der Box sei in Erinnerung gerufen). Das macht es unmöglich, Zwischenergebnisse einer Berechnung zu bekommen, ohne die Berechnung selbst abzubrechen.

Auf Simulatoren programmieren lernen

Ein aktuelles Problem ist, dass der physischen Implementierung der Grundeinheiten des Quantencomputers, der Qubits, derzeit viel mehr Aufmerksamkeit eingeräumt wird als der eigentlichen Integration. Doch sobald Quantum Processing Units (QPUs) im Markt verfügbar sind, werden diejenigen Unternehmen einen entscheidenden Vorteil haben, die sich mit dem konkreten Einsatz beschäftigt haben. Um das zu erreichen, muss man sich zunächst eine einfache Frage stellen: Wie programmiere ich einen Quantencomputer? Entwickler brauchen ein sehr gutes Verständnis davon, wie diese funktionieren und wie sie mit ihnen umgehen müssen.

Das Problem der Überlagerung bei Quantencomputern verdeutlicht das Gedankenexperiment von Schrödingers Katze.
Das Problem der Überlagerung bei Quantencomputern verdeutlicht das Gedankenexperiment von Schrödingers Katze.
Foto: Nutkins.J - shutterstock.com

Berechnungsstrategien, die die Vorteile des Quantencomputers nutzen, sind zwar schneller als klassische Algorithmen, können aber 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.

Fit für die Quantenzukunft

Aus diesem Grund empfiehlt es sich, bestehende Simulatoren für Quanten-Computing zu nutzen, um Erfahrung in der Programmierung zu sammeln. Moderne Simulatoren bieten dazu eine universelle Umgebung, die die anbieterunabhängige Programmierung von eigenen Algorithmen auf allen bestehenden oder zukünftigen Qubit-Technologien ermöglicht. Ein weiterer entscheidender Vorteil eines solchen Simulators ist, dass er die exakte Ausführung eines Quantenprogramms berechnet. Damit simuliert er die Gesetze der Physik, die das Herzstück des Quantencomputers sind. Dies ist ein großer Unterschied zu existierenden Quantenprozessoren, die unter Quantenrauschen, Quantendekohärenz und Herstellungsfehlern leiden.

Die Simulation ermöglicht es Entwicklern, sich auf ihre Anwendungen und Algorithmen zu konzentrieren, ohne warten zu müssen, bis Quantenmaschinen verfügbar sind. Nur so können Unternehmen jetzt schon Wissen sammeln und Programme schreiben, die dann auf den Quantencomputern zum Einsatz kommen. Unternehmen sollten daher nicht auf die Hardware warten, denn wie jede neue Technologie wird auch das Quanten-Computing dem klassischen Technologiezyklus unterliegen: Ab einem gewissen Zeitpunkt wird es zu einem bestimmten Grad massentauglich. Wer vorher bereits Ressourcen investiert, profitiert zu diesem Zeitpunkt enorm und ist dank des Kompetenzvorsprungs dem Wettbewerb voraus. (hi)