らんだむな記憶

blogというものを体験してみようか!的なー

Qiskit (51) —量子数値積分

副読本を読み進めると、

モンテカルロ法では, 式 (2) の $p(x)$ を確率密度関数とみなすことで, 式 (2) を統計的期待値と見なして計算を行う.

というのが出てくる。なるほど・・・表面的にモンテカルロ法を検索した時には関係なさそうと思ったけど、やはりモンテカルロ的な考えに基づく分解であったと。そう考えると、$\rho$ や $p$ が出てくるのも納得である。連続的および離散的な確率密度関数を意識ていると。

副読本の記載は [1805.00109] Quantum computational finance: Monte Carlo pricing of financial derivatives に従うとのこと。

あとは書籍をざざっと読んでいく。1 次元の時の解説は副読本の「3.2 Brassard らの量子振幅推定法を用いた数値積分」と同様で、

$$
\begin{align*}
S(f) = \sum_{x=0}^{2^n-1} p(x)f(x)
\end{align*}
$$

を考えるところから始まる。書籍と副読本とでは解説の順序は逆であるが、(分かりやすさのため、$n$ 量子ビットで表現された $\ket{x}$ を $\ket{x}_n$ と書いて)この $p$ と $f$ を用いて、

$$
\begin{align*}
\mathcal{P} \ket{0}^{\otimes n} = \sum_{x=0}^{2^n-1} \sqrt{p(x)} \ket{x}_n
\end{align*}
$$

$$
\begin{align*}
\mathcal{R} \ket{0}^{\otimes n} \ket{x}_n = \ket{x}_n \left(\sqrt{f(x)} \ket{0} + \sqrt{1 - f(x)} \ket{1}\right)
\end{align*}
$$

を定める。次に $\mathcal{A} = \mathcal{R}(\mathcal{P} \otimes I_1)$ として、

$$
\begin{align*}
\mathcal{A} \ket{0}^{\otimes n+1} = \sum_{x=0}^{2^n-1} \sqrt{p(x)} \ket{x}_n \left(\sqrt{f(x)} \ket{0} + \sqrt{1 - f(x)} \ket{1}\right)
\end{align*}
$$

とする。$\ket{\omega}$ と $\ket{\omega^\perp}$ をうまくとって、

$$
\begin{align*}
\mathcal{A} \ket{0}^{\otimes n+1} = \sqrt{1 - S(f)} \ket{\omega^\perp} + \sqrt{S(f)} \ket{\omega}
\end{align*}
$$

と式を変形する。ここで、$\ket{\omega}$ を 1 つとった時に、それに直交しさえすれば、何であっても規格化して $\ket{\omega^\perp}$ と名付けてしまって量子振幅推定の流れに持ち込めることに注意したい。

書籍の量子振幅推定ではこの $S(f)$ の部分を $a$ と名付けていたことを思い出しつつ、$\sqrt{S(f)} = \sin \theta$ と置く。よって、量子振幅推定で $\theta$ の近似値を求めて、積分の近似値として $S(f) = \sin^2 \theta$ が求まる、という話である。

実装上の課題となるのは、途中で定義するゲート $\mathcal{P}$ と $\mathcal{R}$ がちゃんと具現化できなければならないことだろう。書籍の付属コードでは計算しやすい関数 $g(x) = \sin^2 x$ が選ばれているが、実際のケースでは大変そうだ。

書籍の内容は副読本の p.5 までで、副読本では制御ゲート $C\mathcal{Q}$ の適用によるノイズを
考慮した話が続く。

付属のコードを実行すると状態 $\ket{001}$ が一番良い頻度で観測されるもののうちの 1 つになる。$x \approx \frac{M}{\pi} \theta = \frac{2^3}{\pi} \theta$ であり、$\int_0^1 \sin^2 x dx \sim S(f) = \sin^2 \theta$ であったので、$\sin^2 \frac{\pi}{2^3} = 0.14$ という積分の近似値が得られたことになる。
理論値は

$$
\begin{align*}
\int_0^1 \sin^2 x dx = \int_0^1 \frac{1 - \cos 2x}{2} dx = \frac{1}{2} - \frac{\sin 2}{4} = 0.27268
\end{align*}
$$

なので、あまり近くはないのだが、$m=3$ なので仕方がなく、他の $\ket{x}$ のケース、例えば $\ket{000}$ ($\sin^2 0 = 0$) や $\ket{010}$ ($\sin^2 \frac{2\pi}{2^3} = 0.5$) の場合に比べると近い値になっているということである。

現実に積分を計算したい時には大変そうだな・・・と感じるが、教材としては p.187 まで完了とする。