探索者が持つ状態は3つだけ
中身を推測する前に、現在地・最高点・歩幅を紙に固定し、一回ずつ測って進む探索の型をつくる。
見えるのは、入力とScoreだけ
(X1, X2, ..., Xn) ── BLACK BOX ──> Score
この講座で相手にするのは、入力を渡すとScoreという数字を一つだけ返してくる箱です。式もグラフも勾配も、正解の位置も見えません。探索者にできるのは、入力を一つ決めて採点係に渡し、返ってきたScoreを記録することだけです。
これは「中身を当てる競技」ではありません。中身が分からないままでも実験を前に進める手順を練習するのが、この講座の目的です。
盤面に置くのは、3枚のカード
探索の間、覚えておくことは3つで足ります。それぞれをカードにして、盤面に置きます。
| カード | 例 | 書き換えるとき |
|---|---|---|
| 現在地 | (4, 7, 2, 8) / Score 63 | 候補が現在地よりも良かったとき |
| 最高点 | 63 | 新しい最高Scoreが出たとき |
| 歩幅 | Δ = 2 | 全方向を一巡しても改善しなかったとき |
探索の途中では、悪くなった候補には移動しません。良くなった候補だけを新しい現在地にするので、現在地のScoreと最高Scoreはつねに同じ値になります。両者が分かれるのは、第6章で扱う「再出発」のときだけです。
1回の評価は、この5手順で回す
- 現在地と歩幅を見る。
- 方向カードを1枚選ぶ。
- 候補を紙の上で計算する。
- 候補を採点係に渡し、Scoreを受け取る。
- Scoreが上がっていたら、現在地を候補に置き換える。下がっていたら、現在地はそのまま。
大事なのは順番です。候補を先に確定してから、Scoreを受け取ります。結果を見てから候補を書き換えたり、評価の途中で別の変数まで動かしたりはしません。
紙上課題
紙の上で答えを出してから、ここで採点できます。
Q1. 現在地 (4,7,2,8)、歩幅 Δ=2、方向 (+1,0,0,0) のときの候補を書いてください。
半角のカンマ区切りで入力します。例: (1,2,3,4)
動くのはX1だけです。4 + 2×(+1) = 6 で、候補は (6,7,2,8)。ほかの3変数は方向カードが0なので動きません。
Q2. 候補のScoreが63から71へ上がりました。3枚のカードのうち、書き換えるのはどれですか。
良くなった候補は新しい現在地になり、71はこの試行の最高Scoreでもあるので、現在地と最高点の両方を71の地点に合わせて書き換えます。歩幅に触れるのは、一巡して改善しなかったときだけです。
Q3. 候補のScoreが58でした(現在地は63)。現在地と歩幅をどう扱いますか。
悪化した候補には移動しません。そして、1枚の方向カードが失敗しただけでは歩幅も縮めません。歩幅を縮めてよいのは、全方向を一巡しても改善しなかったときだけです。
この章の合言葉
候補を先に決める。Scoreは後から受け取る。良くなったときだけ移動する。