第0章
シャワー問題
なぜシャワーを38 °Cにできないのか?
熱い!冷たい!熱い!
ミカ: よし、白状する。今朝シャワーのノブを回したら熱湯になって、戻したら凍えるほど冷たくなって、それを6回くらい繰り返しちゃった。
ジューン: みんなそうなるよ!古いアパートのシャワーは最悪だよね。
テオ: でもなぜ難しいんだろう?欲しいのは38度という1つの数字だけ。ノブも1つ。簡単なはずなのに。
見てみよう。下のシャワーは、実際のもののようにノブとシャワーヘッドの間に長いパイプがある。ノブで混ぜたお湯がパイプを上ってくるのに数秒かかる。水の色がパイプに沿って進むのが見えるよ。
目標: お湯を38 °C(緑の帯)にして、10秒間ずっとそのままキープすること。オレンジのノブをドラッグするか、クリックして矢印キーで動かしてね。触った瞬間からタイマーが始まるよ。
どうだった?緑の帯を行ったり来たり、行き過ぎたり足りなかったりしたなら、みんな同じだよ。青い曲線を見てみよう。きっと神経質なヘビみたいにジグザグしているはず。
シャワーは壊れているのか?
ジューン: シャワーは壊れてると思う。ノブをぬるめにしたのに、それでも熱いままなんだ!
テオ: ふむ。2つのものをグラフにしてみよう。ノブが要求しているものと、ヘッドが実際に出しているもの。もし壊れているなら、この2つは全然一致しないはずだ。
オレンジの点線は、ノブの位置が要求している温度、つまりバルブでの混合温度。青い曲線は実際に届く温度。オレンジの曲線を時間方向にずらして、重なるか見てみよう。
ジューン: あっ!ゆっくり回したときは、オレンジの曲線を3½秒くらいずらすと、大きな波がだいたい重なる。急に回したときはぴったりは合わない。
ミカ: …お湯は遅れて、ならされるんだ!ノブの動きがそのまま3½秒後にコピーされるわけじゃない。
これが最初の手がかり。"熱すぎる"と感じたとき、感じているのは数秒前のノブの位置なんだ。そのときにはすでにもっと熱く回してしまっているから、戻すけど戻しすぎて、また同じことの繰り返し。
もっと頑張ればうまくいくんだろうか?
ミカ: わかった:優しすぎたんだ!間違っていたらもっと速くノブを回せば、もっと早く直せる。
濡れずにアイデアを試すために、ロボットの手を3つ作った。普通の手は、お湯の具合が目標から外れているほど、ノブを少し速く回す。ほとんどの人がそうするように。強めの手はまったく同じことを、2倍の勢いでやる。
まず予想しよう! 普通の手と比べて、強めの手はどうなる?
3つとも試してみよう。強めの手は冷たいのと熱すぎるのの間で暴れ回る。辛抱強い手はノブを約51%(あらかじめ計算した正しい配合)に合わせて、ただ待つ。これは楽々と勝つ。
テオ: つまり、遅れそのものが問題ではない。辛抱強い手にも同じ遅れがあるのにうまくやっている。問題は古い情報に、熱心すぎるほど反応することだ。
ミカ: じゃあ「外れているほど強く押す」は間違った直感なの?それって私の性格そのものなんだけど。
ジューン: でも辛抱強い手はズルをした。正しい答えを前もって知っていた。もし給湯タンクが冷えたら、誰かがトイレを流したら、正しいノブの位置は変わるのに、辛抱強い手は気づかない。
それが本当の謎だ。反応するもの(不意の変化に対応できる)が必要だけど、反応しすぎないもの(振れない)も必要。その考えは取っておいて。このコース全体がそれについてだ。
ここまでにわかったこと
わかったこと
- 目標(38 °C)と行動する手段(ノブ)があっても十分じゃない。どう反応するかが大事だ。
- 遅れがあると、いつも古い情報を感じることになる。シャワーは壊れているんじゃなく、遅れているんだ。
- 古い情報にもっと強く反応すると、振れは悪化する。良くはならない。
- ノブを一度合わせて待つのはうまくいく。でも、何も変わらない場合だけだ。
小さなドローンが風の中で2メートルの高さにぴたりと静止している。頭脳はまったくない。私たちと同じ問題を抱えている。どうやって解決するのだろう?