Aller au contenu principal

Formules multi-produits (MPF)

Versions des packages

Le code sur cette page a été développé en utilisant les dépendances suivantes. Nous recommandons d'utiliser ces versions ou des versions plus récentes.

Les formules multi-produits (MPF) peuvent être utilisées pour simuler plus précisément la dynamique d'un système quantique, au prix d'un plus grand nombre d'exécutions de circuits. Il s'agit d'une technique de post-traitement qui atténue l'erreur des valeurs d'espérance pour les états soumis à une évolution temporelle.

L'informatique classique est utilisée pour résoudre un système d'équations linéaires qui fournit des coefficients à une combinaison pondérée de plusieurs exécutions de circuits. L'utilisation de cette combinaison pondérée permet de réduire l'erreur associée à la simulation de l'évolution temporelle, à condition de bien choisir le nombre de pas de Trotter. L'outil MPF accepte une sélection de données --- incluant le nombre de pas de Trotter et l'ordre de l'approximation de Trotter --- pour préparer et résoudre (ou approximer la solution de) le système d'équations linéaires associé, que tu peux ensuite utiliser pour post-traiter les mesures de valeurs d'espérance d'un état soumis à une évolution temporelle.

Installer le package MPF

Il existe deux façons d'installer le package MPF : via PyPI et en compilant depuis les sources. Il est recommandé de l'installer dans un environnement virtuel pour assurer la séparation entre les dépendances des packages.

Installer depuis PyPI

La façon la plus simple d'installer le package qiskit-addon-mpf est via PyPI.

pip install qiskit-addon-mpf

Compiler depuis les sources

Les utilisateurs qui souhaitent développer dans le dépôt ou qui veulent l'installer manuellement peuvent le faire en clonant d'abord le dépôt :

git clone git@github.com:Qiskit/qiskit-addon-mpf.git

puis installer le package via pip. Le dépôt contient également un certain nombre de dépendances optionnelles qui activent certaines fonctionnalités.

Ajuste les options selon tes besoins.

pip install tox notebook -e '.[notebook-dependencies,dev]'

Contexte théorique

Les MPF peuvent réduire l'erreur d'approximation de Trotter associée à la simulation de la dynamique des systèmes quantiques grâce à une combinaison pondérée de plusieurs exécutions de circuits. Cette somme pondérée est définie comme suit :

μ(t)=jxjρjkj(tkj)+some remaining Trotter error,\mu(t) = \sum_j x_j\rho_j^{k_j}\left(\frac{t}{k_j}\right) + \text{some remaining Trotter error},

xjx_j sont les coefficients de pondération, ρjkj\rho_j^{k_j} est la matrice densité qui correspond à l'état pur obtenu en faisant évoluer l'état initial via une formule produit SkjS^{k_j} approximant l'opérateur d'évolution temporelle en utilisant kjk_j pas de Trotter, et jj indexe chaque formule produit utilisée dans la somme.

Plusieurs circuits avec un nombre variable de pas de Trotter sont utilisés pour calculer l'observable cible

En général, cependant, l'objectif de la simulation de la dynamique quantique est de mesurer une observable O(t)\mathcal{O}(t), qui est une fonction du temps. Lors de l'utilisation des MPF, plusieurs circuits --- chacun utilisant kjk_j pas de Trotter --- sont exécutés pour obtenir plusieurs mesures de l'observable cible Okj(t)\mathcal{O}_{k_j}(t). La mesure de l'observable cible est ensuite obtenue en calculant :

O(t)=jxj(t)Okj(t).\langle \mathcal{O}(t) \rangle = \sum_j x_j(t) \langle \mathcal{O}_{k_j}(t) \rangle.

En substance, tu peux réduire l'erreur de Trotter globale en approximant l'opérateur d'évolution temporelle à l'aide de plusieurs formules produits avec un nombre variable de pas de Trotter plutôt qu'une seule formule produit. Tu construis un circuit pour chaque terme de la somme pondérée, qui fait évoluer le système selon chacun des kjk_j pas de Trotter. Chaque circuit est ensuite exécuté séparément sur un QPU pour reconstruire les résultats lors d'une étape de post-traitement. L'utilité de cette technique peut être envisagée sous deux angles :

  1. Pour un nombre fixe de pas de Trotter que tu exécutes, tu peux obtenir des résultats avec une erreur de Trotter plus faible au total.
  2. Pour un nombre de pas de Trotter qui aboutit à des circuits profonds, tu peux utiliser les MPF pour trouver plusieurs circuits de moindre profondeur à exécuter, ce qui donne une erreur d'approximation de Trotter similaire.

Déterminer les coefficients MPF

La fonctionnalité principale du package qiskit-addon-mpf réside dans la détermination des coefficients MPF xj(t)x_j(t) (qui peuvent dépendre du temps). Le processus pour obtenir chaque xj(t)x_j(t) consiste à résoudre un système d'équations linéaires Ax=bAx=bxx est le vecteur des coefficients à déterminer, AA est une matrice qui dépend de chacun des kjk_j et de la formule produit utilisée SS (c'est-à-dire l'ordre d'approximation et le nombre de pas de Trotter), et bb est un vecteur de contraintes. Ce système d'équations peut être résolu de manière exacte ou avec un modèle approché qui minimise la norme 1 des coefficients. De plus, le choix de chaque kjk_j est un processus heuristique, mais peut être borné par les contraintes suivantes :

  1. La valeur la plus grande de kjk_j est bornée par la profondeur maximale de circuit qui peut être exécutée de manière fiable
  2. La valeur la plus petite de kjk_j doit satisfaire dt=t/kj<1dt = t/k_j < 1 car c'est là que l'erreur de Trotter se comporte le mieux
  3. Aucun des coefficients xjx_j ne doit être proche de 00, car cela impliquerait qu'ils ne contribuent pas beaucoup à la MPF
  4. De même, le coefficient associé à la valeur la plus grande de kjk_j ne doit pas dominer, car cela impliquerait que tu utilises une seule formule produit
  5. Enfin, la norme des coefficients xjx_j obtenus doit être faible, car cela indique une MPF bien conditionnée 1

Étapes suivantes

Recommandations

Références

  1. A. Carrera Vazquez, D. J. Egger, D. Ochsner, and S. Wörner, "Well-conditioned multi-product formulas for hardware-friendly Hamiltonian simulation", Quantum 7, 1067 (2023).
  2. S. Zhuk, N. Robertson, and S. Bravyi, "Trotter error bounds and dynamic multi-product formulas for Hamiltonian simulation", Phys. Rev. Research 6, 033309 (2024).
  3. N. Robertson, et al. "Tensor Network enhanced Dynamic Multiproduct Formulas", arXiv:2407.17405v2 [quant-ph].