らんだむな記憶

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

Qiskit (50) —量子数値積分

量子数値積分に突入。textbook には見当たらないネタのように見える。多少検索すると論文として [2004.05739] Practical numerical integration on NISQ devices が見つかるが、これはピッタリとは当てはまらない。書籍の参考文献にある 量子コンピュータを用いた高速数値積分 が一番近い参考文献ということのようなのでこれを副読本とする。両論文の記載にあるように、前回の量子振幅推定の考えを使うみたいで、このための準備だったと分かる。

$\R^d$ 上の実数値関数 $g$ について考えるが、暗黙の設定として $-\infty < \inf_{x} g(x) \leq \sup_{x} g(x) < \infty$ であると思うので、そう仮定する。
並行移動やスケール、そして底上げ($g(ax + b) - \min_{x} g(x)$)を施して、適当な定数をかける($c(g(ax + b) - \min_{x} g(x))$)ことで、$\tilde{g}: [0,1]^d \to [0,1]$ を作ることができる。この $\tilde{g}$ を改めて $g$ と書くことにすると、

$$
\begin{align*}
I(g) = \int_{[0,1]^d} g(x) dx
\tag{1}
\end{align*}
$$

は $0 \leq I(g) \leq 1$ を満たしている。
この $g$ を 2 つの関数 $\rho$ と $h$ に分解する*1:

  • $h: [0,1]^d \to [0,1]$
  • $\rho: [0,1]^d \to \R_{\geq 0}$(書籍ではこういう書き方ではないのだが、副読本を読み進めると確率密度関数の扱いなのでこうしておく)
  • $\int_{[0,1]^d} \rho(x) dx = 1$
  • $g(x) = \rho(x) h(x)$

そしてこの $\rho$ と $h$ を用いて積分

$$
\begin{align*}
I(h) = \int_{[0,1]^d} \rho(x) h(x) dx
\tag{2}
\end{align*}
$$

と書き直す。

これを数値計算で近似すると言うと、素朴には区分求積法:

$$
\begin{align*}
\int_0^1 a(x) dx \approx \frac{1}{N} \sum_{j=0}^{N-1} a(j/N)
\end{align*}
$$

が思い浮かぶが、もうちょっと細かい操作になっているようだ。

とりあえず、$[0,1]$ 区間を $n$ 個に分割する。この時、超立方体 $[0,1]^d$ は $2^{n \cdot d}$ 個の小さな立方体に分解される。(ルービックキューブなどは $[0,1]^3$ を $n=3$ で分割したようなサンプルになる)

以下で $\rho$ と $h$ を離散化して $p$ と $f$ という格子 $J^d = \{0, \cdots, N-1\}^d$ 上の関数を作る。

$p(x)$

$J^d$ 上の実数値関数 $p$ を論文に倣い、以下のように定める:

$x = (x_1, \cdots, x_n) \in \{0, \cdots, N-1\}^d$ に対して

$$
\begin{align*}
p(x) =\int_{\substack{\frac{x_1}{N} \leq t_1 \leq \frac{x_1+1}{N} \\ \vdots \\ \frac{x_d}{N} \leq t_d \leq \frac{x_d+1}{N}}} \rho(t_1, \cdots, t_d) dt_1 \cdots dt_d
\end{align*}
$$

つまり、$x = (x_1, \cdots, x_n)$ に対し、$x/N$ を頂点とする小さい超立方体上で $\rho$ を積分した値とする。この時、明らかに $\sum_{x \in J^d} p(x) = 1$ が成立する。

——

上記で作った $p$ と $f(x) = h(x/N)$ を用いて、

$$
\begin{align*}
S(f) = \sum_{\substack{0 \leq x_1 \leq N-1 \\ \vdots \\ 0 \leq x_d \leq N-1}} p(x_1,\cdots,x_d) f(x_1,\cdots,x_d)
\tag{2}
\end{align*}
$$

を考える。ここで注意として、$p(x) \geq 0$, $0 \leq f(x) \leq 1$ が成立している。また、Schwarz の不等式より、$0 \leq S(f) \leq \max f(x) \sum_{x} p(x) = 1$ が成立する。

$N$ を十分に大きくとった時に $S(f)$ が積分値 $I(g) = I(h)$ に収束しそうであることを雑に検証しておきたい。

雑な検証

$\rho$ を連続関数にでもとる時、$N$ を十分大きくした場合、

$$
\begin{align*}
p(x_1,\cdots,x_d) \simeq \frac{1}{N^d} \rho\left(\frac{x_1}{N}, \cdots, \frac{x_d}{N}\right)
\end{align*}
$$

は幾らでも近づけることができるので、

$$
\begin{align*}
S(f) &\sim \sum_{x \in J^d} \frac{1}{N^d} \rho\left(\frac{x_1}{N}, \cdots, \frac{x_d}{N}\right) h\left(\frac{x_1}{N},\cdots, \frac{x_d}{N}\right) \\
&= \sum_{x \in J^d} \frac{1}{N^d} (\rho\cdot h)\left(\frac{x_1}{N}, \cdots, \frac{x_d}{N}\right)
\end{align*}
$$

となるが、右辺は (2) 式の区分求積法による近似であるので($g$ を区分的に連続であるとか、何かしら Riemann 積分可能な条件を付与すれば)$N \to \infty$ で (2) 式に収束しそうな気持ちになれる。(勿論、無限に小さな誤差を無限に足し合わせる部分が残っているので厳密ではない。)

たぶん、任意の確率分布を使う が古典的なモンテカルロ積分として参考になって、かつ今回のケースの参考になりそうに感じた。

それにしても、副読本の

典型的な金融の問題では, 積分の次元 $d$ (金融資産の種類) は数百~数千次元であるため,

は破壊力が凄い・・・。知らない世界には知らないことが沢山ある・・・。「宇宙年齢」まで持ち出されると流石に笑ってしまう・・・。

*1:この分割のアイデアがどこから来ているか知りたかったがすぐには見つからなかったので、気にしないで進めることにする。 モンテカルロ法のような確率計算に由来してそうである。