In der verbesserten Simulation von Stabilisatorschaltungen von Aaronson und Gottesman wird erklärt, wie eine Tabelle berechnet wird, in der beschrieben wird, auf welche Pauli-Tensorprodukte die X- und Z-Werte jedes Qubits abgebildet werden, wenn eine Clifford-Schaltung auf sie einwirkt.
Hier als Beispiel Clifford Schaltung:
0: -------@-----------X---
| |
1: ---@---|---@---@---@---
| | | |
2: ---|---|---@---|-------
| | |
3: ---@---@-------Y-------
Und die Tabelle, die beschreibt, wie es auf die X- und Z-Observablen jedes Qubits wirkt:
+---------------------+-
| 0 1 2 3 |
+------+---------------------+-
| 0 | XZ X_ __ Z_ |
| 1 | ZZ YZ Z_ ZZ |
| 2 | __ Z_ XZ __ |
| 3 | Z_ X_ __ XZ |
+------+---------------------+-
| sign | ++ ++ ++ ++ |
+------+---------------------+-
Jede Spalte der Tabelle beschreibt, wie die Schaltung auf das X-Observable (linke Hälfte der Spalte) und das Z-Observable (rechte Hälfte der Spalte) jedes Qubits wirkt. Zum Beispiel ist die linke Seite von Spalte 3 Z, Z, _, X, was bedeutet, dass eine X3-Operation (Pauli X auf Qubit 3) auf der rechten Seite der Schaltung einer Z1 * Z2 * X4-Operation auf der linken Seite entspricht Seite der Schaltung. Die Zeile "Vorzeichen" gibt das Vorzeichen des Produkts an. Dies ist wichtig, wenn Sie eine Messung simulieren möchten (sie gibt an, ob das Ergebnis invertiert werden soll oder nicht).
Sie können die Tabelle auch für die Umkehrung einer Schaltung berechnen. In dem Beispielfall, den ich gegeben habe, lautet die umgekehrte Tabelle wie folgt:
+---------------------+-
| 0 1 2 3 |
+------+---------------------+-
| 0 | XZ Y_ __ Z_ |
| 1 | _Z YZ Z_ _Z |
| 2 | __ Z_ XZ __ |
| 3 | Z_ Y_ __ XZ |
+------+---------------------+-
| sign | ++ -+ ++ ++ |
+------+---------------------+-
Die Tabellen sehen fast gleich aus, wenn Sie ihre Zeilen und Spalten transponieren. Die Einträge sind jedoch nicht genau identisch. Zusätzlich zum Transponieren müssen Sie die Buchstaben in Bits ( _
= 00, X
= 01, Z
= 10, Y
= 11) codieren , dann die mittleren Bits austauschen und dann decodieren. Zum Beispiel codiert ZZ in 1010, das in 1100 wechselt, das in Y_ decodiert.
Die Frage, die ich habe, ist: Gibt es auch eine einfache Regel für die Berechnung der Vorzeichen der inversen Tabelle?
Derzeit invertiere ich diese Tabellen, indem ich sie in Schaltkreise zerlege, die Schaltkreise invertiere und sie dann wieder miteinander multipliziere. Es ist extrem ineffizient im Vergleich zu Transponieren + Ersetzen, aber wenn ich Transponieren + Ersetzen verwenden möchte, brauche ich eine Vorzeichenregel.