Para resolverlos denotemos por 
 el beneficio óptimo obtenido
usando los primeros 
 objetos y una mochila de capacidad 
.
Entonces 
 si 
 y 0
 en otro caso.
Además 
El esquema del algoritmo es:
 1	  for my $c (0..$M) {
 2	    $f[0][$c] = ($w[0] <= $c)? $p[0] : 0;
 3	  }
 4	
 5	  for my $k (1..$N-1) {
 6	    for my $c (0..$M) {
 7	      my $n = $f[$k-1][$c];
 8	      if ($c >= $w[$k]) {
 9	        my $y = $f[$k-1][$c-$w[$k]]+$p[$k];
10	        $f[$k][$c] = ($n < $y)? $y : $n;
11	      }
12	      else { $f[$k][$c] = $n; }
13	    }
14	  }
En las líneas 1-3 inicializamos la tabla @f. Después 
aparecen dos bucles anidados: el primero en los objetos y 
el segundo en las capacidades. Las líneas 8-11 no son mas 
que la transcripción de la ecuación de estado 
5.1.
Casiano Rodríguez León
