• 検索結果がありません。

アルゴリズム入門(10)

N/A
N/A
Protected

Academic year: 2021

シェア "アルゴリズム入門(10)"

Copied!
20
0
0

読み込み中.... (全文を見る)

全文

(1)

宮崎修一

京都大学 学術情報メディアセンター

アルゴリズム入門( 10 )

(乱択アルゴリズム)

(2)

決定性アルゴリズム(これまで出てきたアルゴリズム):

同じ入力に対しては、決まった動作しかしない。

常に同じ解が得られる。

乱択アルゴリズム(確率アルゴリズムとも呼ばれる):

アルゴリズムが動作中にさいころを振る。さいころの出目に よって、動作を変える。

よって、同じ入力でも、さいころの出目によって、違う解が 得られる可能性がある。

(3)

まずは、簡単な話

n

個の箱の中に、

k

個当たりが入っている。

アルゴリズムの仕事:

箱を、順番に開けていく。当たりを

1

個でも見つければ終了。

(4)

決定性アルゴリズムに出来ること: 開ける箱の順番を決定する。

どんな入力が来ても、箱を開ける順序は同じ。

(箱を開けた結果によって、その先の順番を変えても良いが、

当たりが出たらそこで終わりなので、アルゴリズムの動作中 は、常に外れしか出ない。つまり「箱を開けた結果」に差は ないので、結局「その先の順番を変える」ことに意味はない。)

どのような決定性アルゴリズムを設計したとしても、

それに対する悪い入力が存在する。

最初の

n-k

個が外れ。

(5)

乱択アルゴリズム:

n

個の箱から

1

個を、各 の確率で選ぶ。

当たりが出るまで繰り返す。

1

回で当たる確率は 。

n k

n 1

平均 回で終わる。

k n

例えば

3 k = n

決定性アルゴリズム: ステップ 乱択アルゴリズム :

3

ステップ

どんな入力に対しても

3 1

2 n +

(6)

MAX CUT

(以前出てきた)

入力:グラフ

G

出力:

G

の頂点集合の

2

分割

間にある枝数が出来るだけ多くなるように

4

5

(7)

局所探索法

近似度

2

貪欲法

近似度

2

乱択アルゴリズムでも(平均的)近似度が

2

であることを示す。

A B

各頂点、コインを投げて、

表が出ればAへ 裏が出ればBへ

(以前やった)

(8)

近似度の解析

ある

1

つの枝に着目

表 表 ×

表 裏 ○

裏 表 ○

裏 裏 ×

この枝がカットされる確率

1/2

(9)

どの枝も、カットされる確率は

1/2

1

本の枝のカットされる期待値は

1/2

本)

期待値の線形性より、カットされる枝数の期待値は 1

2 + 1

2 + ⋯ 1

2 = 1 2 𝐸

(独立でなくても構わない)

最適解は≤ |𝐸|

よって、平均的に

2-

近似アルゴリズム

(10)

和積形論理式の最大充足問題(

MAX SAT

(前に出た)

f = (x

1

+x

2

+x

3

) (x

1

+x

8

) … (x

3

+x

6

+x

7

+x

12

)

入力:和積形論理式

出力:

x , x , …, x

0/1

を割り当てて、

1

となる項の数を 最大にする。1 2 n

x

i

=0

ならば

x

i

=1

x

x

の反転を表す

x

i

x

i をリテラルという

(11)

MAX E3-SAT

各項に、リテラルがちょうど

3

つずつ。

f = (x

1

+x

2

+x

3

) (x

1

+x

8

+x

7

) … (x

3

+x

6

+x

12

)

MAX E3-SAT

に対する確率アルゴリズム:

各変数に、確率

1/2

0

1

かを割り当てる。

問題:このときの平均近似度は?

MAX CUT

のときと似たような考え方で出来る)

(12)

(x +x +x )

2 6 7

1

つの項が

1

になる確率

0 0 0

0 0 1

×

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

7/8

項が

m

個あるとしたら、

1

になる項数の期待値は

m 8 7

最適解 ≦

m

(13)

脱乱択化(

derandomization

乱択アルゴリズムを決定性アルゴリズムに直すこと。

高い確率で正しい答えを出す。平均的に良い解を出す。

常に正しい答えを出す。常に良い解を出す。

MAX E3-SAT

の例:

ランダムな割り当て

項が

m

個あるなら、平均的に 項を充足できる。

必ず 項を充足する解を見つける。

8 m 7

8 m

7

(14)

f = (x

1

+x

4

+x

3

) (x

2

+x

8

+x

7

) … (x

1

+x

6

+x

8

)

各変数に、確率

1/2

0

または

1

を割り当てる場合。

MAX E3-SAT

の例:

ランダムな割り当て

項が

m

個あるなら、平均的に 項を充足できる。

必ず 項を充足する解を見つける。

8 m 7

8 m

7

脱乱択化

(15)

f = (1 +x

4

+x

3

) (x

2

+x

8

+x

7

) … (0 +x

6

+x

8

)

それぞれの項が充足される確率は変化する。

1 7/8 3/4

強制的に

x

1

=1

としてみる

残りの変数に、確率

1/2

0

または

1

を割り当てる場合。

充足される項数の期待値=

1+7/8+

・・・

+3/4 =k

1とおく

(

さっきは、

7/8+7/8+

・・・

7/8 = 7m/8

だった。

)

(16)

f = (0 +x

4

+x

3

) (x

2

+x

8

+x

7

) … (1 +x

6

+x

8

) 7/8 1

3/4

同様に

x

1

=0

としてみる

残りの変数に、確率

1/2

0

または

1

を割り当てる場合。

充足される項数の期待値=

3/4+7/8+

・・・

+1 =k

0とおく

(17)

x

1

x

2

x

3 ・・・

x

n のそれぞれを、確率

1/2

0

または

1

にする。

x

1

x

2

x

3 ・・・

x

n のそれぞれを、確率

1/2

0

または

1

にする。

を確率

1/2

0

または

1

にしたあと、

そのとき充足される項数の期待値は

7m/8

そのとき充足される項数の期待値は?

それぞれが確率

1/2

で起こるのだから、期待値は 0 1

2 1 2

1 k

+

k x

1

0

になったあとの期待値:k0

k

1

x

1

1

になったあとの期待値:

m k

k 1 7

1

1

0 + =

上の

2

つは同じことをやっているので

(18)

m

k 8

7

0

平均の議論より、

k m

8 7

1  または

m

k 8

7

0  ならば

x

1

=0

とする

ならば

x

1

=1

とする

m

k 8

7

1

変数を

1

つ減らして、充足する項数の期待値は

7m/8

以上を 維持したまま。

これを同様に繰り返していくと、変数の値がすべて決まる。

その時の「期待値」は、実は真の値。

(もはや確率的な議論ではなくなっているから)

(19)

模式的に描くと

期待値:

80

期待値:

68

期待値:

92

x

1

=0 x

1

=1

x

2

=0

x

2

=0 x

2

=1 x

2

=1

95 89

99 91

x

3

=0 x

3

=1 x

3

=0 x

3

=1 x

3

=0 x

3

=1

x

3

=0 x

3

=1

少なくとも、元の期待値以上の答が得られる

(20)

問題:

MAX CUT

に対する乱択アルゴリズムを脱乱択化せよ。

参照

関連したドキュメント

 中世に巡礼の旅の途上で強盗に襲われたり病に倒れた旅人の手当てをし,暖かくもてなしたのがホスピスの

であり、 今日 までの日 本の 民族精神 の形 成におい て大

、肩 かた 深 ふかさ を掛け合わせて、ある定数で 割り、積石数を算出する近似計算法が 使われるようになりました。この定数は船

子どもたちは、全5回のプログラムで学習したこと を思い出しながら、 「昔の人は霧ヶ峰に何をしにきてい

燃料取り出しを安全・着実に進めるための準備・作業に取り組んでいます。 【燃料取り出しに向けての主な作業】

個別の事情等もあり提出を断念したケースがある。また、提案書を提出はしたものの、ニ

○福安政策調整担当課長

都調査において、稲わら等のバイオ燃焼については、検出された元素数が少なか