Come derivare la matrice CNOT per un sistema a 3 qbit in cui i qbit di controllo e di destinazione non sono adiacenti?


15

In un sistema a tre qbit, è facile derivare l'operatore CNOT quando il qbit di controllo e di destinazione hanno un significato adiacente - basta tendere l'operatore CNOT a 2 bit con la matrice di identità nella posizione di significato del qbit intatto:

C10|ϕ2ϕ1ϕ0=(I2C10)|ϕ2ϕ1ϕ0

Tuttavia, non è ovvio come derivare l'operatore CNOT quando il controllo e i qbit target non sono adiacenti nel significato:

C20|ϕ2ϕ1ϕ0

Come si fa?


Risposte:


14

Per una presentazione dai primi principi, mi piace la risposta di Ryan O'Donnell . Ma per un trattamento algebrico di livello leggermente superiore, ecco come lo farei.

La caratteristica principale di un'operazione controllata , per qualsiasi U unitaria , è che (coerentemente) esegue un'operazione su alcuni qubit a seconda del valore di un singolo qubit. Il modo in cui possiamo scrivere esplicitamente algebricamente (con il controllo sul primo qubit) è: dove è una matrice identità della stessa dimensione come . Qui, e sono proiettori sugli stati eUU1 U | 0

CU=|00|1+|11|U
1U| 1 |00|| 0 | 1 |11||0|1 del qubit di controllo - ma non li stiamo usando qui come elementi di una misurazione, ma per descrivere l'effetto sugli altri qubit a seconda dell'uno o dell'altro sottospazio dello spazio degli stati del primo qubit.

Possiamo usarlo per derivare la matrice per il gate che esegue un'operazione su qubit 3, coerentemente condizionata sullo stato di qubit 1, pensando a questo come un controllo- operazione sui qubit 2 e 3: X( 1 2CX1,3XC X 1 , 3(12X)

CX1,3=|00|14+|11|(12X)=[140404(12X)]=[12020202021202020202X02020202X],
dove gli ultimi due sono rappresentazioni di matrici a blocchi per risparmiare spazio (e sanità mentale).

Meglio ancora: possiamo riconoscere che - a un certo livello matematico in cui ci permettiamo di renderci conto che l'ordine dei fattori tensoriali non deve essere in un ordine fisso - il controllo e l'obiettivo dell'operazione possono essere su due tensori e che possiamo compilare la descrizione dell'operatore su tutti gli altri qubit con . Ciò ci consentirebbe di passare direttamente alla rappresentazione C X 1 , 312C X 3 , 1

CX1,3=|00|control12uninvolved12target+|11|control12uninvolvedXtarget=[12020202021202020202020202020202]+[02020202020202020202X02020202X]
e ci permette anche di vedere immediatamente cosa fare se i ruoli di controllo e target sono invertiti: CX1,3=| 0
CX3,1=12target12uninvolved|00|control+Xtarget12uninvolved|11|control=[|00||00||00||00|]+[|11||11||11||11|]=[1000000000100000000001000000000100000100000000011000000000100000].
Ma soprattutto: se riesci a scrivere questi operatori algebricamente, puoi fare i primi passi per dispensare interamente con le matrici giganti, invece ragionando su questi operatori algebricamente usando espressioni come e C X 3 , 1 = 1 2CX1,3=|00|1212+|11|12XCX3,1=1212|00|+X12|11|. Ci sarà un limite a quanto puoi fare con questi, ovviamente - è improbabile che un semplice cambiamento nella rappresentazione renda un algoritmo quantico difficile risolvibile in modo efficiente, figuriamoci trattabile mediante calcolo manuale - ma puoi ragionare su circuiti semplici in modo molto più efficace usando queste espressioni che con gigantesche matrici spaziali.

Oh sì, ricordo i proiettori fin dall'inizio nel libro Mermin. I proiettori e l'aggiunta di matrici sono un modo per codificare la logica condizionale nelle matrici!
ahelwer,

"è improbabile che un semplice cambiamento nella rappresentazione renda un algoritmo quantico difficile risolvibile in modo efficiente" - che dire nel caso della rotazione degli stoppini?
Meowzz,

1
@meowzz: ogni tanto un tale cambio di notazione ti consente di fare un avanzamento concettuale e ti aiuta a risolvere i problemi più facilmente. Ma non spesso, e probabilmente non nel caso di questo particolare cambio di notazione, che è ragionevolmente noto. Per quanto riguarda il caso specifico della rotazione di Wick, tuttavia, la domanda che vorrei porre è quale progresso specifico ha reso possibile risolvere i problemi e per quali problemi è stato utile.
Niel de Beaudrap,

8

Questa è una buona domanda; è uno che i libri di testo sembrano sgattaiolare in giro. Ho raggiunto questa domanda esatta durante la preparazione di una lezione di calcolo quantistico un paio di giorni fa.

Per quanto ne so, non c'è modo di ottenere la matrice 8x8 desiderata usando il prodotto Kronecker notation for matrices. Tutto quello che puoi davvero dire è: la tua operazione di applicazione del CNOT a tre qubit, con il controllo che è il primo e l'obiettivo che è il terzo, ha i seguenti effetti:

|000|000

|001|001

|010|010

|011|011

|100|101

|101|100

|110|111

|111|110

e quindi è dato dalla seguente matrice:

U=[1000000001000000001000000001000000000100000010000000000100000010]

Questa matrice è in realtà né né . Non esiste una breve notazione basata sul prodotto Kronecker per questo; è semplicemente quello che è.I 2C N O T C N O TIUI2CNOTCNOTI2


1

Come idea generale, CNOT lancia l'obiettivo in base al controllo. Ho scelto di capovolgere il bersaglio se il controllo è , puoi anche sceglierlo . quindi qualsiasi stato generale multiparticellare . Ora scegli il tuo controllo e target, diciamo che sono il controllo e è il bersaglio. L'applicazione di CNOT su sarà solo (=[1 0]T)(=[0 1]T)|ϕ=|123....n1nithkth|ϕ

CNOT|ϕ=CNOT|12...i...k...n1n=|12...i...k...n1n

Per costruire la matrice di tale gate CNOT applichiamo ( matrice -Pauli) se l' stato è e applichiamo ( Identity) se l' stato è inattivo. Applichiamo queste matrici nella posizione , che è il nostro obiettivo. Matematicamente, σxxithI2×2ithkth

CNOT=[|1...i...k11...i...k1|σx|k+1...nk+1...n|+all permutations of states other then ith]+[|1...i...k11...i...k1|I|k+1...nk+1...n|+all permutations of states other then ith]

Nota state (target) viene escluso durante la creazione della matrice di permutazione e in position viene scritto l'operatore okthkthσxI

Prendi un esempio di cinque qubit in cui qubit è target e è controllo. Costruiamo la matrice di permutazione di . Prendo, se il controllo è capovolgi il bersaglio. Puoi prendere anche viceversa.2nd4thCNOT

CNOT=|11|σx|345345|+|11|σx|345345|+|11|σx|345345|+|11|σx|345345|+|11|σx|345345|+|11|σx|345345|+|11|σx|345345|+|11|σx|345345|+|11|I|345345|+|11|I|345345|+|11|I|345345|+|11|I|345345|+|11|I|345345|+|11|I|345345|+|11|I|345345|+|11|I|345345|

-2

prima scrivi la matrice CNOT⊗𝐼2, quindi cambia l'ordine di index2 e index3 con matlab. in questo modo, puoi fare qualsiasi numero di qubit.


Ciao! Potresti espandere la tua risposta per renderla più chiara? Forse un esempio sarebbe d'aiuto :)
met927
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.