¿Por qué es necesario un qubit de oráculo en el algoritmo de Grover?

10

Estoy un poco confundido acerca de la necesidad de un qubit de oráculo en el algoritmo de Grover.

Mi pregunta es, ¿depende de cómo implemente su oráculo si necesita un oráculo qubit o no? O, ¿hay alguna razón para un qubit oráculo? (por ejemplo, existen algunos problemas que no se pueden resolver sin un orbit qubit, o es más fácil pensar en el problema con un oráculo qubit, o es una convención, etc.)

Muchos recursos introducen el algoritmo de Grover con un qubit de oráculo, pero descubrí que hay algunos casos en los que no necesita un qubit de oráculo.

Por ejemplo, aquí hay dos implementaciones del algoritmo de Grover en el simulador IBM Q. Uno está usando un qubit de oráculo, y el otro no. En ambos casos, me gustaría encontrar | 11> desde un espacio de | 00>, | 01>, | 10> y | 11>. En ambos casos, Oracle cambia con éxito | 11> a - | 11>.

・ Con un orbit qubit ( Enlace al simulador IBM Q ) ingrese la descripción de la imagen aquí

・ Sin un orbit qubit ( Enlace al simulador IBM Q ) ingrese la descripción de la imagen aquí

Bick
fuente

Respuestas:

5

Desde la perspectiva de definir el circuito cuántico, el orbit qubit no es estrictamente necesario. Por ejemplo, en la búsqueda de Grover, normalmente puede definir la acción del oráculo como donde devuelve 1 si es el artículo marcado. Sin embargo, siempre usamos esto de una manera particular, ingresando en el qubit de oráculo. Esto tiene el efecto neto de simplemente implementar una fase en el elemento marcado. En otras palabras, es completamente equivalente a la implementación de una nueva

UEl |XEl |y=El |XEl |yF(X),
F(X)X(El |0 0-El |1)/ /2
U~El |X=(-1)F(X)El |X

Sin embargo, lo que marca la diferencia es la realidad práctica. Al buscar un elemento, realmente necesitaremos algún tipo de circuito que reconozca el elemento marcado, en función de la entrada de . En ese punto, es mucho más fácil pensar en generar la respuesta en el bit del oráculo, en lugar de construir directamente el unitario que da la fase sin usar el qubit de oráculo. De hecho, sospecho que si te pidiera que diseñaras una versión genérica , llegarías a con el qubit adicional como la solución.XU~U

DaftWullie
fuente
En realidad, es muy fácil evitar el qubit adicional, suponiendo que no se use como espacio de trabajo durante el cálculo de Oracle. Encuentre cualquier CNOT en el qubit adicional y reemplácelo con una puerta Z en el control del CNOT. Del mismo modo, reemplace los CCNOT en el qubit adicional con una CZ entre los dos controles del CCNOT. Etc.
Craig Gidney
@CraigGidney Es un punto justo, aunque creo que hay más suposiciones incorporadas en su declaración (haciéndolo no genérico, incluso si la mayoría de los casos que conocemos los satisfacen): (1) no debería haber ancillas intermedias utilizadas durante la evaluación de la función; (2) el circuito del oráculo debe descomponerse en un conjunto de compuertas donde las únicas compuertas de múltiples qubits que actúan en el qubit oracly son nots (multi) controlados que apuntan al qubit del oráculo; (3) ninguna otra puerta puede actuar en el qubit de oráculo (es decir, no puede simplemente revertir las c-not que actúan de manera incorrecta utilizando Hadamards en las entradas y salidas).
DaftWullie
Eso es correcto.
Craig Gidney,