Rétropropagation d'opérateurs (OBP)
La rétropropagation d'opérateurs (OBP) est une technique permettant de réduire la profondeur d'un circuit en supprimant des opérations à son extrémité, au prix de davantage de mesures d'opérateurs. Il existe plusieurs façons d'effectuer la rétropropagation d'opérateurs ; ce package utilise une méthode fondée sur la théorie des perturbations de Clifford [1].
Plus on propage un opérateur loin dans un circuit, plus la taille de l'observable à mesurer croît de manière exponentielle. Cela entraîne un surcoût en ressources classiques et quantiques. Cependant, pour certains circuits, la distribution des observables de Pauli supplémentaires résultants est plus concentrée que la mise à l'échelle exponentielle dans le pire des cas. Cela implique que certains termes d'un observable avec de petits coefficients peuvent être tronqués pour réduire le surcoût quantique. L'erreur ainsi introduite peut être contrôlée afin de trouver un compromis approprié entre précision et efficacité.
Installation
Tu peux installer le package OBP de deux façons : via PyPI ou en le compilant depuis les sources. Il est conseillé d'installer ces packages dans un environnement virtuel pour garantir l'isolation entre les dépendances.
Installer depuis PyPI
La façon la plus simple d'installer le package qiskit-addon-obp est via PyPI.
pip install qiskit-addon-obp
Compiler depuis les sources
Les utilisateurs qui souhaitent contribuer à ce package ou l'installer manuellement peuvent le faire en clonant d'abord le dépôt :
git clone git@github.com:Qiskit/qiskit-addon-obp.git
```_
puis installer le package via `pip`. Le dépôt contient également des notebooks d'exemples. Si tu prévois de développer dans le dépôt, installe les dépendances `dev`.
Ajuste les options selon tes besoins :
```bash
pip install tox notebook -e '.[notebook-dependencies, dev]'
Contexte théorique
La procédure OBP implémentée dans ce package est décrite en détail dans [1]. Lorsqu'on utilise la primitive Estimator, le résultat d'une charge de travail quantique est l'estimation d'une ou plusieurs valeurs d'espérance par rapport à un état préparé à l'aide d'un QPU. Cette section résume la procédure.
Pour commencer, écris la mesure de la valeur d'espérance d'un observable en fonction d'un état initial et d'un circuit quantique :
Pour distribuer ce problème entre les ressources classiques et quantiques, divise le circuit en deux sous-circuits, et , simule classiquement le circuit , puis exécute le circuit sur du matériel quantique et utilise les résultats de la simulation classique pour reconstruire la mesure de l'observable .

Le sous-circuit doit être choisi de façon à être simulable classiquement et calculera la valeur d'espérance
qui est la version de l'opérateur initial évolué à travers le circuit . Une fois déterminé, la charge de travail quantique est préparée : l'état est initialisé, le circuit lui est appliqué, puis la valeur d'espérance est mesurée. Tu peux montrer que c'est équivalent à mesurer en écrivant :
Enfin, pour mesurer la valeur d'espérance , on doit exiger qu'elle soit décomposable en une somme de chaînes de Pauli
où sont des coefficients réels de la décomposition et est une chaîne de Pauli composée des opérateurs , , et . Cela garantit que tu peux reconstruire la valeur d'espérance de par
Troncature des termes
Ce schéma offre un compromis entre la profondeur de circuit requise pour , le nombre d'exécutions de circuits sur du matériel quantique, et la quantité de ressources informatiques classiques nécessaires pour calculer . En général, plus on choisit de rétropropager loin dans un circuit, plus le nombre de chaînes de Pauli à mesurer ainsi que le surcoût de mitigation d'erreurs croissent de manière exponentielle (parallèlement aux ressources classiques nécessaires pour simuler ).
Heureusement, la décomposition de peut souvent contenir des coefficients très petits qui peuvent être tronqués des mesures finales utilisées pour reconstruire sans engendrer beaucoup d'erreur. Le package qiskit-addon-obp possède des fonctionnalités pour spécifier un budget d'erreur, qui peut automatiquement rechercher les termes pouvant être tronqués, dans les limites d'une certaine tolérance d'erreur.
Théorie des perturbations de Clifford
Enfin, le package qiskit-addon-obp aborde la rétropropagation d'opérateurs en s'appuyant sur la théorie des perturbations de Clifford. Cette méthode présente l'avantage que le surcoût engendré par la rétropropagation de diverses portes évolue avec la non-cliffordité de (c'est-à-dire dans quelle mesure est composé d'instructions non-Clifford).
Cette approche de l'OBP commence par diviser le circuit simulé, , en tranches :
où représente le nombre total de tranches et désigne une tranche unique du circuit . Chacune de ces tranches est ensuite appliquée analytiquement en séquence pour mesurer l'opérateur rétropropagé , et peut ou non contribuer à la taille globale de la somme, selon que la tranche est une opération Clifford ou non-Clifford. Si un budget d'erreur est alloué, la troncature se produit alors entre l'application de chaque tranche.
Prochaines étapes
- Débute avec l'OBP.
- Familiarise-toi avec les techniques de mitigation d'erreurs disponibles dans Qiskit Runtime.
- Lis le tutoriel sur l'utilisation de l'OBP pour améliorer les valeurs d'espérance.
Références
[1] Fuller, Bryce, et al. "Improved Quantum Computation using Operator Backpropagation." arXiv:2502.01897 [quant-ph] (2025).