Diciamo che abbiamo una funzione che mappa bit a bit (dove ).n m m < nfnmm<n
f:{0,1}n→{0,1}m
Naturalmente potremmo progettare un circuito classico per eseguire questa operazione. Chiamiamolo Cf . Accetta come input n -bits. Diciamo che prende come input X e produce .f(X)
Ora, vorremmo fare la stessa cosa usando un circuito quantico. Chiamiamolo , che accetta come input e output . Ora ricorda che, poiché la meccanica quantistica è lineare, i qubit di input potrebbero ovviamente trovarsi in una sovrapposizione di tutte le stringhe -bit. Quindi l'input potrebbe essere in qualche stato . Per linearità l'output sarà .| X ⟩ | f ( X ) ⟩ n ∑ X ∈ { 0 , 1 } n α X | X ⟩ Σ X ∈ { 0 , 1 } n α X | f ( X ) ⟩Uf|X⟩|f(X)⟩n∑X∈{0,1}nαX|X⟩∑X∈{0,1}nαX|f(X)⟩
L'evoluzione nella meccanica quantistica è unitaria . E poiché è unitario, è reversibile. Ciò significa essenzialmente che se si applica una porta quantistica su uno stato di ingresso e si ottiene uno stato di uscita , è sempre possibile applicare una porta inversa per tornare allo stato .U|x⟩U|x⟩U†|x⟩
Si noti con attenzione nella figura sopra che il numero di linee di input (cioè sei) è esattamente uguale al numero di linee di output in ciascun passaggio. Ciò è dovuto all'unità delle operazioni. Confrontalo con le operazioni classiche come l' AND logico dove fornisce un output a bit singolo . Non è possibile ricostruire i bit iniziali e dall'output, poiché anche e sarebbero stati mappati allo stesso output . Ma considera il classico NOT gate. Se l'ingresso è , esce , mentre se l'ingresso è viene emesso0∧10010∧01∧000110. Poiché questa mappatura è unica, può essere facilmente implementata come una porta unitaria reversibile, vale a dire la porta di Pauli-X . Tuttavia, per implementare un gate AND classico o OR classico dobbiamo pensare un po 'di più.
Considera il gate CSWAP . Ecco un diagramma approssimativo che mostra lo schema:
Nel gate SWAP a seconda del bit di controllo, gli altri due potrebbero essere scambiati o meno. Si noti che esistono tre righe di input e tre righe di output. Quindi, può essere modellato come una porta quantistica unitaria. Ora, se : se x = 0 , l'output è 0 , mentre se x = 1 , l'output è y .z=0x=00x=1y
x=0x¯∧yx=1x∧yx∧yx¯∧yx
È tutto! Ricorda che tutte le porte classiche possono essere costruite con la porta NAND , che ovviamente può essere costruita con una porta AND e una porta NOT. Abbiamo modellato efficacemente il classico NOT e il classico AND gate usando gate quantici reversibili. Solo per essere al sicuro possiamo anche aggiungere il gate CNOT qauntum alla nostra lista, perché usando CNOT possiamo copiare bit.
Quindi, il messaggio di base è che usando i quantum CSWAP, CNOT e le porte NOT possiamo replicare qualsiasi gate classico. A proposito, c'è un trucco intelligente per sbarazzarsi dei bit "spazzatura" che vengono prodotti quando vengono utilizzate le porte quantiche, ma questa è un'altra storia.
PS: è molto importante sbarazzarsi dei bit "spazzatura", altrimenti possono causare errori computazionali!
Riferimenti e crediti d'immagine: Meccanica quantistica e calcolo quantistico MOOC offerti da UC Berkeley su edX.