Pauli propagation
Пакет pauli-prop надає прискорений за допомогою Rust інтерфейс Python для виконання Pauli propagation.
Pauli propagation — це фреймворк для наближеного обчислення еволюції операторів у паулівському базисі під дією інших операторів, таких як гейти квантової схеми та канали шуму. Цей підхід може бути ефективним, коли очікується, що задіяні оператори залишаються розрідженими в паулівському базисі.
Підпрограми цього пакета можна використовувати для реалізації методів пом'якшення помилок, таких як lightcone shading [6] і propagated noise absorption [7], operator backpropagation [8] для зменшення глибини схеми та класичного моделювання математичних сподівань [1-5].
Початок роботи
Простий посібник, який допоможе тобі швидко почати роботу з цим пакетом, доступний у посібнику зі швидкого старту.
Приклади використання
Pauli propagation можна використовувати як рушій нижчого рівня для реалізації різноманітних методів. Ось кілька прикладів, де її було застосовано:
-
Lightcone shading для зменшення накладних витрат на вибірку в імовірнісному скасуванні помилок (PEC) для пом'якшення математичних сподівань в 1- та 2-вимірній моделі Ізінга з поперечним полем [6] [
qiskit-addon-slcдокументація] -
Поглинання інформації про модель шуму в цільову спостережувану для пом'якшення математичних сподівань у 2-вимірній моделі Ізінга з поперечним полем [7] [
qiskit-addon-pnaдокументація] -
Обрізання кінцевих гейтів для отримання тротерівських схем меншої глибини для часової еволюції 2-вимірної спінової моделі [8] [
qiskit-addon-obpдокументація]
Технічне обговорення
Відомості про програмне забезпечення
-
Інтерфейс Python, прискорений за допомогою Rust
-
Підтримка шумових симуляцій [посібник]
-
Можливість відкидати доданки під час еволюції на основі абсолютного допуску коефіцієнтів, фіксованої кількості доданків в оператора, що еволюціонує, або комбінації обох
-
Можливість виконувати Pauli propagation і в представленні Шредінгера, і в представленні Гейзенберга
-
Новий метод наближеного обчислення спряження оператора-суми Паулі іншим оператором Паулі. Ця евристична реалізація жадібно генерує внески в добуток, які, як очікується, є найважливішими. Докладніше див. у додатку B до [7].
-
Однопотоковий
Обчислювальні вимоги
І витрати пам'яті, і витрати часу для процедур Pauli propagation загалом масштабуються разом із розміром, до якого дозволено рости еволюціонованому операторові.
propagate_through_rotation_gates(): Коли оператор Паулі поширюється в паулівському базисі під дією послідовності з гейтів обертання Паулі -кубітної схеми, кількість доданків зростатиме як до максимуму в унікальних паулівських компонентів. Щоб контролювати використання пам'яті, оператор обрізається після застосування кожного гейта, що вносить певну похибку, пропорційну величинам коефіцієнтів відкинутих доданків. Вимоги до пам'яті лінійні за розміром еволюціонованого оператора, а час виконання масштабується лінійно і за розміром оператора, і за кількістю гейтів.
propagate_through_operator(): Спряжує один оператор у паулівському базисі іншим, жадібно накопичуючи доданки суми, , де — розріджені індекси за паулівським базисом. Ця реалізація сортує коефіцієнти в кожному операторі за спаданням модуля, а потім шукає в 3D-просторі індексів доданки з найбільшими коефіцієнтами, починаючи з початку координат і накопичуючи трійки до заданого порога. Час, витрачений на пошук, часто можна зробити нехтовно малим, збільшивши крок пошуку в просторі , що дає кубічне прискорення для цієї підпрограми. За нашим профілюванням, значний час може витрачатися на сортування операторів і виконання паулівського множення для генерації доданків нового оператора.
Участь у розробці
Вихідний код доступний на GitHub.
Посібник розробника розташований у CONTRIBUTING.md у корені репозиторію цього проєкту. Беручи участь, ти погоджуєшся дотримуватися кодексу поведінки Qiskit.
Ми використовуємо GitHub issues для відстеження запитів і помилок.
Цитування цього пакета
Якщо ти використовуєш цей пакет у своїх дослідженнях, скористайся файлом CITATION.bib у репозиторії цього проєкту, щоб процитувати відповідні джерела.
Ліцензія
Політика застарівання
Ми дотримуємося семантичного версіонування. Іноді ми можемо вносити зміни, що порушують сумісність, щоб покращити досвід користувача. Коли це можливо, ми зберігатимемо старі інтерфейси та позначатимемо їх як застарілі, доки вони можуть співіснувати з новими. Кожне суттєве покращення, зміна, що порушує сумісність, або застарівання будуть задокументовані в примітках до випуску.
Посилання
-
[Tomislav Begušić, Johnnie Gray, Garnet Kin-Lic Chan, Fast and converged classical simulations of evidence for the utility of quantum computing before fault tolerance, arXiv:2308.05077 [quant-ph].
-
Nicolas Loizeau, et al., Quantum many-body simulations with PauliStrings.jl, arXiv:2410.09654 [quant-ph].
-
Manuel S. Rudolph, et al., Pauli Propagation: A Computational Framework for Simulating Quantum Systems, arXiv:2505.21606 [quant-ph].
-
Hrant Gharibyan, et al., A Practical Guide to using Pauli Path Simulators for Utility-Scale Quantum Experiments, arXiv:2507.10771 [quant-ph].
-
Lukas Broers, et al., Scalable Simulation of Quantum Many-Body Dynamics with Or-Represented Quantum Algebra, arXiv:2506.13241 [quant-ph].
-
Andrew Eddins, Minh C. Tran, Patrick Rall, Lightcone shading for classically accelerated quantum error mitigation, arXiv:2409.04401 [quant-ph].
-
Andrew Eddins, et al., Computing noise-canceling observables via Pauli propagation, arXiv:2606.20441 [quant-ph].
8 Bryce Fuller, et al., Improved Quantum Computation using Operator Backpropagation, arXiv:2502.01897 [quant-ph].