Estoy confundido acerca de qué ingresar a Oracle en el algoritmo de Grover.
¿No necesitamos ingresar a Oracle lo que estamos buscando y dónde encontrar lo que estamos buscando, además de los estados cuánticos superpuestos?
Por ejemplo, supongamos que tenemos una lista de nombres de personas {"Alice", "Bob", "Corey", "Dio"}, y queremos saber si "Dio" está en la lista. Entonces, Oracle debería tomar como entrada y salida . Entiendo eso.1 / 2 ( | 00 ⟩ + | 01 ⟩ + | 10 ⟩ - | 11 ⟩ )
¿Pero no necesitamos también ingresar la palabra "Dio" y la lista {"Alice", "Bob", "Corey", "Dio"} a Oracle? De lo contrario, ¿cómo puede Oracle devolver la salida? ¿No se menciona explícitamente ya que Oracle es una caja negra y no tenemos que pensar en cómo implementarlo?
Mi comprensión sobre Oracle es,
- Oracle tiene la capacidad de reconocer si la palabra "Dio" está en la lista.
- Para hacerlo, Oracle toma los estados cuánticos superpuestos como una entrada, donde cada estado cuántico representa el índice de la lista.
- Entonces, ingrese a Oracle significa, verifique si la palabra "Dio" está en el índice 0 de la lista y devuelva caso afirmativo y devuelva contrario.- | 00 ⟩ | 00 ⟩
- En nuestro caso, Oracle devuelve .
- ¿Pero qué hay de la lista y la palabra?