| 検索ビュー | アルゴリズム | 項目ビュー |
| I. | プロローグ |
一般的な意味では数学などの問題を解くための計算法。ある程度複雑な問題で、簡単な計算をくりかえせば問題が解けるようにしたときの計算の手順をいう。とくにコンピューターでプログラムを作成するときに、この用語がつかわれる。各段階でするべき作業と作業相互の関係をわかりやすくしめすために、フローチャート(流れ図)がよくもちいられる。
| II. | コンピューターのアルゴリズム |
アルゴリズムとプログラムの区別は、かならずしも明確ではない。特定のプログラム言語やアプリケーションをつかうことを前提にしてアルゴリズムが設計されることもあるが、アルゴリズムは、本質としては、特定の言語を想定しない。ただしどのようなアルゴリズムでも、どういう計算作業をすすめるのかは、明確にされていなければならない。アルゴリズムの良否は、コンピューターを有効に利用するうえで重要である。かならずしも、短いプログラムで記述されているアルゴリズムがすぐれているわけではなく、ハードウェアや用意されているライブラリーを有効に利用し、短時間で処理できるものがよい。
半導体の集積回路に一定の論理回路をくみこんだ計算装置では、この論理回路そのものがある種のアルゴリズムの役割をうけもつ。コンピューターの仕組みが複雑になるにつれ、ソフトウェアでつくられてきたアルゴリズムの一部が、直接ハードウェアにくみこまれることも多くなった。つまり、それらはコンピューターの基本的回路にくみこまれたり、簡単にアクセスできる付属部品となったり、オフィス用など専用の処理装置となったりしている。すでに、さまざまなアルゴリズムが応用ソフトに利用されているが、将来のもっとすすんだシステムでは、人工知能のアルゴリズムもごくふつうにくみこまれるようになるだろう。
| III. | 数学と論理学 |
論理学や数学基礎論などでアルゴリズムという場合は、有限の時間で確実に答がでて終了する計算規則をさす。そのために、(1)問題や答をふくめて、とりあつかうデータは有限の記号列で記述できる、(2)アルゴリズムを構成している各ステップは機械的に実行でき、有限時間で終了し、計算の結果はただ1つに決定される、(3)アルゴリズムに対してどのような入力があたえられても、有限の時間内に出力して終了する、といった条件を満足していなければならない。つまり、アルゴリズムは不確定の要素をふくんではならない。
問題を解くアルゴリズムが存在するかどうかを計算可能性といい、コンピューターで処理する場合に必要とする時間やハードウェアの資源を、計算の複雑さという。