Operazioni su più qubit

Questo articolo esamina le regole usate per creare stati a più qubit da stati a qubit singolo e illustra le operazioni del gate necessarie da includere in un set di gate per formare un computer quantistico universale a più qubit. Questi strumenti sono necessari per comprendere i set di controllo comunemente usati nel Q# codice. Sono anche importanti per comprendere perché gli effetti quantistici, ad esempio l'entanglement o l'interferenza, rendono il calcolo quantistico più potente rispetto al calcolo classico.

Gate a qubit singolo e multi-qubit

La vera potenza del calcolo quantistico diventa evidente solo quando si aumenta il numero di qubit. I singoli qubit possiedono alcune funzionalità contro intuitive, ad esempio la possibilità di trovarsi in più di uno stato in un determinato momento. Tuttavia, se tutto ciò che si aveva in un computer quantistico fosse gate a qubit singolo, una calcolatrice e certamente un supercomputer classico sarebbe nano la sua potenza di calcolo.

La potenza del calcolo quantistico si genera, in parte, perché le dimensioni dello spazio vettoriale dei vettori dello stato quantistico crescono in modo esponenziale con il numero di qubit. Ciò significa che, mentre un singolo qubit può essere modellato in modo semplice, la simulazione di un calcolo quantistico a 50 qubit probabilmente potrebbe superare i limiti dei supercomputer esistenti. L'aumento delle dimensioni del calcolo di un solo qubit aggiuntivo raddoppia la memoria necessaria per archiviare lo stato e raddoppia approssimativamente il tempo di calcolo. Questo rapido raddoppio della potenza di calcolo è il motivo per cui un computer quantistico con un numero relativamente ridotto di qubit può superare di gran lunga i supercomputer più potenti di oggi, di domani e oltre per alcune attività di calcolo.

Stati a due qubit

Se si hanno due qubit separati, uno nello stato e l'altro nello stato $\psi=\begin{bmatrix}\\\end{bmatrix}$\beta\alpha, lo stato\end{bmatrix}$\\\gamma\delta$\phi=\begin{bmatrix} a due qubit corrispondente viene dato dal prodotto tensore (o prodotto Kronecker) dei vettori, definito come segue

$$\psi\otimes\phi=\begin{bmatrix}\alpha\\\beta\end{bmatrix}\otimes\begin{bmatrix}\gamma\\\delta\end{bmatrix}=\begin{bmatrix}\alpha\begin{bmatrix}\gamma\\\delta\end{bmatrix}\\\beta\begin{bmatrix}\gamma\\\delta\end{bmatrix}\end{bmatrix}=\begin{bmatrix}\alpha\gamma\\\alpha\delta\\\beta\gamma\\\beta\delta\end{bmatrix}. $$

Di conseguenza, dati due stati a qubit singolo $\psi$ e $\phi$, ognuno di dimensioni 2, lo stato a due qubit corrispondente $\psi\otimes\phi$ è a 4 dimensioni. Il vettore

$$\begin{bmatrix}\alpha_{{00}\\\alpha___{{01}\\\alpha{{10}\\\alpha{{11}\end{bmatrix}$$

rappresenta uno stato quantistico su due qubit se

$$|\alpha_{00}|^2+|\alpha_{01}|^2+|\alpha_{{10}|^2+|\alpha_{{11}|^2=1.$$

Più in generale, è possibile vedere che lo stato quantistico di $n$ qubit è rappresentato da un vettore di unità $v_1 \otimes v_2 \otimes\cdots\otimes v_n$ di dimensione $2 \cdot 2 \cdot 2 \cdots= 2^n$ usando questa costruzione. Come per i singoli qubit, il vettore di stato quantistico di più qubit contiene tutte le informazioni necessarie per descrivere il comportamento del sistema. Per altre informazioni sui vettori e sui prodotti tensoriali, vedere Vettori e matrici nel calcolo quantistico.

La base di calcolo per gli stati a due qubit è costituita dai prodotti tensor degli stati di base di un qubit. Ad esempio, si ha

$$\begin{\begin{align}00 \equiv\begin{bmatrix}1 \\ 0\begin{bmatrix}\end{bmatrix}\otimes 1 \\ 0 \end{bmatrix}&=\begin{bmatrix}1 \\ 0 0\\\\ 0 \end{bmatrix},\qquad 01 1 \equiv\\\begin{bmatrix}0 0 \\ \end{bmatrix}\otimes\begin{bmatrix}1=\end{bmatrix}\begin{bmatrix} 0 1\\ 0 \\ 0 \end{bmatrix}\\ ,\\ 10\begin{bmatrix}\equiv 0 \\ 1 1 \end{bmatrix}\otimes\begin{bmatrix}\\ 0&\end{bmatrix} amp;=\begin{bmatrix}0 0 1 0\\ , 11\begin{bmatrix}\equiv 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix}0 \\ 1=\end{bmatrix}\begin{bmatrix} 0 \\ 0\\\\ 1 .\end{bmatrix}\qquad \end{bmatrix}\\ \\ \end{align} $$

Si noti che anche se è sempre possibile prendere il prodotto tensore di due stati a qubit singolo per formare uno stato a due qubit, non tutti gli stati quantistici a due qubit possono essere scritti come prodotto tensore di due stati a qubit singolo. Ad esempio, non ci sono stati $\psi=\begin{bmatrix}\alpha\\\beta\end{bmatrix}$ e $\phi=\begin{bmatrix}\gamma\\\delta\end{bmatrix}$ tali che il prodotto tensoriale sia lo stato

$$\psi\otimes\phi=\begin{bmatrix} 1/\sqrt{{2}\\ 0 \\ 0 \\ 1/\sqrt{{2}\end{bmatrix}.$$

Tale stato a due qubit, che non può essere scritto come prodotto tensoriale di stati a qubit singolo, viene chiamato "stato sottoposto a entanglement" i due qubit sono definiti come sottoposti a entanglement. In termini generali, poiché lo stato quantistico non può essere considerato come un prodotto tensoriale di stati a qubit singolo, le informazioni contenute nello stato non sono limitate singolarmente a uno dei qubit. Le informazioni vengono invece archiviate non in locale nelle correlazioni tra i due stati. Questa non località di informazioni è una delle principali caratteristiche distintive del calcolo quantistico rispetto al calcolo classico ed è essenziale per diversi protocolli quantistici, tra cui la correzione degli errori quantistici.

Misurazione degli stati a due qubit

La misurazione di stati a due qubit è molto simile alle misurazioni a qubit singolo. La misurazione dello stato

$$\begin{bmatrix}\alpha_{{00}\\\alpha___{{01}\\\alpha{{10}\\\alpha{{11}\end{bmatrix}$$

restituisce $00$ con probabilità $|\alpha_{{00}|^2$, $01$ con probabilità $|\alpha_{01}|^2$, $10$ con probabilità $|\alpha_{{10}|^2$ e $11$ con probabilità $|\alpha_{11}|^2$. Alle variabili $\alpha_{00}, \alpha_{{01}, \alpha_{{10},$ e $\alpha_{11}$ è stato intenzionalmente assegnato un nome per rendere chiara la connessione. Dopo la misurazione, se il risultato è $00$, lo stato quantistico del sistema a due qubit è compresso ed è ora

$$ 00 \equiv\begin{bmatrix} 1 \\ 0 \\ 0 \\ 0 \end{bmatrix}. $$

È anche possibile misurare un solo qubit di uno stato quantistico a due qubit. Quando si misura un solo qubit di uno stato a due qubit, l'impatto della misurazione è leggermente diverso rispetto alla misurazione di due qubit. Questo perché l'intero stato non viene compresso in uno stato di base di calcolo, ma viene compresso in un solo sottosistema. In altre parole, la misurazione di un qubit di uno stato a due qubit comprime solo il sottosistema correlato a uno stato di base di calcolo.

Per verificarlo, valutare la possibilità di misurare il primo qubit dello stato seguente, formato applicando la trasformazione $Hadamard H$ su due qubit inizialmente impostati sulla &virgolette; 0" stato:

$$H^{\otimes 2}\left( \begin{bmatrix}1 \\ 0\begin{bmatrix}\end{bmatrix}\otimes 1 \\ 0 \end{bmatrix}\right){1}{2}\begin{bmatrix}\frac{= 1 & 1 & 1 & 1 amp; \\ -1 & -1 & &-1 \\ 1 & &-1 amp; -1 & -1 \\ amp; -1 & -1 amp; -1 & -1 & 1 1\\ \end{bmatrix}\begin{bmatrix}0\\ 0{1}{2}\begin{bmatrix}\end{bmatrix}\frac{=\\ 1\\\\\\ 1 1\end{bmatrix}\mapsto\begin{cases}\text{risultato }=0 & \frac{{1}{\sqrt{2}}\begin{bmatrix}1 1 0 0\text{\end{bmatrix}\\\\ risultato }=1 &{2}}\begin{bmatrix}{1}{\sqrt{\frac{\\\\0 0\\\\ 1\\ 1 \end{bmatrix}\\\end{cases}. $$ Entrambi i risultati hanno una probabilità del 50% di verificarsi. Ciò può essere intuito dal fatto che lo stato quantistico prima della misurazione non cambia se $0$ viene scambiato con $1$ sul primo qubit.

La regola matematica per misurare il primo o il secondo qubit è semplice. Lasciare $che e_k$ essere il $vettore di base computazionale k^{\rm}$ e $S$ sia il set di tutti i $e_k in$ modo che il qubit in questione prenda il valore $1$ per tale valore di $k$. Ad esempio, se si è interessati a misurare il primo qubit, $S$ sarà costituito da $e_1\equiv 10$ e $e_3\equiv 11$. Analogamente, se si è interessati al secondo qubit $S$ sarebbe costituito da $e_2\equiv 01$ e $e_3 \equiv 11$. Quindi la probabilità di misurare il qubit scelto con il valore di $1$ si riferisce al vettore di stato $\psi$

$$ P(\text{risultato}=1)=\sum_{e_k \text{ nel set } S}\psi^\dagger e_k e_k^\dagger\psi. $$

Nota

Questo articolo usa il formato little-endian per etichettare la base di calcolo. Nel formato little endian i bit meno significativi vengono prima. Ad esempio, il numero quattro nel formato little endian è rappresentato dalla stringa di bit 001.

Poiché ogni misurazione di qubit può produrre solo $0$ o $1$, la probabilità di misurare $0$ è semplicemente $1-P(\text{risultato}=1)$. Questo è il motivo per cui è necessaria solo una formula per la probabilità di misurare $1$.

L'azione che una misurazione di questo tipo esercita sullo stato può essere espressa matematicamente come

$$\psi\mapsto\frac{\sum_{e_k \text{ nel set } S} e_k e_k^\dagger\psi}{\sqrt{P(\text{risultato}=1)}}. $$

Il lettore prudente può preoccuparsi di cosa accade se il denominatore è zero. Anche se tale stato non è definito, non è necessario preoccuparsi di tali eventualità perché la probabilità è zero!

Se si accetta $\psi$ di essere il vettore di stato uniforme indicato in precedenza e si è interessati a misurare il primo qubit,

$$ P(\text{misurazione del primo qubit}=1) = (\psi^\dagger e_1)(e_1^\dagger\psi)+(\psi^\dagger e_3)(e_3^\dagger\psi)=|e_1^\dagger\psi|^2+|e_3^\dagger\psi|^2. $$

Si noti che si tratta solo della somma delle due probabilità che sarebbero previste per misurare i risultati $10$ e $11$. Per questo esempio, il risultato è

$$\frac{{1}{4}\left|\begin{bmatrix}0& 0& 1& 0\end{bmatrix}\begin{bmatrix}1 1\\\\ 1\\ 1\right|\end{bmatrix}^2+\frac{1}{{4}\left|\begin{bmatrix}0& 0& 0& 1\end{bmatrix}\begin{bmatrix}1 1\\\\ 1\\ 1\end{bmatrix}\right|^2{1}{=\frac{{2}. $$

che corrisponde perfettamente alla nostra intuizione. Analogamente, lo stato dopo il primo qubit viene misurato come $1$ può essere scritto come

$$\frac{\frac{e_1}{2}+\frac{e_3}{2}}{\sqrt{\frac{1}{2}}}=\frac{1}{\sqrt{2}}\begin{bmatrix} 0\\ 0\\ 1\\ 1\end{bmatrix}$$

di nuovo in conformità con quanto intuito.

Operazioni a due qubit

Come nel caso di un singolo qubit, qualsiasi trasformazione unitaria è un'operazione valida sui qubit. In generale, una trasformazione unitaria su $n$ qubit è una matrice $U$ di dimensioni $2^n \times 2^n$, in modo che agisca su vettori di dimensioni $2^n$, così che $U^{-1}= U^\dagger$. Ad esempio, il gate CNOT (Controlled-NOT) è un gate a due qubit comunemente usato ed è rappresentato dalla matrice unitaria seguente:

$$\operatorname{CNOT}=\begin{bmatrix} 1\ 0\ 0\ 0 \\ 0\ 1\ 0\ 0 \\ 0\ 0\ 0\ 1 \\ 0\ 0\ 1\ 0 \end{bmatrix}$$

È anche possibile formare gate a due qubit applicando gate a qubit singolo su entrambi i qubit. Ad esempio, se si applicano i controlli

$$\begin{bmatrix} a\ b\\ c\ d \end{bmatrix}$$

e

$$\begin{bmatrix} e\ f\\ g\ h \end{bmatrix}$$

al primo e al secondo qubit, rispettivamente, equivale ad applicare l'unità a due qubit forniti dal loro prodotto tensore: $$\begin{bmatrix} a\ b\\ c\ d\otimes\begin{bmatrix} \end{bmatrix}e\ f g\\\ h \end{bmatrix}=\begin{bmatrix} ae\ af\ be\ bf \\ ag\ ah\ bg\ bh \\ ce\ cf\ de\ df \\ cg\ ch\ dg\ dh .\end{bmatrix}$$

È quindi possibile formare porte a due qubit prendendo il prodotto tensore di alcuni controlli a qubit singolo noti. Alcuni esempi di gate a due qubit includono $H \otimes H$, $X \otimes\mathbf{1}$ e $X \otimes Z$.

Si noti che mentre due gate a qubit singolo definiscono un gate a due qubit prendendo il loro prodotto tensoriale, il contrario non è vero. Non tutti i gate a due qubit possono essere scritti come prodotto tensoriale di gate a qubit singolo. Tale gate è detto gate di entanglement. Un esempio di gate di entanglement è il gate CNOT.

L'intuito alla base di un gate Controlled-NOT può essere generalizzato in gate arbitrari. Un gate controllato in generale è un gate che funge da identità, a meno che un qubit specifico non sia $1$. Si indica un unitario controllato, controllato in questo caso sul qubit etichettato $x$, con un $\Lambda_x(U)$. Ad esempio $\Lambda_0(U) e_{{1}\otimes{\psi}=e_{1}\otimes U{\psi}$ e $\Lambda_0(U) e_{{0}\otimes{\psi}=e_{{0}\otimes{\psi}$, dove $e_0$ e $e_1$ sono vettori di base di calcolo per un singolo qubit corrispondente ai valori $0$ e $1$. Si consideri, ad esempio, il seguente gate controllato-Z$$, quindi è possibile esprimere questo come

$$\Lambda_0(Z)=\begin{bmatrix}1& 0& 0& 0 0\\& 1& 0& 0 0\\& 0& 1& 0 0\\& 0& 0&-1 \end{bmatrix}=(\mathbf\mathbf{1}\otimes{ H)\operatorname{CNOT}(\mathbf{1}\otimes H). $$

La creazione efficiente di matrici unitarie controllate è una sfida importante. Il modo più semplice per implementare questa operazione richiede la creazione di un database di versioni controllate dei gate fondamentali e la sostituzione di ogni gate fondamentale nell'operazione unitaria originale con la rispettiva controparte controllata. Questa operazione è spesso inefficiente ed è possibile usare informazioni intelligenti per sostituire solo alcuni gate con le versioni controllate per ottenere lo stesso impatto. Per questo motivo, il framework offre la possibilità di eseguire il metodo ingenuo di controllo o consentire all'utente di definire una versione controllata dell'unità se è nota una versione ottimizzata ottimizzata.

I gate possono essere controllati anche usando le informazioni classiche. Un gate Controlled-NOT classico, ad esempio, è solo un normale gate NOT, ma viene applicato solo se un bit classico è $1$ anziché un bit quantistico. In questo senso, un gate controllato in modo classico può essere pensato come un'istruzione if nel codice quantistico in cui il gate viene applicato solo in un ramo del codice.

Come nel caso di un singolo qubit, un set di gate a due qubit è universale se una matrice unitaria di $4\times 4$ può essere approssimata da un prodotto di gate di questo set a una precisione arbitraria. Un esempio di un set di gate universali è il gate Hadamard, il gate T e il gate CNOT. Prendendo prodotti di questi cancelli, è possibile approssimare qualsiasi matrice unitaria su due qubit.

Sistemi a più qubit

Seguiamo esattamente gli stessi modelli esaminati nel caso di due qubit per creare stati quantistici a più qubit da sistemi più piccoli. Questi stati vengono creati formando prodotti tensoriali di stati più piccoli. Si consideri ad esempio la codifica della stringa di bit $1011001$ in un computer quantistico. È possibile codificare come

$$ 1011001 \equiv\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}. $$

I gate quantistici funzionano esattamente nello stesso modo. Ad esempio, se si vuole applicare il $gate X$ al primo qubit e quindi eseguire un CNOT tra il secondo e il terzo qubit, è possibile esprimere questa trasformazione come

\begin{\begin{align}&Amp; (X)\otimes\operatorname{CNOT}_{\mathbf{1}\otimes{12}\otimes \mathbf{\mathbf{1}\otimes \mathbf{\otimes\mathbf{1} \mathbf{\mathbf{1}) \begin{bmatrix} 0 \\ 1 1\begin{bmatrix} \\ \end{bmatrix}\otimes0 \end{bmatrix}\otimes\begin{bmatrix} 0 1 0 \\ \\ 1\begin{bmatrix} \end{bmatrix}\otimes1\begin{bmatrix} \end{bmatrix}\otimes\\ 0\begin{bmatrix} \end{bmatrix}\otimes1 \\ 0 0 \end{bmatrix}\otimes\\\begin{bmatrix} 1 \end{bmatrix}\\&\qquad\qquad\equiv 0011001. \end{align}

Nei sistemi a più qubit è spesso necessario allocare e deallocare i qubit che fungono da memoria temporanea per il computer quantistico. Un qubit di questo tipo viene definito ausiliario. Per impostazione predefinita, è possibile presupporre che lo stato del qubit sia inizializzato per $e_0$ al momento dell'allocazione. È inoltre possibile presupporre che venga nuovamente restituito a $e_0$ prima della deallocazione. Questo presupposto è importante perché se un qubit ausiliario viene sottoposto a entanglement con un altro registro di qubit quando viene deallocato, il processo di deallocazione danneggerà il qubit ausiliario. Per questo motivo, si presuppone sempre che tali qubit vengano ripristinati allo stato iniziale prima del rilascio.

Infine, anche se è necessario aggiungere nuovi gate al set di gate per ottenere il calcolo quantistico universale per computer quantistici a due qubit, non è necessario introdurre nuovi gate nel caso di più qubit. I gate $H$, $T$ e CNOT formano un set di gate universali su molti qubit perché qualsiasi trasformazione unitaria generale può essere suddivisa in una serie di rotazioni a due qubit. È quindi possibile sfruttare la teoria sviluppata per il caso a due qubit e usarla di nuovo qui quando si hanno molti qubit.

Nota

Anche se la notazione algebrica lineare usata finora può certamente essere usata per descrivere gli stati multi-qubit, diventa sempre più complessa quando si aumentano le dimensioni degli stati. Il vettore di colonna risultante per una stringa lunga 7 bit, ad esempio, è a $128$ dimensioni, il che rende molto difficile esprimerlo tramite la notazione descritta in precedenza. Viene invece usata la notazione Dirac, una abbreviata simbolica che semplifica la rappresentazione degli stati quantistici. Per altre informazioni, vedere Notazione Dirac.