iX Special 2021
S. 130
Quantenprogrammierung
Ökotop

Googles Quantum AI Framework Cirq

In Form gebracht

Timo Eckstein, Prof. Dr. Michael J. Hartmann, Michael Streif

Ursprünglich für die eigenen Quanten­pro­zessoren wie Sycamore hat Google die Python-­Library Cirq entwickelt. Inzwischen liefert sie Erweiterungen für die unter­schiedlichsten Anwendungen und spezifische Anpassung an Hardware und Simulatoren.

Möglicherweise übertreffen Quantencomputer klassische Rechner bald auch in praxisrelevanten Anwendungen. Derzeit werden erste Durchbrüche für natürliche Quantensysteme erzielt, die sich direkt eins zu eins als Qubits darstellen lassen und keine aufwendigen Basistransformationen benötigen. Die Implementierung von Quantenfehlerkorrektur hingegen, die beliebig lange Gattersequenzen erlaubt, ist voraussichtlich erst in einer Dekade verfügbar (siehe Artikel „Unumgänglich“ auf Seite 32). Aus diesem Grund heißt der aktuelle Entwicklungsstand NISQ-Ära (Noisy Intermediate Scale Quantum Computer). Eingeschränkt wird die Leistungsfähigkeit heutiger Quantenrechner durch das Verhältnis von Gatter- und Kohärenzzeiten sowie durch Read-­out- und Ein-Qubit-Fehler. Entscheidendere Limitationen ergeben sich aber aus der Konduktivität zwischen den Qubits und aus Zwei-Qubit-Gatter-Fehlern. Bei beidem kann Googles Sycamore-Chip seine Vorteile ausspielen, weshalb er in der Quantenphysik und -chemie ebenso zum Einsatz kommt wie bei Optimierungsproblemen (siehe Artikel „Kaum verschränkt“ auf Seite 44).

Googles 54-Qubit-Quantumcomputing-­Plattform Sycamore kann für Berechnungen in der Quantenphysik, in der Quantenchemie und bei Optimierungsaufgaben eingesetzt werden (Abb. 1).
Google

Die Software für Googles Hardware ist Cirq. Der Artikel gibt einen Einblick in die Cirq-Syntaxmechanik und den Funktionsumfang. An einem Beispiel erläutert er die Grundbausteine und die verschiedenen Möglichkeiten, einen Quantenalgorithmus entweder zu simulieren oder für eine bestimmte Hardware kompatibel zu machen und auf dieser laufen zu lassen. Zum Abschluss fließen diese verschiedenen Quantencomputing-Bausteine zusammen und die Implementierung eines variationellen NISQ-Algorithmus vermittelt einen praxisnahen Eindruck von Cirq.

Die Python-Bibliothek Cirq ist unter der Apache-2.0-­Lizenz verfügbar und lässt sich mit dem Python-Paketmanager in­stallieren: pip install cirq. Als Python-Paket profitiert Cirq von der Fülle der Python-Werkzeuge wie numpy, scipy oder matplotlib. Der Code in Listing 1 generiert nach dem Cirq-Im­port zunächst ein Qubit-Objekt vom Typ cirq.GridQubit, das sich an der Architektur supraleitender zweidimensionaler Quantenprozessoren orientiert. Als Alternativen stehen cirq.LineQubit für Ionenfallen-QPUs oder cirq.NamedQubit für Alice und Bob in der Quanteninformationstheorie zur Verfügung.

Erste Fingerübungen

Im nächsten Schritt bekommt das initialisierte Qubit wie bei digitalen Quantencomputern üblich Rechenanweisungen in Form von Quantenschaltkreisen zugewiesen. In diesem Fall transformiert ein Hadamard-Gatter (H) das Qubit aus dem Basiszustand |0⟩ in die Superposition

Den finalen Zustandsvektor berechnet simulator.simulate(circuit). Das Ergebnis hieße dann beispielsweise wf_result: 0.707|0⟩ + 0.707|1⟩. In der Realität hat man jedoch keinen Zugriff auf den Zustandsvektor, sondern erhält pro QPU-­Abfrage, also pro Messung, lediglich eine mögliche Realisierung mit der Wahrscheinlichkeit des absoluten Betrags des Koeffizienten, also entweder |0⟩ oder |1⟩ mit einer Wahrscheinlichkeitsver­teilung von 1 : 1. Ersetzt man simulate() durch run(), fügt eine Messoperation hinzu und gibt die Zahl der gewünschten Messungen mit 10 an, lautet das Ergebnis etwa sample_result: m:1100110110.

In diesem Beispiel nehmen die Qubits die Werte |0⟩ und |1⟩ mit der relativen Häufigkeit von 4 : 6 bei 10 Messungen an. Das verdeutlicht, dass es bereits mit fehlerfreien Qubits aufwendig sein kann, die tatsächlichen Wahrscheinlichkeiten und Zustandsvektorkoeffizienten zu erhalten, um beispielsweise damit einen Energieerwartungswert zu berechnen. Für eine bessere Abschätzung sind mehr Messungen und geschicktere statistische Werkzeuge wie der bayessche Ansatz nötig.

Kommentieren