Q16 Quanten und Qubits - Was man so liest
Von Bernhard Thomas und Ulrich Trottenberg
Quanten-Computing wird in den Medien, aber auch in Vorträgen und in der Fachliteratur mit einer Reihe von Aussagen charakterisiert, die als Sprachkonstrukte ziemlich exotisch klingen - nach einer anderen Welt, in der logisch Unmögliches möglich scheint. Wir wollen uns einige dieser Sprachfiguren ansehen und überlegen, was dahinter steckt.
Unsere bisherigen Blog-Abschnitte über Qubit-Algorithmen sollten ausreichen, hier ein klares Verständnis zu schaffen. Hier die Übersicht über die Aussagen.
"Quanten können 0 und 1 gleichzeitig sein"
"Mit n Qubits kann man 2**n Zahlen gleichzeitig darstellen"
"Für N Zahlen benötigt ein Quanten-Computer nur log(N) Qubits"
"Ein Quanten-Computer kann mehrere Berechnungen gleichzeitig durchführen (Quanten-Parallelismus)"
"Was auf herkömmlichen Rechner Jahre dauert, kann ein Quanten-Rechner in Sekunden erledigen (Exponentielle Beschleunigung)"
"Quanten-Rechner werden herkömmlichen Rechnern überlegen sein (Quanten-Supremacy)"
"Jedes zusätzlich Qubit verdoppelt die Leistungsfähigkeit des Systems"
"Quanten können 0 und 1 gleichzeitig sein"
Dieser Satz und Abwandlungen davon ziehen sich durch die Quanten-Computing-Literatur wie ein Mantra des QC. Auch wenn er gelegentlich nur als Metapher gesehen wird, suggeriert dieser Satz in der öffentlichen Diskussion eine mystische Eigenschaft der Quanten, nicht zuletzt illustriert durch das Bild von Schrödingers Katze, die "gleichzeitig tot und lebendig" ist.
Damit werden auch die informatischen Gegenstücke der Bits, die Qubits, charakterisiert. Im Gegensatz zu Bits, die nur "0 oder 1" sein können, können Qubits "0 und 1 gleichzeitig" sein.
Wie könnten wir das feststellen? Wir wissen, dass die Messung eines Qubits entweder 0 oder 1 ergeben kann, aber nicht beides. Wenn wir mehrfach messen, bekommen wir manchmal eine 0, manchmal eine 1 als Ergebnis, aber nie "gleichzeitig". Was kann also gemeint sein - wenn es überhaupt einen Sinn ergibt.
Es gibt Varianten dieser "Gleichzeitig"-Sprachfigur, die etwas tiefergehend klingen: "Quanten können verschiedene Zustände gleichzeitig einnehmen". Wir wissen, dass man Zustände von Systemen in Form von mathematisch eindeutigen Ausdrücken beschreiben kann - so auch Qubits und Qubit-Systeme. Ausgehend von einem Anfangszustand sahen wir, wie mittels Qubit-Operationen (oder Gates) ein Qubit-Zustand in einen nächsten überführt werden kann. Zu jedem Zeitpunkt ist der Zustand des Qubits daher eindeutig festgelegt. Wenn wir nicht unsere normale zweiwertige Logik (2 Wahrheitswerte: wahr, falsch - oder 0, 1) in Frage stellen, kann ein Qubit nicht zwei verschiedene Zustände gleichzeitig haben. Eine Zahl, ein mathematischer Ausdruck, der einben Zustand beschreibt, kann nicht gleichzeitig 0 und 1 sein: z = 0 = 1?
Manchmal findet man Texte, in denen das "Gleichzeitige" durch die "Superpostion" ergänzt wird: "Quanten können in einer Superosition von 0 und 1 gleichzeitig sein". Wir wissen, was eine Superpostion ist. Z.B. ist 1/√2 (|0>+|1>), die Hadamard-Operation auf den Basiszustand |0>, eine Superpostion (oder mathematisch: Linearkombination) der Qubit-Zustände |0> und |1>. Wir haben Qubit-Zustände meist in Form von x-y-Koordinaten eines Punktes auf dem Einheitskreis beschrieben - im Beispiel also (1/√2,1/√2). Somit können wir korrekt formulieren: Ein Qubitzustand hat zwei Koordinaten. Aber was heißt dann "gleichzeitig"? Wenn jemand in Ingolstadt ist, befindet er sich z.B. auf der Strecke von München nach Nürnberg - aber ist er (möglicherweise) in München und Nürnberg "gleichzeitig"?
Wenn auch die Redewendung "... kann 0 und 1 gleichzeitig sein" etwas Unsinniges suggeriert, können wir sie als solche akzeptieren, wenn man sie auf die Möglichkeit einer Superposition von zwei (Basis-)Zuständen eines Qubits zurückführt. Darin unterscheiden sich Qubits und Bits tatsächlich.
Und während ein Bit nur einen der beiden Zustände 0 oder 1 repräsentieren kann (siehe BIT-Box in Q3), kann ein Qubit einen Zustand aus einer unendlichen Menge von Superpositionszuständen annehmen. Wobei wir das "unendlich" im Sinne aller Punkte auf dem Einheitskreis verstehen, ohne zu fragen, ob wirklich unendlich viele Superpositionen realisierbar sind (technisch und quantenmechanisch).
Eine elegante und gleichzeitig korrekte, einfache Erklärung finden wir im Glossar der IBM (Übersetzung DeepL):
Ein Qubit (ausgesprochen "kju-bit" und kurz für Quantenbit) ist der physikalische Träger der Quanteninformation. Es ist die Quantenversion eines Bits, und sein Quantenzustand kann Werte von |0> , |1> oder die Linearkombination von beiden annehmen, was ein Phänomen ist, das als Superposition bekannt ist.
Mehr ist eigentlich nicht zu sagen.
"Mit n Qubits kann man 2**n Zahlen gleichzeitig darstellen"
Mit n Bits kann man zwar auch 2**n verschiedene Zahlen darstellen - gemeint sind Binärzahlen in Form von Bitketten - aber immer nur eine zu einem Zeitpunkt, z.B. im Speicher eines klassischen Computers.
Diese Aussage zusammen mit dem "Quantenparallelismus" (s.u.) soll die überragende Leistungsfähigkeit von Quanten-Computern deutlich machen. Man liest auch: "Mit jedem weiteren Qubit verdoppelt sich die Kapazität" und "Schon 300 Qubits können mehr Werte speichern, als das bekannte Universum Teilchen enthält".
Nun ja, wie soll man das verstehen? Zunächst zu den beiden letzten Versionen des "Kapazitätssatzes": Auch mit jedem weiteren Bit verdoppeln sich die möglichen Werte, die man speichern - und wieder lesen - kann. Immer einer zu einer Zeit (Schreib-Lese-Zyklus). Und mit 300 Bits kann man mehr als alle Teilchen des bekannten Universums abzählen, oder je eine Zahl zu einem Zeitpunkt im Bereich 0 bis 2**300-1 speichern. Bei Qubits liegt das Geheimnis offenbar wieder im "gleichzeitig". Wieder nur eine Metapher?
Ein System von n Qubits, z.B. n=3, befindet sich zu einem Zeitpunkt in einem Zustand (von prinzipiell unendlich vielen), der eine Linearkombination (Superposition) von nunmehr 2**n Basiszuständen ist, also 8 bei n=3. In der ket-Schreibweise tritt jede n-lange Bitkette als ein Basiszustand auf, bei n=3 also |000>, |001>, |010>, |011>, |100>, |101>, |110>, |111>. Bei n = 300 sind es halt ......
Denken wir an Koordinatensysteme, wie z.B. in Q11, dann haben wir ein 8-dimensionales Koordinatensystem und jeder 3-Qubit-Zustand wird durch 8 Koordinaten beschrieben. "Gleichzeitig" - für einen Punkt braucht man 8 Koordinaten "gleichzeitig".
Kann man in einer Superposition von 2**n Basiszuständen das gleichzeitige Speichern von 2**n Zahlen sehen? Nehmen wir eine gleichmäßige (uniforme) Superposition, d.h. alle Basiszustände kommen mit dem gleichen Koeffizienten vor. Bei n=3 also mit 1/√8.
Speichern nützt nur dann etwas, wenn man mit dem Gespeicherten etwas anfangen kann, z.B. weiter verarbeiten mittels Qubit-Operationen oder Lesen, d.h. Messen. Beim Weiterverabeiten zu einem neuen Zustand können tatsächlich alle Komponenten der Linearkombination in einer Operation berücksichtigt werden (Quantenparallelismus, s.u.). Beim Messen (gegen die Basiszustände) erhält man eine Häufigkeitsverteilung über alle Bitketten, die als Basiszustände in der aktuellen Superposition vertreten sind. Sind einige nicht vertreten, tauschen sie, bis auf Quantenfehler, auch nicht im Messergebnis auf.
Aber was machen wir damit? Welche Information ziehen wir daraus? Dass 2**n Bitketten beim Messen auftreten können, wussten wir schon vorher. Wir "lesen" also nichts Neues. Wenn wir 2**300 Teilchen mit unterschiedlichen Bitketten versehen wollten, konnten wir das auch schon ohne Quanten-Computer (QC).
Wo liegt also die Information, die wir durch die Quanten-Berechnung gewonnen haben? Wohl in der gemessenen Häufigkeitsverteilung:
- Wir schauen nur auf "vorhanden" und "nicht vorhanden" von gemessenen Bitketten. Eine häufige Form der Interpretation von QC-Ergebnissen, z.B. beim Herausfinden eines Orakels, wie im Bernstein-Vazirani Problem oder dem von Deutsch-Josza. Man kann sich das so vorstellen: Der Qubit-Algorithmus "rechnet" mit den 2**n Basiszuständen des n-Qubit Systems, der Ergebnis-Zustand enthält aber in nur einen Basiszustand, der dann bei der Messung eine ziemlich eindeutige Bitkette liefert. Eine solche Methode ist auch die sogenannte Amplituden-Verstärkung (amplitude amplification). Zum Auffinden einer bestimmten Bitkette beginnt man mit einer uniformen Superposition und verändert diesen Zustand Schritt für Schritt so, dass die Amplitude des Basiszustands mit der gesuchten Bitkette zunehmend "größer" wird. Die Iteration wird beendet, wenn man nahe genug an der gesuchten Bitkette ist, d.h. wenn beim Messen diese Bitkette eine überragende Wahrscheinlichkeit erreicht. Das Verfahren wird auch Grover-Iteration genannt.
- Uns interessiert ein "numerisches" Ergebnis, z.B. eine Zahl oder eine Reihe von Zahlen (Vektor), die sich bei der Messung am Ende der Rechnung als Häufigkeiten bestimmter Bitketten ergeben. Als "numerisches" Ergebnis nimmt man dann die Liste dieser Häufigkeiten. Hier stoßen wir aber auf verschiedene Probleme. Eines davon ist, dass ein echter QC die Häufigkeiten nicht exakt misst. Um halbwegs brauchbare Werte abzuleiten, müssen wir das QC Programm wiederholt durchlaufen lassen. Wie oft? Für n=3 kann man das ja einmal ausprobieren mit dem IBM QC. Wie oft bei n=50 oder n=300?
"Für N Zahlen benötigt ein Quanten-Computer nur log(N) Qubits"
Dies ist eine Variante der vorigen Aussage und besagt: "Während man auf herkömmlichen Computern für N Zahlen auch N Speicherplätze benötigt, braucht ein Quanten-Computer nur log(N) Qubits". Man hat also, umgekehrt gesehen, einen exponentiellen Effekt. Und damit ist ein Quanten-Computer exponentiell leistungsfähiger als ein herkömmlicher. Wie auch immer das gemeint ist, es läuft darauf hinaus, dass man eine Überlagerung der N Basiszustände eines "log(N) großen" Qubit-Systems herstellt, bei der die Koeffizienten (auch Amplituden genannt) gerade die gewünschten N Zahlen sind. Wenn man also weiß, wie, kann man einen solchen Superpositionszustand als "Input" herstellen, und einen Qubit-Algorithmus damit weiterrechnen lassen. Das ist das sog. Amplituden-Verfahren oder auch Amplituden Encoding.
Aber halt! Die N Amplituden müssen ja in der Summe der Quadrate 1 ergeben. Schränkt das nicht die freie Wählbarkeit der N Zahlen ein? Nicht wirklich - man muss nur vorher jede Zahl durch die Summe aller Quadrate teilen, genauer, durch die Quadratwurzel dieser Summe. Damit kann man dann "Quanten-Rechnen". Allerdings tritt bei der Ergebnis-Festellung wieder das Problem aus 2. auf.
Um die N Zahlen als Input verwenden zu können, muss man zu Beginn des Qubit-Algorithmus geeignete Qubit-Operationen (Gates) ausführen, so dass sie in einer Superposition zu Koeffizienten von Basiszuständen werden. Das kann trotz "Quantenparallelität" aufwendig sein. Hier ein Beispiel:
Angenommen, wir wollen die 4 Zahlen 1.0, 1.0, √2 = 1.414, 2.0 als Input in Form von Amplituden für ein 2-Qubit-System bereitstellen (N=4, n=2). Die Summe der Quandrate ist 1.0+1.0+2.0+4.0 = 8.0. Die Wurzel daraus ist √8. Dadurch müssen wir die 4 Zahlen teilen, damit diese eine gültige 2-Qubit Superposition ermöglichen: 1/√8, 1/√8, 1/√4, 1/√2. Es ist damit z.B. der Zustand 1/√8 |00> + 1/√8 |01> + 1/√4 |10> + 1/√2 |11> durch einen Qubit-Circuit herstellbar. Wie geht das? Hier ist eine Lösung:



Das "Fine-Tuning" der Amplituden erfolgt hier mittels Drehungen (Ry). Der resultierende Zustand ist verschränkt, d.h. er kann nicht als Kombination der einzelnen Qubits hergestellt werden. Das kann man nach der Methode in Q9 nachprüfen. (Ergebnis eines Simulatorlaufs mit 1024 shots.)
"Ein Quanten-Computer kann mehrere Berechnungen gleichzeitig durchführen"
Diese Aussage wird häufig als Verdeutlichung des sog. Quanten-Parallelismus verwendet. Auch hier wird wieder das Mantra-Wort "gleichzeitig" verwendet, dieses Mal aber in einer sinnvollen Bedeutung, nämlich im Gegensatz zu "nacheinander" (sequentiell). Natürlich können auch herkömmliche Computer heutzutage mehrere Berechnungen zeitlich parallel ausführen. Der Unterschied ist aber technisch fundamental: Herkömmliche Parallelrechner (z.B. MIMD-Architekturen) führen mehrere, durchaus auch verschiedene, Computerbefehle (Instructions) zur gleichen Zeit aus und verwenden dabei u.U. unterschiedliche Daten als Input.
Quanten-Computer führen zu einem Zeitpunkt einen Befehl (in Form von Gates) auf einer Datenstruktur aus. Die Datenstruktur ist der aktuelle Zustand eines n-Qubit-Systems, also meist eine Superposition oder gar eine Verschränkung. Der Zustand eines n-Qubit-Systems kann aber, wie wir zuvor gesehen haben, bis zu N=2**n Zahlen (in Form von Amplituden) repräsentieren. Indem der Qubit-Befehl auf den Zustand wirkt, wirkt er simultan auf alle Basiszustände, die in der Superposition vorkommen. Als Ergebnis können sich damit simultan alle Amplituden der Basiszustände verändern. Bingo!
Mathematisch gesehen ist das überhaupt nichts Ungewöhnliches. Eine Matrix A "wirkt" bei Multiplikation mit einem Vektor x auf alle seine Komponenten "gleichzeitig": y= Ax (Lineare Algebra). Wird ein Punkt (x,y) mittels einer Funktion F verschoben, dann werden alle Koordinaten "gleichzeitig" verschoben: (u,v) = F(x.y). Und auch die Qubit-Operatoren (Gates) können mathematisch als Matrizen dargestellt und verwendet werden. Wenn es allerdings ans praktische Rechnen geht, etwa mit einem Algorithmus, der die Matrixmultiplikation explizit durchführt, dann geht es klassisch (auf einem herkömmlichen Rechner) wieder nur Schritt für Schritt: die Operation wird in viele Einzelschritte zerlegt, die nacheinander ausgeführt werden. Hier unterscheiden sich klassische und Quanten-Computer tatsächlich fundamental. Quanten-Computer, wie die von IBM, sind technisch so aufgebaut, dass sie eine komplette Superposition in einem, statt in vielen Schritten verarbeiten können.
Wie man sich das vorstellen kann, zeigen wir an einem einfachen Beispiel: Das exklusive Oder (XOR) von zwei Bits entspricht der einfachen Bit-Addition bis auf die Operation "1+1", die 0 ergibt statt 2. (Dafür verwendet man auch das Symbol ⊕ statt +). Wir können die Bit-weise XOR-Berechnung auch als Qubit-Circuit durchführen. Das ergibt die 4 Auswertungen in der Abbildung, wobei jeweils q0 und q1 auf Zustand 0 bzw. 1 gesetzt werden und das Ergebnis den neuen Zustand von q1 ergibt.

Quanten-Parallelismus ermöglicht aber Superpositionen statt einzelner Basiszustände als Input zu präparieren, typischerweise mit dem H-Gate (Hadamard-Gate). Damit muss die Berechnung nur einmal ausgeführt werden und wir erhalten alle 4 Ergebnisse auf einmal.

Um die Ergebnisse einfacher "lesen" zu können, haben wir hier das XOR Ergebnis auf ein drittes Qubit q2 übertragen. So erhalten wir als Messergebnis genau die obige XOR Tabelle mit XOR -> q2 : 000, 101, 110, 011 (q2 steht hier wieder jeweils ganz links in der Bitkette).
"Was auf herkömmlichen Rechnern Jahre dauert, kann ein Quanten-Rechner in Sekunden erledigen"
Als Begründung liest man dabei oft, dass Quantenrechner "exponentiell schneller" rechnen können als herkommliche. Was bedeutet das?
Das heißt zum Beispiel folgendes: Wenn wenn wir zwei Methoden haben, die eine Aufgabe lösen, etwa eine Berechnung durchführen oder ein "Geheimnis" (Q15) zu finden, und die eine Methode benötigt N Zeiteinheiten oder Rechenschritte, die andere aber nur log(N) viele, dann stellt die zweite Methode eine exponentielle Verbesserung - oder Beschleunigung - gegenüber der ersten dar. (Denn, für k=log(N) ist N=exp(k).)
Es gibt eine ganze Reihe von solchen "Beschleunigungsbeziehungen" zwischen Methoden zur Lösung gleicher Aufgaben. Der Grover Qubit-Algorithmus benötigt nur etwa √N Schritte gegenüber N Schritten bei der klassischen Methode. Hier haben wir also eine quadratische Beschleunigung. In Q15 hatten wir das am Beispiel des Bernstein-Vazirani-Algorithmus diskutiert.
Solche Beschleunigungen gibt es von je her auch im klassischen Computing als Effekt einer algorithmischen Verbesserung. So gibt es z.B. unterschiedliche Sortier-Algorithmen, die sich bezüglich ihres Rechenaufwands erheblich unterscheiden, oder auch Verfahren zur numerischen Simulation, bei denen sogenannte Mehrgitterverfahren große Beschleunigungsraten bringen.
Der tatsächliche Beschleunigungseffekt des Quanten-Computing gegenüber herkömmlichen Bit-Computing beruht auf einer Kombination von zwei Dingen: dem Quanten-Parallelismus der Hardware (s. voriger Abschnitt) und dem Algorithmus, der für Qubits konstruiert werden kann.
Ein Rechenbeispiel: Hätte man eine (hypothetische) Aufgabe, die auf einem gewöhnlichen Rechner mit dem schnellsten Algorithmus 10 Jahre dauern würde, dann würde eine exponentielle Beschleunigung auf einen Zeitaufwand von rund 20 Sekunden führen: log(10*360*24*60*60) = log(311040000) = 19,56. Diese Zahlen sind allerdings eher fiktiv, da wie keine konkrete Aufgabe vor Augen haben und Wiederholungen und anderen "Overhead" nicht berücksichtigen. Aber es zeigt, wie sich die Größenordnung ändern.
Hätten wir also eine Aufgabe, die herkömmlich Jahre dauern würde, und hätten wir dazu ein Quanten-Computer, der sie alternativ mit exponentieller Beschleunigung löst, könnten wir die Aussage so akzeptieren. Allerdings gibt es noch nicht viele Algorithmen für Quanten-Computer, die in dieser Form praktische verwendbar sind. Was nicht zuletzt auch an der Größe und "Sensibilität" heutiger QC liegt.
Ein relevantes Beispiel, das immer wieder als "Gefahr durch Quanten-Computer" zitiert wird, ist das Verfahren von Shor, mit dem man einen wichtigen Schritt beim "Knacken" von besten heutigen Verschlüsselungsverfahren in akzeptabler Zeit durchführen kann. Um das zu verstehen, braucht es aber schon mehr Einsicht in die zugrunde liegende Mathematik. Daher wird hier meist nur der (befürchtete) Effekt zitiert und auf Verständnis verzichtet.
"Quanten-Rechner werden herkömmlichen Rechnern überlegen sein"
Man spricht auch generell von Quanten-Überlegenheit (Quantum Supremacy). Trotz der beängstigent klingenden Bezeichnung handelt es sich hier um eine unspektakuläre Sache. Es bedeutet lediglich das Ereignis, dass es eine Berechnung gibt, die ein Quanten-Computer schneller als jeder herkömmliche Supercomputer durchführen kann. Dabei ist es erst einmal egal, ob diese Berechnung einen Sinn macht oder praktische Bedeutung hat. Wie man kürzlich lesen konnte, hat man (mit einem QC von Google) bereits eine solche Berechnung durchführen können, d.h. der Meilenstein Quantum Supremacy ist schon erreicht.
"Jedes zusätzlich Qubit verdoppelt die Leistungsfähigkeit des Systems"
Hier bleibt einerseits unklar, was mit Leistungsfähigkeit gemeint ist - Rechenleistung, Speicherleistung, Leistung eines Algorithmus, der ein Qubit mehr zur Verfügung hat? Auch wenn wir einen Bit-Speicher (Register) um ein Bit erweitern, also von n auf n+1 Bits, können wir damit 2**(n+1) = 2*2**n Werte speichern bzw. mehr oder längere Befehle ausführen. So hatte sich auch die Prozessorarchitektur von früheren 32 Bit auf 64 Bit bei herkömmlichen Computern verändert und dabei prinzipiell eine 32-fache Verdoppelung der Leistung ermöglicht.
Was macht nun ein Qubit mehr aus bei einem Quanten-Computer? Zum einen gibt es dann doppelt so viele Basiszustände. Z.B. von 8 bei einem 3-Qubit System auf 16 bei 4 Qubits. In Superposition können damit 16 statt nur 8 Koeffizienten (Amplituden) einen Zustand bestimmen. Diese Verdoppelung ist analog der Situation bei Bits und wir hatten das schon oben bei N vs log(N) erklärt.
Zum anderen wissen wir, dass - ganz ander als beim Bit-Computing - verschränkte Zustände eine wichtige Rolle im Qubit-Computing spielen. Man kann sich also fragen, was bringt ein zusätzliches Qubit für die möglichen Verschränkungen, oder allgemein für die möglichen "Konfigurationen" von Superpositionen. Anders ausgedrückt: wieviel mehr Möglichkeiten gibt es für Zustände, in denen nur ein Basiszustand vertreten ist, oder zwei, oder drei usw. - unabhängig von den Werten der Amplituden. Diese Zahl wächst offenbar kombinatorisch. Für n=2 sind die "Muster" noch überschaubar: 4 mal |x>, 6 mal |x>+|y>, 3 mal |x>+|y>+|z> und 1 mal |x>+|y>+|z>+|v>, wenn |x>,|y>,|z>,|v> die Basiszustände |00>, |01>,|10>,|11> durchlaufen.
In Q13 (Superdichte Codierung) haben wir einen anderen Verdopplungseffekt gesehen: die Kapazität, Bitketten in GHZ-verschränkten Qubits zu "speichern" bzw. zu übertragen. Hier brachte jedes weitere Qubit in einer solchen Verschränkung eine Verdoppelung der Anzahl übertragbarer Bitketten.
Zuletzt eine Anmerkung: Bei "Was man so liest" fragt man sich leicht, wo man das gelesen hat. Die konkreten Aussagen in den Überschriften sind keine echten Zitate, obwohl sie so oder in Variationen der Wortwahl tatsächlich vorkommen. Wir wollen hier aber kein "Bashing" anzetteln, sondern nur kostruktiv klären, was dahinter steckt oder wo man leicht fehlgeleitet wird. Daher verzichten wir auf Quellenangaben.
Quantencomputing ohne Quantenmechanik?
Von Ulrich Trottenberg und Bernhard Thomas

Quantencomputing ist ein heißes Thema - in Universitäten, Forschungszentren, in den großen IT-Firmen, in der internationalen und nationalen Forschungsförderung - und mittlerweile auch in der Politik. Das geht so weit, dass uns führende Personen der Öffentlichkeit, die sonst mit ihren schwachen mathematischen Leistungen und ihrem mathematischen Desinteresse kokettieren, uns das Quantencomputing mit seinen großartigen, revolutionären Möglichkeiten „erklären“.
Auf der anderen Seite haben uns die bedeutendsten Physiker des letzten Jahrhunderts erklärt, dass man die Quantenmechanik - also die physikalische Basis des Quantencomputing – wenn überhaupt, nur mathematisch verstehen kann: Zentrale Phänomene der Quantenmechanik, insbesondere die Superposition und die Verschränkung, entziehen sich der Anschauung und stehen in (scheinbarem) Widerspruch zur physikalischen Alltagserfahrung. Selbst Albert Einstein bezeichnete das Phänomen der Quanten-Verschränkung als spukhafte Fernwirkung, der ebenfalls geniale Physiker Richard Feynman formulierte pointiert: „Man kann sicher sagen, niemand versteht die Quantenmechanik.“ Und Erwin Schrödinger, einer der Begründer der Quantenmechanik, versuchte mit seinem berühmten Katzen-Paradox in einem oft missverstandenen Gedankenexperiment die Übertragung quantenmechanischer Phänomene auf die Alltagswelt ad absurdum zu führen (Siehe "Schrödingers Katze" bei Wikipedia).

Und die echten Experten des Quantencomputing? Was sagen die? Da überwiegen in der Tat die optimistischen Einschätzungen (nicht nur bei denen, die von den Forschungsmilliarden gefördert werden). Sie gehen z. B. davon aus, dass man mit Quantencomputern - bei einer Reihe wichtiger Anwendungen - viel, viel schneller, „exponentiell“ schneller rechnen kann als mit herkömmlichen Computern, dass man mit Quantencomputern Probleme lösen kann, die als praktisch unlösbar gelten, fast jeden Verschlüsselungscode knacken kann usw. .
Aber es gibt auch die Skeptiker, die noch einen weiten Weg vor sich sehen bis zu einer praktischen Realisierung großer, leistungsfähiger Quantencomputer. Ein Argument der Skeptiker ist auch, dass mit Quantencomputern erzielte Ergebnisse in aller Regel nur mit einer gewissen Wahrscheinlichkeit „richtig“ sind und dass man möglicherweise die Rechnungen sehr häufig wiederholen muss, um die Ergebnisse abzusichern.
Schließlich die Algorithmen, die Software? Gibt es die denn schon? Kann man die entsprechenden Algorithmen verstehen? Die Interscience Akademie für Algorithmik hat den Versuch gemacht, Quanten-Algorithmen verständlich zu machen mit nicht mehr als Schulmathematik (Unterstufe / Mittelstufe). Daraus ist eine Serie von 16 Blogs entstanden, eingeleitet durch den Artikel "Quanten-Computing für die Schule - Echt jetzt?". Das geht ohne die Quantenmechanik zu bemühen – und auch ohne die quantenmechanische Mathematik (wie Hilberträume, partielle Differentialgleichungen, Tensoren, Matrizen und Vektoren usw.) zu verwenden. Was vorausgesetzt wird, ist ein bisschen Schulmathematik, einfaches Grundverständnis für klassische Computer; nützlich beim Ausprobieren, aber nicht notwendig, sind elementare Programmierkenntnisse.
Viel Spaß beim Quantencomputing!

Quanten-Computing für die Schule - Echt jetzt?
Von Bernhard Thomas und Ulrich Trottenberg
Kann man Quanten-Computing als Thema im Schulunterricht behandeln? Die erste schnelle Antwort wird sein: sicher nicht! Die physikalischen Grundlagen, die Mathematik dazu übersteigt unsere Vorstellungskraft und jegliches Wissen, das man im Rahmen von Schule vermitteln bzw. erwerben kann, sei es im Physikunterricht, in Mathematik oder im Informatikunterricht. Andererseits hört und liest man seit einiger Zeit viel über das Potenzial zukünftiger Quantencomputer - übertroffen nur noch von der Diskussion über Künstliche Intelligenz.
Dem Quanten-Computing, genauso wie dem "klassischen" Computing, liegen Algorithmen zugrunde. Wenn wir uns auf das Algorithmische des Quanten-Computing beschränken, kann es uns dennoch gelingen - etwa im Rahmen des Informatikunterrichts - auch Algorithmen aus der "Quanten-Welt" (Qubit-Algorithmen) kennen zu lernen, zu verstehen und sogar zu konstruieren. Und, was das Ganze besonders spannend macht, auch auf den ersten echten Quantencomputern laufen zu lassen! Auch bei herkömmlichen Computern verstehen wir ja die Physik nicht wirklich, können aber dennoch schon Grundschülerinnen und Grundschülern erklären, wie man grafische Programme erstellt, die dann auf Computern oder kleinen Robots laufen. (Siehe Open Roberta, Calliope, Scratch usw.)
Die Q Blog-Serie der Interscience Akademie für Algorithmik
Unsere Q Blog-Serie ist primär gedacht als Information, Material und Anregung für Lehrpersonen oder interessierte Schülerinnen und Schüler. Es gibt aber auch einiges für jeden zu entdecken, der immer schon einmal wissen wollte, was das Besondere an den geheimnisvollen Qubit-Algorithmen und ihren viel gerühmten Eigenschaften ist. Denn tatsächlich - einiges ist anders als man es von herkömmlichen Algorithmen gewohnt ist.
Schulwissen
Wir werden sehen, dass wir uns in dieser Serie auf allgemeines Schulwissen beschränken können. D.h. wir kommen zum Einen ohne Kenntnisse der Quantenphysik aus, wenngleich die meisten Ideen und Konzepte der Quanten-Informatik und der Qubit-Algorithmen aus der Quantenphysik abgeleitet sind, und zwar insbesondere aus der Mathematik der Quantenphysik. Dort haben sie auch ihre Entsprechung, sogar ihre Umsetzung, in Form von Quanten-Computern. Der Respekt vor diesem immensen mathematisch-naturwissenschaftlichen Wissen seit den Anfängen des letzten Jahrhunderts kann nicht groß genug sein, Respekt gebührt vor allem denen, die sich seit etwa den 1980er Jahren mit der informatischen Bedeutung der Quantenphysik befasst haben und befassen. Auch hier ist der Schatz an dokumentiertem Wissen heute unüberschaubar. Was aber nicht bedeutet, dass man aus Ehr-Furcht davor keinen Zugang zu diesen Dingen finden kann.
Zum anderen wollen wir ohne die "höhere Mathematik" auskommen. Wir verzichten auf Hilbert-Räume, Vektoren und Matrizen, Tensor-Rechnung, komplexe Zahlen, partielle Differentialgleichungen - das übliche Handwerkszeug professioneller Quanten-Mathematiker und-Informatiker. Was wir verwenden, ist bewusst eher mittleres Schul-Niveau: die Darstellung von Punkten im Koordinatensystem, den Einheitskreis im Koordinatensystem, ab und an den "Pythagoras", Prozentrechnung und relative Häufigkeiten, auch mal den Sinus oder Cosinus, wenn's hoch kommt - und was wir brauchen, ist Offenheit für neue Entdeckungen.
Zugegeben, wir werden damit nicht die gesamte Quanten-Informatik und ihr algorithmisches Instrumentarium darstellen können. Aber wir werden mit unseren Mitteln die Grundprinzipien von Qubits und Qubit-Algorithmen verstehen, einfache bis namhafte komplexere Algorithmen kennenlernen und dabei viele der mit Qubits verbundenen Begriffe und Eigenschaften entmystifizieren. Und auch der korrekte, sinnvolle Sprachgebrauch der Qubit-Welt will eingeübt werden.
Entdecken statt Auswendiglernen
Auch in der Darstellung des Themas Qubit-Algorithmen gehen wir einen etwas anderen Weg. Statt mit den üblichen Definitionen loszulegen, gehen wir hier auf Entdeckungstour. Unter anderem die grundlegenden Modelle – vom Bit bis zum Qubit – entwickeln wir anhand von “virtuellen Experimenten”. Die allerdings nichts mit Quantenphysik zu tun haben. Natürlich "lernt" man dabei auch Neues, das man sich merken sollte - aber dafür gibt es Beispiele "zum Anfassen", damit das leichter fällt.
Qubits oder Quanten?
Warum sprechen wir von Qubit-Algorithmen und nicht von Quanten-Algorithmen? Qubits sind die "Objekte" der Quanten-Informatik und der Algorithmen, die wir hier besprechen. Man kann sie erst einmal als Entsprechung zu klassischen Bits verstehen. Sie sind im Prinzip völlig unabhängig von dem, was "Quanten" bedeutet - bis auf die Tatsache, dass man sie am besten auf sogenannten Quanten-Computern implementiert, die Qubits und die Qubit-Algorithmen. Solange man sich also mit den Objekten nur algorithmisch beschäftigt, spielen Quanten im physikalischen Sinne keine Rolle. So auch in unserer Blog-Serie. Zugegeben, die Bezeichnung Qubit ist natürlich eine Zusammenfügung aus Quantum und Bit.
Quanten dagegen sind ein physikalisches Konzept. Wen das nicht interessiert, kann diesen Absatz ab hier überspringen. Man kann auch ohne dieses Wissen alles Weitere verstehen, da sind wir sicher.
Ein Quant bezeichnet ursprünglich die kleinste Einheit einer physikalischen Wirkung (Wikipedia: Plancksches Wirkungsquant). Max Planck erkannte, dass in der physikalischen Welt alle Veränderungen in "Sprüngen" von mindestens Quantengröße vor sich gehen - wenn man genau genug hinschaut. (Der viel zitierte "Quantensprung" ist also eigentlich die kleinste Veränderung, die man erwirken kann.)
Im atomaren und sub-atomaren Bereich der Physik gibt es vielfältige Abläufe, die in diesem Sinne "gequantelt" von statten gehen. Wenn zum Beispiel ein Elektron auf ein niedrigeres Energieniveau zurück fällt, gibt es Energie von der Größe eines Vielfachen des Planckschen Quants ab und das in Form eines Lichtteilchens (Photon). Üblicherweise werden daher auch diese "Energiepakete" als (Licht-)Quanten bezeichnet. Typisch für ein Photon ist, dass es je nach experimenteller Bedingung ein - im Sinne makroskopischer Phänomene - teilchenartiges oder ein wellenartiges Verhalten zeigt. Auch andere physikalische Objekte, wie z.B. ein Elektron, kann dieses Verhalten zeigen, weshalb man sie ebenfalls als physikalische Quantenobjekte oder -systeme auffasst bzw. verwendet.
Das Verhalten von Quantenobjekten lässt sich durch eine (mathematische) Zustandsbeschreibung charakterisieren (Quantenzustand), etwa durch mathematisch anspruchsvolle partielle Differentialgleichungen (z.B. die Schrödinger-Gleichung). Damit lassen sich bestimmte Quanteneigenschaften erklären und durch einen Mess-Prozess bestimmen.
Grundlage für allgemeine Quanten-Computer, auf denen wir Qubit-Algorithmen ablaufen lassen können, sind Quantensysteme, also physikalische Systeme, bei denen sich Zustandsänderungen mittels Quanten vollziehen. Für die Realisierung von Qubits verwendet man Systeme mit Quanteneigenschaften, die grundsätzlich zwei gegensätzliche Ausprägungen haben, und deren allgemeiner Zustand als Überlagerung dieser beiden Ausprägungen dargestellt werden kann (Superposition genannt).
Eine weitere Besonderheit, die wir auch bei den Qubit-Algorithmen verwenden, ist, dass man den Quantenzustand eines Systems nicht wissen kann - prinzipiell nicht! Was man tun kann, ist, ein Quantensystem messen und aus den Messergebnissen gewisse Rückschlüsse auf den Zustand ziehen. Quantenphysiker können aber durchaus Quantenzustände "herstellen", durch physikalische Operationen und durch Überprüfung mit Messungen. Allerdings kann man ein Quantensystem nicht zweimal messen; nach dem ersten Messen ist es nicht mehr in dem Zustand, in dem es bei der Messung war. Schlimmer noch, bei den meisten Messungen am irgendwie "gleich hergestellten" Quantenzustand bekommt man unterschiedliche Ergebnisse! Wenn die Messung aber vielfach wiederholt wird, kann man allerdings eine Häufigkeitsverteilung der Ergebnisse erstellen und daraus so etwas wie die Wahrscheinlichkeit für die einzelnen Ergebnisse ableiten. Der Quantenzustand "äußert" sich dann per Messungen in Form einer Wahrscheinlichkeitsverteilung für die möglichen Ergebnisse. Höchst eigenartig - aber darauf basiert letztlich das Besondere an Qubits und Qubit-Algorithmen - sie sind eine Abstraktion des Geschehens bei bestimmten physikalischen Quantensystemen. Und darauf wollen wir uns hier beschränken.
Ein faszinierendes und auch für den Physik-Laien gut verständliches Video findet man hier. Es demonstriert physikalisch die auch in der Qubit-Algorithmik wichtigen Begriffe Superposition und Verschränkung sehr anschaulich anhand von Photonen-Experimenten.
Hier endet der "Quanten-Absatz".
Qubit Prinzipien
Das Ungewöhnliche an Qubits lässt sich durch zwei, drei Grundprinzipien beschreiben:
Erstens, ein Qubit, oder auch ein Qubit-System, hat Zustände, die sich nicht direkt zeigen, sondern nur indirekt, wenn man sie misst. Dabei kann es durchaus sein, dass verschiedene Zustände gleiche Messergebnisse liefern.
Zweitens, es gibt Zustände, deren Messung nicht ein eindeutiges Ergebnis liefern - wie 0 oder 1 beim "Messen" normaler Bits (z.B. Lesen, Ausdrucken, Verrechnen). Ihr Messergebnis kann nur durch feste Wahrscheinlichkeiten für verschiedene mögliche Ereignisse (z.B. 0 oder 1) charakterisiert werden. Das ist eine Besonderheit, die wir am besten durch eine einfache Analogie verdeutlichen.
Man stelle sich vor: In einem Pausenraum stehen zwei Getränkeautomaten. Der eine Automat ist ein Becher-Automat. D.h. wenn man C oder L drückt und Geld einwirft, fällt ein Becher und wird mit Cola, bzw. Limo gefüllt. Außerdem gibt es die Taste H (für Halbe-Halbe), damit bekommt man eine Mischung halb Cola, halb Limo, also so etwas wie Mezzomix. Insgesamt also: drei Tasten, drei Getränke. Der andere Automat gibt nur Getränke in Flaschen aus. C und Geldeinwurf: eine Flasche Cola, bei L eine Flasche Limo. Und jetzt kommt's: Was, wenn man H wählt? Nicht etwa eine Flasche Mezzomix, sondern Cola! Beim nächsten Mal: wieder Cola. Also sind C und H einfach zwei Tasten für Cola? Beim nächsten Mal H gibt es eine Limo. Der nächste bekommt wieder eine Cola, die nächsten Schüler Limo, Limo, Cola usw. jeweils ein Flasche. Also drei Tasten, zwei "Outputs"? Die Schüler finden das krass und kaufen nur noch H - wegen des Überraschungseffekts. Ein Schüler kommt auf die Idee zu zählen. Über die ganze Pause hinweg zählt er 14 mal Cola und 16 mal Limo. Aha, das ist es also, was H bedeutet: Cola und Limo-Flaschen werden (zufällig) in etwa der Hälfte aller Käufe ausgegeben.
Der zweite Automat ist ein "Qubit-Cola-Limo-Automat": Mit Taste C gibt's Cola, mit L gibt's Limo und mit H gibt's ... wir haben's gesehen.
Drittens, und dann reicht es erst einmal, man kann alle diese Zustände "herstellen". D.h. es gibt Qubit-Operationen (ähnlich wie Bit-Operationen), die einen Zustand in einen nächsten überführen. Und mit solchen kann man alle Qubit-Zustände erreichen, sogar determiniert.
Aus Qubits und solchen Operationen werden Qubit-Algorithmen aufgebaut - die Messungen nicht zu vergessen.
Spannend! Mit Qubit-Algorithmen auf echten Quantenrechnern experimentieren
Seit etwa 2017 gibt es von IBM die in der Cloud verfügbare Umgebung IBM Q Experience. Sie umfasst den Zugang zu realen Quanten-Computern, QC-Simulatoren und Programmierumgebungen. Besonders motivierend ist die Möglichkeit, kleine Qubit Algorithmen grafisch zu erstellen (mit dem Circuit Composer). Für fortgeschrittene Qubit-Algorithmen bietet sich ein mit Python verwendbares Paket für Qubit-Programmierung an (das Qiskit). In dieser Blog-Serie beschränken wir uns auf den IBM Q Composer zur Illustration und beim Experimentieren mit Qubit-Algorithmen. Programmieren ist keine Voraussetzung für diese Q-Serie. Wer aber Spaß daran hat, kann viele interessante Dinge mit dem Composer oder in der Kombination von Python und Qiskit ausprobieren - ebenfalls direkt in der IBM Q Experience Cloud (via Browser). *)
Auch Google hat eine sehr leistungsfähige QC-Umgebung in der Cloud verfügbar gemacht (Google Cirq). Sie bietet ähnliche Möglichkeiten zur Qubit-Programmierung wie die IBM Umgebung und kann hier als Alternative zur IBM Q Experience durchaus in Betracht gezogen werden. Microsoft bietet mit Azure Quantum eine Entwicklungsplattform mit der Programmierumgebung QDK (Quantum Developer Kit) und Simulatoren. Die Quantum-Hardware wird über Azure von Partnern integriert.
Es folgt eine Übersicht über die einzelnen Abschnitte der Q-Serie, nummeriert von Q1 bis Q16.
Qubit-Algorithmen für die Schule - die Q-Serie
Q1 Etwas ist anders! - Qubit-Algorithmen
Die An-Moderation.
Q2 Etwas ist anders! - Hello Qubit World
Wir machen uns damit vertraut, wie ein Qubit-Algorithmus "aussieht", auch wenn wir die Details jetzt noch nicht verstehen. Jedenfalls schon ganz schön exotisch.
Q3 Vom Bit- zum Qubit-Modell
Wir entdecken das Bit neu als "kleinen Bruder" des Qubits. Wir finden eine Black Box mit der Bezeichnung BIT vor, experimentieren damit und machen uns so ein BIT-Modell. Am Ende finden wir eine Blue Box mit der Aufschrift ZBIT vor.
Q4 ZBIT – unterwegs zum Qubit-Modell
Wir experimentieren mit der ZBIT-Box und stellen fest, dass sie sich an einer Stelle ganz anders verhält als die BIT-Box, nämlich zufällig! Damit sind wir schon auf dem halben Weg zum Qubit. Wir untersuchen die Blue Box und machen uns ein Modell, das wie eine ZBIT-Box funktionieren soll. Stellen allerdings fest, dass das im ersten Anlauf nicht richtig klappt.
Q5 Ein verbessertes ZBIT-Modell
Wir entwickeln ein Modell für ZBIT, das passt. D.h. man kann die Experimente damit nachvollziehen und erklären. Und Voraussagen machen, die wir durch Experimente mit der Blue Box bestätigen können. Bis hierhin haben wir auch schon einiges an abkürzenden Schreibweisen verwendet, die später auch als Gerüst für die Beschreibung von Qubit-Algorithmen dienen. Wir haben auch gelernt, dass "Messen" eine wichtige Rolle spielt, um Aussagen über den Zustand eines ZBIT-Modells zu machen.
Q6 Zwischenspiel - ZBIT-Spielereien
Namen sind Schall und Rauch. Nicht wie sie heißen, macht Zustände zu ZBIT-Zuständen, sondern wie man sie verwendet. Wir spielen ein wenig herum mit verschiedenen Möglichkeiten ein ZBIT-Modell zu beschreiben: vom Basketball-Spiel über die Grafik aus Q2 (Hello Qubit-World) bis zu Punkten im x-y-Koordinatensystem.
Q7 Qubit - Ein Modell für Qubit Algorithmen
Mit der Grey Box QBIT lernen wir das Verhalten von Qubits kennen und verstehen. Die "Experimente" sind vielfältiger, damit auch ihre Beschreibung als elementare Algorithmen. Die QBIT-Zustände haben wir aber schon am Ende der ZBIT-Spielereien richtig als Punkte im x-y-Koordinatensystem dargestellt. Das ZBIT ist tatsächlich schon ein vereinfachtes Qubit - mit seinen Zuständen, Operatoren und Messvorschriften.
Q8 Fingerübungen - Einfache Qubit Algorithmen ausprobiert
Einfache 1-Qubit und erste 2-Qubit Operationen werden vorgestellt in Form einer einfachen symbolischen Notation und als Gates (Gatter) in Composer Circuits (Schaltkreise). Wir lernen die Wirkung und das Zusammenwirken von einigen Gates verstehen, darunter ein erstes Controlled Gate, CNOT, dessen Wirkung auf einen Qubit-Zustand vom Zustand eines anderen Qubit abhängt. Gelegentlich verwenden wir alternativ zur Koordinatendarstellung auch die |0>, |1> Form (Ket-Notation) zur Kennzeichnung von Zuständen.
Q9 Verschränkung und andere 2-Qubit Phänomene
Wir probieren weitere einfache 2-Qubit Algorithmen aus und erklären die Zustandsabfolge und die Messergebnisse. Wir stoßen dabei erstmalig auf die Verschränkung von 2-Qubit-Zuständen und den Kickback-Effekt, beides wichtige Elemente in Qubit-Anwendungen. Die Wirkung von Gates und die Zustandsabfolgen werden berechenbar durch einfache Formeln auf Basis der Zustandskoordinaten.
Q10 Qubit-Algorithmen - Hinter die Kulissen geschaut
"Hinter die Kulissen schauen" heißt, die Effekte der Zwei- und Mehr-Qubit Algorithmen durch Zustandsübergänge und Messungen zu erklären. Mittels Koordinatendarstellung und Gate-Formeln. Bei dieser Gelegenheit lernen wir noch einige weitere Gates aus dem Repertoir der Qubit-Algorithmik und des Composers kennen. Unter anderem das über 3 Qubits wirksame Toffoli Gate.
Q11 3-Qubit Circus
Mit mehr Qubits werden Qubit-Algorithmen vielfältiger - aber auch komplizierter zu verfolgen. Wir konstruieren und analysieren einige 3-Qubit Circuits. Auch bei 3-Qubit-Systemen gibt es den Effekt der Verschränkung, sogar noch vielfältiger.
Q12 Ein echter Quanten-Würfel in 3 Qubits
Mit diesem Abschnitt und den folgenden stellen wir Qubit-Algorithmen vor, die man (fast) als praktische Anwendungen sehen kann. Der erste ist ein normaler 6-flächiger Würfel, der, wenn er auf einem realen Quantencomputer ausgeführt wird, einen echten Zufallswürfel darstellt, der nach den Gesetzen der Quantenphysik prinzipiell nicht vorausberechenbar ist. Hilfestellung für die Idee dieses 3-Qubit Algorithmus liefert eine 3-Qubit-Verschränkung, der sog. W-Zustand, den wir hier näher untersuchen.
Q13 Superdichte Codierung und Quanten-Kommunikation
Wir konstruieren und untersuchen Qubit-Algorithmen, mit denen man prinzipiell mehr Bits in weniger Qubits codieren und übertragen kann. Also z.B. 2 Bits in einem Qubit. Das Modell der superdichten Quanten-Kommunikation ist zwar ungewöhnlich aber mit unseren Mitteln leicht nachvollziehbar. Auch hier spielt wieder die Verschränkung eine Rolle. Das Verfahren funktioniert auch in Realität. Quanten-Kommunikation hat man schon über hunderte von Kilometern getestet,
Q14 Quanten-Teleportation
Während Quanten-Kommunikation die Übertragung von Bits mittels verschränkter Qubits ermöglicht, bedeutet Quanten-Teleportation (trotz dieses SciFi Wortes) das Übertragen eines Qubit-Zustands auf ein anderes, entferntes Qubit mittels Bit-Information, die zuvor aus Messungen gewonnen wurde. Wir konstruieren, anlaysieren und diskutieren den Quanten-Teleportations-Algorithmus.
Q15 Ein Geheimnis mit einer Frage rauskriegen - Bernstein-Vazirani-Algorithmus
Wir stehen vor der Aufgabe, eine geheime Bit-Kette herauszufinden, etwa einen Code oder den Weg durch ein Labyrinth. Wir probieren es mit klassischen (Bit-)Algorithmen, die typischerweise immer eine gewisse Anzahl von "Fragen" benötigen, und schließlich mit einem Qubit-Algorithmus, der das mit nur einer "Frage" schafft. Wir haben damit ein erstes Beispiel für einen Beschleunigungseffekt durch Qubit-Parallelismus. Wir untersuchen, wie das geht und warum das geht und wie man das allgemein verwenden kann.
In diesem Abschnitt führen wir auch die Qubit-Programmierung mittels Qiskit ein. Ein Link verweist auf ein vollständiges, lesbares Qiskit/Python-Programm.
Q16 Was man so liest
Hier diskutieren wir den Sprachgebrauch und einige typische Aussagen, wie sie in den Medien zum Thema Quantencomputing immer wieder auftauchen. Was ist gemeint, was ist dran, wie muss man das verstehen und - was steckt eigentlich dahinter? Wir tun dies auf der Basis des erworbenen Verständnisses aus dieser Q-Serie.
QX Etwas ist anders - und es gibt noch viel mehr
Es ist zu erwarten, dass sich weitere interessante Ideen und Algorithmen ergeben, die sich auf der Ebene "Schulwissen" ebensogut darstellen lassen, wie die bisherigen Beispiele, auch wenn sie vielleicht noch etwas komplizierter werden. Nur was man erklären kann, hat man verstanden. Ideen können gerne auch aus Kommentaren und Mitteilungen zu dieser Blog-Serie kommen. Die würden wir in weiteren Blog-Abschnitten unter QX aufnehmen.
Und hier beginnt die Q-Serie.
*) Update Aug. 2020: Das Erscheinungsbild der IBM Quantum Experience Umgebung hat seit etwa August 2020 ein Update erfahren. Insbesondere das User Interface des Circuit Composers hat sich etwas verändert. Es gibt mehr vordefinierte Gates, ein paar andere Voreinstellungen und Farben. Mit Blick auf die Beispiel-Circuits in der Blog-Serie haben sich aber im Wesentlichen nur die Farben der Gates geändert. Interessant ist auch, dass auf der Oberfläche nicht nur der Circuit dargestellt wird, sondern auch gleich die Ergebnisse von Messungen, sowie andere interessante Informationen, auf die wir in den Blogs nicht eingegangen sind. Dazu gehört auch, wenn man es richtig versteht, eine Darstellung der aktuellen Zustandssuperposition (Statevector), also die n-Qubit Basiszutände mit ihren Koeffizienten (Amplituden genannt).
Dank
Unser Dank geht unter anderem an Dr. Roman Wienands für die Antworten auf viele algorithmische Detailfragen. Dr. Wienands und der Zweitautor führen übrigens seit vielen Jahren sehr erfolgreich Seminare zu "Algorithmen im Schulunterricht" für die Lehrerausbildung am Mathematischen Institut der Universität zu Köln durch. Seit einiger Zeit auch zu Themen aus der Künstlichen Intelligenz und dem Quantencomputing.
Der Zweitautor hat darüber hinaus die Kapitel der Q-Serie als Diskussionspartner intensiv begleitet, die Texte akribisch durchgesehen und, natürlich, viele Fehler und einige Unverständlichkeiten gefunden.
Zu diesem Einführungstext wird es ein Companion-Text geben, der die gesellschaftlichen und bildungspolitischen Aspekte des Quanten-Computing sowie dessen erwartete Möglichkeiten beleuchtet.
Kontakte
Prof. Dr. Ulrich Trottenberg: ulrich.trottenberg@interscience.de
Dr. Bernhard Thomas: bernhard.thomas@interscience.de
Q1 Etwas ist anders! - Qubit-Algorithmen
Muss ich Quantenphysik kennen, oder verstehen, wie Quantencomputer funktionieren, um mich mit sog. Quanten-Algorithmen zu beschäftigen?
Sicher nicht! Lass uns deshalb lieber von Qubit-Algorithmen, oder kurz Q-Algorithmen sprechen. Die Idee der Qubit-Algorithmen gab es schon, bevor die ersten Quantencomputer nutzbar wurden.
Nicht anders als bei den Bit-Algorithmen, den herkömmlichen Algorithmen, die für "normale" Computer programmiert werden. Auch hier verstehen die Wenigsten die zugrunde liegende Physik und viele auch nicht, wie normale Computer funktionieren. Hauptsache, man kann spielen, chatten, Musik hören - ja, und manchmal sogar programmieren.
Allerdings - etwas ist anders bei Q-Algorithmen. Was darauf zurückzuführen ist, dass irgendwo doch die Quantenphysik schon im Hinterkopf war, als Qubits und Qubit-Algorithmen "erfunden" wurden. Das wollen wir hier heraus finden.
Und es ist echt spannend, dass man heute reale, programmierbare Quantencomputer im Internet (als Cloud Service) frei verwenden kann, z.B. von IBM oder Google. Es ist schon ein etwas anderes Gefühl, ein eigenes kleines Q-Programm auf einem realen Q-Computer laufen zu lassen. Einfacher geht es übrigens mit Q-Computer-Simulatoren, also "Modellen" von Quantencomputern, die auf normalen Computern laufen und so tun, als wären sie QCs. Zum Ausprobieren von Q-Algorithmen perfekt.
Es wird heutzutage in den Medien viel Wunderliches über QCs und Qubit-Algorithmen geschrieben. Wie super-schnell sie sind - genauer, in Zukunft sein werden, welche geheimnisvollen Objekte Qubits sind, die gleichzeitig verschiedene Zustände haben können. Dann ist da von "Schrödingers Katze" die Rede, die gleichzeitig tot und lebendig sein soll - also wohl ein Zombie? (Jedenfalls solange, bis man nachschaut - dann ist sie entweder tot oder lebendig!) Und dass ein Quantencomputer daher doppelt so schnell Lösungen errechnet, wenn man nur ein Qubit hinzufügt. Es ist von der "Supremacy" von Quantencomputern die Rede, ein Wort, das ausdrücken soll, dass wir bald QCs haben werden, die - bei bestimmten Rechnungen - schneller sein werden als der schnellste Supercomputer. Und damit z.B. die stärksten heute verwendeten Verschlüsselungen im Nu knacken können.
Wenn wir uns mit Bits und Qubits und Qubit-Algorithmen näher beschäftigen, werden wir sehen, was davon zu halten ist und was dahinter steckt. Wenn man es selbst ausprobiert hat, wird man den Zauber schon verstehen. Wenn man die Katze streichelt, merkt man schon, wie lebendig sie ist.
Als nächstes wollen wir sehen, was ein Qubit bedeutet - oder wir schauen uns erst einmal ein einfaches Beispiel eines Q-Algorithmus an, um einen Eindruck zu bekommen, aber ohne es schon verstehen zu müssen. Am liebsten beides gleichzeitig? Mal sehen, wie die Entscheidung ausfällt.
Fortsetzung folgt - Stay tuned
Übrigens, wer Lust hat, kann Fragen, Ideen, Kommentare oder Diskussionen direkt ins Kommentarfeld unter dem Blog schreiben.
Und hier geht's weiter.
Q2 Etwas ist anders! - Hello Qubit World
Schauen wir uns also als erstes einmal an, wie so ein Qubit-Algorithmus aussieht - auch ohne den schon zu verstehen.
Bekanntlich ist in der Welt der Informatiker, Programmierer, Hacker das erste, was man ausprobiert bei einem neuen System oder einer neuen Programmiersprache, ein "Hello World" zu erzeugen. Das allgemein anerkannte "Hello World" für Quantencomputer sieht allerdings schon etwas ungewöhnlich aus. Es liefert auch nicht die Grußformel, sondern ist nur so etwas wie das einfachste Qubit-Programm. (Natürlich kann man das Ergebnis daraus in der "normalen" Programmierwelt in ein "Hello World" umwandeln.) Wir werden sehen.
Und so sieht es aus, das "Hello World" der Qubit-Welt:
Sieht eher aus wie ein Ausschnitt aus einer Partitur moderner Musik? Der Vergleich ist gar nicht so unpassend. Dieser Ausschnitt "orchestriert" quasi die "Instrumente" eines Quantencomputers, die Qubits.
Am liebsten würde man das Bild sofort erklärt bekommen, aber das heben wir uns für später auf. Man sieht erst mal, ein Q-Algorithmus wird ganz anders dargestellt als üblich. Und dies ist eine einfache Möglichkeit einen Q-Algorithmus als Qubit-Programm grafisch zu beschreiben. (Das ist so ähnlich wie bei Scratch oder Roberta, wo man ein Programm visuell aus einzelnene Bausteinen zusammensetzen kann.) Natürlich kann man statt in der grafischen Form einen Q-Algorithmus auch in Worten beschreiben, wobei man aber sorgfältig mit der Sprache umgehen muss. Oder durch eine Programmiersprache, z.B. Python. Wir probieren das nachher mal.
Versuchen wir mal zu erraten, was die Grafik bedeutet, quasi als Partitur: Es gibt offenbar 2 Instrumente, q1 und q2. Die haben ihre eigene "Linie", auf denen etwas passiert. Klar, das sollen zwei Qubits sein - wobei wir erst in einem späteren Blog erklären, was Qubits sein sollen. Auf den Linien geschieht etwas, nacheinander, mit den jeweiligen Qubits. Was auch immer H macht, es macht es nur mit q1. Danach kommt etwas, dass offenbar q1 und q2 zusammen betrifft.
Am Ende jeder Qubit-Zeile steht eine Art Anzeige-Symbol, wie bei einem Messgerät, mit einem Pfeil nach unten auf die Doppel-Linie C. Tatsächlich, hier wird ein Qubit "gemessen". Und das Messergebnis wird an die C-Linie übertragen. Das "C" steht übrigens für "classical" - nein, nicht "klassische Musik", sondern "klassiches Bit", im Gegensatz zum Quanten-Bit oder Qubit. Danach kommt nichts mehr, es ist Schluß, das "Musikstück" zuende.
Was bedeuten die Zahlen unten auf der C-Linie? Das ist einfach zu erraten: die 2 besagt, dass C die "Messwerte" von 2 Qubits aufnimmt. Die 0, klar, steht für: "Hier kommt der Messwert von Qubit q0." Und die 1 für Messwert von q1 - falls es in einer größeren "Partitur" mal unübersichtlich werden sollte. Und da das C für "classical bit" steht, kann man schon schließen, dass die Messergebnisse herkömmliche Bits sind.
Jetzt wissen wir, was die Teile bedeuten, aber immer noch nicht, was der ganze Qubit-Schaltkreis macht (so nennt man das Gebilde in Anlehnung an herkömmliche elektronische Schaltkreise).
Das liegt daran, dass wir nicht wissen was die beiden blauen Symbole machen. Mal sehen, ob wir das auch noch verstehen können, z.B. indem wir den Hello Qubit World Algorithmus in normaler Sprache formulieren.
Aber jetzt ist es erst mal genug. Pause. Dann weiter lesen.
Cliff-Hanger - Stay tuned
Und hier geht's weiter.