Algoritmo de Strassen para análise de complexidade de multiplicação de matrizes

8

Vejo em todos os lugares que a equação recursiva para a complexidade do alg de Strassen é:

T(n)=7T(n2)+O(n2).
Isso não está tão claro para mim. O parâmetron deve ser o tamanho da entrada, mas parece que aqui é uma dimensão de uma matriz enquanto o tamanho da entrada é realmente n2. Além disso, cada matriz da entrada é dividida em 4 sub-matrizes, portanto parece que a equação recursiva deve ser
T(n)=7T(n4)+O(n).

dafnahaktana
fonte

Respostas:

13

É verdade que o parâmetro ngeralmente denota o tamanho da entrada, mas esse nem sempre é o caso. Para multiplicação de matriz quadrada,nindica o número de linhas (ou colunas). Para gráficos,n denota frequentemente o número de vértices e mo número de arestas. Para algoritmos em funções booleanas,n denota o número de entradas, embora a própria tabela verdade tenha tamanho 2n. Existem muitos outros exemplos.

Yuval Filmus
fonte
5

Voltou ao tamanho da matriz. Suponha que a matriz original sejan×n. Portanto, consideraremosT(n) como um cálculo de duas matrizes com tamanho de n×n. Quando dividimos a matriz original em 4 partes, o tamanho de cada parte én2×n2. Portanto, o custo computacional da multiplicação de duas matrizes com esse tamanho éT(n2).

AMD
fonte
0

A complexidade do tempo geralmente é baseada no tamanho da entrada, mas não é um requisito absoluto. Nesse caso, para a multiplicação de matrizes nxn, parece mais natural contar o número de operações com base em n, e não no tamanho do problema nx n.

gnasher729
fonte