アルゴリズム思考術

現代人必携のライフハック指南書。『アルゴリズム思考術』巻末解説(小島寛之)

達人でも天才でないあなたも、ITテクノロジーを知らないうちに駆使している! コンパクトな文庫になっていっそう手に取りやすくなった『アルゴリズム思考術』の興味深いところを、わかりやすい数学読み物の著者として定評のある小島寛之氏があますところなく紹介する、珠玉の解説文を公開。

『アルゴリズム思考術』解説

小島寛之(帝京大学教授、数学エッセイスト

「アルゴリズム」という言葉は、現在ではコンピューター・プログラミングに関連する用語だが、広くは「問題を解決する手順」を意味する。本書は、さまざまなジャンルの問題を「アルゴリズム思考術」で解決するための指南書である。
 本書が扱う学問領域は、最適化数学、オペレーションズ・リサーチ(OR)、統計学、意思決定理論、工学、情報理論、経済学と非常に広範に及ぶ。こういうとひどく専門的な本と誤解されてしまうかもしれないがまったく違う。本書の多くの部分では日常的な問題を扱っている。たとえば、次のような問題は、皆さんにも身近なものだろう。
(1)結婚紹介所で紹介された候補者の何人目に決断をするべきか
(2)業績の向上には、定番の商品を強化するべきか、新商品を投入するべきか
(3)引き出しに放置しておいたたくさんの名刺をアイウエオ順に並べ替えるにはどういう手順が速いか
(4)書類をどう分類して収納したら、あとで必要になったときに見つけやすいか
(5)遅れている仕事を納期に間に合わせるために、どの作業を優先したらいいか
(6)本当に有能な部下とただ調子いいだけの部下をどう見分けたらいいか
 読者はきっと、これらのいくつか、あるいは全部に遭遇し、頭を悩ませたことがあるに違いない。本書はこれらの問題を専門的な知見から分析し、「アルゴリズム思考」で解決する方法を教えてくれるのである。
 実際、(1)は最適停止問題という分野における問題である。ある種の最適性を備える戦略として、「三七パーセントルール」を紹介している。このルールは、お見合いだけでなく、持ち家を売却する場合や、駐車場を選ぶタイミングなどにも利用できる。
(2)は、「多腕バンディット問題」と呼ばれる特有の問題群に属する。簡単に言えば、複数のスロットマシンがあるとき、どの程度試してから他のマシンに移動したらいいか、という案件だ。これに対しては、ロビンズという数学者が与えた「勝てばキープ、負ければスイッチ」という有望な戦略を解説している。
(3)は、ソーティング(並べ替え)のテクニックに関することだ。名称順や数字順にものを並べ替えることは、私たちが普段から経験する作業だ。しかし、そのやり方はみな自己流なのではあるまいか。こういうソーティングに関して、本書が紹介する「マージソート」という効率的な方法があることをご存知だろうか。実は筆者は知らなかった。筆者は、学生の期末テストを採点するとき、いつも番号順ソーティングをするのだが、面倒で辟易としていた。次回からこのマージソートを実行しようと思う。本書の解説を引き受けてよかった(笑)。こういうソーティングのテクニックは他にも活かすことができる。スポーツ大会での対戦組み合わせの設計から、検索エンジンの表示順序など用途は広い。
(4)は、作業場のスペースが限られるときの効率的な出し入れの問題で、本書では「キャッシュ」と呼んでいる。コンピューターの情報処理に関する用語で、「どの情報をとっておいてどの情報を捨てるか」という選択問題が与えられる。これに関して、本書は「ベラーディのアルゴリズム」という方法を解説する。このような選択問題は、キャパの限られた作業全般に関わっている。図書館での本の置き方、商品在庫の配置、あるいは家庭で不要なものを捨てる断捨離など。
(5)は、「スケジューリング」という私たちが常に頭を痛める問題である。スケジュール管理の失敗で、手痛い目にあうことも多い。これに対して、本書は製本工程について数学者ジョンソンの与えた効率的工程や、「ムーアのアルゴリズム」と呼ばれる戦略を解説する。何より、スケジューリングという問題を数理的にモデル化できることが驚きである。
(6)は、「オーバーフィッティング」という私たちの陥りがちな誤りに関する問題である。私たちは、何かの傾向を持つ現象に関して、その背後のメカニズムを予想する。その典型的な方法論が統計学だ。しかし私たちは、現象を的確に説明したいあまり荒唐無稽なモデルにはめ込みがちである。これがオーバーフィッティングと呼ばれる過失なのである。本書ではこういう過失から脱出するためのテクニックとして、「クロス確認」や「正則化」を紹介する。
 このような解説を読んでくると、アルゴリズムに関する学問は、数学のような「象牙の塔」の学問ではなく、「活き活きとして実践的」な学問だとわかるだろう。なぜなら、数学では「解が存在すること」を示せれば十分だが、アルゴリズム理論は「実際にどうやったら解を出せるのか」を追求する学問だからである。また、その手順が「真に最適」でなくとも、「有効性がある」ならば良しとする分野だからだ。
 本書の楽しみ方は多様にある。
 もちろん、ここまでに示したような「ライフハック(生活の効率化・最適化)」の参考に読むことができるが、それだけにとどまらない。
 第一に、本書には現代のビジネスシーンのエピソードがふんだんに登場する。GAFAの立役者であるアマゾン社のベゾス、アップル社のジョブズ、グーグル社の技術者たちなどだ。彼らは、「アルゴリズム思考術」をみごとにビジネスに応用し、大きな成果を出していることがわかる。現代のネット・ビジネスでは、アルゴリズムの知識がそのまま利益に直結していることに驚く。
 第二に、本書は、インター・ディシプリナリー(学際的)な内容を持っている。たとえば、「多腕バンディット問題」では、幼児の呼吸不全の治療法の治験に触れている。また、ソーティングとの関わりで行動生物学における動物の序列(エサや交尾の優先順位)を説明している。あるいは、「キャッシュ」の章では、高齢者のもの忘れは老化ではなく「学習」の一種だと(嬉しい)仮説を提示している。「ネットワーキング」の章では、言語学との関係が明らかにされる。
 第三に、本書には、魅力的な映画や音楽や文学がふんだんに紹介される。映画『いまを生きる』やブライアン・イーノの音楽など本文中に紹介されるものもあるが、多くは、節の冒頭に引用されている。著者たちの好奇心の広さがわかる。
 第四に、本書は最近話題となっている数学分野のわかりやすい啓蒙書としても読める。3章「ソート」で出てくる「計算量」を表すランダウ記号(O(n²) など)は、コンピューターの限界を問題とする「P≠NP 問題」の入り口になるし、6章「ベイズの法則」は、現在話題の中心である人工知能の機械学習の基礎となるものだ。7章「オーバーフィッティング」は、推測統計の重要なコンセプトである。また、大学の微積分で「ラグランジュ乗数法」を習った人なら、8章「緩和法」に出てくる「ラグランジュ緩和」がこれを一般化したものであるとわかるだろう。そして、9章「ランダム性」は、パスワードの安全性と関わる素数判定アルゴリズムや、シミュレーションによる確率の推定法などと関係する。このように、普通に勉強すると難解な数学知識へのわかりやすい入門篇となっている。
 第五に、最後の謝辞からわかるように、本書は膨大な専門家への取材によって成立している。著者たちのその努力によって、登場する多くの学者の来歴が仔細にわかるようになっていて、解説されている専門知識に深みと彩りが与えられている。
 以上のように、本書は、実によく考えられ、よく取材され、工夫された本であると言える。そして、ところどころに著者本人たちの「アルゴリズム思考術」が披露されているのも嬉しい。
 最後に、本書を足掛かりにもっと先に進みたい読者のために、筆者の知識範囲内で、関連する発展事項をガイドしておく。筆者が専門とする数学、経済学、意思決定理論の分野からピックアップしよう。
 まず、2章で出てくる「多腕バンディット」と呼ばれるモデルについて。これに対しては、経済学者マイケル・ロスチャイルドが一九七三年に興味深い論文を書いた。それは「二本腕バンディット」問題を解いて、商品の価格付けを分析した論文だ。解くのには、七一ページに登場するリチャード・ベルマンの与えたベルマン方程式というのを利用する。この論文でロスチャイルドは、売り手が「間違った価格付け」をしたままそれを変更しないことがある種の合理性から起こりうることを証明した。
 次は、11章に出てくる「情報カスケード」モデルだ。これは、投資家たちの間違った推論によってバブルが発生するメカニズムを説明するモデルだが、本書ではそういった推論の肝だけを比喩的に説明している。ビクチャンダニらがこの論文で設定しているプレーヤーの推論方法は実は6章の「ベイズの法則」なのである。ベイズの法則は人間にとって自然でしばしば有用な推論だが、時にこのような悪戯をするのだ。
「ベイズの法則」についてはもう一つある。この法則を使った「ベイズ統計」が現在、ビッグデータ社会の花形となっている。ベイズ統計を可能にするのは、コンピューター・シミュレーション技術である。それは、「モンテカルロ・マルコフチェーン(MCMC)」と呼ばれる技法であり、9章「ランダム性」三三五ページに触れられているものの発展形だ。
 10章「ネットワーキング」に現れる「ビザンチン将軍問題」は、ゲーム理論において、「共有知識」として定式化され、「グローバル・ゲーム」と呼ばれる魅力的な理論に発展している。また、最近話題の暗号通貨の「ブロックチェーン技術」とも関連する。
 さらには、11章で触れられている「ナッシュ均衡のアルゴリズムの困難性」について。本書四二四ページでは、パパディミトリウがこの問題を「手に負えない問題」と証明した、とある。このことをもうちょっと詳しくいうと、この問題が「PPAD 完全」と呼ばれるクラスに属する問題だと証明したのである。「PPAD 完全」というのは、ミレニアム問題の一つ「P≠NP問題」に表れる「NP完全」に対応する概念で、「これが多項式時間で計算可能なら、このクラスに属するすべてが同じになる」という意味だ。したがって、「手に負えない」と評価されるのである。
 本書で「アルゴリズム」に目覚めた読者は、是非、発展したこれらのアイテムに挑戦してみてほしい。しかし、それより何より、読後の新鮮なまなざしで、自分の仕事や日常生活を見返して、そのどこかに「アルゴリズム思考術」が応用できないかを考えてみると良いのではないか。そうしてみると、自分の日常がワクワクするゲーム盤に様変わりしていることに気が付くだろう。


アルゴリズム思考術』(ブライアン・クリスチャン&トム・グリフィス、田沢恭子訳、ハヤカワ・ノンフィクション文庫、本体1100円+税)は、早川書房より絶賛発売中です。