k-takahashi's blog

個人雑記用

世界でもっとも強力な9のアルゴリズム

世界でもっとも強力な9のアルゴリズム

世界でもっとも強力な9のアルゴリズム

この本を読んだ後も、あなたがコンピュータユーザーとしてスキルを大幅に向上させることはないだろう。しかし、あなたがあらゆるコンピュータ的な機械で日常使っているアイデアのすばらしさをずっと深く鑑賞できるようになるはずだ。
(No.327)

つまり、本書は実用書ではない。しかし、本書が扱っている「強力な9つのアルゴリズム」とは、

の9つのことである。最後の「決定不可能性」はともかく、他の8つが重要であることはすぐに分かるだろう。その本質が解説されている。しかも

これら大きなアイデアは、どれもコンピュータプログラミングやコンピュータ科学の予備知識を一切必要とせずに説明できることだ。
(No.4132)

ということで、コンピュータの専門教育を受けていない人にでも充分理解できるように書かれている。個人的な感覚だと、難易度的には数学ガールの本編よりも易しい。中学生には難しいかもしれないが高校生なら充分理解出来ると思う。
そこまで分かりやすい解説をしているところが本書の最大のセールスポイントである。


特に、公開鍵暗号を絵の具で例えているのは、今まで私が読んだなかで一番分かりやすい解説だと思う。
データベースの章ではソフト技術者が簡単に「アトミック」と言っていることがいかに実現困難なな難しい課題であるか、それが以下に巧妙に解決されているかを丁寧に示している。ここも私が今まで読んだ中で一番分かりやすいと思った。初めてデータベースの本を読んだとき、正直ここはよく分からなかったところなんですよ。


最後の「決定不可能性」のところは、さすがに一段階解説が長く複雑になっているが、でも背理法が理解できさえすればなんとかついていくことはできるだろう。そして、それがチューリングの停止性問題と同じであること、更にはチャーチ=チューリングのテーゼ、そして人間の知性の限界の話にまで繋げていく。


初学者に向けてもお薦めできる一冊だけれど、ある程度コンピュータやアルゴリズムに詳しい人も、「ここまで分かりやすく説明できるのか」と感動できる一冊だと思う。

タイトル

原題は "Nine Algorithms That Changed the Future:The Ingenious Ideas That Drive Today's Computers"(未来を変えた9つのアルゴリズム:現代のコンピュータを動かす独創的なアイディア達)。こちらの方が、内容が分かりやすいかな、と思う。

モバイル

面白いなと思ったのは、まとめのところにある以下の指摘。

新しいテクノロジーが現れたからといって必ずしも新しいアルゴリズムが生まれるものでは無いことに注意したいたとえば、1980〜1990年代にかけてのラップトップコンピュータのめざましい発展について考えてみよう。ラップトップはコンピュータをアクセスしやすく持ち運べるようにしたため、人々のコンピュータの使い方を革命的に変えた。そしてラップトップは、画面技術や電源管理テクニックなどの様々な分野で重要な進歩を生み出した。しかし、ラップトップ革命からは偉大なアルゴリズムは生まれなかった。
(No.4073)

これ、モバイルのことだよな。モバイルが生み出したもの、与えた影響は確かに巨大なのだけれど、本書で扱われているようなレベルのアルゴリズムは生まれてないと言えるかもしれない。