Algoritmo di Deutsch-Jozsa

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

L'algoritmo di Deutsch-Jozsa è un algoritmo quantistico deterministico proposto da David Deutsch e Richard Jozsa nel 1992 e successivamente migliorato da Richard Cleve, Artur Ekert, Chiara Macchiavello, e Michele Mosca nel 1998.[1][2] Sebbene sia di scarso interesse pratico, è uno dei primi esempi di algoritmi quantistici ad essere esponenzialmente più veloce di un qualsiasi algoritmo deterministico classico.[3]

Enunciato del problema[modifica | modifica wikitesto]

Nel problema di Deutsch-Jozsa, viene data una scatola nera, detta oracolo che implementa una certa funzione . La funzione prende valori binari a n cifre e produce come output o 0 o 1 per ciascuno di questi valori. La funzione è definita costante (l'output è sempre 0 o sempre 1) o bilanciata (dà 1 per la metà degli input e 0 per l'altra metà). Il compito è quindi di determinare se è costante o bilanciata.

Motivazione[modifica | modifica wikitesto]

Questo problema è stato specificamente progettato per essere facile per un algoritmo quantistico e difficile per un qualsiasi algoritmo classico deterministico. La motivazione è quella di mostrare un problema con scatola nera che può essere risolto efficientemente senza errori da un computer quantistico, mentre un computer classico deterministico avrebbe bisogno di un gran numero di chiamate all'oracolo per risolverlo. In termini formali, dà un oracolo relativamente al quale EQP, la classe di problemi risolvibili esattamente e in tempo polinomiale su un computer quantistico, e P sono diverse.[4]

Siccome il problema è facile da risolvere per un computer classico probabilistico, non c'è una separazione degli oracoli con BPP, la classe di problemi risolvibili con errore limitato in tempo polinomiale su computer classico probabilistico. Un esempio di problema che dà una separazione degli oracoli tra la BQP e la BPP è il problema di Simon.

Soluzione classica[modifica | modifica wikitesto]

Per un algoritmo deterministico convenzionale con n numero di bit, saranno necessarie valutazioni di nel caso peggiore. Per dimostrare che è costante, va calcolata la metà più uno degli input e i loro output devono essere identici (ricordando che la funzione è sicuramente o costante o bilanciata). Il caso migliore prevede 2 valutazioni e avviene quando la funzione è bilanciata e i due output sono diversi. Per un convenzionale algoritmo randomizzato, valutazioni bastano per produrre la risposta esatta con alta probabilità (fallimento con probabilità dove ).Tuttavia, valutazioni sono sempre necessarie se si cerca una risposta certamente esatta. L'algoritmo quantistico di Deutsch-Jozsa dà una risposta certamente esatta dopo una singola valutazione di .

Storia[modifica | modifica wikitesto]

L'algoritmo di Deutsch–Jozsa generalizza un precedente lavoro di David Deutsch (nel 1985), che forniva una soluzione per il caso semplice in cui . Nello specifico si ha una funzione booleana il cui input è 1 bit, e ci si chiede se è costante.[5]

L'algoritmo proposto in origine da Deutsch non era, in realtà, deterministico. Aveva successo con una probabilità del 50%. Nel 1992, Deutsch e Jozsa formularono un algoritmo deterministico che si generalizzava a una funzione che prende bit, ma necessitava due valutazioni della funzione invece di una sola.

Cleve et al. fecero ulteriori migliorie,[2] che portarono a un algoritmo deterministico che necessitava una sola chiamata di . Questo algoritmo si chiama comunque di Deutsch–Jozsa in onore delle innovative tecniche che impiegarono.

Algoritmo[modifica | modifica wikitesto]

Affinché l'algoritmo funzioni, l'oracolo che calcola da non deve collassare . Non deve inoltre lasciare copie di dopo la chiamata dell'oracolo.

Il circuito quantistico dell'algoritmo di Deutsch-Jozsa

L'algoritmo comincia con lo stato a bit : i primi n bit sono nello stato e l'ultimo è in . Viene applicata una porta di Hadamard a ogni bit per ottenere lo stato

.

Ora si applica la funzione implementata come oracolo. L'oracolo mappa lo stato a , dove è l'addizione modulo 2. Applicare l'oracolo dà

.

Per ogni è 0 o 1. Tenendo conto di queste due possibilità, lo stato risulta uguale a

.

A questo punto l'ultimo qubit può essere ignorato, e quindi rimane:

.

Si applica una porta di Hadamard a ogni qubit per ottenere

dove è la somma è la prodotto bit-a-bit.

Infine, si esamini la probabilità di misurare ,

che equivale a 1 se è costante (interferenza costruttiva) e 0 se è bilanciata (interferenza distruttiva). In altre parole, la misura darà (cioè tutti zero) se è costante e darà un qualsiasi altro stato se è bilanciata.

Algoritmo di Deutsch[modifica | modifica wikitesto]

L'algoritmo di Deutsch è un caso particolare di questo algoritmo. Bisogna verificare la condizione . Equivale a controllare (dove è l'addizione modulo 2, che può essere vista come una porta XOR quantistica implementata come porta NOT controllata), se la somma è nulla, allora è costante, altrimenti non lo è.

Si comincia dallo stato e si applica una porta di Hadamard a ogni qubit. Questo dà

Si applica l'oracolo che mappa in . Applicare questa funzione allo stato attuale produce

Ignorando l'ultimo bit e la fase globale, si ha lo stato

Applicando nuovamente la porta di Hadamard si ottiene

se e solo si misura e se e solo se si misura . Quindi si sa con certezza se è costante o bilanciata.

Note[modifica | modifica wikitesto]

  1. ^ David Deutsch e Richard Jozsa, Rapid solutions of problems by quantum computation, in Proceedings of the Royal Society of London A, vol. 439, n. 1907, 1992, pp. 553-558, Bibcode:1992RSPSA.439..553D, DOI:10.1098/rspa.1992.0167.
  2. ^ a b R. Cleve, A. Ekert e C. Macchiavello, Quantum algorithms revisited, in Proceedings of the Royal Society of London A, vol. 454, n. 1969, 1998, pp. 339-354, Bibcode:1998RSPSA.454..339C, DOI:10.1098/rspa.1998.0164, arXiv:quant-ph/9708016.
  3. ^ Daniel Simon, On the Power of Quantum Computation, in 94 Proceedings of the 35th Annual Symposium on Foundations of Computer Science, novembre 1994, pp. 116-123.
  4. ^ Johansson, N. e Larsson, JÅ., Efficient classical simulation of the Deutsch–Jozsa and Simon's algorithms, in Quantum Inf Process (2017), vol. 16, n. 9, 2017, p. 233, DOI:10.1007/s11128-017-1679-7, arXiv:1508.05027.
  5. ^ David Deutsch, Quantum Theory, the Church-Turing Principle and the Universal Quantum Computer (PDF), in Proceedings of the Royal Society of London A, vol. 400, n. 1818, 1985, pp. 97-117, Bibcode:1985RSPSA.400...97D, DOI:10.1098/rspa.1985.0070. URL consultato il 18 febbraio 2021 (archiviato dall'url originale il 4 marzo 2012).

Collegamenti esterni[modifica | modifica wikitesto]