Objetos seleccionados
-
De los disponibles.
Programación dinámica · Investigación de operaciones
El problema NP-hard más famoso resuelto en tiempo pseudopolinomial por programación dinámica. Selecciona los objetos que maximicen el valor total sin superar la capacidad de la mochila. Cada objeto se toma entero o no se toma (0/1). Con tabla DP completa visualizada.
Objetos seleccionados
-
De los disponibles.
Peso utilizado
-
De la capacidad.
Capacidad sobrante
-
Sin usar.
Eficiencia
-
Valor / peso usado.
vs. Greedy ratio
-
Comparado con heurística simple.
Celdas DP
-
Operaciones realizadas.
| Objeto | Peso | Valor | Ratio V/P | ¿Tomar? |
|---|
DP[i][w] = valor máximo usando los primeros i objetos con capacidad w. Cada celda se calcula recursivamente. Se muestra cada w cada 5 unidades para legibilidad si W es grande.
DP[i][w] = DP[i-1][w] (no tomarlo)DP[i][w] = max(DP[i-1][w], DP[i-1][w-w_i] + v_i)DP[n][W].Conexión: el problema de la mochila es NP-hard en su formulación de decisión. DP lo resuelve en pseudopolinomial gracias a la estructura específica. Pero si W es exponencial en n, DP también es exponencial - no contradice la NP-completitud.