Cálculo del estado fundamental con algoritmos cuánticos variacionales
Abstract
Departamento de Teoría de la Señal y Comunicaciones e Ingeniería Telemática
Full text
FACULTAD DE CIENCIAS TRABAJO FIN DE GRADO Grado en Física Cálculo del estado fundamental con algoritmos cuánticos variacionales Autor: Héctor Melchor Alaiz Tutores: Juan Carlos García Escartín y Luis Miguel Nieto Calzada Año: 2022-2023
2 Dedicado a mis padres y a María.
Resumen This work deals with the applications of the variational quantum eigensolver method for quantum computers to solving the Ising model. The algorithm allows to use the techniques from quantum computing to find out the energy of the ground state of certain Hamiltonians. The Ising model is studied for a one-dimensional spin chain with nearest neighbour interaction under the presence of a trasverse magnetic field. The solution is found for a system with 4 particles analyzing phenomena like the phase transition that occurs when the relative magnetic field amplitude is changed and the effect of noise in the quantum computer on the precision of the results. Este trabajo trata las aplicaciones del algoritmo cuántico variacional llamado variational quantum eigensolver al modelo de Ising. El algoritmo permite usar las técnicas de la computación cuántica para el cálculo de la energía del estado fundamental de ciertos Hamiltonianos. Se estudiará un modelo de Ising unidimensional con varios espines con interacción entre vecinos inmediatos bajo la presencia de un campo magnético transversal. Se presenta la solución para un sistema con 4 espines en la que se pueden apreciar fenómenos como la transición de fase que ocurre al variar el efecto relativo del campo magnético así como la influencia del ruido en el ordenador cuántico sobre los resultados.
Índice general 1. Introducción 4 2. Fundamentos de la computación cuántica 5 2.1. Postulados de la mecánica cuántica . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2. Teorema de descomposición espectral . . . . . . . . . . . . . . . . . . . . . . . 6 2.2.1. Superposición, entrelazamiento e interferencia . . . . . . . . . . . . . 7 2.3. Qubits ......................................... 8 2.3.1. Modelomatemático............................. 8 2.3.2. Base binaria y representación . . . . . . . . . . . . . . . . . . . . . . . 9 2.4. Puertascuánticas .................................. 10 2.4.1. PuertaX ................................... 11 2.4.2. PuertaY ................................... 11 2.4.3. PuertaZ ................................... 11 2.4.4. Puerta H o puerta Hadamard . . . . . . . . . . . . . . . . . . . . . . . 12 2.4.5. PuertaCNOT ................................ 12 2.5. EsferadeBloch.................................... 13 3. Algoritmos cuánticos 15 3.1. Introducción..................................... 15 3.2. Variational quantum eigensolver(VQE)....................... 16 4. El modelo de Ising 18 5. Elementos del VQE 20 5.1. Construcción del Hamiltoniano: . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.2. Transformación del Hamiltoniano: . . . . . . . . . . . . . . . . . . . . . . . . 20 5.3. Procesodemedida: ................................. 20 5.4. Preparación del ansatz: ............................... 21 5.4.1. Optimización de los parámetros: . . . . . . . . . . . . . . . . . . . . . 21 5.4.2. Mitigación del error: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6. Funcionamiento del algoritmo 23 6.1. Pre-procesamiento.................................. 23 6.1.1. Representación del Hamiltoniano . . . . . . . . . . . . . . . . . . . . . 23 6.1.2. Agrupamiento y estrategia de medición . . . . . . . . . . . . . . . . . 24 6.2. Elcuerpodelalgoritmo............................... 24 6.2.1. Preparación del ansatz . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.2.2. Rotacióndelabase ............................. 24 6.2.3. Medidafinal................................. 25 6.2.4. Actualización de parámetros . . . . . . . . . . . . . . . . . . . . . . . . 25 6.3. Post-procesamiento ................................. 25 2
ÍNDICE GENERAL 3 6.3.1. Mitigacióndelerror............................. 25 7. Experimentos 26 7.1. Cálculo de valores esperados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 7.1.1. 1qubit .................................... 26 7.1.2. 2qubits.................................... 27 7.2. Algoritmo VQE para la resolución de un modelo de Ising programado en Python 29 8. Resultados. Análisis de un sistema de 4 espines. 34 8.1. h=0 .......................................... 34 8.1.1. J=-1 ...................................... 35 8.1.2. J=1 ...................................... 35 8.2. h»J ........................................... 36 8.3. Magnetización y transición de fase . . . . . . . . . . . . . . . . . . . . . . . . 36 8.3.1. Simuladorsinruido............................. 36 9. Resumen y conclusiones 39
Capítulo 1 Introducción En este trabajo se explicará cómo utilizar un VQE (Variational Quantum Eigensolver) para la solución del modelo de Ising, que permite estudiar los campos de fase con un sistema sencillo pero no trivial. Se empezará dando una pequeña introducción a la mecánica cuántica junto al teorema de descomposición espectral y la superposición cuántica, el entrelazamiento cuántico y la interferencia en el capítulo 2. Entre otros temas, se darán los fundamentos para entender las distintas puertas cuánticas y la visualización de sus efectos usando la esfera de Bloch (sección 2.5). Además, en el capítulo 3 se comentan los algoritmos que pueden realizarse combinando las puertas cuánticas descritas en el capítulo 2. En el capítulo 4 se presenta el modelo de Ising que vamos a tratar con el algoritmo cuántico. En este capítulo se describe el sistema unidmensional de espines acoplados bajo estudio y su Hamiltoniano. El objetivo final será la búsqueda de los estados estables de mínima energía que se corresponden al autovector más pequeño del Hamiltoniano. El capítulo 5 repasa los elementos básicos necesarios para poder usar el algoritmos VQE, incluyendo cómo se construye y transforma el Hamiltoniano, cómo se prepara el ansatz y cómo optimizaremos los parámetros del mismo. El capítulo 6 muestra como se integran esos ingredientes para resolver el problema bajo estudio. Por último, se presenta el algoritmo elaborado para estudiar la energía mínima y la magnetización del estado fundamental en el modelo de Ising. Primero se comentarán los métodos generales y el código utilizado en el capítulo 7. En el capítulo 8 se usa el código desarrollado para estudiar un sistema de 4 espines analizando el estado fundamental para sistemas ferromagnéticos y paramagnéticos así como la aparición de una transición de fase al ir variando un campo magnético externo perpendicular a la orientación en la que se miden en los espines. Además, se muestra el efecto del ruido en un ordenador cuántico en la precisión de los resultados. El capítulo 9 resume los resultados de estas simulaciones y comenta las conclusiones que se pueden extraer. 4
Capítulo 2 Fundamentos de la computación cuántica Antes de entrar a valorar la idea de los algoritmos cuánticos y más en concreto de nuestro VQE vamos a recordar las ideas clave de la mecánica cuántica y en particular de cómo se aplica esta a la computación. 2.1. Postulados de la mecánica cuántica La mecánica cuántica se sustenta sobre los siguientes postulados [3]: 1. Todo estado físico en un tiempo t0se describe por medio de un ket |ψ(t0)⟩perteneciente al espacio de estados ϵ. 2. Las magnitudes físicas se representarán a través de operadores lineales que serán observables, esto es, hermíticos con autovalores reales y autovectores que formen base en el espacio de estados. 3. El único resultado posible de cualquier medición de un observable es uno de los autovalores aidel observable correspondiente A. 4. Principio de descomposición espectral: La probabilidad de obtener el autovalor aien una medida será: P(ai)=⟨ui|ψ⟩ 2.(2.1) Donde |ui⟩es el autovector del observable Acon autovalor ai. Si el autovalor está degenerado: P(ai)= gi X n=1 ⟨un i|ψ⟩ 2,(2.2) donde gies el grado de degeneración del autovector. 5
6CAPÍTULO 2. FUNDAMENTOS DE LA COMPUTACIÓN CUÁNTICA 5. Reducción del paquete de ondas: No se realiza una medida sin perturbar el estado correspondiente. La medición de un autovalor hará que se proyecte al estado correspondiente: |ψ⟩→|ψ′⟩=Pi|ψ⟩ p⟨ψ|Pi|ψ⟩.(2.3) Donde Pies el proyector del autovector correspondiente al autovalor concreto: Pi= gi X n=1 |un i⟩⟨un i|.(2.4) 6. La evolución de un sistema vendrá dada por la ecuación de Schrödinger: iℏd dt |ψ(t)⟩=H(t)|ψ(t)⟩.(2.5) Con estos postulados podemos entrar ya a descubrir la relación entre la computación y la mecánica cuántica. 2.2. Teorema de descomposición espectral Este teorema relacionado con el postulado número 1 nos ofrece información que será útil más adelante. El álgebra lineal nos ofrece uno de sus resultados más interesantes y es el que dice que toda matriz autoadjunta A∈Mnxn (C)puede diagonalizarse a través de una matriz unitaria y posee solo valores propios reales. Este teorema aplicado a la mecánica cuántica nos dice que cualquier operador normal sobre un espacio de Hilbert es diagonal respecto a alguna base ortonormal del mismo. Con esto podemos ver que todo operador normal se podrá siempre descomponer en términos de sus autovectores: O=X i λi|i⟩⟨i|=X i λiPi, X i Pi=I, PiPj=δijPi; siendo {|i⟩}la base de autovectores con los autovalores {λi}yPiel proyector sobre el subespacio de autovalor λi.
2.2. TEOREMA DE DESCOMPOSICIÓN ESPECTRAL 7 2.2.1. Superposición, entrelazamiento e interferencia Vamos a explicar tres aspectos fundamentales que nos servirán para trabajar con los qubits, que se definirán más adelante. Superposición de estados: La superposición se produce cuando encontramos un estado que se representa como combinación lineal de estados. Por ejemplo, en computación cuántica trabajaremos mucho con los siguientes estados: |ψ⟩=α|0⟩+β|1⟩; (2.6) donde encontramos un estado superposición del estado|0⟩y del estado |1⟩. Entrelazamiento cuántico: Veamos primero un ejemplo con el siguiente estado. |ψ⟩=α|00⟩+β|10⟩+γ|01⟩+δ|11⟩.(2.7) Este es un estado no correlacionado, también llamado estado entrelazado, conociendo el primer valor del ket, siendo un ket la representación de los estados, no conocemos el valor del segundo, podría ser cualquiera de los dos restantes. Es decir, si cogemos el primer ket y obtenemos que su primer valor es un 0 no podemos asegurar el segundo valor pues podríamos estar cogiendo un estado que fuese |00⟩o uno que fuese |01⟩. Para poder dar el paso a comprender el entrelazamiento cuántico debemos ver donde se encuentran los estados con los que trabajamos. Podemos definir el espacio de Hilbert de un qubit A como ϵAy el espacio de Hilbert de un qubit B como ϵB. Con esto podemos definir el producto tensorial de estos dos espacios como: ϵ=ϵA⊗ϵB.(2.8) Con esto podemos definir un ket en el espacio total como producto tensorial de los kets de cada espacio: |ui⟩A⊗|vj⟩B≡|ui,vj,⟩∈ϵ. (2.9) El entrelazamiento se produce entre estados correlacionados, esto es, conociendo la medida de un estado podemos conocer la medida de más. |ψ⟩=α|01⟩+β|10⟩.(2.10) Este es un estado correlacionado, conociendo el valor del primer qubit conocemos al instante el valor del segundo. En este caso no podemos expresar el estado fundamental a partir del estado individual de cada qubit. Interferencia: En física, interferencia designa lo que ocurre cuando dos ondas se encuentran. Los fenómenos de interferencia ocurren también con la luz. Al trabajar con el hardware cuántico pueden producirse fenómenos de interferencia debido a la dualidad entre la onda y la partícula [3]. La interferencia tiene mucha relevancia en la computación cuántica pues nos permite optimizar nuestros algoritmos debido a la probabilidad de obtener valores no deseados.
14 CAPÍTULO 2. FUNDAMENTOS DE LA COMPUTACIÓN CUÁNTICA Figura 2.3: Puerta Y en la esfera de Bloch. Puerta Z Figura 2.4: Puerta Z en la esfera de Bloch. Puerta Hadamard Figura 2.5: Puerta Hadamard en la esfera de Bloch.
Capítulo 3 Algoritmos cuánticos 3.1. Introducción Después de entender las herramientas de la computación cuántica es el momento de descubrir por qué esta trajo una revolución en algunos aspectos computacionales. Por ejemplo, el algoritmo de Shor permitió la factorización de los números enteros con una velocidad mucho más alta que los ordenadores tradicionales y el variational quantum eigensolver permitió la resolución de problemas de química cuántica o problemas con el modelo de Ising [5] [8] [10]. Es importante recordar que pese a que existen muchos algoritmos cuánticos variacionales es, el que vamos a comentar a continuación, el que nos trae los verdaderos avances en el cálculo de energías base atómicas o moleculares o en el modelo de Ising que trabaja con parejas de espines. En el caso del modelo de Ising que será el que resolvamos en el capítulo 7 trataremos con estados como el |0⟩≡|↑⟩, que significará que el espín a tratar estará en la dirección positiva del eje Z mientras o el |1⟩ ≡ | ↓⟩, que significará que el espín a tratar estará en la dirección negativa del eje Z. A pesar de que la computación cuántica ha sufrido un enorme avance en los últimos años la realidad sigue siendo que la supremacía cuántica es todavía un reto al alcance de muy pocos. Esta supremacía consiste en la creación de ordenadores cuánticos que permitan resolver algunos problemas a una velocidad superior respecto a sus análogos clásicos y en un tiempo suficientemente razonable. Por el momento el hardware cuántico, los ordenadores existentes, poseen muy pocos qubits, lo que constriñe enormemente las posibilidades que la mecánica cuántica nos ofrece. Es por esto que los ordenadores denominados NISQ, Noisy-Intermediate Scale Quantum, con un número límitado de qubits son los ordenadores llamados a superar a los convencionales en los próximos años [2]. Estos ordenadores permiten ejecutar algoritmos donde sean necesarios un pequeño número de qubits, y a menudo estos algoritmos son algoritmos híbridos con cierto grado de resistencia al ruido. Estos algoritmos híbridos comúnmente se reparten los pasos entre los ordenadores convencionales y los cuánticos. El número de operaciones debe ser mínimo para reducir los errores en los estados cuánticos. Debido a estas restricciones los algoritmos a considerar son reducidos. 15
16 CAPÍTULO 3. ALGORITMOS CUÁNTICOS 3.2. Variational quantum eigensolver(VQE) El variational quantum eigensolver es uno de los algoritmos más prometedores para implementar en ordenadores NISQ, su objetivo es calcular una cota superior para la energía del estado base de un Hamiltoniano como primera idea antes de calcular las propiedades energéticas de moléculas, átomos o materiales. Este algoritmo es, por tanto, muy interesante para estudios relacionados con la química cuántica o la física de la materia condensada. La pregunta esencial aquí es, ¿qué puede proporcionarnos esta nueva rama que no pueda hacer la química computacional? La química computacional proporciona métodos eficientes para aproximar propiedades a estudiar, pero su coste es muy alto si queremos obtener una precisión adecuada. Una de las razones por las que estos métodos pueden perder precisión es tratar de manera incorrecta las relaciones entre los electrones que constituyen el sistema. Todas estas interacciones entre electrones producen que el coste computacional crezca exponencialmente al tamaño del sistema haciendo intratable el coste computacional. Ahora bien, sabemos que un conjunto de qubits obedece las leyes de la mecánica cuántica del mismo modo que la función de onda electrónica. Esto hace que gracias al principio de superposición lo que antes tenía un crecimiento exponencial ahora requerirá un número linealmente creciente de qubits. Esto permite con una función de onda habitual, modelar, y trabajar en ella reduciendo el número de operaciones computacionales. Este algoritmo se ha utilizado también en muchos otros problemas de física nuclear, de estructura nuclear, de física de altas energías, de espectroscopia vibracional, de resolución de ecuaciones de Schrödinger no lineales o incluso para el cálculo de estados cuánticos de un agujero negro de Schwarzschild-de Sitter [9]. En nuestro caso, veremos en la siguiente sección la aplicación en el modelo de Ising. Véase el capítulo 4. Este algoritmo se basa en el hecho de que el valor esperado del Hamiltoniano a estudiar nos va a otorgar unos valores propios: ⟨H⟩ψ=⟨ψ|X i λi|ϕi⟩⟨ϕi|ψ⟩.(3.1) Donde cada medida es una cota: λ0≤λ1=..., obteniendo así cotas superiores. Donde cualquier estado que probemos va a tener energías superiores a la cota mínima que conozcamos. El variational quantum eigensolver comienza con un conjunto de qubits, después se le aplica un circuito cuántico para modelarlo y entrelezar la función de onda. El circuito cuántico está definido por una serie de operaciones cuánticas que se aplicarán a los qubits, el número de operaciones a aplicar se le denomina profundidad [2]. Dicho circuito viene dado por dos partes: Una estructura de puertas cuánticas ordenadas denominada ansatz. Un conjunto de parámetros que dirigen algunas de esas puertas.
3.2. VARIATIONAL QUANTUM EIGENSOLVER(VQE) 17 Después se origina un estado de qubits que modelan una función de onda de prueba, el Hamiltoniano del sistema a estudiar se medirá con respecto a esta función de onda para estimar la energía. El VQE por tanto optimizará variacionalmente los parámetros del ansatz para minimizar la energía de prueba con la restricción de ser siempre mayor que la energía exacta del estado base del Hamiltoniano usando el principio variacional. Como veremos más adelante, para que podamos usar el VQE correctamente necesitaremos que el ansatz esté bien optimizado para reducir el número de operaciones cuánticas requeridas. Sin embargo debe entenderse que un ansatz más superficial, es decir, con menos operaciones cuánticas, generalmente cubrirá una extensión menor del espacio de todas las posibles funciones de onda y podría resultar en una menor precisión de la energía del estado base. Antes de ver todo lo que nos interesa del mismo vamos a hablar de algunos obstáculos importantes que han traído este tipo de algoritmos: Una de las problemáticas que existen es que el número de mediciones aumenta polinomialmente al tamaño del sistema y de la descripción del estado, y, pese a que esto es mucho más eficiente que un escalado exponencial clásico, en ocasiones son suficientes mediciones como para hacer intratable el método. Por ello se siguen desarrollando esquemas de medición más eficientes que permitan compactar el Hamiltoniano o medir conjuntamente observables que conmuten. Un enfoque alternativo al problema de la medición podría residir en el enorme potencial de paralelización del VQE. Otro de los problemas es el denominado como problema de la meseta estéril. Este problema se produce en muchos algoritmos de aprendizaje en ordenadores cuánticos que producen auténticos callejones sin salida en problemas de optimización. Esta meseta estéril es el resultado de que los gradientes de los parámetros desaparezcan exponencialmente con el número de qubits utilizados, impidiendo una optimización manejable de sistemas grandes. El último problema es saber hasta que punto este algoritmo es resistente al ruido cuántico. Muchos algoritmos cuánticos han tenido la capacidad de aprender de estos ruidos no obstante, la eliminación o mitigación de dichos problemas a veces requiere un coste mayor al beneficio a obtener. Por tanto vemos que este algoritmo pese a presentar algunos incovenientes es un firme candidato a la implementación en ordenadores NISQ. Y es que, según avance el hardware cuántico lo harán los algoritmos. En lo que sigue se dará una visión completa pero resumida de todo lo que significa este algoritmo. Si desea trabajar más en detalle sobre el mismo le recomiendo que acceda a la bibliografía de este trabajo donde encontrará otros más extensos.
Capítulo 4 El modelo de Ising El modelo de Ising permite entender el comportamiento de materiales ferromagnéticos. Se trata un modelo tremendamente útil pues posee soluciones exactas sin necesidad de hacer aproximaciones, por lo menos hasta añadir un campo magnético[4]. El modelo de Ising consiste en N sitios en una red d-dimensional donde encontramos un espín en cada uno de esos sitios. El espín puede estar apuntando hacia arriba o hacia abajo siguiendo los modelos cuánticos conocidos. Estas posiciones otorgan valores propios a los espines que denotaremos como +1 si el espín apunta hacia arriba y -1 si apunta hacia abajo. Se puede asociar a cada posición un observable. Esta idea es importante porque al estar asentados en campos magnéticos dichos campos otorgan una ventaja energética a los que apunten hacia arriba. El modelo de Ising es interesante porque trabaja con la interacción entre espines vecinos por lo que trabajaremos con un Hamiltoniano sencillo que será: H=−JX <i,j> σz i⊗σz j−X i hσx i,(4.1) donde hemos usado una notación compacta que mantiene el producto tensorial con la matriz identidad en las posiciones no indicadas, manteniendo así la dimensión correcta del Hamiltoniano, además encontramos que la suma ⟨i,j⟩se produce en todos vecinos adyacentes y donde σes la matriz de Pauli que nos permite obtener los dos valores propios que necesitamos, hes un factor relacionado con el campo magnético aplicado y Jes la constante de interacción que describe la fuerza entre espines [7]. Este Hamiltoniano describe un sistema con un campo magnético en la dirección del eje x y una interacción entre espines en la dirección del eje z. Jes la constante de interacción que describe la fuerza entre espines en la dirección del eje z mientras que hes el término que ajusta el tamaño relativo de la interacción del campo magnético comparada con la fuerza de los pares de espín. Si J>0 los espines vecinos se colocan en posición paralela y se produce un sistema denominado ferromagnético. Si por el contrario J<0 los espines se colocan en posición antiparalela y se produce un sistema denominado antiferromagnético. Este modelo se denomina modelo clásico de Ising y el cambio de J afecta a la fuerza entre espines vecinos. Si h=0 encontramos estados fundamentales en el que todos los espines están apuntando hacia una dirección del eje Z, variando el sentido si J es, o no, positiva. 18
19 Posteriormente al aplicar el campo magnético externo los estados tienden a alinearse con el mismo. Esto lo veremos más adelante con el algoritmo programado en la sección 7 y en los resultados experimentales en la sección 9. Además, trabajando con el modelo de Ising podemos encontrar otro parámetro que dará cuenta de la intensidad del campo magnético y del punto donde se produce una transición de fase. Este parámetro es la magnetización, que es el grado en el que se encuentra un cuerpo una vez está magnetizado. La magnetización es el proceso por el cual un elemento adquiere unas propiedades magnéticas, mediante la aplicación de un campo magnético: M=1 NX i σz i,(4.2) que veremos también en el capítulo 7.
Capítulo 5 Elementos del VQE 5.1. Construcción del Hamiltoniano: El primer paso en la construcción de un buen VQE es la definición del Hamiltoniano sobre el que queramos obtener su estado base. La construcción de este Hamiltoniano es importante pues su complejidad nos proporcionará el coste del resultado final con el correspondiente inconveniente que eso supone cuando hablamos de la optimización en computación cuántica. La construcción del Hamiltoniano implica encontrar sus operadores y sus pesos en los grados de libertad de las partículas. En el caso a tratar del modelo de Ising debemos comprender que nuestro Hamiltoniano se compondrá de espines vecinos interactuando con un campo magnético perpendicular externo, esto ocasionará un movimiento en ellos que provocará cambios en su disposición y energía para acoplarse al campo. 5.2. Transformación del Hamiltoniano: Es importante saber que los ordenadores cuánticos solo miden observables expresados en función de las matrices de Pauli: ˆ Pa∈{I,X,Y ,Z}NN, con N el número de qubits [5] [10]. X, Y, Z son formas alternativas de escribir los operadores de Pauli σx,σyyσzen la notación de puertas cuánticas vista en el capítulo 2. Esto es relevante pues en determinadas ocasiones será necesario hacer cambios que permitan estas mediciones. 5.3. Proceso de medida: Una vez establecida la pauta del Hamiltoniano necesitamos encontrar una estrategia para medir eficientemente y con sentido los valores esperados de la función ansatz que introduzcamos. Al tratarse de procesos iterativos parece claro que cuántas menos medidas hagamos para llegar a nuestro resultado esperado mejor optimizado estará nuestro algoritmo [5] [10]. Normalmente, para poder conseguir una precisión de ϵen el valor esperado de un operador necesitaremos realizar Oϵ2repeticiones en la ejecución del circuito. 20
5.4. PREPARACIÓN DEL ANSATZ:21 Alguna de las posibilidades para optimizar el número de repeticiones pueden ser el hecho de identificar grupos de operadores que conmuten entre sí y encontrar la base en la que puedan ser medidos todos de manera simultánea. 5.4. Preparación del ansatz: Una vez preparado el Hamiltoniano y entendida la estrategia en la medida nos encontramos con uno de los apartados más importantes cuando tratamos con algoritmos cuánticos variacionales, en nuestro caso, con el VQE [8]. Este es el ansatz. El ansatz es la estructura de nuestro circuito cuántico parametrizado y lo que aplicaremos directamente a nuestro estado inicial. El ansatz trabaja como un subespacio de nuestro espacio total de Hilbert y se parametriza con ciertos parámetros a elección. Es por esto que elegir un ansatz adecuado es fundamental para encontrar un valor adecuado en nuestra medición sin que tenga un coste computacional elevado. Estos ansatz tienen dos características fundamentales: Expresividad: Dícese de la capacidad del ansatz para abarcar una gran clase de estados en el espacio de Hilbert definiendo la máxima precisión que puede alcanzar su aproximación a los estados relevantes [5] [10]. Hay que encontrar un ansatz lo suficientemente expresivo para que alcance una buena aproximación del estado base pero no tan expresivo de tal manera que tenga tantos parámetros que se convierta en intratable. Entrenabilidad: La entrenabilidad de un ansatz explica la capacidad del ansatz para ser optimizado usando técnicas trazables en dispositivos cuánticos. Este ansatz es utilizado posteriormente para medir el Hamiltoniano y obtener un determinado valor a optimizar. 5.4.1. Optimización de los parámetros: Es importante la actualización de los parámetros tras cada vuelta pues deben actualizarse de forma iterativa hasta la convergencia en el estado deseado. Con esto se quiere decir que la optimización de los parámetros vendrá dado por el valor esperado medido del Hamiltoniano, por ende, se deberá medir varias veces para encontrar la regla que los optimice tras cada vuelta hasta la convergencia [5] [10]. La razón para elegir una optimización adecuada es importante por estos motivos: Influye en el número de mediciones necesarias para completar un paso de optimización. Afecta al número de iteraciones hasta converger.
22 CAPÍTULO 5. ELEMENTOS DEL VQE 5.4.2. Mitigación del error: Es necesario darse cuenta que el conocido como ruido cuántico es un problema que afecta a la viabilidad del algoritmo cuántico variacional [5] [10]. La idea es mitigar este ruido mediante el procesado de los datos obtenidos al final. Las técnicas para mitigar este ruido varían en términos de coste por lo que también se requiere encontrar la más eficiente. En nuestros experimentos trabajaremos con un simulador con ruido y sin ruido para comparar resultados. Véase la sección 7.
Capítulo 6 Funcionamiento del algoritmo A través del siguiente esquema y comprendido el apartado anterior trataremos de explicar el procedimiento de resolución a través del algoritmo VQE: Figura 6.1: Esquema de nuestro algoritmo cuántico variacional[5][10]. 6.1. Pre-procesamiento 6.1.1. Representación del Hamiltoniano Como hemos comentado anteriormente la representación del Hamiltoniano es fundamental. En nuestro ejemplo del modelo de Ising cabe destacar que trataremos la posición de los espines con los estados |0⟩y|1⟩. Así el espín que apunte en el sentido positivo del eje Z será nuestro estado |0⟩y el espín que apunte en el sentido negativo del eje Z será el estado |0⟩. Esto nos servirá para tratar más adelante los valores esperados en la base computacional Z, base en la que trabajan todos los ordenadores cuánticos. 23
30 CAPÍTULO 7. EXPERIMENTOS 5i f operador [n−1− j ]!= ’ I ’ : 6i f b i t s [ j ]== ’1 ’ : 7signo=signo∗( −1) 8 9return signo Siguiendo con el algoritmo procedemos a definir una función que nos devuelva el valor esperado introduciendo un circuito cuántico concreto y operadores cuánticos como una cadena. 1def getvaloresperadoRES ( circ , operador : str) : 2 3nq=len(operador) 4VALORESPERADO = 0 5circOperator=QuantumCircuit (n , 0 ) 6circOperator . compose ( circ , inplace=True ) 7 8for lin range (len ( operador ) ) : 9i f operador [ l ]== ’X ’ : 10 circOperator .h( l ) 11 circOperator . measure_all ( ) 12 qU = t r a nspil e ( circOperator , simulator ) 13 14 15 16 job = execute (qU, simulator , shots =1024) 17 18 19 re s u lt = job . r e s ul t ( ) 20 probs=r es ul t . get_counts ( ) 21 22 23 for kin probs : 24 25 VALORESPERADO = VALORESPERADO+probs [ k]/1024∗signo (k , operador ) 26 27 return VALORESPERADO El siguiente paso define una función en la que, introduciendo ya los parámetros, los operadores y las constantes del Hamiltoniano correspondiente, te devuelve la energía del mismo. Aquí hemos llamado a una librería de Qiskit, para introducir uno de los ansatz que podíamos haber introducido. Probar con distintos ansatz aceptables puede otorgar mejores o peores resultados. 1from q i s k i t . c i r c u i t . l i br a r y import EfficientSU2 2def ge t _ l i s taprobabilida d e s ( parametros : [ ] , operadores : [ ] , constantes : [ ] ) : 3 4n=len(operadores [0]) 5 6ansatz = EfficientSU2 (n , reps =1) 7qc = QuantumCircuit(n) 8qc . compose ( ansatz , inplace=True ) 9bind_dict = { } 10 11 k=0 12 for key in ansatz . parameters : 13 bind_dict [ key ] = parametros [ k ] 14 k=k+1
7.2. ALGORITMO VQE PARA LA RESOLUCIÓN DE UN MODELO DE ISING PROGRAMADO EN PYTHON31 15 qc . assign_parameters ( bind_dict , inplace = True ) 16 17 18 19 EH=0 20 for kin range (len ( constantes) ) : 21 EH=EH+getvaloresperadoRES(qc , operadores[k]) ∗constantes[k] 22 23 24 return EH Con este paso llegamos a la piedra angular del algoritmo pues vamos a obtener la energía mínima y los parámetros del ansatz que han permitido llegar a la misma. Para ello debemos importar primero nuevas funciones de Qiskit, más adelante definiremos los operadores de nuestro Hamiltoniano de 4 qubits y llamaremos al simulador. Además debemos añadir que parámetro h, la amplitud del campo magnético, del Hamiltoniano queremos escribir, en nuestro caso vamos a calcular los valores para 4 de ellos y comprobaremos sus resultados. También añadimos el vector J, donde incluimos las amplitudes de campo magnético si las hay, que es la parte de las constantes que serán introducidas en la función getvaloresperadoRES que definimos anteriormente. Con todo ejecutaremos la casilla y obtendremos que cada valor de hnos ejecuta cinco veces la variación para obtener el valor energético menor, con el que al final nos quedamos junto con los parámetros del ansatz. 1from q i s k i t . algorithms . optimizers import GradientDescent 2from q i s k i t . algorithms . optimizers import SPSA 3OP=[ ’ ZZII ’ ,’ IZZI ’ ,’ IIZZ ’ ,’ XIII ’ ,’ IXII ’ ,’ IIXI ’ ,’ IIIX ’ ] 4Energias =[] 5Estados=[] 6simulator = Aer . get_backend ( "statevector_simulator") 7 8for hin [0.04 ,0.06 ,1.1 ,0.8]: 9J =[ −1 ,−1,−1, −h, −h, −h, −h] 10 11 spsa = SPSA( maxiter =100) 12 n=len(OP[ 0 ] ) 13 14 ansatz = EfficientSU2 (n , reps =1) 15 nparams=ansatz . num_parameters 16 Emin=100 17 for kin range (1) : 18 InitialParams =(np . random . random ( [ nparams ] ) −0.5) ∗2∗np . pi 19 re s ul t = spsa . minimize ( ( lambda x : g et _ li st a pr obabi l id ades ( x ,OP, J ) ) , InitialParams) 20 i f r es ult . fun<Emin : 21 Emin=r es u l t . fun 22 Estadofundamental=r es u l t . x 23 24 print( result , Emin , Estadofundamental ) 25 Energias . append (Emin ) 26 Estados . append ( Estadofundamental ) Hecho esto solo queda calcular la magnetización. M=1 NX i σz i.(7.7)
32 CAPÍTULO 7. EXPERIMENTOS Para ello cogeremos los parámetros de nuestra energía mínima y los introduciremos en nuestra función getlistaprobabilidades. Si se prueba con distintos ansatz como: ansatz=TwoLocal(n, ’ry’, ’cx’, ’linear’,reps=1, insertbarriers=True) se puede ver bien que existe simetría en z y puede tener dos estados fundamentales. Es decir, si con J>0 tienes comportamiento ferromagnético los espines se acaban alineando. En nuestro caso eso vale tanto para el estado |0000⟩como para |1111⟩y los dos son soluciones válidas de la misma energía. Como se empieza con estados al azar se pueden tener saltos entre esas configuraciones. Eso puede explicar cambios de signo en la magnetización media que puedan salir ya que siempre puedes girar sobre el eje z y quedarte con el módulo. 1ParametrosEstadofundamental =[ −2.57687621 , 0.6703786 , −2.49962733 , −2.25149458 , −0.15748387 , 0.00814727 , 0.01902273 , 1.49975986 , 1.46341504 , −1.55722019, −1.51506515 , 1.59391282 , 3.09565379 , 0.04934559 , −0.24643992 , −0.90424364] 2get_list a p r o b abilidades ( ParametrosEstadofundamental , [ ’ ZIII ’ ,’ IZII ’ ,’ IIZI ’ ,’ IIIZ ’] ,[1.0/4.0 ,1.0/4.0 ,1.0/4.0 ,1.0/4.0]) Además, a continuación, se añadirá una nueva celda que calcula los parámetros de la mínima energía teórica correspondiente a los parámetros generados en nuestro cálculo variacional y el estado cuántico asociado. que nos servirá en la sección 9 para explicar el hecho de la alineación de espines antes y después de la aplicación del campo magnético. 1def s t a t e ( parametros , n ) : 2simulator = Aer . get_backend ( "statevector_simulator") 3ansatz = EfficientSU2 (n , reps =1) 4#ansatz=TwoLocal (n , ’ ry ’ , ’ cx ’ , ’ li n ear ’ , reps =1, 5i n s e r t _ b a r r i e r s=True 6qc = QuantumCircuit(n) 7qc . compose ( ansatz , inplace=True ) 8bind_dict = { } 9k=0 10 for key in ansatz . parameters : 11 bind_dict [ key ] = parametros [ k ] 12 k=k+1 13 14 qc . assign_parameters ( bind_dict , inplace = True ) 15 job = execute ( qc , simulator , shots =1) 16 re s u lt = job . r e su lt ( ) 17 return re s u lt . get_statevector ( ) 18 19 print(abs (np . round( s t a t e ([ −2.57687621 , 0.6703786 , −2.49962733 , −2.25149458 , −0.15748387 , 0.00814727 , 0.01902273 , 1.49975986 , 1.46341504 , −1.55722019, −1.51506515 , 1.59391282 , 3.09565379 , 0.04934559 , −0.24643992 , −0.90424364] ,4) ,3) ) ∗ ∗ 2) Para completar el algoritmo, introduciré el código para obtener el valor de la energía mínimo para un valor de hdado. 1import numpy as np 2 3# Importing standard Qiskit l i b r a r i e s 4from qiskit import QuantumCircuit , transpile , Aer , IBMQ 5from q i s k i t . t ools . jupyter import ∗ 6from q i s k i t . v i s ua li za ti on import ∗ 7from ibm_quantum_widgets import ∗ 8from q i s k i t . providers . aer import QasmSimulator
7.2. ALGORITMO VQE PARA LA RESOLUCIÓN DE UN MODELO DE ISING PROGRAMADO EN PYTHON33 9 10 # Loading your IBM Quantum account ( s ) 11 provider = IBMQ. load_account ( ) Después de haber importado de nuevo las librerías vamos a definir las matrices que nos ayudarán a formar el Hamiltoniano. 1Z= np . matrix ( [ [ 1 , 0 ] , [ 0 , − 1 ] ] ) 2X= np . matrix ( [ [ 0 , 1 ] , [ 1 , 0 ] ] ) 3I2=np . i d e n ti t y (2) 4h=1 Con esto podremos definir el Hamiltoniano de nuestro ejemplo: 1H=−(np . kron (np . kron (np . kron (Z, Z) , I2 ) , I2 ) ) −(np . kron ( I2 , ( np . kron (np . kron (Z, Z) , I2 ) ) ) ) −(np . kron ( I2 , np . kron ( I2 , np . kron (Z,Z) ) ) )−h ∗( ( np . kron (np . kron (np . kron (X, I2 ) , I2 ) , I2 ) ) +(np . kron ( I2 , np . kron (np . kron (X, I2 ) , I2 ) ) ) +(np . kron ( I2 , np . kron ( I2 , np . kron ( I2 ,X) ) ) ) ) Siguiendo el código podemos obtener los autovalores y autovectores: 1eigenvalue , e ig en vec to r =np . l i n a l g . eigh (H,UPLO= ’L ’ ) Visto lo anterior ya podemos obtener el autovalor mínimo y comprobar que es muy cercano a nuestro valor en el algoritmo variacional: 1Minautoval=np.min( eigenvalue ) Por tanto se podría introducir cualquier Hamiltoniano, parámetros externos, operadores y el resto de cosas necesarias para obtener los estados mínimos.
Capítulo 8 Resultados. Análisis de un sistema de 4 espines. Vamos a comentar todo lo que hemos ido obteniendo a partir del código de la sección anterior. Lo primero que haremos será comentar la relevancia que tienen Jyhen los estados cuánticos. Recordemos, de la sección del modelo de Ising, el Hamiltoniano con el que estamos trabajando: H=−JX <i,j> σz i⊗σz j−X i hσx i,(8.1) donde encontramos que la suma ⟨i,j⟩se produce en todos vecinos adyacentes y donde σes la matriz de Pauli que nos permite obtener los dos valores propios que necesitamos, h es un factor relacionado con el campo magnético aplicado y Jes la constante de interacción que describe la fuerza entre espines. El hamiltoniano, como vimos anteriormente, es: H4=−Jσz 1σz 2I3I4−JI1σz 2σz 3I4−JI1I2σz 3σz 4−hσx 1I2I3I4+I1σx 2I3I4+I1I2σx 3I4+I1I2I3σx 4.(8.2) Con esta situación vamos a dividir nuestro estudio para h=0 yh>0: 8.1. h=0 Como sabemos que hestá relacionado con la intensidad del campo magnético aplicado parece evidente que h=0 nos indica una ausencia del mismo. Podemos expresarlo también pensando que h«J, es decir, que el campo magnético no es suficientemente intenso para competir con el acoplamiento entre espines. Esto se verá reflejado en la posición de los espines, los cuales estarán apuntando en la dirección del eje Z. Lo que haremos a continuación será, en base a nuestro código anteriormente escrito, fijar el valor de h=0 y cambiar Jentre dos valores, 1 y -1. Con ello obtendremos un estado cuántico que nos permitirá ver si lo que hemos comentado anteriormente es correcto. 34
8.1. H=0 35 8.1.1. J=-1 El estado resultante es: 1[0.00000 e+00 1.00000e−06 2.60000e−05 0.00000e+00 8.90000e−05 5.24233e−01 23.40000e−04 4.00000e−05 4.00000e−05 2.90000e−04 4.74857e−01 6.50000e−05 30.00000e+00 2.50000e−05 2.00000e−06 0.00000e+00] Siendo el estado, de manera más visual, el siguiente: |ψ⟩= 10−6|0001⟩+ 2,6·10−5|0010⟩+ 8,9·10−5|0100⟩+ 5,24 ·10−1|0101⟩ + 3,4·10−4|0110⟩+ 4 ·10−5|0111⟩+ 4 ·10−5|1000⟩+ 2,9·10−4|1001⟩ + 4,74 ·10−1|1010⟩+ 6,5·10−5|1011⟩+ 2,5·10−5|1101⟩+ 2 ·10−6|1110⟩ Este estado es aproximadamente igual a escribir el siguiente: |ψ⟩≈5,24 ·10−1|0101⟩+ 4,74 ·10−1|1010⟩(8.3) Aquí observamos que, en ausencia de campo magnético externo, las probabilidades son despreciables excepto en el estado |0101⟩y el estado |1010⟩, estados contrarios en posiciones adyacentes. Esto, como comentamos en el capítulo 6, implica que los valores 0en el estado, son espines en dirección positiva del eje Z, mientras que los valores 1, son espines en la dirección negativa del eje Z. |ψ⟩≈5,24 ·10−1|↑↓↑↓⟩+ 4,74 ·10−1|↓↑↓↑⟩ (8.4) Finalmente, obtenemos una superposición, más o menos uniforme, de los dos estados posibles que son estables, de mínima energía. 8.1.2. J=1 El estado resultante es: 1[0.00000 e+00 0.00000e+00 0.00000e+00 9.70000e−04 0.00000 e+00 0.00000e+00 20.00000e+00 2.90000e−05 0.00000e+00 1.00000e−05 0.00000e+00 2.50000e−03 30.00000e+00 3.70000e−05 4.00000e−06 9.96914e −01] Siendo el estado, de manera más visual, el siguiente: |ψ⟩= 9,7·10−4|0011⟩+ 2,9·10−5|0111⟩+ 1 ·10−5|1001⟩ + 2,5·10−3|1011⟩+ 3,7·10−5|1101⟩+ 4 ·10−6|1110⟩+ 9,96 ·10−1|1111⟩ Este estado es, aproximadamente, igual que el siguiente: |ψ⟩≈9,96 ·10−1|1111⟩(8.5) Este estado vemos que tiene casi toda la probabilidad en el estado |1111⟩confirmando que los espines con un campo magnético externo nulo se mantienen en la dirección del eje Z.
36 CAPÍTULO 8. RESULTADOS. ANÁLISIS DE UN SISTEMA DE 4 ESPINES. Siguiendo los comentarios del capítulo 6, este estado indica que todos los espines están en la dirección del eje Z pero en el sentido negativo. |ψ⟩≈9,96 ·10−1|↓↓↓↓⟩ (8.6) Visualizamos además, que la diferencia en la Jprovoca acoplamientos paralelos o antiparalelos aunque manteniéndose en la dirección del eje Z. 8.2. h»J Vamos a comprobar ahora como aumentando el campo magnético los espines tienden a alinearse con él. En este caso vamos a colocar una h=100, la Jen este caso no va a servirnos para visualizar nada en concreto pues nos van a quedar probabilidades muy similares en todos los estados, ya que mide la interacción entre espines y en este caso el campo magnético prevalece. El estado resultante es: 1[0.05629 0.064045 0.0533 0.060029 0.067181 0.076225 0.067604 0.075701 20.053069 0.059949 0.049738 0.055901 0.061153 0.069194 0.06152 0.069653] Siendo el estado, de manera más visual, el siguiente: |ψ⟩= 0,056 |0000⟩+ 0,064 |0001⟩+ 0,053 |0010⟩+ 0,060 |0011⟩ + 0,067 |0100⟩+ 0,076 |0101⟩+ 0,067 |0110⟩+ 0,075 |0111⟩ + 0,053 |1000⟩+ 0,059 |1001⟩+ 0,049 |1010⟩+ 0,055 |1011⟩ + 0,061 |1100⟩+ 0,069 |1101⟩+ 0,061 |1110⟩+ 0,069 |1111⟩ Viendo que es igualmente probable cada uno de esos estados cuánticos, demostrando que los espines están intentando alinearse en la dirección del campo. 8.3. Magnetización y transición de fase 8.3.1. Simulador sin ruido Siguiendo con el algoritmo programado vamos a comprobar, viendo una gráfica, los valores de la magnetización. Figura 8.1: Gráfica de la magnetización respecto a los valores de h. Programado en Python.
8.3. MAGNETIZACIÓN Y TRANSICIÓN DE FASE 37 Se observa como en los valores de h=1 se produce un cambio brusco en la magnetización, que producirá un cambio de estado. Según aumentamos el campo magnético se produce una lucha entre los dos términos del Hamiltoniano y el sistema pasa a ser paramagnético. Para valores pequeños de hla magnetización tiende a 1 prácticamente ya que corresponde al estado ferromagnético. Si h≈0 recordemos que el modelo cuántico se reduce prácticamente a un modelo de Ising clásico, en este caso, tenemos una transición de fase a temperatura finita desde una fase paramagnética en la que los espines están desordenados por las fluctuaciones térmicas a una fase ferromagnética en la que todos apuntan a la dirección z y, en consecuencia, un estado básico ferromagnético a T=0. Vamos a darnos cuenta que en nuestro cálculo estamos inspeccionando el estado básico del sistema. Dado que T=0, las fluctuaciones que producen la transición son puramente cuánticas. Esto podemos relacionarlo con el aumento de la temperatura en el modelo clásico de Ising, donde son las fluctuaciones térmicas son las que producen una transición de fase clásica de un estado ferromagnético a uno paramagnético. Por esta razón, el estado que observamos a altas intensidades de campo magnético se denomina paramagnético cuántico. Si lo comparásemos con la solución exacta tras la resolución del Hamiltoniano, H4=−Jσz 1σz 2I3I4−JI1σz 2σz 3I4−JI1I2σz 3σz 4−hσx 1I2I3I4+I1σx 2I3I4+I1I2σx 3I4+I1I2I3σx 4,(8.7) podríamos identificar cómo de exacto es nuestro modelado variacional. Esta solución la vamos a obtener a partir de la programación en Julia [1]. En este caso se obtuvo la solución exacta diagonalizando todas las matrices y obteniendo una matriz final de dimensión 16x16. Esto les permitió obtener los estados y valores propios y realizar su propia gráfica de la magnetización: Figura 8.2: Gráfica de la magnetización respecto a los valores de h. Programado en Julia Como se pude observar, se obtuvo la solución exacta para varios qubits. En nuestro caso solo nos interesa N=4 pues solamente trabajamos con ese número de ellos. Los resultados arrojan que en torno al valor h=1 se produce la transición de fase que obtuvimos en nuestro experimento.
38 CAPÍTULO 8. RESULTADOS. ANÁLISIS DE UN SISTEMA DE 4 ESPINES. 8.3.1.1. Simulador con ruido Con todo esto debemos comentar que, aun así, determinadas simulaciones tienen un ruido externo como comentamos anteriormente en teoría, que puede producir algunos cambios en los valores. Por ello vamos a introducir un simulador con ruido denominado, simulator = FakeVigoV2() [11]. El módulo de proveedores falsos contiene clases de proveedores y backends falsos. Los backends falsos se construyen para imitar los comportamientos de los sistemas IBM Quantum utilizando instantáneas del sistema. El IBM posee modelos, más o menos exactos, del ruido bajo un número determinado de qubits que se ajusta empíricamente sobre el sistema a estudiar. Con este simulador, introduciendo los mismos parámetros hemos obtenido una gráfica de la magnetización como la siguiente: Figura 8.3: Gráfica de la magnetización respecto a los valores de h. Para varios espines. Con ruido. Como podemos observar los valores están mucho más dispersos dando lugar a medidas erróneas y, la simulación, aunque permite ver la tendencia general, pierde el detalle de la transición de fase.
Capítulo 9 Resumen y conclusiones En este trabajo hemos visto cuáles son las mejoras de la computación cuántica frente a la computación clásica. La ventaja principal es que podemos trabajar con estados en superposición ahorrando tener que demostrar explícitamente el estado que de otra manera harían de los algoritmos algo intratable. Si hablamos de los algoritmos cuánticos variacionales encontramos que tan solo necesitamos encontrar una buena expresión del Hamiltoniano y un buen ansatz con el que trabajar. En concreto, se ha presentado variational quantum eigensolver, un algoritmo híbrido eficiente a la hora de calcular la energía del estado fundamental del sistema. Este algoritmo tiene un coste computacional relativamente pequeño. Por contra, hemos comprobado que el ruido cuántico puede ser muy relevante. En este documento, se han cubierto varios objetivos: Hemos introducido los postulados de la mecánica cuántica y hemos visto como funcionan los qubits y las puertas cuánticas. Hemos dado una introducción a las ventajas y desventajas de los algoritmos cuánticos, incluido el VQE. Hemos explicado el modelo de Ising y presentado un algoritmo cuántico para su resolución. Hemos explicado con profundidad el VQE aplicado a nuestro problema del modelo de Ising. Y por último se ha implementado un algoritmo para un Hamiltoniano concreto y poder estudiar así un modelo de Ising concreto. Al realizar el estudio del sistema de 4 espines hemos podido comprobar como aparecen transciones de fase cuánticas cuando se aplican campos magnéticos externos comparables a la interacción entre espines vecinos. Aunque los resultados con un ansatz sencillo son correctos, al simular un sistema ruidoso se ha podido comprobar que se pierde mucha precisión, sobre todo para encontrar la frontera en la que aparece la transición de fase, lo que limita el alcance de este método para circuitos de cierta profundidad. 39