Presentation is loading. Please wait.

Presentation is loading. Please wait.

25. Randomized Algorithms

Similar presentations


Presentation on theme: "25. Randomized Algorithms"— Presentation transcript:

1 25. Randomized Algorithms
B4 永瀬 高志

2 25.1 Zeroes of multivariate polynomials
多変数多項式         が常に0かどうかを調べたい 片っぱしから調べるとexponentialな時間がかかってしまう

3 25.1 Zeroes of multivariate polynomials
ランダムアルゴリズム  ランダムな値を各変数に入れて、結果が0でないなら、     という結果を返す  結果が0ならば、try again   これを何度か繰り返し、毎回     ならば      という結果を返す  変数の取りうる範囲が{0,1,…,N-1}のとき、errorになる可能性は0ではない。 ・ しかし、Nが十分に大きいとき限りなく可能性は0になる。 ←このことを証明していく

4 25.1 Zeroes of multivariate polynomials
その前に  関数           の次数と全次数                    このとき次数は3                      全次数は5

5 25.1 Zeroes of multivariate polynomials
Lemma 25.1 0関数でない関数       の全次数をd、体を  とし、                を満たすSをとってきたとき、          を満たす が 少なくとも          個ある      が の取りうる全体なので、           となる点が最大で であることを言えばよい

6 25.1 Zeroes of multivariate polynomials
Lemma 25.1 0関数でない関数       の全次数をd、体を  とし、                を満たすSをとってきたとき、          を満たす が 少なくとも          個ある 証明  数学的帰納法で証明を行う  n=1のとき、      の解は次数dを超えないので、成り立つ。

7 25.1 Zeroes of multivariate polynomials
Lemma 25.1 0関数でない関数       の全次数をd、体を  とし、                を満たすSをとってきたとき、          を満たす が 少なくとも          個ある     のとき、関数fを次のようにおく。       はn-1変数で、引数に       をとる。また、  は常に0でなく、 とする。 ここで、                                とし、 以下、        を満たす点           が、最大いくつあるかを考える。      

8 25.1 Zeroes of multivariate polynomials
     の場合     は常に0ではなく、全次数は 以下であるn-1変数の関数であるから、とりうる のあたいは高々 通りである。さらに の値の選び方は 通りあるので、 となる の選び方は最大で 通り

9 25.1 Zeroes of multivariate polynomials
2.      の場合   を       を満たす点に固定して考える。このとき     は変数 の多項式と  考えることができる。いま、 の最大次数はtなので、     となるbは最大でt通り。  また、 の選び方は最大で 通りあるので、 となる の選び方は最大で 通り 1.2.よりf=0となる点       は最大で                                           通り存在すること

10 25.1 Zeroes of multivariate polynomials
Lemma 25.1 関数       の全次数をd、体を  とし、                を満たすSをとってきたとき、          を満たす が 少なくとも          個ある もし、関数        の次数がdだとすると、全次数は最大でdnになってしまう。       の場合、このLemma 25.1は全く役に立たない   

11 25.1 Zeroes of multivariate polynomials
Lemma 25.2 0関数でない関数       の次数をd、体を  とし、                を満たすSをとってきたとき、          を満たす が 少なくとも       個ある 証明 数学的機能法で行う n=1 のとき は常に0の関数ではなく、次数はdなので、これを満たす。 n>1 のとき         は           を満たす点とする。

12 25.1 Zeroes of multivariate polynomials
次のような関数を考える    はn-1変数の常に0ではない関数なので、数学的帰納法の仮定より、                   を満たす点は少なくとも          個ある。    も同様に1変数の常に0ではない関数なので、    となる   は        個ある。 よって0でない点は  に少なくとも                    点ある。

13 25.1 Zeroes of multivariate polynomials
Lemma 25.2 0関数でない関数       の次数をd、体を  とし、                を満たすSをとってきたとき、          を満たす が 少なくとも       個ある このことから次のことが言える Corollary 25.3     を、要素を 以上もつものとする。0関数でない、次数dのあらゆる関数は、  において0でない点をもつ。    

14 25.1 Zeroes of multivariate polynomials
Lemma 25.2 0関数でない関数       の次数をd、体を  とし、                を満たすSをとってきたとき、          を満たす が 少なくとも       個ある このことから次のことが言える Corollary 25.4    を次数dの0関数でない関数とする。ある     において ランダムに値       をとったとき、次のことが言える。

15 25.1 Zeroes of multivariate polynomials
Corollary 25.4    を次数dの0関数でない関数とする。ある     において ランダムに値       をとったとき、次のことが言える。 今、Sが十分大きいときを考えるので、        とする。

16 25.2 Verifying the equality of long strings
Bob Alice 通信 nビットの通信で同じであることを調べられる しかし、なるべく少ない通信で一致することを調べたい。  ランダムアルゴリズムを使えば高い確率(少なくとも )で判別でき、およそ      ビットの通信で行える

17 25.2 Verifying the equality of long strings
方法 p個の要素を持つ   における関数を考える(pは         を満たす素数) Aliceはランダムな値 と    をBobに送り、Bobは         なら1を          なら0をAliceに送る。 このときの通信量は                       は最大でも次数はn-1なので、         となる点も高々n-1となる。 よって、

18 25.3 The equivalence of branching programs
次のようなグラフを考える。 ・それぞれの矢印に変数を割り当てる。 ・スタート、ゴールとなる頂点がそれぞれ一つずつあり、また、各頂点から出る矢印は最大で2本。 ・2本矢印が出ている場合は一方に  もう一方に  を割り当てる。 ゴール スタート

19 25.3 The equivalence of branching programs
このようなグラフPとQがあったとき、 を調べたい。 グラフPを関数  に変換する。 グラフP ゴール スタート

20 25.3 The equivalence of branching programs
関数  への変換方法 1.スタート頂点の値を1とする。 2.辺の値が  なら    にする。 3.各頂点の値を、『入ってくる矢印の値×矢印の根元の頂点の値』の和にする x xy+(1-x)(1-y) z{xy+(1-x)(1-y)} + (1-z){x(1-y)+(1-x)y} 1 1-x x(1-y)+(1-x)y 時間は

21 25.3 The equivalence of branching programs
Corollary 25.4    を次数dの0関数でない関数とする。ある     において ランダムに値       をとったとき、次のことが言える。 問題 グラフPとQがあったとき、 を調べたい。 グラフP,Qを関数     に変換して調べるとき、errorが起こる確率を考える。 Corollary 25.4より、      とすると、

22 25.4 A min-cut algorithm カットとは、グラフの頂点を2つの部分集合に分割することで、最小カットはそのために最小の数の辺を切るものである。 この最小カットをランダムアルゴリズムで求めるとき、以下の操作を行う ランダムに辺を選び、その辺が結ぶ2頂点をくっつける。これを頂点が2つになるまで繰り返す

23 25.4 A min-cut algorithm   『この操作によってmin-cutのサイズが減ることはない』ということが知られているので、これを繰り返すことによって得られる結果はmin-cutである可能性がある。その確率について考える 補題 グラフ        にはn個の頂点があり、kより小さいcutは存在しないと     すると、辺は最低でもkn/2存在する 証明 頂点     の次数は       で、Theorem 1.7より よって              なので            

24 25.4 A min-cut algorithm グラフGの最小カットをCとし、そのサイズをkとする。
また、  を『i番目のステップでCに含まれる辺を消さない』という事象とする。 このとき      アルゴリズムがCを結果として出す また、 であるから、

25 25.4 A min-cut algorithm 次に を考える。 の後、n-1頂点があるので、少なくとも 個の辺がある。 よって、
次に          を考える。   の後、n-1頂点があるので、少なくとも       個の辺がある。 よって、 同様に、  のときを考えると

26 25.4 A min-cut algorithm よって つまり、このアルゴリズム1回で正しい解を見つける確率が少なくとも

27 25.4 A min-cut algorithm もし、このアルゴリズムを 回行ったとする。 そのとき、errorとなる確率は高々
もし、このアルゴリズムを     回行ったとする。 そのとき、errorとなる確率は高々 さらに繰り返す回数を増やすことでerrorが起こる確率を減らすことができる。


Download ppt "25. Randomized Algorithms"

Similar presentations


Ads by Google