2016-10-02 4 views
-4

Профессор Цезарь хочет разработать алгоритм матричного умножения, который равен асимптотически быстрее алгоритма Штрассена. Его алгоритм будет использовать метод деления и покоя, делящий каждую матрицу на куски размером n/4 x n/4, а вместе с разделяющими и комбинированными шагами выберем время Theta (n^2).Алгоритм для избиения алгоритма Штрассена

+4

Можете ли вы продемонстрировать * любое усилие в попытке решить эту проблему? –

+0

@ScottHunter Я нашел это решение онлайн, но я этого не понял. http://clrs.skanev.com/04/05/02.html – useruser1412

+0

Какое решение? Я не вижу никакого решения. –

ответ

1

На самом деле вы не можете указать, что вопрос здесь, но я думаю, это должно опровергнуть, что этот тривиальный алгоритм работает быстрее, чем Штрассен.

Допустим, вы разделите ваши матрицы на блоки каждой размерности (п/к) Х (п/к) (в вашем вопросе, к является 4). Тогда каждая матрица будет иметь к 2 блоков, и будет к 3 блока умножений (каждый блок в первой матрице будет умножен на к блоков во второй матрице). Следовательно, сложность рецидивы

Т (п) = к Т (п/к) + Θ (п).

По case 1 of the Master theorem, это означает,

T (N) = Θ (п журнал к (K)) = Θ (п).

Это то же самое, что и обычное умножение матрицы. Очевидно, это не превзойдет Штрассена.

+0

"разделите свои матрицы на k блоков ... каждая матрица будет иметь k^2 блока"? –

+0

@ScottHunter Большое спасибо! Это была ужасная опечатка. –

+3

Нет, это была блестящая опечатка :) –

Смежные вопросы