Sei sulla pagina 1di 4

En algoritmia, el problema de la mochila, com�nmente abreviado por KP (del ingl�s

Knapsack problem) es un problema de optimizaci�n combinatoria, es decir, que busca


la mejor soluci�n entre un conjunto finito de posibles soluciones a un problema.
Modela una situaci�n an�loga al llenar una mochila, incapaz de soportar m�s de un
peso determinado, con todo o parte de un conjunto de objetos, cada uno con un peso
y valor espec�ficos. Los objetos colocados en la mochila deben maximizar el valor
total sin exceder el peso m�ximo.

�ndice
1 Historia
2 Definici�n
3 Simplificaciones y generalizaciones
3.1 Problema de la mochila simple
3.2 Problema de la mochila de m�ltiple elecci�n
3.3 Problema de la mochila m�ltiple
4 M�todos de resoluci�n
4.1 Algoritmos voraces
4.2 Algoritmos gen�ticos
5 Referencias
Historia
El problema de la mochila es uno de los 21 problemas NP-completos de Richard Karp,
establecidos por el inform�tico te�rico en un famoso art�culo de 1972.1? Ha sido
intensamente estudiado desde mediados del siglo XX y se hace referencia a �l en el
a�o 1897, en un art�culo de George Mathews Ballard.2?

Si bien la formulaci�n del problema es sencilla, su resoluci�n es m�s compleja.


Algunos algoritmos existentes pueden resolverlo en la pr�ctica para casos de un
gran tama�o. Sin embargo, la estructura �nica del problema, y el hecho de que se
presente como un subproblema de otros problemas m�s generales, lo convierten en un
problema frecuente en la investigaci�n de operaciones.

Definici�n
A continuaci�n se define formalmente el problema.3? Supongamos que tenemos
{\displaystyle n} n distintos tipos de �tems, que van del 1 al {\displaystyle n} n.
De cada tipo de �tem se tienen {\displaystyle q_{i}} {\displaystyle q_{i}} �tems
disponibles, donde {\displaystyle q_{i}} {\displaystyle q_{i}} es un entero
positivo que cumple {\displaystyle 1\leq q_{i}\leq \infty } {\displaystyle 1\leq
q_{i}\leq \infty }.

Cada tipo de �tem i tiene un beneficio asociado dado por vi y un peso (o volumen)
wi. Usualmente se asume que el beneficio y el peso no son negativos. Para
simplificar la representaci�n, se suele asumir que los �tems est�n listados en
orden creciente seg�n el peso (o volumen).

Por otro lado se tiene una mochila, donde se pueden introducir los �tems, que
soporta un peso m�ximo (o volumen m�ximo) 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 (o volumen)
m�ximo que puede soportar la misma. La soluci�n al problema vendr� dado por la
secuencia de variables x1, x2, ..., xn donde el valor de xi indica cuantas copias
se meter�n en la mochila del tipo de �tem i.

El problema se puede expresar matem�ticamente por medio del siguiente programa


lineal:

{\displaystyle {\begin{array}{rl}{\text{maximizar }}&\sum _{i=1}^{n}v_{i}x_{i}\\


{\text{tal que }}&\sum _{i=1}^{n}w_{i}x_{i}\leq W\\{\text{y}}&1\leq q_{i}\leq
\infty .\end{array}}} {\displaystyle {\begin{array}{rl}{\text{maximizar }}&\sum
_{i=1}^{n}v_{i}x_{i}\\{\text{tal que }}&\sum _{i=1}^{n}w_{i}x_{i}\leq W\\
{\text{y}}&1\leq q_{i}\leq \infty .\end{array}}}
Si {\displaystyle q_{i}=1} {\displaystyle q_{i}=1} para {\displaystyle i=1,2,...,n}
{\displaystyle i=1,2,...,n} se dice que se trata del problema de la mochila 0-1. Si
uno o m�s {\displaystyle q_{i}} {\displaystyle q_{i}} es infinito entonces se dice
que se trata del problema de la mochila no acotado tambi�n 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
Problema de la mochila simple
Art�culo principal: Problema de la mochila simple
Observar que en un problema de la mochila 0-1, si para cada tipo de �tem el
beneficio y los pesos son id�nticos (vi=wi), entonces el problema quedar�a
formulado de la siguiente forma

{\displaystyle {\begin{array}{rl}{\text{maximizar}}&\sum _{i=1}^{n}w_{i}x_{i}\\


{\text{tal que}}&\sum _{i=1}^{n}w_{i}x_{i}\leq W\\{\text{y}}&x_{i}\in \
{0,1\}.\end{array}}} {\displaystyle {\begin{array}{rl}{\text{maximizar}}&\sum
_{i=1}^{n}w_{i}x_{i}\\{\text{tal que}}&\sum _{i=1}^{n}w_{i}x_{i}\leq W\\
{\text{y}}&x_{i}\in \{0,1\}.\end{array}}}
Por tanto si existe un vector xi tal que {\displaystyle \sum
_{i=1}^{n}w_{i}x_{i}=W} {\displaystyle \sum _{i=1}^{n}w_{i}x_{i}=W}, entonces esa
ser� una soluci�n al problema. Si existe una soluci�n xi de este tipo, resolver el
problema de la mochila realmente es resolver el problema de la suma de
subconjuntos. Adem�s si el conjunto de los pesos de los elementos es una secuencia
supercreciente, es decir, se verifica que:

{\displaystyle w_{i}>\sum _{j=1}^{i-1}w_{j}\quad \forall i} {\displaystyle


w_{i}>\sum _{j=1}^{i-1}w_{j}\quad \forall i}
Entonces se dice que se trata de un problema de la mochila simple o tambi�n
problema de la mochila tramposa. Este tipo de problemas tiene importantes
aplicaciones en el mundo de la criptograf�a.

Problema de la mochila de m�ltiple elecci�n


Si en un problema de la mochila 0-1 los �tems est�n subdivididos en k clases,
denotadas por Ni, y exactamente un �tem tienen que ser tomado de cada clase,
entonces hablamos del problema de la mochila de m�ltiple elecci�n.

{\displaystyle {\begin{array}{rl}{\text{maximizar}}&\sum _{i=1}^{k}\sum _{j\in


N_{i}}v_{ij}x_{ij}\\{\text{tal que}}&\sum _{i=1}^{k}\sum _{j\in
N_{i}}w_{ij}x_{ij}\leq W,\\&\sum _{j\in N_{i}}x_{ij}=1{\text{ para todo }}1\leq
i\leq k\\{\text{y}}&x_{ij}\in \{0,1\}{\text{ para todo }}1\leq i\leq
k{\text{ y }}j\in N_{i}.\end{array}}} {\displaystyle {\begin{array}{rl}
{\text{maximizar}}&\sum _{i=1}^{k}\sum _{j\in N_{i}}v_{ij}x_{ij}\\{\text{tal
que}}&\sum _{i=1}^{k}\sum _{j\in N_{i}}w_{ij}x_{ij}\leq W,\\&\sum _{j\in
N_{i}}x_{ij}=1{\text{ para todo }}1\leq i\leq k\\{\text{y}}&x_{ij}\in \{0,1\}
{\text{ para todo }}1\leq i\leq k{\text{ y }}j\in N_{i}.\end{array}}}
Problema de la mochila m�ltiple
Si en un problema de la mochila 0-1 tenemos "n" �tems y m mochilas con capacidades
Wi entonces tenemos el problema de la mochila m�ltiple.

Un caso especial del problema de la mochila m�ltiple es cuando los beneficios son
iguales a los pesos y todas las mochilas tienen la misma capacidad. Entonces se le
llama problema de la m�ltiple suma de subconjuntos.

M�todos de resoluci�n
Spanish Language Wiki.svg
Este art�culo o secci�n sobre matem�ticas necesita ser wikificado, por favor,
ed�talo para que las cumpla con las convenciones de estilo.
Este aviso fue puesto el 23 de enero de 2012.
Este problema se ha resuelto tradicionalmente mediante programaci�n lineal entera.

El hecho de que se trate de programaci�n lineal hace referencia a que la funci�n a


optimizar y las inecuaciones que constituyen las restricciones han de ser lineales,
es decir, han de ser funciones cuyas inc�gnitas est�n elevadas exclusivamente a la
unidad.

Existe otra forma de resolver este tipo de problema, a trav�s de los denominados
algoritmos voraces. Una aproximaci�n voraz consiste en que cada elemento a
considerar se eval�a una �nica vez, siendo descartado o seleccionado, de tal forma
que si es seleccionado forma parte de la soluci�n, y si es descartado, no forma
parte de la soluci�n ni volver� a ser considerado para la misma. Con este m�todo no
siempre es posible dar una soluci�n a un problema.

Otro sistema para resolver el problema de la mochila es mediante algoritmos


gen�ticos que son m�todos de optimizaci�n que tratan de hallar {\displaystyle
(x_{i},\ldots ,x_{n})} {\displaystyle (x_{i},\ldots ,x_{n})} tales que sea m�ximo.

Algoritmos voraces
a) Aplicaci�n del m�todo:

Partimos de la formulaci�n del problema de la mochila aportada anteriormente:

{\displaystyle {\begin{array}{rl}{\text{Maximizar }}&\sum _{i=1}^{n}b_{i}x_{i}\\


{\text{sujeto a}}&\\&\sum _{i=1}^{n}c_{i}x_{i}\leq P\\&x_{i}\in \{0,1\}
{\text{ con }}i=1,\ldots ,n\\\end{array}}} {\displaystyle {\begin{array}{rl}
{\text{Maximizar }}&\sum _{i=1}^{n}b_{i}x_{i}\\{\text{sujeto a}}&\\&\sum
_{i=1}^{n}c_{i}x_{i}\leq P\\&x_{i}\in \{0,1\}{\text{ con }}i=1,\ldots
,n\\\end{array}}}
La utilizaci�n de un algoritmo voraz consiste en introducir en la mochila seg�n
orden decreciente de utilidad (beneficio) los diversos objetos. En una primera
etapa, se adicionar�n unidades enteras hasta que, por motivo de capacidad, no sea
posible seguir introduciendo enteros y haya que a�adir la porci�n que quepa del
siguiente objeto.

b) Concepto de soluci�n �ptima:

Teorema: si se ordenan los objetos de forma decreciente en cuanto a su relaci�n


(utilidad/ponderaci�n = bi/ci), y se introducen en la mochila enteros en este orden
mientras quepan, y cuando no quede capacidad para uno entero se a�ade la porci�n
que a�n tenga cabida, el resultado al que se llega es una soluci�n �ptima.

Algoritmos gen�ticos
Consisten en m�todos adaptativos de optimizaci�n que tratan de hallar (xi,...,xn)
tales que [Sumatoria (bi*xi) desde i= 1 hasta n] sea m�ximo. Pueden usarse para
resolver problemas de b�squeda y optimizaci�n. Se basan en el proceso gen�tico de
los organismos vivos, por imitaci�n de este proceso, los Algoritmos Gen�ticos son
capaces de ir creando soluciones para problemas del mundo real. La evoluci�n de
dichas soluciones hacia valores �ptimos del problema depende en buena medida de una
adecuada codificaci�n de las mismas. Para utilizar un algoritmo gen�tico hacen
falta tres elementos:

Descripci�n de la poblaci�n de individuos: cada individuo representa una soluci�n


factible a un problema dado. A cada individuo se le asigna un valor o puntuaci�n,
relacionado con la bondad de dicha soluci�n.
Funci�n de evaluaci�n (llamada funci�n de ajuste): encontrar una expresi�n
matem�tica que punt�e a cada individuo de forma que nuestro ideal sea un m�ximo o
un m�nimo.
Selecci�n o Mecanismos de reproducci�n: la funci�n de selecci�n de padres m�s
utilizada, es la denominada funci�n de selecci�n proporcional a la funci�n
objetivo, en la cual cada individuo tiene una probabilidad de ser seleccionado como
padre que es proporcional al valor de su funci�n objetivo, es decir, indica que
cada objeto de la mochila tendr� una probabilidad de ser seleccionado que depender�
de la relaci�n que exista entre beneficios y el peso que ocupa.

Potrebbero piacerti anche