Proprio come un bit classico ha uno stato - o 0 o 1 - anche un qubit ha uno stato.
Due possibili stati per un qubit sono gli stati |0> e |1>, che, come si potrebbe pensare, corrispondono agli stati 0 e 1 per un bit classico.
La differenza tra i bit e i qubit è che un qubit può trovarsi in uno stato diverso da |0> o |1>. È inoltre possibile formare combinazioni lineari di stati, spesso chiamate sovrapposizioni.
$$ |\phi\rangle = \alpha|0\rangle + \beta|1\rangle $$
I numeri α e β sono numeri complessi. Lo stato di un qubit è un vettore in uno spazio vettoriale complesso bidimensionale.
Gli stati speciali |0> e |1> sono noti come stati di base computazionale e formano una base ortonormale per questo spazio vettoriale.
Quando misurato, dà il risultato 0 con probabilità del 50% (|1/√2|²) e il risultato 1 con la stessa probabilità del 50%. Questo stato è importante in quanto è utilizzato in molte operazioni di quantum computing ed è talvolta indicato come |+>
I numeri θ e \( \varphi \) definiscono un punto sulla sfera tridimensionale unitaria. Questa sfera è spesso chiamata sfera di Bloch; fornisce un utile modo di visualizzare lo stato di un singolo qubit - bisogna tenere presente che questa intuizione è limitata perché non è noto alcuna semplice generalizzazione della sfera di Bloch per i qubit multipli.
Le modifiche che avvengono ad uno stato quantistico possono essere descritte utilizzando il linguaggio della computazione quantistica. Analogamente al modo in cui un computer classico è costruito da un circuito elettrico contenente fili e porte logiche, un computer quantistico è costruito da un circuito quantistico contenente fili e porte quantistiche elementari per trasportare e manipolare le informazioni quantistiche. In questa sezione descriviamo alcune semplici porte quantistiche e presentiamo diversi esempi di circuiti che illustrano la loro applicazione, compreso un circuito che teletrasporta qubit!
I circuiti dei computer classici consistono di fili e porte logiche. I fili sono utilizzati per trasportare l'informazione nel circuito, mentre le porte logiche eseguono manipolazioni dell'informazione, convertendola da una forma all'altra. Consideriamo, ad esempio, le porte logiche classiche a singolo bit. L'unico membro non banale di questa classe è la porta, il cui funzionamento è definito dalla sua tabella di verità, in cui 0 → 1 e 1 → 0, ovvero gli stati 0 e 1 sono scambiati.
È possibile definire un gate quantistico analogo per i qubit? Immaginiamo di avere un processo che porta lo stato |0⟩ nello stato |1⟩ e viceversa. Tale processo sarebbe ovviamente un buon candidato per un'analogo quantistico del gate. Tuttavia, specificare l'azione del gate sugli stati |0⟩ e |1⟩ non ci dice cosa accade alle sovrapposizioni degli stati |0⟩ e |1⟩, senza ulteriori conoscenze sulle proprietà dei gate quantistici. In realtà, il gate quantistico agisce in modo lineare, cioè prende lo stato α|0⟩ + β|1⟩ e lo trasforma nello stato corrispondente in cui il ruolo di |0⟩ e |1⟩ è stato scambiato, α|1⟩ + β|0⟩. Perché il gate quantistico agisce in modo lineare e non in qualche modo non lineare è una domanda molto interessante, e la risposta non è affatto ovvia. Si scopre che questo comportamento lineare è una proprietà generale della meccanica quantistica, e molto ben motivata empiricamente; inoltre, il comportamento non lineare può portare a apparenti paradossi come i viaggi nel tempo, la comunicazione più veloce della luce e le violazioni delle leggi della termodinamica. C'è un modo conveniente di rappresentare il gate quantistico in forma matriciale, che segue direttamente dalla linearità dei gate quantistici. Supponiamo di definire una matrice X per rappresentare il gate quantistico come segue: $$X \equiv \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}$$
La notazione X per il gate quantistico è usata per ragioni storiche. Se lo stato quantistico α|0⟩ + β|1⟩ è scritto in notazione vettoriale come con la prima entry corrispondente all'ampiezza per lo stato |0⟩ e la seconda entry l'ampiezza per lo stato |1⟩, allora l'uscita corrispondente dal gate quantistico è Si noti che l'azione del gate è quella di prendere lo stato |0⟩ e sostituirlo con lo stato corrispondente alla prima colonna della matrice X. Allo stesso modo, lo stato |1⟩ è sostituito dallo stato corrispondente alla seconda colonna della matrice X. Quindi i gate quantistici su un singolo qubit possono essere descritti da matrici due per due. Ci sono vincoli sulle matrici che possono essere utilizzate come gate quantistici? Si scopre che sì. Ricordiamo che la condizione di normalizzazione richiede |α|² + |β|² = 1 per uno stato quantistico α|0⟩ + β|1⟩. Questo deve essere vero anche per lo stato quantistico |ψ⟩ = α|0⟩ + β|1⟩ dopo che il gate ha agito. Si scopre che la condizione appropriata per la matrice che rappresenta il gate è che la matrice U che descrive il gate su un singolo qubit sia unitaria, cioè U†U = I, dove U† è l'aggiunto di U (ottenuto trasponendo e poi complesso coniugando U), e I è la matrice identità due per due. Ad esempio, per il gate X è facile verificare che X†X = ISi noti che l'azione del gate è quella di prendere lo stato |0⟩ e sostituirlo con lo stato corrispondente alla prima colonna della matrice X. Allo stesso modo, lo stato |1⟩ è sostituito dallo stato corrispondente alla seconda colonna della matrice X. Quindi i gate quantistici su un singolo qubit possono essere descritti da matrici due per due. Ci sono vincoli sulle matrici che possono essere utilizzate come gate quantistici? Si scopre che sì. Ricordiamo che la condizione di normalizzazione richiede |α|² + |β|² = 1 per uno stato quantistico α|0⟩ + β|1⟩. Questo deve essere vero anche per lo stato quantistico |ψ⟩ = α|0⟩ + β|1⟩ dopo che il gate ha agito. Si scopre che la condizione appropriata per la matrice che rappresenta il gate è che la matrice U che descrive il gate su un singolo qubit sia unitaria, cioè U†U = I, dove U† è l'aggiunto di U (ottenuto trasponendo e poi complesso coniugando U), e I è la matrice identità due per due. Ad esempio, per il gate X è facile verificare che X†X = ISorprendentemente, questo vincolo di unitarietà è l'unico vincolo sui gate quantistici. Qualsiasi matrice unitaria specifica un gate quantistico valido! L'interessante implicazione è che, a differenza del caso classico, in cui esiste solo un gate per bit singolo non banale, ovvero il gate NOT, esistono molti gate per qubit singolo non banali. Due importanti gate che useremo in seguito sono il gate Z: $$Z \equiv \begin{pmatrix} 1& 0 \\ 0 & -1 \end{pmatrix}$$ che lascia invariato |0⟩, e cambia il segno di |1⟩ in -|1⟩, e il gate di Hadamard: $$H \equiv {1 \over \sqrt 2}\begin{pmatrix} 1 & 1 \\ 1 &-1 \end{pmatrix}$$ Questo gate viene talvolta descritto come un gate "radice quadrata", poiché trasforma un |0⟩ in (|0⟩ + |1⟩)/√2 (prima colonna di H), "a metà strada" tra |0⟩ e |1⟩, e trasforma |1⟩ in (|0⟩ - |1⟩)/√2 (seconda colonna di H), che è anche "a metà strada" tra |0⟩ e |1⟩. Tuttavia, si noti che H2 non è un gate, poiché semplici operazioni algebriche mostrano che H2 = I, e quindi applicare H due volte a uno stato non fa nulla ad esso. Il gate di Hadamard è uno dei gate quantistici più utili, e vale la pena cercare di visualizzare la sua operazione considerando l'immagine della sfera di Bloch. In questa immagine, si scopre che i gate per qubit singolo corrispondono a rotazioni e riflessioni della sfera. L'operazione di Hadamard è solo una rotazione della sfera attorno all'asse yˆ di 90◦, seguita da una rotazione attorno all'asse xˆ di 180◦.
Ci sono infinite matrici unitarie 2x2 e quindi infiniti gate di singolo qubit. Tuttavia, si scopre che le proprietà dell'insieme completo possono essere comprese dalle proprietà di un insieme molto più piccolo. Ad esempio, un gate unitario di singolo qubit arbitrario può essere scomposto come prodotto di rotazioni $$\begin{pmatrix}\cos{\gamma/2} & -\sin{\gamma/2} \\ \sin{\gamma/2} & \cos{\gamma/2}\end{pmatrix}$$ e un gate che capiremo in seguito come una rotazione attorno all'asse z , $$\begin{pmatrix}e^{-i\beta/2} & 0 \\ 0 & e^{i\beta/2}\end{pmatrix}$$ insieme a uno spostamento di fase globale, ovvero un moltiplicatore costante della forma eiα. Queste porte possono essere ulteriormente scomposte: non abbiamo bisogno di essere in grado di eseguire queste porte per valori arbitrari di α, β e γ, ma possiamo costruire approssimazioni arbitrariamente buone a tali porte utilizzando solo determinati valori fissi speciali di α, β e γ. In questo modo è possibile costruire una porta quantistica a singolo qubit arbitraria utilizzando un insieme finito di porte quantistiche. In generale, un calcolo quantistico arbitrario su qualsiasi numero di qubit può essere generato da un insieme finito di porte che viene detto universale per il calcolo quantistico. Per ottenere un tale insieme universale, dobbiamo prima introdurre alcune porte quantistiche che coinvolgono più qubit
Il gate logico quantistico multi-qubit prototipico è il gate controllato o gate. Questo gate ha due qubit di input, chiamati rispettivamente qubit di controllo e qubit target. La linea superiore rappresenta il qubit di controllo, mentre quella inferiore rappresenta il qubit target. L'azione del gate può essere descritta come segue. Se il qubit di controllo è impostato a 0, allora il qubit target viene lasciato inalterato. Se il qubit di controllo è impostato a 1, allora il qubit target viene invertito. In equazioni: |00⟩→|00⟩; |01⟩→|01⟩; |10⟩→|11⟩; |11⟩→|10⟩. (1.18) Un altro modo di descrivere il gate controllato è come una generalizzazione del gate classico, poiché l'azione del gate può essere riassunta come |A, B⟩→|A, B ⊕ A⟩, dove ⊕ è l'addizione modulo due, che è esattamente ciò che fa il gate. Ciò significa che il qubit di controllo e il qubit target sono connessi e memorizzati nel qubit target. Un altro modo di descrivere l'azione del gate controllato è quello di dare una rappresentazione matriciale. Si può facilmente verificare che la prima colonna di UCN descrive la trasformazione che avviene su |00⟩, e analogamente per gli altri stati di base computazionale, |01⟩, |10⟩ e |11⟩. Come per il caso di un singolo qubit, il requisito che la probabilità sia conservata è espresso dal fatto che UCN è una matrice unitaria, cioè U† CN UCN = I.