[PYTHON] J'ai essayé d'implémenter Deep VQE

Il existe un VQE (Variational Quantum Eigen Solver) comme méthode pour calculer l'état de base de l'hamiltonien électronique à l'aide d'un ordinateur quantique. J'ai lu l'article suivant sur Deep VQE, qui est une méthode pour calculer l'état de base de l'hamiltonien qui dépasse le nombre de bits pouvant être manipulés par un ordinateur quantique, j'ai donc résumé la méthode.

https://arxiv.org/abs/2007.10917 https://qunasys.com/news/2020/8/10/deep-vqe

J'ai également essayé d'implémenter le modèle de FIG3 (a) N = 2, qui est également calculé dans l'article, en utilisant des Qulacs. * Je pense qu'il y a des inexactitudes dans ma compréhension, il serait donc utile que vous puissiez le signaler. </ font>

Aperçu de la méthode

Le flux global est illustré sur la figure 1 décrite dans l'article.

fig1.png

  1. Décomposer l'hamiltonien en un système partiel et une interaction. (une)
  2. Calculez le système partiel avec VQE pour trouver l'état de base. (b, 1er VQE)
  3. Créez une base locale à partir des interactions et des états de base. (base locale)
  4. Calculez les éléments de la matrice hamiltonienne en utilisant des bases locales.
  5. Créez un hamiltonien efficace qui intègre les interactions. (hamiltonien effectif)
  6. Effectuez VQE sur un hamiltonien valide. (2ème VQE)

Je comprends qu'il est possible de réduire le nombre de bits quantiques utilisés dans l'étape de faire correspondre le nombre de bases locales à des bits quantiques. Si vous créez une base locale avec 3, mais que le nombre est $ K $, le nombre de bits quantiques requis pour l'exprimer est $ \ lceil \ log_2 {K} \ rceil $. A partir de là, le nombre de bits quantiques requis pour exprimer l'hamiltonien effectif créé en 5 est $ 2 \ lceil \ log_2 {K} \ rceil $ car les deux sous-systèmes sont combinés.

Prenons le cas où deux modèles Heisenberg à 4 bits quantiques calculés dans l'article sont connectés. Si vous essayez de calculer sans décomposition, vous aurez besoin de 8 bits quantiques. Lorsqu'il est décomposé et calculé, VQE est initialement effectué en utilisant 4 bits quantiques, et comme le nombre d'interactions est $ K = 7 $, 3 bits quantiques sont nécessaires pour chaque sous-système dans le calcul suivant. Étant donné que deux de ces sous-systèmes seront fusionnés, le nombre total de bits quantiques requis sera de six. Puisqu'il s'agit d'un modèle de jouet, c'est un petit montant, mais vous pouvez voir qu'il a été réduit à 8 $ \ à 6 $.

Ensuite, nous verrons comment créer une base locale et un hamiltonien efficace.

Détails de la méthode

Définition hamiltonien

Divisez l'hamiltonien en systèmes partiels et interactions.

\def\bm#1{\boldsymbol{#1}} \def\bra#1{\mathinner{\left\langle{#1}\right|}} \def\ket#1{\mathinner{\left|{#1}\right\rangle}} \def\brakett#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}} \def\braket#1#2#3{\bra{#1}#2\ket{#3}} \mathcal{H} = \sum_i \mathcal{H}\_i + \sum_{ij}V_{ij}

$ \ mathcal {H} \ i $ représente la partie hamiltonienne du système, et $ V {ij} $ représente l'interaction entre $ i $ et $ j $. Ici, $ V \ _ {ij} $ prend la forme suivante.

V\_{ij} = \sum\_{k} v\_{k} W^{(i)}\_{k} W^{(j)}\_{k}

$ W ^ {(i)} \ _ {k} $ représente l'opérateur qui fonctionne sur le système partiel $ i $, et $ W ^ {(j)} \ _ {k} $ représente l'opérateur qui fonctionne sur le système partiel $ j $. ..

Créer une base locale

Tout d'abord, trouvez l'état de base de $ \ mathcal {H} \ _i $ en utilisant VQE. Le circuit quantique variable utilisé dans VQE est exprimé comme $ U_i (\ theta ^ {(i)}) $, et l'état de base obtenu est exprimé comme $ \ ket {\ psi ^ {(i)} _0} . ( i $ correspond à l'indice du système partiel $ i $.) $ \ theta ^ {(i), *} $ est un paramètre optimisé

\theta^{(i), *} \equiv \text{argmin}\_{\theta} \braket{0^n}{U_i(\theta^{(i)})^{\dagger} \mathcal{H}_i U_i(\theta^{(i)})}{0^n}

Alors, $ \ ket {\ psi ^ {(i)} _0} $ est

\ket{\psi^{(i)}_0} = U_i(\theta^{(i),*})\ket{0^n}

Peut être exprimé comme. Créez une base locale à partir de $ W ^ {(i)} \ _ {k} $ inclus dans l'interaction avec ce $ \ ket {\ psi ^ {(i)} _0} . ( k $ correspond au type d'opérateur d'interaction.)

\ket{\psi^{(i)}\_k} \equiv W^{(i)}\_{k}\ket{\psi^{(i)}\_0}

En utilisant cette base locale, nous calculerons l'hamiltonien effectif en réécrivant l'hamiltonien d'origine. Seul $ W ^ {(i)} _1 $ est défini comme un opérateur d'égalité, et s'il y a des opérateurs d'interaction $ K $, un total de $ K + 1 $ règles locales sera créé. Je vais. (Ci-après, le nombre de bases locales est représenté par $ K $.) A ce stade, ce n'est pas forcément $ \ brakett {\ psi ^ {(i)} \ _ k} {\ psi ^ {(i)} \ _ l} = \ delta \ _ {kl} $. Ceci est normalement orthogonalisé en utilisant la méthode d'orthogonalisation normale de Gramschmidt. La base locale normalement orthogonalisée est représentée par $ \ ket {\ tilde {\ psi} ^ {(i)} \ _k} $.

\ket{\tilde{\psi}^{(i)}\_k} = \frac{1}{C_k}\biggl(\ket{\psi^{(i)}\_k} - \sum\_{l

$ C_k $ est une constante standardisée pour satisfaire $ \ brakett {\ tilde {\ psi} ^ {(i)} \ _k} {\ tilde {\ psi} ^ {(i)} \ _k} = 1 $ Devenir.

Si vous écrivez ceci concrètement, $ k = 1 $ reste tel quel

\begin{align}
\ket{\tilde{\psi}^{(i)}_1} &= \frac{1}{C_1} \ket{\psi^{(i)}_1} \\
C_1 &= \sqrt{\brakett{\psi^{(i)}_1}{\psi^{(i)}_1}}
\end{align}

Ce sera. À $ k = 2 $

\begin{align}
\ket{\tilde{\psi}^{(i)}_2} &= \frac{1}{C_2}\biggl(\ket{\psi^{(i)}_2} - \brakett{\tilde{\psi}^{(i)}_1}{\psi^{(i)}_2} \ket{\tilde{\psi}^{(i)}_1}\biggr) \\
&= \frac{1}{C_2}\biggl(\ket{\psi^{(i)}_2} - \frac{1}{C_1^2}\brakett{\psi^{(i)}_1}{\psi^{(i)}_2} \ket{\psi^{(i)}_1}\biggr)
\end{align}

Le même calcul peut être effectué après $ k> 2 $. Pour trouver $ \ ket {\ tilde {\ psi} ^ {(i)} \ _k} $ à partir de ceci, le produit interne de la base locale $ \ brakett {\ psi ^ {(i)} _1} {\ psi ^ {(i) Il s'avère que nous devons calculer)} _2} $. Le produit intérieur est

\begin{align}
\brakett{\psi^{(i)}_k}{\psi^{(i)}_l} = \braket{\psi^{(i)}_0}{W^{(i)\dagger}_{k}W^{(i)}_{l}}{\psi^{(i)}_0}
\end{align}

Puisqu'il peut être développé avec $ \ ket {\ psi ^ {(i)} \ _0} $, $ W ^ {(i) \ dagger} \ _ {k} W ^ {(i)} \ _ {l} $ Vous pouvez voir que vous pouvez mesurer la valeur attendue. (Le processus de prise de la valeur attendue avec $ \ ket {\ psi ^ {(i)} \ _0} $ apparaîtra dans les calculs ultérieurs.) Notez que, par exemple, $ W ^ {(i) \ dagger} = X ^ {(i)} \ _0, W ^ {(i)} \ _ {l} = Y ^ {(i)} \ _0 $ Si $ W ^ {(i) \ dagger} \ _ {k} W ^ {(i)} \ _ {l} = X ^ {(i)} \ _ 0Y ^ {(i)} \ _ 0 = iZ ^ Le fait est qu'il est nécessaire de mesurer la valeur attendue de $ Z ^ {(i)} \ _0 $ après l'avoir convertie en bulle d'observateur en utilisant la relation entre {(i)} \ _0 $ et l'opérateur Pauli. (La valeur obtenue en multipliant cette mesure par $ i $ est la valeur de l'élément de la matrice.)

$ \ Ket {\ tilde {\ psi} ^ {(i)} \ _k} $ pour faciliter les calculs ultérieurs Le coefficient lorsqu'il est développé avec prime}}} $ est défini comme $ P \ _ {kk ^ {\ prime}} $ et exprimé comme suit.

\begin{align}
\ket{\tilde{\psi}^{(i)}_k} &= \sum^K_{k^{\prime}=1}P^{(i)}_{kk^{\prime}} \ket{\psi^{(i)}_{k^{\prime}}} \\
\end{align}

Vous pouvez créer une matrice $ P $ en mesurant respectivement $ \ brakett {\ psi ^ {(i)} \ _ k} {\ psi ^ {(i)} \ _l} $.

Cette base locale normalement orthogonalisée est simplement appelée ci-après la base locale.

Créer un hamiltonien valide

Calculez les éléments de la matrice de $ \ mathcal {H} \ _i, V \ _ {ij} $ en utilisant $ \ ket {\ tilde {\ psi} ^ {(i)} _k} $.

Hamiltonien effectif du système partiel

Tout d'abord, l'élément de matrice hamiltonien valide $ (\ mathcal {H} ^ {\ text {eff}} \ _i) \ _ {kl} $ de $ \ mathcal {H} \ _i $ est

\begin{align}
    (\mathcal{H}^{\text{eff}}_i)_{kl} &= \braket{\tilde{\psi}^{(i)}_k }{\mathcal{H}_i}{\tilde{\psi}^{(i)}_l} \\
    &= \sum_{k^{\prime},l^{\prime}} \braket{\psi^{(i)}_{k^{\prime}} }{P^{(i)*}_{kk^{\prime}} \mathcal{H}_i P^{(i)}_{ll^{\prime}}}{ \psi^{(i)}_{l^{\prime}}} \\
    &= \sum_{k^{\prime},l^{\prime}} P^{(i)*}_{kk^{\prime}} \braket{\psi^{(i)}_0}{ W^{(i)}_{k^{\prime}}\;^{\dagger}\mathcal{H}_i W^{(i)}_{l^{\prime}}}{ \psi^{(i)}_0}  P^{(i)}_{ll^{\prime}} \\
&= \biggl(P^{(i)*} \bar{\mathcal{H}}^{\text{eff}}_i P^{(i)T} \biggr)_{kl}
\end{align}

Ce sera. Où $ \ bar {\ mathcal {H}} ^ {\ text {eff}} \ _i $ est

\begin{align}
 (\bar{\mathcal{H}}^{\text{eff}}_i)_{kl} &= \braket{\psi^{(i)}_k }{\mathcal{H}_i}{ \psi^{(i)}_l} \\
    &= \braket{\psi^{(i)}_0}{ W^{(i)}_{k}\;^{\dagger}\mathcal{H}_i W^{(i)}_{l}}{ \psi^{(i)}_0}
\end{align}

C'est un élément de matrice défini par. Pour créer un élément de matrice pour $ \ mathcal {H} ^ {\ text {eff}} \ _i $, utilisez $ \ ket {\ psi ^ {(i)} _0} $

\begin{align}
W^{(i)}_{k}\;^{\dagger}\mathcal{H}_i W^{(i)}_{l}
\end{align}

Vous devez mesurer la valeur attendue de $ \ bar {\ mathcal {H}} ^ {\ text {eff}} \ _i $ pour trouver l'élément de la matrice. En utilisant ceci et la matrice $ P $ utilisée lors de la création de la base locale, vous pouvez créer $ \ mathcal {H} ^ {\ text {eff}} \ _i $.

Hamiltonien d'interaction efficace

Interaction à la base locale

\begin{align}
V_{ij} = \sum_{k} v_{k} W^{(i)}_{k} W^{(j)}_{k}
\end{align}

Est pris en sandwich des deux côtés pour calculer les éléments de la matrice. Puisque $ W ^ {(i)} \ _ {k} et W ^ {(j)} \ _ {k} $ agissent sur les systèmes partiels $ i $ et $ j $, respectivement.

\begin{align}
(V^{\text{eff}}_{ij})_{kk^{\prime}ll^{\prime}} &= \bra{\tilde{\psi}^{(i)}_k} \bra{\tilde{\psi}^{(j)}_{k^{\prime}}} V_{ij} \ket{\tilde{\psi}^{(i)}_l} \ket{\tilde{\psi}^{(j)}_{l^{\prime}}} \\
&= \sum_{\nu} v_{\nu} \braket{\tilde{\psi}^{(i)}_k }{W^{(i)}_{\nu}}{ \tilde{\psi}^{(i)}_l} \braket{\tilde{\psi}^{(j)}_{k^{\prime}} }{W^{(j)}_{\nu}}{ \tilde{\psi}^{(j)}_{l^{\prime}}}
\end{align}

Ensuite, $ \ braket {\ tilde {\ psi} ^ {(i)} \ _ k} {W ^ {(i)} \ _ {\ nu}} {\ tilde {\ psi} ^ {(i)} \ Vous devez trouver _l} $. Si vous développez cela de la même manière qu'avant

\begin{align}
\braket{\tilde{\psi}^{(i)}_{k}}{W^{(i)}_{\nu}}{\tilde{\psi}^{(i)}_l} &= \sum_{k^{\prime},l^{\prime}} P^{(i)*}_{kk^{\prime}}  \braket{\psi^{(i)}_0}{ W^{(i)}_{k^{\prime}}\;^{\dagger}W^{(i)}_{\nu} W^{(i)}_{l^{\prime}}}{ \psi^{(i)}_0} P^{(i)}_{ll^{\prime}} \\
&= \biggl(P^{(i)*} \bar{W}^{(i), \text{eff}}_{\nu} P^{(i)T} \biggr)_{kl}
\end{align}

Et ici

\begin{align}
(\bar{W}^{(i), \text{eff}}_{\nu})_{kl} &\equiv \braket{\psi^{(i)}_k}{ W^{(i)}_{\nu}}{\psi^{(i)}_l} = \braket{\psi^{(i)}_0 }{ W^{(i)}_{k}\;^{\dagger}W^{(i)}_{\nu} W^{(i)}_{l}}{ \psi^{(i)}_0}
\end{align}

Est défini comme. À partir de ce qui précède, pour calculer $ V ^ {\ text {eff}} \ _ {ij} $, utilisez $ \ ket {\ psi ^ {(i)} _0} $

\begin{align}
W^{(i)}_{k}\;^{\dagger}W^{(i)}_{\nu} W^{(i)}_{l}
\end{align}

Observez la valeur attendue de $ (\ bar {W} ^ {(i), \ text {eff}} \ _ {\ nu}) et calculez l'élément de matrice de $. Vous pouvez créer $ V ^ {\ text {eff}} \ _ {ij} $ en utilisant ceci et la matrice $ P $ utilisée pour créer la base locale.

Représenté par une porte

Jusqu'à présent, nous avons trouvé les éléments efficaces de la matrice hamiltonienne. L'état de base peut être obtenu à partir des valeurs propres et des états propres en diagonalisant la matrice dimensionnelle $ K ^ 2 \ times K ^ 2 $ obtenue en intégrant les deux sous-systèmes représentés par les bases locales sans utiliser d'ordinateur quantique. Je pense qu'il est nécessaire de le représenter avec la porte correspondant à l'élément matriciel pour pouvoir calculer à l'aide d'un ordinateur quantique.

Pour $ (\ mathcal {H} ^ {\ text {eff}} \ _i) _ {kl} $, l'opérateur hamiltonien correspondant est

\begin{align}
(\mathcal{H}^{\text{eff}}_i)_{kl}\ket{\tilde{\psi}^{(i)}_k} \bra{\tilde{\psi}^{(i)}_l}
\end{align}

Sera. Ce $ \ ket {\ tilde {\ psi} ^ {(i)} \ _ k} \ bra {\ tilde {\ psi} ^ {(i)} \ _l} $ doit être représenté par une porte. Avant cela, nous devons d'abord associer la base locale $ \ ket {\ tilde {\ psi} ^ {(i)} \ _ k} $ avec le bit quantique. Par exemple, si $ K = 7 $, vous devriez considérer la correspondance suivante.

\begin{align}
    \ket{\tilde{\psi}^{(i)}_1} &= \ket{000} \\ 
    \ket{\tilde{\psi}^{(i)}_2} &= \ket{001} \\ 
    \ket{\tilde{\psi}^{(i)}_3} &= \ket{010} \\ 
    \ket{\tilde{\psi}^{(i)}_4} &= \ket{011} \\ 
    \ket{\tilde{\psi}^{(i)}_5} &= \ket{100} \\ 
    \ket{\tilde{\psi}^{(i)}_6} &= \ket{101} \\ 
    \ket{\tilde{\psi}^{(i)}_7} &= \ket{110}
\end{align}

À partir de cette correspondance, par exemple

\begin{align}
\ket{\tilde{\psi}^{(i)}_1}\bra{\tilde{\psi}^{(i)}_2} &= \ket{000}\bra{001}\\
&= \ket{0}\bra{0}_0 \otimes \ket{0}\bra{0}_1 \otimes \ket{0}\bra{1}_2
\end{align}

Par conséquent, après cela, l'opérateur de projection $ \ ket {0} \ bra {0} \ _0 $ de chaque bit quantique peut être représenté en utilisant une porte. Se concentrer sur un bit quantique

\begin{align}
Z &= \ket{0}\bra{0} - \ket{1}\bra{1} \\
I &= \ket{0}\bra{0} + \ket{1}\bra{1}
\end{align}

À partir de $ \ ket {0} \ bra {0}, \ ket {1} \ bra {1} $ peut être exprimé en utilisant $ Z, I $. De la même manière

\begin{align}
\ket{0}\bra{0} &= \frac{1}{2}(I + Z) \\
\ket{1}\bra{1} &= \frac{1}{2}(I - Z) \\
\ket{0}\bra{1} &= \frac{1}{2}(I + iY) \\
\ket{1}\bra{0} &= \frac{1}{2}(I - iY)
\end{align}

Je pense qu'il peut être converti en utilisant. Puisque l'hamiltonien est Elmeat, je pense qu'il peut être étendu en utilisant ces portes et des coefficients réels.

Hamiltonien efficace

Trouvez l'état de base avec VQE en utilisant le hamiltonien valide de $ \ mathcal {H} \ _ {i}, \ mathcal {H} \ _ {j}, V \ _ {ij} $ trouvé ci-dessus comme nouveau sous-système. ..

\begin{align}
\mathcal{H}^{\text{eff}}_{ij} = \mathcal{H}^{\text{eff}}_i + \mathcal{H}^{\text{eff}}_j + V^{\text{eff}}_{ij}
\end{align}

S'il n'y a que deux sous-systèmes, le processus ci-dessus ne doit être exécuté qu'une seule fois, mais s'il y en a trois ou plus, il est nécessaire de répéter le processus en fonction de la division.

Nombre de bits quantiques

Si le numéro du premier sous-système est $ N $ et le nombre de bits quantiques requis pour un sous-système est $ n $, si vous essayez de le résoudre en une fois sans diviser le système entier, le total est $ M = nN $ quantum. Vous en aurez besoin d'un peu. Par contre, lorsque la division est grande, si le nombre de bases locales est de $ K $, le nombre de bits quantiques requis est $ m = N \ lceil \ log \ _2 {K} \ rceil $, soit $ M \ à m $. Il a été réduit.

Dans l'article, le nombre requis de bits est spécifiquement discuté en utilisant un modèle dans lequel un système partiel de 4 bits quantiques est répété d'une manière bidimensionnelle. J'ai résumé la méthode de calcul du nombre de bits quantiques requis pour l'image ci-dessous.

fig2_1.png

fig2_2.png

fig2_3.png

fig2_4.png

Résultat du calcul

Présentation des résultats des calculs calculés dans l'article.

Modèle a

Tout d'abord, comme le montre la figure ci-dessous, il s'agit d'un modèle dans lequel un système partiel composé de 4 bits quantiques est connecté de manière unidimensionnelle. (Dans la partie implémentation, j'ai calculé un modèle dans lequel ces deux sont connectés.)

fig3_a.png

Le système partiel est constitué du modèle anti-ferrométrique Heisenberg suivant.

\begin{align}
    \mathcal{H}_i &= \sum_{E=(\mu, \nu)}(X^{(i)}_{\mu}X^{(i)}_{\nu} + Y^{(i)}_{\mu}Y^{(i)}_{\nu} + Z^{(i)}_{\mu}Z^{(i)}_{\nu}) \\
    &= \sum_{E=(\mu, \nu)}\sum_{A=X,y,Z}A^{(i)}_{\mu} A^{(i)}_{\nu} 
\end{align}

Ici, les arêtes sont $ E = \ {(0,1), (1,2), (2,3), (3,0), (0,2) } $. Les interactions suivantes fonctionnent entre les sous-systèmes.

\begin{align}
    V_{ij} = \sum_{A=X,Y,Z}(A^{(i)}_{0} A^{(j)}_{2} + A^{(i)}_{2} A^{(j)}_{0})
\end{align}

Les résultats des calculs sont résumés dans le tableau ci-dessous.

table1.png

L'énergie totale du système partiel où Local ignore l'interaction, Efficace est l'énergie obtenue en diagonalisant l'hamiltonien, ITE représente chaque énergie obtenue par la méthode de développement du temps imaginaire.

Puisque la taille devient grande à $ N = 8 $, Effective et ITE ne sont pas répertoriés. $ N = 2 $ correspond aux valeurs de Deep VQE, Effective et ITE. Lorsque $ N> 2 $, les valeurs VQE effectives et profondes pour ITE deviennent légèrement plus grandes et s'écartent, mais vous pouvez voir qu'elles donnent une bonne approximation. On peut voir qu'une valeur énergétique approximative peut être obtenue en utilisant Deep VQE même pour des systèmes qui ne peuvent pas être calculés directement par ITE.

Modèle b

Le modèle suivant est illustré ci-dessous.

fig3_b.png

L'hamiltonien a la même forme qu'avant, mais a augmenté à 12 bits quantiques, et les bords ont changé comme indiqué sur la figure. L'interaction agit sur les 0e et 6e bits quantiques. La solution exacte pour ce sous-système est $ -21,78 $, et le résultat calculé par Deep VQE semble être $ -21,72 $. Les valeurs d'énergie mesurées à différentes profondeurs de circuit sont répertoriées ci-dessous.

fig3_c.png

Désormais, si vous connectez les systèmes partiels, il semble que $ -43.8 $ s'obtienne à $ N = 2 $ et $ -87.9 $ s'obtienne à $ N = 4 $.

la mise en oeuvre

J'ai calculé l'énergie de base dans le cas de $ N = 2 $ dans le modèle a par DeepVQE en utilisant Qulacs.

3a_N2.png

L'hamiltonien partiel utilise le modèle suivant comme précédemment.

\begin{align}
    \mathcal{H}_i &= \sum_{E=(\mu, \nu)}(X^{(i)}_{\mu}X^{(i)}_{\nu} + Y^{(i)}_{\mu}Y^{(i)}_{\nu} + Z^{(i)}_{\mu}Z^{(i)}_{\nu}) \\
    &= \sum_{E=(\mu, \nu)}\sum_{A=X,y,Z}A^{(i)}_{\mu} A^{(i)}_{\nu} 
\end{align}

Les arêtes sont $ E = \ {(0,1), (1,2), (2,3), (3,0), (0,2) } $, et l'interaction utilise:

\begin{align}
    V_{01} = \sum_{A=X,Y,Z}(A^{(i)}_{0} A^{(j)}_{2} + A^{(i)}_{2} A^{(j)}_{0})
\end{align}

Veuillez vous référer au code ci-dessous lors du calcul du modèle ci-dessus avec Deep VQE au format notebook. L'explication est également décrite sur le cahier.

https://github.com/Noriaki416/DeepVQE/blob/master/DeepVQE.ipynb

Je saute cette fois car j'utilise BFGS pour optimiser la fonction de coût et j'ai vraiment besoin d'entrer le gradient de la fonction de coût. (Bien qu'il soit dit dans l'article que vous devriez ajouter un dégradé, je l'ai ignoré. Je suis désolé.)

De plus, les résultats obtenus en utilisant une diagonalisation stricte sont également téléchargés ci-dessous.

https://github.com/Noriaki416/DeepVQE/blob/master/DeepVQE_Others.ipynb

Le résultat de la diagonalisation exacte est "-14,46", ce qui correspond à la valeur du tableau 1. Le résultat de Deep VQE a également la même valeur, et je pense que le calcul lui-même a été bien exécuté.

C'est tout. Veuillez signaler toute erreur. Si j'ai le temps, je vais améliorer le code et essayer de calculer dans d'autres systèmes ($ N> 2 $ dans le modèle a et le modèle b).

Recommended Posts

J'ai essayé d'implémenter Deep VQE
J'ai essayé d'implémenter PCANet
J'ai essayé d'implémenter StarGAN (1)
J'ai essayé de mettre en place une validation contradictoire
J'ai essayé d'implémenter Realness GAN
J'ai essayé d'implémenter Perceptron Part 1 [Deep Learning from scratch]
J'ai essayé d'implémenter PLSA en Python
J'ai essayé d'implémenter Autoencoder avec TensorFlow
J'ai essayé d'implémenter la permutation en Python
J'ai essayé d'implémenter PLSA dans Python 2
J'ai essayé d'implémenter ADALINE en Python
J'ai essayé d'implémenter PPO en Python
J'ai essayé d'implémenter CVAE avec PyTorch
J'ai essayé le deep learning
J'ai essayé de déboguer.
J'ai essayé d'implémenter la lecture de Dataset avec PyTorch
J'ai essayé d'implémenter TOPIC MODEL en Python
J'ai essayé d'implémenter le tri sélectif en python
J'ai essayé de mettre en œuvre le problème du voyageur de commerce
J'ai essayé de mettre en œuvre un apprentissage en profondeur qui n'est pas profond avec uniquement NumPy
[Deep Learning from scratch] J'ai essayé d'implémenter la couche sigmoïde et la couche Relu
J'ai essayé d'apprendre PredNet
J'ai essayé d'organiser SVM.
J'ai essayé de réintroduire Linux
J'ai essayé de présenter Pylint
J'ai essayé de résumer SparseMatrix
jupyter je l'ai touché
J'ai essayé de mettre en œuvre la gestion des processus statistiques multivariés (MSPC)
J'ai essayé d'implémenter et d'apprendre DCGAN avec PyTorch
J'ai essayé d'implémenter Mine Sweeper sur un terminal avec python
J'ai essayé d'implémenter un pseudo pachislot en Python
J'ai essayé d'implémenter le poker de Drakue en Python
J'ai essayé d'implémenter le perceptron artificiel avec python
J'ai essayé d'implémenter GA (algorithme génétique) en Python
J'ai essayé d'implémenter Grad-CAM avec keras et tensorflow
[Deep Learning from scratch] J'ai essayé d'expliquer le décrochage
J'ai essayé d'implémenter SSD avec PyTorch maintenant (Dataset)
J'ai essayé d'implémenter le calcul automatique de la preuve de séquence
[Python] Deep Learning: J'ai essayé d'implémenter Deep Learning (DBN, SDA) sans utiliser de bibliothèque.
J'ai essayé d'implémenter Cifar10 avec la bibliothèque SONY Deep Learning NNabla [Nippon Hurray]
J'ai essayé d'implémenter une ligne moyenne mobile de volume avec Quantx
J'ai essayé de mettre en œuvre le modèle de base du réseau neuronal récurrent
J'ai essayé de créer l'API Quip
J'ai essayé d'implémenter la détection d'anomalies par apprentissage de structure clairsemée
J'ai essayé de toucher Python (installation)
J'ai essayé d'implémenter un automate cellulaire unidimensionnel en Python
J'ai essayé de mettre en œuvre une évasion (type d'évitement de tromperie) avec Quantx
[Django] J'ai essayé d'implémenter des restrictions d'accès par héritage de classe.
J'ai essayé d'expliquer l'ensemble de données de Pytorch
J'ai essayé l'authentification vocale Watson (Speech to Text)
J'ai touché l'API de Tesla
J'ai essayé d'implémenter ListNet d'apprentissage de rang avec Chainer
J'ai essayé d'implémenter la fonction d'envoi de courrier en Python
J'ai essayé de mettre en œuvre le chapeau de regroupement de Harry Potter avec CNN
J'ai essayé de m'organiser à propos de MCMC.
J'ai essayé l'apprentissage en profondeur avec Theano
J'ai essayé d'implémenter le blackjack du jeu Trump en Python