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
Reference
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 Archivováno 31. 3. 2010 na Wayback Machine", SIAM News 38 (9), http://www.siam.org/pdf/news/174.pdf Archivováno 31. 3. 2010 na Wayback Machine
Literatura
- COHN, Henry, et al. Proceedings of the 46th Annual Symposium on Foundations of Computer Science. Pittsburgh, PA, USA: IEEE Computer Society, 23. 10. 2005. Dostupné v archivu. 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)