Przejdź do głównej treści

Przegląd diagonalizacji kwantowej opartej na próbkowaniu (SQD)

Diagonalizacja kwantowa oparta na próbkowaniu (SQD, ang. Sample-based quantum diagonalization) to klasyczna technika post-processingu, która działa na próbkach uzyskanych z Circuit kwantowego po wykonaniu na QPU. Jest przydatna do znajdowania wartości własnych i wektorów własnych operatorów kwantowych, takich jak Hamiltonian układu kwantowego, i łączy obliczenia kwantowe z rozproszonymi obliczeniami klasycznymi. Ta technika post-processingu może być szczególnie użyteczna dla użytkowników symulujących układy chemiczne lub inne układy kwantowe.

Obliczenia klasyczne służą do przetwarzania próbek uzyskanych z procesora kwantowego, a także do rzutowania i diagonalizacji docelowego Hamiltonianu w podprzestrzeni przez nie rozpinanej. Dzięki temu SQD jest odporna na próbki skażone szumem kwantowym i pozwala zarządzać dużymi Hamiltonianami — takimi jak układy chemiczne z milionami oddziałujących wyrazów — wykraczającymi poza zasięg dokładnych metod diagonalizacji.

Narzędzie SQD może obsługiwać Hamiltoniany wyrażone jako kombinacje liniowe operatorów Pauliego lub operatorów fermionowych w drugiej kwantyzacji. Próbki wejściowe są uzyskiwane z Circuit kwantowych zdefiniowanych przez użytkownika, które mają być dobrą reprezentacją stanów własnych (np. stanu podstawowego) danego operatora docelowego. Szybkość zbieżności SQD w funkcji liczby próbek poprawia się wraz ze rzadkością docelowego stanu własnego.

Instalacja pakietu SQD

Pakiet SQD można zainstalować na dwa sposoby: przez PyPI lub budując ze źródeł. Zaleca się instalowanie tych pakietów w środowisku wirtualnym, aby zapewnić separację zależności pakietów.

Instalacja z PyPI

Najprostszym sposobem instalacji pakietu qiskit-addon-sqd jest użycie PyPI.

pip install qiskit-addon-sqd

Budowanie ze źródeł

Kliknij tutaj, aby dowiedzieć się, jak zainstalować ten pakiet ręcznie

Jeśli chcesz wnieść wkład do tego pakietu lub zainstalować go ręcznie, najpierw sklonuj repozytorium:

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

a następnie zainstaluj pakiet przez pip. Repozytorium zawiera też przykładowe notebooki, które możesz uruchomić. Jeśli planujesz rozwijanie kodu w repozytorium, możesz zainstalować zależności dev.

Dostosuj opcje do swoich potrzeb.

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

Podstawy teoretyczne

Przepływ pracy SQD z samospójnym odtwarzaniem konfiguracji jest szczegółowo opisany w [1]. Ta sekcja przedstawia przegląd techniki zilustrowanej na poniższym diagramie.

Diagram SQD przedstawiający odtwarzanie konfiguracji, zbieranie podpróbek i uzyskiwanie stanów własnych z tych podpróbek

Tutaj Xˉ\bar{\mathcal{X}} to zbiór zaszumionych próbek, które — w kontekście symulowanego Hamiltonianu — zawierają fizyczne i niefizyczne konfiguracje (reprezentowane jako łańcuchy bitów) uzyskane w wyniku wykonania na QPU. Niefizyczne konfiguracje są skutkiem szumu i mogą być przetworzone przez metodę sqd.configuration_recovery.recover_configurations() w celu udoskonalenia próbek do nowego zbioru XR\mathcal{X}_R.

Z tego zbioru pobierane są partie konfiguracji S(1)... S(K)\mathcal{S}^{(1)}...\ \mathcal{S}^{(K)} zgodnie z rozkładem proporcjonalnym do empirycznych częstości każdego x\mathbf{x} w XR\mathcal{X}_R. Każda partia pobranych konfiguracji rozpina podprzestrzeń, S(k):k=1,...,K\mathcal{S}^{(k)}: k = 1, ..., K, w której Hamiltonian jest rzutowany i diagonalizowany:

H^S(k)=P^S(k)H^P^S(k), with P^S(k)=xS(k)xx, \hat{H}_{S^{(k)}} = \hat{P}_{\mathcal{S}^{(k)}}\hat{H}\hat{P}_{\mathcal{S}^{(k)}}\text{, with } \hat{P}_{\mathcal{S}^{(k)}} = \sum_{\mathbf{x} \in \mathcal{S}^{(k)}} |\mathbf{x}\rangle\langle\mathbf{x}|,

gdzie H^S(k)\hat{H}_{\mathcal{S}^{(k)}} jest Hamiltonianem danej podprzestrzeni.

Główna część przepływu pracy SQD polega właśnie na diagonalizacji każdego z tych Hamiltonianów podprzestrzeni. Stany podstawowe uzyskane z każdej z tych podprzestrzeni, ψ(k)|\psi^{(k)}\rangle, służą do wyznaczenia szacunkowego wektora referencyjnego obsadzeń n(K)\mathbf{n}^{(K)} uśrednionego po każdej z KK podprzestrzeni. Nowy zbiór konfiguracji XR\mathcal{X}_R jest następnie generowany przez probabilistyczne odwracanie pojedynczych bitów na podstawie tej średniej obsady i znanych całkowitych liczb cząstek (wagi Hamminga) w układzie. Ten proces odtwarzania konfiguracji jest następnie powtarzany przez przygotowanie nowego zestawu podprzestrzeni do diagonalizacji, uzyskanie nowych stanów własnych i uśrednionego obsadzenia orbitali oraz wygenerowanie nowego zestawu konfiguracji. Pętla ta jest iterowana aż do spełnienia kryterium określonego przez użytkownika, a cały proces jest analogiczny do filtrowania zaszumionego sygnału w celu poprawy jego wierności.

Następne kroki

Zalecenia

Referencje

[1] Robledo-Moreno, Javier, et al. "Chemistry beyond exact solutions on a quantum-centric supercomputer" arXiv preprint arXiv:2405.05068 (2024).