Diagonalizare cuantică bazată pe eșantioane (SQD)
Acest pachet implementează diagonalizarea cuantică bazată pe eșantioane (SQD) — o tehnică pentru găsirea valorilor proprii și a vectorilor proprii ai operatorilor cuantici, cum ar fi hamiltonianul unui sistem cuantic [1–6]. Poate viza hamiltonieni exprimați ca combinații liniare de operatori Pauli sau de operatori fermionici în a doua cuantificare. Fluxurile de lucru bazate pe SQD pot rula pe computerele cuantice actuale și s-a demonstrat că scalează la dimensiuni de probleme dincolo de ce era posibil cu metodele variaționale — și chiar dincolo de limitele metodelor clasice exacte de diagonalizare.
Fluxurile de lucru bazate pe SQD implică mai întâi pregătirea uneia sau mai multor stări cuantice pe un dispozitiv cuantic și eșantionarea lor. Apoi, calculul distribuit clasic este folosit pentru a procesa acele eșantioane zgomotoase. Această procesare are loc iterativ în doi pași: mai întâi, un pas de recuperare a configurațiilor corectează eșantioanele zgomotoase folosind informații despre problema de intrare; apoi, hamiltonianul este proiectat și diagonalizat în subspațiul generat de acele eșantioane. Acești pași se repetă auto-consistent până la convergență. Rezultatul este o valoare proprie minimă aproximată (energia) și starea proprie de energie minimă a unui hamiltonian dat. SQD este robust la eșantioane corupte de zgomot cuantic; de fapt, atâta timp cât se poate extrage un semnal util din computerul cuantic, rezultatul SQD va fi insensibil la șirurile de biți zgomotoase.
qiskit-addon-sqd poate fi folosit în practică pentru a procesa clasic eșantioane extrase dintr-o varietate de circuite cuantice. De exemplu:
- Un ansatz de circuit variațional cu parametri aleși astfel încât eșantionarea circuitului să producă configurații electronice pe care funcția de undă țintă (de exemplu, starea fundamentală) are suport semnificativ. Acest lucru este atractiv pentru aplicațiile din chimie, unde hamiltonienii pot avea milioane de termeni de interacțiune [1]. Pentru un exemplu al acestei abordări aplicate în chimie folosind un circuit LUCJ, consultă tutorialul pentru aproximarea energiei stării fundamentale a moleculei N2.
- Un set de stări de bază Krylov sunt pregătite pe intervale de timp crescătoare. Presupunând o stare inițială bună și raritatea stării fundamentale, s-a demonstrat că această abordare converge eficient. Deoarece trebuie pregătite circuite de evoluție în timp Trotterizate pe un dispozitiv cuantic, această abordare este cea mai potrivită pentru aplicații la modele de rețea [2], nu pentru hamiltonieni complecși cu mulți corpi precum cei din chimia cuantică. Pentru un exemplu al acestei abordări aplicate hamiltonienilor de rețea fermionici, consultă tutorialul pentru aproximarea energiei stării fundamentale a unui model Anderson simplificat cu o singură impuritate.
- Un set de stări de bază Krylov implementate cu compilare aleatorie qDRIFT a operatorului de evoluție în timp. Această abordare produce circuite cu adâncime mai mică în comparație cu descompunerile bazate pe Trotter ale evoluției în timp și poate fi astfel folosită pentru hamiltonieni de chimie cuantică. Această tehnică a fost aplicată la energia stării fundamentale a hidrocarburilor aromatice policiclice [6].
Primii pași
Un ghid simplu care te ajută să începi rapid cu acest pachet este disponibil în ghidul de pornire rapidă.
Exemple de utilizare
Tehnica de diagonalizare cuantică bazată pe eșantioane poate fi folosită pentru a implementa un set divers de fluxuri de lucru. Câteva exemple de utilizări includ:
-
Calcule de structură electronică ale energiilor stării fundamentale pentru clustere fier-sulf
-
Estimarea energiilor stării fundamentale pentru a prezice benzile interzise ale dielectricilor
-
Estimarea stărilor excitate moleculare de energie joasă
-
Simularea interacțiunilor dintre molecule
-
Studierea interacțiunilor dizolvat-solvent în simulări de structură electronică
-
Analiză open-shell a disocierii moleculare
-
Modelarea căilor de reacție pentru probleme de fotochimie
-
Combinarea cu entanglement forging pentru a studia căile de reacție ale degradării materialelor prin abstracția hidrogenului
-
Construirea de subspații din stările bazei Krylov cuantice pentru a efectua simulări ale stării fundamentale pentru modele de impuritate în sisteme fermionice
-
Utilizarea compilării randomizate qDRIFT pentru a reduce costul implementării stărilor bazei Krylov pentru hamiltonieni chimici și cu aplicare la o moleculă care prezintă o topologie electronică semi-Mobius
-
Utilizarea SQD ca solver în contextul metodelor de embedding și de fragmentare pentru sisteme moleculare, de exemplu pentru a calcula energiile inelelor de hidrogen și ale ciclohexanului și ale complecșilor bi- și trimetalici, pentru a studia reacția de reducere a oxigenului, pentru a estima energiile proteinelor și ale complecșilor proteină–ligand și pentru a prezice speciația tritiului.
Discuție tehnică
Dimensiunile sistemelor și cerințele de calcul
Costul de calcul al SQD este dominat de apelurile către solverul de stări proprii. La fiecare pas al iterației autoconsistente de recuperare a configurațiilor se efectuează n_batches apeluri către solverul de stări proprii. Apelurile diferite sunt trivial paralelizabile. În acest tutorial, apelurile se află într-o buclă for. Este foarte recomandat să efectuezi aceste apeluri în paralel.
Funcția qiskit_addon_sqd.fermion.solve_fermion() este multithreaded și poate gestiona sisteme cu ~25 de orbitali spațiali și ~10 electroni, cu dimensiuni ale subspațiului de ~$10^7$, folosind ~10-30 de nuclee.
Alegerea dimensiunilor subspațiului
Alegerea dimensiunii subspațiului influențează acuratețea și timpul de execuție al solverului de stări proprii. Cu cât subspațiul este mai mare, cu atât calculul este mai precis, în schimbul creșterii timpului de execuție și a cerințelor de memorie. Dimensiunea optimă a subspațiului pentru un sistem dat nu este cunoscută; de aceea se poate efectua un studiu de convergență în funcție de dimensiunea subspațiului, așa cum este descris în acest ghid.
Limitarea dimensiunii subspațiului
Argumentul samples_per_batch al funcției qiskit_addon_sqd.fermion.diagonalize_fermionic_hamiltonian() stabilește numărul de șiruri de biți conținute în fiecare batch și controlează astfel indirect dimensiunea subspațiului: în cazul aplicațiilor de chimie cuantică, valoarea sa stabilește o limită superioară pentru dimensiunea subspațiului. Dimensiunea care rezultă efectiv depinde de câte dintre șirurile de biți eșantionate sunt distincte și crește pe parcursul iterațiilor autoconsistente de recuperare a configurațiilor, deci nu este cunoscută dinainte. Vezi acest exemplu pentru mai multe detalii.
Argumentul max_dim al aceleiași funcții limitează direct dimensiunea, restrângând numărul de șiruri CI păstrate în fiecare sector de spin. Deoarece subspațiul este generat de produsul cartezian al celor două sectoare de spin, max_dim=d limitează dimensiunea subspațiului la d**2, în timp ce un tuplu max_dim=(d_a, d_b) limitează separat sectoarele spin-alpha și spin-beta, plafonând dimensiunea subspațiului la d_a * d_b (cu symmetrize_spin=True, cele două limite trebuie să fie egale). Când un batch produce mai multe șiruri CI decât permite limita, șirurile solicitate prin include_configurations și cele preluate din iterația anterioară sunt păstrate cu prioritate, iar locurile rămase sunt completate cu cele mai frecvent eșantionate șiruri. Deoarece limitează dimensiunea celei mai mari diagonalizări pe care solverul de stări proprii va trebui să o efectueze, max_dim este o modalitate convenabilă de a menține solverul într-un buget de timp de execuție și de memorie. Vezi acest ghid pentru mai multe detalii.
Solvere
Pașii de proiecție și diagonalizare sunt efectuați de un solver clasic. Oferim aici două solvere generice, unul pentru sisteme fermionice și altul pentru sisteme de qubiți. Alte solvere, care ar putea fi mai eficiente pentru anumite sisteme, pot fi interfațate de utilizatori.
Trim SQD
SQD standard diagonalizează independent fiecare batch subeșantionat și păstrează cel mai bun rezultat, astfel încât numărul de configurații pe care le poate lua în considerare este limitat la ceea ce poate conține un singur subspațiu accesibil. Trim SQD împarte în schimb șirurile de biți în batch-uri, efectuează o diagonalizare intermediară a fiecărui batch, apoi efectuează o diagonalizare mai mare folosind determinanții cu cea mai mare pondere din fiecare partiție. Această metodă se bazează pe o cercetare comună a Cleveland Clinic Foundation, RIKEN și IBM [7] și poate fi activată transmițând un obiect TrimPolicy funcției diagonalize_fermionic_hamiltonian().
Contribuie
Codul sursă este disponibil pe GitHub.
Ghidul pentru dezvoltatori se află în CONTRIBUTING.md, în rădăcina depozitului acestui proiect. Prin participare, ești așteptat să respecți codul de conduită Qiskit.
Folosim GitHub issues pentru a urmări solicitările și erorile.
Citarea acestui pachet
Dacă folosești acest pachet în cercetarea ta, folosește fișierul CITATION.bib din depozitul acestui proiect pentru a cita referințele potrivite.
Mulțumiri
Acest pachet include o strategie opțională de eșantionare în cadrul buclei autoconsistente de recuperare a configurațiilor, care elimină determinanți pe baza rezultatelor diagonalizărilor intermediare. Implementarea se bazează pe o cercetare comună a Cleveland Clinic Foundation, RIKEN și IBM. Dacă folosești această funcționalitate în cercetarea ta, te rugăm să folosești și citarea lucrării, care se găsește în fișierul CITATION.bib cu cheia de citare merz2026crossing. O implementare a fluxului de lucru complet din acea lucrare ar urma să fie disponibilă în curând pe GitHub.
Licență
Politica de depreciere
Respectăm versionarea semantică. Ocazional putem face modificări incompatibile pentru a îmbunătăți experiența utilizatorului. Când este posibil, vom păstra vechile interfețe și le vom marca drept depreciate, atât timp cât pot coexista cu cele noi. Fiecare îmbunătățire substanțială, modificare incompatibilă sau depreciere va fi documentată în notele de lansare.
Referințe
-
Javier Robledo-Moreno, et al., Chemistry Beyond Exact Solutions on a Quantum-Centric Supercomputer, arXiv:2405.05068 [quant-ph].
-
Jeffery Yu, et al., Quantum-Centric Algorithm for Sample-Based Krylov Diagonalization, arXiv:2501.09702 [quant-ph].
-
Keita Kanno, et al., Quantum-Selected Configuration Interaction: classical diagonalization of Hamiltonians in subspaces selected by quantum computers, arXiv:2302.11320 [quant-ph].
-
Kenji Sugisaki, et al., Hamiltonian simulation-based quantum-selected configuration interaction for large-scale electronic structure calculations with a quantum computer, arXiv:2412.07218 [quant-ph].
-
Mathias Mikkelsen, Yuya O. Nakagawa, Quantum-selected configuration interaction with time-evolved state, arXiv:2412.13839 [quant-ph].
-
Samuele Piccinelli, et al., Quantum chemistry with provable convergence via randomized sample-based Krylov quantum diagonalization, arXiv:2508.02578 [quant-ph].
-
Kenneth M. Merz Jr., et al., Crossing the 12,000-atom barrier with heterogeneous quantum-classical supercomputing: quantum chemistry of protein-ligand complexes, arXiv:2605.01138 [quant-ph].