Photo by Sean Pollock on Unsplash
SSRNで論文をみつけて読んでみたが,思ったより闇深いのでメモとして残しておく.
元論文: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3499134
やってることとしては
- オプションの価格が従う偏微分方程式を,変分量子計算でシミュレーションする.
だけ.シンプルな応用問題である.
実際にこれを用いることで計算が速くなる保証はない.
しかし,量子ビット数に対して指数的に大きな空間を扱うことができる.そのため,うまい変分量子回路を構成すれば,古典では空間計算量の都合上扱うことができなかった,大規模な偏微分方程式を解くことができる.これによって,従来より高精度な価格決定が可能になるかもしれない.
また,結構な数のゲートを使うことになるので,現状の実機で動かすのはなかなかに難しいと考えられる.
論文ではヨーロピアンオプションとアジアンオプションについて計算しているが,本稿ではヨーロピアンオプションについてのみ計算する.
ちなみにアメリカンオプションはこのアルゴリズムでは計算できない.偏微分方程式として定式化すると,非線形な項がでてくるが,ベースとなっている変分量子アルゴリズムが線形な偏微分方程式しか解けないからである.(非線形方程式への拡張もあるhttps://journals.aps.org/pra/abstract/10.1103/PhysRevA.101.010301.しかし,これを用いてもアメリカンオプションで出てくるmax関数を扱う事はできない.)
そして,この論文,
The results show that a shallow quantum circuit is able to represent European and Asian Call option prices accurately,
と言っているが,shallow circuitで実装する方法は述べられていないし,ansatz以外の部分について具体的な量子回路が提示されていないという問題があることに注意されたい.
まずはオプションの価格が従う偏微分方程式を紹介する.
BSモデル
Black-Scholesモデルでは原資産の変動が幾何ブラウン運動で与えられる.
dSt=rStdt+σdWt
ここで,rは無リスクの金利で,σ>0がボラティリティ,Wtが標準ブラウン運動である.
ヨーロピアンコールオプション
ヨーロピアンオプションでは,オプションの行使価格がKのとき,満期Tにおいて払い戻し関数がf(ST)=max(ST−K,0)となる.
このとき,時刻t∈[0,T),原資産価格s>0におけるオプションの価格V(t,St)が従う偏微分方程式は
rV(t,St)=∂t∂V(t,St)+2σ2St2∂St2∂2V(t,St)+rSt∂St∂V(t,St)
となる(Hullなどを参照).ここで,終端(満期)での条件はV(T,ST)=f(ST)である.これは満期でのヨーロピアンオプションの価値はペイオフと等しいことを表している.
この方程式を,終端条件から時間に関して後ろ向きに解いていく.t=0におけるV(0,S0)(つまり,現在時点で原資産価格がS0の点におけるオプションの価値)がヨーロピアンオプションの価格になる.
実際には,ヨーロピアンオプションの場合であれば解析解が求められる.しかし,今回は数値計算で解を得ることを考える.
そういえば,このBS方程式は拡散方程式に変換できることが知られている.
St=ex,τ=σ2(T−t)と変数変換すると,
∂τ∂u(τ,x)=21∂2x∂2u(τ,x)
となり,熱伝導方程式の形になる.
この形にしておくと,後で変分量子計算するときに扱いやすい.
さて,ここで量子力学っぽく
∣ψ(τ,x)⟩:=u(τ,x),H^=21∂2x∂2
とおいてやると
∂τ∂∣ψ(τ,x)⟩=H^∣ψ(τ,x)⟩
となる.
Variational Quantum Simulation (VQS)
VQSは時間発展方程式を変分量子計算で扱うアルゴリズムである.もちろん,扱える時間発展には条件があるが,Hermiteで無いものも扱えるなど応用範囲が広い.
変分量子計算でよくあるように,VQSではansatzを用いて∣ψ(τ,x)⟩を近似する.つまり
∣ψ(τ,x)⟩≅∣v(θ(t))⟩
となるようなansatzを導入する.
上記の偏微分方程式を満たすように,このansatzのパラメータの時間発展をうまく調整するのがVQSである.
以下のような変分問題を考える.
δ∥∥∥∥∥∂τ∂∣v(θ(t))⟩−H^∣v(θ(t))⟩∥∥∥∥∥=0
そうすると,パラメータの時間発展が得られる.
j∑Mjkθ˙j=Vk
ここで,Mjk,Vkは
MjkVk=ℜ(∂θj∂⟨v(θ(t))∣∂θk∂∣v(θ(t))⟩)=ℜ(∂θk∂⟨v(θ(t))∣H^∣v(θ(t))⟩)
である.
これらは,H^が複素数λi,ユニタリ行列{hj}によってH^=∑jλihjと展開できるとき下図のような量子回路から計算することができる[https://arxiv.org/abs/1812.08778].
Mjk,Vkを求めたら,パラメータの時間発展を通常の(古典のRunge-Kutta等の)数値計算法を用いて計算してやればよい.
さて,残るは∑jλihjの具体的な形と,終端条件,ansatzの用意である.
元論文は∑jλihjと終端条件の2つについて不十分である.先にこれらについて説明する.その後,ansatzを紹介する.
∑jλihjの準備
量子計算機は有限次元の空間しか扱えないので,H^=21∂2x∂2を離散化する必要がある.
これは,
∂2x∂2f≅(Δx)2f(x+Δx)+f(x−Δx)−2f(x)
を用いて離散化すればよい.
論文のほうでは
⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎛−b2(Δx)210⋮000(Δx)2−12(Δx)21⋮0002(Δx)21(Δx)2−1⋮00002(Δx)21⋮00⋯⋯⋯⋱⋯⋯000⋮2(Δx)210000⋮(Δx)2−10000⋮2(Δx)21−b⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎞
となっている.しかし,これをどう量子回路で実装するかについては述べられていない.
ユニタリ行列hjの線形結合∑jλjhjとして表すには一般に量子ビット数に対して指数個の和が必要になる.これには指数関数的に大きな回数量子回路の測定が必要となるため,量子計算による高速化は得られないと考えられる.
終端条件の用意
時間発展のinitial value problemを解くので,initial valueが必要である.今回の問題設定では時間方向に関して逆向きに解くので,実際には終端条件であるが,これを∣v(θ(0))⟩とする.
元論文では
θ(0)=θargmin∥∣v(θ)⟩−∣ψ(0)⟩∥
から,θ(0)を用意している.これは非自明な過程であるが,具体的に実行するための量子回路については述べられていない.
ansatz
振幅は常に実数であるので,X,Hやエンタングルさせるゲート(図中ではc−Ryゲート)とRyゲートを用いている.
結果
4量子ビットでパラメータを25個用いている.結果としては
The hybrid quantum-classical algorithm is able to reconstruct the price function with great accuracy.
と言っているがパラメータが多いので当然である.
色々つっこみどころがあるが,
- H^を多項式個のユニタリ行列の線形和として準備する
- 初期状態(終端条件)を用意する.
- ansatzのパラメータを減らす.
このあたりをクリアして,その上で精度良くオプション価格を計算できれば良いアルゴリズムになるだろう.