Алгоритм Штрассена.Гольбек.Пкс-121.ppt
- Количество слайдов: 4
Алгоритм Штрассена Гольбек Милена ПКС-121
Алгоритм Штрассена l l l Алгоритм Штрассена предназначен для быстрого умножения матриц. Он был разработан Фолькером Штрассеном в 1969 году и является обобщением метода умножения Карацубы на матрицы. В отличие от традиционного алгоритма умножения матриц (по формуле cik = Σaijbjk), работающего за время Θ(n³) = Θ(nlog 2 8), алгоритм Штрассена умножает матрицы за времяΘ(nlog 2 7) = Θ(n 2. 81), что даёт выигрыш на больших плотных матрицах начиная, примерно, от 64× 64. Несмотря на то, что алгоритм Штрассена является не самым быстрым из существующих алгоритмов быстрого умножения матриц, он проще программируется, поэтому именно он чаще используется на практике.
Алгоритм l Пусть A, B — две квадратные матрицы над кольцом R. Матрица C получается по формуле: l Если размер умножаемых матриц n не является натуральной степенью двойки, мы дополняем исходные матрицы дополнительными нулевыми строками и столбцами. При этом мы получаем удобные для рекурсивного умножения размеры, но теряем в эффективности за счёт дополнительных ненужных умножений.
l Итерационный процесс продолжается n раз, до тех пор пока матрицы Ci, j не выродятся в числа (элементы кольца R). На практике итерации останавливают при размере матриц от 32 до 128 и далее используют обычный метод умножения матриц. Это делают из-за того, что алгоритм Штрассена теряет эффективность по сравнению с обычным на малых матрицах в силу большего числа сложений.
Алгоритм Штрассена.Гольбек.Пкс-121.ppt