相対エントロピーから情報と物理を組み立てる 第6部 第2章 §6.2.1 ★★★ QFT の定義と、出力が量子ビットごとの積に分かれること・巡回シフトを対角にすること
ユニタリ演算子 U^ の固有値は絶対値が 1 なので、U^∣u⟩=e2πiφ∣u⟩ と位相 φ∈[0,1) だけで書くことができる。この位相を知りたい場面は量子計算の至る所にある。U^=e−iH^τ/ℏ と取れば φ はエネルギー固有値そのもので、分子の基底エネルギーを求める量子化学の計算になる。U^ を「y を ay に掛け替える」剰余の掛け算に取れば、φ の分母に a の位数が現れ、それが次の章の Shor のアルゴリズムになる(第6部第3章)。ところが、位相は全体にかかる因子なので、∣u⟩ だけをいくら測っても φ は見えない。
この章で組み立てる位相推定は、補助の量子ビットを t 個用意し、U^ を補助の量子ビットで制御して当てることで、見えない全体の位相を補助の量子ビットの相対的な位相に書き移す。書き移された状態は、整数 k の上で e2πiφk と振動する波で、この波の周波数 φ を読むのが量子 Fourier 変換(QFT)である。したがって章の前半は QFT そのものを扱う。QFT は信号処理の離散 Fourier 変換と同じ行列だが、2n 次元の行列を n(n+1)/2 個のゲートで実現でき、その理由は出力が量子ビットごとの積に分かれることにある。
後半では位相推定の成功確率を求め、φ が t ビットで書き切れないときの「漏れ」を評価する。次に補助の量子ビット1個を使い回す Kitaev の方法を述べる。これは前の章で残した「GHZ 状態の位相はどの周期にいるかが曖昧になる」問題(第3部第8章)を、粗い桁から細かい桁へ段階的に決めることで解く方法でもある。最後に情報の側から見て、位相推定は U^ を合わせて T 回使って位相を 1/T の精度で読む測定、すなわち Heisenberg 限界の測定であることを、量子 Fisher 情報と相互情報量で確かめる。
この章の記法を断っておく。量子ビットの Pauli 演算子は記法の正本どおり X,Y,Z、恒等演算子は 1 と書く。Hadamard ゲートは第3部・第6部第1章と同じく斜体の H と書く(Hamiltonian は帽子つきの H^、Shannon エントロピーは引数つきの H(X) で分かれる)。n 個の量子ビットの計算基底 ∣j1j2⋯jn⟩ を2進数 j=j12n−1+j22n−2+⋯+jn と同一視して ∣j⟩ とも書き、N=2n とする。2進小数を 0.jljl+1⋯jm=jl/2+jl+1/4+⋯+jm/2m−l+1 と書く。対数は自然対数(nat)で、ビットに直すときは明示する。
定義
定義 6.2.1(量子 Fourier 変換)
N=2n 次元の計算基底に対して
U^QFT∣j⟩=N1k=0∑N−1e2πijk/N∣k⟩(j=0,1,…,N−1)(6.2.1)
で定まる線形演算子を量子 Fourier 変換と呼ぶ。行列で書けば (U^QFT)kj=ωjk/N、ω=e2πi/N である。
指数の符号は量子計算の慣例どおり + に取る(この本の流儀)。信号処理の離散 Fourier 変換 Xm=∑kxke−2πikm/N とは符号が逆で、U^QFT は逆離散 Fourier 変換に N を掛けたものに等しい(数値計算のライブラリなら ifft の出力の N 倍)。
U^QFT がユニタリであることは、列どうしの内積を計算すれば分かる。j 列と j′ 列の内積は
N1k=0∑N−1e2πi(j′−j)k/N=δjj′
で、j=j′ のときは 1 の N 乗根 e2πi(j′−j)/N=1 の等比数列の和なので 0 になる。この直交性は位相推定の全体で使う事実で、6.2.5 節では「周波数が 1/N だけ違う2つの波の状態は直交し、1回で完全に見分けられる」という形で読み直す。n=1 では U^QFT=21(111−1)=H で、QFT は Hadamard ゲートの n 量子ビット版とみなすことができる。ただし n≥2 では H⊗n とは違う行列で、H⊗n の成分が ±1 だけなのに対し、QFT は 1 の N 乗根をすべて使う。
積の形
QFT の出力は、どの j に対しても量子ビットごとの積に分かれる。これが QFT を少ないゲートで組める理由である。
命題 6.2.2(積の形 ★★★)
j=j1j2⋯jn(2進)に対し
U^QFT∣j1⋯jn⟩=2n/2(∣0⟩+e2πi0.jn∣1⟩)⊗(∣0⟩+e2πi0.jn−1jn∣1⟩)⊗⋯⊗(∣0⟩+e2πi0.j1j2⋯jn∣1⟩).(6.2.2)
上から l 番目の量子ビットの位相は 2π×0.jn−l+1⋯jn である。
証明
出力の添字を k=∑l=1nkl2n−l と2進で書くと、e2πijk/N=∏l=1ne2πijkl/2l と積に分かれ、∑k=∑k1⋯∑kn なので
U^QFT∣j⟩=l=1⨂n21kl=0∑1e2πijkl/2l∣kl⟩=l=1⨂n2∣0⟩+e2πij/2l∣1⟩.
e2πij/2l では j/2l の整数部分が消え、小数部分 0.jn−l+1⋯jn だけが残る。
式 (6.2.2) で上の量子ビットほど j の下の桁しか見ていないことに注意する。1番上の量子ビットの位相は 0 か π(jn だけで決まる)で、1番下の量子ビットは j のすべての桁を細かい位相に書き込んでいる。この「細かい位相を読み出すと粗い桁から順に決まる」構造は、6.2.4 節の反復位相推定でそのまま使う。
巡回シフトを対角にする
Fourier 変換の役目は、平行移動を位相の掛け算に変えることである。計算基底の巡回シフト S^∣j⟩=∣j+1modN⟩ を考えると、
S^U^QFT∣k⟩=N1j∑e2πijk/N∣j+1⟩=e−2πik/NU^QFT∣k⟩(6.2.3)
となり、QFT の列 U^QFT∣k⟩ は S^ の固有ベクトルで、固有値は e−2πik/N である。周期 r の関数を足し合わせた状態は「r だけずらしても変わらない」状態なので、その QFT は周波数 N/r の倍数のところにだけ重みを持つ。次の章ではこの事実を位相推定の言葉で言い直し、周期を読み出す。
例題 6.2.1 2量子ビットの QFT ★★
オリジナルn=2(N=4)の QFT を考える。
- (1) U^QFT の行列を書き、H⊗H と違うことを確かめよ。
- (2) U^QFT∣01⟩ を定義 (6.2.1) から計算し、積の形 (6.2.2) と一致することを確かめよ。
解答
(1) ω=e2πi/4=i なので、成分は ijk/2 で
U^QFT=2111111i−1−i1−11−11−i−1i,H⊗H=2111111−11−111−1−11−1−11.
QFT には虚数 ±i の成分があり、2つは違う。各行の長さは 1 で、異なる行の内積は 0 になっている。
(2) ∣01⟩=∣j=1⟩ なので、定義から U^QFT∣1⟩=21(∣0⟩+i∣1⟩−∣2⟩−i∣3⟩)。積の形では j1=0、j2=1 で、上の量子ビットの位相は 2π×0.j2=2π×21=π、下の量子ビットの位相は 2π×0.j1j2=2π×41=π/2 なので
21(∣0⟩−∣1⟩)⊗(∣0⟩+i∣1⟩)=21(∣00⟩+i∣01⟩−∣10⟩−i∣11⟩).
∣00⟩,∣01⟩,∣10⟩,∣11⟩ を ∣0⟩,∣1⟩,∣2⟩,∣3⟩ と読めば定義の結果と一致する。出力はもつれておらず、2つの量子ビットの積になっている。
AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com