Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録
< anond:20250412145235 |anond:20250412180634 >

2025-04-12

アルゴリズムとは何か

アルゴリズムとは何か

まず定義から始めますアルゴリズムとは、定義された入力集合から出発し、定義された出力集合に到達する写像 (関数)である

形式的には: f: X → Y

ここで、

評価基準

アルゴリズムの「良し悪し」は何か?数学的には次の 3 本柱です。

1. 正確性 (Correctness)定義域内のすべての入力 x ∈ X に対して、仕様通りの出力f(x)保証する。命題論理的には:「∀x ∈ X,f(x)Spec(Y)」

2.計算量 (Complexity)時間計算量:入力サイズを n として、処理に要するステップ数を T(n) とする。空間計算量:必要メモリ量を S(n) とする。漸近表記記述:O(T(n)), O(S(n))

3. 停止性 (Termination)任意入力に対して有限時間で処理が終了すること。数学的には停止性問題チューリング停止性問題)に該当。

普遍的最適性

最後に、任意アルゴリズム設計における究極の目標入力集合 X に対して定義される最小限の T(n), S(n) を達成しつつ、正確性と停止性を保証する f を構築すること。

まとめ

まとめると、数式で抽象化すればこうなります

Find f: X → Y

Such that:

∀x ∈ X,f(x)Spec(Y) // 正確性

∀x ∈ X, f halts // 停止性

Minimize: T(n), S(n) //計算量の最適化

Permalink |記事への反応(2) | 18:08

このエントリーをはてなブックマークに追加ツイートシェア

記事への反応 -
  • はい、先生、「良し悪し」が良くわかりません! 良いとされるアルゴリズムだと何かうれしいことがあるのでしょうか? 例えば正確性に関して、内部状態は持たない前提でしょうか?関...

  • はい先生!最適化が微妙に納得いきません! CPUには投機的実行を行うものがあります ステップの実行能力に余力があるのであれば、並行的にまとめて処理してしまって、有用な結果だけ...

記事への反応(ブックマークコメント)

全てのコメントを見る

人気エントリ

注目エントリ

ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2025 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2025 Movatter.jp