こんにちは。プロクラスの吉田です。
今まで専門書籍しかなったものが、最近一般向けに改良されて分かりやすくなっている書籍がとても増えてきています。
そんな書籍の一つである「アルゴリズム図鑑」という書籍を見つけましたのでご紹介したいと思います。
この本は、表紙の通り、26種類の「アルゴリズム」が図解で書かれているという面白い本です。
目次
アルゴリズムとは?
アルゴリズムって聞いたことありますか?
NHKの子供向け番組でピタゴラスイッチというものがありまして、
その中のお笑い芸人の「いつもここから」さんが長年されている
「アルゴリズム体操」というコンテンツがあるのですが、
その体操をみていただくとわかる通り、一定の手順で行われる繰り返し手法とでもいいましょうか。
よく書かれている説明では「計算方法」とか「やり方」と書かれています。
まぁここでのアルゴリズムという使われている意味は、
「人と人とがぶつからないようになっている体操のやり方」ということになるのかな。。
この26種類のアルゴリズムは、もちろんコンピュータに計算(プログラム)させる方法なので安心してください(笑)
「ソート」でアルゴリズムの選択を間違うと。。。
さて、本題に戻りますね。
アルゴリズムで有名なのは「ソート」です。
ソートというと、1〜9の数字がバラバラに並んでいるもの「8、4、2、5、1、3、9、6、7」を
どうやって綺麗な数字の順番(ここでは小さい順)「1、2、3、4、5、6、7、8、9」に並び替えられるか、考え方の手順を示したものです。
詳しくは長くなるので、ここではやりません。たくさんインターネットに転がっていますのでググってください(笑)
もちろん、ソートはたくさん取り上げられていて(バブルソートからクイックソートまで6種類図解で載っています)
改めてみるとなるほどと思う訳なのですが、序章に書かれている、アルゴリズムの説明の中で、
50個の数字を並べる方法でどのアルゴリズムを選ぶかによっては、
高性能のコンピューター(1秒に1兆(= 1012)個の数字をチェックできるもの)を使ったとしても、
137億年経過しても答えが出ない方法「全探索アルゴリズム」になるものもあれば、
一瞬(0.0000000025秒)で答えが返ってくる方法「選択ソート」もあるという、
考え方によっては雲泥の差どころではない超効率的と超非効率な差が生まれてしまうことが書かれています。
アルゴリズムは人類の発展の鍵
コンピュータを使ったアルゴリズムの考え方は、「いかに効率的に考えられるか=生産性向上」がテーマです。
コンピュータはどこまでいっても突き詰めれば「単純作業を繰り返しする機械」です。
それを使って人間だけではできっこないことをさせていくわけなのですが、
如何に効率的なアルゴリズムを考え出して、コンピューターにインプットして様々なものを解決していくことがこの後の人類の発展の鍵です。
この書籍の活用方法
この本に書かれているのは、ソート以外にも、
電車乗り換えアプリなどで使われているアルゴリズムである「グラフ探索」といって、
駅(ノード)から駅(ノード)をどのルートが一番早いか、一番安いかを探索してくれる方法が
「ダイクストラ法」や「A*(エー・スターと読みます)」が絵で載っていたり、
セキュリティーのアルゴリズムである暗号の基本的な考え方から「ハッシュ関数」や
「鍵暗号方式」「ディフィ・ヘルマン鍵交換法」「デジタル署名」の仕組みが分かりやすく書かれています。
他にも「クラスタリング(グループ分けです)」というの考えや
「ユークリッドの互除法」という2つの数の最大公約数を求める世界最古のアルゴリズムと言われているものの解説があり、
とても理解しやすい書籍です。
この先人が考えてくれた基本的な、既に世界で使われている効率的な考え方は知っておくと何かの考えるときのヒントになり得ると思います。
興味あればぜひ手に取ってみてみてください。
ではでは。