Quantencomputing: Eine Einführung für Programmierer

Quantencomputer Einleitung

Praxis & Tipps | Praxis

Bild: Albert Hulm

Jeder kann lernen, Quantencomputer zu programmieren. Und die Maschinen rücken der praktischen Nutzbarkeit näher. Zeit, sich mit den Grundlagen zu beschäftigen.

Google demonstrierte im vergangenen Jahr eindrucksvoll einen ersten Fall von „quantum supremacy“, zu Deutsch Quantenüberlegenheit: Forscher des Konzerns ließen einen Quantencomputer ein Problem lösen, das ein klassischer Rechner nur mit exorbitant viel Zeit oder Speicherplatz hätte lösen können. Diese Überlegenheit ist der Grund für die Aufregung um Quantum Computing.

Quantencomputer sind aber nicht in jeder Hinsicht besser als klassische Rechner. Einerseits gibt es Probleme, die weder herkömmliche Computer noch Quantenrechner praktisch lösen können. Andererseits können auch klassische Computer viele Dinge schon so gut, dass diese nicht von der Portierung auf Quantencomputer profitieren würden – niemand wartet etwa auf eine Quanten-Tabellenkalkulation.

Quantencomputer sind daher eher als Coprozessoren zu sehen und werden klassische Computer nicht ersetzen, sondern ergänzen. Trotzdem gibt es viele potenzielle Anwendungsfelder und die Hoffnungen sind groß: Profitieren könnten zeitkritische Optimierungsprobleme, wie sie zum Beispiel Navigations- und Verkehrsleitsysteme lösen müssen. Auch Probleme aus der künstlichen Intelligenz sind häufig Optimierungsprobleme.

Materialforschung und Medizin könnten ebenfalls profitieren: Die Simulation von Molekülen und Proteinen fällt klassischen Computern sehr schwer, unter anderem weil hier quantenmechanische Effekte eine Rolle spielen. Quantencomputer können ausnutzen, dass sie genau solche Effekte zur Berechnung einsetzen – was die Grundlage ihrer Vorteile ist. Sie eignen sich dadurch ungleich besser zur Simulation solcher Systeme.

nachgehakt: Wie tickt ein Quantencomputer?

Zwei Arten von Quantencomputern sind momentan auf dem Vormarsch: Quantum-Annealing-Maschinen, die auf Optimierungsprobleme spezialisiert sind, und Quantengattercomputer, die beliebige Berechnungen ausführen können – man nennt sie daher universell. In beiden Fällen unterscheidet sich die Programmierung grundlegend von der Programmierung klassischer Computer:

Damit quantenphysikalische Effekte in die Berechnungen einfließen können, müssen sich Quantencomputer schon in ihren fundamentalen Bauteilen von klassischen Rechnern unterscheiden. Herkömmliche Computer nutzen Bits, die 0 oder 1 repräsentieren und sonst nichts. Quantencomputer verwenden sogenannte Quantenbits, kurz Qubits, die völlig andere Eigenschaften haben.

Entgegen dem Klischee von der unbegreiflichen Quantenphysik sind diese Eigenschaften aber nicht allzu schwierig zu verstehen. Sie sind lediglich anders als die Physik, die man in der alltäglichen Welt wahrnimmt, und daher wenig intuitiv. Es ist deswegen sinnvoll, sich Quantencomputern so zu nähern, als würde man das erste Mal etwas über Computer lernen. Annahmen und Erfahrungen in der Programmierung klassischer Computer sollte man beiseite legen.

Quantenprozessor mit 54 Qubits: Googles Chip ­„Sycamore“, der zum ersten Mal Quantenüber­legenheit demons­trierte. (Bild: Erik Lucero, Google)

Die kleinste Informationseinheit im Quantum Computing ist das Qubit. Im Unterschied zu klassischen Bits ist der Zustand eines Qubits nicht entweder 0 oder 1, sondern eine Mischung daraus. Die Mischung wird als „Überlagerung“ oder „Superposition“ bezeichnet. Ein Qubit kann also umgangssprachlich ausgedrückt „fast ganz 0 und nur ein bisschen 1“, „hälftig 0 und 1“ oder auch „exakt 0“ sein. „0“ und „1“, die diesen Zustandsraum eines Qubits aufspannen, nennt man Basiszustände. Sie werden üblicherweise als |0> und |1> geschrieben, was man als „Ket 0“ und „Ket 1“ ausspricht.

Ein Qubit ist also immer mit einer gewissen Wahrscheinlichkeit |0> und mit einer gewissen Wahrscheinlichkeit |1>. Man nennt Qubits – und auch Quantencomputer – daher probabilistisch, was eine ihrer Stärken ist: Eine Operation auf einem Qubit in Superposition wird sowohl auf dem Zustand |0> als auch dem Zustand |1> ausgeführt. Letztlich kann eine Berechnung dadurch mit allen möglichen Inputs auf einmal erfolgen.

Es ist aber sowohl ein Segen als auch ein Fluch, dass Quantencomputer probabilistisch sind: Selbst wenn ein Quantenprogramm perfekt geschrieben wurde, ist das Ergebnis mit einer gewissen Wahrscheinlichkeit falsch. Auf Quantencomputern wird daher jede Berechnung nicht nur einmal, sondern hunderte oder tausende Male ausgeführt und das korrekte Ergebnis daraus statistisch ermittelt.

Physikalisch gibt es diverse Möglichkeiten, Qubits zu realisieren, je nachdem, welche quantenphysikalische Größe als Informationsträger genutzt wird. Verwendet werden unter anderem elektrische Ströme oder Ladungen, quantenmechanische Spins und sogar „Anyonen“ – exotische Quasiteilchen, von denen man sich stabilere Qubits erhofft.

Neben zahlreichen Unternehmen treiben auch staatliche und universitäre Forschungseinrichtungen verschiedene Ansätze voran, in Deutschland zum Beispiel in Braunschweig, Hannover, München, Mainz und Siegen. Die allen Ansätzen gemeinsame technologische Herausforderung ist, das quantenphysikalische System von weiteren physikalischen Eigenschaften und störenden Einflüssen zu isolieren.

Eine Realisierung von Qubits sind beispielsweise Ringe aus Supraleitern, etwa Niob oder Aluminium. Sobald das Qubit seine supraleitenden Eigenschaften angenommen hat, kann Strom in beide Richtungen zugleich und ohne Widerstand fließen. Das erzeugt zwei Magnetfelder, ein „nach oben“ und ein „nach unten“ gerichtetes.

Um Supraleitung zu ermöglichen und thermisches Rauschen zu minimieren, muss man die Qubits auf etwa 10 bis 15 Millikelvin kühlen, also unter −273 °C, nahe dem absoluten Nullpunkt. Außerdem müssen sich die Qubits im Vakuum befinden, weil schon die Kollision eines einzelnes Atoms mit einem Qubit die ­Berechnung verfälschen würde. Hinzu kommt, dass das Erdmagnetfeld stark genug ist, um solche Qubits zu beeinflussen, weshalb man sie von jeglichem Magnetfeld isolieren muss – alles zusammen eine große Herausforderung.

Ein zweiter, wesentlicher Unterschied zwischen Qubits und klassischen Bits ist, dass sich letztere beliebig oft auslesen lassen. Der Wert des Bits ändert sich dabei nicht. Ein Qubit hingegen existiert in besagtem Überlagerungszustand, bis es gemessen wird. Am Ende jeder Berechnung steht so eine Messung, bei der Qubits unausweichlich „dekohärent“ werden. Das bedeutet, dass ein Qubit seine Quanteneigenschaften verliert und in einen von zwei messbaren Zuständen (0 oder 1) kollabiert.

Alle möglichen Ergebnisse einer Berechnung werden dabei auf ein Resultat reduziert. Daher ist es unsinnig, Qubits mehrfach auszulesen. Einmal gemessen, ist die Quantennatur zerstört und nicht wiederherstellbar. Aus dem gleichen Grund versucht man, Dekohärenz vor der Messung unbedingt zu verhindern: Wenn ein Qubit schon während der Berechnung seine Quanteneigenschaften verliert, dann ist die Berechnung falsch und man muss von vorne anfangen.

Um mit Qubits rechnen zu können, muss man ihre mathematische Darstellung verstehen. Der Artikel Die Mathematik von Qubits erklärt gibt einen ersten Einblick in die Berechnung von Qubits; noch tiefer kann man mit dem Artikel Wie man mit Quantengattern programmiert einsteigen, an dessen Ende ein erstes Beispielprogramm steht. Lassen Sie sich von den Formeln nicht abschrecken. Qubits sind nicht viel schwieriger zu verstehen als die binäre Logik klassischer Bits, nur etwas weniger vertraut. (syt)


Dieser Artikel stammt aus c't 6/2020.

Kommentare