Contents
概要
アルゴリズム(Algorithm)とは、ある問題を解くための手順を有限のステップで記述した規則の集合である。入力を受け取り、決まった手順を経て、正しい出力を返すことが要件とされる。
語源は9世紀のペルシア人数学者 ムハンマド・イブン・ムーサー・フワーリズミー(al-Khwārizmī)の名に由来する。彼の著作『インドの計算法について』がラテン語世界に伝わる過程で、著者名がアルゴリズムという言葉に変化した。
20世紀に入りアラン・チューリングが「チューリング機械」という概念でアルゴリズムを数学的に形式化した。これにより「計算可能性」という問いが厳密に論じられるようになり、現代コンピュータ科学の礎が築かれた。
アルゴリズムの構成要件
アルゴリズムが有効とみなされるには以下の性質が必要とされる。
- 有限性 — 有限のステップで終了しなければならない
- 確定性 — 各ステップは一意に解釈できる明確な指示でなければならない
- 入力 — 0個以上の入力を持つ
- 出力 — 1個以上の出力を持つ
- 実効性 — 各ステップは実際に実行可能でなければならない
これらの要件を満たさない手順は、アルゴリズムではなくヒューリスティクス(経験則)や発見的手法と区別される。
効率性——計算複雑性の視点
アルゴリズムの良し悪しは正確性だけでは測れない。同じ問題を解くアルゴリズムでも、処理に要する時間や記憶領域が大きく異なる。これを評価する枠組みが計算複雑性理論である。
代表的な尺度に O 記法(ビッグオー記法)がある。問題の規模 n に対して処理ステップ数がどう増えるかを表す。O(n) は線形、O(n²) は二乗、O(log n) は対数的増加を意味する。規模が大きくなるにつれ、この差は実用上の限界を決定的に左右する。
たとえば10億件のデータを二分探索(O(log n))で扱う場合、最大30ステップで対象を特定できる。線形探索(O(n))ならば最悪10億ステップを要する。アルゴリズムの選択は単なる実装の話ではなく、実現可能性の境界を引く。
主要なアルゴリズムの類型
アルゴリズムは設計戦略によって類型化される。
- 分割統治法 — 問題を小さな部分問題に分割し、再帰的に解く。クイックソート・マージソートが代表例
- 動的計画法 — 部分問題の解を記憶しながら再利用することで重複計算を回避する。経路探索・資源配分問題に広く使われる
- 貪欲法 — 各ステップで局所最適な選択を積み重ねる。最短経路問題のダイクストラ法が典型
- バックトラック法 — 試行と撤退を繰り返しながら解空間を探索する。制約充足問題に用いられる
機械学習・深層学習もアルゴリズムの一形態である。モデルパラメータを誤差逆伝播法という最適化アルゴリズムで更新することで、データから規則を自動抽出する。
現代への示唆
1. 意思決定の手順をアルゴリズム化する
「どう判断するか」を事前に明文化することは、アルゴリズム設計そのものである。採用基準・与信審査・案件評価——属人的な判断を手順として可視化することで、再現性・説明責任・改善可能性が生まれる。感覚による判断は否定されないが、繰り返し行われる意思決定においては手順化が競争優位になる。
2. 効率性と品質のトレードオフを意識する
速く近似解を出す貪欲法と、時間をかけて最適解を求める動的計画法のどちらを選ぶかは、ビジネス判断と同型である。完璧な答えを遅く出すより、十分良い答えを早く出すほうが価値を持つ局面は多い。アルゴリズム選択の論理は、事業判断における速度と質のトレードオフに直結する。
3. AIの出力はアルゴリズムの産物である
生成AIをはじめとする機械学習モデルは、大規模な最適化アルゴリズムの産物である。「AIが判断した」という表現は、アルゴリズムが定義した目的関数を最小化した結果を人間が解釈していることを意味する。アルゴリズムの設計者が何を最適化しようとしたかを問わずに出力を受け入れることは、設計意図を無批判に内面化することに等しい。
関連する概念
[チューリング機械]( / articles / turing-machine) / 計算複雑性理論 / ヒューリスティクス / [機械学習]( / articles / machine-learning) / オペレーションズ・リサーチ / 最適化 / データ構造
参考
- 原典: D. E. Knuth『The Art of Computer Programming』Vol.1、Addison-Wesley、1968
- 研究: T. H. Cormen ほか『アルゴリズムイントロダクション』(浅野哲夫ほか訳、近代科学社、2013)
- 研究: 有澤誠『アルゴリズムとデータ構造』岩波書店、1989