Demistificare i principi dell'informatica quantistica

Demistificare i principi dell'informatica quantistica
"Penso di poter tranquillamente affermare che nessuno capisce la meccanica quantistica." - Richard Feynman

Il tema dell’informatica quantistica ha sempre affascinato scrittori e giornalisti tecnologici. Il suo potenziale computazionale e la sua complessità gli conferivano una certa aura mistica. Troppo spesso articoli di approfondimento e infografiche descrivono nel dettaglio le diverse prospettive di questo settore, sfiorando appena la sua applicazione pratica: questo può trarre in inganno il lettore meno attento.

Articoli scientifici popolari omettono le descrizioni dei sistemi quantistici e fanno affermazioni come:

Un bit normale può essere 1 o 0, ma un qubit può essere 1 e 0 contemporaneamente.

Se sei molto fortunato (cosa di cui non sono sicuro), ti verrà detto che:

Il qubit è in sovrapposizione tra "1" e "0".

Nessuna di queste spiegazioni sembra plausibile, poiché stiamo cercando di formulare un fenomeno quantomeccanico utilizzando un linguaggio sviluppato in un mondo molto tradizionale. Per spiegare chiaramente i principi dell'informatica quantistica, è necessario utilizzare un altro linguaggio: quello matematico. 

In questo tutorial tratterò gli strumenti matematici necessari per modellare e comprendere i sistemi di calcolo quantistico, nonché come illustrare e applicare la logica del calcolo quantistico. Inoltre, darò un esempio di algoritmo quantistico e ti dirò qual è il suo vantaggio rispetto a un computer tradizionale.

Farò del mio meglio per spiegare tutto questo in un linguaggio chiaro, ma spero comunque che i lettori di questo articolo abbiano una conoscenza di base dell'algebra lineare e della logica digitale (l'algebra lineare è trattata qui, sulla logica digitale - qui). 

Innanzitutto, esaminiamo i principi della logica digitale. Si basa sull'uso di circuiti elettrici per eseguire calcoli. Per rendere la nostra descrizione più astratta, semplifichiamo lo stato del filo elettrico in “1” o “0”, che corrisponderà agli stati “acceso” o “spento”. Disponendo i transistor in una determinata sequenza, creeremo i cosiddetti elementi logici che prendono uno o più valori del segnale di ingresso e li convertono in un segnale di uscita in base a determinate regole della logica booleana.

Demistificare i principi dell'informatica quantistica

Porte logiche comuni e relative tabelle di stato

Sulla base delle catene di tali elementi di base, è possibile creare elementi più complessi e, sulla base delle catene di elementi più complessi, possiamo infine aspettarci, con un ampio grado di astrazione, di ottenere un analogo del processore centrale.

Come ho detto prima, abbiamo bisogno di un modo per rappresentare matematicamente la logica digitale. Innanzitutto, introduciamo la logica matematica tradizionale. Utilizzando l'algebra lineare, i bit classici con i valori "1" e "0" possono essere rappresentati come due vettori colonna:
Demistificare i principi dell'informatica quantistica
dove sono i numeri a sinistra Notazione di Dirac vettore. Rappresentando i nostri bit in questo modo, possiamo modellare operazioni logiche sui bit utilizzando trasformazioni vettoriali. Nota: sebbene utilizzando due bit nelle porte logiche si possano eseguire molte operazioni (AND, NOT, XOR, ecc.), utilizzando un bit si possono eseguire solo quattro operazioni: conversione di identità, negazione, calcolo della costante “0” e calcolo della costante “1”. Con una conversione di identità il bit rimane invariato, con una negazione il valore del bit cambia al contrario (da “0” a “1” o da “1” a “0”) e il calcolo della costante “1” o “0” imposta il bit su “1” o “0” indipendentemente dal suo valore precedente.
Demistificare i principi dell'informatica quantistica

Identità Trasformazione dell'identità
Negazione negazione
Costante-0 Calcolo della costante "0"
Costante-1 Calcolo della costante "1"

Sulla base della nuova rappresentazione del bit proposta, è abbastanza semplice eseguire operazioni sul bit corrispondente utilizzando una trasformazione vettoriale:

Demistificare i principi dell'informatica quantistica

Prima di andare oltre, diamo un'occhiata al concetto calcoli reversibili, il che implica semplicemente che per garantire la reversibilità di un'operazione o di un elemento logico, è necessario determinare un elenco di valori dei segnali di ingresso in base ai segnali di uscita e ai nomi delle operazioni utilizzate. Possiamo quindi concludere che la trasformazione e la negazione dell'identità sono reversibili, ma le operazioni per il calcolo delle costanti “1” e “0” non lo sono. Grazie a unitarietà la meccanica quantistica, i computer quantistici utilizzano esclusivamente operazioni reversibili, quindi è su questo che ci concentreremo. Successivamente, convertiamo gli elementi irreversibili in elementi reversibili per consentire loro di essere utilizzati da un computer quantistico.

Con prodotto tensoriale i singoli bit possono essere rappresentati da molti bit:
Demistificare i principi dell'informatica quantistica
Ora che abbiamo quasi tutti i concetti matematici necessari, passiamo alla nostra prima porta logica quantistica. Questo è l'operatore CNO, o Not controllato (NOT), che è di grande importanza nell'informatica reversibile e quantistica. L'elemento CNOT si applica a due bit e restituisce due bit. Il primo bit è designato come bit di “controllo” e il secondo come bit di “controllo”. Se il bit di controllo è impostato su "1", il bit di controllo cambia il suo valore; Se il bit di controllo è impostato su "0", il bit di controllo non viene modificato.
Demistificare i principi dell'informatica quantistica
Questo operatore può essere rappresentato come il seguente vettore di trasformazione:
Demistificare i principi dell'informatica quantistica
Per dimostrare tutto ciò che abbiamo trattato finora, ti mostrerò come utilizzare l'elemento CNOT su più bit:
Demistificare i principi dell'informatica quantistica
Riassumendo quanto già detto: nel primo esempio scomponiamo |10⟩ in parti del suo prodotto tensoriale e utilizziamo la matrice CNOT per ottenere un nuovo stato corrispondente del prodotto; lo fattorizziamo quindi a |11⟩ secondo la tabella dei valori CNOT fornita in precedenza.

Quindi, abbiamo ricordato tutte le regole matematiche che ci aiuteranno a comprendere il calcolo tradizionale e i bit ordinari, e possiamo finalmente passare al moderno calcolo quantistico e ai qubit.

Se hai letto fin qui, allora ho buone notizie per te: i qubit possono essere facilmente espressi matematicamente. In generale, se un bit classico (cbit) può essere impostato su |1⟩ o |0⟩, il qubit è semplicemente in sovrapposizione e può essere sia |0⟩ che |1⟩ prima della misurazione. Dopo la misurazione, collassa in |0⟩ o |1⟩. In altre parole, un qubit può essere rappresentato come una combinazione lineare di |0⟩ e |1⟩ secondo la formula seguente:
Demistificare i principi dell'informatica quantistica
dove a₀ и a₁ rappresentano, rispettivamente, le ampiezze |0⟩ e |1⟩. Queste possono essere pensate come "probabilità quantistiche", che rappresentano la probabilità che un qubit collassi in uno degli stati dopo essere stato misurato, poiché nella meccanica quantistica un oggetto in sovrapposizione collassa in uno degli stati dopo essere stato fissato. Espandiamo questa espressione e otteniamo quanto segue:
Demistificare i principi dell'informatica quantistica
Per semplificare la mia spiegazione, questa è la rappresentazione che utilizzerò in questo articolo.

Per questo qubit, la possibilità di collassare al valore a₀ dopo la misurazione è uguale a |a₀|² e la possibilità di un crollo del valore a₁ è uguale a |a₁|². Ad esempio, per il seguente qubit:
Demistificare i principi dell'informatica quantistica
la probabilità di collassare in “1” è pari a |1/ √2|², ovvero ½, cioè 50/50.

Poiché nel sistema classico tutte le probabilità devono sommarsi a uno (per una distribuzione di probabilità completa), possiamo concludere che la somma dei quadrati dei valori assoluti delle ampiezze |0⟩ e |1⟩ deve sommarsi a uno. Sulla base di queste informazioni possiamo formulare la seguente equazione:
Demistificare i principi dell'informatica quantistica
Se hai familiarità con la trigonometria, noterai che questa equazione corrisponde al teorema di Pitagora (a²+b²=c²), ovvero possiamo rappresentare graficamente i possibili stati del qubit come punti sulla circonferenza unitaria, ovvero:
Demistificare i principi dell'informatica quantistica
Gli operatori e gli elementi logici vengono applicati ai qubit allo stesso modo dei bit classici, sulla base di una trasformazione di matrice. Tutti gli operatori di matrice invertibile che abbiamo richiamato finora, in particolare CNOT, possono essere utilizzati per lavorare con i qubit. Tali operatori di matrice consentono di utilizzare ciascuna delle ampiezze del qubit senza misurarlo e comprimerlo. Lascia che ti faccia un esempio di utilizzo dell'operatore di negazione su un qubit:
Demistificare i principi dell'informatica quantistica
Prima di continuare, lascia che ti ricordi che i valori di ampiezza a₀ e a₁ lo sono in realtà numeri complessi, quindi lo stato di un qubit può essere mappato in modo più accurato su una sfera unitaria tridimensionale, nota anche come Sfera delle pulci:
Demistificare i principi dell'informatica quantistica
Tuttavia, per semplificare la spiegazione, ci limiteremo qui ai numeri reali.

Sembra giunto il momento di discutere alcuni elementi logici che hanno senso esclusivamente nel contesto dell’informatica quantistica.

Uno degli operatori più importanti è l'"elemento Hadamard": prende un bit nello stato "0" o "1" e lo mette nella sovrapposizione appropriata con una probabilità del 50% di collassare in uno stato "1" o "0" dopo la misurazione. 
Demistificare i principi dell'informatica quantistica
Notare che c'è un numero negativo nella parte in basso a destra dell'operatore Hadamard. Ciò è dovuto al fatto che il risultato dell'applicazione dell'operatore dipende dal valore del segnale di ingresso: - |1⟩ o |0⟩, e quindi il calcolo è reversibile.

Un altro punto importante dell'elemento Hadamard è la sua reversibilità, ovvero può prendere un qubit nella sovrapposizione appropriata e trasformarlo in |0⟩ o |1⟩.
Demistificare i principi dell'informatica quantistica
Questo è molto importante perché ci dà la possibilità di trasformarci da uno stato quantistico senza determinare lo stato del qubit e, di conseguenza, senza collassarlo. Pertanto, possiamo strutturare il calcolo quantistico sulla base di un principio deterministico piuttosto che probabilistico.

Gli operatori quantistici contenenti solo numeri reali sono il loro opposto, quindi possiamo rappresentare il risultato dell'applicazione dell'operatore a un qubit come trasformazione all'interno del cerchio unitario sotto forma di una macchina a stati:
Demistificare i principi dell'informatica quantistica
Pertanto, il qubit, il cui stato è presentato nel diagramma sopra, dopo aver applicato l'operazione di Hadamard, viene trasformato nello stato indicato dalla freccia corrispondente. Allo stesso modo, possiamo costruire un'altra macchina a stati che illustrerà la trasformazione di un qubit utilizzando l'operatore di negazione come mostrato sopra (noto anche come operatore di negazione di Pauli o inversione di bit), come mostrato di seguito:
Demistificare i principi dell'informatica quantistica
Per eseguire operazioni più complesse sul nostro qubit, possiamo concatenare più operatori o applicare elementi più volte. Esempio di trasformazione seriale basata su rappresentazioni di circuiti quantistici assomiglia a questo:
Demistificare i principi dell'informatica quantistica
Cioè, se iniziamo con il bit |0⟩, applichiamo un'inversione di bit, quindi un'operazione di Hadamard, quindi un'altra inversione di bit e ancora un'operazione di Hadamard, seguita da un'inversione di bit finale, ci ritroveremo con il vettore dato da on il lato destro della catena. Sovrapponendo diverse macchine a stati una sopra l'altra, possiamo iniziare da |0⟩ e tracciare le frecce colorate corrispondenti a ciascuna trasformazione per capire come funziona.
Demistificare i principi dell'informatica quantistica
Dato che siamo arrivati ​​​​fin qui, è tempo di considerare uno dei tipi di algoritmi quantistici, vale a dire: Algoritmo di Deutsch-Jozsae mostra il suo vantaggio rispetto a un computer classico. Vale la pena notare che l’algoritmo di Deutsch-Jozsa è completamente deterministico, ovvero restituisce la risposta corretta il 100% delle volte (a differenza di molti altri algoritmi quantistici basati sulla definizione probabilistica dei qubit).

Immaginiamo di avere una scatola nera che contiene una funzione/operatore su un bit (ricorda: con un bit si possono eseguire solo quattro operazioni: conversione di identità, negazione, valutazione della costante "0" e valutazione della costante "1 "). Qual è esattamente la funzione svolta nella scatola? Non sai quale, ma puoi esaminare tutte le varianti di valori di input che desideri e valutare i risultati di output.

Demistificare i principi dell'informatica quantistica
Quanti ingressi e uscite dovresti scorrere attraverso la scatola nera per capire quale funzione viene utilizzata? Pensaci per un secondo.

Nel caso di un computer classico, sarà necessario effettuare 2 interrogazioni per determinare la funzione da utilizzare. Ad esempio, se l'ingresso "1" produce un'uscita "0", diventa chiaro che viene utilizzata la funzione di calcolo della costante "0" o la funzione di negazione, dopodiché sarà necessario modificare il valore del segnale di ingresso a "0" e vedere cosa succede all'uscita.

Nel caso di un computer quantistico saranno necessarie anche due query, poiché occorrono comunque due diversi valori di output per definire con precisione la funzione da applicare al valore di input. Tuttavia, se si riformula un po’ la domanda, si scopre che i computer quantistici hanno ancora un serio vantaggio: se si volesse sapere se la funzione utilizzata è costante o variabile, i computer quantistici avrebbero un vantaggio.

La funzione utilizzata nel riquadro è variabile se diversi valori del segnale di ingresso producono risultati diversi in uscita (ad esempio, conversione di identità e inversione di bit) e se il valore di uscita non cambia indipendentemente dal valore di ingresso, allora la la funzione è costante (ad esempio, calcolando una costante "1" o calcolando la costante "0").

Utilizzando un algoritmo quantistico, puoi determinare se una funzione in una scatola nera è costante o variabile in base a una sola query. Ma prima di vedere come farlo in dettaglio, dobbiamo trovare un modo per strutturare ciascuna di queste funzioni su un computer quantistico. Poiché qualsiasi operatore quantistico deve essere invertibile, ci troviamo subito di fronte a un problema: le funzioni per calcolare le costanti “1” e “0” non lo sono.

Una soluzione comune utilizzata nell'informatica quantistica consiste nell'aggiungere un qubit di output aggiuntivo che restituisca qualunque valore di input riceva la funzione. 

a: dopo:
Demistificare i principi dell'informatica quantistica Demistificare i principi dell'informatica quantistica

In questo modo possiamo determinare i valori di input esclusivamente in base al valore di output e la funzione diventa invertibile. La struttura dei circuiti quantistici crea la necessità di un bit di input aggiuntivo. Per sviluppare gli operatori corrispondenti, assumeremo che il qubit di input aggiuntivo sia impostato su |0⟩.

Utilizzando la stessa rappresentazione del circuito quantistico utilizzata in precedenza, vediamo come ciascuno dei quattro elementi (trasformazione dell'identità, negazione, valutazione della costante "0" e valutazione della costante "1") può essere implementato utilizzando operatori quantistici. 

Ecco come implementare ad esempio la funzione per il calcolo della costante “0”:

Calcolo della costante "0":
Demistificare i principi dell'informatica quantistica
Qui non abbiamo affatto bisogno di operatori. Il primo qubit di input (che abbiamo assunto essere |0⟩) restituisce lo stesso valore e il secondo valore di input restituisce se stesso, come al solito.

Con la funzione per il calcolo della costante “1” la situazione è leggermente diversa:

Calcolo della costante "1":
Demistificare i principi dell'informatica quantistica
Poiché abbiamo assunto che il primo qubit di input sia sempre impostato su |0⟩, il risultato dell'applicazione dell'operatore di inversione di bit è che produce sempre uno in output. E come al solito, il secondo qubit fornisce il proprio valore in uscita.

Quando si mappa l'operatore di trasformazione dell'identità, l'attività inizia a diventare più complicata. Ecco come farlo:

Trasformazione identica:
Demistificare i principi dell'informatica quantistica
Il simbolo qui utilizzato denota l'elemento CNOT: la riga superiore denota il bit di controllo e la riga inferiore denota il bit di controllo. Ti ricordo che quando si utilizza l'operatore CNOT, il valore del bit di controllo cambia se il bit di controllo è uguale a |1⟩, ma rimane invariato se il bit di controllo è uguale a |0⟩. Poiché abbiamo assunto che il valore della riga superiore sia sempre uguale a |0⟩, il suo valore viene sempre assegnato alla riga inferiore.

Procediamo in modo simile con l’operatore di negazione:

Negazione:
Demistificare i principi dell'informatica quantistica
Invertiamo semplicemente il bit alla fine della linea di output.

Ora che abbiamo chiarito questa comprensione preliminare, diamo un'occhiata ai vantaggi specifici di un computer quantistico rispetto a un computer tradizionale quando si tratta di determinare la costanza o la variabilità di una funzione nascosta in una scatola nera utilizzando una sola query.

Per risolvere questo problema utilizzando il calcolo quantistico in un'unica richiesta, è necessario sovrapporre i qubit di input prima di passarli alla funzione, come mostrato di seguito:
Demistificare i principi dell'informatica quantistica
L'elemento Hadamard viene riapplicato al risultato della funzione per interrompere la sovrapposizione dei qubit e rendere deterministico l'algoritmo. Avviamo il sistema nello stato |00⟩ e, per motivi che spiegherò tra breve, otteniamo il risultato |11⟩ se la funzione applicata è costante. Se la funzione all'interno della scatola nera è variabile, dopo la misurazione il sistema restituisce il risultato |01⟩.

Per comprendere il resto dell'articolo, diamo un'occhiata all'illustrazione che ho mostrato prima:
Demistificare i principi dell'informatica quantistica
Utilizzando l'operatore di inversione di bit e quindi applicando l'elemento Hadamard ad entrambi i valori di input uguali a |0⟩, ci assicuriamo che siano tradotti nella stessa sovrapposizione di |0⟩ e |1⟩, come segue:
Demistificare i principi dell'informatica quantistica
Usando l'esempio di passaggio di questo valore a una funzione di scatola nera, è facile dimostrare che entrambe le funzioni a valore costante restituiscono |11⟩.

Calcolo della costante "0":
Demistificare i principi dell'informatica quantistica
Allo stesso modo, vediamo che anche la funzione per il calcolo della costante “1” produce come output |11⟩, cioè:

Calcolo della costante "1":
Demistificare i principi dell'informatica quantistica
Nota che l'output sarà |1⟩, poiché -1² = 1.

Con lo stesso principio possiamo dimostrare che utilizzando entrambe le funzioni variabili otterremo sempre |01⟩ in uscita (a condizione che utilizziamo lo stesso metodo), anche se tutto è un po' più complicato.

Trasformazione identica:
Demistificare i principi dell'informatica quantistica
Poiché CNOT è un operatore a due qubit, non può essere rappresentato come una semplice macchina a stati, e quindi è necessario definire due segnali di uscita basati sul prodotto tensoriale di entrambi i qubit di input e sulla moltiplicazione per la matrice CNOT come descritto in precedenza:
Demistificare i principi dell'informatica quantistica
Con questo metodo possiamo anche verificare che il valore di uscita |01⟩ viene ricevuto se la funzione di negazione è nascosta nella scatola nera:

Negazione:
Demistificare i principi dell'informatica quantistica
Pertanto, abbiamo appena dimostrato una situazione in cui un computer quantistico è chiaramente più efficiente di un computer convenzionale.

Qual è il prossimo?

Suggerisco di finire qui. Abbiamo già fatto un ottimo lavoro. Se hai compreso tutto ciò che ho trattato, penso che ora tu abbia una buona conoscenza delle basi dell'informatica quantistica e della logica quantistica e del motivo per cui gli algoritmi quantistici possono essere più efficienti dell'informatica tradizionale in determinate situazioni.

La mia descrizione difficilmente può essere definita una guida completa all'informatica quantistica e agli algoritmi - piuttosto, è una breve introduzione alla matematica e alla notazione, progettata per dissipare le idee dei lettori sull'argomento imposte dalle fonti scientifiche popolari (sul serio, molti davvero non riescono a capire la situazione!). Non ho avuto il tempo di toccare molti argomenti importanti, come ad esempio entanglement quantistico di qubit, complessità dei valori di ampiezza |0⟩ e |1⟩ e funzionamento di vari elementi logici quantistici durante la trasformazione da parte della sfera di Bloch.

Se vuoi sistematizzare e strutturare le tue conoscenze sui computer quantistici, fortemente Ti consiglio di leggere "Un'introduzione agli algoritmi quantistici" Emma Strubel: nonostante l'abbondanza di formule matematiche, questo libro discute gli algoritmi quantistici in modo molto più dettagliato.

Fonte: habr.com

Aggiungi un commento