Implementación del algoritmo del oráculo de Grover en IBM Q utilizando tres qubits


10

Estoy tratando de acostumbrarme a IBM Q mediante la implementación de tres qubits del algoritmo de Grover, pero tengo dificultades para implementar el oráculo.

¿Podría mostrar cómo hacer eso o sugerir algunos buenos recursos para acostumbrarse a la programación del circuito IBM Q?

Lo que quiero hacer es marcar un estado arbitrario cambiando su signo como se supone que debe hacer el oráculo.

Por ejemplo, tengo

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

y quiero marcar por voltear a su signo - | 111 . De alguna manera entiendo que la puerta CCZ resolvería el problema, pero no tenemos la puerta CCZ en IBM Q. La combinación de algunas puertas actuará igual que CCZ, pero todavía no estoy seguro de cómo hacerlo. Y también estoy luchando por los otros casos, no solo por | 111 .El |111-El |111El |111

El caso de dos qubits es lo suficientemente simple para que lo implemente, pero el cuidado de tres qubits sigue siendo confuso para mí.


1
Su documentación incluye algunos ejemplos del algoritmo de Grover, aunque no recuerdo cuán grande era el espacio de búsqueda.
Norrius

Gracias por el comentario. Sí, esta página ( quantumexperience.ng.bluemix.net/proxy/tutorial/full-user-guide/… ) explica la implementación del algoritmo de Grover de dos qubits.
Bick

Respuestas:


4

Estoy respondiendo mi pregunta. Después de una búsqueda en Google, encontré esta imagen que muestra la puerta CCZ de CNOT, T dagger y T gate. Intenté esto en IBM Q y funcionó. Quiero explorar por qué funciona, pero esa es otra historia.

Para alguien que esté interesado, aquí está mi circuito cuántico del algoritmo de Grover que encuentra | 111> con una iteración.

El algoritmo de Grover encuentra | 111> con una iteración


1
Desea buscar circuitos estándar para la puerta controlada-controlada-NO (también llamada Toffoli). Es la Fig. 4.9 en mi versión de Nielsen & Chuang. Para convertir en una puerta de fase controlada controlada, simplemente pegue un Hadamard en el qubit objetivo antes y después (o, si ya hay Hadamards en cada extremo, simplemente retírelos).
DaftWullie

0

Implementé el mismo problema para múltiples qubits usando qiskit aquí .

...El |111

En general, la idea es simular una puerta CCZ utilizando Hadamard en el bit objetivo seguido de una puerta CCX y luego otra Hadamard en el bit objetivo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.