25. Randomized Algorithms B4 永瀬 高志 25.1 Zeroes of multivariate polynomials 多変数多項式 f ( x1 ,...., xn ) が常に0かどうかを 調べたい 片っぱしから調べるとexponentialな時間がか かってしまう 25.1 Zeroes of multivariate polynomials ランダムアルゴリズム ランダムな値を各変数に入れて、結果が0でないな ら、 f 0 という結果を返す 結果が0ならば、try again これを何度か繰り返し、毎回 f 0 ならば f 0という結果を返す 変数の取りうる範囲が{0,1,…,N-1}のとき、errorに なる可能性は0ではない。 ・ しかし、Nが十分に大きいとき限りなく可能性は0に なる。 ←このことを証明していく 25.1 Zeroes of multivariate polynomials その前に 関数 f ( x1 ,...., xn ) の次数と全次数 f x x2 x1 x x 3 1 2 2 2 3 このとき次数は3 全次数は5 25.1 Zeroes of multivariate polynomials Lemma 25.1 0関数でない関数 f ( x1 ,...., xn ) の全次数をd、体を F とし、 S F n を満たすSをとってきたとき、 f (a1,...., an ) 0 を満たす (a1 ,...., an ) S が n n1 少なくとも | S | d・ | S | 個ある | S |n が a の取りうる全体なので、 f (a1 ,...., an ) 0 となる点が最大で d・ であることを言えばよい | S |n1 25.1 Zeroes of multivariate polynomials Lemma 25.1 0関数でない関数 f ( x1 ,...., xn ) の全次数をd、体を F とし、 S F n を満たすSをとってきたとき、 f (a1,...., an ) 0 を満たす (a1 ,...., an ) S が n n1 少なくとも | S | d・ | S | 個ある 証明 数学的帰納法で証明を行う n=1のとき、 例 f 0 の解は次数dを超えないので、成り立つ。 f ( x) b0 x b1 x d d 1 .... 0 25.1 Zeroes of multivariate polynomials Lemma 25.1 0関数でない関数 f ( x1 ,...., xn ) の全次数をd、体を F とし、 S F n を満たすSをとってきたとき、 f (a1,...., an ) 0 を満たす (a1 ,...., an ) S が n n1 少なくとも | S | d・ | S | 個ある n 2 のとき、関数fを次のようにおく。 f f 0 f1 xn f 2 xn2 ... f t xnt f 0 ,..., ft はn-1変数で、引数に x ,..., x をとる。また、 f t は常に0でなく、t 1 n1 d とする。 ここで、 f (a, b) 以下、 f0 (a) f1 (a)b f 2 (a)b 2 ... ft (a)bt とし、 f (a, b) 0 を満たす点 (a, b) S n1 S が、最大いくつあるかを考える。 25.1 Zeroes of multivariate polynomials 1. ft (a) 0 の場合 f t は常に0ではなく、全次数は d t 以下であるn-1変数の関数であるから、とりう る a のあたいは高々(d t ) | S |n2 通りである。さらに xn の値の選び方は | S |通り あるので、f (a, b) 0 となる(a, b) の選び方は最大で (d t ) | S |n1通り f (a, b) f0 (a) f1 (a)b f 2 (a)b 2 ... ft (a)bt 25.1 Zeroes of multivariate polynomials 2. ft (a) 0 の場合 a を ft (a) 0 を満たす点に固定して考える。このとき f (a, b) は変数 b の多項式と 考えることができる。いま、b の最大次数はtなので、f (a, b) となるbは最大でt通り。 n 1 また、a の選び方は最大で| S | は最大で t | S |n1 通り 通りあるので、 f (a, b) 0 となる (a, b) の選び方 f (a, b) f0 (a) f1 (a)b f 2 (a)b 2 ... ft (a)bt 1.2.よりf=0となる点 x1 ,..., xn1 は最大で (d t ) | S |n1 t・ | S |n1 d・ | S |n1 通り存在すること 25.1 Zeroes of multivariate polynomials Lemma 25.1 関数 f ( x1 ,...., xn )の全次数をd、体を F とし、S F n を満たすSをとってきたとき、 f (a1,...., an ) 0 を満たす (a1 ,...., an ) S が n n1 少なくとも | S | d・ | S | 個ある もし、関数 f ( x1 ,...., xn ) の次数がdだとすると、全次数は最大でdnになってしまう。 | S | n の場合、このLemma 25.1は全く役に立たない 25.1 Zeroes of multivariate polynomials Lemma 25.2 0関数でない関数 f ( x1 ,...., xn ) の次数をd、体を F とし、S F n を満たすSをとってきたとき、 f (a1,...., an ) 0 を満たす (a1 ,...., an ) S が n 少なくとも (| S | d ) 個ある 証明 数学的機能法で行う n=1 のとき f は常に0の関数ではなく、次数はdなので、これを満たす。 n>1 のとき (a1,..., an ) F は f (a1 ,...., an ) 0 を満たす点とする。 25.1 Zeroes of multivariate polynomials 次のような関数を考える f 0 ( x1 ,...., xn1 ) f ( x1 ,..., xn1 , an ) f1 ( xn ) f (a1 ,..., an1 , xn ) f 0 はn-1変数の常に0ではない関数なので、数学的帰納法の仮定より、 f 0 ( x1 ,..., xn1 ) 0 を満たす点は少なくとも (| S | d )n1 個ある。 f1 も同様に1変数の常に0ではない関数なので、 f1 0 となる x は n | S | d個ある。 よって0でない点は S n に少なくとも (| S | d ) n1 (| S | d ) (| S | d )n点ある。 25.1 Zeroes of multivariate polynomials Lemma 25.2 0関数でない関数 f ( x1 ,...., xn ) の次数をd、体を F とし、S F n を満たすSをとってきたとき、 f (a1,...., an ) 0 を満たす (a1 ,...., an ) S が n 少なくとも (| S | d ) 個ある このことから次のことが言える Corollary 25.3 S F を、要素を d 1以上もつものとする。0関数でない、次数dのあらゆ n る関数は、S において0でない点をもつ。 25.1 Zeroes of multivariate polynomials Lemma 25.2 0関数でない関数 f ( x1 ,...., xn ) の次数をd、体を F とし、S F n を満たすSをとってきたとき、 f (a1,...., an ) 0 を満たす (a1 ,...., an ) S が n 少なくとも (| S | d ) 個ある このことから次のことが言える Corollary 25.4 f ( x1 ,...., xn ) を次数dの0関数でない関数とする。ある S F において ランダムに値 r1 ,..., rn をとったとき、次のことが言える。 d Pr ob( f (r1 ,..., rn ) 0) 1 | S | n 25.1 Zeroes of multivariate polynomials Corollary 25.4 f ( x1 ,...., xn ) を次数dの0関数でない関数とする。ある S F において ランダムに値 r1 ,..., rn をとったとき、次のことが言える。 d Pr ob( f (r1 ,..., rn ) 0) 1 | S | 今、Sが十分大きいときを考えるので、| S n | 2dn とする。 n 1 Pr ob( f (r1 ,..., rn ) 0) 1 1 1 / 2 2n 25.2 Verifying the equality of long strings Bob Alice a a・・・ 0 通信 an1 b b・・・ 0 bn1 ai , bi {0,1} nビットの通信で同じであることを調べられる しかし、なるべく少ない通信で一致することを調べたい。 ランダムアルゴリズムを使えば高い確率(少なくとも 1 n 1 )で判別でき、およ そ O(log n) ビットの通信で行える 25.2 Verifying the equality of long strings 方法 2 2 p個の要素を持つ Fp における関数を考える(pはn p 2n を満たす素数) A( x) a0 a1x ... an1x n1 (mod p), B( x) b0 b1x ... bn1x n1 (mod p). Aliceはランダムな値 r Fp と A(r ) をBobに送り、Bobは A(r ) B ( r ) なら1を A(r ) B(r ) なら0をAliceに送る。 このときの通信量は 1 2 log p O(log n) A( x), B ( x) は最大でも次数はn-1なので、A( x) B( x) となる点も高々n-1となる。 よって、 n 1 n 1 1 Pr ob( A(r ) B(r )) |F| p n 25.3 The equivalence of branching programs 次のようなグラフを考える。 ・それぞれの矢印に変数を割り当てる。 ・スタート、ゴールとなる頂点がそれぞれ一つずつあり、また、各頂点から出る矢印 は最大で2本。 ・2本矢印が出ている場合は一方に xi もう一方に xi を割り当てる。 y x スタート z y y ゴール z x y x yz 25.3 The equivalence of branching programs このようなグラフPとQがあったとき、P(a) Q(a) , a {0,1}n を調べたい。 グラフPを関数 f p に変換する。 y グラフP スタート x z y y ゴール z x y f p xyz x(1 y )(1 z ) (1 x) y (1 z ) (1 x)(1 y ) z 25.3 The equivalence of branching programs 関数 f p への変換方法 1.スタート頂点の値を1とする。 2.辺の値が xi なら 1 xi にする。 3.各頂点の値を、『入ってくる矢印の値×矢印の根元の頂点の値』の和にする x x 1 1 xx y xy+(1-x)(1-y) z 1 yy 1 yy 1z z z{xy+(1-x)(1-y)} + (1-z){x(1-y)+(1-x)y} y 1-x x(1-y)+(1-x)y 時間は | E | | V | 1 25.3 The equivalence of branching programs Corollary 25.4 f ( x1 ,...., xn ) を次数dの0関数でない関数とする。ある S F において ランダムに値 r1 ,..., rn をとったとき、次のことが言える。 d Pr ob( f (r1 ,..., rn ) 0) 1 | S | n 問題 グラフPとQがあったとき、 P(a) Q(a) , a {0,1}n を調べたい。 グラフP,Qを関数 f P , fQ に変換して調べるとき、errorが起こる確率を考える。 Corollary 25.4より、| S | 2n とすると、 n 1 Pr ob( P(r ) Q(r )) 1 1 ~ 1 e1/ 2 1 / 2 | S | 25.4 A min-cut algorithm カットとは、グラフの頂点を2つの部分集合に分割することで、最小カット はそのために最小の数の辺を切るものである。 この最小カットをランダムアルゴリズムで求めるとき、以下の操作を行う ランダムに辺を選び、その辺が結ぶ2頂点をくっつける。これを頂点が2つに なるまで繰り返す 25.4 A min-cut algorithm 『この操作によってmin-cutのサイズが減ることはない』ということが知られてい るので、これを繰り返すことによって得られる結果はmin-cutである可能性が ある。その確率について考える 補題 グラフ G (V , E ) にはn個の頂点があり、kより小さいcutは存在しないと すると、辺は最低でもkn/2存在する 証明 頂点 v V の次数は d (v) k で、Theorem 1.7より よって 2 | E | k・ | V | kn なので | E | kn / 2 vV d (v) 2 | E | 25.4 A min-cut algorithm グラフGの最小カットをCとし、そのサイズをkとする。 また、Ai を『i番目のステップでCに含まれる辺を消さない』という事象とする。 このとき Pr ob(アルゴリズムがCを結果として出す) Pr ob( A1 A2 .... An2 ) |C | k 2 また、 | E | kn n 2 であるから、 Pr ob( A1 ) 1 2 n 25.4 A min-cut algorithm 次に Pr ob( A2 | A1 ) を考える。 A1 の後、n-1頂点があるので、少なくともk (n 1) / 2 個の辺がある。 よって、 Pr ob( A2 | A1 ) 1 2 n 1 同様に、Ai のときを考えると i 1 2 Pr ob Ai | Aj 1 n i 1 j 1 25.4 A min-cut algorithm よって n2 Pr ob Aj Pr ob( A1・) Pr ob( A2 | A1・・・ ) j 1 n2 2 1 n i 1 i 1 3 j n n 3 Pr ob An2 | Aj j 1 j2 2 j n(n 1) 2 つまり、このアルゴリズム1回で正しい解を見つける確率が少なくとも n( n 1) 25.4 A min-cut algorithm もし、このアルゴリズムを n 2 / 2 回行ったとする。 そのとき、errorとなる確率は高々 (1 2 / n ) 2 n2 / 2 e1 0.37 さらに繰り返す回数を増やすことでerrorが起こる確率を減らすことができる。
© Copyright 2024 ExpyDoc