アルゴリズムの概念・語源・種類

基本情報技術者試験の科目Bの勉強を進める中で、そもそもアルゴリズムって何だと思って調べてみたので記事を書きます。結論としては「公式」とか「関数」に近い概念になるかと思います。

アルゴリズム:公式、関数

・プログラム:コンピュータに対する指示

例えば拳銃を例に取ると、引き金を引くと弾が出る構造がアルゴリズム、「弾を込め、安全装置解除、照準合わせ、撃て!」みたいな順番で指示を出すのがプログラムって感じですかね。哲学的にいうと、アルゴリズムが形而上、プログラムが形而下的な概念になるかと思います。

 

アルゴリズムの語源が、西暦800年ごろのペルシア(バグダッド)の天文学者アル=フワーリズミに因むことを鑑みると、20世紀になって電子計算機(コンピュータ)が発展してきた時に、それまでに蓄積されていた様々なアルゴリズムを、コンピュータ上で扱えるように人々が改良した結果、今日ではPCさえあれば誰でもがそのアルゴリズムを扱う、もしくは新たなアルゴリズムを開発する機会に預かっている、という状況かと思います。

 

ではアルゴリズムにはどんな種類のものがあるのでしょうか。webで調べると、以前書いた7種のソートアルゴリズムと、線形探索・2分探索・ナイーブサーチ・KMPサーチなどの探索アルゴリズムは有名だという記事が多く出てきますが、ある程度の推論や判断ができるAIなどにも、特別な公式(アルゴリズム)が使われているはずでし、既存のアルゴリズムを組み合わせ、新たなアルゴリズムを生み出すことができるアルゴリズムもあるはずです。公式をどう応用させれば、現実世界に役立つプログラムが書けるのか、学んでいきましょう。

syota.hatenablog.com

さて、基本情報技術者試験科目B対策の進捗ですが、こちらの記事で書いた計画の4日目までが完了済みです。富田良治「2023-2024基本情報技術者科目Bの重点対策」(アイテック、2023)を一読した後は、山本三雄「令和05年上期基本情報技術者パーフェクトラーニング問題集」(技術評論社、2022)対策問題①〜④の科目Bの部分を解いていけるといいですね。年末年始に向け頑張りましょう!

syota.hatenablog.com