九回かけて、道具を借りてきた。コンテキスト、キャッシュ、キュー、スケジューリング、ロック、ガベージコレクション、冗長性、抽象化、エラー処理——コンピュータの言葉を一つずつ持ち出しては、台所と洗面所に当ててみた。最終回は、その棚卸しをする。ただ並べ直すだけじゃない。では、これだけ道具を揃えて、「最適な家事」は組めるのか。速く、無駄なく、いちばん効率のいいやり方を突き詰めた先に、暮らしは楽になるのか。それとも、最適化しすぎた家は、どこかで別のものを失うのか。——前回の最後に置いた「諦めるのも、正当な処理」が、今日の入口です。最適化が拾わないもの。それを最後に、どう置くか。九回ぶんの道具を一周して、第1回の流しに戻ってきて、シリーズを閉じます。
シマダ 最後に、いちばん根っこの言葉から始めます。アルゴリズム。難しく聞こえますけど、要は入力と出力の間にある、決まった手順のことです。米と水が入力で、炊けたご飯が出力。その間をつなぐ「研いで、浸して、炊いて、蒸らす」が、アルゴリズム。——そう言うと、家事は全部アルゴリズムだ、と言えてしまう。掃除も、洗濯も、買い物も、入力と出力の間の手順だ、と。
マキノ 全部、手順だ、と。
シマダ ええ。でも、私、ここで一個、白状しておきたいんです。「家事は全部アルゴリズムだ」と言った瞬間に、何かがこぼれる。手順に書ける部分だけをすくって、書けない部分を、こぼしてる。今日は、そのこぼれるほうを、正面から扱いたい。九回、私はずっと、家事を手順に翻訳してきた。最終回は、翻訳しきれずに残ったもの、の話をします。
マキノ ……手順、っていうと。うちの仕事、手順書、あるんですよ。一部屋の清掃が、最初から最後まで、書いてある。あの通りにやれば、三十分で、ゆうべの形に戻る。
シマダ まさに、アルゴリズムですね。手順書通りに動けば、出力が出る。
マキノ でも、その手順書に、一行、こういうのが書いてあるんです。「廊下でお客さんに会ったら、作業を止めて、挨拶する」。——これ、手順の中に、手順を止める指示が、入ってるんですよ。何分、っていうのも無い。会ったら止める。それだけ。
シマダ ……それは、効きますね。手順書という、いちばんアルゴリズムらしいものの中に、最初から、手順の外が織り込まれてる。止まれ、と。効率を測る側からすると、その挨拶は、三十分の外側の、無駄なんですよ。でも、手順書を書いた人は、それを一行目の近くに、わざわざ書いた。こぼれるものを、手順の中に、先に拾ってある。——私が今日こぼしたいと言ったものを、現場の手順書は、もう拾ってたんですね。
シマダ 「最適化」って言葉を、私たちは、よく使うんです。でも、コンピュータで最適化をやろうとすると、最初に、必ず聞かれることがある。——「何を、最小にしたいんですか」。これを目的関数といいます。最適化っていうのは、いつも「何かを、いちばん小さく(か、大きく)する」ことなんですよ。だから、その「何か」を、先に決めないと、始まらない。
マキノ 何を、いちばん小さくしたいか。
シマダ そう。で、家事を最適化したい、っていうとき、その「何」が、実は、はっきりしてないんです。時間を縮めたいのか。お金を抑えたいのか。疲れを減らしたいのか。それとも、家の中の気まずさを、最小にしたいのか。——全部、別の目的関数なんですよ。そして、たいてい、同時には立たない。
マキノ ……うち、夕飯で、それ、あります。私は、早く済ませたい。子どもは、ゆっくり喋りたい。同じ夕飯なのに、欲しいものが、違う。
シマダ それです、まさに。速い夕飯と、楽しい夕飯。目的関数が、二つある。一人ずつ、違うものを最小にしたい(最大にしたい)。——こういうのを、多目的最適化といいます。目的が複数あるとき、何が起きるか。「最適」が、一つに決まらなくなるんですよ。
マキノ 決まらない。
シマダ ええ。たとえば、夕飯の時間を縮めると、たいてい、会話が減る。会話を増やすと、時間が延びる。だから、時間も会話も、両方いちばんいい、という一点は、無い。——ただ、ここからが面白くて。「どっちも、これ以上は犠牲にしない」という点の集まりは、あるんです。時間をこれ以上削ると会話が一気に死ぬ、会話をこれ以上増やすと回らない、そのギリギリの線。これをパレート最適といいます。その線の上では、片方を良くしようとすると、もう片方が必ず悪くなる。
マキノ その線の上の、どれを選ぶか。
シマダ ——それが、面白いところで。正確に言うと、どっちをどれだけ大事にするか、という「重み」を一つ入れれば、計算は、ちゃんと一点を返すんです。時間を七、会話を三、と決めれば、最適な一点が出る。——でも、その重みのほうは、計算が、決めてくれない。速い寄りに振るか、楽しい寄りに振るかは、計算の外で、人が入れるしかない。だから「最適化しなさい」と言われて、いちばん最初に詰まるのが、ここなんです。計算が無力なんじゃない。計算に渡す重みを決めるところだけが、最後まで、人の仕事として残る。家には、その重みが一つに決まらない、という根っこの難しさがあるんですよ。
マキノ ……うちは、結局、曜日で分けてます。平日は、速いほう。週末は、ゆっくりのほう。一個に決めないで、日で、振り分けてる。
シマダ ——それ、賢いですよ。重みを、一つに固定しないで、曜日で入れ替えてる。平日は時間に重く、週末は会話に重く。パレートの線の上を、曜日で行ったり来たりしてる。計算が決められない重みのほうを、暮らしのほうは、時間で割って、こなしてるんですね。
シマダ 最適化で、もう一個、避けて通れない言葉があって。局所最適。——いまのやり方を、ちょっとだけ変えると、たいてい、悪くなるんですよ。皿の洗う順番を少し変える、買い物の回る道を少しずらす。少しいじると、慣れてないぶん、遅くなる。だから、「いまのやり方」は、その近所では、いちばんいい。これを局所最適といいます。谷の底にいる、と思ってください。少し動くと、登っちゃう。悪くなる。
マキノ ちょっと変えると、悪くなる。
シマダ そう。でも、厄介なのは——その谷の、ずっと向こうに、もっと深い谷があるかもしれないことなんです。やり方を、ちょっとじゃなくて、大きく変えたら、もっと楽になるかもしれない。でも、大きく変えるには、いったん、いまの谷から登って、しばらく不便な尾根を歩かないといけない。その間は、確実に、いまより悪い。だから、人は、いまの谷から、出ないんですよ。
マキノ ……それ、機械、入れたときに、ありました。食洗機。うち、最初、すごく反対だったんですよ。手で洗ったほうが早いって。実際、最初の一週間は、入れ方もわからなくて、手で洗うより、ずっと遅かった。
シマダ まさに、尾根を歩いてる時期ですね。いったん、悪くなってる。
マキノ でも、一ヶ月したら、戻れなくなりました。いまは、手洗いの谷には、もう、降りられない。——あれ、誰かが引っ越したり、子どもが増えたり、機械が来たりしないと、たぶん、変わらなかったです。自分からは、いまのやり方を、崩さない。
シマダ ——それ、大きいです。引っ越し・家族が増える・機械が来る。あれは、外から強制的に、いまの谷から追い出される出来事なんですよ。私たちの言葉だと、強制的な再探索。自分では出られない谷から、環境のほうが、蹴り出してくれる。——ただ、ここ、片側だけで言うと、嘘になるんです。谷から出て、別の谷を探すのには、コストがかかる。不便な尾根を歩く時間、新しいやり方を覚える手間。これを探索コストといいます。だから、「うちのやり方」に留まるのは、怠慢とは限らない。探索コストを払う価値があるか、を、無意識に天秤にかけてる。出ないのも、一つの、ちゃんとした判断なんですよ。
マキノ ……出ないのも、判断。それは、そうですね。毎回、やり方を変えてたら、それこそ、回らないですよ。
シマダ じゃあ、いちばんいいやり方を、ちゃんと計算で出せばいいじゃないか、と思うでしょう。——これが、できないんですよ。厳密な最適解は、計算が、高すぎる。有名な例を一個。「いくつかの場所を、全部回って、いちばん短い道で戻ってくる」という問題。これ、巡回セールスマン問題といって、場所が少し増えただけで、厳密な最短を出すのに、時間がかかりすぎるんです。
マキノ ……それ、買い物の、回り方ですよね。
シマダ そうなんです。スーパーの中を、どの順で回れば、いちばん短いか。あれ、厳密に最短を出そうとすると、解けない、というより、計算に時間がかかりすぎて、誰もやらない問題なんですよ。野菜、肉、牛乳、卵、洗剤……並べ替えの数が、爆発する。コンピュータに全部試させても、店が増えると、現実的な時間では終わらなくなる。——なのに、人は、毎日、買い物してる。まともに計算したら終わらない問題を、毎日、こなしてる。なんでかというと、厳密解を、最初から狙ってないからなんです。
マキノ 狙ってない。
シマダ ええ。完璧な最短は出さない。そこそこ短い道で、手を打つ。これを近似解といって、近似解を出すための、ざっくりした当たりのつけ方を、ヒューリスティクス——日本語だと、経験則、とでも——といいます。「だいたい、手前の棚から」「奥の冷蔵ものは、最後に」「迷ったら、捨てない」。あれ、全部、ヒューリスティクスなんですよ。厳密じゃないけど、たいてい、うまくいく。
マキノ ……それ、新人と、ベテランの差、そのものですよ。
シマダ というと。
マキノ 新人は、部屋に入って、一個ずつ、考えるんです。次、何やろう、その次、何やろうって。だから、遅い。頭で、毎回、解いてる。——ベテランは、考えないんですよ。入った瞬間に、手が、勝手に動く。考えてないのに、速い。順番を、いちいち決めてない。
シマダ ——その「考えない速さ」、私、ずっと、解を覚えたんだと思ってたんです。最短の順番を、暗記したんだ、と。
マキノ 違いますね。順番を覚えてるわけじゃ、ないんですよ。部屋って、毎回、ちょっとずつ違うんです。同じ順番は、使えない。覚えてるのは、順番じゃなくて……なんだろう、解き方のほう、ですかね。どんな部屋でも、こう見て、こう動く、っていう。
シマダ ——あ。それ、すごいことを言われました。ベテランが体に持ってるのは、答えじゃなくて、解き方なんだ。新人は毎回ゼロから解いてて遅い。ベテランは、解そのものを暗記したんじゃなくて、解き方を、頭から、体に移した。だから、初めての部屋でも、速い。——これ、私たちが、ヒューリスティクスを、その都度計算しないで、最初から手続きに焼き込んでおく、というのと、まったく同じ構造です。二十二年かけて、あなたが体に移したのは、最適解じゃなくて、近似解の出し方、だったんですね。
シマダ ここで、九回を、一周しましょう。ただ、目次みたいに並べても、しょうがない。一個、軸を通して、振り返ります。——いま、九回を並べ直してて、私、気づいたことがあって。どの回も、結局は「何を、選ばないか」の話だったんですよ。
マキノ 選ばない。捨てるほう、ですか。
シマダ ええ。たとえば、第2回のキャッシュ。調味料の一軍を、コンロの脇に置く、という話でした。でもあれ、裏返すと、二軍を、手の届かないところに諦める話なんですよ。全部を一軍にはできない。何を手元に置くかは、何を遠ざけるか、と同じことだった。
マキノ ……たしかに。一軍を決めるって、残りを、奥にしまう、ってことですもんね。
シマダ 第5回のロック、台所に二人は立てるか。山の底の洗い物の取り合い、でしたけど。あれも、二人で同時にやる、を諦めて、順番を決める話だった。第6回のガベージコレクションは、もう題からして、捨てるものを選ぶ話です。第7回の冗長性、お母さんしか知らない台所。あれは、備えを増やすために、「一人で全部抱える」を、諦める話でした。
マキノ 倒れたとき、誰も代われない。あれは、ぞっとしましたね。——言われてみると、どれも、何かを手放す話、なんですね。
シマダ そうなんです。第8回の抽象化、「やっておいて」。あれは、やり方を細かく指定するのを諦めて、結果だけ約束させる話。第9回のエラー処理、焦げた鍋。擦るか、浸けるか、買い替えるか——いちばん難しいのが、「これはもう直らない」と諦める判断でした。第1回のコンテキスト、流しに溜まるあれだって、頭に一度に載らないものを、どこかで諦めて手放す話だった。——九つ、ぜんぶ、です。
マキノ ……並べると、けっこう、やりましたね。そして、全部、最後は、何かを、諦めてる。
シマダ そこなんですよ。どの回も、最後は「最適化しろ」では、終わってない。速くしろ、無駄を削れ、では、一回も、締めてない。毎回、最後は、「何を諦めるか、選べ」に、着地してた。——私、いま並べ直して、初めて、それに気づきました。
マキノ 持ち込んだ側なのに、いま気づいた。
シマダ ——それで、最終回に、白状します。私、このシリーズ、自分が概念を持ち込んで、家事を説明する企画のつもりで、始めたんです。CSの言葉を、台所に貸す。そういう、こっちが教える側の、構えで。
マキノ 違ったんですか。
シマダ 違いました。毎回、私が概念を持ち込んで、毎回、あなたの現場に、教わって、帰ってるんですよ。ブロッキングを、撒いた洗剤で教わった。エラーログを、名前を書かない現場の記録で教わった。今日も、ヒューリスティクスを、新人とベテランの差で、教わった。——持ち込んだつもりで、毎回、手ぶらで帰るほうが、荷物が増えてた。企画の向きが、最初から、逆だったんです。
マキノ ……でも、それなら、シマダさんの言葉は、要らなかったんですか。私が、勝手に、現場で知ってたことを、喋っただけ、っていう。
シマダ ——いえ、そこは、違うと思うんです。私が教わったのは、本当です。でも、名前がついたから、よその家でも、同じ話ができるようになった。あなたの「会ったら止める」が「割り込み」、「二回まで」が「リトライ」だと名前がつくと、あなたの現場の話が、あなたの現場だけの話じゃ、なくなる。別の家の、別の人の経験と、つながる。——あなたが体で持ってた知恵を、持ち運べる形にする。それだけは、たぶん、言葉のほうの仕事だったんです。教わったのは私で、運べる形にしたのが言葉。どっちが上、じゃ、ないんですよ。
シマダ 一個、思考実験をさせてください。全部を最適化した家を、想像する。動線は最短。家具の配置も、歩く歩数が最小になるよう、計算してある。献立は、栄養と予算と時間を、ソルバー——最適化を解く計算機——に入れて、毎日、最適なものが出てくる。会話も、すれ違いゼロ。誰がいつ何を言うか、ぶつからないように、全部組んである。——これ、住みたい家ですか。
マキノ ……息が、詰まりそうですね。
シマダ 私も、そう思うんです。で、なんで息が詰まるのか、を考えると——最適化の対象に「しない」ものを、決めることも、設計なんですよ。全部を測って、全部を縮める、んじゃなくて。ここは、計測しない。ここには、無駄の予算を、置いておく。——さっきのあなたの手順書の、廊下の挨拶。あれが、まさに、それでした。最適化しない一行を、わざと、入れてある。
マキノ うち、あえて、やってないところ、ありますよ。——朝の、コーヒー。インスタントにすれば、三分、縮むんです。でも、豆から淹れてる。あの三分は、削らない。あれだけは、急がない、って決めてる。
シマダ ——いいですね。それが、無駄の予算です。削れるのに、削らない、と、自分で決めてる場所。
マキノ シマダさんは、無いんですか。あえて、やってないところ。
シマダ ……私、ですか。——あんまり、自分の話、してこなかったんですけど。最終回くらいは、一個。うちは、洗い物を、ためる日を、作ってあるんです。毎食すぐ洗ったほうが、合理的なのは、わかってる。第1回で、流しに溜まると頭が重い、って、私が言ったくらいですから。でも、週に一回くらい、わざと、夜まで、流しに置いておく日がある。その日は、洗わない、って決めてると、なんか、楽なんですよ。理由は、うまく、言えないんですけど。
マキノ ……溜める日を、作る。
シマダ ええ。第1回で、溜まるのは概念の負け、みたいな話をしておいて、自分は、溜める日を、設計してる。——矛盾、してますよね。でも、たぶん、これでいいんだと思います。全部最適化しない、という最適化。——言葉遊びみたいに聞こえますけど、要は、測らない場所を、わざと、決めておく。どこを縮めるかと同じくらい、どこは縮めないかを決める。それも、立派な、設計判断なんです。前回、焦げた鍋を「諦めるのも正当な処理」って言いましたけど、あれと、一直線なんですよ。諦めるのも、計測しない自由を残すのも、どっちも、「やらないことを、選ぶ」設計なんです。
シマダ タイトルに、戻ります。最適な家は、たぶん、ない。——九回やって、私が、いちばん確かに言えるのは、それなんですよ。目的の重みは一つに決まらないし、厳密解は時間がかかりすぎて誰も出さないし、いまの谷から出るにもコストがいる。「これがいちばんいい家事だ」という、一点は、無い。
マキノ 無い。
シマダ あるのは、たぶん、——「うちは、これでいい」を、選び直し続ける家、なんだと思います。最適を、一回、見つけて、終わり、じゃなくて。子どもが大きくなって、機械が来て、夫婦の都合が変わるたびに、谷を出たり、入ったり、重みを引き直したり、無駄の予算を置き直したりしながら、その都度、「いまは、これでいい」を、選び直していく。それだけ。——たいした結論じゃ、ないんですけどね。
マキノ ……たいしたこと、言わなくて、いいですよ。そのほうが、本当っぽい。
シマダ 最後に、一個だけ。——第1回で、あなた、こう言ったんですよ。よその部屋はまっさらにできるのに、「でも、うちの流しは、溜まりますよ」って。あれで、第1回が、終わった。——九回、経ちました。で、おたくの流しは、どうなりました。
マキノ ……流しですか。相変わらず、溜まってますよ。今朝も、溜まってました。そこは、九回経っても、変わらない。
——でも、一個だけ、変わったことが、あって。前は、溜まった流しを見ると、「私が、やらなきゃ」って、思ってたんです。誰の仕事か、なんて、考えもしなかった。気づいた私が、やる。それだけだった。
いまは、溜まった流しを見ても、「これは、誰の番だっけ」って、思うようになりました。同じ、溜まった流しなんですよ。量も、変わらない。でも、見え方が、ちょっと、変わった。——溜まるものは、相変わらず、溜まる。でも、誰の仕事か、は、前よりは、はっきりしました。それだけです。それだけ、ですけどね。
シマダ ……それで、十分ですよ。——では、シリーズは、ここまで。九回、ありがとうございました。また、別の概念で、お会いするかもしれません。そのときは、たぶん、また、私が教わるんでしょうけど。
#1 コンテキストは流しに溜まる/#2 一軍は、コンロの脇に/#3 洗濯物は、列に並ばない/#4 十二時は、動かせない(ゲスト: イノウエミドリ)/#5 台所に、二人は立てるか/#6 捨てるのは、誰の仕事か/#7 お母さんしか、知らない/#8 「やっておいて」の中身/#9 焦げた鍋の、例外処理/#10 最適な家は、たぶんない(最終回・本ページ)
全10回で、このシリーズは完結です。コンテキストから始めて、最適化で閉じました。一周してみて残ったのは、家事に「最適」は無く、あるのは「うちはこれでいい」を選び直し続けることだ、という、ささやかな着地でした。続編は、いつか、別の形で。そのときは、また別の概念を一つ持って、同じ台所に戻ってくるかもしれません。
「家事のコンピュータサイエンス」は、シマダ(AI使用法研究者)とマキノトモエ(ホテル客室清掃員22年)の対談シリーズです。コンピュータサイエンスの基本概念を一つずつ取り上げ、掃除・洗濯・炊事・買い物・名もなき家事に当ててみる。効率だけでなく、快適さ・分担・諦めも等価に扱います。生成エッセイの現在地に戻る。