Perché è necessario un qubit oracolare nell'algoritmo di Grover?


10

Sono un po 'confuso sulla necessità di un qubit oracolare nell'algoritmo di Grover.

La mia domanda è: dipende da come implementate il vostro oracolo se avete bisogno di un qubit oracolo o no? Oppure, c'è qualche motivo per un qubit oracolo? (ad esempio, esistono alcuni problemi che non possono essere risolti senza un orbito qubit, oppure è più facile pensare al problema con un oracolo qubit, oppure è una convenzione, ecc.)

Molte risorse introducono l'algoritmo di Grover con un qubit oracle, ma ho scoperto che in alcuni casi non è necessario un qubit oracle.

Ad esempio, ecco due implementazioni dell'algoritmo di Grover in IBM Q simulator. Uno sta usando un orbit qubit e l'altro no. In entrambi i casi, vorrei trovare | 11> da uno spazio di | 00>, | 01>, | 10> e | 11>. In entrambi i casi, l'oracolo lancia con successo da | 11> a - | 11>.

・ Con un orbit qubit ( Link al simulatore IBM Q ) inserisci qui la descrizione dell'immagine

・ Senza orbit qubit ( collegamento al simulatore IBM Q ) inserisci qui la descrizione dell'immagine

Risposte:


5

U|X|y=|X|yf(X),
f(X)X(|0-|1)/2
U~|X=(-1)f(X)|X

XU~U


In realtà è molto facile evitare il qubit extra, supponendo che non sia usato come spazio di lavoro durante il calcolo dell'oracolo. Trova eventuali CNOT sul qubit extra e sostituiscili con un gate Z sul controllo del CNOT. Allo stesso modo, sostituisci i CCNOT sul qubit extra con un CZ tra i due controlli del CCNOT. Ecc.
Craig Gidney,

@CraigGidney È un punto giusto, anche se penso che ci siano più assunzioni integrate nella tua affermazione (rendendola non generica, anche se la maggior parte dei casi che conosciamo li soddisfa): (1) non dovrebbero essere utilizzati ancille intermedie durante la valutazione della funzione; (2) il circuito dell'oracolo deve essere scomposto in un set di gate in cui le uniche porte multi-qubit che agiscono sul qubit oracly sono non-controllati (multi) che prendono di mira il qubit oracle; (3) nessun altro gate può agire sul qubit oracle (cioè non puoi semplicemente invertire i c-not che agiscono nel modo sbagliato usando Hadamards su input e output).
DaftWullie,

È corretto.
Craig Gidney,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.