You are on page 1of 5

Problema de la mochila

Ejemplo del problema de la mochila: dada una mochila con una capacidad de 15 kg que puedo llenar con
cajas de distinto peso y valor, qu cajas elijo de modo de maximizar mis ganancias y no exceder los 15
kg de peso permitidos?
En algoritmia, el problema de la mochila, comnmente abreviado
por KP (del ingls Knapsack problem) es un problema de optimizacin combinatoria, es
decir, que busca la mejor solucin entre un conjunto de posibles soluciones a un problema.
Modela una situacin anloga al llenar una mochila, incapaz de soportar ms de un peso
determinado, con todo o parte de un conjunto de objetos, cada uno con un peso
y valor especficos. Los objetos colocados en la mochila deben maximizar el valor total sin
exceder el peso mximo.
ndice
[ocultar]
1 Historia
2 Definicin
3 Simplificaciones y generalizaciones
o 3.1 Problema de la mochila simple
o 3.2 Problema de la mochila de mltiple eleccin
o 3.3 Problema de la mochila mltiple
4 Mtodos de resolucin
o 4.1 Algoritmos voraces
o 4.2 Algoritmos genticos
5 Referencias
Historia[editar]
El problema de la mochila es uno de los 21 problemas NP-completos de Richard Karp,
establecidos por el informtico terico en un famoso artculo de 1972.
1
Ha sido
intensamente estudiado desde mediados del siglo XX y se hace referencia a l en el ao
1897, en un artculo de George Mathews Ballard.
2

Si bien la formulacin del problema es sencilla, su resolucin es ms compleja.
Algunos algoritmos existentes pueden resolverlo en la prctica para casos de un gran
tamao. Sin embargo, la estructura nica del problema, y el hecho de que se presente
como un subproblema de otros problemas ms generales, lo convierten en un problema
frecuente en la investigacin.
Definicin[editar]
A continuacin se define formalmente el problema.
3
Supongamos que tenemos n distintos
tipos de tems, que van del 1 al n. De cada tipo de tem se tienen q
i
tems disponibles,
donde q
i
es un entero positivo que cumple .
Cada tipo de tem i tiene un beneficio asociado dado por v
i
y un peso (o volumen) w
i
.
Usualmente se asume que el beneficio y el peso no son negativos. Para simplificar la
representacin, se suele asumir que los tems estn listados en orden creciente segn el
peso (o volumen).
Por otro lado se tiene una mochila, donde se pueden introducir los tems, que soporta
un peso mximo (o volumen mximo) W.
El problema consiste en meter en la mochila tems de tal forma que se maximice el valor
de los tems que contiene y siempre que no se supere el peso mximo que puede
soportar la misma. La solucin al problema vendr dado por la secuencia de
variables x
1
, x
2
, ..., x
n
donde el valor de x
i
indica cuantas copias se metern en la mochila
del tipo de tem i.
El problema se puede expresar matemticamente por medio del siguiente programa lineal:

Si para i=1,2,...,n se dice que se trata del problema de la mochilla 0-1. Si
uno o ms es infinito entonces se dice que se trata del problema de la mochila no
acotado tambin llamado a veces problema de la mochila entera. En otro caso se
dice que se trata del problema de la mochila acotado
Simplificaciones y generalizaciones[editar]
Problema de la mochila simple[editar]
Artculo principal: Problema de la mochila simple
Observar que en un problema de la mochilla 0-1, si para cada tipo de tem el beneficio
y los pesos son idnticos (v
i
=w
i
), entonces el problema quedara formulado de la
siguiente forma

Por tanto si existe un vector x
i
tal que , entonces esa ser una
solucin al problema. Si existe una solucin x
i
de este tipo, resolver el problema de
la mochila realmente es resolver el problema de la suma de subconjuntos.
Adems si el conjunto de los pesos de los elementos es una secuencia
supercreciente, es decir, se verifica que:

Entonces se dice que se trata de un problema de la mochila simple o
tambin problema de la mochila tramposa. Este tipo de problemas tiene
importantes aplicaciones en el mundo de la criptografa.
Problema de la mochila de mltiple eleccin[editar]
Si en un problema de la mochila 0-1 los tems estn subdivididos en k clases,
denotadas por N
i
, y exactamente un tem tienen que ser tomado de cada
clase, entonces hablamos del problema de la mochila de mltiple eleccin.

Problema de la mochila mltiple[editar]
Si en un problema de la mochila 0-1 tenemos n items y m mochilas con
capacidades W
i
entonces tenemos el problema de la mochila mltiple
Un caso especial del problema de la mochila mltiple es cuando los
beneficios son iguales a los pesos y todas las mochilas tienen la misma
capacidad. Entonces se le llama problema de la mltiple suma de
subconjuntos.
Mtodos de resolucin[editar]

Este artculo o seccin sobre matemticas necesita
ser wikificado con un formato acorde a
las convenciones de estilo.
Por favor, edtalo para que las cumpla. Mientras tanto, no
elimines este aviso puesto el 23 de enero de 2012.
Tambin puedes ayudar wikificando otros artculos.
Este problema se ha resuelto tradicionalmente mediante programacin
lineal entera.
El hecho de que se trate de programacin lineal hace referencia a que la
funcin a optimizar y las inecuaciones que constituyen las restricciones
han de serlineales, es decir, han de ser funciones cuyas incgnitas estn
elevadas exclusivamente a la unidad.
Existe otra forma de resolver este tipo de problema, a travs de los
denominados algoritmos voraces. Una aproximacin voraz consiste en
que cada elemento a considerar se evala una nica vez, siendo
descartado o seleccionado, de tal forma que si es seleccionado forma
parte de la solucin, y si es descartado, no forma parte de la solucin ni
volver a ser considerado para la misma. Con este mtodo no siempre es
posible dar una solucin a un problema.
Otro sistema para resolver el problema de la mochila es
mediante algoritmos genticos que son mtodos de optimizacin que
tratan de hallar (xi,...,xn) tales que sea mximo.
Algoritmos voraces[editar]
a) Aplicacin del mtodo:
Partimos de la formulacin del problema de la mochila aportada
anteriormente:
Maximizar [Sumatoria (bi*xi) desde i= 1 hasta n]
sujeto a: xi {0,1} con i =1,..., n
[Sumatoria (ci*xi) desde i=1 hasta n] < P
La utilizacin de un algoritmo voraz consiste en introducir en
la mochila segn orden decreciente de utilidad (beneficio) los
diversos objetos. En una primera etapa, se adicionarn
unidades enteras hasta que, por motivo de capacidad, no sea
posible seguir introduciendo enteros y haya que aadir la
porcin que quepa del siguiente objeto.
b) Concepto de solucin ptima:
Teorema: si se ordenan los objetos de forma de decreciente
en cuanto a su relacin (utilidad/ponderacin = bi/ci) y se
introducen en la mochila enteros en este orden mientras
quepan y cuando no quede capacidad para uno entero se
aade la porcin que an tenga cabida el resultado al que se
llega es una solucin ptima.
Algoritmos genticos[editar]
Consisten en mtodos adaptativos de optimizacin que tratan
de hallar (xi,...,xn) tales que [Sumatoria (bi*xi) desde i= 1
hasta n] sea mximo. Pueden usarse para resolver problemas
de bsqueda y optimizacin. Se basan en el proceso gentico
de los organismos vivos, por imitacin de este proceso, los
Algoritmos Genticos son capaces de ir creando soluciones
para problemas del mundo real. La evolucin de dichas
soluciones hacia valores ptimos del problema depende en
buena medida de una adecuada codificacin de las mismas.
Para utilizar un algoritmo gentico hacen falta tres elementos:
Descripcin de la poblacin de individuos: cada individuo representa una
solucin factible a un problema dado. A cada individuo se le asigna un valor
puntuacin, relacionado con la bondad de dicha solucin.
Funcin de evaluacin (llamada funcin de ajuste): encontrar una expresin
matemtica que punte a cada individuo de forma que nuestro ideal sea un
mximo o un mnimo.
Seleccin o Mecanismos de reproduccin: la funcin de seleccin de padres
ms utilizada, es la denominada funcin de seleccin proporcional a la funcin
objetivo, en la cual cada individuo tiene una probabilidad de ser seleccionado como
padre que es proporcional al valor de su funcin objetivo, es decir, indica que cada
objeto de la mochila tendr una probabilidad de ser seleccionado que depender
de la relacin que exista entre beneficios y el peso que ocupa.
Referencias[editar]
1. Volver arriba Richard M. Karp
(1972). Reducibility Among Combinatorial
Problems. En R. E. Miller y J. W. Thatcher
(editores). Complexity of Computer
Computations. Nueva York: Plenum.
pp. 85103.
2. Volver arriba G.B. Mathews, On the
partition of numbers, Proceedings of the
London Mathematical Society, 28:486-490,
1897.
3. Volver arriba Eric Gossett,"Discrete
Mathematics with Proof". Segunda edicin.
John Willey 2009.

You might also like