Articulo de referencia

Problema continuo de la mochila

En la ciencia de la computación teórica , el problema de la mochila continua (también conocido como problema de la mochila fraccionaria ) es un problema algorítmico de optimizac...

En la ciencia de la computación teórica , el problema de la mochila continua (también conocido como problema de la mochila fraccionaria ) es un problema algorítmico de optimización combinatoria cuyo objetivo es llenar un contenedor (de capacidad fija) con cantidades fraccionarias de diferentes materiales elegidos para maximizar el valor de los materiales seleccionados. [ 1 ] [ 2 ] Es una variación del problema de la mochila clásica , en el que los artículos que se colocan en el contenedor son indivisibles; sin embargo, el problema de la mochila continua puede resolverse en tiempo polinomial, mientras que el problema de la mochila clásica es NP-difícil . [ 1 ] Es un ejemplo clásico de cómo un cambio aparentemente pequeño en la formulación de un problema puede tener un gran impacto en su complejidad computacional .

Definición del problema

Un ejemplo del problema de la mochila, ya sea continuo o clásico, puede especificarse mediante la capacidad numérica W de la mochila, junto con una colección de materiales, cada uno de los cuales tiene dos valores asociados: el peso w i del material disponible para ser seleccionado y el valor total v i de dicho material. El objetivo es elegir una cantidad x iw i de cada material, sujeta a la restricción de capacidad. iincógnitaiW{\displaystyle \sum _{i}x_{i}\leq W} y maximizar el beneficio total i(incógnitaiwi)vi.{\displaystyle \sum _{i}\left({\frac {x_{i}}{w_{i}}}\right)v_{i}.} En el problema clásico de la mochila, cada una de las cantidades x i debe ser cero o w i ; el problema continuo de la mochila se diferencia en que permite que x i varíe continuamente de cero a w i . [ 1 ]

Algunas formulaciones de este problema reescalan las variables x i para que estén en el rango de 0 a 1. En este caso, la restricción de capacidad se convierte en iincógnitaiwiW,{\displaystyle \sum _{i}x_{i}w_{i}\leq W,} y el objetivo es maximizar el beneficio total. iincógnitaivi.{\displaystyle \sum _{i}x_{i}v_{i}.}

Algoritmo

El problema continuo de la mochila admite una solución voraz publicada por primera vez en 1957 por George Dantzig . [ 3 ] [ 4 ] A cada material se le asigna la razónvi/wi{\displaystyle v_{i}/w_{i}}y luego los materiales se clasifican en orden descendente de esta proporción.

Mientras el peso total de los materiales elegidos sea menor que W , el algoritmo toma la mayor fracción posible del primer elemento de la lista ordenada. Por ejemplo, supongamos que tenemos 4 elementos con pesos(10,20,20,10){\displaystyle (10,20,20,10)}, valores(50,80,60,20){\displaystyle (50,80,60,20)}y que la capacidad de la mochila esW=34{\displaystyle W=34}Se calcula la relación valor-peso de cada artículo, lo que da como resultado:(5,4,3,2){\displaystyle (5,4,3,2)}. En este caso, los elementos ya están ordenados en orden descendente de proporción. El algoritmo luego toma todos los elementos 1, todos los elementos 2 y0,2{\displaystyle 0.2}del artículo 3.

Si se utiliza la ordenación basada en comparaciones , este algoritmo se ejecuta enO(norteregistronorte){\displaystyle O(n\log n)}con respecto anorte{\displaystyle n}materiales. [ 1 ] [ 2 ] Sin embargo, adaptando un algoritmo para encontrar medianas ponderadas , es posible resolver el problema en tiempoO(norte){\displaystyle O(n)}. [ 2 ]

La prueba de corrección se deduce de un argumento de intercambio estándar. Supongamos que tenemos una solución que no es la solución voraz. Tomemos el primer caso en el que la nueva solución y la solución voraz difieren. Por ejemplo, si la solución voraz toma fracciones(1,1,0,2,0){\displaystyle (1,1,0.2,0)}de 4 elementos (ordenados por la relación valor-peso) y la nueva solución toma fracciones(1,1,0,0,4){\displaystyle (1,1,0,0.4)}Si son los mismos 4 elementos, entonces difieren en la tercera entrada.

En general, la solución voraz toma los pesos de los elementos ordenados por proporción, por lo que asigna mayor peso a los elementos con mayor proporción. Dado que ambas soluciones asignan el mismo peso total a todos los elementos, la nueva solución se ve obligada a asignar peso a los elementos con menor proporción. Por lo tanto, la nueva asignación tiene un valor no mayor que el valor asignado por la solución voraz.

Referencias

  1. 1 2 3 4 Goodrich, Michael T. ; Tamassia, Roberto (2002), "5.1.1 El problema de la mochila fraccionaria", Diseño de algoritmos: fundamentos, análisis y ejemplos de Internet , John Wiley & Sons, pp. 259– 260 .
  2. 1 2 3 Korte, Bernhard ; Vygen, Jens (2012), "17.1 Problema de la mochila fraccionaria y mediana ponderada", Optimización combinatoria: teoría y algoritmos , Algoritmos y combinatoria, vol. 21, Springer, pp. 459–461 , ISBN   9783642244889.
  3. Error de cita: La referencia con nombre Dantzigfue invocada pero nunca definida (consulte la página de ayuda ).
  4. Error de cita: La referencia con nombre somereffue invocada pero nunca definida (consulte la página de ayuda ).