In Improved Simulation of Stabilizer Circuits di Aaronson e Gottesman, viene spiegato come calcolare una tabella che descrive a quali prodotti del tensore di Pauli i X e Z osservabili di ogni qubit vengono mappati mentre un circuito di Clifford agisce su di essi.
Ecco come esempio il circuito di Clifford:
0: -------@-----------X---
| |
1: ---@---|---@---@---@---
| | | |
2: ---|---|---@---|-------
| | |
3: ---@---@-------Y-------
E la tabella che descrive come agisce sugli osservabili X e Z di ogni qubit:
+---------------------+-
| 0 1 2 3 |
+------+---------------------+-
| 0 | XZ X_ __ Z_ |
| 1 | ZZ YZ Z_ ZZ |
| 2 | __ Z_ XZ __ |
| 3 | Z_ X_ __ XZ |
+------+---------------------+-
| sign | ++ ++ ++ ++ |
+------+---------------------+-
Ogni colonna della tabella descrive come il circuito agisce sulla X osservabile (metà sinistra della colonna) e sulla Z osservabile (metà destra della colonna) di ciascun qubit. Ad esempio, il lato sinistro della colonna 3 è Z, Z, _, X che significa un'operazione X3 (Pauli X sul qubit 3) sul lato destro del circuito è equivalente a un'operazione Z1 * Z2 * X4 sulla mano sinistra lato del circuito. La riga 'segno' indica il segno del prodotto, che è importante se hai intenzione di simulare una misurazione (ti dice se invertire o meno il risultato).
Puoi anche calcolare la tabella per l'inverso di un circuito. Nel caso di esempio che ho fornito, la tabella inversa è questa:
+---------------------+-
| 0 1 2 3 |
+------+---------------------+-
| 0 | XZ Y_ __ Z_ |
| 1 | _Z YZ Z_ _Z |
| 2 | __ Z_ XZ __ |
| 3 | Z_ Y_ __ XZ |
+------+---------------------+-
| sign | ++ -+ ++ ++ |
+------+---------------------+-
Le tabelle sembrano quasi uguali se trasponi le loro righe e colonne. Ma le voci non sono esattamente identiche. Oltre alla trasposizione, devi codificare le lettere in bit ( _
= 00, X
= 01, Z
= 10, Y
= 11), quindi scambiare i bit centrali quindi decodificare. Ad esempio, ZZ codifica in 1010 che scambia in 1100 che decodifica in Y_.
La domanda che ho è: esiste anche una semplice regola per calcolare i segni della tabella inversa?
Attualmente sto invertendo queste tabelle decomporle in circuiti, invertendo i circuiti, quindi moltiplicandoli di nuovo insieme. È estremamente inefficiente rispetto a trasporre + sostituisci, ma se ho intenzione di usare trasponi + sostituisci ho bisogno di una regola di segno.