\(\def\bra#1{\mathinner{\langle{#1}|}}\def\ket#1{\mathinner{|{#1}\rangle}}\def\braket#1{\mathinner{\langle{#1}\rangle}}\def\Bra#1{\left\langle#1\right|}\def\Ket#1{\left|#1\right\rangle}\)

7章 QFT:量子フーリエ変換

7.1

7.2

7.3

7.4

  • 8バイト = 64ビット = 倍精度浮動小数点数 だけど、普通ビットで表すことが多い気がするので一瞬戸惑った
  • 入力状態が実数だと mirror image が現れる
    • numpy.fft.fft などで動かして挙動を理解するのが良さそう
  • https://oreilly-qc.github.io/?p=7-54.5 に書いたブックマークレットを使うときれいに見える。

7.5

7.5.1

  • FFT の計算量は \(\mathcal{O}(N \log N) \) (\(N\)は標本数) なので、\(N = 2 ^n\) を代入すると \(\mathcal{O}(n2^n) \)
  • QFT の場合は \(\mathcal{O}(m^2) \) から逆算すると恐らく計算量は \(\mathcal{O}((\log N)^2) \)?
  • QFT の場合、周波数分布を得るには READ を何度も行わないといけなくて、その回数のオーダーは \(\mathcal{O}(2^m) \) とかになりそう?

7.5.1.1

  • 一般に入力信号を QPU レジスタに載せるのは簡単ではない
    • 計算量が必要な場合もあるので、 QFT による高速化がキャンセルしてしまう可能性もある
  • QFT の結果にアクセスするのが困難
    • 結果の一部だけ見るだけで良いアプリケーションとかになら使える
  • ショアの因数分解アルゴリズムでは QFT が使われている

7.5.1.2

(ここまで 2021/09/04)

参考になりそうな記事