¿Cuál es la diferencia entre la mochila y los problemas de Cutting the Rod usando programación dinámica?

Asumo la siguiente estructura de su matriz de solución DP.

  1. 0/1 Mochila: las filas representan elementos y las columnas representan la capacidad general de la mochila.
  2. corte de varilla: las filas representan diferentes tamaños permitidos y las columnas representan la longitud total de la varilla.

En 0/1 Mochila, puede elegir un artículo como máximo una vez. Mientras que, en el corte de varillas, puede cortar una varilla en todos los tamaños permitidos varias veces (siempre que sea posible).

Esto significa que, en 0/1 Knapsack, para el subproblema donde decide elegir el elemento (si cabe en la capacidad), busca la solución óptima para la capacidad restante en la fila anterior (ya que no puede elige este artículo nuevamente).

Mientras que, en el corte de varilla, para el subproblema donde decide cortar la varilla en un tamaño particular (correspondiente a la fila), busca la solución opcional para la longitud restante en la misma fila (ya que puede cortar la varilla en la misma longitud varias veces).

En segundo lugar, realiza ajustes similares cuando recorre la matriz desde la última fila y la última columna para encontrar los elementos reales que dieron las soluciones óptimas en ambos problemas.