Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Mochiller

Descargar como txt, pdf o txt
Descargar como txt, pdf o txt
Está en la página 1de 7

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

n distintos tipos de ítems, que van del 1 al

n. De cada tipo de ítem se tienen

{\displaystyle q_{i}} ítems disponibles, donde

{\displaystyle q_{i}} es un entero positivo que cumple


1

<
∞{\displaystyle 1\leq q_{i}<\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:

maximizar

=
1

tal que

=
1

y
0

.
{\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}}&0\leq x_{i}\leq q_{i}.\
end{array}}}
Si

=
1
{\displaystyle q_{i}=1} para

=
1
,
2
,
.
.
.
,

{\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}} 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

maximizar

=
1
tal que

=
1


{
0
,
1
}
.
{\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}}&x_{i}\in \{0,1\}.\
end{array}}}
Por tanto si existe un vector xi tal que

=
1

{\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:

>

=
1


1

{\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.

maximizar

=
1

tal que

=
1

,

=
1
para todo
1


{
0
,
1
}
para todo
1

.
{\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

Este artículo o sección sobre matemáticas necesita ser wikificado, por favor,
edítalo para que 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})} 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:

Maximizar

=
1

sujeto a

=
1


{
0
,
1
}
con

=
1
,

,

{\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.

También podría gustarte