Diagonalisation quantique basée sur des échantillons (SQD)
La diagonalisation quantique basée sur l'échantillonnage (SQD) combine l'algèbre linéaire classique et la puissance de l'informatique quantique pour diagonaliser un hamiltonien (matrice) et calculer ses valeurs et vecteurs propres. La diagonalisation des matrices est une opération mathématique importante, car de nombreux problèmes scientifiques, informatiques et d'optimisation font appel à cette méthode.
La vidéo ci-dessous donne un aperçu de la SQD, de ce qui détermine son utilité et de ce qui la rend plus rapide que beaucoup d'autres approches. Le texte suivant donne plus de détails.
1. Introduction et motivation
Prenons l'exemple de l'équation des valeurs propres de l'énergie, rendue célèbre par Schrödinger.
est l'hamiltonien d'un système, est la fonction d'onde (également connue sous le nom d'état propre) et est une valeur propre. Les valeurs propres de la matrice représentent les niveaux d'énergie du système. Par exemple, si le système est une molécule, la valeur propre la plus basse représente l'énergie de l'état fondamental de la molécule. Dans de nombreux problèmes, nous nous intéressons à l'estimation de l'énergie de l'état fondamental.
En appliquant les techniques de diagonalisation exacte de l'algèbre linéaire, nous pouvons diagonaliser la matrice complète . Toutefois, cette approche devient coûteuse en termes de calcul (voire impossible) lorsque la matrice devient plus grande. Par exemple, même pour les petites molécules chimiques, peut être d'une taille prohibitive (par exemple, l'hamiltonien de la molécule avec une base cc-PVDZ a une dimension de
Heureusement, nous n'avons pas toujours besoin de toutes les valeurs propres et de tous les vecteurs propres d'un hamiltonien , et la diagonalisation de la matrice complète n'est donc pas nécessaire dans de nombreux cas pratiques. Par exemple, dans le cas de l'estimation de l'état du sol, nous sommes intéressés par la valeur propre la plus basse et le vecteur propre correspondant. Cela nous permet d'appliquer le concept de projection sur un sous-espace (utile).
Considérons une matrice , , dont l'espace vectoriel complet (espace de Hilbert) a une dimension de ( est grand). Ensuite, nous sélectionnons un sous-espace ( ) - qui est un sous-ensemble de l'espace de Hilbert complet - de dimension , où est suffisamment petit. Après avoir projeté sur ce sous-espace, la matrice projetée (disons ) sera plus petite ( ). La plus petite peut être diagonalisée à l'aide d'une méthode numérique classique appropriée et générer des valeurs propres et des vecteurs propres pour ce sous-espace.
Il convient de noter que le sous-espace doit soutenir l'état propre de notre cible (par exemple, le sol). En d'autres termes, l'hamiltonien projeté doit se trouver dans un sous-espace qui inclut la valeur propre la plus basse.
2. Projection et diagonalisation
Considérons que nous voulons trouver la plus petite valeur propre et le vecteur propre correspondant pour la matrice hamiltonienne suivante .
Nous diagonaliserons la matrice complète ainsi que différentes versions projetées ( ) pour différents sous-espaces afin de démontrer l'extensibilité et l'importance du choix du sous-espace.
L'énergie de l'état fondamental (valeur propre minimale) de la matrice est et la fonction d'onde exacte de l'état fondamental (vecteur propre) est :
c'est-à-dire que l'état fondamental de la matrice est couvert par deux états de base de calcul (vecteurs) et .
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. ]
Ensuite, nous projetterons la matrice sur différents sous-espaces et nous vérifierons si nous pouvons obtenir l'état fondamental exact. En particulier, nous projetterons la matrice sur un sous-espace couvert par :
- vecteurs exacts de l'état fondamental ( et ).
- qui exclut une partie ou la totalité des vecteurs d'état fondamental exacts (par exemple, , , et ).
- des vecteurs qui comprennent à la fois l'état exact au sol et l'état hors sol (mais pas tous les vecteurs possibles dans l'espace de Hilbert).
2.1 Case-1: Le sous-espace comprend l'état fondamental
Supposons que nous voulions projeter dans un sous-espace ( ) traversé par deux vecteurs et . L'hamiltonien projeté est défini par :
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 @ H @ x1.T, x1 @ H @ x2.T], [x2 @ H @ x1.T, x2 @ H @ x2.T]])
print(Hs)Output:
[[-0.1773 -0.4778]
[-0.4778 0.1014]]
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]
Nous pouvons faire plusieurs observations clés à ce sujet.
- Comme nous avons couvert le sous-espace avec deux vecteurs, la dimension de la matrice projetée ( ) est , ce qui est plus petit que la matrice complète ( ).
- La valeur propre minimale de la matrice projetée correspond à la valeur propre exacte de l'état fondamental.
- Les valeurs de la variable
eigvecsreprésentent l'amplitude des vecteurs de recouvrement du sous-espace, et nous pouvons reconstruire l'état propre (état fondamental) à l'aide de ces valeurs. Dans ce cas, nous obtenons l'état fondamental exact (jusqu'à une phase globale) :
2.2 Case-2: Le sous-espace exclut certains ou tous les vecteurs de l'état fondamental
Ensuite, nous projetons sur un sous-espace couvert par trois vecteurs , , et . Nous choisissons délibérément les vecteurs de manière à exclure un vecteur d'état fondamental ( ). L'hamiltonien projeté est défini par :
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 @ H @ x1.T, x1 @ H @ x2.T, x1 @ H @ x3.T],
[x2 @ H @ x1.T, x2 @ H @ x2.T, x2 @ H @ x3.T],
[x3 @ H @ x1.T, x3 @ H @ x2.T, x3 @ H @ x3.T],
]
)
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
Dans ce cas, la valeur propre ne correspond pas à la valeur propre minimale de l'hamiltonien complet. L'observation clé est la suivante : si nous projetons sur un sous-espace qui exclut les états de base dans notre état cible (fondamental) - que ce soit partiellement ou complètement - l'état fondamental estimé sera différent de l'état exact.
2.3 Case-3: Le sous-espace comprend à la fois les vecteurs d'état fondamental et les vecteurs d'état non fondamental
Ensuite, nous montrons un cas où le sous-espace est couvert par des vecteurs qui comprennent des vecteurs de l'état fondamental exact ainsi que des vecteurs non désirés. Supposons que notre sous-espace soit couvert par , (présent dans l'état fondamental exact) et (absent dans l'état fondamental exact).
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 @ H @ x1.T, x1 @ H @ x2.T, x1 @ H @ x3.T],
[x2 @ H @ x1.T, x2 @ H @ x2.T, x2 @ H @ x3.T],
[x3 @ H @ x1.T, x3 @ H @ x2.T, x3 @ H @ x3.T],
]
)
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. ]
Dans ce cas, nous obtenons à nouveau comme valeur propre minimale correspondant à la matrice complète (c'est-à-dire l'état fondamental exact). Un autre résultat intéressant est l'amplitude de renvoyée par le processus de projection et de diagonalisation. L'amplitude est , et lorsque nous reconstruisons la fonction d'onde (état propre) avec les amplitudes et les vecteurs calculés, nous obtenons :
Ainsi, même si notre sous-espace comprend certains vecteurs non ciblés (ainsi que l'ensemble des vecteurs ciblés), nous pouvons calculer la valeur propre et l'état propre corrects car le processus de projection et de diagonalisation filtre les vecteurs non ciblés en fixant leurs amplitudes à . Cette propriété de la SQD offre une tolérance au bruit inhérente.
3. Rôle du quantum dans le SQD
Les analyses ci-dessus montrent l'importance des vecteurs de recouvrement du sous-espace, qui doivent soutenir l'état cible. Cela soulève une question importante : Comment choisir les vecteurs avec le support de l'état cible pour la construction du sous-espace?
C'est là que les ordinateurs quantiques entrent en jeu. La synergie quantique-classique fonctionne comme suit dans le paradigme SQD :
- En utilisant un circuit quantique approprié, nous essayons de préparer un état sur un ordinateur quantique qui générera des états de base sur lesquels la fonction d'onde cible (par exemple, l'état fondamental) a un support significatif. Les états de base échantillonnés (chaînes de bits) couvriront le sous-espace pour la projection hamiltonienne.
- Un ordinateur classique projette l'hamiltonien sur le sous-espace (couvert par les échantillons/vecteurs de l'ordinateur quantique) et le diagonalise pour calculer les valeurs propres et les vecteurs propres à l'aide de méthodes numériques appropriées.
Il existe plusieurs façons de préparer un tel état quantique, qui peuvent être variationnelles ou non variationnelles en fonction du problème.
Dans les deux prochaines leçons, nous montrerons deux exemples spécifiques de préparation d'états et d'échantillonnage à partir de ceux-ci.
- Dans la leçon 4, nous utiliserons un ansatz de Jastrow couplé unitaire local paramétré (LUCJ) pour générer des échantillons pour un problème de chimie (estimation de l'énergie de l'état fondamental de la molécule ). Nous initialiserons l'ansatz LUCJ avec des paramètres issus du calcul classique des grappes couplées simples et doubles (CCSD).
- Dans la leçon 5, nous échantillonnerons les états de la base de Krylov pour couvrir le sous-espace d'un problème de physique de la matière condensée. Cette approche est de nature non variationnelle.
Outre les approches spécifiques aux problèmes mentionnés ci-dessus, une approche générique pour la préparation de l'état implique un ansatz variationnel, où nous mettrons itérativement à jour les paramètres de l'ansatz à l'aide d'un optimiseur classique.
Organigramme 
Les échantillons provenant d'ordinateurs quantiques avant la tolérance aux pannes peuvent être bruyants. La SQD utilise un processus de récupération de configuration autoconsistant pour corriger les échantillons bruyants [1]. Nous examinerons plus en détail le processus de récupération de la configuration et l'appliquerons pour corriger les échantillons bruyants de manière itérative afin d'affiner l'estimation de l'énergie de l'état fondamental pour un problème de chimie dans la leçon 4.
3.1 Remarques sur le support de l'état fondamental
Expliquons davantage le concept de soutien à l'état de surface. Le support de l'état fondamental peut être défini comme l'ensemble des états de base où l'état fondamental a une amplitude non nulle (jusqu'à un seuil de coupure).
Supposons que l'état fondamental exact d'un problème -qubit soit
Si nous échantillonnons l'état ci-dessus, nous devrions obtenir un ensemble d'états de base de calcul , (d'autres états de base de calcul ont une amplitude nulle dans l'état fondamental et n'apparaissent donc idéalement pas lors de l'échantillonnage).
Idéalement, l'ensemble des vecteurs de base pour cet état consiste en (en d'autres termes, le sous-espace de cet état est couvert par ces deux vecteurs de base).
Dans la pratique, il n'est pas nécessaire de préparer l'état fondamental exact, car l'échantillonnage de nombreux autres états peut nous donner le même ensemble de vecteurs. Par exemple :
La préparation et l'échantillonnage à partir de l'un des états ci-dessus génèrent des vecteurs dont l'amplitude n'est pas nulle dans l'état fondamental, et tous ces vecteurs sont considérés comme ayant un support dans l'état fondamental. Notez que l'échantillonnage comprend un vecteur supplémentaire qui a une amplitude de dans l'état fondamental exact. Cependant, nous avons montré précédemment que l'inclusion de ces vecteurs dans le sous-espace n'est pas problématique car l'opération de projection et de diagonalisation fixe l'amplitude des vecteurs indésirables à , et nous pouvons obtenir la valeur propre attendue et reconstruire l'état propre correct.
Il n'est donc pas nécessaire de préparer et d'échantillonner l'état fondamental exact. En fait, cela peut être difficile car l'état fondamental exact n'est pas connu a priori, et il est souvent avantageux de ne pas préparer et d'échantillonner à partir de l'état fondamental exact, en particulier si la fonction d'onde (état) est asymétrique, certains états de base ayant des probabilités très élevées. Considérons la fonction d'onde suivante :
Il s'agit d'une fonction d'onde asymétrique où les états de base et ont des amplitudes beaucoup plus importantes que et . Lors de l'échantillonnage, nous obtiendrons et plus fréquemment ( pour et chacun, pour , et pour ). Avec un budget d'échantillonnage fini (tirs ), il est très probable que notre ensemble échantillonné ne contienne que et . Comme nous l'avons montré précédemment, si nous couvrons le sous-espace avec un tel ensemble de vecteurs manquants, nous ne serons pas en mesure de trouver la véritable valeur propre minimale. Il sera donc utile (et nécessaire) de prélever des échantillons dans un État bénéficiant du soutien de l'État du sol.
3.2 Arguments contre l'échantillonnage uniforme
Il peut être tentant de tirer des échantillons d'une distribution uniforme pour couvrir le sous-espace. Si elle peut fonctionner pour les petits problèmes, elle commencera à échouer pour les problèmes plus importants et plus pratiques. Pour les problèmes importants comportant de nombreux qubits, l'espace de Hilbert peut être d'une taille prohibitive. Par exemple, un espace de Hilbert de 32 qubits a plus de milliards de vecteurs de base possibles ( ). Si nous échantillonnons uniformément cet espace avec un budget d'échantillonnage fini (disons vecteurs pour que le processus de diagonalisation reste réalisable), le sous-espace peut exclure des vecteurs avec un support d'état fondamental plus souvent, car le processus sera aléatoire. Nous avons donc besoin d'un moyen systématique d'échantillonner à partir du support de l'état fondamental en tirant parti des circuits quantiques.
4. SQD et parcimonie de la fonction d'onde
L'écart entre l'espace de Hilbert complet et les dimensions du sous-espace réalisable apporte un autre aspect important de la SQD, à savoir la rareté de la fonction d'onde. L'approche SQD fonctionne bien pour les fonctions d'onde éparses ou concentrées où une petite fraction des états de base a des amplitudes non négligeables. Il y a deux raisons à cela :
- Si la fonction d'onde est large (c'est-à-dire que de nombreux états de base ont des amplitudes non négligeables) et que nous omettons d'inclure des vecteurs avec un support d'état cible dans le sous-espace, nous pouvons nous retrouver avec des valeurs propres et des vecteurs propres incorrects.
- Pour éviter ce problème, nous devons inclure de nombreux vecteurs dans le sous-espace. Cependant, la dimension de l'hamiltonien projeté est directement liée à la dimension du sous-espace. Un sous-espace plus grand signifie un hamiltonien plus grand, dont la diagonalisation peut s'avérer impossible.
Nous présentons le problème avec la matrice suivante ( ). La valeur propre la plus basse de la matrice est , et la fonction d'onde correspondante (état propre) est large :
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]
Supposons que nous projetions le site sur un sous-espace couvert par quatre vecteurs : , , , et et calculons la valeur propre.
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 @ H_new @ x1.T, x1 @ H_new @ x2.T, x1 @ H_new @ x3.T, x1 @ H_new @ x4.T],
[x2 @ H_new @ x1.T, x2 @ H_new @ x2.T, x2 @ H_new @ x3.T, x2 @ H_new @ x4.T],
[x3 @ H_new @ x1.T, x3 @ H_new @ x2.T, x3 @ H_new @ x3.T, x3 @ H_new @ x4.T],
[x4 @ H_new @ x1.T, x4 @ H_new @ x2.T, x4 @ H_new @ x3.T, x4 @ H_new @ x4.T],
]
)
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
L'exemple ci-dessus montre que lorsque la fonction d'onde est large et que nous n'incluons pas les états de base dans le sous-espace, le calcul des valeurs propres devient incorrect.
5. SQD contre VQE
Comme indiqué précédemment, la SQD peut nécessiter un circuit quantique variationnel et des mises à jour itératives des paramètres pour préparer et échantillonner à partir du support de l'état fondamental. Cette routine de mise à jour itérative des paramètres étant similaire à l'EQV, on peut se demander en quoi ces méthodes sont différentes et quels sont les avantages de la SQD par rapport à l'EQV Dans cette section, nous comparons les méthodes et discutons des avantages de la SQD en prenant pour exemple une molécule décrite avec un ensemble de base minimal (sto-3g).
VQE | SQD | |
|---|---|---|
| Frais généraux de mesure | Beaucoup de termes de Pauli, beaucoup de circuits de mesure : L'hamiltonien de la molécule comporte termes de Pauli uniques. Comme les termes de Pauli peuvent contenir des termes et , et que les mesures quantiques typiques sont effectuées dans la base , nous devons changer de base de mesure pour évaluer ces termes. Lorsqu'ils sont optimisés pour les mesures, les termes de peuvent être regroupés en groupes, chaque groupe pouvant être évalué à l'aide d'un seul circuit. Nous avons donc besoin d'au moins circuits uniques pour évaluer tous les termes de Pauli. De nombreux tirs par circuit pour une variance plus étroite. Une fois encore, la valeur espérée évaluée de chaque terme de Pauli est assortie d'une variance qui dépend inversement de . Par conséquent, pour estimer avec précision chaque terme, nous devons allouer un grand nombre de tirs par circuit. Par exemple, pour atteindre la précision chimique ( kcal/mol), il faut généralement des prises de vue de l'ordre de - par circuit. La VQE nécessite donc de nombreux circuits de mesure et chaque circuit comporte un certain nombre de prises de vue. Dans la pratique, cette surcharge de mesure peut s'avérer restrictive. | En SQD, nous n'avons pas besoin de circuits de mesure différents pour chaque groupe de termes de Pauli. En règle générale, nous mesurons un circuit unique pendant un nombre fixe de prises de vue. Bien que nous puissions fixer le nombre de prises de vue à une valeur élevée en fonction du problème, les frais généraux restent bien inférieurs à ceux de VQE. En outre, les estimations d'énergie utilisant le processus de diagonalisation sont exactes, ce qui signifie que les valeurs propres calculées sont exactes dans ce sous-espace et n'ont pas de variance attachée à elles comme VQE. (Dans le cas de l'échantillonnage des états de la base de Krylov (leçon 5), nous devons mesurer plusieurs circuits, mais le nombre de circuits reste bien inférieur à VQE). |
| Estimation de l'énergie liée | Dans la VQE, les estimations d'énergie ne sont pas limitées et peuvent être inférieures aux vraies valeurs minimales en raison du bruit. | Le processus d'estimation de l'énergie dans SQD produit toujours une limite supérieure à l'énergie de l'état fondamental et l'énergie estimée ne sera jamais inférieure à l'énergie réelle de l'état fondamental. |
| Tolérance au bruit | L'estimation de l'énergie de la VQE est sensible au bruit des ordinateurs quantiques tolérants aux pannes. | Le SQD a une tolérance inhérente au bruit. Les ordinateurs quantiques tolérants aux pannes peuvent produire des échantillons bruyants. Même si nous incluons ces échantillons dans le sous-espace, la diagonalisation ultérieure peut supprimer ces échantillons en mettant leurs amplitudes à zéro. Nous discuterons également d'une méthode appelée récupération de configuration en relation avec la SQD, qui améliore encore la tolérance au bruit de la SQD. |
6. Résumé
- Dans la SQD, un ordinateur quantique génère des échantillons et un ordinateur classique projette un hamiltonien sur un sous-espace couvert par les échantillons et le diagonalise pour calculer les valeurs propres et les vecteurs propres.
- Les échantillons générés doivent provenir du support de l'état cible (sol).
- En fonction du problème, la préparation de l'état quantique et le flux de génération d'échantillons peuvent être itératifs ou non.
- SQD fonctionne mieux pour les fonctions d'onde peu nombreuses. Une fonction d'onde large nécessitera un grand sous-espace pour des solutions précises, ce qui rend la projection classique et l'opération de diagonalisation coûteuses.
- La SQD présente plusieurs avantages par rapport à la VQE, tels qu'un surcoût de mesure plus faible et une limite supérieure à l'énergie estimée de l'état fondamental, ce qui la rend plus évolutive.
Références
[1] J. Robledo-Moreno et al, "La chimie au-delà des solutions exactes sur un superordinateur centré sur les quanta" (2024). arXiv:quant-ph/2405.05068.