量子コンピューターでの励起状態計算手法を紹介

# はじめに
みなさんはじめまして、テラスカイの須郷です。
こちらは[量子コンピュータ Advent Calendar 2018](https://qiita.com/advent-calendar/2018/quantum)の14日目の記事になります。
浅学のため、間違っている点や理解不足な点があるかもしれませんがご了承ください。

# 動機
量子コンピューターでの量子化学について情報収集していると、VQE、PEA(QPE)での基底状態計算の情報やチュートリアルはあるが、励起状態計算に関する情報はまだそれほど多くないため、調べてみました。
$$
\def\bra#1{\mathinner{\left\langle{#1}\right|}}
\def\ket#1{\mathinner{\left|{#1}\right\rangle}}
\def\braket#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}}
$$
# 本記事の内容
量子コンピューターでの量子化学についてまとめられたこちら[^1]のテキストのV章C節で紹介されている4つの励起状態計算方法のうち、VQD(Variatonal Quantum Deflation)法を簡単に紹介します。上記テキスト内ではswap-test法という名前で紹介されていますが、元の論文[^2]ではVQDと呼ばれているので以下VQDと呼びます。
今回この手法を選んだのは、キーとなるアイデアが理解しやすく面白かったこと、紹介されている中では最新の手法だったこと、が理由です。また、色々と調べているうちにSSVQE法という新たな手法も発見したので、こちらについてもより簡単な概略を書いています。

# VQDのフローのまとめ
はじめに、VQDのフローを簡単にまとめておきます。
この手法は次の流れで励起状態を順次求めて行きます。

1. 系のハミルトニアンに対してVQEで基底状態を求める。
2. Deflationと呼ばれる手法(後述)で、元のハミルトニアンに1.で求めた基底状態の情報を加える。
3. 2.で改良したハミルトニアンに対してVQEで第一励起状態を求める(求まる理由は後述)。
4. さらにDeflationで3.で求めた第一励起状態の情報をハミルトニアンに加え、VQEによって第二励起状態を求める。
5. 以下同様にDeflationで順次改良したハミルトニアンに対してVQEを行い、第二、第三・・・第k励起状態を求める。

# VQDを少し詳しく
### まずVQEをおさらい
ハミルトニアンを$H$、変分パラメーター$\vec{\lambda}$で表した波動関数を$\ket{\psi(\vec{\lambda})}$、基底状態のエネルギーを$E_0$とすると、変分原理から$\bra{\psi(\vec{\lambda})}H\ket{\psi(\vec{\lambda})} \geq E_0$となります。VQEでは左辺の期待値を量子コンピューターを用いて計算し、結果に応じて古典的に変分パラメーター$\vec{\lambda}$を更新することを繰り返し、基底状態の波動関数を求めます。

### Deflation
VQDのキーとなるアイデアは一般の固有値問題で用いられるDeflationという手法を用いたところにあります。この手法では、ハミルトニアンをすでに求めた固有状態と直交する形に変形することで、解の空間を狭くするというのがポイントになります。固有状態を固有値の小さい順に並べ、i番目の固有状態を$\ket{\psi(\vec{\lambda_i})}$とし、k番目の固有状態を求めるためのハミルトニアンを$H_k$とすると、
$\displaystyle H_k = H + \sum_{i=0}^{k-1}\beta_i\ket{\psi(\vec{\lambda_i})}\bra{\psi(\vec{\lambda_i})}$
がk番目の固有状態を求めるための新たなハミルトニアンになります。
k番目のハミルトニアンを構成するにはk-1番目までの固有状態が全て求まっている必要があります。言い換えると、第k励起状態を求めるためには基底状態(k=0)と第1から第k-1励起状態までの情報が必要となります。この$H_k$から$\ket{\psi(\vec{\lambda_k})}$を求めるには、
$\displaystyle \bra{\psi(\vec{\lambda_k})}H_k\ket{\psi(\vec{\lambda_k})} = \bra{\psi(\vec{\lambda_k})}H\ket{\psi(\vec{\lambda_k})} + \sum_{i=0}^{k-1}\beta_i \left|\braket{\psi(\vec{\lambda_k})}{\psi(\vec{\lambda_i})}\right|^2 \ge E_k$

に対してVQEを行えば良いです。ハミルトニアンを変化させたことで基底状態を求める時との違いとして、2項目の和が出てきています。この項はk番目の固有状態が0からk-1番目の固有状態と直交していれば0となるはずなので、$\ket{\psi(\vec{\lambda_k})}$がこれまでに得られていない新たな固有状態であることを保証する制約項と見ることができます。$\beta_i$のウェイトを適切に設定し(今回は触れません)、この制約条件を満たした上で、1項目が最小になるように変分パラメーターを求めることで、残るk、k+1、・・・番目の固有状態の中で最もエネルギーの低いk番目の固有状態が得られます。

### swap test
Deflationによってハミルトニアンを変化させたことで新たに現れた和の各項には二つの固有状態の内積$\braket{\psi(\vec{\lambda_k})}{\psi(\vec{\lambda_i})}$が含まれています。この値を求めるためにswap testと呼ばれるアルゴリズムを用います。swap testは二つの量子状態$\ket{\psi}\ket{\phi}$の内積$\braket{\psi}{\phi}$を求めるための量子アルゴリズムです。swap testでは一つの測定用qubitと量子状態$\ket{\psi}, \ket{\phi}$を用意し、そこに簡単なゲート操作を行ったのち、測定用qubitを観測したときに、その結果が0となる確率が$\frac{1+\braket{\psi}{\phi}}{2}$となることを利用します。内積の値が測定値として直接得られるわけではなく、0を得る確率を通して間接的に求まるだけなのがポイントで、精度$\epsilon$でこの値を求めるためには$\mathcal{O}\left(\frac{1}{\epsilon^2}\right)$程度の測定回数を必要とします(この点はネックだと思われます)。回路も短い簡単なアルゴリズムですが、こちら[^3]にわかりやすい解説があるので、詳細はそちらをご覧いただくか、またはこちらの論文[^4]をご覧ください。

### 他の内積計算方法について
VQDの論文ではAppendixとして、destructive swap test法と、PEAを用いた内積計算方法も紹介されています。前者は回路のdepthが変わらないのに対してqubit数が倍になってしまいます。後者は測定回数が$\mathcal{O}\left(\frac{1}{\epsilon}\right)$に抑えられますが、そもそもPEAなのでNISQデバイスでは使いづらいと思われます。

# 強み、他の手法との比較
VQDの論文[^2]にはこの手法の強みや他の手法との違いが書かれています。まず、VQDはVQEを用いているためエラーにも強く、NISQ向けのアルゴリズムと言えます。ハミルトニアンを変化させていますが、通常の基底状態を求める際のVQEと比較して必要なqubit数は同等程度、回路のDepthは多くとも2倍程度で済むそうです。また、こちら[^1]で紹介されている残りの3つの手法のうち、folded spectrum法とWAVES法との違いとして、縮退した固有状態もsystematicallyに求めることができる点も述べられています。これら2つの手法は特定のエネルギーを目がけて励起状態を探索するため、縮退した固有状態を区別出来ない(そのうちのどれかがランダムに得られるのみ?)のに対して、VQDは直交する固有状態を順に見つけていくため、縮退していても順に見つけることができる(縮退した状態は一般に直交していませんが、適切に線形結合をとると直交する固有状態が得られるので、その線形結合をとった状態が見つかる？)、ということだと理解しています。

# 関連研究
この記事のために論文を調べていると、このVQD論文が引用されているより新しい研究として、こちら[^5]の論文を見つけました。こちらでSSVQEとweighted SSVQEという手法が提案されているので要点をまとめてみます。これらの手法は互いに直交する固有状態を探索するというアイディアはVQDと同じである一方、精度を出すにはその分繰り返し計算が必要だったswap testを用いていない点、$\beta_i$のような複数のハイパーパラメーターを設定しなくてよい点、二回(weightedの方は一回)のコスト関数の最適化で任意のk番目の励起状態または0からk番目までの全ての励起状態が同時に求められる点、が強みのようです。VQDでは低い準位からひとつひとつ求めていく必要があったことを考えると、とても効率が良さそうで、かなり期待できる手法のような気がします(最初からこちらで記事を書けばよかったのではと言われそうですがその通りです)。イジングモデルと水素化ヘリウムイオンのハミルトニアンに対する各手法の数値実験の結果も記載されています。これを見ると、狙った励起状態を精度よく得ることができているようです。

# 最後に
励起状態計算手法のうちの一つであるVQD法(+SSVQE法)を紹介しました。手法の概要のみにとどめ、実験結果等の詳細は省いていますが、参考になれば幸いです。

[^1]: https://arxiv.org/abs/1808.10402
[^2]: https://arxiv.org/abs/1805.08138
[^3]: https://whyitsso.net/physics/quantum_mechanics/swaptest.html
[^4]: https://arxiv.org/abs/quant-ph/0102001
[^5]: https://arxiv.org/abs/1810.09434