Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 porte 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 si disponesse solo di porte a qubit singolo in un computer quantistico, allora una calcolatrice e sicuramente un supercomputer classico eclisserebbero la loro 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 hai due qubit separati, uno nello stato $\psi=\begin{bmatrix}\alpha\\\beta\end{bmatrix}$ e l'altro nello stato $\phi=\begin{bmatrix}\gamma\\\delta\end{bmatrix}$, lo stato a due qubit corrispondente è il risultato del 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 notare che il vettore $di unità v_1 v_2 \otimes v_n$\otimes\otimes\cdotsdella dimensione $2 \cdot 2 \cdot 2=\cdots^n$ rappresenta lo stato quantistico di $n$ qubit 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, hai
$$ \begin{ \begin{align} 00 \equiv\begin{bmatrix}1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix}1 \\ 0 \end{bmatrix}&=\begin{bmatrix}1 \\ 0 \\ 0\\ 0 \end{bmatrix},\qquad 01 \equiv\begin{bmatrix}1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix}0 \\ 1 \end{bmatrix}=\begin{bmatrix}0 \\ 1\\ 0 \\ 0 \end{bmatrix},\\ 10 \equiv\begin{bmatrix}0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix}1 \\ 0 \end{bmatrix}&=\begin{bmatrix}0 \\ 0\\ 1\\ 0 \end{bmatrix},\qquad 11 \equiv\begin{bmatrix}0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix}0 \\ 1 \end{bmatrix}=\begin{bmatrix}0 \\ 0\\ 0\\ 1 \end{bmatrix}. \end{align} $$
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 esistono stati $\psi=\begin{bmatrix}\alpha\\\beta\end{bmatrix}$ e $\phi=\begin{bmatrix}\gamma\\\delta\end{bmatrix}$ tali che il loro 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 tensore di stati a qubit singolo, viene chiamato "stato &entangled&"; i due qubit vengono considerati entangled. In modo libero, poiché lo stato quantistico non può essere considerato come un prodotto tensore di stati a qubit singolo, le informazioni che lo stato contiene non sono limitate a uno dei qubit singolarmente. Le informazioni vengono invece archiviate non in locale nelle correlazioni tra i due stati. Questa non-località dell'informazione è una delle principali caratteristiche distintive del calcolo quantistico rispetto a quello classico ed è essenziale per molti protocolli quantistici, inclusa la correzione degli errori quantici.
Misurazione degli stati a due qubit
La misurazione degli stati a due qubit è 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 collassa ed è adesso
$$ 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. È diverso 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 vedere questo, considerare di misurare il primo qubit dello stato seguente, formato applicando la trasformazione Hadamard H su due qubit inizialmente impostati nello stato "0".
$$H^{\otimes 2}\left( \begin{bmatrix}1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix}1 \\ 0 \end{bmatrix}\right) =\frac{{1}{2}\begin{bmatrix}1 & 1 & 1 & 1 \\ 1 & -1 & 1 & -1 \\ 1 & 1 & -1 & -1 \\ 1 & -1 & -1 & 1 \end{bmatrix}\begin{bmatrix}1\\ 0\\ 0\\ 0\end{bmatrix}=\frac{{1}{2}\begin{bmatrix}1\\ 1\\ 1\\ 1\end{bmatrix}\mapsto\begin{cases}\text{risultato }=0 & \frac{{1}{\sqrt{2}}\begin{bmatrix}1 1\\ 0\\ 0 \\\end{bmatrix}\\risultato \text{1 }=amp; &\frac{{1}{\sqrt{{2}}\begin{bmatrix}0\\ 0\\ 1\\ 1 \end{bmatrix}\\\end{cases}. $$ Entrambi i risultati hanno una probabilità del 50% di verificarsi. Questo risultato 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. Sia $e_k$ il $k-esimo vettore di base computazionale e $S$ sia l'insieme di tutti gli $e_k$ tali 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. In formato little-endian, i bit meno significativi vengono prima. Ad esempio, in formato little-endian la stringa di bit 001 rappresenta il numero quattro.
Poiché ogni misura di qubit può produrre $solo 0$ o $1$, la probabilità di misurare $0$ è $1-P(\text{risultato}=1),$ 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{ nell'insieme } 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 specificato 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 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\end{bmatrix}\right|^2+\frac{1}{{4}\left|\begin{bmatrix}0&0&0&1\end{bmatrix}\begin{bmatrix}1 1\\\\ 1\\ 1\end{bmatrix}\right|^2=\frac{{1}{{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 le porte
$$ \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'unitario a due qubit dato dal loro prodotto tensore: $$\begin{bmatrix} a\ b\\ c\ d\end{bmatrix}\otimes\begin{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 alcune porte a qubit singolo note. Alcuni esempi di gate a due qubit includono $H \otimes H$, $X \otimes\mathbf{1}$ e $X \otimes Z$.
Si noti che mentre due porte a singolo qubit definiscono un gate a due qubit prendendo il prodotto tensore, 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 intreccio. Un esempio di porta di entanglement è la porta CNOT.
L'intuizione alla base di un gate Controlled-NOT può essere generalizzata a porte arbitrarie. 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 unitari controllati richiede la creazione di un database di versioni controllate di gate fondamentali e la sostituzione di ogni gate fondamentale nell'operazione unitaria originale con la controparte controllata. Questo metodo è spesso sprecato e le informazioni dettagliate spesso possono essere usate per sostituire solo alcune porte con versioni controllate per ottenere lo stesso impatto. Per questo motivo, il framework offre la possibilità di eseguire il metodo ingenuo per il controllo o consentire all'utente di definire una versione controllata dell'operazione unitaria se si conosce una versione ottimizzata.
I gate possono essere controllati anche usando le informazioni classiche. Un gate non controllato in modo classico, ad esempio, è solo un normale not-gate 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.
Analogamente al caso del singolo qubit, un insieme di gate a due qubit è universale se una qualsiasi matrice unitaria di dimensione $4\times 4$ può essere approssimata mediante un prodotto di gate di questo insieme con 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}_{{12}\otimes\mathbf{1}\otimes \mathbf{\mathbf{1}\otimes \mathbf{\mathbf{1}\otimes \mathbf{\mathbf{1}) \begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes 1 \begin{bmatrix} 0 \\ 0 \end{bmatrix}\otimes 1 \begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes 1 \begin{bmatrix} 0 \\ 1 \end{bmatrix} 0 \otimes 0 \begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes 1 \begin{bmatrix} 0 \\ 0 \end{bmatrix}\otimes 1 \begin{bmatrix}\\ amp;\end{bmatrix}\\ 0011001. \end{align}
In molti sistemi qubit, spesso è necessario allocare e deallocare 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 il cancello torni a $e_0$ prima della deallocazione. Questo presupposto è importante perché se un qubit ausiliario si intreccia insieme a un altro registro qubit quando viene deallocato, allora il processo di deallocazione danneggia il qubit ausiliario. Per questo motivo, si presuppone sempre che tali qubit vengano ripristinati allo stato iniziale prima del rilascio.
Infine, anche se per ottenere il calcolo quantistico universale sui computer quantistici a due qubit è necessario aggiungere nuovi gate al set di gate, non è necessario introdurre nuovi gate nel caso di più qubit. I gate $H$, $T$ e CNOT formano un gate universale impostato su molti qubit perché qualsiasi trasformazione unitaria generale può essere suddivisa in una serie di due rotazioni di qubit. È quindi possibile usare 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 a questo punto 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 a 7 bit, ad esempio, è $128$ dimensionale, che lo rende complesso per esprimerlo usando 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.