nielsen chuang-5.3.1

33
量子情報勉強会|18> Nielsen-Chuang 5.3.1 Order-finding @gm3d2 Apr. 19, 2015 池袋バイナリ勉強会会場

Upload: gm3d

Post on 03-Aug-2015

305 views

Category:

Science


3 download

TRANSCRIPT

Page 1: Nielsen chuang-5.3.1

量子情報勉強会|18>

Nielsen-Chuang 5.3.1Order-finding

@gm3d2Apr. 19, 2015

池袋バイナリ勉強会会場

Page 2: Nielsen chuang-5.3.1

位相評価の応用:位数発見と因数分解

● 位数発見

与えられた互いに素なN、x (x < N)に対し、        となるrを求める問題

● 因数分解

与えられたnに対し、 となるm、rを求める問題

● 両者は同等であることを以下で見る● 位相評価によって解くことができる

Page 3: Nielsen chuang-5.3.1

5.3.1 order-finding● N, x : 互いに素な正の整数 ( x < N)● 剰余Nでのxの位数:

      となる最小のr● x、Nを与えられた時にrを求めるのが問題● 古典コンピュータではNPと考えられている

Nのビット長をLとしたとき、Lの多項式時間のアルゴリズムは知られていない

Page 4: Nielsen chuang-5.3.1

exercise 5.10● x = 5, N = 21● xの位数はいくらか

Page 5: Nielsen chuang-5.3.1

exercise 5.11● N, x : 互いに素な正の整数 ( x < N)● のN個の値を考える● xとNが互いに素だからこれらは決して0にはな

らない→1, 2, ... N-1 のN-1通りの可能性● N個の値をN-1通りに分類するのでかならずあ

るp,qについて       (鳩小屋論法) ● 大きい方をpとすれば、

Page 6: Nielsen chuang-5.3.1

位数発見に使うヒルベルト空間と演算子U

● : yは長さL=log2(N)のビット列● Lはx, Nを表現するのに必要なビット数● 例: N = 6: L = 3

● 演算子U:

xを決めるとそれに対して一つUが決まる

Page 7: Nielsen chuang-5.3.1

Uの具体例: N = 6, x = 5

● ただし、0 ≦ y ≦ N - 1 についてのみ興味があるので、それ以上のyについては と

定める

この場合は位数r = 2

Page 8: Nielsen chuang-5.3.1

Uの具体形(N = 6, x = 5)

Page 9: Nielsen chuang-5.3.1

Uの固有ベクトル

● rはxの(Nの剰余による)位数とする

Page 10: Nielsen chuang-5.3.1

Uの|us>への作用

Uを各基底に作用

k+1 → k'

k' = rはk' = 0と同じ

Page 11: Nielsen chuang-5.3.1

固有値からの位数の決定● 位相s/rはphase estimationによって良い精度

で決定できる● sは既知だから、rはここから決定できる

Page 12: Nielsen chuang-5.3.1

exercise 5.12● ZNを整数のNによる剰余系とし、xをNと互いに

素な整数とすると、xを掛ける演算はZNにおいて全単射になる(以下 mod Nを省略)● 全射:任意のy'についてy' = xyとなるyが存在: xの

位数をrとし、両辺に をかければ

からyが求まる● 単射: ならば、両辺に をかけて

Page 13: Nielsen chuang-5.3.1

exercise 5.12 (2)● xをかける演算は 上の全単射● よってUは単なる基底の入れ替え● xをかけることによるyの置換を

と書くと、

● Uはエルミート内積を不変に保つのでユニタリ

Page 14: Nielsen chuang-5.3.1

Phase esitimationを実現するためのポイント1

● 制御 ゲートの実現

→modular exponentiation ● 実際に必要なのは、zの各ビット

● によって制御された

modular exponential of x

Page 15: Nielsen chuang-5.3.1

回路のブロック図

z

0

z

y

0

z

の各ビットの計算回路

乗算回路

Page 16: Nielsen chuang-5.3.1

U1の計算量● の各々を計算するステージ● t - 1種類 = O(L) 個の2乗演算● 一つの2乗演算はO(L^2)● U1全体ではO(L^3)

Page 17: Nielsen chuang-5.3.1

U1の計算量● の各々を計算するステージ● t - 1種類 = O(L) 個の2乗演算● 一つの2乗演算はO(L^2)● U1全体ではO(L^3)

Page 18: Nielsen chuang-5.3.1

U2の計算量● 計算した       およびyを掛け合わせ

て最終結果を得るステージ

● 一つの乗算がO(L^2)● 乗算の個数が t = O(L)

全体で O(L^3)の計算量

Page 19: Nielsen chuang-5.3.1

Phase estimation実現のポイント2

● 固有ベクトル を

初期状態として用意すること

● 定義にrが含まれている…rが知りたいからやっているのに!

Page 20: Nielsen chuang-5.3.1

exercise 5.13

Page 21: Nielsen chuang-5.3.1

5.13のための補助式

Page 22: Nielsen chuang-5.3.1

固有ベクトル|us>● 固有ベクトル : 単独で用意するのは難しい

● の線形和なら簡単に用意できる!● 観測の結果:

のいずれかが等確率で(tビットの精度で)得られる

(exercise 5.13の結果)

Page 23: Nielsen chuang-5.3.1

exercise 5.14

● (5.47)で k=0とおきVの定義を使えば自明● を計算する回路…O(L^3)

(先のU1,U2と同じ)● kを加える回路…Lビットの加算、O(L)● Vを用いても結局合計O(L^3)の計算量

Page 24: Nielsen chuang-5.3.1

最後のステップ● 観測されたtビットの位相φにもっとも近い有理

数 s/r を求めること● 連分数展開が使える● 定理 5.1: 与えられた有理数φに対して、s/rが

を満たす有理数であるとする。このときs/rはφの連分数展開に対するconvergentとして求まる。

● 計算量はO(L^3)

Page 25: Nielsen chuang-5.3.1

性能の評価

このアルゴリズムの「失敗」する可能性● 必要な精度で位相を得られない

→確率εで起こる

ビット数をlog(ε)のオーダーで増やせば大丈夫● 位相に含まれるrとsが共通因数を持つ可能性

→測定から得られる(s', r')はその共通因数を約分したものなので真の(s, r)と異なる

Page 26: Nielsen chuang-5.3.1

r, sが共通因数を持つ場合● 前提

● rは未知だが決まった整数(与えられた要素aの剰余Nについての位数)

● s は測定毎に変わる0 ... 1- r の範囲の整数● まずr, sが互いに素でない可能性はどのくらいあ

るのか?● 素数の分布に関する定理:

rまでの範囲に少なくともr/2log(r)の素数がある

Page 27: Nielsen chuang-5.3.1

r, sが共通因数を持つ場合の対処法 A

● sが0 ... r - 1からランダムに決まるとする● そのうちr/2log(r)個が素数

少なくとも1/2log(r)の確率でsは素であり、したがってrとも互いに素

● r < Nだから、{1/2log(r)}・{2log(N)} > 1

2log(N)回の測定を行えばその中で得られた最大のrがrとsが互いに素の場合に相当し、実際のrと考えられる

Page 28: Nielsen chuang-5.3.1

r, sが共通因数を持つ場合の対処法 B

● 真の値と異なるr'(r>r’)が得られたとする● 真の値かどうかは       でチェックできる● s=0でない限り(これは確率1/rでしか起きない)、

rとsに共通因数qがあり、r=r'q、

s=s'q、s/r = s'/r' を意味する。

によりa'を定義すると、

つまりr'からa'を定義し、それの位数を求めるとr/r'が分かる。これとr'をかけて真のrが求まる。

Page 29: Nielsen chuang-5.3.1

r, sが共通因数を持つ場合の対処法 B(2)

● a'の位数t=(r/r')を求めるときにも、共通因子のせいで真の値より小さい値t'が得られる可能性はある

● a'̂ t = 1 mod Nとならなければ真の値ではないのでさらにa'' = a'̂ t'を定義して同様の手続きを行う

● 一度のステップを行う毎にrの因子一つは少なくとも求まるので、最悪でもrのビット数、つまりO(L)で計算が終了する

Page 30: Nielsen chuang-5.3.1

r, sが共通因数を持つ場合の対処法 C

● 2回測定:● 共通因数を約分する前の真の値:● s1とs2が互いに素なら、r任意の素因数は必ず

r1'、r2'のいずれかに含まれる→rはr1'、r2'の最小公倍数

● s1とs2が互いに素である確率の評価

Page 31: Nielsen chuang-5.3.1

r, sが共通因数を持つ場合の対処法 C(2)

● p(q|s1): s1はランダムに0~r-1の値を取る● qで割った余りを考えてもランダム● qで割った余りが0~q-1のうち0を取る確率

→p(q|s1) = 1/q、同様にp(q|s2) = 1/q● (exercise 5.16)● s1、s2が互いに素でrがr1'、r2'のLCMとして求ま

る確率が1/4はある→Lによらない!● 定数回繰り返せば一定の成功率を保証できる

Page 32: Nielsen chuang-5.3.1

exercise 5.15● x、y を正の整数、そのGCDをmとする。すると

x = m x'、y = m y' で、x'とy'は互いに素

● これからx、yのLCMは x' y' m = x y / m である。

● x、y がLビットなら、ユークリッド互除法でm、x'、y'を求めるのにO(L)、それらを乗算してLCMを求めるのにO(L^2)が2回、合計O(L^2)の演算が必要

Page 33: Nielsen chuang-5.3.1

exercise 5.16

素数全体についての和より2以上の整数についての和の方が大きい