どのようにして時間の複雑性が整数でない指数になるのですか?(例:


8

定期的に私は次のような文に出くわします

「このアルゴリズムのウィノグラードのバリアント[20]、その漸近的複雑度もが考慮されます」(https://www.cise.ufl.edu/~sahni/papers/strassen.pdfから)O(n2.81)

ループとツリーがどのように機能するかを確認できるので、やような複雑さを直感的に理解できます。しかし、どのようにして10進数で複雑さを導き出すのかはわかりません。誰かがこれがどのように起こるかの例を教えてくれますか?O(n2)O(nlogn)

回答:


9

Strassenのアルゴリズムの実行時間の複雑さは、繰り返しによって与えられ ます。 (適切な基本ケースで。)この反復の解はT n = O n log 2 7です。

T(n)=7T(n/2)+O(n2).
T(n)=O(nlog27)

Strassenのアルゴリズムは、2つの行列A Bをそれぞれ4つのn / 2 × n / 2 行列に分解して乗算し、小さい行列の7つの線形結合を計算します(例:(A iB i i = 1 7C i = A i B iを再帰的に計算し、4つnn×nA,B(n/2)×(n/2)(Ai,Bi)i=1,,7Ci=AiBi行列 C iの線形結合をとることによる結果の行列。このようにして、この実行時間が実現しました。詳細については、Strassenのアルゴリズムに関する多くの情報を参照してください。ちなみに、行列の乗算には漸近的に高速なアルゴリズムがあり、現在のチャンピオンはLe Gallです。(n/2)×(n/2)C


私は答えを探していると思います-「この場合、この再帰関係を解決することにより、10進数が得られます。」-私は実際に、これが発生する状況について、もう少し一般的な質問をしようとしています。再帰関係は、整数以外の指数を得る唯一の可能な方法ですか?
Joe

1
他の方法があります。たとえば、ネットワークフローアルゴリズムでは、いくつかの反復アルゴリズムが√に収束する可能性があります。ステップ。他の例はチェビシェフ多項式であり、次数dの多項式のように動作しますが、次数 √を持っていますndd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.