こんにちは、LeeStyles(リースタイルズ)です。
今回は、「アルゴリズムとは?簡単に学べるIT用語」というテーマでお話していきたいと思います。
したがって、今回の記事は、
- 「アルゴリズムって何なのか知りたいけど、ITはよくわからないから簡単に教えて!」
- 「アルゴリズムってどういうときに使うのか簡単に知りたい!」
といった方には特におススメです。
そして、今回の記事のポイントは次の2つです。
- 何か1つの目的を達成したいとき、そこには様々なやり方が存在する。
- 最適な方法を追求していくことが、アルゴリズムの面白いところでもあり難しいところでもある。
それでは、さっそく解説していきます。
アルゴリズムとは

結論、アルゴリズムとはコンピュータが計算する方法です。
広義で捉えると、やり方や仕組みとも言えるでしょう。
したがって、コンピュータ設計者が、
「どのようなアルゴリズムを使って、サービスを作ろうかな。」
って呟いていたとしたら、それは「どのような計算方法(やり方/仕組み)で、サービスを作ろうかな。」って言っていることになります。
この目的と手段の関係はコンピュータに限らない話ですよね。どんなことであれ、世の中には1つの目的に対して様々な方法が考えられます。
例えば、「有名人になりたい!」という想いがあったとしたら、芸能事務所に所属してテレビに積極的に出演していく方法も考えられますし、最近はTwitter等のSNSで面白いツイートをして有名になることもできます。このように様々な方法がある中で、自分にとってはどの方法が最適かを考えていくわけです。
コンピュータも同じです。何かコンピュータに処理させたいことがあったとしたら、そこには様々な計算方法があります。そして、それらの中から、処理速度が十分に速いかや、処理が複雑すぎないかを比較したうえで、最適な計算方法(=アルゴリズム)を選択するのです。
アルゴリズムを実際に考えてみよう

アルゴリズムを簡単に理解するには実際に体験した方が早いと思うので、ここからはお題をもとに一緒にアルゴリズムを考えていきましょう。
今回のお題は「数当てゲーム」です。

ルールは簡単です。上の1~9の中からA君が1つの数字を選択し、その数字をBさんが当てていきます。
そして、Bさんのミッションは、「何回でも間違えてもいいが、出来るだけ少ない回数で数字を当てるように。」というものです。
さらに、Bさんの選んだ数字が間違っていた場合は、A君は自分の数字がその数字より大きいか小さいか答えてくれます。

つまり、例えばA君の数字が3の時にBさんが7を選択して間違えたら、BさんはA君から「僕の数字は7以下です。」というヒントをもらえるということです。
では、あなたならどのような方法でA君の選択した数字を当てていくでしょうか?
一番単純なのは1から順番に選択していくというものです。

でも、そのやり方ではA君の数字が9の時はとても時間がかかりますよね。しかも、せっかくのヒントも上手く使いこなせていない感じがします。
そこで考えるのが、考えられる選択肢の中から真ん中の数字を選択するということです。

どういうことかというと、まず始めは1~9のすべての数字が可能性として考えられるので、真ん中の5を選択します。
A君の数字の答えが仮に3だとしたら、BさんはA君から「僕の数字は5以下です。」というヒントをもらうことが出来ます。
すると、既に6~9に関しては違うということが分かりましたよね。
このように真ん中の数字を選択していくことで、どんどん選択肢を絞り込んでいくことが可能です。

今回は1~9という少ない範囲でのゲームでしたが、これが例えば1~999の範囲になったら1から順番に選択していくなんてバカバカしいですよね。
そのような莫大な数字になったときに、先ほどの真ん中の数字を選択していくやり方であれば、とても効率的に答えを導いていくことが出来ます。
以上のように、物事というものには様々なやり方が存在し、間違ったやり方を選択してしまえば永遠に目的を達成できませんが、反対に、正しいやり方を選択できれば非常に効率的に目的を達成することが可能です。
これがアルゴリズムの面白いところでもあって難しいところでもあります。
日常に潜んでいるアルゴリズム

ここからは、アルゴリズムが日常でどのように使われているのかについて、簡単にご紹介していきたいと思います。
今回、ご紹介するのは次の2つです。
- ソート(並び替え)機能
- おすすめ機能
ソート(並び替え)機能
1つ目がソート(並び替え)機能です。
皆さんは普段、ソート機能って結構使っていますよね。ビジネスマンの方であればExcelで資料作成をしている時にデータを数字が大きい順に並び替えることはよくあると思いますし、ゲームが好きな人であれば自分が所持しているキャラクターをレベルが高い順に並び替える経験は多いのではないでしょうか。
実は、これらのソート機能もアルゴリズムによって動いているのです。

例えば、上のように1~9の数字がバラバラに並んでいる時に、左から小さい順に並び替えたいとします。
そのような目的の時に考えられるアルゴリズムの代表的な1つとして、バブルソートというものが存在します。

バブルソートでは、一番右側から順番に2つの数字を比較していき、右側の数字の方が小さかったらその2つの数字を入れ替えていきます。今回の場合では、まず一番右側の9と6の2つの数字を比較し、6の方が9より小さいので2つの数字を入れ替えます。
その作業を繰り返すことで、最終的には下のように左から小さい順に並び替えることができるのです。

なお、このソート機能に関しては、他にも様々なアルゴリズムが存在しており、専門的な話になっていくため、ここでは詳細について割愛したいと思います。
おすすめ機能
何か知りたいことや買いたいものがあったら、皆さんはどのような行動を取りますか?
おそらく、今の世の中ではとりあえずGoogle検索をしたり、Amazonで商品検索をしたりすると思います。
そして、検索結果の上位に出てきたものから順番にチェックしていきますよね。
でもこれって、あなたは検索結果の上位に表示されるものの方が信頼が出来て、かつ価値の高いものだと無意識に思い込んでいますよね。
そこには、GoogleやAmazonといったサービスがしっかり記事や商品を見定めてくれているという、あなたたちのサービスに対する信頼が裏にあるわけです。
また、検索結果に対する信頼が損なわれずに積み重なっている理由として、実際にこれまでに上位に表示された記事を読んだり商品を買ってみた時に、それらが良質なもので満足した経験があるからですよね。
以上のような、良質な記事や商品を検索結果の上位に表示するという仕組みもアルゴリズムによって成り立っています。

Googleというものは、定期的にアルゴリズムを改善していくことで、より利用者が満足できる記事が上位に表示されるような仕組み作りに力を注いでいます。
上の画像を例にすると、まず「りんご」と検索する人はどのような情報を求めているのかをGoogleが試行錯誤します。
そして、Google側で検索者が求めているであろう情報を推測したら、その情報が書かれた記事を検索の上位に表示できるようなアルゴリズムを作ります。

Amazonに関しては、検索結果のアルゴリズムもそうですが、何か商品を自分が買おうとしている時に別の商品の購入もおすすめする「レコメンド機能」などにも力を注いでいますよね。
皆さんも実際に「こちらの商品もおすすめです。」みたいな表示を見た経験はあるのではないでしょうか。
今のあなたに出来ること

いかがでしたでしょうか。
今回は、「アルゴリズムとは?簡単に学べるIT用語」というテーマでお話してきました。
この記事を通して、少しでもアルゴリズムに関するあなたの知識が深まったら嬉しいです。
今のあなたに出来ることは、
- あなたが成し遂げたい目的に対して、最適な手段で行動できているか、見直してみる。
- 日常のどんなところにアルゴリズムが潜んでいるのか、アンテナを張って生活してみる。
- そのアルゴリズムはどのような仕組みになっているのか、考える癖をつけてみる。
だと思います。
最後までご覧いただき、ありがとうございました。
ABOUT US
LeeStyles(リースタイルズ)は働くあなたの自由と幸せを追求するメディアです。
このメディアでは、次の2軸をテーマに情報を発信していきます。
- 生産性の高いワークスタイルやライフスタイルの実現
- キャリアとプライベートの充実
また、YouTubeやSNSでも情報発信していますので、是非チャンネル登録とフォローをよろしくお願いします!