Coppersmithův-Winogradův algoritmus
Coppersmithův–Winogradův algoritmus, pojmenovaný po Donovi Coppersmithovi a Shmuelovi Winogradovi, je asymptoticky nejrychlejší známý algoritmus pro násobení matic. Lze s ním vynásobit dvě matice
v čase
. Jde o zlepšení oproti
u triviálního algoritmu a
u Strassenova algoritmu. Mohlo by být možné exponent dále zlepšit, nicméně exponent musí být alespoň 2 (protože matice
má
hodnot a každou z nich je nutné alespoň jednou přečíst, aby bylo možné spočítat přesný výsledek).
Coppersmithův–Winogradův algoritmus se často používá jako stavební prvek v jiných algoritmech k dokázání jejich teoretické časové náročnosti. Nicméně na rozdíl od Strassenova algoritmu se příliš nepoužívá v praxi, protože je výhodnější až pro matice velmi velkých řádů.[1]
Odkazy [editovat]
Reference [editovat]
V tomto článku byl použit překlad textu z článku Coppersmith–Winograd algorithm na anglické Wikipedii.
- ↑ Robinson, Sara (2005), "Toward an Optimal Algorithm for Matrix Multiplication", SIAM News 38 (9), http://www.siam.org/pdf/news/174.pdf
Literatura [editovat]
- COHN, Henry, et al. Proceedings of the 46th Annual Symposium on Foundations of Computer Science. Pittsburgh, PA, USA : IEEE Computer Society, 2005-10-23. Dostupné na arΧivu. ISBN 0-7695-2468-0. Kapitola Group-theoretic Algorithms for Matrix Multiplication, s. 379–388. (anglicky)
- COPPERSMITH, Don; WINOGRAD, Shmuel. Matrix multiplication via arithmetic progressions. Journal of Symbolic Computation. 1990, čís. 9, s. 251–280. (anglicky)