Saltar al contenido principal

Algoritmos variacionales

Antes de comenzar, por favor completa esta breve encuesta previa al curso – es importante para mejorar nuestros contenidos y la experiencia del usuario.

Este curso cubre los fundamentos de los algoritmos variacionales y los algoritmos híbridos cuántico-clásicos a corto plazo, basados en el principio variacional de la mecánica cuántica. Estos algoritmos pueden aprovechar la utilidad de los computadores cuánticos actuales no tolerantes a fallos y, por lo tanto, son candidatos ideales para lograr una ventaja cuántica.

A lo largo de este curso, exploraremos lo siguiente:

  • Cada paso en el flujo de trabajo del diseño de algoritmos variacionales
  • Compromisos en cada paso
  • Cómo usar Qiskit Runtime Primitives para optimizar velocidad y precisión

Si bien este curso está diseñado como punto de entrada para investigadores y desarrolladores que desean explorar la utilidad de los computadores cuánticos, puedes profundizar en el conocimiento teórico y fundamental sobre computación cuántica en general en Basics of Quantum Information and Computation (también disponible como serie de videos en YouTube).

Flujo de trabajo híbrido simplificado

Flujo de un algoritmo variacional con los pasos: inicializar problema, preparar ansatz, evaluar función de costo, optimizar parámetros. Los algoritmos variacionales comprenden varios componentes modulares que pueden combinarse y optimizarse en función de los avances en algoritmos, software y hardware. Estos incluyen una función de costo, que describe un problema específico con un conjunto de parámetros, un ansatz para expresar el espacio de búsqueda con esos parámetros, y un optimizador que explora iterativamente el espacio de búsqueda. En cada iteración, el optimizador evalúa la función de costo con los parámetros actuales y selecciona los parámetros de la siguiente iteración, hasta que converge a una solución óptima. El carácter híbrido de esta clase de algoritmos surge del hecho de que las funciones de costo se evalúan con recursos cuánticos y se optimizan con recursos clásicos.

  1. Inicializar problema: Los algoritmos variacionales comienzan inicializando el computador cuántico en un estado predeterminado 0|0\rangle y luego transformándolo en un estado deseado (no parametrizado) ρ|\rho\rangle que llamamos estado de referencia.

    Esta transformación se representa mediante la aplicación de un operador de referencia unitario URU_R al estado predeterminado, de modo que UR0=ρU_R|0\rangle = |\rho\rangle.

  2. Preparar ansatz: Para optimizar iterativamente desde el estado predeterminado 0|0\rangle hasta el estado objetivo ψ(θ)|\psi(\vec\theta)\rangle, debemos definir una forma variacional UV(θ)U_V(\vec\theta) que representa una colección de estados parametrizados para que nuestro algoritmo variacional los explore.

    Denominamos a cada combinación particular de estado de referencia y forma variacional como ansatz: UA(θ):=UV(θ)URU_A(\vec\theta) := U_V(\vec\theta) U_R. Los ansätze toman en última instancia la forma de circuitos cuánticos parametrizados capaces de transformar el estado predeterminado 0|0\rangle en el estado objetivo ψ(θ)|\psi(\vec\theta)\rangle.

    En conjunto, obtenemos:

    0URUR0=ρUV(θ)UA(θ)0=UV(θ)UR0=UV(θ)ρ=ψ(θ)\begin{aligned} |0\rangle \xrightarrow{U_R} U_R|0\rangle & = |\rho\rangle \xrightarrow{U_V(\vec{\theta})} U_A(\vec{\theta})|0\rangle \\[1mm] & = U_V(\vec{\theta})U_R|0\rangle \\[1mm] & = U_V(\vec{\theta})|\rho\rangle \\[1mm] & = |\psi(\vec{\theta})\rangle \\[1mm] \end{aligned}
  3. Evaluar función de costo: Podemos codificar nuestro problema en una función de costo C(θ)C(\vec\theta) como combinación lineal de operadores de Pauli que se ejecuta en un sistema cuántico. Si bien esta puede ser información sobre un sistema físico, como energía o espín, también podemos codificar problemas no físicos. Podemos usar Qiskit Runtime Primitives para abordar el ruido con supresión de errores y mitigación de errores mientras evaluamos nuestra función de costo.

  4. Optimizar parámetros: Las evaluaciones se pasan a un computador clásico, donde un optimizador clásico las analiza y selecciona el siguiente conjunto de valores para los parámetros variacionales. Si tenemos una solución óptima preexistente, podemos establecerla como punto inicial θ0\vec\theta_0 para hacer bootstrapping de nuestra optimización. El uso de este estado inicial ψ(θ0)|\psi(\vec\theta_0)\rangle puede ayudar a nuestro optimizador a encontrar una solución válida más rápidamente.

  5. Ajustar parámetros del ansatz con los resultados y volver a ejecutar: Todo el proceso se repite hasta que se cumplen los criterios de terminación del optimizador clásico y se devuelve un conjunto óptimo de valores de parámetros θ\vec\theta^*. El estado solución propuesto para nuestro problema es entonces ψ(θ)=UA(θ)0|\psi(\vec\theta^*)\rangle = U_A(\vec\theta^*)|0\rangle.

Teorema variacional

Un objetivo común de los algoritmos variacionales es encontrar el estado cuántico con el menor o mayor autovalor de un observable dado. Una idea central que utilizaremos es el principio variacional de la mecánica cuántica. Antes de considerar su formulación completa, exploremos la intuición matemática detrás de él.

Intuición matemática para energía y estados fundamentales

En la mecánica cuántica, la energía aparece en forma de un observable cuántico que usualmente se denomina hamiltoniano y se denota como H^\hat{\mathcal{H}}. Consideremos su descomposición espectral:

H^=k=0N1λkϕkϕk\hat{\mathcal{H}} = \sum_{k=0}^{N-1} \lambda_k |\phi_k\rangle \langle \phi_k|

Donde NN es la dimensionalidad del espacio de estados, λk\lambda_{k} es el kk-ésimo autovalor o, físicamente, el kk-ésimo nivel de energía, y ϕk|\phi_k\rangle es el autoestado correspondiente: H^ϕk=λkϕk\hat{\mathcal{H}}|\phi_k\rangle = \lambda_k |\phi_k\rangle. La energía esperada de un sistema en el estado (normalizado) ψ|\psi\rangle es:

ψH^ψ=ψ(k=0N1λkϕkϕk)ψ=k=0N1λkψϕkϕkψ=k=0N1λkψϕk2\begin{aligned} \langle \psi | \hat{\mathcal{H}} | \psi \rangle & = \langle \psi |\bigg(\sum_{k=0}^{N-1} \lambda_k |\phi_k\rangle \langle \phi_k|\bigg) | \psi \rangle \\[1mm] & = \sum_{k=0}^{N-1} \lambda_k \langle \psi |\phi_k\rangle \langle \phi_k| \psi \rangle \\[1mm] & = \sum_{k=0}^{N-1} \lambda_k |\langle \psi |\phi_k\rangle|^2 \\[1mm] \end{aligned}

Teniendo en cuenta que λ0λk,k\lambda_0\leq \lambda_k, \forall k, obtenemos:

ψH^ψ=k=0N1λkψϕk2k=0N1λ0ψϕk2=λ0k=0N1ψϕk2=λ0\begin{aligned} \langle \psi | \hat{\mathcal{H}} | \psi \rangle & = \sum_{k=0}^{N-1} \lambda_k |\langle \psi |\phi_k\rangle|^2 \\[1mm] & \geq \sum_{k=0}^{N-1} \lambda_0 |\langle \psi |\phi_k\rangle|^2 \\[1mm] & = \lambda_0 \sum_{k=0}^{N-1} |\langle \psi |\phi_k\rangle|^2 \\[1mm] & = \lambda_0 \\[1mm] \end{aligned}

Dado que {ϕk}k=0N1\{|\phi_k\rangle \}_{k=0}^{N-1} es una base ortonormal, la probabilidad de medir ϕk|\phi_{k} \rangle es pk=ψϕk2p_k = |\langle \psi |\phi_{k} \rangle |^2, y la suma de todas las probabilidades satisface k=0N1ψϕk2=k=0N1pk=1\sum_{k=0}^{N-1} |\langle \psi |\phi_k\rangle|^2 = \sum_{k=0}^{N-1}p_k = 1. En resumen: la energía esperada de cualquier sistema está por encima de la energía más baja o energía del estado fundamental:

ψH^ψλ0.\langle \psi | \hat{\mathcal{H}} | \psi \rangle \geq \lambda_0.

El argumento anterior es válido para cualquier estado cuántico (normalizado) ψ|\psi\rangle, por lo que es perfectamente posible considerar estados parametrizados ψ(θ)|\psi(\vec\theta)\rangle que dependan de un vector de parámetros θ\vec\theta. Aquí es donde entra el aspecto "variacional". Si consideramos una función de costo C(θ):=ψ(θ)H^ψ(θ)C(\vec\theta) := \langle \psi(\vec\theta)|\hat{\mathcal{H}}|\psi(\vec\theta)\rangle y deseamos minimizarla, el mínimo siempre cumplirá la siguiente condición:

minθC(θ)=minθψ(θ)H^ψ(θ)λ0.\min_{\vec\theta} C(\vec\theta) = \min_{\vec\theta} \langle \psi(\vec\theta)|\hat{\mathcal{H}}|\psi(\vec\theta)\rangle \geq \lambda_0.

El valor mínimo de C(θ)C(\vec\theta) es lo más cercano que se puede llegar a λ0\lambda_0 con los estados parametrizados ψ(θ)|\psi(\vec\theta)\rangle. La igualdad solo se alcanza si existe un vector de parámetros θ\vec\theta^* tal que ψ(θ)=ϕ0|\psi(\vec\theta^*)\rangle = |\phi_0\rangle.

Teorema variacional de la mecánica cuántica

Si el estado (normalizado) ψ|\psi\rangle de un sistema cuántico depende de un vector de parámetros θ\vec\theta, la mejor aproximación del estado fundamental (es decir, el autoestado ϕ0|\phi_0\rangle con el autovalor mínimo λ0\lambda_0) es aquel que minimiza el valor esperado del hamiltoniano H^\hat{\mathcal{H}}:

H^(θ):=ψ(θ)H^ψ(θ)λ0\langle \hat{\mathcal{H}} \rangle(\vec\theta) := \langle \psi(\vec\theta) |\hat{\mathcal{H}}| \psi(\vec\theta) \rangle \geq \lambda_0

La razón por la que el principio variacional se formula en términos de mínimos de energía radica en una serie de suposiciones matemáticas:

  • Por razones físicas, debe existir una cota inferior finita para la energía Eλ0>E \geq \lambda_0 > -\infty, incluso para NN\rightarrow\infty.
  • Las cotas superiores generalmente no existen.

Matemáticamente, sin embargo, no hay nada especial en el hamiltoniano H^\hat{\mathcal{H}} más allá de estas suposiciones, por lo que el teorema puede generalizarse a otros observables cuánticos y sus autoestados, siempre que sigan las mismas restricciones. Nótese además que: si existen cotas superiores finitas, los mismos argumentos matemáticos podrían aplicarse a la maximización de autovalores, reemplazando las cotas inferiores por cotas superiores.

Resumen

En esta lección, has obtenido una visión general de alto nivel de los algoritmos variacionales. En las siguientes lecciones, exploraremos cada paso en detalle y examinaremos los compromisos asociados.