定期的に私は次のような文に出くわします
「このアルゴリズムのウィノグラードのバリアント[20]、その漸近的複雑度もが考慮されます」(https://www.cise.ufl.edu/~sahni/papers/strassen.pdfから)
ループとツリーがどのように機能するかを確認できるので、やような複雑さを直感的に理解できます。しかし、どのようにして10進数で複雑さを導き出すのかはわかりません。誰かがこれがどのように起こるかの例を教えてくれますか?
定期的に私は次のような文に出くわします
「このアルゴリズムのウィノグラードのバリアント[20]、その漸近的複雑度もが考慮されます」(https://www.cise.ufl.edu/~sahni/papers/strassen.pdfから)
ループとツリーがどのように機能するかを確認できるので、やような複雑さを直感的に理解できます。しかし、どのようにして10進数で複雑さを導き出すのかはわかりません。誰かがこれがどのように起こるかの例を教えてくれますか?
回答:
Strassenのアルゴリズムの実行時間の複雑さは、繰り返しによって与えられ ます。 (適切な基本ケースで。)この反復の解はT (n )= O (n log 2 7)です。
Strassenのアルゴリズムは、2つの行列A 、Bをそれぞれ4つの(n / 2 )× (n / 2 )行列に分解して乗算し、小さい行列の7つの線形結合を計算します(例:(A i、B i )i = 1 、… 、7、C i = A i B iを再帰的に計算し、4つ(n行列 C iの線形結合をとることによる結果の行列。このようにして、この実行時間が実現しました。詳細については、Strassenのアルゴリズムに関する多くの情報を参照してください。ちなみに、行列の乗算には漸近的に高速なアルゴリズムがあり、現在のチャンピオンはLe Gallです。