文献情報
- タイトル:The generative quantum eigensolver (GQE) and its application for ground state search
- 著者:Kouhei Nakaji, Lasse Bjørn Kristensen, Jorge A. Campos-Gonzalez-Angulo, Mohammad Ghazi Vakili, Haozhe Huang, Mohsen Bagherimehrab, Christoph Gorgulla, FuTe Wong, Alex McCaskey, Jin-Sung Kim, Thien Nguyen, Pooja Rao, Alan Aspuru-Guzik
- 書誌情報(DOI):https://doi.org/10.48550/arXiv.2401.09253
- 出版年:2024/01 (Ver.1)
※ 本記事は、主に2024年1月に公開されたVer.1に基づいて作成されています。arXivは2025年9月にVer.2に更新されており、それに併せて本記事も更新する予定です。
概要
VQE(Variational Quantum Eigensolver/変分量子固有値ソルバー)は量子アルゴリズムの一つであり、変分原理を用いて基底状態を探索することができます。VQEはNISQデバイスでも実現可能なアルゴリズムとして、長きにわたり注目を浴びてきました。しかしながら、スケーラビリティや量子計算資源の点で改善の余地があります。
本論文では、古典生成モデルであるTransformer を用いて量子回路を最適化する新たな量子アルゴリズム GPT-QEを提案しています。GPT-QEは既存のデータセットを使用した事前学習と、事前知識なしでの学習の双方により、量子計算コストを削減した学習を行うことができます。論文中では、量子計算シミュレーションを用いてGPT-QEの実証実験を行い、分子の基底状態探索におけるGPT-QEの有効性と事前学習による精度の向上を確認しました。
背景
ここでは、従来の基底状態探索アルゴリズムVQEの概要を解説します。VQEは本研究で提案するGPT-QEの基となったアルゴリズムであり、GPT-QEの重要性を理解するために必要です。
VQE の仕組み
VQE(Variational Quantum Eigensolver/変分量子固有値ソルバー)は、与えられたハミルトニアン $\hat H$の基底エネルギー $E_0$を求めるためのアルゴリズムです。例えば、量子化学計算の分野では、分子の基底エネルギーを求めるためにVQEが用いられます。
VQEでは、ハミルトニアン(エネルギー)の期待値 $E_N$と基底エネルギー $E_0$の間に次の不等式が成立することを利用します。
$$ E_N=\bra{\psi}\hat H\ket{\psi}\ge E_0 $$
ここで、 $\ket{\psi}$が基底状態のとき等号が成立します。したがって、パラメータ付きの量子状態 $\ket{\psi(\theta)}$を用意し、それを$\theta$の更新により基底状態に近づけていけば、基底エネルギーを近似的に求めることができます。これは、以下の方法で実装します。
- パラメータ付きのユニタリ演算子 $U(\theta)$を含む量子回路を用いて量子状態 $\ket{\psi(\theta)}$を用意する。
- エネルギー期待値 $E_N(\theta)$ の勾配 $\frac{dE_N(\theta)}{d\theta}$を測定する
- 勾配をもとに $\theta$の更新を行う
- 1-3を指定回数分繰り返す
VQEの課題
VQEは、量子誤り訂正が不十分な量子コンピュータであるNISQ(Noisy Intermediate-Scale Quantum)デバイスでも実行可能な優れたアルゴリズムですが、いくつかの課題を抱えています。まず、量子計算資源の非効率性が挙げられます。VQEでは $\braket{\hat H}$の勾配の測定のために実際に量子デバイスを動かす必要がありますが、不安定な量子デバイスの実行は最小限に抑えることが望ましいです。量子計算を古典計算で効率的に代用する手法が求められています。
加えて、大規模な問題に対して性能を発揮できない、スケーラビリティの問題があります。あるサイズを超えた問題に関して、古典計算に対する優位性を発揮できることが保証されていません。
手法
本論文で提案するアルゴリズムを、一般の古典生成モデルを用いるGQEと、Transformerを用いるGPT-QEの二つに分けて説明します。
GQE
GQE(Generative Quantum Eigensolver/生成量子固有値ソルバー)は、古典生成モデルを用いて基底エネルギーを求める量子アルゴリズムです。この古典生成モデルはユニタリ演算子を組み合わせることで量子回路を生成し、生成モデル内部のパラメータを調整することで生成されやすい量子回路を変えることができます。基底状態をつくる量子回路が生成されるようなパラメータを発見することが、このアルゴリズムの目標です。
実際には以下の手順で学習を行います。
- 古典生成モデルで量子回路を生成する
- 量子デバイス上で量子回路を実行し、量子状態を生成する
- 得られた量子状態を測定し、 $\hat H$の期待値 $E_N$を求める
- コスト関数を計算し、誤差逆伝播法で古典モデルのパラメータを更新する
- 1-4を指定回数分繰り返す
適切なコスト関数が設定されていれば、生成モデルの学習が進むにつれてより基底状態に近い量子状態が作られることが予想されます。以上がGQEの概要です。
GQEとVQEの違いは、更新するパラメータが古典モデル内にあるか、量子回路内にあるかで整理することができます。従来のVQEがパラメータ付きの量子回路を用いて計算していたのに対し、GQEのパラメータはあくまでも生成モデル内のもので、量子回路自体にはパラメータがついていません。GQEとVQEのイメージを図1に示します。VQEがエネルギー期待値$E$の勾配を用いて量子回路のパラメータを直接更新しているのに対し、GQEではコスト関数 $C$(詳しくは後述します)の勾配を用いて量子回路を生成する生成モデルのパラメータを更新していることが分かります。

GQEの利点は、単に深層学習の知見を応用できるという点だけではありません。VQEで量子計算で実行していた勾配の計算を、GQEでは古典的なサンプリングと誤差逆伝播法で代用することができます。したがって、GQEではVQEに比べて量子計算が削減されることが期待されます。加えて、従来は人間が行っていた量子回路の設計を、生成モデルが自動で行うことができるという長所もあります。すなわち、人力では発見が困難な複雑な量子回路を生成できる可能性を秘めているという点で、GQEは有望だと考えられます。
GPT-QE
GPT-QE(Generative Pre-trained Transformer-QE)はGQEの一種であり、生成モデルにTransformerを採用したアルゴリズムです。これは、Transformerによる文書生成を参考に設計されており、量子回路の構成要素であるトークンをひとつずつ選択していくことで量子回路全体の生成を実現します。また、GPT-QEはTransformerを利用しているため事前学習が可能であり、過去に実行したGPT-QEの結果を古典計算のみで引き継ぐことが可能です。
実際の手順は以下の通りです。
- GPTとSampleを繰り返し、量子回路を1トークンずつ生成する
- GPT:1つ前のトークンまでの量子回路をTransformerに入力し、確率分布を出力
- Sample:確率分布に基づき次のトークンのユニタリ演算子を1つ選択
- 量子デバイス上で実際に量子回路を実行する
- 生成された状態と基底状態の近さをコスト関数で評価する
- 誤差逆伝播法でパラメータを更新する
- 1-4のサイクルを指定回数分繰り返す
ここで登場したGPTとSampleは、本論文中で独自に定義された関数です。以下で詳細に説明します。
GPT
GPTは、各トークンにおける確率分布(正確には確率の対数)を計算する関数です。まず、入力 $\vec j^{(k)}$と出力 $W^{(k)}$について説明します。
- 入力: $\vec j^{(k)}=\{0,j_1,\dots,j_{k-1}\}$ $\vec j^{(k)}$は第 $(k-1)$トークンまでの量子回路を整数値の列で表したものです。あらかじめ用意したユニタリ演算子を整数値 $1,\dots,L$でラベル付けしておき、各トークンの演算子を整数値で表すことで第 $(k-1)$トークンまでの量子回路を数列 $\vec j^{(k)}$として表現しています。 なお、用意したユニタリ演算子の集合を演算子プール $\mathcal{G}$と呼びます。 $\mathcal{G}$の中身は、量子回路を十分に表現できるように設計者があらかじめ用意しておく必要があります。本論文中の実験では、既存の量子化学計算の手法を参考に演算子プール $\mathcal G$を構成しますが、このとき $\mathcal G$に含まれる演算子には例えば図2のようなものがあります。一般に、 $\mathcal G$ の元は複数のユニタリ演算子を組み合わせたものであることに注意してください。

- 出力: $W^{(k)}=\{\vec w^{(1)},\dots,\vec w^{(k)}\}$ $W^{(k)}$は、各トークンにおいて各演算子が選択される確率を集めたものです。各成分 $\vec w^{(i)}=(w^{(i)}_1,\dots,w^{(i)}_L)$は $L$次元ベクトルであり、第 $k$トークンにおける各演算子の確率分布と理解することができます。 $W^{(k)}$全体は $L\times k$ の行列となります。 「$\vec w^{(i)}$が確率分布」という表現について、もう少し詳しく説明します。GPTに続いて実行する関数Sampleは、第 $k$トークンの演算子を確率分布に従って一つ選択する関数です。このとき、第 $k$トークンに $i$番目の演算子が選択される確率は $\exp(-\beta w_i^{(k)})$に比例します。(詳細はSampleの項で説明します。)すなわち、 $w$は確率分布そのものというより、確率分布の対数(に比例する量)と解釈するのが適切です。原論文はこの$w$をlogitと呼んでいますが、確率分布の対数以上の意味は特に持たないと思われます。 なお、第 $k$トークンの生成時に $\vec w^{(k)}$以外の成分 $\vec w^{(1)}, \dots, \vec w^{(k-1)}$は必要ありません。第 $1$ ~ $(k-1)$トークンの $w$も生成されますが、Sampleの入力に用いられるのは最後の成分のみです。
入力と出力は、Transformerをベースとした複数の中間層によって結ばれます。以下にGPTの具体的なモデル構造について説明します。
- Embedding層
- 入力:$\vec j^{(k)}=\{0,j_1,\dots,j_{k-1}\}$
- 出力:$L\times k$ 行列 ($L$次元ベクトルを $k$個並べたもの)
- Attention層(複数)
- 入力:$L\times k$ 行列
- 出力:$L\times k$ 行列
- 出力層
- 入力:$L\times k$ 行列
- 出力:$W^{(k)}=\{\vec w^{(1)},\dots,\vec w^{(k)}\}$
以上がGPTのモデル構造です。学習を行うときは、各Attention層のパラメータ $\vec\theta$を更新します。
実際には複数のAttention機構を並列で動かすMulti-head Attentionを採用することが多く、その場合モデル構造はもう少し複雑になりますが、基本的な仕組みはここで説明したものと同じです。
Sample
Sampleは、GPTで求めた確率分布をもとに次のユニタリ演算子を1つ確定させる関数です。入力と出力は以下の通りです。
- 入力: $\vec w^{(k)}=(w_1^{(k)},\dots,w_L^{(k)})^T$
GPTの出力 $W^{(k)}=\{\vec w^{(1)},\dots,\vec w^{(k)}\}$のうち、 第 $k$ トークンの確率分布を表す$\vec w^{(k)}$を入力に取ります。
- 出力: $j_k\in\{1,\dots,L\}$
第 $k$ トークンの演算子を、 $1,\dots,k$ の整数値で表します。
そして、第 $k$ トークンで演算子 $i\in\{1,\dots,L\}$を指定する確率は、以下の式で定義されます。
$$ p=\frac{\exp(-\beta w_i^{(k)})}{\sum_l \exp(-\beta w_l^{(k)})} $$
$i$番目の演算子を指定する確率は $\exp(-\beta w_i^{(k)})$に比例するため、 対応する$w$の値が小さい演算子ほど選ばれやすいことが分かります。分母は規格化定数です。
ここで新しく導入した $\beta$は逆温度と呼ばれるパラメータであり、分布の鋭さを表します。 下図からも分かるように、$\beta$が大きくなるほど、小さい $w$がより集中的に選択されるようになります。 $\beta$はハイパーパラメータであり、サンプリングの度に外から自由に値を変更することができます。
図3に、実際に10000個のデータをこの確率分布にしたがってサンプリングした結果を示します。 $\beta$ が大きいほど分布が鋭くなり、 小さい $w$ が集中的に選択されていることが分かります。
なお、この確率分布はカノニカル分布を参考に人工的に設計されたものであり、導出できるものではない点に注意してください。

ここまでの設定を用いて、量子回路全体のサンプリング確率を表すことができます。ある量子回路 $\vec j=\{j_1,\dots,j_k\}$が生成される確率は、各トークンのサンプリング確率の積で表すことができるため
$$ \prod_{k=1}^N \exp(-\beta w_{j_k}^{(k)})=\exp\Bigg(-\beta\sum_{k=1}^N w_{j_k}^{(k)}\Bigg)=\exp(-\beta w_{\mathrm{sum}}(\vec{j}))$$
に比例します。ここで、ある量子回路 $\vec j$に対して、各トークンの演算子に対応する $w$を足し合わせた量 $w_\mathrm{sum}$を定義しました。
$$ w_\mathrm{sum}(\vec j)=\sum_{k=1}^Nw_{j_k}^{(k)} $$
したがって、量子回路 $\vec j$が生成される確率は
$$ p_N(\beta,\vec{j})=\frac{\exp(-\beta w_\mathrm{sum}(\vec{j}))}{\sum_{\vec{j}}\exp(-\beta w_\mathrm{sum}(\vec{j}))}=\frac{\exp(-\beta w_\mathrm{sum}(\vec{j}))}{\mathcal{Z}} $$
と表すことができます。
実際の流れ
以上で説明した二つの関数 GPTとSampleを繰り返し実行することで、量子回路を生成することができます。一連の流れを具体的に追ってみましょう。
- 最初のステップでは、入力列 $\{0\}$を用いて第$1$トークン $j_1$をサンプリングします。
$$ W^{(1)}=\mathrm{GPT}(\{0\}) \to \vec w^{(1)}=W_1^{(1)} \to j_1 = \mathrm{Sample}(\vec w^{(1)}) $$
- 二番目のステップでは、入力列 $\{0,j_1\}$を用いて第$2$トークン $j_2$をサンプリングします。 $$ W^{(2)}=\mathrm{GPT}(\{0,j_1\}) \to \vec w^{(2)}=W_2^{(2)} \to j_2 = \mathrm{Sample}(\vec w^{(2)}) $$
- $k$番目のステップでは、 $\{0,j_1,\dots,j_{k-1}\}$を用いて第 $k$トークン $j_k$をサンプリングします。 $$ W^{(k)}=\mathrm{GPT}(\{0,j_1,\dots,j_{k-1}\}) \to \vec w^{(k)}=W_k^{(k)}\to j_k = \mathrm{Sample}(\vec w^{(k)}) $$
- あらかじめ指定した量子回路の長さに到達したら、ループを停止します。
training
GPTとSampleを繰り返し実行することで、量子回路を生成することができました。今度は生成された量子回路を評価し、より良い回路が生成されるようパラメータの更新を行う必要があります。パラメータの更新方法には、実際に量子デバイスを動かして行うtrainingと、データセットで代用するpre-trainingがあります。この節では前者のtrainingについて説明します。
training全体の流れは以下の通りでした。
- 古典生成モデルで量子回路を生成する
- 量子デバイス上で量子回路を実行し、量子状態を生成する
- 得られた量子状態を測定し、 $\hat H$の期待値$E_N$を求める
- コスト関数を計算し、誤差逆伝播法で古典モデルのパラメータを更新する
- 1-4を指定回数分繰り返す
前節では1. を説明したので、以下では2から5の具体的な手順を解説します。
量子状態の生成と期待値の測定
trainingではエネルギー期待値を実際の量子デバイスを用いて測定します。サンプリングされた量子回路 $\vec j$ を実際に生成したものを $U_N(\vec j)$と表すことにすると、初期状態 $\rho_0$は
$$ \rho_0\to U_N(\vec j)\rho_0 U_N(\vec j)^\dagger $$
のように変化します。変化後の状態についてハミルトニアン $\hat H$の測定を繰り返し行うことで、エネルギー期待値 $E_N$を求めることができます。
初期状態は固定しておく必要があります。このとき、あらかじめエネルギーが低いことが分かっている状態を初期状態に設定することで、最終的に得られる期待値がより低くなりやすくることが予想されます。例えば、本論文中で行われる量子化学計算では、Hartree-Fock法を計算して得られるHartree-Fock状態が初期状態に設定されています。
コスト関数
測定したエネルギー期待値 $E_N$をもとに、コスト関数を計算します。結論から述べると、コスト関数 $C$は以下の式で定義されます。
$$ C\Big(\{w_\mathrm{sum}(\vec j_m)\}_{m=1}^M,\{E_N(\vec j_m)_{m=1}^M\}\Big)=\frac{1}{M}\sum_{m=1}^M\bigg[\exp\big(-w_\mathrm{sum}(\vec j_m)\big)-\exp\big(-E_N(\vec j_m)\big)\bigg]^2 $$
コスト関数 $C$ は、 $M$個の量子回路それぞれにおける $w_\mathrm{sum}$と $E_N$を引数に持つ関数となります。$w_\mathrm{sum}$ は Transformerのパラメータ $\vec\theta$ に依存するので、 $C$ はパラメータ $\vec\theta$ にも依存します。式中の $\exp\big(-w_\mathrm{sum}(\vec j_m)\big)-\exp\big(-E_N(\vec j_m)\big)$の部分は、 $w_\mathrm{sum}$と $E_N$の近さを表しています。(それぞれの指数をとった形で定義する理由については、明確な記述が見つかりませんでした。)
このコスト関数の定義が採用された理由を以下で説明します。
コスト関数とは、モデルの予測が実現すべき値からどれだけ離れているかを表す関数です。モデルの学習はコスト関数の値を小さくする方向にパラメータを更新することで実現されます。GPT-QEにおけるコスト関数は、生成した量子状態がどれだけ基底状態に近いかを表す関数であり、Transformer内部のパラメータをどのように更新するかを決定づける量となります。
前節で説明した通り、ある量子回路 $\vec j$ が生成される確率は
$$ p_N(\beta,\vec j)=\frac{\exp(-\beta w_\mathrm{sum}(\vec j))}{\mathcal{Z}} $$
で表せます。ここで、学習を始める前のTransformerについて考えてみます。Transformer内のパラメータはランダムであるため、GPTの出力 $W^{(k)}=\{\vec w^{(1)},\dots,\vec w^{(k)}\}$も各成分がランダムな値を取ります。ゆえに $p_N(\beta,\vec j)$はランダムな確率分布となり、目的である $E_N$が低い回路 $\vec j$ の生成確率が高くなることもありません。
一方、仮に任意の $\vec j$について $w_\mathrm{sum}(\vec j)=E_N(\vec j)$が成立するならば、確率分布は
$$ p_N(\beta,\vec j)=\frac{\exp(-\beta E_N(\vec j))}{\mathcal{Z}} $$
となります。この式は、エネルギー期待値が低い量子回路ほど生成されやすいことを意味します。これは理想的な確率分布の一つであり、 $\beta$を大きくして分布を急峻にすれば非常に高い確率で最低のエネルギーをえることができることも分かります。したがって、最初はランダムな $w_\mathrm{sum}(\vec j)$を、理想的な状況である $w_\mathrm{sum}(\vec j)=E_N(\vec j)$に近づけていくことが、Transformerを学習するうえでの基本的な方針となります。
以上の考察から、二つの分布 $w_\mathrm{sum}(\vec j)$と $E_N(\vec j)$の近さを表す関数を、コスト関数として定義すればよいことが分かります。しかしながら、実際には考え得る全ての量子回路 $\vec j$について値を計算することは困難です。そこで、GPTで出力された $M$個の量子回路 $\vec j$ の場合のみについて計算し、その平均を取ることでコスト関数を定義します。
パラメータの更新
コスト関数を計算した後は、GPT内のパラメータを誤差逆伝播法により更新します。コスト関数は、「 $w_\mathrm{sum}(\vec j)$の分布と $E_N(\vec j)$の分布の近さ」を表す関数でした。したがって、各パラメータ $w$をコスト関数 $C$が小さくなる方向に調整することで、次のサイクルで得られる期待値をより小さくすることが期待できます。ここで用いる誤差逆伝播法は量子デバイスを使わずに実行可能な古典計算なので、量子リソースの削減に繋がります。
加えて、Sample関数内のパラメータ $\beta$ も更新します。先述の通り、Sample関数により量子回路 $\vec j$が選択される確率は、$\mathcal{Z}$を規格化定数として
$$ p_N(\beta,\vec{j})=\frac{\exp(-\beta w_\mathrm{sum}(\vec{j}))}{\sum_{\vec{j}}\exp(-\beta w_\mathrm{sum}(\vec{j}))}=\frac{\exp(-\beta w_\mathrm{sum}(\vec{j}))}{\mathcal{Z}} $$
に従います。式を見ると、$\beta$が大きくなるほど $w_\mathrm{sum}(\vec j)$が小さい $\vec j$が選ばれやすくなることが分かります。極端な場合を見ると、 $\beta\to\infty$のときは $w_\mathrm{sum}(\vec j)$が最小となる $\vec j$だけが選ばれることも分かります。 学習初期の段階では$w_\mathrm{sum}(\vec j)$はまだランダムなので、$\beta$を大きくしてはいけませんが、 $w_\mathrm{sum}(\vec j)$と $E_N(\vec j)$が近づくにつれ $\beta$を大きくしていくことは、最小のエネルギーを探索するうえで有効な戦略となることが期待できます。パラメータ$w$がコスト関数 $C$に基づいて自動で更新される一方、パラメータ $\beta$は人間が手動で調整するハイパーパラメータです。したがってどのような加減で $\beta$を大きくしていくかは自由に決めることができますが、後述する本論文中の実験では毎回のサイクルで $\beta$を一定の値ずつ増やします。
二つのパラメータの更新を行った後は、またGPTとSampleで量子回路を生成するプロセスに戻ります。量子回路の生成→パラメータの更新のサイクルを指定回数だけ実行したら、最後のサイクルの量子回路を出力結果としてGPT-QEを終了します。以下はtrainingのフローチャートです。

pre-training
pre-trainingは、あらかじめ用意したデータセットで学習を行う方法です。データセット $\mathcal D$ は、量子回路 $\vec j$と対応するエネルギー期待値 $E_N$からなります。
$$ \mathcal D=\{\vec j_m,E_N(\vec j)\} $$
trainingでは実際に量子デバイスを用いたエネルギー期待値 $E_N$の測定が必要となるのに対し、pre-trainingでは過去のtrainingの結果を利用することにより古典計算のみで学習を完結させることができます。
具体的な手順は以下の通りです。
- データセット $\{\vec j_m, E_N(\vec j_m)\}$を読み込む
- $\vec j$ をGPTに入力し、 $w_\mathrm{sum}(\vec j_m)$を計算する
- コスト関数 $C$を計算する
- 誤差逆伝播法でパラメータを更新する
- 1-4を全データの学習が完了するまで繰り返す
コスト関数 $C(w_\mathrm{sum}(\vec j), E_N(\vec j))$を計算するために必要な情報は $w_\mathrm{sum}(\vec j)$と $E_N(\vec j)$であり、 $w_\mathrm{sum}(\vec j)$はGPTによって、 $E_N(\vec j)$はSampleと実際に量子デバイスを用いた測定によって求めることができます。しかし、pre-trainingで読み込むデータセットには既にエネルギー期待値 $E_N(\vec j)$が含まれているため、Sampleと量子デバイスを用いた測定は省略することができます。
下に示すpre-trainingのフローチャートをtrainingのフローチャートと比較すると、pre-trainingではSampleと量子測定が省略されていることが分かります。

具体的な方法
- Model-to-model transfer scenario
全く同じハミルトニアンに対して過去にデータを集めていた場合は、 $\vec j, E_N(\vec j)$ をそのままデータセットとして用いることができます。この方法は、例えばモデルを改善したい場合に用いられます。モデル GPT-A を用いてハミルトニアン $\hat H$ に対する学習を行ったものの、より優れたモデル GPT-B を使いたくなったとします。このとき、ハミルトニアンが同一であれば、GPT-Aで得られた $\vec j, E_N(\vec j)$をそのままGPT-Bのpre-trainingに用いて学習を引き継ぐことができます。モデルを変えず、GPT-Aでさらに学習を行いたくなったときにもこの方法が活用できます。 - Config-to-config transfer scenario
過去に入手した $\vec j, E_N(\vec j)$ をpre-trainingにそのまま利用できるのは、ハミルトニアンが同一である場合に限られます。しかし、ある工夫を加えることで、異なるハミルトニアンから入手したデータを事前学習に用いることができる場合があります。Config-to-config transfer scenarioは、ハミルトニアンの構造は同じであり、各項の係数だけが異なる場合に用いられる方法です。 ここでは分かりやすさのため、一つの具体例として量子化学計算の一種である分子の基底状態探索を取り上げます。まず、分子における1電子のハミルトニアンは、 $$ \hat H=\sum_a^{N_H}h_a\hat P_a $$ のようにパウリ演算子のテンソル積 $\hat P_a$ の線形結合で表せることが分かっています。そして、この分子の原子間距離や結合角を変更したとき、ハミルトニアンは構造を保ったまま係数 $h_a$だけを変えることが知られています。すなわち、原子の配置の情報をパラメータの集合 $\vec \Delta$ と表すことにすれば、 $$ \hat H(\vec\Delta)=\sum_a^{N_H}h_a(\vec\Delta)\hat P_a $$ と表すことができます。Config-to-config transfer scenarioでは、ハミルトニアン $\hat H(\vec\Delta)$で得たデータセットを、係数が変化したハミルトニアン $\hat H(\vec\Delta’)$ のpre-trainingに用いる方法を提案します。 一つ目の方法はcoefficient re-weightingです。まず、量子回路 $\vec j$ に対するエネルギーの期待値 $E_N(\vec\Delta,\vec j)$は
$$
\begin{align}
E_N(\vec\Delta,\vec j)
&=\mathrm{Tr}(\hat H(\vec \Delta)U_N(\vec j)\rho_0U_N(\vec j)^\dagger)\\
&=\mathrm{Tr}\bigg(\sum_a^{N_H}h_a(\vec\Delta)\hat P_aU_N(\vec j)\rho_0U_N(\vec j)^\dagger\bigg)\\
&=\sum_a^{N_H}h_a(\vec\Delta)\mathrm{Tr}(\hat P_aU_N(\vec j)\rho_0U_N(\vec j)^\dagger)
\end{align}
$$
と表せます。ここで、 $q_a(\vec j)$を
$$ q_a(\vec j)=\mathrm{Tr}(\hat P_aU_N(\vec j)\rho_0U_N(\vec j)^\dagger) $$
と定義すると、エネルギー期待値は
$$ E_N(\vec\Delta,\vec j)=\sum_a^{N_H}h_a(\vec\Delta)q_a(\vec j) $$
と書けることが分かります。 $q_a(\vec j)$はパラメータ $\vec\Delta$によらない量なので、前もって $\hat H(\vec\Delta)$のtrainingで $q_a(\vec j)$を求めておけば、新しいパラメータ $\vec\Delta’$に対する係数 $h_a(\vec \Delta’)$と結合することで $E_N(\vec\Delta’)$を求めることができます。すなわち、 $\vec\Delta’$に対応する量子測定を実際に行わなくても、間接的にデータセット $\{\vec j,E_N(\vec\Delta’,\vec j)\}$を得ることができます。 もう一つの方法は、GPTの拡張です。従来のGPTはユニタリ演算子の列 $\{j_1,\dots,j_k\}$を入力に取りますが、新たにパラメータ $\vec\Delta$を入力に加えることで、 $\vec\Delta$も含めた学習を行うことができます。このとき、データセットは
$$ \mathcal D=\{\mathcal D_r\}_{r=1}^R,\quad \mathcal D_r=\{\vec\Delta_r, \vec j_{m_r}, E_N(\vec\Delta_r,\vec j_{m_r})\}_{m_r=1}^{M_r} $$
のように用意します。 - Molecule-to-molecule transfer scenario
ハミルトニアンの構造自体が異なる場合、すなわち異なる分子のデータセットを利用する場合です。この場合はモデルに大きな拡張を加える必要があり、課題が多く具体的な方法は考案されていません。
実験
4つの分子(H₂、LiH、BeH₂、N₂)の基底エネルギー探索にGPT-QEを適用し、実際にtrainingとpre-trainingが有効であることを検証します。この実験では実際の量子デバイスは用いず、代わりに古典コンピュータによる量子計算シミュレーションを利用します。
各種設定
ハミルトニアンの設定
分子全体の電子系のハミルトニアン $\hat H$ は、パウリ演算子のテンソル積 $\hat P$ の線形結合で
$$ \hat H(\vec \Delta)=\sum_lh_l(\vec\Delta)\hat P_l $$
と書くことができます。パラメータ $\vec\Delta$ は原子の配置を表現する値であり、例えば原子間の距離が用いられます。原子間距離が異なる同一の分子であれば、ハミルトニアンは係数のみが変化します。なお、使用する量子ビット数や演算子 $\hat P$の種類、係数 $h$ の値を求めるためには具体的な波動関数の形が必要です。この実験ではsto-3gと呼ばれる基底関数で波動関数を近似します。
演算子の設定
演算子プール $\mathcal G$ は、ユニタリ演算子 $\exp(-i\hat Pt)$の集合として構成します。 $\hat P$ はパウリ演算子のテンソル積で、 $t$ は $\pm2^k/160\,(k=1,2,3,4)$のいずれかの値を取る実数です。この演算子は、量子化学計算の代表的な手法であるUCCSD(ユニタリ結合クラスタ単一・二重励起)をもとに構成されています。UCCSDでは、電子の励起を表す演算子 $\hat T$ を用いて、以下の式に基づき初期状態 $\ket{\psi_\mathrm{HF}}$から量子状態 $\ket{\psi_\mathrm{CC}}$を計算します。
$$ \ket{\psi_\mathrm{CC}}=e^{\hat T-\hat T^\dagger}\ket{\psi_\mathrm{HF}} $$
$\ket{\psi_\mathrm{CC}}$が基底状態に近づくように、演算子 $\hat T$ 内のパラメータを最適化することで基底エネルギーを求めます。このユニタリ演算子 $e^{\hat T-\hat T^\dagger}$は、Trotter分解やJordan-Wigner変換によってパウリ演算子のテンソル積 $\hat P$ の線形結合で近似することができます。
$$ e^{\hat T-\hat T^\dagger}\simeq\prod _k \exp(-i\hat P_k t_k) $$
分解後の形 $\exp(-i\hat Pt)$は簡単な量子回路で表せることが分かっており、量子コンピューター上で実際に実行することができます。以下の図6にその一例を示します。

今回の実験では、UCCSDに登場する演算子 $\exp(-i\hat Pt)$を用いてGPT-QEを実行しますが、動作原理自体はUCCSDとは異なることに注意が必要です。UCCSDでは演算子 $\hat T$ の最適化を行う一方、今回の実験ではGPT関数内のパラメータを変更するという違いがあります。
環境
今回の実験では、実際の量子コンピュータは使用せず、代わりに CUDA Quantum ライブラリによる量子計算シミュレーションを行います。計算環境の詳細は以下の通りです。
- 計算機システム:Perlmutter
- 米国のNERSC(国立エネルギー研究科学計算センター)に設置されたスーパーコンピュータ
- GPU:NVIDIA A100
- 量子計算シミュレーター:CUDA Quantum
その他
- TransformerモデルはGPT-2と同じ設定が採用されており、12枚のattention層、12個のattention head、768次元のembedding層からなります。
- 初期状態 $\rho_0$ はHartree-Fock状態に設定します。Hartree-Fock状態はHartree-Fock法により得られる状態であり、精度は低いものの基底状態に近い状態を低コストで求めることができます。Hartre-Fock状態から計算を開始することで、より早くGPT-QEによる基底状態を求められることが期待できます。
- 計算の安定性を上げるため、コスト関数を計算する際はエネルギー期待値 $E_N(\vec j)$ の代わりにオフセットを追加した $E_N(\vec j)+E_\mathrm{offset}$を使用します。$E_\mathrm{offset}$の値は分子ごとに異なり、H₂、LiH、BeH₂、N₂に対しそれぞれ 0, 7, 14, 106 Hartreeとしています(1 Hartree = 27.211 eV)。
training
H₂、LiH、BeH₂、N₂それぞれのハミルトニアンの基底状態探索を、trainingを用いて実行します。詳細な条件は以下の通りです。
- H₂
- 量子ビット数:4
- ステップ数:50
- 1ステップ当たりのサンプル数(バッチサイズ):25
- 量子回路の長さ(トークン数):10
- LiH、BeH₂、N₂
- 量子ビット数:順に、10, 12, 12
- ステップ数:500
- 1ステップ当たりのサンプル数(バッチサイズ):50
- 量子回路の長さ(トークン数):40
- 逆温度βは初期値が5、各ステップごとに0.1増加させる
- 各分子について3回GPT-QEを試行したうち、エネルギーが最小なものを記録
実行結果を図7、図8に示します。二つの図には、横軸に原子間の結合長、縦軸にエネルギーが示されています。GPT-QEによる結果は緑色の点で示されており、黒線で示された厳密解、点線で示されたHartree-Fock状態(初期状態)と比較することができます。図8では、学習を行わずランダムに演算子を選択しただけの場合(benchmark)も示されています。これらの図から読み取れる結果は以下の通りです。
- 全ての分子において、Hartree-Fock状態よりもエネルギーの低い状態の探索に成功した。
- 全ての分子において、trainingはランダムに演算子を選択した場合よりも精度が高く、特にN₂ではその差が顕著である。
- 厳密解との差がchemical accuracy(化学現象を定量的に正しく予測するための、計算上の一つの目標精度:1.6×10 ⁻ ³ Hartree)を超えてしまうことがあった。
なお、本論文中では既存の量子アルゴリズムVQEやUCCSDとの比較は行われていませんでした。


実際に得られた量子回路の一つを図9に示します。これはH₂に対応する量子回路の一つであり、初期状態 $\ket{1100}$を用意するための先頭の演算子 $XX$と、そのあとに続く10トークン分の演算子 $\exp(-i\hat Pt)$から構成されていることが分かります。

pre-training
pre-trainingの手法を、config-to-config transfer scenarioに適用して効果を検証します。ここでは、原子間距離 1.2 Å のN₂におけるデータセットを、1.4 ÅのN₂の系の学習に使うことを目標とします。具体的な手順は以下の通りです。
- あらかじめ 1.2 Åのハミルトニアンに対し500stepの学習を行う
- 各stepで50個の量子回路のサンプリングと $E_N$の測定を行う
- データセットのサイズは500×50=25000個
- データセットから $E_N$が基準値 -107.45 Hartreeより高いデータは捨てる
- 今回、データセットのサイズは約14700に削減された
- データセットを294個のバッチに分割する
- バッチサイズは14700/294=50
- 1.4 Åのハミルトニアンに対し、pre-trainingなしのtraining(500step)とpre-trainingありのtraining(500step)を行い、結果を比較する
- それぞれ10回実験を行う
- 10回の実験における、step $s$ での $E_N$の最小値を $E_\mathrm{min}(s)$、平均値を $E_\mathrm{avg}(s)$として記録する
実験結果を図10に示します。この図から、
- $E_N$ の最小値 $E_\mathrm{min}(s)$はpre-trainingありの方が低くなった
- 平均値 $E_\mathrm{ave}(s)$は変化が見られなかった
ことが分かります。この結果は、事前学習によってより広い領域の探索が可能になることを示唆しています。

まとめ
この論文では、生成モデルを用いて目的の量子回路を得る新たな量子アルゴリズム GQE が提案されました。特に、Transformerを用いたGPT-QEアルゴリズムの具体的な実行方法として、trainingスキームとpre-trainingスキームの二つが考案されました。これらの戦略により、GPT-QEは既存の量子アルゴリズムVQEに比べて量子デバイスの実行回数を削減できることが期待されます。GPUを用いた量子計算シミュレーションでは、いくつかの分子の基底状態探索問題において、trainingとpre-trainingの双方が有効性を発揮しました。
GPT-QEの今後の展望として、まずは実際の量子デバイス上でその性能を検証することが不可欠です。また、より大きな分子の系で実験を行い、最適化の挙動を評価することも必要です。さらなる発展の方向性として、ADAPT-VQEをはじめとする他の量子アルゴリズムとの統合や、古典モデル自体の改良も考えられます。あるいは、GQEの枠組みを基底状態以外の問題へ拡張していくことも期待されます。
あとがき
これまで人力で設計されていた量子回路を、深層学習を用いて生成することに成功した点が画期的だと感じました。論文中の検証では、GPT-QEによる基底探索がHartree-Fock状態やランダムな量子回路よりも高い精度を示すことが示されていましたが、VQEアルゴリズムに対しても優位性があるのか気になりました。また、異なるハミルトニアン間でのデータセットのやり取りは本論文中でも具体的な方法が考案されておらず、GPT-QEをより汎用的な手法に発展させるために解決すべき課題だと感じました。
Appendix
Appendixでは、本文中に登場した量子化学計算の用語や概念について説明します。本章での解説は、量子化学計算のレビュー論文 [2] を参考にしています。
ハミルトニアンがパウリ演算子で表せる理由
本文において、分子中における電子のハミルトニアンが、パウリ演算子のテンソル積 $\hat P$を用いて
$$ \hat H(\vec \Delta)=\sum_lh_l(\vec\Delta)\hat P_l $$
と表せることを認めました。本節では、この理由を解説します。
第二量子化
第二量子化とは、分子内の個々の電子を追跡するのではなく、どの軌道に電子が何個存在するかを表現することで、系の状態を記述する考え方です。電子は本来区別できない粒子なので、多体問題について考える際にはこの第二量子化が不可欠です。
第二量子化を行うと、分子中における電子のハミルトニアンは、生成消滅演算子 $a^\dagger,a$を用いて
$$ \hat H=\sum_{p,q}h_{pq}a_p^\dagger a_q+\frac{1}{2}\sum_{p,q,r,s}h_{pqrs}a_p^\dagger a_q^\dagger a_ra_s $$
と表すことができます。この式は2つの部分から構成されています。
まず、第一項
$$ \sum_{p,q}h_{pq}a_p^\dagger a_q $$
は一電子の生成と消滅を表します。 $a^\dagger_p$は生成演算子と呼ばれる演算子であり、軌道 $p$ に電子を一つ追加することを表します。一方 $a_q$ は消滅演算子と呼ばれる演算子であり、軌道 $q$から電子を一つ削除することを表します。係数の $h_{pq}$ は一電子積分と呼ばれ、次式で定義されます:
$$
\begin{align}
h_{pq}&=\int d\mathbf{r}\phi_p^*(\mathbf{r})\hat h\phi_q(\mathbf{r})\\
\hat h&=-\frac{\nabla^2}{2}-\sum_I\frac{Z_I}{|{\mathbf{r}-\mathbf{R}_I}|}
\end{align}
$$
$\phi_p(\bm x)$は軌道 $p$ の波動関数であり、演算子 $\hat h$ は他の電子による影響を無視したときの一電子のハミルトニアンです。 $Z_I,\mathbf{R}_I$ はそれぞれ $I$ 番目の原子核の電荷と位置を表します。一電子積分は、電子が軌道 $q$から軌道 $p$に遷移するときのエネルギー変化とみなすことができます。
次に、第二項
$$ \frac{1}{2}\sum_{p,q,r,s}h_{pqrs}a_p^\dagger a_q^\dagger a_ra_s $$
は二電子の生成、消滅を表します。係数 $h_{pqrs}$は二電子積分と呼ばれ、次式で定義されます:
$$ h_{pqrs}=\int d\mathbf{r}_1d\mathbf{r}_2\frac{\phi_p^*(\mathbf{r}_1)\phi_q^*(\mathbf{r}_2)\phi_r(\mathbf{r}_2)\phi_s(\mathbf{r}_1)}{|\mathbf{r}_1-\mathbf{r}_2|} $$
二電子積分は、2つの電子が軌道 $s,r$ から軌道 $p,q$に同時に遷移するときのエネルギー変化と見なすことができます。
Jordan-Wigner 変換
Jordan-Wigner変換は、生成消滅演算子 $a^\dagger,a$をパウリ演算子 $I,X,Y,Z$で置き換える変換です。この操作により、この軌道に電子が存在するかしないかの二状態を、量子ビットの $|0\rangle,|1\rangle$に置き換えることができます。
パウリ演算子はそれぞれ次式で定義されます:
$$ I=\left(\begin{array}{rr}1&0\\0&1\end{array}\right),\ X=\left(\begin{array}{rr}0&1\\1&0\end{array}\right), \ Y=\left(\begin{array}{rr}0&-i\\i&0\end{array}\right),\ Z=\left(\begin{array}{rr}1&0\\0&-1\end{array}\right) $$
生成消滅演算子とパウリ演算子の間に次の対応関係を定めます。この変換は、フェルミオンの生成消滅演算子の交換関係を満たします。
$$
\begin{align}
a_p&=\Bigg(\bigotimes_{t=1}^{p-1}Z_t\Bigg)\otimes(X_p+iY_p)\\ a_p^\dagger&=\Bigg(\bigotimes_{t=1}^{p-1}Z_t\Bigg)\otimes(X_p-iY_p)
\end{align}
$$
これをハミルトニアンに代入することで、パウリ演算子で表されたハミルトニアンを得ることができます。各項は、 $p<q<r<s$ としたとき
$$
\begin{align}
h_{pq}a_p^\dagger a_q
&=h_{pq}\Bigg\{\Bigg(\bigotimes_{t=1}^{p-1}Z_t\Bigg)\otimes(X_p-iY_p)\Bigg\}\Bigg\{\Bigg(\bigotimes_{t=1}^{q-1}Z_t\Bigg)\otimes(X_q+iY_q) \Bigg\}\\
&=h_{pq}\Bigg(\bigotimes_{t=1}^{p-1}I\Bigg)\otimes(X_p-iY_p)Z_p\otimes\Bigg(\bigotimes_{t=p+1}^{q-1}Z_t\Bigg)\otimes(X_q+iY_q)
\end{align}
$$
$$
\begin{align}
h_{pqrs}a_p^\dagger a_q^\dagger a_r a_s
&=h_{pqrs}\Bigg\{\Bigg(\bigotimes_{t=1}^{p-1}Z_t\Bigg)\otimes(X_p-iY_p)\Bigg\}\Bigg\{\Bigg(\bigotimes_{t=1}^{q-1}Z_t\Bigg)\otimes(X_q-iY_q)\Bigg\}
\Bigg\{\Bigg(\bigotimes_{t=1}^{r-1}Z_t\Bigg)\otimes(X_r+iY_r)\Bigg\}\Bigg\{\Bigg(\bigotimes_{t=1}^{s-1}Z_t\Bigg)\otimes(X_s+iY_s)\Bigg\}\\
&=\cdots
\end{align}
$$
となります。パウリ演算子のテンソル積を $\hat P$ と表すことにすれば、ハミルトニアンは
$$ \hat H=\sum_l h_l\hat P_l $$
と書けることがわかります。また、原子間距離を変えたとき、波動関数の変更により一電子積分 $h_{pq}$と二電子積分 $h_{pqrs}$の値は変化しますが、軌道の数自体は変わりません。したがって、ハミルトニアンは係数のみが原子間距離に依存する形
$$ \hat H(\vec \Delta)=\sum_lh_l(\vec\Delta)\hat P_l $$
で表せることがわかります。
ここでは最も基本的な変換であるJordan-Wigner変換を解説しましたが、実際にはより効率化されたBravyi-Kitaev変換なども用いられます [3]。
UCCSDについて
基底状態を近似的に求める代表的な手法として、古典計算のCC(Coupled Cluster/結合クラスター法)と量子計算のUCC(Unitary Coupled Cluster/ユニタリ結合クラスター法)を紹介します。ここでは [4] の記述を参考にしています。
CC・CCSD
CC(Coupled Cluster/結合クラスター法)は、分子の電子状態を計算するための手法の一つです。Hartree-Fock法などにより求めた単純な近似解を、電子相関の効果を取り入れたより厳密な解に近づけるために使われます。
まず、電子相関の効果を取り入れるためにクラスター演算子 $T$ を以下で定義します:
$$
\begin{gather}
\hat T=\sum_i \hat T_i\\ \hat T_1=\sum_{i\in\mathrm{非占有},\alpha,\in\mathrm{占有}}t_{i\alpha}a_i^\dagger a_\alpha\\ \hat T_2=\sum_{i,j\in\mathrm{非占有},\alpha,\beta\in\mathrm{占有}}t_{ij\alpha\beta}a_i^\dagger a_j^\dagger a_\alpha a_\beta\\ \vdots
\end{gather}$$
係数 $t_{i\alpha},t_{ij\alpha\beta},\dots$ は未知の変数です。演算子 $\hat T_1,\hat T_2,\hat T_3\dots$は順に一電子励起、二電子励起、三電子励起を表しています。CCによる量子状態 $|\psi_\text{CC}\rangle$は、クラスター演算子 $\hat T$とHF法による近似解 $|\psi_\text{HF}\rangle$を用いて次のように定義します:
$$ |\psi_{\mathrm C\mathrm C}\rangle=e^{\hat T}|\psi_{\mathrm{}\mathrm H\mathrm F}\rangle $$
このとき、係数 $t_{i\alpha},t_{ij\alpha\beta},\dots$をシュレーディンガー方程式から得られる非線形方程式
$$
\begin{align}
\langle\psi_\text{CC}|\hat H|\psi_\text{CC}\rangle &= \langle\psi_{\mathrm H\mathrm F}|e^{-\hat T}\hat He^{\hat T}|\psi_{\mathrm H\mathrm F}\rangle=E\\
\langle\mu|e^{-\hat T}\hat H|\psi_\text{CC}\rangle &= \langle\mu|e^{-\hat T}\hat He^{\hat T}|\psi_{\mathrm H\mathrm F}\rangle=0 (|\mu\rangleは励起状態)
\end{align}
$$
の解として定めることで、 $|\psi_{CC}\rangle$は基底状態となります。CCを二電子励起までで打ち切ったものはCCSD(Coupled Cluster Singles and Doubles/結合クラスター法 一・二電子励起近似)と呼ばれ、精度の高さと計算のしやすさから最も標準的なCCとして広く使われています。
UCC・UCCSD
UCC(Unitary Coupled Cluster/ユニタリ結合クラスター法)は、CCを量子コンピューター上で行える形に改良したものです。CCSDと同様に、UCCを二電子励起までで打ち切ったものをUCCSDと呼びます。従来のCCSDでは、演算子 $e^{\hat T}$がユニタリ演算子でないため、量子ゲート操作として取り扱うことができません。UCCSDでは、次のように改良します:
$$ |\psi_{\mathrm U\mathrm C\mathrm C}\rangle=e^{\hat T-\hat T^\dagger}|\psi_{\mathrm{}\mathrm H\mathrm F}\rangle $$
$\hat T$ を $\hat T-\hat T^\dagger$に変更したことで演算子がユニタリになり、量子コンピューター上で実行可能な操作になります。CCSDでは非線形方程式を解くことで係数 $t_{i\alpha},t_{ij\alpha\beta}$を求めましたが、UCCSDではVQEにより基底エネルギーを求めます。すなわち、変分原理
$$ \braket {\hat H}=\langle\psi_{\mathrm U\mathrm C\mathrm C}|\hat H|\psi_{\mathrm U\mathrm C\mathrm C}\rangle=\langle\psi_{\mathrm H\mathrm F}|e^{\hat T^\dagger-\hat T}\hat He^{\hat T-\hat T^\dagger}|\psi_{\mathrm H\mathrm F}\rangle\ge E_0 $$
に基づき $t_{i\alpha},t_{ij\alpha\beta}$を最適化することで、エネルギー期待値 $\braket{\hat H}$を真の基底エネルギー $E_0$に近づけます。
ユニタリ演算子は、単純な量子ゲートの組み合わせに分解できることが知られています。したがって、UCCSDで用いるユニタリ演算子 $e^{\hat T-\hat T^\dagger}$も量子回路上に実装することができます。例えば、本論文中の水素分子の例では、演算子 $e^{T-T^\dagger}$が次のような量子回路で表されています。

基底関数
基底関数は、分子軌道の波動関数を近似的に表現するために用いられる関数の組です。多くの場合、与えられた方程式を厳密に解いて分子軌道の波動関数を求めることは困難です。そこで、目的の分子軌道の波動関数 $\phi$を、扱いやすい基底関数の組 $\varphi_1,\varphi_2,\dots,\varphi_N$の線形結合
$$ \phi=\sum_ic_i\varphi_i $$
で表せると仮定し、係数 $c_i$を決定することで分子軌道の波動関数 $\phi$を求めます。代表的な基底関数として、Slater型関数、Gauss型関数、sto-3gなどがあります。
Slater型関数
Slater型関数は $e^{-|r|}$の形をした関数です。水素原子の1s軌道に厳密に一致し、分子軌道を正確に近似することができますが、計算コストが高いです。
Gauss型関数
Gauss型関数は $e^{-r^2}$の形をした関数です。Slater型に比べ正確性は落ちますが、計算コストが低い点で優れています。
sto-3g
sto-3gは、Gauss型関数3つの線形和によってSlater型関数を近似する方法です。計算コストを抑えたまま、近似の正確性を上げることができます。本論文中の実験では、sto-3gが用いられました。
参考文献
[1] Kouhei Nakaji, et al., “The generative quantum eigensolver (GQE) and its application for ground state search”, https://doi.org/10.48550/arXiv.2401.09253
[2] Sam McArdle, et al., “Quantum computational chemistry”, https://doi.org/10.48550/arXiv.1808.10402
[3] Jacob T. Seeley, et al., ”The Bravyi-Kitaev transformation for quantum computation of electronic structure”, https://doi.org/10.48550/arXiv.1208.5986
[4] Jonathan Romero, et al., “Strategies for quantum computing molecular energies using the unitary coupled cluster ansatz”, https://doi.org/10.48550/arXiv.1701.02691
本記事の担当者
東京科学大学 理学院 物理学系 学士課程