Implementazione di un cancello CCCNOT utilizzando solo porte Toffoli


10

Un gate CCCNOT è un gate reversibile a quattro bit che inverte il suo quarto bit se e solo se i primi tre bit sono tutti nello stato 1 .

Come implementare un gate CCCNOT usando le porte Toffoli? Supponiamo che i bit nell'area di lavoro inizino con un valore particolare, 0 o 1, a condizione che vengano restituiti a quel valore.


Usando solo porte Toffoli o Toffoli e CNOT sono un gioco equo?
user1271772

Sono ammessi solo cancelli Toffoli.
chuster

1
Quale parte di questa domanda è quantistica? Sembra che tu voglia scomporre un cancello reversibile classico (CCCNOT) in cancelli reversibili classici più piccoli (CCNOT).
user1271772

1
La domanda in sé non riguarda il calcolo quantistico, ma le porte sono importanti per i circuiti quantistici.
chuster,

Risposte:


8

Immagino che quello che stai cercando sia il seguente circuito. Qui, b1,b2,b3,b4{0,1} e è l'aggiunta modulo 2 .

inserisci qui la descrizione dell'immagine

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):
ToffoliI2=[I600X]I2=[I1200XI2]=[I120000I20I20]
I2)=1 Calcolo dei rendimenti determinanti:
det(ToffoliI2)=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:

CCCNOTI2=[I1400X]I2=[I280000I20I20]
det(CCCNOTI2)=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.


1
sarebbe utile una fonte o un metodo usato per derivare il circuito!
glS

1
Non conosco fonti che spieghino come progettare tali circuiti in modo completo. Le fonti che ho usato quando ho appreso sull'informatica quantistica erano il libro di Nielsen e Chuang e gli appunti delle lezioni che possono essere trovati qui: homepages.cwi.nl/~rdewolf/qcnotes.pdf , ma queste fonti non si concentrano specificamente sul design di circuiti quantistici.
Arriopolis,

2
Ho cercato di approfondire come funziona il circuito un po 'di più. Spero che questo aiuti a progettare circuiti simili a questo! :)
arriopolis,

È possibile senza ausiliari?
user1271772

1
Domanda interessante, ma io non la penso così. Ogni volta che si scrive la rappresentazione matriciale di una porta di Toffoli che agisce su un sistema a quattro qubit, il determinante di questa matrice è . Tuttavia, il determinante della rappresentazione matriciale della C C C N O T+1CCCNOT41CCCNOT+1
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.