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
.
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 caso de dos qubits es lo suficientemente simple para que lo implemente, pero el cuidado de tres qubits sigue siendo confuso para mí.