粗く探し、細かく詰める
最初は大きな歩幅で場所をあたり、良い場所に近づいてから小さな歩幅へ切り替える。
歩幅は、探索の解像度
歩幅Δは「一回にどれだけ動くか」であると同時に、探索の解像度でもあります。Δ=4なら少ない問い合わせで遠くまで探せますが、幅の狭い山頂は飛び越えてしまいます。Δ=0.5なら細かく詰められますが、遠くへ行くには何回も問い合わせが必要です。
だから、両方を順番に使います。
粗く探す: Δ = 8 → 4
細かく詰める: Δ = 2 → 1 → 0.5
歩幅を縮める条件は、一つだけ
同じ現在地・同じ歩幅で、使える方向を一巡しても改善しなかったとき。これが歩幅を縮めてよい唯一の条件です。
カード1枚が失敗しただけで縮めてはいけません。早く縮めすぎると、いま居る場所の近所を細かく調べるだけになり、遠くにある良い場所に届かなくなります。
歩幅の列は、始める前に決めておく
探索の途中で「なんとなく3.7にしてみる」といった思いつきの変更はしません。使う歩幅の列を最初に決め、上から順に使います。
| 変数の刻み | 歩幅列の例 |
|---|---|
| 整数だけ | 8 → 4 → 2 → 1 |
| 0.5刻み | 4 → 2 → 1 → 0.5 |
| 割合で動かす | 20% → 10% → 5% → 2.5% |
印刷キットの歩幅チップを一列に並べ、いま使っているチップだけを盤面に置けば、頭で状態を覚えておく必要がなくなります。
最小歩幅まで来たら、その試行は終わり
いちばん小さい歩幅も、最初に決めておきます。最小歩幅で一巡しても改善しなければ、その試行は終了です。さらに細かい歩幅を発明して続けるのではなく、最高点を試行記録に残し、必要なら別の場所から新しい試行を始めます(第6章)。
紙上課題
紙の上で答えを出してから、ここで採点できます。
Q1. Δ=4で+X1が失敗し、−X1が改善しました。次の候補に使う歩幅はいくつですか。
改善が出ている間は歩幅を変えません。−X1をΔ=4のままもう一度試します。歩幅を縮めるのは、一巡して改善しなかったときだけです。
Q2. 8方向すべてで改善しませんでした。Δ=4を次にいくつへ更新しますか(歩幅列 8→4→2→1)。
一巡して改善しなかったので、歩幅列の次のチップ Δ=2 に交換します。現在地はそのままです。
Q3. 最初からΔ=0.5で探すと問い合わせ回数が増えるのはなぜですか。
歩幅は探索の解像度です。細かい歩幅は詰めの局面では有効ですが、序盤に使うと「遠くの良い場所」へたどり着くまでに大量の問い合わせを消費します。まず粗く、あとで細かく、が基本です。
Q4. 最小歩幅で一巡しても改善しませんでした。次にとる行動はどれですか。
最小歩幅は最初に決めた終了ラインです。そこで一巡して改善しなければ試行は終了。最高点を試行記録へ退避し、続けるなら別の場所から新しい試行を始めます(第6章)。