Wolfram Language

Encontre a complexidade computacional

Quando se fala do tempo de execução de um algoritmo, é convencional fornecer a função mais simples AsymptoticEqual (big ) para a função exata de tempo de execução. Outra forma de afirmar essa igualdade é que cada função seja tanto AsymptoticLessEqual (big ) e AsymptoticGreaterEqual (big ) que a outra. Esses conceitos são ilustrados no contexto do algoritmo de Strassen, o primeiro algoritmo de multiplicação de matriz subcúbica encontrado.

O algoritmo consiste em quatro etapas: dividindo cada uma das matrizes em 4 submatrizes, formando 14 combinações lineares das 8 submatrizes, multiplicando 7 pares destes e somando os 7 resultados. O tempo para fazer a multiplicação será, portanto, um tempo constante para dividir a matriz, para formar combinações lineares no segundo e quarto passos e para o terceiro passo.

Resolva a relação de recorrência.

Embora o resultado seja complicado, .

Da mesma forma, e .

Note que , então o algoritmo é subcúbico.

Compare a taxa de crescimento do algoritmo ingênuo cúbico e do algoritmo de Strassen.

Exemplos Relacionados

de en es fr ja ko zh