Sesión 04: Programación dinámica II¶
Problema la mochila¶
Descripción del problema
- Se tiene una mochila de capacidad M
- Se tienen un conjunto de elementos, representados por la tupla peso y ganancia \((w_i, b_i)\)
- Se busca maximizar la ganancia
- La salida es un x binario, donde 0 indica que el elemento no va y 1 el elemento
\[
\{(1,3),(2,6),(4,5),(3,1),(2,6)\}
\]
M = 8
Objetivo es buscar la solución que tenga mayor beneficio respetando la capacidad de la mochila
- {1,1,1,0,0} = 14
- {0,1,1,0,1} = 17
- {0,0,1,0,1} = 11
Empezamos a dividir el problema general M(8,5), y tomamos la decisión de llevar o no llevar el elemento
\[
x_5
\]
Subestructura optima
Hay dos variables que se mueven, la capacidad y el elemento
\[
M[i,j] = \begin{cases} 0 & j = 0 \\ 0 & j = 1 \wedge i < w_j \\ b_i & i \geq w_j \wedge j = 1 \\ \texttt{max}(M[i-w_j, j-1]), M[i,j-1]) & \texttt{En otro caso} \end{cases}
\]
