Considere que um ladrão possui um caminhão (:-)) cuja capacidade
de peso é P e de volume é V. Este ladrão está assaltando um almoxarifado
de um museu que contém n objetos. Em visita anterior, o ladrão levantou
para cada objeto j o seu preço fj, o seu peso pj e o seu volume vj
(para j=1,...,n). Para escolher os objetos que é capaz de colocar no
seu caminhão que maximizam o valor total do furto, o ladrão utilizou um
algoritmo de programação dinâmica que utiliza a seguinte recursão:
F(j,p,v) = max { F(j-1, p, v), F(j-1, p-pj, v - vj) + fj }
-
Explique como esta recursão é utilizada pelo ladrão para obter o
furto ótimo. Explique o que representa F(j,p,v), como é obtida e para
que valores de j, p e v a cada iteração (o faz um iteração e como
é a sua inicialização).
- Qual é a complexidade do algoritmo resultante ?
- Aplique este algoritmo na seguinte instância de furto: P=3,
V=6, n=3, f1=4, p1=2, v1=2, f2=5, p2=2, v2=2,
f3=3, p3=1 e v3=2.