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