アルゴリズムの複雑さの隠された定数


9

多くの問題で、漸近的な複雑性が最も高いアルゴリズムには、大きなO表記法によって隠されている非常に大きな定数係数があります。これは、行列乗算、整数乗算(具体的には、Harveyおよびvan der Hoevenの最近のO(n log n)整数乗算アルゴリズム)、低深度ソートネットワーク、およびグラフマイナーの検出で発生し、いくつかを作成します。このようなアルゴリズムは、銀河アルゴリズムと呼ばれることもあります。

一般的なソートや整数加算などの他のアルゴリズムの場合、アルゴリズムは最適な漸近的な複雑さと小さな定数係数で知られていることに注意してください。

前者のアルゴリズムを後者のアルゴリズムから分離するために、理論的な観点からどのような研究が行われましたか?

計算の異なるモデル間の違いを隠すために、隠された定数がしばしば省略されることを知っています。ただし、多種多様なモデルの下では、これらの銀河アルゴリズムは、たとえば10億サイズの入力に対して漸近的に悪いアルゴリズムよりも遅くなると確信しています。場合によっては、区別が微妙ではありません。厳密にされていますか?

たとえば、非常に単純なISAを備えたフォンノイマンマシンなどの非常に単純な計算モデルを考案し、アルゴリズムを実装して、実行時間を明示的な定数で制限することができます。これはさまざまなアルゴリズムで行われましたか?


1
高速整数乗算アルゴリズムは銀河系ではありません。それらは実際には実際に一般的に使用されています。
EmilJeřábek19年

2
O(nlogn)

1
著者が自分で書いているように(そしてリプトンのブログで言及されているように)、単純化のための論文は定数を最適化しようとはしていませんが、それらは実用的である可能性が非常に高いです。
EmilJeřábek19年

@EmilJeřábekその紙は確かに私が話していたものでした。このペーパーでは、可能な改善について説明していますが、このアルゴリズムが、実際に使用されている現在のO(n log n log log n)アルゴリズムよりも実際に改善されるかどうかは非常に疑わしいです。実用的な入力用です。
isaacg

4
2d12d=1729d=92912

回答:


2

NCN

この方法論では、特定の計算モデルを修正する必要はありませんが、もちろんそれは有用です。また、最悪の場合の動作または予想される動作、あるいはそれ以外の動作を計算することもできます。

この方法論で最も重要な要素は、これらの値の生成関数の分析です。複雑な分析の方法を使用して、非常に正確な漸近近似を取得できる場合があります。

O(nlogn)

実際、クイックソートでは、サブリストを再帰的にソートすることでリストをソートします。そのため、サイズ10より小さいリストでマージソートを使用すると、すべてのサイズで改善が得られます。汎用ソートアルゴリズムは、サイズが10になるまでクイックソートとして実装され、その後、マージソートが使用されます。コードのコメントには、パフォーマンステストでこの値が最適であることが示されていることが記載されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.