漸近解析
この用語は、アルゴリズムが操作するデータ (入力) が、「データを大きくしても結論が変わらないほど十分に大きい」という仮定の下でのアルゴリズムのパフォーマンスの分析を指します。入力の正確なサイズを指定する必要はありませんが (上限のみが必要です)、データセット自体を指定する必要があります。
ここまでは、分析方法についてのみ説明してきたことに注意してください。どの量を分析しているか (時間の複雑さ? 空間の複雑さ?) を正確に指定していません。また、関心のあるメトリック(最悪のケース? 最良のケース? 平均?) も指定していません。
実際には、漸近解析という用語は一般に、アルゴリズムの時間の複雑さの上限を指します。つまり、総実行時間で測定された最悪の場合のパフォーマンスであり、big-Oh 表記で表されます (たとえば、並べ替えアルゴリズムは となる場合がありますO(nlogn)
)。
償却分析
この用語は、最悪のシナリオを対象とする特定の一連の操作に基づくアルゴリズム パフォーマンスの分析を指します。 )。この分析を実行するには、入力のサイズを指定する必要がありますが、その形式について仮定する必要はありません。
簡単に言うと、償却分析とは、入力の任意のサイズを選択してから、アルゴリズムを「実行」することです。入力に依存する決定を下さなければならないときはいつでも、最悪のパスが取られます¹。アルゴリズムが完了するまで実行された後、計算された複雑さを入力のサイズで割り、最終結果を生成します。
¹注: 正確には、理論的に可能な最悪のパスです。容量が使い果たされるたびにサイズが動的に 2 倍になるベクトルがある場合、「最悪の場合」とは、挿入がシーケンスとして処理されるため、挿入ごとに 2 倍にする必要があると想定することを意味しません。入力が未知のままであっても、可能な限り多くの「さらに悪い」ケースを数学的に排除するために、既知の状態を使用することが許可されています (実際に使用する必要があります) 。
最も重要な違い
漸近分析と償却分析の決定的な違いは、前者は入力自体に依存するのに対し、後者はアルゴリズムが実行する一連の操作に依存することです。
したがって:
- 漸近解析により、N に近づくサイズの最良/最悪/平均ケースの入力が与えられたときのアルゴリズムの複雑さは、関数 F(N) によって制限されると断言できます。ここで、N は変数です。
- 償却分析により、特性が未知であるが既知のサイズ N の入力が与えられた場合のアルゴリズムの複雑さは、関数 F(N) の値よりも悪くないと断言できます。ここで、N は既知の値です。