Implementacja wyroczni algorytmu Grovera na IBM Q przy użyciu trzech kubitów

10

Próbuję się przyzwyczaić do IBM Q, implementując algorytm Grovera w trzech kubitach, ale mam trudności z implementacją wyroczni.

Czy możesz pokazać, jak to zrobić lub zasugerować dobre zasoby, aby przyzwyczaić się do programowania obwodów IBM Q?

Chcę zaznaczyć jeden arbitralny stan, odwracając jego znak, tak jak ma to zrobić wyrocznia.

Na przykład mam

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

i chcę zaznaczyć , odwracając jego znak do . W jakiś sposób rozumiem, że brama CCZ rozwiązałaby problem, ale nie mamy bramy CCZ w IBM Q. Połączenie niektórych bram będzie działać tak samo jak CCZ, ale nie jestem jeszcze pewien, jak to zrobić. Walczę też o inne sprawy nie tylko o .|111|111|111

Sprawa dwóch kubitów jest dla mnie wystarczająco prosta, ale opieka nad trzema kubitami jest dla mnie nadal myląca.

Bick
źródło
1
Ich dokumentacja zawiera kilka przykładów algorytmu Grovera, chociaż nie pamiętam, jak duża była przestrzeń wyszukiwania.
Norrius
Dziękuję za komentarz. Tak, ta strona ( quantumexperience.ng.bluemix.net/proxy/tutorial/full-user-guide/... ) wyjaśnia implementację algorytmu Grovera w dwóch kubitach .
Bick

Odpowiedzi:

4

Odpowiadam na moje pytanie. Po kilku wyszukiwaniach w Google znalazłem ten obraz przedstawiający bramę CCZ według CNOT, sztyletu T i bramki T. Próbowałem tego na IBM Q i działało. Chcę dowiedzieć się, dlaczego to działa, ale to już inna historia.

Dla kogoś, kto jest zainteresowany, oto mój obwód kwantowy znalezienia algorytmu Grovera | 111> z jedną iteracją.

Wyszukanie algorytmu Grovera | 111> z jedną iteracją

Bick
źródło
1
Chcesz poszukać standardowych obwodów dla bramki sterowanej-NIE-kontrolowanej (zwanej także Toffoli). Jest to ryc. 4.9 w mojej wersji Nielsen & Chuang. Aby przekształcić się w bramę fazy kontrolowanej, po prostu naklej Hadamard na kubit docelowy zarówno przed, jak i po (lub, jeśli Hadamardy są już na jednym końcu, po prostu je usuń).
DaftWullie
0

Zaimplementowałem ten sam problem dla wielu kubitów za pomocą qiskit tutaj .

Dla zaprezentowanego stanu 3 kubitów możesz użyć wyroczni takiej jak tutaj (używam dziwactwa, aby pokazać amplitudy w czasie rzeczywistym). Zauważ, że pierwsze trzy Hadamardy (te przed nimi ...) służą jedynie do symulacji losowych danych wejściowych do wyroczni i nie są częścią samej wyroczni. W każdym przypadku, jak widać z amplitud na końcu obwodu, tylko stan jest usuwany, podczas gdy wszystkie pozostałe stany pozostają niezmienione.|111

Ogólnie rzecz biorąc, chodzi o symulację bramki CCZ przy użyciu Hadamard na bicie docelowym, a następnie bramki CCX, a następnie kolejnej Hadamard na bicie docelowym.

tigerjack89
źródło