Ich werde veranschaulichen, wie man Operationen mit logischen Operationen an den Qubits und mit Gitteroperationen für Zwei-Qubit-Operationen ausführen kann.
In den folgenden Diagrammen sind alle 'Punkte' Daten-Qubits: Mess-Qubits werden weggelassen, um die Grundprinzipien klarer zu demonstrieren. Die Mess-Qubits dienen dazu, wenn Sie Stabilisatormessungen durchführen, und sind immer nur an Stabilisator-Messungen beteiligt. In der Geschichte geht es also darum, was Sie mit den Daten-Qubits tun - einschließlich der Stabilisator-Messungen, die Sie an den Daten-Qubits durchführen.
Oberflächencodes und logische Single-Qubit-Pauli-Operationen
Man kann Fragmente der Ebene verwenden, um Qubits zu speichern. Das Bild unten zeigt vier Qubits, die als Teil eines größeren Gitters codiert sind: Die hellen Punkte mit schwarzen Umrissen sind Qubits, die nicht an den codierten Qubits beteiligt sind und sich im Prinzip in einem beliebigen Zustand befinden können, der von den anderen entwirrt ist.
In jedem dieser Fragmente wird das Qubit durch die Stabilisatorrelationen definiert, die (idealerweise ohne Fehler) zwischen den Qubits gelten. Bei Oberflächencodes mit den hier dargestellten Arten von Randbedingungen sind dies entweder 3-Qubit- X- oder -Z- Stabilisatoren um die Grenze und entweder 4-Qubit- X- oder -Z- Stabilisatoren in der Masse oder im Hauptteil des Codes. Das Muster dieser Stabilisatoren ist unten dargestellt. Beachten Sie, dass jeder X- Stabilisator, der sich mit einem Z- Stabilisator überlappt , dies bei zwei Qubits tut, so dass sie miteinander pendeln. (Entschuldigung für die Bildgröße: Ich kann es nicht schaffen, dass es in einer angemessenen Größe angezeigt wird.)
Beachten Sie, dass bei Verwendung der Regelmäßigkeit dieser Stabilisatoren das Oberflächencodefragment nicht quadratisch (oder im Prinzip sogar rechteckig) sein muss. * Dies wird später wichtig.
Es gibt eine Reihe von (Tensorprodukt-) Pauli-Operationen, die mit all diesen Stabilisatoren pendeln. Diese können verwendet werden, um logische Pauli-Operatoren zu definieren , die beschreiben, wie Sie auf die logischen Qubits zugreifen und sie transformieren können . Beispielsweise pendelt ein Produkt von Z- Operatoren über eine beliebige Zeile von Grenze zu Grenze mit allen Stabilisatoren und kann als logischer Z- Operator angesehen werden. Ein Produkt von X- Operatoren über eine beliebige Spalte von Grenze zu Grenze kann auf ähnliche Weise als logischer X- Operator angesehen werden:
Es spielt keine Rolle, welche Zeile oder welche Spalte Sie verwenden: Dies folgt aus der Tatsache, dass ein Produkt aus zwei beliebigen Zeilen von Z- Operatoren oder aus zwei beliebigen Spalten von X- Operatoren als Produkt von Stabilisatoren generiert werden kann und daher eine realisiert Identitätsoperation auf dem codierten Qubit (da die Stabilisatorgeneratoren selbst Operatoren sind, die die Identitätsoperation per Definition auf einem codierten Qubit-Zustand ausführen). Also: Wenn Sie eine X- Operation auf ein codiertes Qubit anwenden möchten , besteht eine Möglichkeit darin, eine solche logische X- Operation anzuwenden , indem Sie X realisieren Operatoren auf jedem Qubit in einer Spalte, die zwischen zwei Grenzen reicht. **
Logische Single-Qubit-Pauli-Messungen
Ein Vorteil des Denkens der codierten Qubits in Form von logischen Operatoren besteht darin, dass Sie auch bestimmen können, wie Sie eine "logische Messung" durchführen können - das heißt, eine Messung nicht nur (einiger) Qubits im Code, sondern auch der Daten, die sie codieren. Nehmen Sie zum Beispiel den obigen logischen X- Operator: Der Operator X ⊗ X ⊗ ... ⊗ X ist nicht nur einheitlich, sondern auch hermitisch, was bedeutet, dass es sich um eine beobachtbare Zahl handelt, die Sie messen können . (Die gleiche Idee wird natürlich immer mit den Stabilisatoren des Codes verwendet, die wir messen, um Fehler zu erkennen.) Dies bedeutet, dass es ausreicht, die logische X- Messung zu messen , um eine logische X- Messung zu realisieren X.beobachtbar. (Gleiches gilt für das beobachtbare logische Z , wenn Sie eine Standard-Basismessung für Ihr codiertes Qubit durchführen möchten. Alles, was ich unten sage, kann mit den entsprechenden Modifikationen auch auf logische Z- Messungen angewendet werden .)
Nun - das Messen des logischen X- Observablen ist nicht genau das Gleiche wie das Messen jedes dieser Einzel-Qubit- X- Operatoren nacheinander. Der Operator X ⊗ X ⊗ ... ⊗ X hat nur zwei Eigenwerte, +1 und −1, so dass die Messung dieses präzisen Operators nur zwei Ergebnisse haben kann, während die Messung jedes der n Qubits 2 n Ergebnisse hat. Wenn Sie jeden dieser Single-Qubit- X- Operatoren messen, bleiben Sie nicht im Code-Bereich: Wenn Sie Berechnungen für einen projizierten Zustand nach der Messung durchführen möchten, müssen Sie eine Menge Aufräumarbeiten durchführen, um den wiederherzustellen Qubit in einen ordnungsgemäß codierten Zustand.
Allerdings: Wenn es Ihnen nichts ausmacht, diese Aufräumarbeiten durchzuführen, oder wenn Sie nicht daran interessiert sind, mit dem Status nach der Messung zu arbeiten, können Sie die logische X- Messung simulieren, indem Sie diese Einzel-Qubit-Messungen durchführen und +1 und erhalten −1 Ergebnisse und dann Berechnung ihrer Produkte, um das Ergebnis der Messung von X ⊗ X ⊗ ... ⊗ X "zu erhalten". (Genauer gesagt: Das Messen all dieser Single-Qubit- X- Operatoren stört keinen Zustand, der sich aus einer Messung des Tensorproduktoperators X ⊗ X ⊗ ... ⊗ X ergeben würdeund das Produkt dieser Einzel-Qubit-Messungen müsste ein konsistentes Ergebnis mit dem Tensorproduktoperator X ⊗ X ⊗ ... ⊗ X liefern , damit wir diese kompliziertere Messung simulieren können, wenn wir dies nicht tun. Beachten Sie, dass alle Qubits als Nebeneffekt auf konjugierte Basiszustände projiziert werden.)
Gitterchirurgie für logische Zwei-Qubit-Operationen
Zur Realisierung eines Zwei-Qubit - Betriebes können Sie eine Technik , die als bekannt verwenden Gitter Chirurgie , wobei Sie ‚Merge‘ und ‚split‘ verschiedenes Patches der 2D - Gitter - Operationen zwischen diesen Flecken zu erkennen (siehe [ arXiv: 1111,4022 ], [ arXiv: 1612.07330 ] oder [ arXiv: 1704.08670 ] für eine vollständige Beschreibung dieser Operationen. Offenlegung: Ich bin Autor des dritten dieser Artikel.) Dies kann zwischen zwei benachbarten Flecken des planaren Gitters (wie oben dargestellt) durch Vorbereitung dieser realisiert werden "unbeteiligte" Zeilen und Spalten von Qubits in einem geeigneten Zustand und dann Messen von Stabilisatoren, die Sie zuvor nicht gemessen habenum den Speicher auf ein größeres System zu erweitern. (In der folgenden Abbildung ist der horizontale Abstand zwischen den Codesegmenten und der Qubitspalte in den Zuständen | 0⟩ für die Wirkung übertrieben.)
Dies wirkt sich nicht einheitlich auf die logischen Operatoren des Systems aus und wird am häufigsten verwendet (siehe z. B. [ arXiv: 1612.07330 ]), um eine kohärente X ⊗ X- oder Z ⊗ Z- Messung zu realisieren, die zur Realisierung zusammengesetzt werden kann eine CNOT-Operation [arXiv: 1612.07330, Fig. 1 (b)]:
Auf diese Weise können Sie eine CNOT-Operation zwischen einem Paar codierter Qubits realisieren. ***
Fußnoten
* Sie können auch geringfügige Modifikationen des regulären Musters von Stabilisatoren verwenden, wie Letinsky [ arXiv: 1808.02892 ] zeigt, um vielseitigere planare Oberflächendarstellungen von codierten Qubits zu erzielen.
** In der Praxis würden Sie nicht explizit (unvollständige Einzel-Qubit-) Operationen ausführen, sondern die Tatsache ausnutzen, dass der Referenzrahmen für die codierten Qubits einer ist, den Sie gemäß Konvention festlegen und aktualisieren (oder "transformieren"). der Referenzrahmen und nicht der Zustand selbst, wenn Sie eine Pauli-Operation realisieren möchten. Dies ist auch der clevere Weg, um Fehler zu korrigieren: Fehler nicht als "Fehler" zu behandeln, die "behoben" werden müssen, sondern als unkontrollierte, aber beobachtbare Abweichung in Ihrem Referenzrahmen infolge der Interaktion mit der Umgebung. Sie hoffen dann, dass diese Drift langsam genug ist, um sie genau zu verfolgen und die Änderung des Referenzrahmens bei Ihrer Berechnung zu kompensieren. Insbesondere im Zusammenhang mit Tracking-Fehlern,Pauli-Rahmen , und seine Aufgabe besteht darin, den Referenzrahmen in Bezug auf die Pauli-Operationen zu beschreiben, die erforderlich wären, um das System in den Zustand zu versetzen, der normalerweise durch einen fehlerfreien Fehlerkorrekturcode beschrieben wird.
*** Viele Autoren würden diese Konstruktion als den Punkt der Gitterchirurgie beschreiben, und es ist sicherlich die ursprüngliche konkrete Anwendung davon, die im ursprünglichen Artikel beschrieben wurde [ arXiv: 1111.4022 ]. Grundsätzlich ist es möglich, aufwendigere Operationen unter Verwendung von Splits und Merges durchzuführen, indem die Merges und Splits als eigenständige primitive Operationen und nicht nur als Komponenten eines CNOT behandelt werden und vielseitigere (aber nicht besonders schaltungsähnliche) Transformationen verwendet werden - Dies ist im Wesentlichen der Punkt meines Artikels mit Dom Horsman [ arXiv: 1704.08670 ], der die Möglichkeit eröffnet, dass der ZX-Kalkül (eine etwas heterodoxe Darstellung der Quantenberechnung) für Oberflächencode-Speicher direkt praktisch nützlich ist.