Você está na página 1de 2

Em q momento a interação recursiva (top down) de um

algoritmo de multiplicação de cadeia de matrizes vai


parar?
Ele tem essa recorrência
m[i,j] = número mínimo de multiplicações escalares pra
calcular de Ai até Aj
se i=j então m[i,j] = 0
se i < j então m[i,j] = min[i<=k<j] { m[i,k] +
m[k+1,j] + p[i-1]p[k]p[j] }

Sendo p um vetor de entrada desse algoritmo com as


dimensões

A interação recursiva (top-down) de um algoritmo de


multiplicação de cadeia de matrizes usando a
recorrência que você mencionou vai parar quando todas
as combinações possíveis de multiplicação de matrizes
tenham sido calculadas. Isso acontece quando i é igual
a j em cada chamada recursiva. Quando i = j, m[i, j] é
definido como 0, o que indica que não há necessidade
de multiplicar uma única matriz, pois já está em sua
forma final.

Basicamente, a recursão começa com i e j sendo índices


de matrizes diferentes, e a função se chama
recursivamente para todas as combinações de k (onde i
<= k < j) para encontrar a combinação com o número
mínimo de multiplicações escalares. Isso é feito até
que todas as matrizes tenham sido combinadas, ou seja,
i seja igual a j para todas as chamadas recursivas,
indicando que todas as multiplicações necessárias
foram calculadas.

O algoritmo então pára quando todas as combinações de


matrizes tenham sido consideradas e o número mínimo de
multiplicações tenha sido calculado para todas elas. O
resultado final será armazenado em m[1, n], onde n é o
número total de matrizes na cadeia.

Essa abordagem realmente usa matriz?


A abordagem que mencionou usa uma tabela ou matriz
para armazenar os resultados intermediários das
chamadas recursivas. Embora essa matriz não seja
diretamente relacionada às matrizes de multiplicação,
é uma abordagem de programação dinâmica que utiliza
uma matriz (ou tabela) chamada "m" para armazenar os
resultados dos subproblemas para evitar cálculos
repetidos. A matriz "m" é usada para armazenar o
número mínimo de multiplicações escalares necessárias
para calcular as matrizes de uma cadeia.

Portanto, enquanto a abordagem não opera diretamente


com as matrizes de multiplicação, ela usa uma matriz
para armazenar informações intermediárias e calcular o
número mínimo de multiplicações necessárias de forma
eficiente por meio da recursão e da programação
dinâmica. É uma técnica comum para otimizar o cálculo
de problemas como o de multiplicação de cadeia de
matrizes.

Você também pode gostar