Immagino che quello che stai cercando sia il seguente circuito. Qui, b1,b2,b3,b4∈{0,1} e ⊕ è l'aggiunta modulo 2 .
Qui, il quinto qubit viene utilizzato come qubit ausiliario o ancilla . Inizia da |0⟩ e finisce in |0⟩ quando viene applicata al circuito.
Vorrei approfondire come funziona questo circuito. L'idea è di verificare innanzitutto se i primi due qubit sono nello stato |1⟩ . Questo può essere fatto usando una singola porta Toffoli e il risultato è memorizzato nel qubit ausiliario. Ora, il problema si riduce a capovolgere il qubit 4 , ogni volta che i qubit 3 e il qubit ausiliario sono in |1⟩ . Ciò può anche essere ottenuto utilizzando un'applicazione di una porta Toffoli, ovvero quella centrale nel circuito mostrato sopra. Infine, l'ultimo gate di Toffoli serve a non computare il risultato temporaneo che abbiamo archiviato nel qubit ausiliario, in modo tale che lo stato di questo qubit ritorni a |0⟩ dopo l'applicazione del circuito.
Nella sezione commenti, è emersa la questione se sia possibile implementare un tale circuito usando solo porte Toffoli, senza usare qubit ausiliari. A questa domanda si può rispondere negativamente, come mostrerò qui.
Vogliamo implementare il CCCNOT -gate, che agisce su quattro qubit. Possiamo definire la seguente matrice (la rappresentazione matriciale del Pauli- X -gate):
X=[0110]
Inoltre, indichiamo la N matrice identità -dimensional da IN . Ora, osserviamo che la rappresentazione matriciale della CCCNOT -gate, che agisce su quattro qubit, è data dalla seguente matrice 16×16 :
CCCNOT=[I1400X]
Quindi, possiamo determinarne il determinante:
det(CCCNOT)=−1
Ora consideriamo la rappresentazione matriciale della porta di Toffoli, agendo sui primi tre qubit di unsistemaa4qubit. La sua rappresentazione matrice è scritta come (dove abbiamo usato il prodotto di matrici di Kronecker):
Toffoli⊗I2=[I600X]⊗I2=[I1200X⊗I2]=⎡⎣⎢I120000I20I20⎤⎦⎥
I2)=1
Calcolo dei rendimenti determinanti:
det(Toffoli⊗I2)=1
Naturalmente le porte di Toffoli possono anche agire su diversi qubit. Supponiamo di lasciare agire il gate di Toffoli sul primo, secondo e quarto qubit, dove il quarto qubit è il qubit target. Quindi otteniamo la nuova rappresentazione matriciale da quella mostrata sopra scambiando le colonne corrispondenti agli stati che differiscono solo nel terzo e quarto qubit, cioè |0001⟩ con |0010⟩ , |0101⟩ con |0110⟩ , ecc La cosa importante da notare qui, è che il numero di scambi di colonne è pari, e quindi che il determinante rimane invariato. Come possiamo scrivere ogni permutazione dei qubit come una sequenza di permutazioni consecutive di just2 qubit (ovveroS4 è generato dalle trasposizioni inS4 ), troviamo che per tutte le porte di Toffoli, applicate a qualsiasi combinazione di qubit di controllo e target, la sua rappresentazione matriciale ha il determinante1 .
L'ultima cosa da notare è che il determinante commuta con la moltiplicazione della matrice, cioè det(AB)=det(A)det(B) , per due matriciA eB compatibili con la moltiplicazione di matrici. Quindi, ora diventa evidente che l'applicazione di più porte Toffoli in sequenza non crea mai un circuito la cui rappresentazione matriciale ha un determinante diverso da1 , il che implica in particolare che laCCCNOT4
La domanda ovvia, ora, è cosa cambia quando permettiamo un qubit ausiliario. Troviamo la risposta quando scriviamo l'azione del CCCNOT su un sistema a 5 qubit:
CCCNOT⊗I2=[I1400X]⊗I2=⎡⎣⎢I280000I20I20⎤⎦⎥
det(CCCNOT⊗I2)=1
Quindi, il determinante delCCCNOT -gate che agisce su5 qubit è1 , anziché−1 . Questo è il motivo per cui l'argomento precedente non è valido per5 qubit, come già sapevamo a causa del circuito esplicitamente costruito richiesto dall'OP.