El documento describe el problema de la mochila, un problema de optimización combinatoria que busca la mejor combinación de objetos para maximizar el valor total dentro de un peso máximo permitido, similar a llenar una mochila. Presenta diferentes variantes del problema como la mochila simple, de múltiple elección y múltiple. También describe métodos como algoritmos voraces y golosos para resolverlo.
2. EL PROBLEMA DE LA MOCHILA
El problema de la mochila, comúnmente abreviado por KP (del inglés
Knapsack problem) es un problema de optimización combinatoria.
Busca la mejor solución entre un conjunto 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.
3. EL PROBLEMA DE LA MOCHILA
Problema de la mochila simple: Llamado problema de la mochila
supercreciente. Es un tipo de problema de la mochila (problema NP-
completo) al que le aplican una serie de condiciones que hacen que pueda ser
planteado como un problema de la suma de subconjuntos. Si tiene solución,
esta será única.
Resolución: La solución es muy fácil debido a que la secuencia S es una
secuencia. Se recorren los elementos de la mochila de mayor a menor
comprobando si dicho valor es menor que T. Si es mayor, ese valor no estará
en la suma y por tanto en la posición correspondiente del vector solución xi
habrá un 0.
4. EL PROBLEMA DE LA MOCHILA
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 .
Problema de la mochila múltiple: Si en un problema de la mochila 0-1
tenemos n ítems y m mochilas con capacidades Wi . 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. Se le llama problema
de la múltiple suma de subconjuntos.
5. Métodos de resolución
Algoritmos voraces: 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.
Algoritmo goloso: Mientras no se haya excedido el peso de la mochila, seguir
agregando a la mochila i..
6. PSEUDOCODIGO
función Mochila 1( w[ 1..n], v[1..n] ,w) : objetos[1..n]
para i :=1 hasta n hacer
x[i] := 0 ; { la solución se construye en x}
peso :=0; {bucle voraz:}
mientras peso <= w hacer
i : =el mejor objeto restante; {1}
si peso+w[i] <= w entonces
x[i] := 1;
peso : = peso+w[i]
sino
x[i] := (w-peso)/w[i];
peso := w;
devolver x
fin función