¿Cómo podría un algoritmo informático cuántico ser determinista?

Fácil: solo tiene que tener una probabilidad 1 para dar la respuesta correcta. Sin embargo, la mayoría de los algoritmos que proporcionan aceleraciones significativas sobre los algos clásicos no son de ese tipo (generalmente apuntan a una probabilidad> 2/3, lo que significa que puede ejecutar el algoritmo más veces para estar cada vez más seguro de obtener la respuesta correcta).

Como un simple ejemplo, podría evitar usar operadores que coloquen qubits en cualquier lugar que no sean los polos de la esfera Bloch:

Por ejemplo, si los qubits se inicializan en el estado [math] | 0 \ rangle [/ math], puede usar SigmaX (voltear a lo largo del eje X) todo lo que desee; nunca dará como resultado que la “flecha” apunte a ningún lado en el medio (que representa superposiciones de los estados [math] | 0 \ rangle [/ math] y [math] | 1 \ rangle [/ math]). No habrá aleatoriedad en sus mediciones, actuará exactamente como un bit clásico (muy caro).

Como un ejemplo más complicado, puede “dirigir” el qubit a una superposición y luego “traerlo de vuelta”; por ejemplo, el operador Hadamard (pone un qubit en superposición igual entre [math] | 0 \ rangle [/ math] y [math] | 1 \ rangle [/ math]) es su propio inverso; nuevamente a partir de [math] | 0 \ rangle [/ math], aplíquelo una vez, y tiene un qubit en superposición; aplíquelo dos veces y obtendrá un “clásico” [math] | 0 \ rangle [/ math] nuevamente .

TL; DR: La física cuántica es solo una generalización de la física clásica: técnicamente, incluso la computadora en la que estás leyendo esto en este momento es una “computadora cuántica”; es solo que no está hecho para usar su naturaleza cuántica para obtener aceleraciones (algorítmicas). Entonces, también podría preguntarse cómo es posible que las computadoras y los algoritmos clásicos sean deterministas, dado que obedecen las reglas de la mecánica cuántica, como todas las demás cosas en el Universo 🙂

PD: si está interesado en esas cosas, hay un simulador de computadora cuántica en línea en Quantum Computing Playground, con su propio lenguaje de programación simple. También hay ejemplos de código, y las visualizaciones de los estados son relativamente agradables. Sin embargo, es posible que desee comenzar con el artículo de Wikipedia sobre computación cuántica: aún debe ser capaz de comprender lo que está viendo.

Cuando uno mira un algoritmo como la búsqueda de Grover, lo que hace (y esos otros algoritmos que siguen un principio similar) es escribir la información sobre las soluciones correctas en la superposición y luego realizar tales operaciones que aumenten las amplitudes asociadas con los resultados correctos. Lo que significa que utilizamos interferencia positiva y negativa, al igual que con las ondas clásicas: cuando las ondas se describen como [matemáticas] \ alpha_1 \ cdot0 [/ matemáticas] [¿cómo se usa la notación de corchetes en quora? ¿estándar \ bra y \ ket de Latex no parecen funcionar para mí?] y [math] \ alpha_2 \ cdot0 [/ math] (analógicamente para 1, ya que 0 y 1 es simplemente una división de la onda en una base ortogonal ), se puede producir una interferencia positiva o negativa en función del cambio de fase de [math] \ alpha [/ math] ‘s, por lo que la amplitud resultante puede ser mayor o menor. En Grover y otros algoritmos, aplicamos las compuertas de tal manera que las amplitudes de la solución correcta se amplifiquen (es decir, al final tendrán una mayor probabilidad de ser observadas).

Y también sostiene que todos los cálculos cuánticos (es decir, operaciones unitarias en sistemas de qubits) son completamente deterministas. Lo único indeterminado es la medición. Por lo tanto, ahora es bastante intuitivo que, en algunos casos especiales, cuando podemos alcanzar un estado en el que algunas ondas tienen fases opuestas y las mismas amplitudes y luego se aniquilan por completo, tendremos una medición determinista y, por lo tanto, un algoritmo determinista. El ejemplo más fácil para esto es como Vladislav ya dijo una puerta de Hadamard conocida (también conocida como lanzamiento de monedas cuánticas): después de un lanzamiento tenemos probabilidades de 1/2 y 1/2, pero si realizamos el lanzamiento dos veces (sin medir entre) Volverá al estado original con probabilidad 1 (es muy fácil tomar esta matriz y verificar manualmente por qué ocurre exactamente la interferencia de esta manera). Y en algunos casos especiales podemos obtener el mismo resultado en algoritmos más complejos: por ejemplo, el algoritmo de Grover utiliza la amplificación para obtener uno de los resultados correctos entre n posibilidades en [matemáticas] O (\ sqrt (n) [/ matemáticas] con buena probabilidad , pero en el caso especial cuando [matemática] n = 2 ^ k [/ matemática] y el número de resultados correctos es exactamente 1 / 4th ([matemática] 2 ^ (k-2) [/ matemática]) la interferencia sucede a funciona mejor y después de una iteración obtenemos un resultado correcto con certeza (algo obviamente imposible en los sistemas probabilísticos normales si solo seleccionamos elementos al azar; encontraríamos uno correcto en los 4 intentos esperados, pero solo se espera sin garantía de que realmente se termine en 4 intentos). Sin embargo, esos son casos bastante raros y generalmente esperarías un algoritmo BQP en lugar de EQP.