You can edit almost every page by Creating an account. Otherwise, see the FAQ.

アルゴリズム

提供:EverybodyWiki Bios & Wiki
移動先:案内検索

アルゴリズム(英: algorithm)とは、解が定まっている「計算可能」問題に対して、その解を正しく求める手続きをさす。あるいはそれを形式的に表現したもの。

実用上は、アルゴリズムの実行に要する記憶領域の大きさや完了までに要する時間(空間計算量と時間計算量)が小さいこと、特に問題の規模を大きくした際に必要な記憶領域や計算量が急激に大きくならないことが重要となる。

アルゴリズムの実行は形態によらない。コンピュータプログラムはコンピュータ上に実装されたアルゴリズムの例である。

概要[編集]

岩波国語辞典「算法」に、まず「計算の方法」とした後に2番目の詳細な語義でalgorithmの訳として、

特に、同類の問題一般に対し、有限回の基本的操作を、指示の順を追って実行すれば、解がある場合にはその解が得られ、解がない場合にはそのことが確かめられるように、はっきりと仕組んである手順。

とある。一見では国語辞典らしい平易な日本語で書かれた説明だが、例えば解が無いと無限ループに陥るといったようなものは除外されるし、「アルゴリズムの視覚的表現」としてよく使われるフローチャートのようなもので書いてあっても、基本的操作がはっきりと書いてなければそれはアルゴリズムではない、というわけである。これは、理論計算機科学での「アルゴリズム」の扱いに沿っている。

歴史[編集]

記録に残る最古のアルゴリズムは、エウクレイデスの原論のものである。その中でも、二つの整数の最大公約数を求めるユークリッドの互除法は、典型的なアルゴリズムとして知られている。

「アルゴリズム」という名称は、現在のイラクのバグダードにおける9世紀の数学者アル=フワーリズミーの名前から来ているといわれている。彼がインド数学を紹介した著作『インドの数の計算法』(825年)が、12世紀にチェスターのロバート(あるいはバースのアデラード)によってラテン語に翻訳され、『algoritmi de numero Indorum アルゴリトミ・デ・ヌーメロ・インドルム』(直訳すると「インドの数におけるアルゴリトミ」)という題で、以後500年間にわたってヨーロッパ各国の大学で数学の主要な教科書として用いられた。この書は、冒頭に「algoritmi dicti(アル・フワリズミーに曰く)」という一節があるので『』と呼ばれていた。

1920〜30年代、計算可能性のための数学モデル(計算モデル)がいくつも提案された(チューリングマシン、帰納的関数、ラムダ計算など)。後にこれらの定義はすべて同等であることがわかり、それらにより同値な概念を「計算可能」とすることが提案された(チャーチ=チューリングのテーゼ、提案者はスティーヴン・コール・クリーネ。なお、チューリングのほうを先とする専門家もいる)。したがって、現在では「これらによって『計算可能なもの』を計算する手続き」をアルゴリズムと呼ぶ。



Read or create/edit this page in another language[編集]