Zum Hauptinhalt springen
Dieses Projekt befindet sich in der Beta-Phase. Einen Fehler gefunden? GitHub Issue erstellen. Frage oder Idee? In Discussions fragen — wir freuen uns über dein Feedback!
Wie ist die Übersetzungsqualität auf dieser Seite?

Dressed Boxes

Physikalische Rauschmechanismen, die bei der Ausführung von Quantenschaltkreisen auftreten, sind kontextabhängig. Wenn Operationen gleichzeitig auf disjunkten Qubit-Mengen angewendet werden, kann sich das Rauschprofil der Gesamtoperation von den Rauschprofilen der Einzelteile unterscheiden, wenn diese isoliert angewendet würden. Ebenso gilt für Operationen, die idealerweise auf denselben Qubits kommutieren: Das den einzelnen Operationen zugeordnete Rauschprofil kommutiert möglicherweise nicht und könnte sich ganz anders darstellen, wenn die Reihenfolge der Operationen geändert würde. Daher müssen Protokolle zur Unterdrückung, Minderung und Korrektur von Rauschen den Kontext kennen, in dem es entsteht.

Samplomatic verwendet Box-Anweisungen, um über Sammlungen von Circuit-Operationen zu argumentieren, die als Operationen mit einem stabilen Rauschkontext behandelt werden sollen, und nutzt Annotationen an Boxen, damit Nutzende diese Absicht deklarieren und konfigurieren können. Jede Box ist ein Scope, der eine Menge von Qubits, die auf diese Qubits wirkenden Operationen und eine Liste von Annotationen besitzt. Samplomatic-Annotationen legen Direktiven und Dressings fest. Direktiven bestimmen, was mit der Box geschehen soll, zum Beispiel Twirling der Box. Dressings sind Gruppen parametrisierter Gates, die auf der linken oder rechten Seite der Box hinzugefügt werden, zum Beispiel eine Schicht von Einzel-Qubit-Gates. Die Gates in einem Dressing enthalten Gates aus der Box sowie Operationen, die zur Umsetzung von Direktiven nötig sind, etwa die folgenden:

  • Gates in der Box, die mit den parametrisierten Gates kompatibel sind und auf derselben Seite liegen.

  • Twirling-Gates, die aus einer Menge gezogen werden, um die Box zu randomisieren.

  • Noise-Injection-Gates, die aus einer Pauli-Lindblad-Map gezogen werden.

  • Vom Nutzer angegebene Basiswechsel-Gates.

Beachte, dass Direktiven die Dressings anderer Boxen verändern können.

Beispiel​

Angenommen, wir möchten den folgenden Circuit twirlen, indem wir vor und nach den parallelen verschränkenden Gates zufällige Pauli-Gates einfügen, die den logischen Inhalt des Circuits nicht verändern, wohl aber das effektive Rauschmodell.

../_images/undressed_pauli.drawio.png

Circuit für das Pauli-Twirling.

Dies wird erreicht, indem der Circuit in Boxen stratifiziert und Twirl-Annotationen hinzugefügt werden.

../_images/dressed_pauli_twirl.drawio.png

Circuit mit Pauli-Twirling-Direktiven. Das Symbol @ dient zur Angabe von Direktiven; das Dressing liegt standardmäßig links.

Jede Dressed Box enthält eine Schicht von Einzel-Qubit-Gates und eine Schicht verschränkender Zwei-Qubit-Gates auf disjunkten Qubit-Paaren. Die Schicht der verschränkenden Gates ist von Schichten zufälliger Pauli-Gates umgeben, und zwar so, dass die logische Wirkung der Box unverändert bleibt. Diese zufälligen Pauli-Schichten sind virtuell, genauso wie ein virtuelles Z-Gate. Sie fügen dem Circuit keine Operationen hinzu, sondern wirken als Direktive, die verändert, wie benachbarte Einzel-Qubit-Gates implementiert werden.

../_images/pauli_twirl.drawio.png

Circuit mit Dressings und Gates aus Direktiven. Die Dressings sind die gestrichelten Boxen. Durch Pfeile verbundene Pauli-Schichten heben sich gegenseitig auf. Die letzte Pauli-Schicht wird als Bit-Flips auf die Messergebnisse angewendet.

Die zufällige Pauli-Schicht zwischen den verschränkenden Gates und den Einzel-Qubit-Gates wird in die Schicht der Einzel-Qubit-Gates komponiert und in deren Dressing implementiert. Die andere zufällige Pauli-Schicht wird in das Dressing der nächsten Dressed Box komponiert.

Zusammengefasst: Die linke (oder rechte) Twirl-Direktive implementiert ein zufälliges Pauli im Dressing dieser Box und wendet das Pauli, das es rückgängig macht, im Dressing der nächsten (oder vorherigen) Box an. Die Direktiven für Noise-Injection und Basiswechsel funktionieren analog.

Circuit-Randomisierung mit virtuellen Gates​

Samplomatic nutzt das Framework der virtuellen Gates, um über Circuits mit Dressed Boxes zu argumentieren. Konzeptionell, und wie in einer durch den build()-Prozess erzeugten Samplex-Instanz umgesetzt, werden virtuelle Gates an der dem Dressing gegenüberliegenden Grenze der Box erzeugt. Diese virtuellen Gates werden auf vorgeschriebene Weise durch den Circuit bewegt und müssen in ein Dressing komponiert werden. Wenn alle virtuellen Gates in ein Dressing komponiert werden können, lassen sich Randomisierungen des Circuits prozedural aufbauen.

../_images/dressed_box.drawio.png

Circuit mit Twirl-, Basiswechsel- und Inject-Noise-Direktiven.

Gates auf der Seite des Dressings, die mit der Template-Parametrisierung des Dressings kompatibel sind, können darin komponiert werden, was die Anzahl der physikalischen Gates reduziert. Diese heißen einfache Gates. Der Rest der Box heißt schwierig und wird unverändert implementiert.

../_images/dressed_box_uncollected.drawio.png

Beispiele für Circuits mit hängenden virtuellen Gates. Die virtuellen Gates auf der gegenüberliegenden Seite des Dressings können nirgends implementiert werden.

../_images/dressed_box_collected.drawio.png

Beispiele für Circuits, in denen alle virtuellen Gates in Dressings komponiert werden. Bei Messungen werden Pauli-Gates komponiert, indem der dadurch verursachte Bitflip berücksichtigt wird.

../_images/dressed_box_mixed_collect.drawio.png

Komplexes Beispiel, in dem alle virtuellen Gates gesammelt werden. Von einer Box erzeugte virtuelle Gates können in verschiedene Dressings komponiert werden.

Dadurch sind Konstruktionen möglich, bei denen Dressed Boxes nicht dieselbe Breite haben müssen.