Implementierung des Oracle of Grover-Algorithmus unter IBM Q mit drei Qubits

10

Ich versuche mich an IBM Q zu gewöhnen, indem ich den Grover-Algorithmus mit drei Qubits implementiere, aber Schwierigkeiten habe, das Orakel zu implementieren.

Können Sie zeigen, wie das geht, oder einige gute Ressourcen vorschlagen, um sich an die IBM Q-Schaltungsprogrammierung zu gewöhnen?

Was ich tun möchte, ist, einen beliebigen Zustand zu markieren, indem ich sein Zeichen als das Orakel umdrehe, das es tun soll.

Zum Beispiel habe ich

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

und ich möchte markieren, indem ich sein Zeichen auf . Ich verstehe irgendwie, dass das CCZ-Gate das Problem lösen würde, aber wir haben kein CCZ-Gate in IBM Q. Die Kombination einiger Gates funktioniert genauso wie das CCZ, aber ich bin mir noch nicht sicher, wie ich das machen soll. Und ich kämpfe auch um die anderen Fälle, nicht nur um .- | 111 | 111 |111- -|111|111

Der Fall mit zwei Qubits ist für mich einfach zu implementieren, aber die Pflege mit drei Qubits ist für mich immer noch verwirrend.

Bick
quelle
1
Ihre Dokumentation enthält einige Beispiele für Grovers Algorithmus, obwohl ich mich nicht erinnere, wie groß der Suchraum war.
Norrius
Danke für den Kommentar. Ja, diese Seite ( quantumexperience.ng.bluemix.net/proxy/tutorial/full-user-guide/… ) erklärt die Implementierung von zwei Qubits Grovers Algorithmus.
Bick

Antworten:

4

Ich beantworte meine Frage. Nach einiger Google-Suche fand ich dieses Bild, das das CCZ-Tor von CNOT, T-Dolch und T-Tor zeigt. Ich habe dies auf IBM Q versucht und es hat funktioniert. Ich möchte herausfinden, warum es funktioniert, aber das ist eine andere Geschichte.

Für jemanden, der interessiert ist, hier ist meine Quantenschaltung von Grovers Algorithmus, der | 111> mit einer Iteration findet.

Grovers Algorithmus findet | 111> mit einer Iteration

Bick
quelle
1
Sie möchten Standardschaltungen für das gesteuert-gesteuerte-NICHT-Gatter (auch Toffoli genannt) nachschlagen. Es ist Abb. 4.9 in meiner Version von Nielsen & Chuang. Um in ein Gate mit kontrollierter gesteuerter Phase umzuwandeln, kleben Sie einfach vorher und nachher einen Hadamard auf das Ziel-Qubit (oder entfernen Sie sie einfach, wenn sich an beiden Enden bereits Hadamards befinden).
DaftWullie
0

Ich habe das gleiche Problem für mehrere Qubits mit qiskit hier implementiert .

...|111

Im Allgemeinen besteht die Idee darin, ein CCZ-Gatter unter Verwendung von Hadamard auf dem Zielbit zu simulieren, gefolgt von einem CCX-Gatter und einem weiteren Hadamard auf dem Zielbit.

tigerjack89
quelle