Sample-basierte Quantendiagonalisierung (SQD)
Die stichprobenbasierte Quantendiagonalisierung (SQD) kombiniert die klassische lineare Algebra mit der Leistungsfähigkeit des Quantencomputers, um eine Hamilton-Matrix zu diagonalisieren und ihre Eigenwerte und Eigenvektoren zu berechnen. Die Diagonalisierung von Matrizen ist eine wichtige mathematische Operation, da viele Probleme in Wissenschaft, Berechnung und Optimierung diese Methode verwenden.
Das folgende Video gibt einen Überblick über SQD, was seine Nützlichkeit ausmacht und was es schneller als viele andere Ansätze macht. Der folgende Text enthält weitere Einzelheiten.
1. Einleitung und Motivation
Nehmen wir als Beispiel die Energieeigenwertgleichung, die durch Schrödinger berühmt wurde.
ist der Hamiltonian eines Systems, ist die Wellenfunktion (auch als Eigenzustand bekannt) und ist ein Eigenwert. Die Eigenwerte der Matrix stellen die Energieniveaus des Systems dar. Handelt es sich bei dem System zum Beispiel um ein Molekül, so stellt der niedrigste Eigenwert die Grundzustandsenergie des Moleküls dar. Bei vielen Problemen sind wir an der Abschätzung der Energie im Grundzustand interessiert.
Durch die Anwendung von Verfahren zur exakten Diagonalisierung aus der linearen Algebra können wir die vollständige Matrix diagonalisieren. Allerdings wird dieser Ansatz mit zunehmender Größe der Matrix rechenintensiv (oder sogar unmöglich). So kann beispielsweise selbst bei kleinen chemischen Molekülen die Dimension „ “ unzumutbar groß sein (so hat beispielsweise der Hamiltonoperator für das Molekül „ “ mit einer cc-PVDZ-Basis die Dimension „ “.
Glücklicherweise werden nicht immer alle Eigenwerte und Eigenvektoren einer Hamilton-Matrix benötigt, so dass eine Diagonalisierung der vollständigen Matrix in vielen praktischen Fällen nicht erforderlich ist. Bei der Schätzung des Grundzustands beispielsweise sind wir an dem niedrigsten Eigenwert und dem entsprechenden Eigenvektor interessiert. Dies ermöglicht es uns, das Konzept der Projektion auf einen (nützlichen) Unterraum anzuwenden.
Betrachten Sie eine Matrix, , deren vollständiger Vektorraum (Hilbert-Raum) die Dimension hat ( ist groß). Als nächstes wählen wir einen Unterraum ( ) - der eine Teilmenge des vollständigen Hilbert-Raums ist - der Dimension , wobei hinreichend klein ist. Nach der Projektion von auf diesen Unterraum wird die projizierte Matrix (z. B. ) kleiner sein ( ). Die kleinere kann mit einer geeigneten klassischen numerischen Methode diagonalisiert werden, um Eigenwerte und Eigenvektoren für diesen Unterraum zu erzeugen.
Beachten Sie, dass der Unterraum unseren Zieleigenzustand (z. B. den Boden) unterstützen muss. Mit anderen Worten: Der projizierte Hamiltonian muss in einem Unterraum liegen, der den niedrigsten Eigenwert enthält.
2. Projektion und Diagonalisierung
Angenommen, wir wollen den niedrigsten Eigenwert und den entsprechenden Eigenvektor für die folgende Hamilton-Matrix finden.
Wir werden die vollständige Matrix zusammen mit verschiedenen projizierten Versionen ( ) für verschiedene Unterräume diagonalisieren, um die Skalierbarkeit und Bedeutung der Wahl des Unterraums zu demonstrieren.
Die Grundzustandsenergie (minimaler Eigenwert) der Matrix ist und die genaue Grundzustandswellenfunktion (Eigenvektor) ist:
d.h. der Grundzustand der Matrix wird von zwei Berechnungsbasiszuständen (Vektoren) und aufgespannt.
import numpy as np
from scipy.linalg import eigh
np.set_printoptions(precision=4, sign="-", suppress=True, linewidth=100)
H = np.array(
[
[0.2235, -0.039, -0.1035, -0.0818, 0.1746, 0.1091, 0.1165, -0.0104],
[-0.0390, 0.6621, 0.0706, -0.1964, -0.0782, 0.2619, 0.1095, 0.0029],
[-0.1035, 0.0706, 0.9961, 0.1724, 0.1067, -0.2299, -0.1817, 0.1571],
[-0.0818, -0.1964, 0.1724, -0.1773, 0.1019, -0.4778, -0.1272, -0.0414],
[0.1746, -0.0782, 0.1067, 0.1019, 0.1418, -0.1359, -0.1793, -0.0766],
[0.1091, 0.2619, -0.2299, -0.4778, -0.1359, 0.1014, 0.1696, 0.0552],
[0.1165, 0.1095, -0.1817, -0.1272, -0.1793, 0.1696, 0.4227, 0.2702],
[-0.0104, 0.0029, 0.1571, -0.0414, -0.0766, 0.0552, 0.2702, 0.4456],
]
)
eigvals, eigvecs = eigh(H)
print("Eigenvalues:")
print(eigvals)
print(f"Minimum eigenvalue: {eigvals.min()}")
print("\nEigenvectors (columns represent vectors):")
print(eigvecs)
print("\nEigenvector for the minimum eigenvalue (ground state)")
print(eigvecs[:, np.argmin(eigvals)])Output:
Eigenvalues:
[-0.5357 -0.1321 0.1049 0.1258 0.3616 0.6405 0.947 1.3039]
Minimum eigenvalue: -0.5356560029438817
Eigenvectors (columns represent vectors):
[[-0. -0.5612 0.098 -0.0024 0.8051 -0.0806 0.0643 0.1288]
[-0. -0.1403 -0.1985 -0.4249 -0.0092 0.585 -0.5952 0.2526]
[ 0. 0.0416 0.3041 0.2122 0.1509 -0.0139 -0.5794 -0.7086]
[ 0.8 -0.1936 -0.0127 -0.4376 -0.1081 -0.0838 0.1557 -0.2966]
[ 0. 0.6716 -0.3535 -0.2552 0.5395 0.0954 0.1449 -0.1941]
[ 0.6 0.258 0.017 0.5834 0.1441 0.1118 -0.2076 0.3954]
[ 0. 0.3088 0.5504 -0.4197 0.0626 -0.468 -0.2625 0.3657]
[-0. -0.1146 -0.6559 0.0356 -0.0394 -0.6352 -0.3856 0.0418]]
Eigenvector for the minimum eigenvalue (ground state)
[-0. -0. 0. 0.8 0. 0.6 0. -0. ]
Als nächstes werden wir die Matrix auf verschiedene Unterräume projizieren und prüfen, ob wir den exakten Grundzustand erhalten können. Insbesondere werden wir die Matrix auf einen Unterraum projizieren, der von aufgespannt wird:
- exakte Grundzustandsvektoren ( und ).
- vektoren, die einige oder alle exakten Grundzustandsvektoren ausschließen (z. B. , und ).
- vektoren, die sowohl den exakten Grundzustand als auch den Außer-Grund-Zustand umfassen (aber nicht alle möglichen Vektoren im Hilbert-Raum).
2.1 Case-1: Der Unterraum umfasst den Grundzustand
Angenommen, wir wollen in einen Unterraum ( ) projizieren, der von zwei Vektoren und aufgespannt wird. Der projizierte Hamiltonian ist definiert durch:
x1 = np.zeros(8)
x1[3] = 1 # binary 011 is 3 in decimal. |011> = |3> = [0,0,0,1,0,0,0,0]
x2 = np.zeros(8)
x2[5] = 1 # binary 101 is 5 in decimal
Hs = np.array([[x1.T @ H @ x1, x1.T @ H @ x2], [x2.T @ H @ x1, x2.T @ H @ x2]])
print(Hs)Output:
[[-0.1773 -0.4778]
[-0.4778 0.1014]]
Beachten Sie, dass wir bei der Darstellung der projizierten Hamilton-Elemente als implizit die gängige Konvention übernehmen x1.T @ H @ x2, wonach die Zustandsvektoren und x1 Kets (Spaltenvektoren) x2 entsprechen, was mit Ausdrücken wie übereinstimmt. Allerdings unterscheiden Arrays vom Typ NumPy's 1D an sich nicht zwischen Zeilen- und Spaltenvektoren, und für die hier verwendeten Vektoren hat die Transponierungsoperation keine numerischen Auswirkungen. Folglich x1 @ H @ x2.T würde die Schreibweise zum gleichen numerischen Ergebnis führen, obwohl x1.T @ H @ x2 besser mit der üblichen Dirac-Notation übereinstimmt.
eigvals, eigvecs = eigh(Hs)
print(f"Minimum eigenvalue: {eigvals.min()}")
print(f"Eigenvector for minimum eigenvalue: {eigvecs[:,np.argmin(eigvals)]}")Output:
Minimum eigenvalue: -0.535656000064295
Eigenvector for minimum eigenvalue: [-0.8 -0.6]
Wir können hier mehrere wichtige Feststellungen treffen.
- Da wir den Unterraum mit zwei Vektoren aufgespannt haben, ist die Dimension der projizierten Matrix ( ) und damit kleiner als die der Vollmatrix ( ).
- Der minimale Eigenwert der projizierten Matrix entspricht dem Eigenwert des exakten Grundzustands.
- Die Werte in der Variablen
eigvecsbezeichnen die Amplitude der den Unterraum überspannenden Vektoren, mit deren Hilfe wir den Eigenzustand (Grundzustand) rekonstruieren können. In diesem Fall erhalten wir den exakten Grundzustand (bis zu einer globalen Phase):
2.2 Case-2: Der Unterraum schließt einige oder alle Grundzustandsvektoren aus
Als nächstes projizieren wir auf einen Unterraum, der von drei Vektoren aufgespannt wird , und . Wir wählen die Vektoren bewusst so aus, dass ein Grundzustandsvektor ( ) ausgeschlossen wird. Der projizierte Hamiltonian ist definiert durch:
x1 = np.zeros(8)
x1[0] = 1
x2 = np.zeros(8)
x2[3] = 1
x3 = np.zeros(8)
x3[6] = 1
Hs = np.array(
[
[x1.T @ H @ x1, x1.T @ H @ x2, x1.T @ H @ x3],
[x2.T @ H @ x1, x2.T @ H @ x2, x2.T @ H @ x3],
[x3.T @ H @ x1, x3.T @ H @ x2, x3.T @ H @ x3],
]
)
print(Hs)Output:
[[ 0.2235 -0.0818 0.1165]
[-0.0818 -0.1773 -0.1272]
[ 0.1165 -0.1272 0.4227]]
eigvals, eigvecs = eigh(Hs)
print(f"Minimum eigenvalue: {eigvals.min()}")Output:
Minimum eigenvalue: -0.21108858736702252
Der Eigenwert stimmt in diesem Fall nicht mit dem minimalen Eigenwert des vollständigen Hamiltonian überein. Die wichtigste Beobachtung dabei ist: Wenn wir auf einen Unterraum projizieren, der Basiszustände in unserem Zielzustand (Grundzustand) - entweder teilweise oder vollständig - ausschließt, wird der geschätzte Grundzustand anders sein als der exakte Zustand.
2.3 Case-3: Der Unterraum umfasst sowohl Grundzustands- als auch Nicht-Grundzustandsvektoren
Als Nächstes zeigen wir einen Fall, in dem der Unterraum von Vektoren aufgespannt wird, die sowohl exakte Grundzustandsvektoren als auch unerwünschte Vektoren enthalten. Angenommen, unser Unterraum wird von , (im exakten Grundzustand vorhanden) und (im exakten Grundzustand nicht vorhanden) aufgespannt.
x1 = np.zeros(8)
x1[3] = 1
x2 = np.zeros(8)
x2[5] = 1
x3 = np.zeros(8)
x3[7] = 1
Hs = np.array(
[
[x1.T @ H @ x1, x1.T @ H @ x2, x1.T @ H @ x3],
[x2.T @ H @ x1, x2.T @ H @ x2, x2.T @ H @ x3],
[x3.T @ H @ x1, x3.T @ H @ x2, x3.T @ H @ x3],
]
)
print(Hs)Output:
[[-0.1773 -0.4778 -0.0414]
[-0.4778 0.1014 0.0552]
[-0.0414 0.0552 0.4456]]
eigvals, eigvecs = eigh(Hs)
print(f"Minimum eigenvalue: {eigvals.min()}")
print(f"Eigenvector for minimum eigenvalue: {eigvecs[:,np.argmin(eigvals)]}")Output:
Minimum eigenvalue: -0.53565600006461
Eigenvector for minimum eigenvalue: [ 0.8 0.6 -0. ]
In diesem Fall erhalten wir wieder als minimalen Eigenwert, der mit der vollständigen Matrix (d. h. dem exakten Grundzustand) übereinstimmt. Ein weiteres interessantes Ergebnis ist die Amplitude von , die sich aus dem Projektions- und Diagonalisierungsprozess ergibt. Die Amplitude ist , und wenn wir die Wellenfunktion (Eigenzustand) mit den berechneten Amplituden und Vektoren rekonstruieren, erhalten wir:
Selbst wenn unser Unterraum also einige Nicht-Ziel-Vektoren enthält (zusammen mit dem vollständigen Satz von Zielvektoren), können wir den korrekten Eigenwert und Eigenzustand berechnen, da der Projektions- und Diagonalisierungsprozess die Nicht-Ziel-Vektoren herausfiltert, indem er ihre Amplituden auf setzt. Diese Eigenschaft von SQD bietet eine inhärente Rauschtoleranz.
3. Die Rolle der Quantenphysik in der SQD
Die obigen Analysen belegen die Bedeutung der Unterraum-Vektoren, die den Zielzustand unterstützen müssen. Dies wirft eine wichtige Frage auf: Wie wählen wir Vektoren mit Zielzustandsunterstützung für die Unterraumkonstruktion aus?
Hier kommen die Quantencomputer ins Spiel. Die quantenklassische Synergie funktioniert im SQD-Paradigma wie folgt:
- Mit Hilfe eines geeigneten Quantenschaltkreises versuchen wir, auf einem Quantencomputer einen Zustand herzustellen, der Basiszustände erzeugt, auf denen die Zielwellenfunktion (z. B. der Grundzustand) eine signifikante Unterstützung hat. Die abgetasteten Basiszustände (Bitstrings) werden den Unterraum für die Hamilton-Projektion aufspannen.
- Ein klassischer Computer projiziert den Hamiltonian auf den Unterraum (aufgespannt durch Stichproben/Vektoren des Quantencomputers) und diagonalisiert ihn, um Eigenwerte und Eigenvektoren mit geeigneten numerischen Methoden zu berechnen.
Es gibt verschiedene Möglichkeiten, einen solchen Quantenzustand herzustellen, und je nach Problemstellung können sie variabel oder nicht-variabel sein.
In den nächsten beiden Lektionen werden wir zwei konkrete Beispiele für die Vorbereitung von Zuständen und die Entnahme von Stichproben aus ihnen zeigen.
- In Lektion 4 werden wir einen parametrisierten, lokal unitären, gekoppelten Jastrow-Ansatz (LUCJ) verwenden, um Stichproben für ein chemisches Problem zu erzeugen (Abschätzung der Grundzustandsenergie eines Moleküls). Wir werden den LUCJ-Ansatz mit Parametern aus klassischen gekoppelten Cluster-Singles und -Doubles (CCSD)-Berechnungen initialisieren.
- In Lektion 5 werden wir eine Stichprobe von Krylov-Basiszuständen nehmen, um den Unterraum für ein Problem aus der Physik der kondensierten Materie aufzuspannen. Dieser Ansatz ist von Natur aus nicht variabel.
Neben den oben genannten problemspezifischen Ansätzen beinhaltet ein allgemeiner Ansatz für die Zustandsvorbereitung einen Variationsansatz, bei dem wir die Ansatzparameter mit Hilfe eines klassischen Optimierers iterativ aktualisieren werden.
Stichproben von vor der Fehlertoleranz entwickelten Quantencomputern können verrauscht sein. SQD verwendet einen selbstkonsistenten Konfigurationswiederherstellungsprozess, um verrauschte Proben zu korrigieren [1]. In Lektion 4 werden wir den Prozess der Konfigurationswiederherstellung genauer erörtern und ihn zur iterativen Korrektur verrauschter Proben anwenden, um die Abschätzung der Grundzustandsenergie für ein Chemieproblem zu verfeinern.
3.1 Hinweise zur Unterstützung des Grundzustands
Erläutern wir das Konzept der Grundzustandsunterstützung näher. Die Grundzustandsunterstützung kann definiert werden als die Menge der Basiszustände, bei denen der Grundzustand eine Amplitude ungleich Null hat (bis zu einer bestimmten Schwelle).
Angenommen, der exakte Grundzustand eines -qubit-Problems ist
Wenn wir den obigen Zustand abtasten, sollten wir eine Reihe von Berechnungsbasiszuständen , erhalten (andere Berechnungsbasiszustände haben im Grundzustand eine Amplitude von Null und erscheinen daher idealerweise während der Abtastung nicht).
Im Idealfall besteht die Menge der Basisvektoren für diesen Zustand aus (mit anderen Worten: der Unterraum dieses Zustands wird von diesen beiden Basisvektoren aufgespannt).
In der Praxis ist es nicht notwendig, den exakten Grundzustand vorzubereiten, da die Probenahme vieler anderer Zustände denselben Satz von Vektoren ergeben kann. Zum Beispiel:
Die Vorbereitung und Abtastung von jedem der oben genannten Zustände erzeugt Vektoren, deren Amplitude im Grundzustand nicht Null ist, und alle diese Vektoren gelten als grundzustandsfähig. Beachten Sie, dass die Abtastung einen zusätzlichen Vektor enthält, der im exakten Grundzustand die Amplitude hat. Wir haben jedoch bereits gezeigt, dass die Aufnahme solcher Vektoren in den Unterraum nicht problematisch ist, da die Projektion und die Diagonalisierung die Amplitude der unerwünschten Vektoren auf setzen, so dass wir den erwarteten Eigenwert erhalten und den richtigen Eigenzustand rekonstruieren können.
Daher ist es nicht notwendig, den exakten Grundzustand vorzubereiten und zu untersuchen. Tatsächlich kann dies schwierig sein, da der genaue Grundzustand nicht a priori bekannt ist und es oft von Vorteil ist, nicht den genauen Grundzustand vorzubereiten und abzutasten, insbesondere wenn die Wellenfunktion (der Zustand) verzerrt ist und einige Basiszustände sehr hohe Wahrscheinlichkeiten aufweisen. Betrachten Sie die folgende Wellenfunktion:
Dies ist eine schiefe Wellenfunktion, bei der die Basiszustände und im Vergleich zu und viel größere Amplituden haben. Bei einer Stichprobe erhalten wir und häufiger ( jeweils für und , für und für ). Bei einem endlichen Stichprobenbudget (Schüsse ) ist es sehr wahrscheinlich, dass unsere Stichprobenmenge nur und enthält. Wie bereits gezeigt, können wir den wahren minimalen Eigenwert nicht finden, wenn wir den Unterraum mit einer solchen Menge mit fehlenden Vektoren aufspannen. Daher ist es vorteilhaft (und notwendig), eine Probe aus einem Zustand mit Grundzustandsunterstützung zu nehmen.
3.2 Ein Fall gegen einheitliche Stichproben
Es kann verlockend sein, Stichproben aus einer Gleichverteilung zu ziehen, um den Unterraum zu erfassen. Das mag zwar bei kleinen Problemen funktionieren, aber bei größeren und praktischeren Problemen wird es scheitern. Bei großen Problemen mit vielen Qubits kann der Hilbert-Raum unerschwinglich groß sein. Ein 32-Qubit-Hilbert-Raum hat zum Beispiel mehr als Milliarden mögliche Basisvektoren ( ). Wenn wir aus diesem Raum mit einem endlichen Stichprobenbudget (z. B. Vektoren, um den Diagonalisierungsprozess durchführbar zu halten) eine gleichmäßige Stichprobe ziehen, kann der Unterraum Vektoren mit Grundzustandsunterstützung häufiger ausschließen, da der Prozess zufällig sein wird. Deshalb brauchen wir eine systematische Methode, um mit Hilfe von Quantenschaltungen Proben aus dem Grundzustand zu entnehmen.
4. SQD und Sparsity der Wellenfunktion
Die Lücke zwischen den Dimensionen des vollständigen Hilbert-Raums und des machbaren Unterraums bringt einen weiteren wichtigen Aspekt der SQD mit sich, nämlich die Spärlichkeit der Wellenfunktion. Der SQD-Ansatz eignet sich gut für spärliche oder konzentrierte Wellenfunktionen, bei denen ein kleiner Teil der Basiszustände nicht vernachlässigbare Amplituden hat. Dafür gibt es zwei Gründe:
- Wenn die Wellenfunktion breit ist (d. h. viele Basiszustände haben nicht vernachlässigbare Amplituden) und wir es versäumen, Vektoren mit Zielzustandsunterstützung in den Unterraum aufzunehmen, können wir falsche Eigenwerte und Eigenvektoren erhalten.
- Um das obige Problem zu vermeiden, müssen wir viele Vektoren in den Unterraum aufnehmen. Die Dimension des projizierten Hamiltonianers steht jedoch in direktem Zusammenhang mit der Dimension des Unterraums. Ein größerer Unterraum bedeutet einen größeren Hamiltonian, der sich möglicherweise nicht mehr diagonalisieren lässt.
Wir veranschaulichen das Problem anhand der folgenden Matrix ( ). Der niedrigste Eigenwert von ist , und die entsprechende Wellenfunktion (Eigenzustand) ist breit:
H_new = np.array(
[
[-0.958, 0.1853, -0.2663, -0.3875, -0.0524, -0.3779, -0.0145, -0.3369],
[0.1853, -0.4081, -0.8549, -0.2312, 0.0615, -0.2493, -0.3804, -0.3312],
[-0.2663, -0.8549, -0.6929, -0.0063, -0.0478, -0.0236, -0.2494, -0.0669],
[-0.3875, -0.2312, -0.0063, -0.4468, -0.6301, -0.4627, -0.1188, 0.0753],
[-0.0524, 0.0615, -0.0478, -0.6301, -0.6664, -0.1514, -0.3571, -0.3644],
[-0.3779, -0.2493, -0.0236, -0.4627, -0.1514, -0.9605, 0.0137, 0.0035],
[-0.0145, -0.3804, -0.2494, -0.1188, -0.3571, 0.0137, -1.1449, 0.0433],
[-0.3369, -0.3312, -0.0669, 0.0753, -0.3644, 0.0035, 0.0433, -1.2307],
]
)eigvals, eigvecs = eigh(H_new)
print(f"Minimum eigenvalue: {eigvals.min()}")
print(f"Eigenvector for minimum eigenvalue: {eigvecs[:,np.argmin(eigvals)]}")Output:
Minimum eigenvalue: -2.208137504726661
Eigenvector for minimum eigenvalue: [0.3536 0.3536 0.3536 0.3536 0.3535 0.3536 0.3535 0.3535]
Angenommen, wir projizieren die auf einen Unterraum, der von vier Vektoren aufgespannt wird: , , , und und berechnen den Eigenwert.
x1 = np.zeros(8)
x1[0] = 1
x2 = np.zeros(8)
x2[2] = 1
x3 = np.zeros(8)
x3[5] = 1
x4 = np.zeros(8)
x4[6] = 1
H_new_s = np.array(
[
[x1.T @ H_new @ x1, x1.T @ H_new @ x2, x1.T @ H_new @ x3, x1.T @ H_new @ x4],
[x2.T @ H_new @ x1, x2.T @ H_new @ x2, x2.T @ H_new @ x3, x2.T @ H_new @ x4],
[x3.T @ H_new @ x1, x3.T @ H_new @ x2, x3.T @ H_new @ x3, x3.T @ H_new @ x4],
[x4.T @ H_new @ x1, x4.T @ H_new @ x2, x4.T @ H_new @ x3, x4.T @ H_new @ x4],
]
)
print(H_new_s)Output:
[[-0.958 -0.2663 -0.3779 -0.0145]
[-0.2663 -0.6929 -0.0236 -0.2494]
[-0.3779 -0.0236 -0.9605 0.0137]
[-0.0145 -0.2494 0.0137 -1.1449]]
eigvals, eigvecs = eigh(H_new_s)
print(f"Minimum eigenvalue: {eigvals.min()}")Output:
Minimum eigenvalue: -1.4266552340586673
Das obige Beispiel zeigt, dass die Eigenwertberechnung fehlerhaft wird, wenn die Wellenfunktion breit ist und wir keine Basiszustände in den Unterraum aufnehmen.
5. SQD vs. VQE
Wie bereits erwähnt, kann SQD eine Quantenvariationsschaltung und iterative Parameteraktualisierungen erfordern, um die Grundzustandsunterstützung vorzubereiten und Proben zu entnehmen. Da diese iterative Parameteraktualisierungsroutine der VQE ähnelt, kann man sich fragen, worin sich diese Methoden unterscheiden und welche Vorteile SQD gegenüber VQE hat In diesem Abschnitt vergleichen wir die Methoden und diskutieren die Vorteile von SQD am Beispiel eines Moleküls, das mit einem minimalen Basissatz (sto-3g) beschrieben wurde.
VQE | SQD | |
|---|---|---|
| Gemeinkosten für Messungen | Viele Pauli-Terme, viele Messkreise: Der Hamiltonian für das Molekül hat eindeutige Pauli-Terme. Da die Pauli-Terme die Terme und enthalten können und typische Quantenmessungen auf der -Basis durchgeführt werden, müssen wir die Messbasis ändern, um diese Terme auszuwerten. Bei der Optimierung für Messungen können die Terme von in Gruppen zusammengefasst werden, wobei jede Gruppe mit einer einzigen Schaltung ausgewertet werden kann. Wir benötigen also mindestens eindeutige Schaltungen, um alle Pauli-Terme auszuwerten. Viele Schüsse pro Runde für eine geringere Varianz. Auch hier ist der ausgewertete Erwartungswert jedes Pauli-Terms mit einer Varianz verbunden, die umgekehrt von abhängt. Um jeden Term genau zu schätzen, müssen wir daher viele Schüsse pro Schaltkreis zuweisen. Um z. B. chemische Genauigkeit zu erreichen ( kcal/mol), benötigen wir in der Regel Aufnahmen in der Größenordnung von - pro Schaltkreis. Daher benötigt VQE viele Messkreise und jeder Kreis eine bestimmte Anzahl von Aufnahmen. In der Praxis kann dieser Mess-Overhead einschränkend sein. | Bei der SQD brauchen wir nicht für jeden gruppierten Pauli-Term einen eigenen Messkreis. In der Regel wird ein einzelner Stromkreis für eine bestimmte Anzahl von Aufnahmen gemessen. Auch wenn wir die Anzahl der Schüsse je nach Problemstellung auf einen hohen Wert setzen, bleibt der Overhead viel geringer als bei VQE. Außerdem sind die Energieschätzungen unter Verwendung des Diagonalisierungsprozesses exakt, d. h. die berechneten Eigenwerte sind in diesem Unterraum exakt und haben keine Varianz wie bei VQE. (Im Falle des Krylov-Basis-State-Samplings (Lektion 5) müssen wir mehrere Schaltkreise messen, aber die Anzahl der Schaltkreise bleibt viel kleiner als bei VQE). |
| Geschätzte Energiegrenze | Bei VQE sind die Energieschätzungen nicht begrenzt und können aufgrund von Rauschen unter den tatsächlichen Mindestwerten liegen. | Der Energieschätzungsprozess in SQD erzeugt immer eine obere Grenze für die Grundzustandsenergie, und die geschätzte Energie wird nie niedriger sein als die wahre Grundzustandsenergie. |
| Lärmtoleranz | Die VQE-Energieschätzung ist anfällig für das Rauschen von vorfehlertoleranten Quantencomputern. | SQD hat eine inhärente Toleranz gegenüber Rauschen. Vorfehlertolerante Quantencomputer können verrauschte Proben erzeugen. Selbst wenn wir diese Proben in den Unterraum aufnehmen, kann die anschließende Diagonalisierung diese Proben unterdrücken, indem ihre Amplituden auf Null gesetzt werden. Außerdem werden wir eine Methode namens Konfigurationswiederherstellung im Zusammenhang mit SQD erörtern, die die SQD-Rauschtoleranz weiter verbessert. |
6. Zusammenfassung
- Bei SQD erzeugt ein Quantencomputer Proben, und ein klassischer Computer projiziert einen Hamiltonian auf einen Unterraum, der von den Proben aufgespannt wird, und diagonalisiert ihn, um Eigenwerte und Eigenvektoren zu berechnen.
- Die erzeugten Proben sollten aus dem Zielzustand (Grundzustand) stammen.
- Je nach Problemstellung können die Quantenzustandsvorbereitung und die Probengenerierung iterativ oder nicht iterativ erfolgen.
- SQD funktioniert am besten bei spärlichen Wellenfunktionen. Eine breite Wellenfunktion erfordert einen großen Unterraum für genaue Lösungen, was klassische Projektions- und Diagonalisierungsoperationen kostspielig macht.
- SQD hat mehrere Vorteile gegenüber VQE, z. B. einen geringeren Messaufwand und eine Obergrenze für die geschätzte Grundzustandsenergie, wodurch es besser skalierbar ist.
Referenzen
[1] J. Robledo-Moreno et al, "Chemie jenseits exakter Lösungen auf einem quantenzentrierten Supercomputer" (2024). arXiv:quant-ph/2405.05068.