歴史
コンピュータ
電気機械式リレー パンチカード の前身であるジャカード織機と電話交換機は、最初の コンピュータの開発につながった。[ 34 ] 19世紀半ばまでに、電信は 世界中で使用されるようになった。19世紀後半には、ティッカーテープ (1870年代 頃 )とパンチカード(1890年頃)が開発された。その後、テープ上のボーコード を使用したパンチ紙を備えたテレプリンター (1910 年頃)が登場した。
電気機械式リレー による電話交換ネットワークは1835年に発明されました。これが1937年にジョージ・スティビッツ によるデジタル加算装置の発明につながりました。ベル研究所で働いていた彼は、歯車を使った機械式計算機の「面倒な」使用法に気づき、自宅で実験的なデジタル加算器を作ることを思いつきました。[ 35 ] [ 36 ]
現代のアルゴリズム 数十年にわたり、アルゴリズムの進化はヒューリスティックから形式的アルゴリズムへと進むと考えられてきた。記号積分はその典型的な例である。1961年、ジェームズ・スレーグルのプログラムSAINTは、MITの教科書に掲載された54問の初級微積分演習のうち52問(約96%)をヒューリスティックを用いて解いた。1967年、ラリー・モーゼスのSINはヒューリスティックを改良し、100%の成功率を達成したが、依然としてヒューリスティックな手法であった。そして1969年、ロバート・リッシュは形式的な保証付きのリッシュアルゴリズムを発表した。この軌跡は、ヒューリスティックが進化し、最終的に決定的な保証付きアルゴリズムが出現するという、従来の道筋を定義づけた。
しかし、トランスフォーマー型AIの台頭により、この流れは逆転し、従来のアルゴリズムは再びヒューリスティックに取って代わられつつある。
アルゴリズムは、時間の経過とともに様々な面で進化し、改良されてきました。今日、アルゴリズムが一般的に使用されている例としては、Instagram やYouTubeなどのソーシャルメディアアプリが挙げられます。アルゴリズムは、人々の好みを分析し、それらの好みに合ったコンテンツをより多くのユーザーに提供するために使用されます。量子コンピューティングは、 量子アルゴリズムの手順 を用いて問題をより迅速に解決します。さらに最近では、2024年にNISTがポスト量子暗号化規格を更新し、量子コンピューティングを用いた攻撃に対する防御を強化するための新しい暗号化 アルゴリズムを追加しました。
表現 アルゴリズムは、自然言語 、擬似コード 、フローチャート 、ドラコンチャート 、プログラミング言語、 制御表 など、さまざまな表記法で表現できます。自然言語によるアルゴリズムの表現は冗長で曖昧になりがちで、複雑なアルゴリズムや技術的なアルゴリズムにはほとんど使用されません。擬似コード、フローチャート、ドラコンチャート、制御表は、自然言語によく見られる曖昧さを回避する、構造化されたアルゴリズムの表現方法です。プログラミング言語は、主にアルゴリズムをコンピュータで実行可能な形式で表現するために使用されますが、アルゴリズムの定義や文書化にも使用されます。
フローチャート表現 フローチャートは 、アルゴリズムを記述・文書化するための図解ツールです。主な記号は4つあり、プログラムの流れを示す矢印、四角形(シーケンス、GOTO)、分岐を表すひし形、そしてドット(OR条件)です。サブ構造は四角形の中に「入れ子」にすることができますが、それは上位構造から単一の出口がある場合に限ります。
アルゴリズム分析 アルゴリズムが必要とする時間、ストレージ、その他のコストを知ることはしばしば重要です。これらのニーズを推定するために、アルゴリズムを分析する方法が開発されています。たとえば、n 個の数値のリストの要素を合計するアルゴリズムは、次の時間要件を必要とします。 O ( n ) {\displaystyle O(n)} ( ビッグオー記法 を使用)。このアルゴリズムは、これまでのすべての要素の合計と入力リスト内の現在の位置という2つの値を記憶するだけでよい。入力数値を格納するために必要なスペースを考慮しない場合、必要なスペースは である。 O ( 1 ) {\displaystyle O(1)} そう でなければ O ( n ) {\displaystyle O(n)} 必須です。
異なるアルゴリズムは、他のアルゴリズムよりも少ない時間、空間、または「労力 」で、異なる一連の命令を使用して同じタスクを完了する可能性があります。たとえば、バイナリサーチ アルゴリズム(コストは O ( ログ n ) {\displaystyle O(\log n)} ) は逐次検索よりも優れています (コスト O ( n ) {\displaystyle O(n)} ) ソートされたリストのテーブル検索 に使用する場合
アルゴリズムの分析と研究は、 コンピュータサイエンス の一分野です。アルゴリズムは、特定のプログラミング言語 や実装を参照することなく、抽象的に研究されることがよくあります。他の数学分野と同様に、実装ではなくアルゴリズムの特性に焦点を当てます。擬似コード は、シンプルで一般的な表現であるため、分析によく用いられます。ほとんどのアルゴリズムは特定のハードウェア/ソフトウェアプラットフォーム上で実装され、実際のコードを使用してアルゴリズムの効率 がテストされます。特定のアルゴリズムの効率は、多くの「単発」の問題では重要ではないかもしれませんが、高速でインタラクティブな商用利用や長期にわたる科学用途向けに設計されたアルゴリズムでは、非常に重要になる場合があります。入力サイズを大きくすると、それまで無害だったアルゴリズムの非効率性が明らかになることがよくあります。
経験的テストは、パフォーマンスに影響を与える予期せぬ相互作用を明らかにするのに役立ちます。ベンチマークは 、プログラム最適化後のアルゴリズムの潜在的な改善の前後を比較するために使用できます。経験的テストは形式的分析を完全に置き換えることはできず、公平に実施することは困難です。[ 40 ]
実行効率 確立されたアルゴリズムであっても改善の余地があることを示す例として、画像処理に使用されるFFT アルゴリズムに関する最近の重要なイノベーションにより、医療画像処理の処理時間を最大1,000倍短縮できる可能性があります。[ 41 ] 一般的に、速度の改善は問題の特殊な特性に依存しますが、これは実際のアプリケーションでは非常に一般的です。[ 42 ]
最良のケースと最悪のケース アルゴリズムの最良ケースとは、アルゴリズムまたはデータ構造がタスクを完了するのにかかる時間とリソースが最小となるシナリオまたは入力を指します。[ 43 ] アルゴリズムの最悪ケースとは、アルゴリズムまたはデータ構造が最大の時間と計算リソースを消費するケースです。[ 44 ]
デザイン アルゴリズム設計では、分割統治法 や動的計画法 など、さまざまなアプローチを活用できます。アルゴリズムの設計と実装の手法は、アルゴリズム設計パターンとも呼ばれます。[ 45 ] 例としては、テンプレートメソッドパターンやデコレータパターンなどがあります。アルゴリズム設計の重要な側面は、メモリや時間などのリソースを効率的に使用することです。ビッグO記法は 、入力サイズが増加するにつれてリソースの使用がどのように変化するかを記述するために使用されます。[ 46 ]
分類
実装により 再帰 再帰アルゴリズムは、 終了条件を満たすまで自身を繰り返し呼び出すもので、一般的な関数型プログラミングの 手法です。反復アルゴリズムは、 ループ などの繰り返し処理やスタック などのデータ構造を用いて問題を解決します。問題によっては、どちらかの実装方法に適している場合があります。ハノイの塔は 、再帰的な実装でよく解かれるパズルです。すべての再帰バージョンには、同等の(ただし、複雑さの程度が異なる)反復バージョンが存在し、その逆もまた然りです。 直列、並列、または分散 アルゴリズムは通常、シリアルコンピュータ上でコンピュータがアルゴリズムの命令を一度に1つずつ実行するという前提で議論されます。シリアルアルゴリズムは、並列 アルゴリズムや分散 アルゴリズムとは異なり、このような環境向けに設計されています。並列アルゴリズムは、複数のプロセッサが同時に問題を処理できるコンピュータアーキテクチャを活用します。分散アルゴリズムは、コンピュータネットワークを介して接続された複数のマシンを使用します。並列アルゴリズムと分散アルゴリズムは、問題をサブ問題に分割し、結果をまとめて収集します。これらのアルゴリズムにおけるリソース消費は、各プロセッサの処理サイクルだけでなく、プロセッサ間の通信オーバーヘッドも含まれます。一部のソートアルゴリズムは効率的に並列化できますが、通信オーバーヘッドが大きくなりがちです。反復アルゴリズムは一般的に並列化可能ですが、並列アルゴリズムが存在しない問題もあり、それらは本質的にシリアル問題と呼ばれます。 決定論的か非決定論的か 決定論的アルゴリズムは 、各ステップで正確な判断を下すことで問題を解決します。一方、非決定論的アルゴリズムは、推測によって問題を解決します。推測の精度は、通常、 ヒューリスティック を用いることで向上します。正確か近似か 多くのアルゴリズムは正確な解に到達するが、近似アルゴリズムは 真の解に近い近似値を求める。このようなアルゴリズムは、多くの難問に対して実用的な価値がある。例えば、ナップサック問題 では、一連のアイテムがあり、ナップサックに詰めて合計価値を最大にすることが目標である。各アイテムには重量と価値がある。持ち運べる合計重量は、ある固定値X以下である。したがって、解はアイテムの重量と価値の両方を考慮する必要がある。[ 51 ] 量子アルゴリズム 量子アルゴリズムは、 量子計算 の現実的なモデルに基づいて動作します。この用語は通常、本質的に量子的なアルゴリズム、または量子重ね合わせ や量子もつれ といった量子計算 の本質的な特徴を利用するアルゴリズムに対して用いられます。
設計パラダイムによって アルゴリズムを分類するもう一つの方法は、その設計手法またはパラダイム による分類です。一般的なパラダイムには以下のようなものがあります。
総当たり 検索または徹底的な検索総当たり攻撃とは、最適な解決策が見つかるまで、考えられるすべての選択肢を体系的に試していく問題解決手法です。この手法は、あらゆる変数の組み合わせを試すため、非常に時間がかかる場合があります。他の方法が利用できない場合や、複雑すぎる場合によく用いられます。総当たり攻撃は、2点間の最短経路の探索やパスワードの解読など、さまざまな問題を解決することができます。 分割統治 分割統治アルゴリズムは、 問題が簡単に解決できるほど小さくなるまで、問題を1つ以上のより小さなインスタンスに繰り返し縮小します(通常は再帰的に)。 マージソート は分割統治の一例で、順序付けされていないリストが繰り返しより小さなリストに分割され、同じ方法でソートされてからマージされます。[ 52 ] 分割統治のより単純なバリアントである剪定と探索 または縮小統治アルゴリズム では、より小さなインスタンスを1つ解決し、マージステップは必要ありません。[ 53 ] 剪定と探索アルゴリズムの例は、二分探索アルゴリズム です。 検索と列挙 チェス などの多くの問題は、グラフ 上の問題としてモデル化できます。グラフ探索アルゴリズムは、 グラフ内を移動するためのルールを規定し、このような問題に役立ちます。このカテゴリには、探索アルゴリズム 、分岐限定 法、バックトラッキング なども含まれます。ランダム化アルゴリズム このようなアルゴリズムは、いくつかの選択をランダム(または擬似ランダム)に行います。正確な解を見つけることが非現実的な場合に近似解を見つけます(下記のヒューリスティック法を参照)。問題によっては、最速の近似解には何らかのランダム性 が必要となる場合があります。[ 54 ] 多項式時間計算量 を持つランダム化アルゴリズムが、いくつかの問題に対して最速のアルゴリズムになり得るかどうかは、 P対NP問題 として知られる未解決の問題です。このようなアルゴリズムには、大きく分けて2つのクラスがあります。 モンテカルロ法は 高い確率で正しい答えを返します。例えば、RPは 多項式時間 で実行されるこれらのアルゴリズムのサブクラスです。ラスベガスアルゴリズムは 常に正しい答えを返しますが、その実行時間は確率的にしか制限されません。たとえば、ZPP などです。複雑性の軽減 この手法は、難しい問題を、漸近的に最適な アルゴリズムで解決可能な、よりよく知られた問題に変換するものです。目標は、結果として得られる縮小アルゴリズムの複雑さ に支配されないような、より単純なアルゴリズムを見つけることです。例えば、ある選択アルゴリズムは 、まずリストをソートし(コストのかかる部分)、次にソートされたリストの中央の要素を取り出す(コストの低い部分)ことで、ソートされていないリストの中央値を求めます。この手法は、変換と征服法 とも呼ばれます。バックトラッキング このアプローチでは、複数の解決策を段階的に構築し、有効な完全な解決策に繋がらないと判断された時点でそれらを放棄する。
最適化問題 最適化問題 に関しては、アルゴリズムはより具体的に分類されます。このような問題に対するアルゴリズムは、上述の一般的なカテゴリの1つ以上、あるいは以下のいずれかに分類される可能性があります。
線形計画法 線形等式および不等式制約によって制限された線形関数の最適解を探索する場合、制約を直接使用して最適解を生成することができます。このカテゴリのあらゆる問題を解決できるアルゴリズムがあり、よく知られているシンプレックス法 などがあります。[ 55 ] 線形計画法で解決できる問題には、有向グラフの最大フロー問題 などがあります。問題で未知数のいずれかが整数で ある必要がある場合、それは整数計画法 に分類されます。線形計画法アルゴリズムは、整数値に対するすべての制約が表面的である、つまり、いずれにせよ解がこれらの制約を満たすことが証明できる場合に、そのような問題を解決できます。一般的には、問題の難易度に応じて、特殊なアルゴリズムまたは近似解を見つけるアルゴリズムが使用されます。 動的計画法 問題が最適な部分構造(つまり、最適な解が部分問題の最適な解から構築できる)と重複する部分問題 (つまり、同じ部分問題が多くの異なる問題インスタンスの解決に使用される)を示す場合、動的計画法 と呼ばれるより高速なアプローチは解の再計算を回避します。たとえば、フロイド・ウォーシャルアルゴリズムでは、重み付き グラフ の開始頂点と目標頂点間の最短経路は、すべての隣接頂点から目標への最短経路を使用して見つけることができます。動的計画法とメモ化は 一緒に使用されます。分割統治法とは異なり、動的計画法の部分問題は重複することがよくあります。動的計画法と単純な再帰の違いは、再帰呼び出しのキャッシュまたはメモ化です。部分問題が独立していて繰り返されない場合、メモ化は役に立ちません。したがって、動的計画法はすべての複雑な問題に適用できるわけではありません。メモ化を使用すると、動的計画法は多くの問題の複雑さを指数関数から多項式に削減します。 貪欲法 貪欲アルゴリズムは 、動的計画法と同様に、部分構造を調べることで機能します。この場合、問題ではなく、与えられた解の部分構造を調べます。このようなアルゴリズムは、何らかの解から始めて、小さな修正を加えることでそれを改善します。問題によっては、常に最適解を見つけることができますが、他の問題では局所最適解 で停止してしまう場合があります。貪欲アルゴリズムの最も一般的な用途は、負のサイクルを持たないグラフの最小全域木を見つけることです。ハフマン木 、クラスカル法 、プリム法 、ソリン法 は、この最適化問題を解決できる貪欲アルゴリズムです。ヒューリスティック法 最適化問題 において、ヒューリスティックアルゴリズムは 、最適解を見つけることが非現実的な場合に、最適解に近い解を見つけます。これらのアルゴリズムは、実行が進むにつれて最適解にどんどん近づいていきます。原理的には、無限の時間実行すれば最適解を見つけることができます。理想的には、比較的短い時間で最適解に非常に近い解を見つけることができます。これらのアルゴリズムには、局所探索 、タブー探索 、シミュレーテッドアニーリング 、遺伝的アルゴリズム などがあります。シミュレーテッドアニーリングのように非決定論的なアルゴリズムもあれば、タブー探索のように決定論的なアルゴリズムもあります。最適解ではない解の誤差の上限がわかっている場合、そのアルゴリズムはさらに近似アルゴリズム に分類されます。
例 最も単純なアルゴリズムの一つは、ランダムな順序で並べられた数値のリストの中から最大の数値を見つけることです。解を見つけるには、リスト内のすべての数値を調べる必要があります。ここから、次のような単純なアルゴリズムが導き出されます。平易な英語で説明すると次のようになります。
概要:
数値の集合が空の場合、最大の数値は存在しない。 セット内の最初の数が最大値であると仮定します。 セット内の残りの各数値について、その数値が現在の最大値よりも大きい場合、その数値が新しい最大値になります。 セット内に未チェックの数値がなくなったら、現在の最大値をセット内の最大値とみなします。 (準)形式的な記述: 散文で書かれているが、コンピュータプログラムの高水準言語に非常に近い、擬似コード またはピジンコード によるアルゴリズムのより形式的なコーディングは次のとおりです。
アルゴリズム 最大数 入力: 数値のリストL 。 出力: リストL の中で最大の数値。L.size = 0の場合 、 null を返す 。largest ← L [ 0] L の 各 項目 について、item > largest の場合 、 largest ← itemを 返す 。 「← 」は代入 を表します。たとえば、「largest ← item 」は、 largest の値がitem の値に変更されることを意味します。 「return 」はアルゴリズムを終了し、次の値を出力します。
注記 ↑ 「有限性を欠く可能性があるという点を除けば、アルゴリズムのすべての特性を備えた手順は、『計算方法』と呼ばれることがある 」 (クヌース 1971:5)。 1 2 「アルゴリズムの定義」。メリアム・ウェブスターオンライン辞書 。2020年2月14日のオリジナルからアーカイブ。 2019年 11月14日 に取得 。 1 2 David A. Grossman、Ophir Frieder、『情報検索:アルゴリズムとヒューリスティクス』 第2版、2004年、 ISBN 1402030045 ↑ 「例えば、古典的な数学的アルゴリズムは、有限個の英語の単語で記述することができる」(ロジャース 1987:2)。 ↑ アルゴリズムを実行するエージェントについては明確に定義されている。「通常は人間である計算エージェントが存在し、それが指示に反応して計算を実行できる」(ロジャース 1987:2)。 ↑ 「アルゴリズムとは、(整数に関する選択された表記法に関して)関数 を計算する手順である...この(数値関数への)制限は、一般性を損なうものではない」(ロジャース 1977:1)。 ↑ 「アルゴリズムには1つ以上の出力、つまり入力と特定の関係を持つ量がある」(クヌース 1973:5)。 ↑ ランダムな内部プロセス(入力を除く)を持つプロセスがアルゴリズムであるかどうかは議論の余地がある。ロジャースは次のように述べている。「計算は、連続的な方法やアナログデバイスを使用せずに、離散的な段階的方法で実行され、ランダムな方法やデバイス(例えばサイコロ)に頼ることなく、決定論的に進められる」(ロジャース 1987:2)。 ↑ ブレア、アン、デュギッド、ポール、ゲーイング、アンヤ=シルビア、グラフトン、アンソニー。『情報:歴史的概観』プリンストン:プリンストン大学出版局、2021年、247ページ ↑ 「algorism」 。 オックスフォード英語辞典。 2025年 5月18日 取得 。 ↑ チョーサー、ジェフリー。 「粉屋の話」 。3210行目。 ↑ Skeat, Walter William (1914). "agrim, agrum" . In Mayhew, Anthony Lawson (ed.). A Glossary of Tudor and Stuart Words: Especially from the Dramatists . Clarendon Press. pp. 5–6 . ↑ グラビナー、ジュディス・V. ( 2013年12月)「リベラルアーツ教育における数学の役割」マイケル・R・マシューズ編『歴史、哲学、科学教育に関する国際研究ハンドブック』所収 。 シュプリンガー 。793-836 頁。doi : 10.1007 / 978-94-007-7654-8_25。ISBN 9789400776548 。↑ 「アルゴリズム」 。 オックスフォード英語辞典。 2025年 5月18日 取得 。 ↑ シマノフスキ、ロベルト (2018)。 『死のアルゴリズムとその他のデジタルジレンマ 』『時代錯誤の瞑想』第 14巻。ジェファーソン・チェイス訳。マサチューセッツ州ケンブリッジ:MIT Press。147 ページ 。ISBN 9780262536370 2019年12月22日にオリジナルからアーカイブされました。2019年 5月27日 に取得 。[...]中央官僚機構の次のレベルの抽象化:グローバルに動作するアルゴリズム。 ↑ ディートリッヒ、エリック(1999)。「アルゴリズム」。ウィルソン、ロバート・アンドリュー、キール、フランク・C(編)。MIT 認知科学百科事典 。MITコグネット・ライブラリー。マサチューセッツ州ケンブリッジ:MITプレス(2001年出版)。11 ページ 。ISBN 9780262731447 2020年7月22日 取得 。アルゴリズムとは、何かを行うための手順、方法、または技術のことです。 ↑ ストーンは「有限個のステップで終了しなければならない」と要求している(ストーン 1973:7–8)。 ↑ Boolos and Jeffrey 1974, 1999:19 1 2 3 4 シャベール、ジャン=リュック(2012)。 アルゴリズムの歴史:小石からマイクロチップまで 。シュプリンガー・サイエンス&ビジネス・メディア。7 ~ 8ページ 。ISBN 9783642181924 。1 2 Sriram, MS (2005). "インド数学におけるアルゴリズム" . Emch, Gerard G.; Sridharan, R.; Srinivas, MD (編) 『インド数学史への貢献』所収 . Springer. p. 153. ISBN 978-93-86279-25-5 。↑ 林 孝 (2023年1月1日).ブラフマグプタ. ブリタニカ百科事典. ↑ ザスラフスキー、クラウディア (1970)。 「 ヨルバ 族とその近隣のナイジェリア南部の人々の数学」 。 2 年 制 大学数学ジャーナル 。1 ( 2): 76–99。doi : 10.2307 /3027363。ISSN 0049-4925。JSTOR 3027363 。 1 2 3 クック、ロジャー・L. (2005). 数学史:入門コース . ジョン・ワイリー・アンド・サンズ. ISBN 978-1-118-46029-0 。↑ シャベール、ジャン=リュック編。 (1999年)。 アルゴリズムの歴史 。 土井 : 10.1007/978-3-642-18192-4 。 ISBN 978-3-540-63369-3 。1 2 Dooley, John F. (2013). 『暗号学と暗号アルゴリズムの簡潔な歴史 』 Springer Science & Business Media. pp. 12–3 . ISBN 9783319016283 。↑ Knuth, Donald E. (1972). "Ancient Babylonian Algorithms" (PDF) . Commun. ACM . 15 (7): 671– 677. doi : 10.1145/361454.361514 . ISSN 0001-0782 . S2CID 7829945 . 2012年12月24日に オリジナル (PDF) からアーカイブ済み。 ↑ アーボー、アスガー (2001)。 天文学初期の歴史のエピソード 。ニューヨーク:スプリンガー 。40–62 頁 。ISBN 978-0-387-95136-2 。↑ Ast, Courtney. "Eratosthenes" . ウィチタ州立大学: 数学統計学部。 2015年2月27日のオリジナルから アーカイブ済み。 2015年 2月27日 に取得 。 ↑ ドナルド・E・クヌース (1996). コンピュータサイエンスに関する選集 . CSLI Publications. pp. 1–2 . アル・フワーリズミーの著作は、方程式を解くための体系的でルールに基づいたアプローチを初めて提供したものであり、そのため、この体系的なプロセスを説明するために、彼の名前から「アルゴリズム」という言葉が造語されました。 ↑ ボルター 1984:24 ↑ ボルター 1984:26 ↑ ボルター 1984:33–34、204–206。 ↑ ベルとニューウェルの図1971:39、デイビス2000参照 ↑ メリーナ・ヒル、バレーニュース特派員、「ある発明家が歴史に名を残す」 、バレーニュース、ウェストレバノン、ニューハンプシャー州、1983年3月31日(木)、13ページ。 ↑ デイビス 2000:14 ↑ クリーネ 1943、デイビス 1965:274 ↑ ロッサー 1939、デイビス 1965:225 1 2 3 4 シプサー 2006:157 ↑ Kriegel, Hans-Peter ; Schubert, Erich; Zimek, Arthur (2016). "実行時評価の(秘術):アルゴリズムを比較しているのか、実装を比較しているのか?". Knowledge and Information Systems . 52 (2): 341– 378. doi : 10.1007/s10115-016-1004-2 . ISSN 0219-1377 . S2CID 40772241 . ↑ Gillian Conahan (2013年1月) 「より良い数学がデータネットワークを高速化する」 discovermagazine.com。 2014年5月13日のオリジナルから アーカイブ 。 2014年 5月13日 に取得。 ↑ Haitham Hassanieh、 Piotr Indyk 、Dina Katabi、および Eric Price、「 ACM-SIAM Symposium On Discrete Algorithms (SODA) 2013 年 7 月 4 日、 Wayback Machineに アーカイブ済み、京都、2012 年 1 月。sFFT Web Pageも参照。2012 年 2 月 21 日、 Wayback Machineに アーカイブ済み。 ↑ 「最良のケース」 。 アルゴリズムとデータ構造の辞書 。米国国立標準技術研究所(NIST)。米国国立標準技術研究所。 2025年 5月29日 取得 。 ↑ 「最悪の場合」 。 アルゴリズムとデータ構造の辞書 。米国国立標準技術研究所(NIST)。米国国立標準技術研究所(NIST) 。 2025年 5月29日 取得 。 ↑ グッドリッチ、マイケル・T. ; タマシア、ロベルト (2002). アルゴリズム設計:基礎、分析、インターネットの例 . ジョン・ワイリー・アンド・サンズ社. ISBN 978-0-471-38365-9 2015年4月28日にオリジナルからアーカイブされました。2018年 6月14日 に取得 。↑ 「ビッグオー記法(記事)|アルゴリズム」 . Khan Academy . 2024年 6月3日 取得 。 ↑ タウスワース 1977:101 ↑ タウスワース 1977:142 ↑ クヌース 1973 セクション 1.2.1、タウスワース 1977 により 100 ページ以降および第 9.1 章で拡張 ↑ 「専門家の見解:特許制度はイノベーションを促進するのか?」 ウォール・ストリート・ジャーナル 。 2013年5月16日。ISSN 0099-9660 。 2017年 3月29 日 取得 。 ↑ ケラー、ハンス。フェルシー、ウルリッヒ。デイビッド・パイジンジャー (2004)。 ナップザックの問題 |ハンス・ケラー |スプリンガー 。スプリンガー。 土井 : 10.1007/978-3-540-24777-7 。 ISBN 978-3-540-40286-2 . S2CID 28836720 . 2017年10月18日にオリジナルからアーカイブされました。 2017年 9月19日 に取得。 ↑グッドリッチ、マイケル・T. 、 タマシア、ロベルト(2001)。「5.2 分割統治」。 アルゴリズム設計:基礎、分析、インターネットの例 。ジョン・ワイリー・アンド・サンズ。p. 263。ISBN 9780471383659 。↑ Goodrich & Tamassia (2001) 、p. 245、4.7.1 剪定と検索。↑ 例えば、凸多面体 (メンバーシップオラクルを使用して記述される)の体積は、ランダム化された多項式時間アルゴリズムによって高精度に近似できますが、決定論的なアルゴリズムでは近似できません 。Dyer, Martin; Frieze, Alan; Kannan, Ravi (1991 年 1 月)「凸体の体積を近似するためのランダム多項式時間アルゴリズム」 J. ACM . 38 (1): 1– 17. CiteSeerX 10.1.1.145.4600 . doi : 10.1145/102782.102783 . S2CID 13268711 を 参照してください。 ↑ George B. Dantzig および Mukund N. Thapa. 2003. 線形計画法 2: 理論と拡張 . Springer-Verlag. ↑ 「AlphaDevがより高速なソートアルゴリズムを発見」 。Google DeepMind 。2023年6月7日。 2026年 4月29日 取得 。 ↑ Mankowitz, Daniel J.; Michalski, Andrea; Zhernov, Anton; Gelmi, Marco; Selvi, Marco; et al. (2023年6月). 「深層強化学習を用いて発見された高速ソートアルゴリズム」. Nature . 618 (7964): 257–263 . doi : 10.1038/s41586-023-06004-9 . PMID 37286649 . ↑ 「AlphaEvolve: 高度なアルゴリズムを設計するためのGemini搭載コーディングエージェント」 。Google DeepMind 。2025年5月14日。 2026年 4月29日 取得 。 ↑ アレクサンダー・ノヴィコフ。ヴー、ガン。アイゼンバーガー、マービン。デュポン、エミリアン。ファン・ポーセン。他 。 (2025年)。 「AlphaEvolve: 科学的およびアルゴリズム的発見のためのコーディング エージェント」。 arXiv : 2506.13131 [ cs.AI ]。
参考文献 Axt, P (1959). 「部分再帰階層と原始再帰次数について」 .アメリカ数学会紀要 . 92 (1): 85– 105. doi : 10.2307/1993169 . JSTOR 1993169 . Bell, C. Gordon および Newell, Allen (1971)、『コンピュータ構造:読解と例』 、McGraw–Hill Book Company、ニューヨーク。ISBN 0-07-004357-4 。 Blass, Andreas ; Gurevich, Yuri (2003). "アルゴリズム: 絶対的な定義を求めて" (PDF) . Bulletin of European Association for Theoretical Computer Science . 81 . 2022年10月9日にオリジナルからアーカイブ(PDF) 。 56件の参考文献を含む書誌情報が掲載されています。ボルター、デイビッド・J. (1984).チューリングの人間:コンピュータ時代の西洋文化 (1984年 版). ノースカロライナ州チャペルヒル:ノースカロライナ大学出版局. ISBN 978-0-8078-1564-9 。 ISBN 0-8078-4108-0 ブーロス、ジョージ ;ジェフリー、リチャード (1999)[1974]。計算可能性と論理 (第4 版)。ケンブリッジ大学出版局、ロンドン。ISBN 978-0-521-20402-6 。 : 第3章「チューリングマシン」 を参照。そこでは「特定の列挙可能な集合は、効果的に(機械的に)列挙可能ではない」と論じている。バーギン、マーク(2004)。スーパー再帰アルゴリズム 。シュプリンガー。ISBN 978-0-387-95569-8 。 Campagnolo, ML、Moore, C. 、および Costa, JF (2000) 部分再帰関数のアナログ特性。第 4 回実数とコンピュータに関する会議の議事録 、オーデンセ大学、pp. 91–109 チャーチ、アロンゾ ( 1936)。 「初等整数論の解決 不可能な問題」。アメリカ数学ジャーナル 。58 (2):345–363。doi :10.2307 /2371045。JSTOR 2371045 。 『決定不能なもの 』89ページ以降に再録 。「チャーチのテーゼ」の最初の表現。特に100ページ(『決定不能なもの 』)を参照。そこで彼は「アルゴリズム」という観点から「有効計算可能性」の概念を定義し、「終了する」などの語を用いている。Church, Alonzo (1936). 「決定問題に関する覚書」。『記号論理学ジャーナル 』1 (1): 40–41 . doi : 10.2307/2269326 . JSTOR 2269326 . S2CID 42323521 . Church, Alonzo (1936). 「決定問題に関する注記の訂正」。『記号論理学ジャーナル 』1 (3): 101–102 . doi : 10.2307/2269030 . JSTOR 2269030 . S2CID 5557237 . 『決定不能なもの 』110ページ以降に再録 。チャーチは、約3ページの本文と3ページの脚注で、決定問題が解決不可能であることを示している。ダッファ、アリ・アブドゥッラー・アル(1977)。イスラム教徒の数学への貢献 。 ロンドン:クルーム・ヘルム。ISBN 978-0-85664-464-1 。 デイビス、マーティン (1965)。『決定不能なもの:決定不能な命題、解決不能な問題、計算可能な関数に関する基礎論文集 』ニューヨーク:レイヴン・プレス。ISBN 978-0-486-43228-1 。 デイビスは各論文の前に解説を加えている。ゲーデル 、アロンゾ・チャーチ 、チューリング 、ロッサー、 クリーネ 、エミール・ポスト の論文が掲載されており、論文中で引用されている論文は著者名でここに一覧表示されている。デイビス、マーティン (2000)。『論理のエンジン:数学者とコンピュータの起源』 ニューヨーク:WW Nortion。ISBN 978-0-393-32229-3 。 デイビスは、ライプニッツ 、ブール 、フレーゲ 、カントール 、ヒルベルト 、ゲーデル、チューリングの簡潔な伝記を紹介し、フォン・ノイマン を主役級の悪役として登場させている。ジョゼフ=マリー・ジャカール 、バベッジ 、エイダ・ラブレス 、クロード・シャノン 、ハワード・エイケン などの略歴も非常に簡潔である。 この記事には、ポール・E・ブラック 著「アルゴリズム」 、 『アルゴリズムとデータ構造の辞典 』、 NIST の パブリックドメイン資料が含まれています 。 ディーン 、ティム(2012)。「進化と道徳的多様性」。バルト 国際認知・論理・コミュニケーション年鑑 。7。doi :10.4148/biyclc.v7i0.1775 。デネット、ダニエル (1995)。ダーウィンの危険な思想 。 ニューヨーク:タッチストーン/サイモン&シュスター。32 ~ 36ページ。ISBN 978-0-684-80290-9 。ディルソン、ジェシー (2007)。そろばん ((1968, 1994) 編)。セント・マーチンズ・プレス、ニューヨーク州。ISBN 978-0-312-10409-2 。 ISBN 0-312-10409-X Yuri Gurevich 、「逐次抽象状態機械による逐次アルゴリズムの捕捉」 、ACM Transactions on Computational Logic、第1巻、第1号(2000年7月)、77~111ページ 。33件の参考文献リストを含む。ファン・ヘイエノールト、ジャン (2001)。『フレーゲからゲーデルへ:数学論理学資料集、1879年~1931年 』(1967年 版)。ハーバード大学出版局、ケンブリッジ。ISBN 978-0-674-32449-7 。 、第3版 1976年[?]、ISBN 0-674-32449-8 (ペーパーバック)ホッジス、アンドリュー (1983)。アラン・チューリング:エニグマ 。ニューヨーク:サイモン&シュ スター 。ISBN 978-0-671-49207-6 。 ISBN 0-671-49207-1 彼の証明に至るまでの経緯と議論については、「真理の霊」の章を参照してください。Kleene, Stephen C. (1936). "自然数の一般再帰関数" . Mathematische Annalen . 112 (5): 727–742 . doi : 10.1007/BF01565439 . S2CID 120517999. 2014年9月3日にオリジナルからアーカイブ済み。 2013年 9月30日 に取得 。 1935年9月、アメリカ数学会に発表。The Undecidable 、p.237以降に再録 。クリーネの「一般再帰」(現在ではμ再帰として知られている)の定義は、チャーチが1935年の論文「初等整数論の解決不可能な問題」 で使用し、「決定問題」が「決定不可能」(つまり否定的な結果)であることを証明した。Kleene, Stephen C. (1943). 「再帰的述語と量化子」 .アメリカ数学会紀要 . 53 (1): 41– 73. doi : 10.2307/1990131 . JSTOR 1990131 . 『決定不能』 255ページ以降に再録 。クリーネは「一般再帰」の定義を洗練し、第12章「アルゴリズム理論」で「テーゼI」( 274ページ)を提唱した。彼は後にこのテーゼを繰り返し(クリーネ1952:300)、それを「チャーチのテーゼ」(クリーネ1952:317)(つまり、チャーチのテーゼ )と名付けた。クリーネ、スティーブン・C. (1991) [1952].メタ数学入門 (第10 版). ノースホランド出版. ISBN 978-0-7204-2103-3 。クヌース、ドナルド (1997)。『基本アルゴリズム 第3版 』マサチューセッツ州レディング:アディソン・ウェスリー。ISBN 978-0-201-89683-1 。Knuth, Donald (1969).第2巻/半数値アルゴリズム、コンピュータプログラミングの技法 初版 。マサチューセッツ州レディング:Addison–Wesley。コソフスキー、NK『数理論理学の基礎とその部分再帰アルゴリズム理論への応用』 LSU出版、レニングラード、1981年 Kowalski, Robert (1979). "アルゴリズム=論理+制御" . Communications of the ACM . 22 (7): 424– 436. doi : 10.1145/359131.359136 . S2CID 2509896 . A.A.マルコフ (1954)アルゴリズムの理論 。[ジャック・J・ショール=コンおよびPSTスタッフによる翻訳] 発行元:モスクワ、ソ連科学アカデミー、1954年 [すなわち、エルサレム、イスラエル科学翻訳プログラム、1961年;米国商務省技術サービス局(ワシントン)より入手可能] 内容:444ページ、 28cm 。ソ連科学アカデミー数学研究所著作集ロシア語翻訳版第 42巻に付録として追加。原題:Teoriya algerifmov。[QA248.M2943 ダートマス大学図書館。米国商務省技術サービス局、番号OTS 60-51085。]ミンスキー、マービン (1967)。計算:有限機械と無限機械 (初版 )。プレンティス・ホール、ニュージャージー州エングルウッド・クリフス。ISBN 978-0-13-165449-5 。ミンスキーは、第 5.1計算可能性、有効な手順、およびアルゴリズム。無限の機械 で、彼の「アルゴリズムの概念、つまり有効な手順」を拡張しています。ポスト、エミール ( 1936)。 「 有限組み合わせ過程、定式化 I」。記号論理学ジャーナル 。1 ( 3):103–105。doi :10.2307 / 2269031。JSTOR 2269031。S2CID 40284503。 『決定不能なもの』 289ページ以降に再録されている 。ポストは、単純な指示リストに従いながら、人が印を書いたり消したりして、箱から箱へと移動し、最終的に停止するという、アルゴリズムのような単純なプロセスを定義している。これは、クリーネが「テーゼI」、いわゆるチャーチ=チューリングのテーゼ の出典の一つとして引用している。ロジャース、ハートリー・ジュニア(1987)。再帰関数と有効計算可能性の理論 。MIT Press。ISBN 978-0-262-68052-3 。 Rosser, JB (1939). 「ゲーデルの定理とチャーチの定理の証明の非公式な解説」。Journal of Symbolic Logic . 4 (2): 53–60 . doi : 10.2307/2269059 . JSTOR 2269059. S2CID 39499392 . 『決定不能なもの』 223ページ以降に再録されている 。ここにロッサーの有名な「効果的な方法」の定義がある。「…各ステップが正確に予め決定されており、有限のステップで確実に答えが得られる方法…質問を入力して(後で)答えを読む以外に人間の介入なしに、集合内のあらゆる問題を解決する機械」(『決定不能なもの』 225~226ページ)サントス=ラング、クリストファー(2015)。「機械倫理への道徳生態学的アプローチ」(PDF) 。ファン・ライセウィック、サイモン、ポンティエ、マティス(編)。『 機械医療倫理』 。インテリジェントシステム、制御、自動化:科学と工学。第74巻。スイス :シュプリンガー。pp. 111–127。doi :10.1007 /978-3-319-08108-3_8。ISBN 978-3-319-08107-6 2022年10月9日にオリジナルからアーカイブされた(PDF) 。 スコット、マイケル・L. (2009).プログラミング言語の実用性 (第3 版). モーガン・カウフマン出版社/エルゼビア. ISBN 978-0-12-374514-9 。 Sipser, Michael (2006).計算理論入門 . PWS Publishing Company. ISBN 978-0-534-94728-6 。 ソーバー、エリオット;ウィルソン、デイビッド・スローン(1998)。『他者のために:利他的行動の進化と心理学』 ケンブリッジ:ハーバード大学出版局。ISBN 9780674930469 。 ストーン、ハロルド・S. (1971).コンピュータ構成とデータ構造入門 . マグロウヒル、ニューヨーク. ISBN 9780070617261 。 特に「アルゴリズム、チューリングマシン、プログラム」 と題された第1章を参照のこと。彼の簡潔で非公式な定義は、「ロボットが従うことができる一連の命令は、アルゴリズム と呼ばれる」(4ページ )である。タウスワース、ロバート C (1977).コンピュータソフトウェアの標準化開発 パート 1 方法 . ニュージャージー州エングルウッド・クリフス: プレンティス・ホール社. ISBN 978-0-13-842195-3 。 チューリング、アラン M. (1936–37). 「計算可能な数について、決定問題への応用」.ロンドン数学会紀要 . シリーズ 2. 42 : 230– 265. doi : 10.1112/plms/s2-42.1.230 . S2CID 73712 . 訂正、同誌、第43巻(1937年)、544~546ページ。The Undecidable 、116ページ 以降に再録。チューリングの有名な論文は、英国ケンブリッジ大学キングス・カレッジ在学中に修士論文として完成させたものである。 チューリング、アラン M. (1939). 「順序数に基づく論理体系」.ロンドン数学会紀要 . 45 : 161– 228. doi : 10.1112/plms/s2-45.1.161 . hdl : 21.11116/0000-0001-91CE-3 .『決定不能なもの』 155ページ以降に再録 。チューリングが「オラクル」を定義した論文は、プリンストン大学在学中の博士論文であった。米国特許商標庁 (2006年)、2106.02 **>数学的アルゴリズム:2100 特許性 、特許審査手続マニュアル(MPEP)。最新改訂版 2006年8月ザスラフスキー、C. (1970). ヨルバ族とその近隣のナイジェリア人の数学。二年制大学数学ジャーナル、1(2)、76–99。https ://doi.org/10.2307/3027363 NISTが量子暗号技術後の暗号化に関する最初の3つの標準規格を確定し公開。https ://www.nist.gov/news-events/news/2024/08/nist-releases-first-3-finalized-post-quantum-encryption-standards
さらに読む ベラ、ロバート・ニーリー (1985)。『心の習慣:アメリカ生活における個人主義とコミットメント』 。バークレー:カリフォルニア大学出版局。ISBN 978-0-520-25419-0 。ベルリンスキー、デイビッド(2001)。アルゴリズムの到来:アイデアからコンピュータへの300年の道のり 。ハーベストブックス。ISBN 978-0-15-601391-8 。 シャベール、ジャン=リュック(1999)。アルゴリズムの歴史:小石からマイクロチップまで 。シュプリンガー・フェルラーク。ISBN 978-3-540-63369-3 。 トーマス・H・コーメン;チャールズ・E・ライザーソン。ロナルド・L・リベスト。クリフォード・スタイン (2009)。アルゴリズム入門 (第 3 版)。 MITプレス。ISBN 978-0-262-03384-8 。 ハレル、デイビッド、フェルドマン、イシャイ(2004)。アルゴリズム:コンピューティングの精神 。アディソン・ウェスリー。ISBN 978-0-321-11784-7 。 ヘルツケ、アレン D.、マクロリー、クリス (1998)。「道徳生態学の概念」。ローラー、ピーター オーガスティン、マコンキー、デール (編)『今日のコミュニティと政治思想』 。ウェストポート、コネチカット州:プレイガー 。 Jon Kleinberg、Éva Tardos (2006): Algorithm Design 、Pearson/Addison-Wesley、ISBN 978-0-32129535-4 Knuth, Donald E. (2000). Selected Papers on Analysis of Algorithms ( 2017年7月1日、Wayback Machineに アーカイブ済み )。スタンフォード、カリフォルニア州:言語情報研究センター。Knuth, Donald E. (2010). Selected Papers on Design of Algorithms ( 2017年7月16日、Wayback Machineに アーカイブ済み )。スタンフォード、カリフォルニア州:言語情報研究センター。 ウォラック、ウェンデル、アレン、コリン(2008年11月)。道徳的機械:ロボットに善悪を教える 。米国:オックスフォード大学出版局。ISBN 978-0-19-537404-9 。 ブリークリー、クリス(2020)。パズルを解く詩:アルゴリズムの歴史と科学 。オックスフォード大学出版局。ISBN 978-0-19-885373-2 。