Esta página fue traducida automáticamente.
Complete una encuesta de 1 minuto sobre la calidad de esta traducción.
Optimización de algoritmos de redes tensoriales para sistemas cuánticos de muchos cuerpos con MATLAB
Por Dra. Anna Francuz, Universidad de Viena
“Con MATLAB, mi equipo desarrolló un enfoque más estable y eficiente para la diferenciación de algoritmos de redes tensoriales. Estamos aplicando este flujo de trabajo activamente para ampliar nuestros conocimientos sobre los sistemas cuánticos fuertemente entrelazados”.
Uno de los objetivos fundamentales de la investigación en computación cuántica ha sido lograr una ventaja cuántica: demostrar que computadoras cuánticas que pueden superar a los sistemas clásicos en tareas prácticas de optimización, criptografía o descubrimiento de fármacos. Sin embargo, antes de construir computadoras cuánticas a gran escala, es necesario realizar pruebas a menor escala y comparar los resultados de las pruebas con la teoría. Ese trabajo, con énfasis en sistemas cuánticos de muchos cuerpos fuertemente entrelazados, es el foco principal de mi investigación en la Universidad de Viena.
En los últimos 20 años aproximadamente, se ha demostrado que las redes tensoriales están entre las mejores herramientas disponibles para estudiar sistemas fuertemente entrelazados. Esto se debe, en gran parte, a la forma en que reducen la complejidad computacional (en comparación con los métodos cuánticos de Montecarlo, por ejemplo) mediante el uso de la estructura de entrelazamiento. Cuando trabajan con redes tensoriales, los investigadores pueden emplear técnicas de optimización para encontrar el estado fundamental de un sistema cuántico, a partir del cual pueden calcular la magnetización y otros observables para comprender las propiedades del sistema y comparar directamente los resultados con datos experimentales.
Hasta hace poco, realizar esta optimización era problemático porque los enfoques anteriores se basaban en cálculos aproximados del gradiente, un elemento crucial en el proceso de diferenciación que impulsa la optimización. Además de otros errores importantes, este inconveniente provocaba que las optimizaciones no pudieran encontrar el mínimo global. Para intentar solucionarlo, los investigadores recurrieron a la diferenciación automática (AD), pero surgieron nuevos problemas, como divergencias al diferenciar una descomposición en valores singulares (SVD) y problemas fundamentales con la forma en que se implementó la AD en el código.
Con MATLAB®, mi equipo logró desarrollar un enfoque más estable y eficiente para la diferenciación de algoritmos de redes tensoriales. Combinamos esta innovadora implementación de AD con otros dos elementos clave: contracción de red tensorial utilizando una toolbox de la comunidad de MATLAB y cálculo de alto rendimiento utilizando MATLAB Parallel Server™. Estamos aplicando activamente este flujo de trabajo para ampliar nuestros conocimientos sobre los sistemas cuánticos fuertemente entrelazados.
MATLAB y redes tensoriales en física cuántica
Temo Vekua, MathWorks
La aplicación de redes tensoriales en la física cuántica fue iniciada por un físico destacado y líder en teoría de la información cuántica, el Dr. Ignacio Cirac del Max Planck Institute of Quantum Optics en Múnich. Hace dos décadas, el Dr. Cirac y el Dr. Frank Verstraete desarrollaron una teoría de redes tensoriales para describir sistemas cuánticos de muchos cuerpos. La Dra. Francuz remonta su linaje académico al Dr. Cirac: Su mentor, el Dr. Norbert Schuch, fue investigador postdoctoral en Max Planck Institute, profesor en la Universidad Técnica de Múnich con el Dr. Cirac y líder de grupo de investigación titular en Max Planck Institute of Quantum Optics en Garching, antes de convertirse en profesor de la Universidad de Viena.
El Dr. Cirac utilizó MATLAB para sus primeras implementaciones de redes tensoriales. Con su equipo de aproximadamente 40 investigadores continúan utilizándolo hoy en día. “Utilizo MATLAB principalmente para programación científica”, explica. “MATLAB funciona bien para mí y es tan eficiente como los lenguajes compilados cuando se usa correctamente”. El reconocimiento de MATLAB como una herramienta indispensable es compartido por el Dr. Francuz, quien señala: "No me considero un programador excepcional. Soy físico y utilizo MATLAB para realizar tareas con redes tensoriales que no se han hecho antes".
Habiendo demostrado el valor de las redes tensoriales para estudiar sistemas cuánticos de baja dimensión (1D y 2D) y fuertemente correlacionados, el Dr. Cirac y su equipo están trabajando para extender el método a sistemas 3D.
Contracción de redes tensoriales, diferenciación automática y optimización
Cuando los investigadores en física cuántica emplean redes tensoriales, a menudo trabajan con sistemas infinitos invariantes por traslación. Estos sistemas se extienden indefinidamente y tienen propiedades idénticas en cada punto cuando se trasladan una cierta distancia. Esto significa que el hamiltoniano, operador que representa la energía total del sistema cuántico, exhibe repetición periódica o uniformidad en todo el sistema. Por lo tanto, cada vez que calculamos uno de estos observables, primero debemos contraer la red tensorial para poder manejarla (Figura 1). Para ello, el flujo de trabajo utiliza ncon, una función de MATLAB desarrollada y compartida por Robert NC Pfeifer, Glen Evenbly y sus colegas en la comunidad usuaria. La función ncon permite contraer redes tensoriales eficientemente y aproximar el entorno infinito de un observable local con un valor finito.
Figura 1. Un estado |Ψ(A)> en la red cuadrada mostrada en B (a la derecha) se genera contrayendo los índices virtuales (negros) de un tensor en A (a la izquierda). (Imagen cortesía de Francuz, A., Schuch, N., & Vanhecke, B. (2025). Stable and efficient differentiation of tensor network algorithms. Phys. Rev. Res., 7(1), 013237. American Physical Society. https://doi.org/10.1103/PhysRevResearch.7.013237. Licensed under CC BY 4.0.)
Una vez contraída la red tensorial, representada como objetos dlarray en MATLAB, el siguiente paso es utilizar AD para calcular el gradiente de energía, que se debe minimizar al calcular el estado fundamental. Cuando implementamos el enfoque de AD en MATLAB, solucionamos tres problemas críticos con las implementaciones de AD existentes: alto uso de memoria, inestabilidad en los cálculos de gradientes e imprecisiones en la retropropagación de gradientes.
El primer problema fue el alto uso de memoria asociado con AD. Los enfoques genéricos de AD requieren una cantidad sustancial de memoria para almacenar los objetos intermedios generados durante el procedimiento iterativo de la matriz de transferencia de esquinas (CTM) para calcular observables locales de manera eficiente. CTM es un método iterativo utilizado para aproximar la contracción de redes tensoriales bidimensionales, particularmente en estados de pares entrelazados proyectados (PEPS). Si bien un enfoque alternativo que implica la diferenciación de la ecuación de punto fijo puede aliviar este problema de memoria, introduce complicaciones relacionadas con fijación de gauge. La fijación de gauge garantiza la consistencia en la representación del tensor para resolver ambigüedades, pero resulta difícil implementarlo de manera fiable. Identificamos la causa raíz de estas dificultades y propusimos dos métodos prácticos de fijación de gauge, resolviendo así el problema de memoria.
El segundo problema importante fue la inestabilidad en el cálculo del gradiente del SVD, componente fundamental del algoritmo de CTM. El gradiente está mal condicionado y se vuelve indefinido en casos de degeneración, donde múltiples valores singulares son iguales. Estas degeneraciones pueden desestabilizar los cálculos de gradiente, ya que incluso pequeños cambios en la entrada pueden causar variaciones desproporcionadamente grandes en los vectores singulares. Para abordar esto, descubrimos y aprovechamos una simetría de gauge oculta dentro de la red tensorial de CTM. Si bien este enfoque se extendió más allá del alcance convencional de AD, nos permitió desarrollar una solución estable que sigue siendo compatible con los marcos de AD.
Por último, abordamos imprecisiones en las ecuaciones utilizadas anteriormente para la retropropagación de gradientes a través de la SVD truncada. Estas ecuaciones asumían incorrectamente que el espectro truncado era cero, omitiendo un término esencial que creó errores graves. La retropropagación de gradientes, que implica calcular cómo se propagan los cambios de parámetros a través de una secuencia de operaciones, requiere cálculos de gradiente precisos para una optimización adecuada. Derivamos una formulación de gradiente corregido para la SVD truncada, teniendo en cuenta el espectro truncado. Esta corrección mejoró enormemente la precisión y solo requirió modificaciones menores al código AD existente.
Después de implementar las mejoras de AD en MATLAB, estábamos listos para usar los gradientes generados por nuestra implementación de AD en tareas de optimización, como minimizar la energía para encontrar el estado fundamental de los sistemas cuánticos. Para esta parte del flujo de trabajo, utilizamos un algoritmo de Broyden-Fletcher-Goldfarb-Shanno (L-BFGS) de memoria limitada basado en la función fminunc de Optimization Toolbox™, pasando la función personalizada que escribimos para calcular el gradiente (Figura 2).
Figura 2. Gráfico de optimización que muestra dos gradientes diferentes. La optimización se bloquea rápidamente al utilizar el gradiente convencional de AD (cuadrados naranjas). La optimización converge a un mínimo global al reiniciar la optimización utilizando el gradiente de la implementación de mejorada AD (círculos verdes). (Imagen cortesía de Imagen cortesía de Francuz, A., Schuch, N., & Vanhecke, B. (2025). Stable and efficient differentiation of tensor network algorithms. Phys. Rev. Res., 7(1), 013237. American Physical Society. https://doi.org/10.1103/PhysRevResearch.7.013237. Licensed under CC BY 4.0.)
Cálculo paralelo con MATLAB en Austrian Scientific Computing
Los diagramas de fases son una herramienta crucial en el estudio de sistemas cuánticos de muchos cuerpos porque proporcionan una representación visual de las diferentes fases (estados) de un sistema en función de varios parámetros, incluido el tiempo. Para crear diagramas de fase, necesitamos variar un parámetro en el hamiltoniano en un rango determinado y calcular el estado fundamental para cada valor de parámetro. Esto permite identificar transiciones de fase cuando el sistema cambia abruptamente su comportamiento: por ejemplo, pasando de un estado superconductor a uno aislante.
Debido a que calcular el estado fundamental para numerosos valores de parámetros de manera secuencial en un portátil puede ser un proceso extremadamente lento (y debido a que los requisitos de memoria a menudo superan lo que proporcionan portátiles estándar), planeamos realizar este procesamiento en Austrian Scientific Computing (ASC) utilizando MATLAB Parallel Server™. En ASC se encuentran las supercomputadoras más potentes de Austria, incluidas VSC-4, con 790 nodos y un total de 37.920 núcleos, y VSC-5, con 710 nodos y un total de 98.560 núcleos.
Para comenzar, asistí a un taller de MathWorks sobre cálculo paralelo con MATLAB y el uso de MATLAB en los sistemas HPC del ASC. La ejecución de cálculos paralelos del estado fundamental en el ASC permitirá calcular rápidamente las propiedades de los sistemas cuánticos virtuales que podemos comparar directamente con las propiedades de los sistemas reales medidos experimentalmente.
De hecho, estamos planeando utilizar MATLAB Parallel Server en ASC para estudiar diagramas de fase para un simulador cuántico programable que pueda operar con 256 bits cuánticos (qubits). Explorar este sistema y otros similares con redes tensoriales 2D es el foco de nuestra investigación actual.
Publicado en 2025