Implementazione dell'oracolo dell'algoritmo di Grover su IBM Q usando tre qubit


10

Sto cercando di abituarmi a IBM Q implementando l'algoritmo di Grobit a tre qubit ma avendo difficoltà a implementare l'oracolo.

Potresti mostrare come farlo o suggerire alcune buone risorse per abituarti alla programmazione del circuito IBM Q?

Quello che voglio fare è contrassegnare uno stato arbitrario capovolgendolo come l'oracolo dovrebbe fare.

Ad esempio, ho

.1/8(|000+|001+|010+|011+|100+|101+|110+|111)

e voglio contrassegnare girando il segno su . In qualche modo capisco che il gate CCZ risolverebbe il problema ma non abbiamo il gate CCZ in IBM Q. La combinazione di alcuni gate funzionerà come CCZ ma non sono ancora sicuro di come farlo. E sto anche lottando per gli altri casi, non solo per .|111-|111|111

Il caso a due qubit è abbastanza semplice da implementare, ma la cura a tre qubit mi confonde ancora.


1
La loro documentazione include alcuni esempi dell'algoritmo di Grover, anche se non ricordo quanto fosse grande lo spazio di ricerca.
Norrius,

Grazie per il commento. Sì, questa pagina ( quantumexperience.ng.bluemix.net/proxy/tutorial/full-user-guide/… ) spiega l'implementazione dell'algoritmo di Grover a due qubit.
Bick

Risposte:


4

Sto rispondendo alla mia domanda. Dopo alcune ricerche su Google, ho trovato questa immagine che mostra il cancello CCZ di CNOT, T pugnale e cancello T. Ho provato questo su IBM Q e ha funzionato. Voglio esplorare perché funziona, ma questa è un'altra storia.

Per qualcuno che è interessato, ecco il mio circuito quantico dell'algoritmo di Grover che trova | 111> con una iterazione.

La ricerca dell'algoritmo di Grover | 111> con una iterazione


1
Volete cercare i circuiti standard per il gate NOT controllato-controllato (chiamato anche Toffoli). È la Fig. 4.9 nella mia versione di Nielsen & Chuang. Per convertire in un gate a fase controllata controllata, basta attaccare un Hadamard sul qubit target sia prima che dopo (o, se ci sono già Hadamard alle due estremità, rimuoverli).
DaftWullie,

0

Ho implementato lo stesso problema per più qubit usando qiskit qui .

...|111

In generale, l'idea è di simulare un gate CCZ usando Hadamard sul bit target seguito da un gate CCX e quindi un altro Hadamard sul bit target.

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.