Desmitificando los principios de la computación cuántica

Desmitificando los principios de la computación cuántica
"Creo que puedo decir con seguridad que nadie entiende la mecánica cuántica." - Richard Feynman

El tema de la computación cuántica siempre ha fascinado a escritores y periodistas de tecnología. Su potencial computacional y su complejidad le dieron un cierto aura mística. Con demasiada frecuencia, los artículos de fondo y las infografías describen en detalle las diversas perspectivas de esta industria, sin apenas tocar su aplicación práctica: esto puede engañar al lector menos atento.

Los artículos de divulgación científica omiten descripciones de sistemas cuánticos y hacen afirmaciones como:

Un bit normal puede ser un 1 o un 0, pero un qubit puede ser un 1 y un 0 al mismo tiempo.

Si tienes mucha suerte (de lo cual no estoy seguro), te dirán que:

El qubit está en superposición entre "1" y "0".

Ninguna de estas explicaciones parece plausible, ya que estamos intentando formular un fenómeno de la mecánica cuántica utilizando un lenguaje desarrollado en un mundo muy tradicional. Para explicar claramente los principios de la computación cuántica, es necesario utilizar otro lenguaje: el matemático. 

En este tutorial, cubriré las herramientas matemáticas necesarias para modelar y comprender los sistemas de computación cuántica, así como también cómo ilustrar y aplicar la lógica de la computación cuántica. Además, daré un ejemplo de algoritmo cuántico y les diré cuál es su ventaja sobre una computadora tradicional.

Haré todo lo posible para explicar todo esto en un lenguaje claro, pero aún espero que los lectores de este artículo tengan una comprensión básica de álgebra lineal y lógica digital (el álgebra lineal está cubierta aquí, sobre lógica digital - aquí). 

Primero, repasemos los principios de la lógica digital. Se basa en el uso de circuitos eléctricos para realizar cálculos. Para hacer nuestra descripción más abstracta, simplifiquemos el estado del cable eléctrico a “1” o “0”, que corresponderá a los estados “encendido” o “apagado”. Al organizar los transistores en una secuencia determinada, crearemos los llamados elementos lógicos que toman uno o más valores de señal de entrada y los convierten en una señal de salida según ciertas reglas de la lógica booleana.

Desmitificando los principios de la computación cuántica

Puertas lógicas comunes y sus tablas de estado.

A partir de cadenas de elementos tan básicos se pueden crear elementos más complejos y, en última instancia, con un alto grado de abstracción, podemos esperar obtener un análogo de un procesador central.

Como mencioné anteriormente, necesitamos una forma de representar matemáticamente la lógica digital. Primero, introduzcamos la lógica matemática tradicional. Usando álgebra lineal, los bits clásicos con los valores "1" y "0" se pueden representar como dos vectores de columna:
Desmitificando los principios de la computación cuántica
donde están los números de la izquierda Notación de Dirac vector. Al representar nuestros bits de esta manera, podemos modelar operaciones lógicas en los bits usando transformaciones vectoriales. Tenga en cuenta: aunque el uso de dos bits en puertas lógicas puede realizar muchas operaciones (AND, NOT, XOR, etc.), cuando se usa un bit, solo se pueden realizar cuatro operaciones: conversión de identidad, negación, cálculo de la constante “0” y cálculo de la constante “1”. Con una conversión de identidad, el bit permanece sin cambios, con una negación, el valor del bit cambia al opuesto (de “0” a “1” o de “1” a “0”), y el cálculo de la constante “1” o "0" establece el bit en "1" o "0" independientemente de su valor anterior.
Desmitificando los principios de la computación cuántica

Identidad Transformación de identidad
la Negación Negación
Constante-0 Cálculo de la constante "0"
Constante-1 Cálculo de la constante "1"

Según nuestra nueva representación propuesta de un bit, es bastante fácil realizar operaciones en el bit correspondiente usando una transformación vectorial:

Desmitificando los principios de la computación cuántica

Antes de continuar, veamos el concepto. cálculos reversibles, lo que simplemente implica que para garantizar la reversibilidad de una operación o elemento lógico, es necesario determinar una lista de valores de señales de entrada en función de las señales de salida y los nombres de las operaciones utilizadas. Así, podemos concluir que la transformación y negación de identidad son reversibles, pero las operaciones para calcular las constantes “1” y “0” no lo son. Gracias a unitaridad En la mecánica cuántica, las computadoras cuánticas utilizan operaciones exclusivamente reversibles, así que nos centraremos en eso. A continuación, convertimos elementos irreversibles en elementos reversibles para que puedan ser utilizados por una computadora cuántica.

Con producto tensorial Los bits individuales se pueden representar mediante muchos bits:
Desmitificando los principios de la computación cuántica
Ahora que tenemos casi todos los conceptos matemáticos necesarios, pasemos a nuestra primera puerta de lógica cuántica. este es el operador CNOT, o No controlado (NOT), que es de gran importancia en la computación reversible y cuántica. El elemento CNOT se aplica a dos bits y devuelve dos bits. El primer bit se designa como bit de "control" y el segundo como bit de "control". Si el bit de control se establece en "1", el bit de control cambia su valor; Si el bit de control se establece en "0", el bit de control no se modifica.
Desmitificando los principios de la computación cuántica
Este operador se puede representar como el siguiente vector de transformación:
Desmitificando los principios de la computación cuántica
Para demostrar todo lo que hemos cubierto hasta ahora, le mostraré cómo usar el elemento CNOT en múltiples bits:
Desmitificando los principios de la computación cuántica
Para resumir lo ya dicho: en el primer ejemplo descomponemos |10⟩ en partes de su producto tensorial y utilizamos la matriz CNOT para obtener un nuevo estado correspondiente del producto; luego lo factorizamos a |11⟩ según la tabla de valores CNOT proporcionada anteriormente.

Entonces, hemos recordado todas las reglas matemáticas que nos ayudarán a comprender la computación tradicional y los bits ordinarios, y finalmente podemos pasar a la computación cuántica y los qubits modernos.

Si ha leído hasta aquí, tengo buenas noticias para usted: los qubits se pueden expresar matemáticamente fácilmente. En general, si un bit clásico (cbit) se puede configurar en |1⟩ o |0⟩, el qubit está simplemente en superposición y puede ser |0⟩ y |1⟩ antes de la medición. Después de la medición, colapsa en |0⟩ o |1⟩. En otras palabras, un qubit se puede representar como una combinación lineal de |0⟩ y |1⟩ según la siguiente fórmula:
Desmitificando los principios de la computación cuántica
donde un₀ и un₁ representan, respectivamente, las amplitudes |0⟩ y |1⟩. Estas pueden considerarse como "probabilidades cuánticas", que representan la probabilidad de que un qubit colapse en uno de los estados después de ser medido, ya que en mecánica cuántica un objeto en superposición colapsa en uno de los estados después de ser fijado. Ampliemos esta expresión y obtengamos lo siguiente:
Desmitificando los principios de la computación cuántica
Para simplificar mi explicación, esta es la representación que usaré en este artículo.

Para este qubit, la posibilidad de colapsar al valor un₀ después de la medición es igual a |a₀|², y la posibilidad de colapso al valor a₁ es igual a |a₁|². Por ejemplo, para el siguiente qubit:
Desmitificando los principios de la computación cuántica
la probabilidad de colapsar en “1” es igual a |1/ √2|², o ½, es decir, 50/50.

Dado que en el sistema clásico todas las probabilidades deben sumar uno (para una distribución de probabilidad completa), podemos concluir que los cuadrados de los valores absolutos de las amplitudes |0⟩ y |1⟩ deben sumar uno. Con base en esta información podemos formular la siguiente ecuación:
Desmitificando los principios de la computación cuántica
Si estás familiarizado con la trigonometría, notarás que esta ecuación corresponde al teorema de Pitágoras (a²+b²=c²), es decir, podemos representar gráficamente los posibles estados del qubit como puntos del círculo unitario, a saber:
Desmitificando los principios de la computación cuántica
Los operadores y elementos lógicos se aplican a los qubits de la misma manera que en el caso de los bits clásicos, basándose en una transformación matricial. Todos los operadores matriciales invertibles que hemos recordado hasta ahora, en particular CNOT, se pueden utilizar para trabajar con qubits. Estos operadores matriciales le permiten utilizar cada una de las amplitudes del qubit sin medirlo ni colapsarlo. Déjame darte un ejemplo del uso del operador de negación en un qubit:
Desmitificando los principios de la computación cuántica
Antes de continuar, déjame recordarte que los valores de amplitud a₀ y a₁ son en realidad números complejos, por lo que el estado de un qubit se puede mapear con mayor precisión en una esfera unitaria tridimensional, también conocida como Esfera de pulgas:
Desmitificando los principios de la computación cuántica
Sin embargo, para simplificar la explicación, nos limitaremos aquí a los números reales.

Parece hora de discutir algunos elementos lógicos que tienen sentido únicamente en el contexto de la computación cuántica.

Uno de los operadores más importantes es el "elemento Hadamard": toma un bit en un estado "0" o "1" y lo coloca en la superposición apropiada con un 50% de posibilidades de colapsar en un "1" o "0". después de la medición. 
Desmitificando los principios de la computación cuántica
Observe que hay un número negativo en la parte inferior derecha del operador Hadamard. Esto se debe a que el resultado de aplicar el operador depende del valor de la señal de entrada: - |1⟩ o |0⟩, por lo que el cálculo es reversible.

Otro punto importante sobre el elemento Hadamard es su invertibilidad, lo que significa que puede tomar un qubit en la superposición apropiada y transformarlo en |0⟩ o |1⟩.
Desmitificando los principios de la computación cuántica
Esto es muy importante porque nos da la capacidad de transformarnos desde un estado cuántico sin determinar el estado del qubit y, en consecuencia, sin colapsarlo. Por lo tanto, podemos estructurar la computación cuántica basándose en un principio determinista en lugar de probabilístico.

Los operadores cuánticos que contienen solo números reales son sus opuestos, por lo que podemos representar el resultado de aplicar el operador a un qubit como una transformación dentro del círculo unitario en forma de máquina de estados:
Desmitificando los principios de la computación cuántica
Así, el qubit, cuyo estado se presenta en el diagrama anterior, tras aplicar la operación Hadamard, se transforma al estado indicado por la flecha correspondiente. Del mismo modo, podemos construir otra máquina de estados que ilustrará la transformación de un qubit utilizando el operador de negación como se muestra arriba (también conocido como operador de negación de Pauli o inversión de bits), como se muestra a continuación:
Desmitificando los principios de la computación cuántica
Para realizar operaciones más complejas en nuestro qubit, podemos encadenar múltiples operadores o aplicar elementos varias veces. Ejemplo de transformación en serie basada en representaciones de circuitos cuánticos выглядит следующим образом:
Desmitificando los principios de la computación cuántica
Es decir, si comenzamos con el bit |0⟩, aplicamos una inversión de bits y luego una operación de Hadamard, luego otra inversión de bits y nuevamente una operación de Hadamard, seguida de una inversión de bits final, terminamos con el vector dado por on el lado derecho de la cadena. Al colocar diferentes máquinas de estados una encima de otra, podemos comenzar en |0⟩ y trazar las flechas de colores correspondientes a cada una de las transformaciones para comprender cómo funciona todo.
Desmitificando los principios de la computación cuántica
Dado que hemos llegado hasta aquí, es hora de considerar uno de los tipos de algoritmos cuánticos, a saber: Algoritmo de Deutsch-Jozsa, y mostrar su ventaja sobre una computadora clásica. Vale la pena señalar que el algoritmo de Deutsch-Jozsa es completamente determinista, es decir, devuelve la respuesta correcta el 100% de las veces (a diferencia de muchos otros algoritmos cuánticos basados ​​en la definición probabilística de qubits).

Imaginemos que tiene una caja negra que contiene una función/operador en un bit (recuerde: con un bit, solo se pueden realizar cuatro operaciones: conversión de identidad, negación, evaluación de la constante "0" y evaluación de la constante "1). "). ¿Cuál es exactamente la función que se realiza en la caja? No sabes cuál, pero puedes revisar tantas variantes de valores de entrada como quieras y evaluar los resultados de salida.

Desmitificando los principios de la computación cuántica
¿Cuántas entradas y salidas tendría que pasar por la caja negra para determinar qué función se está utilizando? Piensa en esto por un segundo.

En el caso de una computadora clásica, será necesario realizar 2 consultas para determinar la función a utilizar. Por ejemplo, si la entrada "1" produce una salida "0", queda claro que se utiliza la función de cálculo de la constante "0" o la función de negación, después de lo cual será necesario cambiar el valor de la señal de entrada. a "0" y ver qué pasa en la salida.

En el caso de una computadora cuántica, también serán necesarias dos consultas, ya que aún se necesitan dos valores de salida diferentes para definir con precisión la función que se aplicará al valor de entrada. Sin embargo, si reformulas un poco la pregunta, resulta que los ordenadores cuánticos todavía tienen una gran ventaja: si quisieras saber si la función utilizada es constante o variable, los ordenadores cuánticos tendrían la ventaja.

La función utilizada en el cuadro es variable si diferentes valores de la señal de entrada producen diferentes resultados en la salida (por ejemplo, conversión de identidad e inversión de bits), y si el valor de salida no cambia independientemente del valor de entrada, entonces la la función es constante (por ejemplo, calcular una constante "1" o calcular la constante "0").

Usando un algoritmo cuántico, puedes determinar si una función en una caja negra es constante o variable basándose en una sola consulta. Pero antes de ver cómo hacer esto en detalle, necesitamos encontrar una manera de estructurar cada una de estas funciones en una computadora cuántica. Dado que todos los operadores cuánticos deben ser invertibles, inmediatamente nos enfrentamos a un problema: las funciones para calcular las constantes "1" y "0" no lo son.

Una solución común utilizada en la computación cuántica es agregar un qubit de salida adicional que devuelva cualquier valor de entrada que reciba la función. 

Antes de Despues
Desmitificando los principios de la computación cuántica Desmitificando los principios de la computación cuántica

De esta manera, podemos determinar los valores de entrada basándose únicamente en el valor de salida y la función se vuelve invertible. La estructura de los circuitos cuánticos crea la necesidad de un bit de entrada adicional. Para desarrollar los operadores correspondientes, asumiremos que el qubit de entrada adicional está establecido en |0⟩.

Usando la misma representación del circuito cuántico que usamos anteriormente, veamos cómo cada uno de los cuatro elementos (transformación de identidad, negación, evaluación de la constante "0" y evaluación de la constante "1") se puede implementar usando operadores cuánticos. 

Por ejemplo, así es como puedes implementar la función para calcular la constante “0”:

Cálculo de la constante "0":
Desmitificando los principios de la computación cuántica
Aquí no necesitamos operadores en absoluto. El primer qubit de entrada (que asumimos que era |0⟩) regresa con el mismo valor, y el segundo valor de entrada regresa solo, como de costumbre.

Con la función para calcular la constante “1” la situación es un poco diferente:

Cálculo de la constante "1":
Desmitificando los principios de la computación cuántica
Como hemos asumido que el primer qubit de entrada siempre está configurado en |0⟩, el resultado de aplicar el operador de inversión de bits es que siempre produce uno en la salida. Y como es habitual, el segundo qubit da su propio valor en la salida.

Al mapear el operador de transformación de identidad, la tarea comienza a complicarse. He aquí cómo hacerlo:

Transformación idéntica:
Desmitificando los principios de la computación cuántica
El símbolo utilizado aquí indica el elemento CNOT: la línea superior indica el bit de control y la línea inferior indica el bit de control. Permítanme recordarles que cuando se utiliza el operador CNOT, el valor del bit de control cambia si el bit de control es igual a |1⟩, pero permanece sin cambios si el bit de control es igual a |0⟩. Como asumimos que el valor de la línea superior siempre es igual a |0⟩, su valor siempre se asigna a la línea inferior.

Procedemos de forma similar con el operador de negación:

Negación:
Desmitificando los principios de la computación cuántica
Simplemente invertimos el bit al final de la línea de salida.

Ahora que hemos aclarado esa comprensión preliminar, veamos las ventajas específicas de una computadora cuántica sobre una computadora tradicional cuando se trata de determinar la constancia o variabilidad de una función oculta en una caja negra usando una sola consulta.

Para resolver este problema utilizando la computación cuántica en una sola solicitud, es necesario superponer los qubits de entrada antes de pasarlos a la función, como se muestra a continuación:
Desmitificando los principios de la computación cuántica
El elemento Hadamard se vuelve a aplicar al resultado de la función para separar los qubits de la superposición y hacer que el algoritmo sea determinista. Iniciamos el sistema en el estado |00⟩ y, por razones que explicaré en breve, obtenemos el resultado |11⟩ si la función aplicada es constante. Si la función dentro del cuadro negro es variable, luego de la medición el sistema devuelve el resultado |01⟩.

Para entender el resto del artículo, veamos la ilustración que mostré anteriormente:
Desmitificando los principios de la computación cuántica
Al usar el operador de inversión de bits y luego aplicar el elemento Hadamard a ambos valores de entrada iguales a |0⟩, nos aseguramos de que se traduzcan a la misma superposición de |0⟩ y |1⟩, de la siguiente manera:
Desmitificando los principios de la computación cuántica
Usando el ejemplo de pasar este valor a una función de caja negra, es fácil demostrar que ambas funciones de valor constante generan |11⟩.

Cálculo de la constante "0":
Desmitificando los principios de la computación cuántica
De manera similar, vemos que la función para calcular la constante “1” también produce |11⟩ como salida, es decir:

Cálculo de la constante "1":
Desmitificando los principios de la computación cuántica
Tenga en cuenta que la salida será |1⟩, ya que -1² = 1.

Por el mismo principio, podemos demostrar que al usar ambas funciones variables, siempre obtendremos |01⟩ en la salida (siempre que usemos el mismo método), aunque todo es un poco más complicado.

Transformación idéntica:
Desmitificando los principios de la computación cuántica
Dado que CNOT es un operador de dos qubits, no se puede representar como una máquina de estados simple y, por lo tanto, es necesario definir dos señales de salida basadas en el producto tensorial de ambos qubits de entrada y la multiplicación por la matriz CNOT como se describió anteriormente:
Desmitificando los principios de la computación cuántica
Con este método también podemos confirmar que se recibe el valor de salida |01⟩ si la función de negación está oculta en el cuadro negro:

Negación:
Desmitificando los principios de la computación cuántica
Así, acabamos de demostrar una situación en la que una computadora cuántica es claramente más eficiente que una computadora convencional.

¿Y ahora qué?

Sugiero que terminemos aquí. Ya hicimos un gran trabajo. Si ha entendido todo lo que he cubierto, creo que ahora comprende bien los conceptos básicos de la computación cuántica y la lógica cuántica, y por qué los algoritmos cuánticos pueden ser más eficientes que la computación tradicional en determinadas situaciones.

Mi descripción difícilmente puede considerarse una guía completa sobre algoritmos y computación cuántica; más bien, es una breve introducción a las matemáticas y la notación, diseñada para disipar las ideas de los lectores sobre el tema impuestas por fuentes científicas populares (en serio, muchos realmente no pueden entender ¡la situación!). No tuve tiempo de tocar muchos temas importantes, como entrelazamiento cuántico de qubits, complejidad de los valores de amplitud |0⟩ y |1⟩ y el funcionamiento de varios elementos de la lógica cuántica durante la transformación por la esfera de Bloch.

Si quieres sistematizar y estructurar tus conocimientos sobre ordenadores cuánticos, fuertemente te recomiendo leer "Introducción a los algoritmos cuánticos" Emma Strubel: a pesar de la abundancia de fórmulas matemáticas, este libro analiza los algoritmos cuánticos con mucho más detalle.

Fuente: habr.com

Añadir un comentario