¿Cómo funciona la computación cuántica adiabática en términos simples?

Si has leído esta respuesta antes, notarás que he hecho una reescritura completa de ella. Esperemos que las cosas estén más claras esta vez.

La computación cuántica adiabática (AQC, en adelante) es un paradigma fundamentalmente diferente del modelo de circuito o puerta cuántica en el que está trabajando la mayoría de los investigadores. Guardaré los detalles de este último y le haré preguntas como las siguientes:

¿Cómo funciona la computación cuántica? ¿Qué lo hace diferente del paradigma informático actual? ¿Qué tipo de problemas podría ayudar a resolver la computación cuántica? ¿Cómo se realiza la corrección de errores?

Pero señalaré que se ha demostrado matemáticamente que el modelo adiabático y el modelo de compuerta son equivalentes, por lo que es posible encontrar cualquier algoritmo equivalente que pueda ejecutarse en un tipo de máquina para el otro, aunque no hay garantía en eficiencia. Eso es importante tener en cuenta. Alguien puede encontrar la versión adiabática del algoritmo de Shor, pero es probable que ni siquiera supere los métodos de computación clásicos.

En el modelo adiabático, hay algunas cosas importantes que continúan y se describen a continuación:

  1. Codifique su problema (en términos de un problema Booleano SAT)
  2. Prepare el estado inicial de qubits (programe su problema)
  3. Proceso de recocido (cambio lentamente del estado inicial al final)
  4. Mida su respuesta

Mirándolo de esa manera, la computación usando un AQC parece muy simple.

Codificando el problema
Al principio, tendrá que traducir su problema en uno que el AQC pueda manejar. En general, esto será en la forma de un problema de satisfacción booleana. Esto tendrá una forma específica en términos de notación matemática, pero la idea principal detrás de esto es que tendrá un problema de optimización que necesita para encontrar el mínimo o el máximo de. También habrá muchas restricciones. Piensa en términos de una gráfica. Tienes una colección de nodos en una cuadrícula, y todos están conectados al principio. Este gráfico es análogo al “programa” en un AQC, donde el estado inicial de los qubits se conecta de cierta manera.

Estado inicial
Para cualquier control de calidad, necesita un estado inicial. En la computación clásica son bits, en la computación cuántica son qubits. Le referiré nuevamente a la pregunta más amplia de cómo funciona el control de calidad anterior para entender cómo funcionan los qubits y el control de calidad en general.

En AQC, los qubits tienen una cierta conectividad. Por ejemplo, si sus qubits son la dirección del campo magnético (hacia arriba o hacia abajo dependiendo de si la corriente va en sentido horario o antihorario, pero debido a la unión de Josephson será una superposición de los dos) a través del bucle de un dispositivo superconductor de interferencia cuántica (SQUID), entonces usted tiene cables superconductores que conectan estos SQUID. Estos cables se pueden “apagar” según sea necesario para codificar el problema inicial en el dispositivo.

Así es como se ve un SQUID:


Aquí hay otro diagrama del blog de D-Wave. La figura de la derecha muestra la conectividad en su propia máquina.

Algo importante que se debe tener en cuenta aquí es que el sistema de D-Wave no está completamente conectado , lo que puede ver porque los nodos 1,2,3 y 4 no están conectados entre sí. Esto significa que su máquina es un subconjunto de un AQC teórico más poderoso, pero debido a las limitaciones experimentales, se han ido con la arquitectura mostrada.

Proceso de Recocido
Ahora aquí es donde realmente sucede el cálculo. Se me ha ocurrido lo que creo que es una analogía decente, así que vea si tiene sentido para usted.

Imagina que pones un bloque de hielo en una taza y subes el fuego para que se derrita. Tu objetivo es hacer que el hielo se derrita lo más lentamente posible, para que cuando tengas tu taza de agua, tengas absolutamente cero vibraciones u ondas. Se puede imaginar que, por algún método de supercalentamiento, si el cubo de hielo se convirtiera instantáneamente en agua, habría olas en todas partes, ya que el agua correría hacia las paredes de la taza. Lo que quieres hacer es calentarlo lentamente para que esto nunca suceda, ni siquiera en lo más mínimo. Su tolerancia es, digamos, 99%. Si su cubo de hielo es un AQC, las vibraciones en el estado final (el agua) son “excitaciones”, que básicamente significan errores y, por lo tanto, le dan respuestas incorrectas. Pueden estar cerca, pero no serían óptimos.

Entonces, este sistema de qubits conectados en forma de SQUID es que usted prepara este sistema con un campo magnético que va de cierta manera. Entonces, lentamente, desactiva su estado inicial mientras que lentamente enciende su estado final. Básicamente, estás pasando por un estado mixto de energía inicial y final, aunque al final básicamente no quedarán partes iniciales del problema en el estado y solo te quedará el estado final. Una forma alternativa es comenzar con los dos estados activados, pero hacer que el estado inicial sea mucho, mucho más fuerte que la parte final del estado, y luego apagar lentamente el estado inicial muy grande. Si encuentra esto confuso, eche un vistazo a esta ecuación (y no se asuste, lo explicaré).


H significa Hamiltoniano , que es solo un nombre para una matriz que define el estado de energía total del sistema. Los tres términos, te darás cuenta, se pueden agrupar en dos términos realmente. Las grandes Z y X se refieren a las matrices de espín. Entonces, en términos de esta ecuación, su estado inicial se rige por el último término, y su estado final se rige por los dos primeros términos. Las matrices de espín muestran el cambio del estado de base X al estado de base Z. Cuando prepara su sistema inicial de qubits, los pone a todos en el estado X-spin y luego recuece al estado Z-spin. Imagina que h y J son mucho, mucho más pequeños que K inicialmente. Cuando realiza el recocido, apaga lentamente K para que cuando termine, solo quede con lo que haya en los dos primeros términos. Así es como funciona el proceso de recocido.

Ahora, para recocer correctamente y obtener la respuesta correcta, debe asegurarse de que le está dando el tiempo suficiente para resolver sin excitaciones. La ecuación anterior depende del tiempo, o más específicamente, los términos h, J y K dependen del tiempo. Ahora el teorema adiabático le dirá que a menos que corra para t = infinito, no alcanzará el 100% de precisión. Aún así, podemos acercarnos. Incluso el 90% no es tan malo, dado que está alcanzando rápidamente una solución óptima.

En términos de la matemática y la mecánica cuántica, su vector de estado siempre debe estar en el estado propio más bajo del Hamiltoniano. Un estado propio, en álgebra lineal, sería equivalente a un vector propio de alguna matriz. Si está familiarizado con la mecánica cuántica, sabrá que las partículas solo pueden estar en estados de energía discretos. La energía de este sistema sería el Hamiltoniano, que es una matriz, y el estado de energía más bajo viene dado por el vector propio más bajo de este Hamiltoniano. Si quisiera saber el nivel de energía real, ese sería el valor propio más bajo que corresponde con el vector / estado propio mencionado anteriormente. Ahora, cuando estás recociendo, siempre quieres estar en el estado fundamental . Esta es la razón por la que debes moverte lentamente, porque si te mueves demasiado rápido, estás impartiendo energía al sistema, provocando excitaciones y saltos a niveles de energía más altos. Esto no es bueno porque de ahí vienen tus errores.

Estado final
Una vez que haya pasado por el proceso de recocido, se preguntará algunas cosas. ¿Cómo sé que he recibido la respuesta correcta? ¿Cuánto tiempo debería haber dado mi programa para ejecutar? ¿Hay una manera de hacer alguna corrección de errores sobre la marcha?

Bueno, tendrá que hacer pruebas sobre su problema para saber si obtuvo la respuesta correcta. Normalmente, si está resolviendo un problema de NP-completo, puede verificar si su solución es correcta con bastante rapidez. Aún así, querrá ejecutar el cálculo muchas veces hasta que ponga ese algoritmo en particular en un caso serio. Sin embargo, también existen medidas para esto, y tienen que ver con rastrear la energía real del Hamiltoniano, encontrar su vector propio de estado fundamental y luego compararla con lo que realmente es su estado qubit. El producto interno de los dos le mostrará su error. Tenga en cuenta que esto solo puede hacerse teóricamente, ya que no sería capaz de rastrear su estado cuántico sin observarlo (y, por lo tanto, cambiarlo).

La corrección de errores sobre la marcha también es posible en una simulación de un AQC. Déjame retroceder aquí. Existe la idea de que puede escribir algún software numérico para simular el proceso de recocido y crear un esquema de tiempo para su algoritmo en particular. Ya que es una simulación, tienes acceso a tu vector de estado en todo momento y puedes medir el error predicho de acuerdo con las matemáticas. Puede realizar la corrección de errores sobre la marcha observando las medidas de error y corrección, y luego ajustando sus tiempos de recocido en consecuencia. Echa un vistazo a este gráfico:

Esto es lo que se llama el eigenspectrum de una simulación de 1 qubit. Básicamente, le está mostrando las energías a través del tiempo de recocido por 1 qubit. Mira el eje x como el tiempo. La curva inferior es el estado fundamental y la curva superior es el primer estado excitado. Observe cómo en algún momento obtendrá que las dos curvas están muy cerca. Este es un punto crucial, ya que cuanto más pequeña es esta “brecha” de energía, más probable es que el estado del sistema salte a este estado de mayor energía en lugar de permanecer en el estado fundamental. Claramente este es un momento en el que quieres moverte muy lentamente. Por el contrario, cuando la brecha de energía es muy grande, puedes moverte bastante rápido sin preocuparte si vas a saltar a un estado más alto ya que es bastante improbable. Puedes crear un esquema de tiempo que signifique que subas muy rápido hasta ese punto n = 0.5, y comienzas a ir mucho más lentamente hasta que hayas pasado el umbral de la brecha pequeña.

De todos modos, eso es básicamente eso. AQC no ha existido durante mucho tiempo, por lo que la gente todavía está descubriendo muchas cosas al respecto. Tiene muchas aplicaciones potenciales, de las cuales tomo nota en mi respuesta a la pregunta que vinculé en la parte superior de esta respuesta, aunque puede encontrarla aquí: la respuesta de Hadayat Seddiqi a ¿Cómo funciona la computación cuántica? ¿Qué lo hace diferente del paradigma informático actual? ¿Qué tipo de problemas podría ayudar a resolver la computación cuántica? ¿Cómo se realiza la corrección de errores?

Déjeme saber si algo no está claro y le explicaré más y / o editaré mi respuesta.