Upload
atcoder-inc
View
2.427
Download
0
Embed Size (px)
Citation preview
Chokudai Search について
@chokudai ( 高橋 直大 )
Chokudai search とは?• Beam search の亜種• Colun さんに名前つけろって言われたから
適当に付けた– ぶっちゃけ名前つけるほどのアルゴリズム
じゃないと思う– なんか名前あったらおしえてください
Beam search
• 幅優先探索の各階層において、評価が良い順に d 個のみを採用していく– この際の d をビーム幅と呼ぶ
D=3 のサンプル
4 番以下からの頂点からは探索を行わない
8
7
7
9
8
7
7
7
6
8
8
8
8
8
7
66
32
76
44
3
2
Beam search
• 幅優先探索の各階層において、評価が良い順に d 個のみを採用していく– この際の d をビーム幅と呼ぶ
8
7
7
9
8
7
7
7
6
8
8
8
8
8
7
66
32
76
44
3
2
D=3 のサンプル
4 番以下からの頂点からは探索を行わない
ビームっぽい!
Chokudai search
• Beam Search のビーム幅を小さく設定し、反復しながら徐々にビーム幅を広げていく
• こんな見た目なので昔は Rainbow search って呼んでた8
7
7
9
8
7
3
8
7
2
8
8
1
8
8
66
62
87
76
3
2
何が違うの?• 下のビームから上のビームに遷移しない– なので、探索する頂点がちょっと変わる
メリット• 時間管理が極めて容易• 評価コスト0で多様性を生みやすい– スコアの安定性が生まれやすい
時間管理• ビーム幅の厳密な設定が不要– 時間いっぱいまで増やしていけばいいだけ
• 終了ターン数が解らない問題の場合も、とりあえずの解がさっさと出るので予測しやすい
多様性• ここ一番大切だけど書くの大変なので誰
か書いてください。
デメリット• メモリたくさん使う– 次の階層に移っても、前の結果を残さないと
いけない• 順位管理を動的にしないといけない– ビームサーチだと1回のソートで十分。大抵
は優先度付きキューで事足りるけど、ヒューリスティックな枝刈入れたりすると大変
• 上手いこと多様性生かせないと評価値低いの選んでるだけになっちゃう