コンピューターといえば、その中には「プログラム」が構築されています。
この辺は、かなり認知度が大きいと思います。
では、「プログラム」と「アルゴリズム」の違いって、ご存知ですか?
なんとなく、同じような雰囲気がありますよね。
ということで、今回は「アルゴリズム」と「プログラム」の違いなどについて調べてみました。
1.「アルゴリズム」と「プログラム」の意味の違いと使い分けは?
まずは、「アルゴリズム」と「プログラム」を辞書で調べてみます。
・数学、コンピューター、言語学などにおいて、問題解決のための一連の方法や手順のことで、算法ともいう。
問題を解決する手順を定式化したもので、コンピューターであればプログラムを作成する基礎になる。
アルゴリズムは、フローチャートといった図を用いて図式化される。
イランの数学者であるアル・フワーリズミーが語源。
【プログラム】
・コンピューター処理させる仕事の手順や計算方式の指示のこと。
コンピューターはプログラムにより指示された手順で計算し、入出力などの処理を実行していく。
「アルゴリズム」と「プログラム」を一言であらわすと、「やり方」「手順」が「アルゴリズム」で、その「手順」をまとめた「指示書」が「プログラム」です。
コンピューターに何らかの計算をさせたいとすると、その目的の計算方法の「手順」つまりアルゴリズムを書いていきます。
そしてそのまとめた「手順」を書くのはプログラム言語であり、それをまとめて「指示書」にしたものがプログラムなのです。
別のものにたとえて、わかりやすく説明しますね。
たとえばコンピューターユーザーを、「A」としましょう。
「A」は、プログラム「B」、プログラム「C」、プログラム「D」の3人それぞれに対し、高級マグロを調達するように指示を出します。
3人はそれぞれ、交通機関の経路や、出発時間などを記述した「行程表(フローチャート)」を持っています。
「B」はマグロ漁船に搭乗してマグロを捕獲するという「手順(アルゴリズム)」です。
「C」は青森県の大間へ出向いて漁師からマグロを入手するという「手順(アルゴリズム)」です。
「D」は東京の築地市場でマグロを競り落とすという「手順(アルゴリズム)」です。
実際にマグロを最短時間で入手することができたのは「D」でした。
「B」と「C」のアルゴリズムは無駄が多かったということになります。
この場合、最適のアルゴリズムは「D」ということになりますが、これが「最適なアルゴリズムを検討する」という行為なのです。
つまり、アルゴリズムを最大限工夫することで、今まで相当な時間を要していた超難問の計算問題をいとも簡単に解けるプログラムにすることが可能なのです。
2.「人工知能」とは?「プログラム」との違いは?
まずは「人工知能」を辞書で調べます。
・学習、推論、判断といった人間の知能のはたらきを備えたコンピューターのソフトウェアシステム。AI。
「人工知能」もプログラムの一種なのですが、より人間に近いはたらきをするプログラムです。
通常の「プログラム」は人間が書いた台本通りに処理しますので、台本に書いていない事態が発生した場合は処理をストップしてしまいます。
それに対して、「人工知能」は台本にない事態が発生した場合でも台本以外の動作や判断をすることができます。
つまり、「人工知能」は自ら学習を行い、プログラムそのものを自力で構築していくことができるのです。
最近話題になっているのが、プロの将棋棋士を次々に打ち負かしている「人工知能」。
将棋は通常、人間が最善手を考えて指しますので、必ずその棋譜(指し手の記録)が過去に存在するとは限りません。
通常のプログラムなのであれば、そういった過去に例が無い手を指された場合は混乱して思考停止状態になってしまいます。
ですが人工知能は、そういった過去に例が無い手を相手に指された場合であっても、冷静に自身の最善手を探し求める能力があるのです。
スマホやパソコンを使っていると、プログラムを「アンインストール」したり「削除」したりします。
ただし、単純に「削除」しただけでは良くない場合がありますよ!
詳細については、下の関連記事をご覧ください。
まとめ
以上が、「アルゴリズム」と「プログラム」の違いなどについてでした。
アルゴリズムとは、ある問題の解決や計算などを行う「やり方」「手順」のことです。
そしてその「手順」を、プログラム言語でまとめた「指示書」がプログラムです。
スマホなどを使っていると、「ハッシュタグ」や「シャープ」といったマークを使います。
実は、「ハッシュタグ」と「シャープ」は違いますよ!
「ハッシュタグ」と「シャープ」の違いについては、下の記事を覗いてみてください。