Está en la página 1de 8

TECNOLÓGICO NACIONAL DE MÉXICO

Instituto Tecnológico Superior de Acayucan

Índice
Investigación documental del problema de la mochila de Knapsack...............3
Introducción.............................................................................................................3
Objetivo General:.....................................................................................................3
Objetivo específico:.................................................................................................3
Descripción del contenido (hipótesis de trabajo)................................................3
Marco teórico...........................................................................................................4
Aplicaciones.............................................................................................................6
Ejemplo:....................................................................................................................7
Algoritmos propuestos para dar solución a KP...................................................8
Conclusión...............................................................................................................8
Referencias...............................................................................................................8

1
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico Superior de Acayucan

“Investigación documental del problema de la mochila de Knapsack”

Introducción

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.

El problema de la mochila es un problema simple de entender: hay una persona que tiene
una mochila con una cierta capacidad y tiene que elegir que elementos pondrá en ella.
Cada uno de los elementos tiene un peso y aporta un beneficio. El objetivo de la persona
es elegir los elementos que le permitan maximizar el beneficio sin excederse de la
capacidad permitida. A la vez es un problema complejo, si por complejidad nos referimos
a la computacional. “Un problema se cataloga como inherentemente difícil si su solución
requiere de una cantidad significativa de recursos computacionales, sin importar el
algoritmo utilizado.”

El problema de la mochila forma parte de una lista histórica de problemas NP −


Completos elaborada por Richard Karp en 1972.

Objetivo General

Tienen como objetivo identificar la mejor solución a partir de variables cuya combinación
es exponencial, dando lugar a la estimación de una solución cercana a la mejor.

Objetivo específico

Su objetivo específico consiste en maximizar la carga que transportará el carguero.

Descripción del contenido (hipótesis de trabajo)

El problema de la mochila (Knaspack problem) es un problema clásico en los problemas


denominados COP (por sus siglas en inglés Combinatorial Optimization Problem –
Problemas de Optimización Combinatoria) de Inteligencia Artificial. Este problema es
considerado NP (Non Probabilistic Problem) ya que existe una combinación exponencial
de instancias que, en su totalidad, no pueden ser resueltas. Existen variantes
relacionadas con este problema: problema con cantidad de productos limitada, problema
con cantidad de productos ilimitada, elección múltiple, elección de un producto de
diferentes categorías, como un problema relacionado con el peso de los productos, como
un problema relacionado con el monto económico, entre otros. El presente trabajo tiene
como objetivo dar un panorama general de este problema y su aplicación en la vida real.

2
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico Superior de Acayucan

Marco teórico

Uno de los problemas más estudiados es el problema de la Mochila que es conocido


como un Problema de Optimización Combinatoria de tipo NP-hard. Este problema es una
generalización de los problemas donde se tiene un contenedor (mochila) con o sin
restricciones, y donde la solución base es mediante la programación entera dicotómica.

El problema de la mochila (KP) puede ser definido con un conjunto de n artículos donde
cada artículo es identificado por nx, con un valor entero px, y un peso wx. El problema
consiste en elegir un subconjunto de n artículos maximizando el beneficio obtenido
considerando el peso total de los artículos seleccionados, sin exceder la capacidad c de la
mochila.

Definen el Problema de la mochila de la siguiente manera: Se dispone de una mochila de


capacidad C y de un conjunto de N objetos, donde los objetos son indivisibles. Describen
a un objeto k que tiene un beneficio bk y un peso pk, para k = 1,2,…, N. Para los autores,
el problema consiste en averiguar qué objetos se pueden insertar en la mochila sin
exceder la capacidad total de la misma, obteniendo el máximo beneficio.

Velasco se basa en la definición formal del problema: “Se tiene una determinada instancia
de KP con un conjunto de objetos N, que consiste de n objetos j con ganancia pj y peso
wj, y una capacidad c. (Usualmente, los valores toman números enteros positivos). El
objetivo es seleccionar un subconjunto de N tal que la ganancia total de esos objetos
seleccionados es maximizado y el total de los pesos no excede a c”.

El problema de la mochila, también llamado knapsack problem, es un problema que


modela la situación de llenar una mochila, limitada a cierta capacidad de peso y con cierta
cantidad de objetos con diferentes pesos y valores cada uno. Los objetos que se pongan
en la mochila deben de maximizar el valor total, sin superar el peso máximo permitido. Es
uno de los 21 problemas NP-completos de Richard Karp.

El problema de la mochila tiene sus puntos relevantes:


 Hay un algoritmo pseudo-polinomial (ya que ahora la salida es polinomial), con
programación dinámica.
 Hay una aproximación de tiempo polinomial completo, utilizando el algoritmo
anterior como subrutina.
 El problema es NP-completo, por lo que se espera que ningún algoritmo puede ser
rápido y correcto (en tiempo polinomial) en todos los casos.

Los datos del problema se pueden expresar en términos matemáticos. 

 Los objetos están numerados por el índice i variando de 1 a n. 


 Los números wi y pi representan el peso y el valor del número i.
 La capacidad de la bolsa se denomina en esta fórmula W.

3
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico Superior de Acayucan

Existen muchas manera de llenar la mochila, para decidir a cada uno de ellos debemos de
decir para cada objeto si lo metemos a la mochila o no, pudiendo utilizar el código binario
que cuando xi = 1, metemos el objeto a la mochila, o xi = 0, se pone afuera, y para ir
llenando esta mochila podemos utilizar un vector de contenido, que comprende: X = (x1,
x2, ..., xn), entonces podemos expresar una función del contenido del vector.

Para un contenido dado X, el valor total de la bolsa es:

n
z ( X )= ∑ pi=∑ x i p i
{i , xi =1 } i=1

De la misma manera, la suma de los pesos de los objetos es:

n
ω ( X )= ∑ ωi =∑ x i ω i
{i , xi =1 } i=1

El problema entonces lo podemos enunciar como un contenido de vectores X = (x1,


x2, ..., xn), que tienen componentes de ceros y unos, teniendo como máximo
la restricción de la función z(X).
n
ω ( X )=∑ x i ωi ≤ W
i=1

Esto quiere decir que la suma de los pesos (o sea, la función w(X)), de los objetos que
pusimos en la mochila no deben de superar la capacidad de esta, (o sea, la W).

Podemos decir que:


 z(X) es una función objetivo (como su nombre lo dice, representa el objetivo del
problema, esta expresión se maximiza o se minimiza.
 Un vector X que cumple con la restricción W en la tercera formula se le
nombra factible (o sea, que se pude hacer).
 Si tenemos un resultado máximo en z(X), entonces X es óptimo.

Se le pueden agregar otras restricciones según tengamos un caso, en


esta liga, encontramos diferentes casos singulares.

Con esto podemos argumentar que tenemos un problema de decisión cuando para decidir


a cada uno de ellos debemos de decir para cada objeto si lo metemos a la mochila o no,
que cuando xi = 1, metemos el objeto a la mochila, o xi = 0, se pone afuera y podemos
decir que es un problema de optimización porque podemos encontrar funciones objetivo,
valores óptimos utilizando las declaraciones matemáticas.

4
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico Superior de Acayucan

El problema es NP-completo porque se puede representar como una toma de decisiones


mediante el reemplazo del máximo, utilizando la siguiente pregunta: 

Dado el número k, existe un valor xi para el cual

∑ pi x i ≥ k
i=1

Existe un vínculo entre la versión de decisión y la versión de optimización del problema en


que si existe un algoritmo polinomial que resuelve la versión de decisión,  por lo tanto, las
dos versiones del problema son de dificultad similar.

El problema de optimización es NP-hard, su resolución es al menos tan difícil como el


problema de decisión.

Aplicaciones

Como parte de la aplicación del Problema de la mochila como una forma de emular
situaciones reales donde es necesario acomodar artículos de diferentes dimensiones en
un espacio reducido.

Se puede emplear, como ejemplo, el uso de contenedores en las aduanas, donde se


requiere enviar ítems de diferentes pesos, tamaños y valores de beneficio. Por otra parte,
en la misma aduana, es necesario almacenar, de manera temporánea, los contenedores
mismos, por lo que este problema puede ser resuelto con base en la soluciones propuesta
para el problema de la mochila.

En aspectos de criptografía, en el caso de descifrar contraseñas, este problema se puede


ver como un número de contenedores que pueden tener n valores cada uno. En otro
sentido, cuando es necesario traducir un texto encriptado, en el momento de identificar los
espacios, cada palabra puede fungir como un contenedor de ni ítems (caracteres de la
palabra), donde cada carácter i puede tener n posibles artículos.

Como parte de la aplicación del problema de la mochila, y haciendo una revisión de la


literatura actual se pueden resolver problemas relacionados con:

 La selección de proyectos, donde cada proyecto se puede como un contenedor de


diferentes ítems tales como: personas, recursos, etc.
 En la solución de problemáticas donde es necesario detectar patrones de corte.
 En situaciones donde se problemas de distribución de carga (física, eléctrica, etc.).
 Cuando se requiere abastecer vehículos de transporte y entrega de productos de
diferentes tamaños que deben ser colocados en múltiples compartimentos de igual
o diferente tamaño,
 Asignación de procesadores y datos en sistemas distribuidos.

5
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico Superior de Acayucan

Ejemplo:

Un armador tiene un carguero con capacidad de hasta 700 toneladas. El carguero


transporta contenedores de diferentes pesos para una determinada ruta. En la ruta actual
el carguero puede transportar algunos de los siguientes contenedores:

Contenedor C1 C2 C3 C4 C5 C6 C7 C8 C9 C10
Peso [Ton] 100 155 50 112 70 80 60 118 110 55

El analista de la empresa del armador desea determinar el envío (conjunto de


contenedores) que maximiza la carga transportada. Para ello se propone el siguiente
modelo de Programación Entera:

Variables de Decisión:

x i= 1 si el contenedor i se carga
{ 0 si no se carga

Max 100 x 1 +155 x2 +50 x 3+ 112 x 4+ 70 x 5 +80 x 6 +60 x7 +118 x 8 +110 x 9 +55 x 10

Restricciones: El peso de la carga transportada no puede exceder la capacidad máxima


del carguero.
100 x 1+155 x 2+ 50 x 3 +112 x 4 +70 x 5+ 80 x 6 +60 x 7 +118 x 8+ 110 x 9+55 x 10 ≤ 700
Al implementar computacionalmente el problema anterior haciendo uso
de OpenSolver se alcanzan los siguientes resultados:

Contenedor C1 C2 C3 C4 C5 C6 C7 C8 C9 C10
Peso [Ton] 100 155 50 112 70 80 60 118 110 55

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10
b b b b b b b b b b
xi 1 1 1 1 0 0 0 1 1 1

F.OBJETIVO max700
L . IZ L. DE
CAP.CARGA
700 700

La solución óptima consiste en transportar los contenedores C1, C2, C3, C4, C8, C9 y
C10, con un valor óptimo de 700 (toneladas), es decir, se utiliza la capacidad completa del
carguero. Notar que otra solución óptima consiste en transportar los contenedores C1, C3,
C4, C5, C6, C7, C8 y C9 lo que reporta un similar valor en la función objetivo.

6
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico Superior de Acayucan

Algoritmos propuestos para dar solución a KP

Para la solución del Problema de la Mochila, Fernández y Velázquez, proponen la técnica


de programación dinámica, empleando cuatro tipos de visualización: árbol de recursión,
grafo de dependencia, tabla de valores y tabla de decisiones.

Almeida, Giménez y López, mencionan que la experimentación es un factor clave cuando


se requiere ajustar una metaheurísticas a un problema; en este caso, proponen, para la
solución del Problema de la mochila, el uso de metaheurísticas parametrizadas, mediante
la combinación de parámetros.

Dorta et al. Proponen la ramificación y acotación como un método orientado a la solución


de Problemas de Optimización Combinatoria; como parte de su propuesta, buscan reducir
el número de soluciones factible mediante la exploración sistemática del área de
soluciones (árbol de soluciones), eliminando las soluciones que no son mejores que la
solución actual, eliminando la rama correspondiente y los subnodos y hojas que dependen
de ésta.

Conclusión

El problema de la mochila, es tal vez, el problema más analizado entre los investigadores
de Inteligencia Artificial, considerando que las variables son identificadas con base en las
características de los artículos que se guardarán en un contenedor (mochila) con
características relativas a la capacidad, a las dimensiones o a la resistencia de los
materiales. Y, por otra parte, su aplicación es de forma directa a diversas situaciones de la
vida real donde las variables contempladas pueden emular dichas situaciones.

Referencias

1. Penna A.Vélez-Díaz D MGSMCMASMO. Problema de la mochila (Knaspack problem).


[Online].; 2003 [cited 2020 02 18. Available from:
https://www.uaeh.edu.mx/scige/boletin/tlahuelilpan/n6/e2.html.

2. Martínez R. Blog de cursos de programación impartidos por la Dra. Elisa Schaeffer en


la UANL. [Online].; 2011 [cited 2020 02 18. Available from: http://roberto-
mtz.blogspot.com/2011/07/reporte-2-problema-de-la-mochila.html.

3. Karp RM. Reducibility Among Combinatorial Problems. 1st ed. Thatcher REMyJW,
editor. Nueva York: Complexity of Computer Computations; 1972.

4. Mathews GB. On the partition of numbers London: Proceedings of the London


Mathematical Society; 1897.

7
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico Superior de Acayucan

5. Gossett E. "Discrete Mathematics with Proof". Segunda edición ed. 2009 JW, editor.;
2009.

6. Bruno T. Problema de la mochila. Primera edición ed. Bruno T, editor. Buenos Aires;
2013.

7. MARTELLO SaTP. Knapsack Problems: Algorithms and; 1990.

8. SHAMIR A. A polynomial time algorithm for breaking the basic MerkleHellman


cryptosystem.; 1982.

También podría gustarte