「アルゴリズム」という言葉を耳にしたことがある方もいますよね。プログラミングを行うためには欠くことのできない基本的な概念ですので、プログラミング経験者の方は十分に理解していることでしょう。プログラミングに詳しくない方でも「アルゴリズム」という言葉ははっきりとした意味が分からないという方もいらっしゃるかもしれません。
「アルゴリズム」はプログラミングの専門用語のようにも思えますが、いろいろな意味を持つ言葉でもあります。
そこで今回は、プログラミングの学習には決して欠くことのできない概念である「アルゴリズム」の意味について「音楽のリズムの一種か何か?」という人にもわかりやすいようにご紹介していきましょう。
みんな知ってるあの体操は実は…!?
「アルゴリズム」という言葉を聞いて、「アレ」を思い出す人も多いはず。そう「アレ」です。NHK Eテレの子供向け番組「ピタゴラスイッチ」内で放送されている「アルゴリズムたいそう」。
実際に見たことのある人も多いあの「アルゴリズムたいそう」という名前にはどんな意味が込められているのでしょう。アルゴリズムという言葉は本来「手順」といった意味合いを持っています。
実際に「アルゴリズムたいそう」を見たことがある人であればその意味が何となく分かるのではないでしょうか。「♪手を横に あら危ない 頭を下げればぶつかりません」たくさんの人が並んで異なる動きを行っているような状況において、みんなが同じ手順(=アルゴリズム)に従って動作すればぶつかることもないということです。
つまり、「アルゴリズム」が意味するのは、ある問題を解決するために手順を定めてそれを一般化することである、と表現することができます。これは他ならぬ、プログラミングの基本となる概念ですよね。
答えは決してひとつではない!アルゴリズムの奥の深さとは!?
アルゴリズムというものは、ほとんどの場合において「これが正解」というものは定まることがありません。ある問題を解決するためには、その手順・方法は一つとは限りませんよね。もちろん、プログラムの処理実行速度や、メモリの使用量などを勘案すると、よりよいアルゴリズムというのが存在するのは確かです。それでも、答えは決してひとつではないことに変わりはありません。
例えば、一般的によく示される例として、「ソート」という処理があります。いわゆる「並び替え」です。通販サイトなどでは皆さんも頻繁に目にするのではないでしょうか。
これは「価格の安い順に並べ替える」「評価の高い順に並べる」など、日常的によく使われています。また、仕事で使うExcelでも作成したデータを並べ替える処理は簡単に実行することができますよね。
実はこの並べ替えの処理ひとつをとってみても、さまざまなアルゴリズムが存在するのです。
ここではいくつかの「ソート」処理のアルゴリズムを紹介することにしましょう。
1,バブルソート
②次は、一番上の箱を除いて同じことを繰り返し行います。すると、上から二番目の箱には二番目に小さな数が入ります。これを最後まで繰り返すと、数の小さい順に並べ替えることができます。
ちなみに、数がどんどん上に浮かび上がっていく様を泡に例えて「バブルソート」と名づけられました。これは人間にとってはとても理解しやすいアルゴリズムではありますが、処理に大変な時間を要してしまいます。数十個程度のデータであれば問題ないでしょうが、並べ替え対象のデータが多くなると、どうしても時間がかかってしまうのが難点です。
2,マージソート
このアルゴリズムでは処理のステップ数がバブルソートよりも少なくて済むので、比較的データの多い場合でも対応が可能です。
3,クイックソート
以上、今回ご紹介したもの以外にもソートのアルゴリズムは数多く存在します。一般的には、処理速度が求められることが多いですが、目的や用途に応じて、アルゴリズムを使い分けることが可能なのです。
AI(人工知能)にももちろん欠かせない「アルゴリズム」を改めて考える
ここからはAI(人工知能)と「アルゴリズム」について考えていくことにしましょう。
AI(人工知能)の機械学習において必要となるのは、条件分岐による判断や、データをもとにした予測などの手順ですよね。これらはすべて、「アルゴリズム」として考えることができます。
今回は、プログラミングに欠かせない「アルゴリズム」という言葉の意味についてご紹介しました。
多くの人が意味を分かっているようでわかっていないこの「アルゴリズム」という言葉ですが、これからプログラミングを学ぼうという人はぜひともこの「アルゴリズム」という言葉の意味と概念をしっかりと理解したうえで学習に取り組んでください。そうすれば、プログラミングの知識やスキルも飛躍的に向上するでしょう。
コメントをどうぞ