アルゴリズムを知ろう
アルゴリズムとは
「アルゴリズム」とは何でしょうか? この平凡で陳腐な問いから書き出し始めるのには幾何かの抵抗がありましたが、初心忘れるべからずということで、踵を返して「アルゴリズム」という意味に立ち戻るところからはじめましょう。
エンジニアとしてIT業界に席を置き、いくらかの年月が経ちました。「アルゴリズム」という言葉に触れる機会も何度かあり、様々な仕組みを見てきたと思っています。そのうえで、個人的な一つの答えとして、「アルゴリズム」とは問題解決のプロセスを指す言葉だと結論づけています。
少なくとも、今のところはそう思っています。大袈裟かもしれませんが、全ての問題解決のプロセスはアルゴリズムであり、世界はアルゴリズムで構成されている、そう主張したいわけです。
そして、それは人類にとっての万能薬であり、または非常に強力な武器にもなります。人類の最大の発明は「複利」だとアルベルト・アインシュタインは語ったそうです。「複利」は一見するとただの計算式かもせれません、ですが、システムに導入されれば強力な力を発揮します。
かっこいいではありませんか。我々も語りましょう、現代で最もパワフルな武器は「アルゴリズム」だと。
アルゴリズムの手引き
本サイトの原動力にもなった、一冊の本をご紹介します。
タイトル:”Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today’s Computers“ (邦題:世界でもっとも強力な9のアルゴリズム)
この本では、「アルゴリズム」を以下のように定義しています。
“アルゴリズムとは、問題を解決に必要な手順を明確に規定したレシピ”
確かに、アルゴリズムは「レシピ」にとても良く似ています。レシピには、明確な分量と決められた手順さえ守れば、ある程度は誰でも料理を作ることができるという性質があります。アルゴリズムの特徴も概ね一致するのではないでしょうか。
いや、もっと単純なのでしょう。コンピュータを組みあわえれば、無知でも強力なアルゴリズムを使うことができるのがIT革命の副作用であり、それを許容する社会が形成され、仕組みを理解するということ自体時代遅れの産物になってしまっているのかもしれません。
だが、そんな世の中だからこそ仕組みを理解することが、「人新世」には必要なのではないだろうか? ならば、アルゴリズムを学ぶことは、とても価値のあることなんじゃないか?
そう筆者は信じています。そして、それを共有できる環境が「人新世」にあることを感謝しています。
どうアルゴリズムを学んでいくか
アルゴリズムを考えるには、人類の賢い頭脳冴え有れば事足りますが、実際にそれを使うにはアウトプットが必要でしょう。どこにアウトプットするか?
もちろんよく使っているコンピュータ(パソコン)です。手元のパソコン1台に、アルゴリズムの英知はたっぷりと詰まっています。それを使わない手はないでしょう。
なのでここでは、コンピュータに関わるアルゴリズムを中心に説明していきます。特段、まずはコンピュータの仕組みを理解するのが良いでしょう。難しいと思う概念と、分かりにくい言葉は避けましょう。
なるべく強力なウェポンとなる、単純明快なアルゴリズムを紹介することを心がけます。もしかしたらアルゴリズムの範疇を超える題材もあるかもしれません。ですが、ここで目指すのは、誰もが自身の使っている端末(スマホだったりPCだったり)が可愛く見えてくるような、意識改革です。
「これから私のささやかな贈り物…… 姿、形、オブジェクト、もの、思考、理解、動き、回転といったものでいっぱいになった途方もない愚かな精神」
--ウィリアム・シェイクスピア