  The goal of this article is to study algorithms that compute the product
between two matrixes, specifically using the ingenuous methods of Strassen and
Strassen-Winograd, which will be presented in Section 2. At present, the cited
methods are not the most optimal considering the arithmetic complexity of these
algorithms (see Table 1). However, changes to the Strassen and
Strassen-Winograd methods will be exposed which will result in a reduction in
their memory allocation and/or execution time. The algorithms in this study
were implemented using the Julia programming language, version 1.9.1, with the
aid of the packages Pluto (notebooks), Plots (graphic visualization of the
results) and BenchmarkTools (measurement of memory allocation and execution
time of the algorithms).
  --
  O objetivo deste artigo \'e estudar algoritmos que computam o produto entre
duas matrizes, mais especificamente utilizando os m\'etodos ing\^enuo, de
Strassen e de Strassen-Winograd, que ser\~ao apresentados na Se\c{c}\~ao 2.
Atualmente, os m\'etodos citados n\~ao s\~ao os mais otimizados considerando a
complexidade aritm\'etica de seus algoritmos (vide Tabela 1). No entanto,
ser\~ao expostas modifica\c{c}\~oes dos m\'etodos de Strassen e
Strassen-Winograd que conseguem reduzir sua aloca\c{c}\~ao de mem\'oria e/ou
tempo de execu\c{c}\~ao. Os algoritmos do problema em estudo foram
implementados utilizando a linguagem de programa\c{c}\~ao Julia, na vers\~ao
1.9.1, com o aux\'ilio dos pacotes Pluto (notebooks), Plots (visualiza\c{c}\~ao
gr\'afica dos resultados) e BenchmarkTools (medi\c{c}\~ao de aloca\c{c}\~ao de
mem\'oria e tempo de execu\c{c}\~ao dos algoritmos).
