El algoritmo Deutsch-Joja (también conocido como algoritmo Deutsch-Joza ) es un algoritmo cuántico propuesto por David Deutsch y Richard Joja en 1992 , y uno de los primeros algoritmos cuánticos . El algoritmo se basa en el fenómeno del entrelazamiento cuántico y el principio de superposición , por lo que demuestra una superioridad cuántica , una operación mucho más eficiente en comparación con los algoritmos clásicos conocidos.
El algoritmo de Deutsch es la primera versión del algoritmo desarrollado por Deutsch en 1985 ; considera una funciónde una variable.
Se sabe que una función booleana es constante (toma el mismo valor para todos los conjuntos de argumentos) o balanceada (para la mitad de los conjuntos de argumentos toma el valor , para la otra mitad toma ). Es necesario determinar el tipo de función refiriéndose al oráculo que evalúa la función el menor número de veces posible. Además, para abreviar, el conjunto completo también se puede denotar con un número de a con la notación binaria correspondiente .
Para obtener una respuesta exacta, cualquier algoritmo determinista clásico en el peor de los casos necesita hacer llamadas al oráculo, ya que los primeros cálculos pueden dar el mismo valor, a pesar de que la función está balanceada. El algoritmo probabilístico clásico requerirá menos cálculos para garantizar una alta probabilidad de obtener la respuesta correcta, pero también alcanzará la unidad solo después de no menos de cálculos.
En el entorno cuántico, el cálculo de una función se produce en forma de llamada a un oráculo cuántico , que produce una transformación unitaria que actúa sobre un conjunto de qubits que actúan como argumentos de la función, así como un qubit objetivo , sobre que se reflejarán los cálculos. El resultado de tal transformación para cualquier estado propio es el conjunto , donde es la designación del “o” exclusivo , correspondiente al resultado de la operación de negación controlada de un qubit con la ayuda de un qubit . Dado que las transformaciones unitarias son lineales , el resultado de una transformación dada para una superposición de estados propios se define como
Para el algoritmo Deutsch-Jozhi, una sola llamada al oráculo cuántico es suficiente para resolver el problema de manera confiable.
El algoritmo se basa en la transformada de Hadamard , que da como resultado superposiciones de estados propios de qubit
Si, al acceder al oráculo, el qubit de destino está en el estado , el oráculo implementa la llamada consulta de fase, cuyo resultado para los estados propios es multiplicar el estado completo por [1] :
Así, en el caso de superposición de estados, la consulta de fase invierte la fase de todos los estados correspondientes a , y deja sin cambios los estados correspondientes a . Como argumento de consulta de fase, el algoritmo Deutsch-Joji utiliza el estado
que es una superposición uniforme de todos los estados propios de un conjunto de qubits. Aquí denota la exponenciación a través de un producto tensorial (Kronecker) . El resultado de aplicar una consulta de fase a dicho estado es
Después de volver a aplicar la transformación a los primeros qubits, la amplitud del estado será igual a
es decir, con o con , o si la función está balanceada. Por lo tanto, verificar el saldo de una función es equivalente a verificar que todos los qubits estén en el estado al final del algoritmo.
En otras palabras, el algoritmo es la aplicación del operador al vector cero y la medida del estado del registro. Si todos los bits de registro son iguales , entonces el valor de la función no depende de , de lo contrario, la función está balanceada.
Si la función está desequilibrada, el algoritmo puede dar la respuesta "constante" con una probabilidad que crece con el aumento de la diferencia entre el número de "0" y "1" [2] .
La entrada al algoritmo es una función booleana de una variable . Hay cuatro funciones de este tipo [1] :
No. | |||
---|---|---|---|
una | 0 | 0 | |
2 | una | una | |
3 | 0 | una | |
cuatro | una | 0 |
Las funciones 1 y 2 son constantes y las funciones 3 y 4 están balanceadas.
En el primer paso , el qubit recibe un estado cero:
La aplicación de la transformada de Hadamard da
En principio, sería posible asignar inmediatamente dicho estado a un qubit, pero técnicamente es más fácil establecer primero el estado cero y luego transformarlo usando transformaciones unitarias a la forma deseada.
Una llamada de fase a una función da el siguiente estado:
La segunda transformación de Hadamard conduce al siguiente estado:
Al medir el estado de un qubit, obtenemos 0 para funciones constantes y 1 para balanceadas:
No. | estado qubit | Probabilidad de obtener 0 |
probabilidad de obtener 1 | ||
---|---|---|---|---|---|
una | |||||
2 | |||||
3 | |||||
cuatro |
Algoritmos cuánticos | |
---|---|
informatica cuantica | |||||||||
---|---|---|---|---|---|---|---|---|---|
Conceptos generales |
| ||||||||
comunicaciones cuánticas |
| ||||||||
Algoritmos cuánticos |
| ||||||||
Teoría de la complejidad cuántica |
| ||||||||
Modelos de computación cuántica |
| ||||||||
Prevención de decoherencia |
| ||||||||
Implementaciones físicas |
|