Diagonalización cuántica basada en muestras (SQD)
Este paquete implementa la diagonalización cuántica basada en muestras (SQD), una técnica para hallar los valores propios y los vectores propios de operadores cuánticos, como el hamiltoniano de un sistema cuántico [1–6]. Puede aplicarse a hamiltonianos expresados como combinaciones lineales de operadores de Pauli u operadores fermiónicos de segunda cuantización. Los flujos de trabajo basados en SQD pueden ejecutarse en los ordenadores cuánticos actuales y se ha demostrado que son capaces de escalar a problemas de un tamaño superior al que era posible con los métodos variacionales, e incluso más allá del alcance de los métodos clásicos exactos de diagonalización.
Los flujos de trabajo basados en SQD consisten, en primer lugar, en preparar uno o varios estados cuánticos en un dispositivo cuántico y tomar muestras de ellos. A continuación, se recurre a la computación distribuida clásica para procesar esas muestras con ruido. Este procesamiento se lleva a cabo de forma iterativa en dos pasos: en primer lugar, un paso de recuperación de la configuración corrige las muestras con ruido utilizando información sobre el problema de entrada; en segundo lugar, el hamiltoniano se proyecta y se diagonaliza en el subespacio generado por dichas muestras. Estos pasos se repiten de forma autoconsistente hasta alcanzar la convergencia. El resultado es una aproximación al valor propio mínimo (energía) y al estado propio de mínima energía de un hamiltoniano dado. El SQD es resistente a las muestras afectadas por ruido cuántico; de hecho, siempre que se pueda recuperar una señal útil del ordenador cuántico, el resultado del SQD no se verá afectado por las cadenas de bits con ruido.
qiskit-addon-sqd Se puede utilizar para procesar de forma clásica muestras extraídas de diversos circuitos cuánticos en la práctica. Por ejemplo:
- Un enfoque de circuito variacional cuyos parámetros se eligen de tal manera que, al muestrear el circuito, se obtienen configuraciones electrónicas en las que la función de onda objetivo (por ejemplo, el estado fundamental) tiene un soporte significativo. Esto resulta interesante para aplicaciones en química, donde los hamiltonianos pueden tener millones de términos de interacción [1]. Para ver un ejemplo de cómo se aplica este enfoque a la química utilizando un circuito LUCJ, consulta el tutorial sobre cómo aproximar la energía del estado fundamental de la molécula « N2 ».
- Se prepara un conjunto de estados de base de Krylov a lo largo de intervalos de tiempo cada vez mayores. Partiendo de la hipótesis de un buen estado inicial y de la escasa densidad del estado fundamental, se ha demostrado que este enfoque converge de manera eficiente. Dado que es necesario preparar circuitos de evolución temporal «trotterizados» en un dispositivo cuántico, este enfoque resulta más adecuado para aplicaciones en modelos de red [2] que para hamiltonianos complejos de muchos cuerpos, como los utilizados en química cuántica. Para ver un ejemplo de cómo se aplica este enfoque a los hamiltonianos de red fermiónica, consulta el tutorial sobre cómo aproximar la energía del estado fundamental de un modelo de Anderson simplificado con una sola impureza.
- Un conjunto de estados de base de Krylov implementado mediante una compilación aleator qDRIFT e del operador de evolución temporal. Este enfoque da lugar a circuitos de menor profundidad en comparación con las descomposiciones de la evolución temporal basadas en Trotter, por lo que puede utilizarse para los hamiltonianos de la química cuántica. Esta técnica se ha aplicado a la energía del estado fundamental de los hidrocarburos aromáticos policíclicos [6].
cómo empezar
En la guía de inicio rápido encontrarás una guía sencilla que te ayudará a empezar a utilizar este paquete rápidamente.
Ejemplos de casos de uso
La técnica de diagonalización cuántica basada en muestras puede utilizarse para implementar una amplia variedad de flujos de trabajo. Algunos ejemplos de dónde se ha utilizado son:
- Cálculos de la estructura electrónica de las energías del estado fundamental de los clústeres de hierro-azufre
- Estimación de las energías del estado fundamental para predecir las bandas prohibidas de los dieléctricos
- Estimación de estados excitados moleculares de baja energía
- Simulación de interacciones entre moléculas
- Estudio de las interacciones entre soluto y disolvente en simulaciones de estructura electrónica
- Análisis de cáscara abierta de la disociación molecular
- Modelización de vías de reacción para problemas de fotoquímica
- Combinación con la técnica de «entanglement forging» para estudiar las vías de reacción que provocan la degradación de los materiales mediante la extracción de hidrógeno
- Construcción de subespacios a partir de estados de la base de Krylov cuántica para realizar simulaciones del estado fundamental de modelos de impurezas en sistemas fermiónicos
- Uso de una compilación aleator qDRIFT a para reducir la sobrecarga que supone la implementación de estados de bases de Krylov para hamiltonianos químicos, con aplicación a una molécula que presenta una topología electrónica de medio Möbius
- El uso de SQD como solucionador en el contexto de los métodos de incrustación y fragmentación para sistemas moleculares, por ejemplo, para calcular las energías de los anillos de hidrógeno y del ciclohexano, así como de los complejos bimetálicos y trimetálicos; para estudiar la reacción de reducción del oxígeno; para estimar las energías de las proteínas y de los complejos proteína-ligando; y para predecir la especiación del tritio.
Debate técnico
Tamaños de los sistemas y requisitos informáticos
El coste computacional de SQD viene determinado principalmente por las llamadas al solucionador de estados propios. En cada paso de la iteración de recuperación de la configuración autoconsistente, se realizan n_batches de llamadas al solucionador de estados propios. Las distintas llamadas se ejecutan en paralelo de forma casi ridícula. En este tutorial, esas llamadas se encuentran dentro de un bucle «for». Se recomienda encarecidamente realizar estas llamadas en paralelo.
La qiskit_addon_sqd.fermion.solve_fermion() función es multihilo y capaz de gestionar sistemas con unos 25 orbitales espaciales y unos 10 electrones, con dimensiones del subespacio de unos $10^7$, utilizando entre unos 10 y 30 núcleos.
Elección de las dimensiones del subespacio
La elección de la dimensión del subespacio influye en la precisión y en el tiempo de ejecución del solucionador de estados propios. Cuanto mayor sea el subespacio, más preciso será el cálculo, aunque a costa de un aumento del tiempo de ejecución y de los requisitos de memoria. Se desconoce cuál es el tamaño óptimo del subespacio de un sistema determinado; por lo tanto, se puede llevar a cabo un estudio de convergencia en función de la dimensión del subespacio, tal y como se describe en esta guía.
La dimensión del subespacio se establece de forma indirecta
En este paquete, el usuario controla el número de cadenas de bits que contiene cada subespacio mediante el argumento «samples_per_batch» en qiskit_addon_sqd.subsampling.postselect_and_subsample(). El valor de este argumento establece un límite superior para la dimensión del subespacio en el caso de las aplicaciones de la química cuántica. Consulta este ejemplo para obtener más detalles.
solucionadores
Las etapas de proyección y diagonalización se llevan a cabo mediante un solucionador clásico. A continuación ofrecemos dos solucionadores genéricos: uno para sistemas fermiónicos y otro para sistemas de qubits. Los usuarios pueden integrar otros solucionadores que puedan resultar más eficientes para sistemas específicos.
contribuir
El código fuente está disponible en GitHub.
La guía para desarrolladores se encuentra en CONTRIBUTING.md, en el directorio raíz del repositorio de este proyecto. Al participar, se espera que respetes el código de conducta de Qiskit.
Utilizamos los problemas GitHub para el seguimiento de las solicitudes y los errores.
Citar este paquete
Si utilizas este paquete en tu investigación, utiliza el archivo « CITATION.bib » que se encuentra en el repositorio de este proyecto para citar las referencias correspondientes.
Licencia
Política de obsolescencia
Seguimos el sistema de versionado semántico. Es posible que, de vez en cuando, realicemos cambios que afecten al funcionamiento del sistema con el fin de mejorar la experiencia del usuario. Siempre que sea posible, mantendremos las interfaces antiguas y las marcaremos como obsoletas, siempre y cuando puedan coexistir con las nuevas. Cada mejora significativa, cambio que implique incompatibilidad o función en desuso se documentará en las notas de la versión.
Referencias
-
Javier Robledo-Moreno y otros, «La química más allá de las soluciones exactas en un superordenador centrado en la mecánica cuántica », arXiv:2405.05068[ quant-ph].
-
Jeffery Yu y otros, Algoritmo centrado en la mecánica cuántica para la diagonalización de Krylov basada en muestras, arXiv:2501.09702 [quant-ph].
-
Keita Kanno y otros, Interacción de configuraciones seleccionadas cuánticamente: diagonalización clásica de hamiltonianos en subespacios seleccionados por ordenadores cuánticos, arXiv:2302.11320 [quant-ph].
-
Kenji Sugisaki y otros, Interacción de configuraciones seleccionadas cuánticamente basada en simulación hamiltoniana para cálculos de estructura electrónica a gran escala con un ordenador cuántico, arXiv:2412.07218 [quant-ph].
-
Mathias Mikkelsen, Yuya O. Nakagawa, «Interacción de configuración seleccionada cuánticamente con estado evolucionado en el tiempo », arXiv:2412.13839 [quant-ph].
-
Samuele Piccinelli y otros, Química cuántica con convergencia demostrable mediante la diagonalización cuántica de Krylov basada en muestras aleatorias, arXiv:2508.02578 [quant-ph].