1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Practical numerical integration on NISQ devices のCanonical QAE (古典的なQAE)

Last updated at Posted at 2021-02-13

Practical numerical integration on NISQ devices

以下の論文
Practical numerical integration on NISQ devices
を確認してみます。
論文中ではCanonical QAE (古典的なQAE)とML-QAEが比較されていますが、今回はCanonical QAEを扱います。

数値積分の量子アルゴリズム

ここで紹介する「積分の量子状態埋め込み」の方法は、あくまで一例(上記論文の方法)で、他にもいろいろな方法があります。
ただ、積分値を振幅に埋め込んで、振幅推定で出すという流れは変わりません。

さて、単位区間$[0,1]$上の1変数関数$f(x)$の積分を求めたいとします。

積分とは$x$軸と$f(x)$で囲まれる部分(緑色部分)の面積に等しいです。

いま、緑色部分を含む1辺1の正方形上に、ランダムに点を打ちます。例えば、8個打ちます。

そして、緑色部分に入ったものを"hit"とみなします。この例では6個の点が"hit"しました。

積分とは$x$軸と$f(x)$で囲まれる部分(緑色部分)の面積に等しい

という事実から、ランダムに打った点が"hit"する割合は積分値に一致するはずです。
積分値を$a$、打った点の数を$N$,hitした点の数を$N_{hit}$とすると、

と計算できます。

この古典的なアイデアをベースに、$N_{hit}/N$を効率的に計算する量子アルゴリズムを考えます。
補助量子ビットを1つ持ってきて、ヒルベルト空間を2つに割ります。

そして、点がhitであったかどうかに応じて、点を”仕分け”していきます。ここで点を量子状態に対応させています。1

ここで、各点に2進数で名前をつけました。点は全部で8個あったので、ラベルは3量子ビットで足りることになります。

仕分けされた量子状態は、

image.png

このように書けます。

ここで以下のようなベクトルを定義します。(それぞれ、補助量子ビットが 0 , 1 であるベクトルを意味しています)

image.png

すると、仕分けされた量子状態$|\psi \rangle$は、これらの和であって、

image.png

このように書けます。
$|\psi_{1} \rangle$の振幅が、求めたい積分値$a$(の平方根$\sqrt{a}$)になっていることがわかります。
この振幅をQAEアルゴリズムで推定すると、古典的な方法の平方根のオラクルコール回数2で計算が終わります。(量子加速)

具体例

$N=4$として、$N_{hit}=1$であったとします。先程と同様に、

image.png

となります。 $a=1/4=0.25$です。
ここで$\sqrt{a}=\sin\theta$とおいて、$\theta$の推定に帰着させることが多いです。
これは、QAEの内部で動くQPEアルゴリズムが”位相を推定する”アルゴリズムであり、このほうが見やすいからです。

QAEを用いた$a$の推定については、以下の記事にまとめています。

Qiskit.aquaでQAE3分間クッキング

上記記事の通りにやると、$a = 0.1464466 ≒ 0.25$ という答えが出てきます。ある精度での推定に成功しています。
推定精度を上げるには、QAE内部のQPEで使う補助量子ビット数を増やせばよいです。(上記は3量子ビット使った場合の結果です)
例えば補助量子ビットを7個ぐらい使うと、0.24 ぐらいにはなるようでした。
補助量子ビットを節約したい場合は、Iterative QAE などの方法があります。
こちらもqiskit.aquaに入っていますので、同様の手順で試せます。3

結論

論文を読んで、量子回路の実装から動作確認まで出来た。

  1. もちろん、この操作は量子並列的に出来ないと意味がないです。

  2. この例だとオラクルとは量子並列的に仕分けを行う操作のことです。

  3. ただし、出力結果が$a$ではなく$\sqrt{a}$になっているようです。謎。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?