倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

9つのアルゴリズム

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

本屋でたまたま見つけて買ったんですが、当たりでしたね。 今や誰もが使っている検索サイトが裏で何をしてるのか? 大きなサイズのファイルを小さく圧縮するのはどういう原理なのか? こういった、PC 使ってたら誰もが使っている機能が、実際にはどういう風に実現されているのかということを、難しい専門用語などを使わずにフランクに説明されてます。 しかも1つ1つが無駄に長すぎず、ある程度コンパクトにまとまっているのも読みやすくて GOOD! 「アルゴリズム」というと計算機科学や数学などを駆使して一見想像も出来ないような結果を導き出す、といったイメージがありますが、本書では意外と簡単で具体的な説明がなされていて、専門的な予備知識を前提としないでいろいろなアルゴリズムが説明できたことに著者自身もビックリしてたとか(笑)

「アルゴリズム」というと小難しい雰囲気がでるせいか、本文中ではほとんど「トリック」という言葉に置き換えられてますが、この言葉はなかなか絶妙。 何か解決すべき問題(ページの検索やランキング、セキュアな通信など)があるときに、ちょっとひねりを加えて“うまいこと”やる手法、という感じが醸し出されております。 まぁもちろん、ちょっと込み入った数学を使う小難しいアルゴリズムもありますけどね。

各アルゴリズムは章に分けられてある程度独立して書かれてるようですが、完全には独立してないようです(検索エンジンのインデクシングとページランク公開鍵暗号法とデジタル署名)。 全体的には後ろにいく程難しくなってるかと思います。 最後の「決定不能性問題」はゲーデル不完全性定理などのような自己言及を駆使した証明といった感じのやつで、他のアルゴリズムとは毛色が違いますが、結構具体的で分かりやすい証明がなされているんじゃないでしょうか。

目次の一部:

  1. 検索エンジンのインデクシング
  2. ページランク
  3. 公開鍵暗号
  4. 誤り訂正符号
  5. パターン認識
  6. データ圧縮
  7. データベース
  8. デジタル署名
  9. 決定不能性とはなにか

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

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