Sei sulla pagina 1di 12

Problema de la mochila desarrollado con

el software WINQSB

INGENIERIA
DE SISTEMAS
Programacin Dinmica
Integrantes:
Bravo medina Cinthya
Ilatoma Fustamante
Prada Salazar Cesar

Contenido
INTRODUCCION ............................................................................................................................2
Problema de la mochila simple ................................................................................................3
Problema de la mochila de mltiple eleccin ...............................................................................4
Mtodos de Resolucin................................................................................................................4
Este problema se ha resuelto tradicionalmente mediante programacin lineal entera. ..........................................................4
Algoritmos voraces ...................................................................................................................4
a) Aplicacin del mtodo: .....................................................................................................4
b) Concepto de solucin ptima: .........................................................................................5
Algoritmos genticos .............................................................................................................5
Programacin dinmica............................................................................................................6
Utilizando el Software WINQSB ...................................................................................................7

INGENIERIA DE SISTEMAS

INVESTIGACION DE OPERACIONES II

INTRODUCCION
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.

Historia
El problema de la mochila es uno de los21 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 Mathew Ballard.
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.

INGENIERIA DE SISTEMAS

INVESTIGACION DE OPERACIONES II

Problema de la mochila simple


Un problema de la mochila 0-1, si para cada tipo de tem el beneficio y los pesos son idnticos (vi=wi), entonces
el problema quedara formulado de la siguiente forma

Por tanto si existe un vector xi tal que, entonces esa ser una solucin al problema. Si existe una solucin xi 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 supe creciente, 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.

INGENIERIA DE SISTEMAS

INVESTIGACION DE OPERACIONES II

Problema de la mochila de mltiple eleccin


Si en un problema de la mochila 0-1 los tems estn 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 mltiple eleccin.

Mtodos de Resolucin
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 ser lineales, 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,..., en) tales que sea mximo.
Algoritmos voraces
a) Aplicacin del mtodo:

Partimos de la formulacin del problema de la mochila aportada anteriormente:

INGENIERIA DE SISTEMAS

INVESTIGACION DE OPERACIONES II

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 =


vi/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
Consisten en mtodos adaptativos de optimizacin que tratan de hallar (xi,..., en) 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 o 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.

INGENIERIA DE SISTEMAS

INVESTIGACION DE OPERACIONES II

Programacin dinmica

Una subestructura ptima significa que se pueden usar soluciones ptimas de sub problemas para encontrar la
solucin ptima del problema en su conjunto. Por ejemplo, el camino ms corto entre dos vrtices de un grafo se
puede encontrar calculando primero el camino ms corto al objetivo desde todos los vrtices adyacentes al de
partida, y despus usando estas soluciones para elegir el mejor camino de todos ellos. En general, se pueden
resolver problemas con subestructuras ptimas siguiendo estos tres pasos:
1. Dividir el problema en subproblemas ms pequeos.
2. Resolver estos problemas de manera ptima usando este proceso de tres pasos recursivamente.
3. Usar estas soluciones ptimas para construir una solucin ptima al problema original.
Los su problemas se resuelven a su vez dividindolos en su problemas ms pequeos hasta que se alcance el caso
fcil, donde la solucin al problema es trivial.
Decir que un problema tiene sus problemas superpuestos es decir que se usa un mismo su problema para resolver
diferentes problemas mayores. Por ejemplo, en la sucesin de Fibonacci (F3 = F1 + F2 y F4 = F2 + F3) calcular cada
trmino supone calcular F2. Como para calcular F5 hacen falta tanto F3 como F4, una mala implementacin para
calcular F5 acabar calculando F2 dos o ms veces. Esto sucede siempre que haya sub problemas superpuestos: una
mala implementacin puede acabar desperdiciando tiempo recalculando las soluciones ptimas a problemas que
ya han sido resueltos anteriormente.
Esto se puede evitar guardando las soluciones que ya hemos calculado. Entonces, si necesitamos resolver el
mismo problema ms tarde, podemos obtener la solucin de la lista de soluciones calculadas y reutilizarla. Este
acercamiento al problema se llama memorizacin (no confundir con memorizacin; en ingls es llamado
memorizacin,). Si estamos seguros de que no volveremos a necesitar una solucin en concreto, la podemos
descartar para ahorrar espacio. En algunos casos, podemos calcular las soluciones a problemas que de antemano
sabemos que vamos a necesitar.

INGENIERIA DE SISTEMAS

INVESTIGACION DE OPERACIONES II

Utilizando el Software WINQSB

120

INGENIERIA DE SISTEMAS

INVESTIGACION DE OPERACIONES II

INGENIERIA DE SISTEMAS

INVESTIGACION DE OPERACIONES II

INGENIERIA DE SISTEMAS

INVESTIGACION DE OPERACIONES II

10

INGENIERIA DE SISTEMAS

INVESTIGACION DE OPERACIONES II

11

INGENIERIA DE SISTEMAS

INVESTIGACION DE OPERACIONES II

Potrebbero piacerti anche