Algoritmo di Deutsch-Jozsa

algoritmo quantistico

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

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

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

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

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

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

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

  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