アルゴリズム
【英】algorithm
アルゴリズムとは、物事を進めていくための明確な手順、特に問題を解くための手順のことである。
アルゴリズムという語は、バグダット(現在のイラクの都市)の数学者であるal-Khwarizmi(アル・フワーリズミー)に由来する。なお代数学のalgebra(アルジェブラ)も同じ語源だと言われている。数学においては、古くから、代数方程式を機械的に解く方法が存在していた。このような一定の決まった手順に従って、確定的に問題を解くことができる場合、この手順のことをアルゴリズムと呼ぶ。
計算機は、一定の手順を記述したプログラムを実行する機械である。従って、計算機は、一定のアルゴリズムをプログラムによって記述し、そのアルゴリズムに従った処理を実行することができる。アルゴリズムが対象にする問題は、ソートやマージ、分類、探索などの論理的あるいは数学的なものである。なお、アプリケーション全体は、一定のアルゴリズムを含むことがあるが、通常、アプリケーション自体をアルゴリズムとは呼ばない。
アルゴリズムとしてテーマになるものは、探索法やソート法、ハッシュ法、暗号化手法、圧縮展開手法などがある。アルゴリズムは、対象とするデータが持つデータ構造と密接に関連し、ある構造を前提にした処理方法、手順として提示される。例えば、グラフ構造というデータ構造を前提にして、そのグラフ上のグラフ探索アルゴリズムが定式化される。
Donald Ervin Knuth(ドナルド・エルビン・クヌース)は、スタンフォード大学名誉教授で、アルゴリズムとプログラミングの研究で有名である。主著『The Art of Computer Programming』は、プログラミング技法の名著である。またアルゴリズム解析という新分野を開拓した。
|