Você está na página 1de 11

Programao

Dinmica
Anlise de Algoritmos
Tpicos
O Que E Como Funciona A Programao
Dinmica.
Exemplo De Aplicaes.
Vantagens E Desvantagens.

O que a Programao Dinmica
A Programao Dinmica (PD) pode ser caracterizada como um
processo sequencial de tomada de decises, onde uma deciso tima
global pode ser obtida atravs da otimizao de subproblemas (ou
timos locais) individuais.
Na Programao Dinmica resolvem-se os problemas de pequena
dimenso e guardam-se as solues em tabelas dinmicas, a fim de
evitar redundncia de clculo, ou seja, uma soluo parcial obtida
somente calculada uma nica vez. Este procedimento importante
porque, diferentemente da tcnica de diviso e conquista, aqui cada
subproblema dependente de pelo menos um outro. A soluo final
obtida combinando as solues dos problemas menores
Como funciona a Programao Dinmica
Na inicializao, a entrada
decomposta em partes
mnimas para as quais so
obtidas respostas diretas,
A cada iterao vai
aumentando tamanho das
partes e obtendo respostas
correspondentes a partir das
j geradas, at que as partes
atingem o tamanho da entrada
original.
Quando ento sua soluo
recuperada e o processo
finalizado.

Algumas Aplicaes Que Utilizam PD
Multiplicao
de vrias
matrizes
1
Problema da
Mochila
2
Projeto de
sistemas
confiveis
3
Multiplicao de Vrias Matrizes
Seja M=A
1
x A
2
x A
3
x...x A
n ,
Onde cada
Ai uma matriz com mi-1 linhas e mi
colunas. A ordem na qual as matrizes so
multiplicadas pode ter um efeito enorme
no nmero total de operaes de adio e
multiplicao necessrias para obter M.
Por exemplo, se A1=A(50x20) ;
A2=B(20x1) ; A3=C(1x10) e
A4=D(10x100) ,teramos as seguintes
possibilidades de realizar o produto,
conforme colocao de parnteses.

a. A x ( ( B x C ) x D )
b. ( ( A x B ) x C ) x D
c. ( A x B ) x ( C x D )
d. A x ( B x ( C x D ) )
e. ( A x ( B x C ) ) x D

Exemplo
A1=A(50x20) ; A2=B(20x1) ; A3=C(1x10) e A4=D(10x100)
O uso da Programao Dinmica para o problema do produto de
matrizes tem por objetivo
encontrar uma estrutura de parentetizao tima sem ter que gerar
todas estas possibilidades.

ALGORITMO
Algoritmo PD_Produto_Matrizes
ENTRADA: um vetor P contendo as ordens das n matrizes
SADA: matrizes M e S contendo a soluo
inicio
para i =1 at n
M[i , i ]=0
para L= 2 at n
para i= 1 at n-L+1
j = i + L 1
M[i , j ] =
para k= i at j -1
q = M[ i ,k] + M[k+1, j ] + P[i ]*P[k]*P[j ]
se q < M[ i , j ]
M[i , j ] = q
S[i , j ] = k
return M[1,n] , S
f im {PD_Produto_Matrizes}
Vantagens da Programao Dinmica
Pode ser
utilizada
num
grande
nmero de
problemas
de
otimizao
discreta.
1
No
necessita
de muita
preciso
numrica.
2
til para
aplicar em
problemas
que exigem
teste de
todas as
possibilida-
des
3
Desvantagens da Programao Dinmica
Necessita de
grande espao
de memria
1
A
complexidade
espacial pode
ser
exponencial.
2
Alunas: Juliane Marinho
&
Larissa Ferrarez
Anlise de Algoritmos
Professor: Ronaldo Goldschimdt

Você também pode gostar