時は流れ、曲も終わった。見るこれは実にわかりやすくて興味深いアルゴリズムを紹介する本だ。僕が駆け出しプログラマだった頃アルゴリズムを知ることは大事なことだと僕に言って聞かせた。いえ僕はわかりづらい本ばかりを読んでいたのでその苦行には全然耐えられなかった記憶がある。30代にもなってさすがにアルゴリズムってなんぞやとは言えないし、もうちょっと勉強しなおしたいと思っていたところでこの本を見つけた。おもしろくて特別な知識がなくてもわかるように書かれてある。それこそが本書の売りであるわけだ。イントラダクションから結論を書いているのが良い。そもそも、アルゴリズムとはいったい何なのか。簡単な答えを言えば、アルゴリズムとは、問題を解決するために必要な手順を正確に規定したレシピである。いいねズバリその通り。個々のステップは、絶対的に正確でなければならず、人間の直観や推測を必要としてはならない。第2章にはwebと検索についてのアルゴリズムを持ってきている。このテーマは読者の気を引くのに十分なキャッチーさがある。検索には、マッチングとランキングの2段階がある。第1(マッチング)段階終了後は、マッチした数千から数百万ものページが残される。第2(ランキング)段階では、これらが関連性の高さ順にソートされる。じつにわかりやすいweb検索の偉大なアルゴリズムは2つの段階に絞られている。ウェブ検索エンジンのインデックスは、本の索引と同じような仕組みになっている。本の「ページ」は、ワールドワイドウェブではウェブページに置き換わり、検索エンジンはウェブ上のすべてのウェブページに別々のページ番号を割り当てる(確かにページはたくさんある。最新の数字では数十億と言われる。コンピュータは、大きな数を扱うのがとても得意だ)。僕のブログは1ページ目、はてブのTOPページは2ページ目というような感じでインデックスを割り合てている。ウェブ検索エンジンのインデックスは、本の索引と同じような仕組みになっている。本の「ページ」は、ワールドワイドウェブではウェブページに置き換わり、検索エンジンはウェブ上のすべてのウェブページに別々のページ番号を割り当てる(確かにページはたくさんある。最新の数字では数十億と言われる。コンピュータは、大きな数を扱うのがとても得意だ)。コンピュータは、まずあらゆるページに含まれるすべての単語をまとめたリストを作り、次にそのリストをアルファベット順に並べ替えてインデックスを構築する。その結果を「ワードリスト」と呼ぶことにしよう。この場合は、「a、cat、dog、mat、on、sat、stood、the、while」である。その次に、コンピュータはページをざっと見て単語を1つずつ探していく。(省略)検索エンジンは、数百億ものウェブページから正しい結果を返さなければならないことを忘れてはならない。この問題に対する答えこそ、現代の検索エンジンを実現させた最初の本当にすばらしいアイデアである。それは、インデックスにただページ「番号」を保存するだけではなく、ページ内の「位置」も保存するというアイデアだ。ここでいう位置は、特に難しいものではない。ページのなかで単語がどこにあるかを示していればよい。----インデックスに単語のページ内の位置情報を組み込むと、大量のウェブページを読み込まなくても、インデックスの数行を見るだけでフレーズ検索のヒットを見つけることができる。この単純な位置情報トリックこそ、現代の検索エンジンを動かすための鍵の1つなのである。このように、簡単な説明と問題点を指摘し、さらにその問題を解決するアルゴリズムを結論から説明していくという風に本書は進む。僕が興味深く読んだのは第5章の誤り訂正符号。これは自動的にデータの誤りを見つけて訂正する方法。これは今ほっとな画像解析などに必要なアルゴリズム。言わずと知れたzip圧縮などの理論だ。この3つの章はわかりやすいし「なるほどなあ」と手を打つ理論で、難しいことはないのだ。第8章のデータベースはプログラマに馴染みが深いものだが、素人だととっつきにくいかもしれない。第9章のデジタル署名と第10章の決定不可能性はぶっちゃけ読みにくい。読んだ感じだと何言っているのかわからない。最後の方に持ってきたのかもしれない。いずれにせよアルゴリズムを面白く理解できるという点について異論はない。アルゴリズムって意味不明なんだよなぁと思っているプログラマは読んで見るべき一冊だ。関連記事2019-04-24「広告費で運営しているので広告ブロックしないでください」というクソ理論webを巡回していると時折見かけるのが、adblockを検知してメッ...2018-12-21AIが判断できない人間の悪意イギリスの大学進学に書類を6割ぐらいは揃えた。Feeling(カンを信じろ)金曜日、ついに2週間最後の〆テストの日である。今回は特...2018-08-17若くないと思っていたが浦島太郎になっているとはいつも通り授業を受けに行く。(6)月別アーカイブはてなブログをはじめよう!floyd0さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。