量子コンピュータ
量子ゲート

【備忘録】時間発展シミュレーションとハミルトニアン計算


はじめに

前回簡単に時間発展シミュレーションをみてみました。

「【備忘録】量子時間発展シミュレーション」

参考:https://qiita.com/YuichiroMinato/items/bfac7585969df48a35c4

下記のような時間発展のユニタリー演算子を初期状態に適用することで実行できます。

$$\mid \psi (t)\rangle = exp(-i/ \hbar H(t-t_0))\mid \psi(t_0)\rangle$$


ハミルトニアン

expの肩にのっているのはハミルトニアンと呼ばれる演算子です。一般的にはエルミート行列ですが、ユニタリ演算子ではありません。ハミルトニアンはXYZのパウリ演算子で構成されます。あまり参考資料がなかったので、みてみたいと思います。

上記の式は、こう書くとすると、$\hbar=1$として、

$$\mid \psi\rangle = e^{-iH}\mid \psi_0\rangle$$

これをどう解くかです。eの肩にHが乗っかっていてHはパウリ演算子の積と和で構成されています。ハミルトニアンはエルミート行列なので、実数の固有値を持ち、

$$\lambda = e^{-i\alpha}$$

の形にできそうです。


量子回路への落とし込み

量子回路へは指数の肩のハミルトニアンを量子回路に落とせば良いようです。手順としては、

1、指数の肩のハミルトニアンをユニタリ行列の積に分解する

2、対角化する

3、対角化するとそのまま累乗できる。


指数の肩のハミルトニアンをユニタリ行列の積に分解する

こちらは簡単です。例えば

H = Z_0

のとき、

e^{iH} = e^{iZ_0}

これは、

H = [[1, 0],

[0,-1]]

と、そのまま直せます。これは、行列指数関数によって、対角行列が下記のように直せることによります。

スクリーンショット 2019-03-06 19.25.22.png

参考:https://ja.wikipedia.org/wiki/%E8%A1%8C%E5%88%97%E6%8C%87%E6%95%B0%E9%96%A2%E6%95%B0


対角行列でない時

Xのようなパウリ演算子は対角行列ではないので、対角化する。

基本的に量子計算において対角行列はZ演算子なので、すべてXとYはZに直せば上記のように行列指数関数によって指数の肩から下ろすことができる。

$X$を対角化するには、

$HXH$とすることで$Z$にできる。

また、$Y$を対角化するには、

$R_x(\pi/2)YR_x(-\pi/2)$

とすることで$Z$にできる。


対角行列の性質を使って、

対角化されたXとYは対角行列の性質が使える。

スクリーンショット 2019-03-06 19.30.54.png

これにより、

$$e^X = e^{HHXHH} = He^{HXH}H = He^ZH = HZH$$

となる。また、

$$e^Y = e^{R_x(\pi/2)R_x(-\pi/2)YR_x(\pi/2)R_x(-\pi/2)} = R_x(\pi/2)e^{R_x(-\pi/2)YR_x(\pi/2)}R_x(-\pi/2) = R_x(\pi/2)e^ZR_x(-\pi/2) = R_x(\pi/2)ZR_x(-\pi/2)$$

となる(回転方向とかちょっと自信ないです)。これらを使って時間発展を量子回路に落とし込むことができる。


ハミルトニアンの分解

分解は鈴木トロッター分解を使います。

$$H= 1.2Z_0X_1 + 5X_1Y_2$$

などのとき、

$$e^{iH} = e^{i(1.2Z_0X_1 + 5X_1Y_2)} = e^{i(1.2Z_0X_1)}e^{i(5X_1Y_2)}$$

このあたりもちょっと自信ないですが、だいたいこんな感じです。


まとめ

どうやらこれで量子状態をつくると、あとは量子フーリエ変換とかで位相を取り出す必要がありますが、最近は変分原理が流行っていますので、対角化したZをRzなどにして角度を導入して量子変分原理で固有値を求めるようです。それ次にみてみたいと思います。