量子情報科学入門 読書記録 ~第三章~
量子アルゴリズムやってく
第三章の内容
第三章では第二章までの内容を踏まえて量子アルゴリズムを導入する。古典的に考えれば指数時間になるような計算を、多項式時間で解いたりすることが可能になるかもしれない可能性がある。
Deutsch-Jozsaのアルゴリズム
Deutsch-Jozsaのアルゴリズムが扱う問題は以下のとおりである。
バランス関数判定問題
入力: ただし、はバランス関数か定数関数であることが保証されている
出力:が定数関数ならば0,バランス関数なら1
バランス関数というのは個のありうる入力のうち個の入力に対して0を個の入力に対して1を出力をする関数である。前提としてこの関数はオラクルといって中身はブラックボックスであり、この関数への質問回数を全体の計算量とする。古典的に考えるならば、この問題を解くには最悪回質問しなくてはならない。しかし、Deutsch-Jozsaのアルゴリズムは1回の質問だけで確率1で正しい出力をする。
なんとも不思議な話だ。ユニタリ変換とアダマール変換をすることで、定数関数だった場合確実に0...0を得るのだ。これについては計算をするとちゃんとできていることが証明できるのだが、筆者は以下のような説明をしている。
ユニタリ作用後の状態は、定数関数とバランス関数とで直交の関係を満たす。この時、ユニタリ行列は基底変換をすることができるので、片方を0...0にするように変換すれば、もう片方は0...0と直交した状態、つまりは0...0以外の状態に変換されるのだ。このことから、一般的に入力状態を区別したいもの同士で直交した状態に変換することができれば効率よく正答を得ることができることがわかる。すげえ(小並感)。
Groverのアルゴリズム
先ほどのバランス関数判定問題は量子アルゴリズムの優位性を証明する、悪くいってしまえば都合のいい問題提起であった。対してGroverのアルゴリズムが扱う問題はより汎用的なものとなる。
Groverの探索問題
入力:、ただしとなる解がただ一つ存在する。
出力:を満たす解
古典的に考えると、最悪回の質問をしないといけないことがわかる。ラン宅アルゴリズムでもかかるらしい(Yaoの原理)のだがよくわからかったので飛ばす。とにかくGroverのアルゴリズムではで済むらしい。しかしこれはの確率で正しくを出力するという制約がつく。※と表記することがある。
よく見ると、Deutsch-Jazsaのアルゴリズムと最初の部分は似ているが途中でという変換が加えられている。これは拡散行列といって対角成分がで他がの行列である。この行列は成分のみを増幅するという特徴があり、これを用いて[x_0]の成分だけを増幅することができる。ここでも、入力状態を注目したいものとそれ以外で直交化とまではいかないが、差別化することに成功している。これを適切な回数を繰り返すことで、目的の値を高確率で得ることが可能になる。
これをベクトルとして可視化する解説されていたのがわかりやすかったので紹介する。
よりものほうが基底ベクトルに近づいていることがわかる。
Shorのアルゴリズム
Shorのアルゴリズムは一定の衝撃を社会に与えた。というのも、Shorのアルゴリズムは素因数分解の計算困難性をひっくり返すアイデアであり、既存の暗号技術の破れにつながる可能性があったのである。しかし、今現在は多量子bit系を再現する実験段階だそうで実践段階ではない。
Shorのアルゴリズムの前に導入前に周期発見問題を導入しなくてはならない。
周期発見問題
入力:を満たす。ただしはある値で割り切れる。
出力:。
言ってみればfは周期関数だから、その周期を求めてほしいというものである。
このようなアルゴリズムで求めることができる。ここで大事になってくるのが量子フーリエ変換である。を満たす変換であり、ユニタリ行列でもある。
この量子フーリエ変換の役割を具体例を用いて説明すると、
となる。こうしての倍数に当たる状態を得ることができるのだ。これも所詮ユニタリ行列なので、基底変換したに過ぎない結果であることに注意しなくてはならない。さあ、これでの倍数がランダムで得られるので何回か試行して、そのGCDをとってあげればを求めることができそうである。
さて素因数分解をやっていく。
素因数分解問題
入力:ビット長の,ただし
出力:
一つ確認しないといけないことがある。それは、と互いに素な整数についてを満たす最小のを見つけることができれば素因数分解することが簡単にできるという事実である。
以下のような手法で解ける。
意外と簡単にできるもんなんだなと思ったり。
この章を終えて
この章では3つのアルゴリズムを学習した。少しだけ知っていたShorのアルゴリズムの正体を知ることができて少し満足した。この章は結構計算が多く理解するのに時間がかかった印象がある。特に周期発見アルゴリズムの理解が大変だった。記事執筆時は第四章に取り掛かっているのだが、本格的に理論体系を学ぶことになっており、いかに一回生のころに線形代数をさぼっていたかを身をもって体感している状態だったりする。最近、量子情報理論で日本最先端を行く藤井研究室にお邪魔しました。将来的には、こういった研究室で研究したいなとか思ったり。