Vue d'ensemble de la diagonalisation quantique basée sur des échantillons (SQD)
La diagonalisation quantique basée sur des échantillons (SQD) est une technique classique de post-traitement qui agit sur des échantillons obtenus depuis un circuit quantique après exécution sur un QPU. Elle est utile pour trouver les valeurs propres et les vecteurs propres d'opérateurs quantiques, comme le Hamiltonien d'un système quantique, et combine informatique quantique et informatique classique distribuée. Cette technique de post-traitement peut être particulièrement utile pour les utilisateurs qui simulent des systèmes chimiques ou d'autres systèmes quantiques.
L'informatique classique est utilisée pour traiter les échantillons obtenus depuis un processeur quantique, et pour projeter et diagonaliser un Hamiltonien cible dans un sous-espace qu'ils définissent. Cela permet à SQD d'être robuste face aux échantillons corrompus par le bruit quantique et de gérer des Hamiltoniens de grande taille, comme des systèmes chimiques avec des millions de termes en interaction, au-delà de la portée des méthodes de diagonalisation exacte.
L'outil SQD peut cibler des Hamiltoniens exprimés sous forme de combinaisons linéaires d'opérateurs de Pauli ou d'opérateurs fermioniques en seconde quantification. Les échantillons en entrée sont obtenus par des circuits quantiques définis par l'utilisateur, qui sont supposés être de bonnes représentations des états propres (par exemple, l'état fondamental) d'un opérateur cible. La vitesse de convergence de SQD en fonction du nombre d'échantillons s'améliore avec la sparsité de l'état propre cible.
Installer le package SQD
Il existe deux façons d'installer le package SQD : via PyPI ou en compilant depuis les sources. Il est recommandé d'installer ces packages dans un environnement virtuel pour garantir l'isolation entre les dépendances des packages.
Installer depuis PyPI
La façon la plus simple d'installer le package qiskit-addon-sqd est via PyPI.
pip install qiskit-addon-sqd
Compiler depuis les sources
Clique ici pour lire comment installer ce package manuellement
Si tu souhaites contribuer à ce package ou l'installer manuellement, commence par cloner le dépôt :
git clone git@github.com:Qiskit/qiskit-addon-sqd.git
puis installe le package via pip. Le dépôt contient également des notebooks d'exemple que tu peux exécuter. Si tu prévois de développer dans le dépôt, tu peux installer les dépendances dev.
Ajuste les options selon tes besoins.
pip install tox notebook -e '.[notebook-dependencies, dev]'
Contexte théorique
Le workflow SQD utilisant la récupération de configuration auto-cohérente est expliqué en détail dans [1]. Cette section fournit une vue d'ensemble de la technique illustrée dans le diagramme suivant.

Ici est un ensemble d'échantillons bruités qui contiennent, dans le contexte du Hamiltonien simulé, des configurations physiques et non physiques (représentées sous forme de chaînes de bits) obtenues après exécution sur un QPU. Les configurations non physiques sont dues au bruit et peuvent être traitées par la méthode sqd.configuration_recovery.recover_configurations() pour affiner les échantillons en un nouvel ensemble .
À partir de cet ensemble, des lots de configurations sont collectés selon une distribution proportionnelle aux fréquences empiriques de chaque dans . Chaque lot de configurations échantillonnées définit un sous-espace, , dans lequel le Hamiltonien est projeté et diagonalisé :
où est le Hamiltonien d'un sous-espace donné.
L'essentiel du workflow SQD réside ici, où chacun de ces Hamiltoniens de sous-espace est diagonalisé. Les états fondamentaux obtenus depuis chacun de ces sous-espaces, , sont utilis és pour produire une estimation d'un vecteur de référence des occupations moyennées sur chacun des sous-espaces. Un nouvel ensemble de configurations est alors généré en inversant probabilistement des bits individuels sur la base de cette occupation moyenne et du nombre total connu de particules (poids de Hamming) dans le système. Ce processus de récupération de configuration est ensuite répété en préparant un nouvel ensemble de sous-espaces à diagonaliser, en obtenant de nouveaux états propres et une nouvelle occupation orbitale moyenne, et en générant un nouvel ensemble de configurations. Cette boucle est itérée jusqu'à ce qu'un critère spécifié par l'utilisateur soit atteint, et le processus global est analogue au filtrage d'un signal bruité pour améliorer sa fidélité.
Prochaines étapes
- Lis la page de prise en main de SQD.
- Lis le tutoriel sur l'amélioration de l'estimation d'énergie avec SQD.
Références
[1] Robledo-Moreno, Javier, et al. "Chemistry beyond exact solutions on a quantum-centric supercomputer" arXiv preprint arXiv:2405.05068 (2024).