Sie sind auf Seite 1von 9

UniversidadNacionaldeColombia

Optimizacin
LuisGerardoAstaiza

SamuelPerez 258275
AndrewRincon 258051
WistonForeroCorba 258309

PROBLEMADELAMOCHILA(KNAPSACKPROBLEM)

1.INTRODUCCIN

Elproblemadelamochilaesunproblemasimpledeentender:

Hay una persona que tiene una mochila con una cierta capacidad y tiene que elegir
queelementospondrenella.
Cadaunodeloselementostieneunpesoyaportaunbeneficio.
El objetivo de la persona es elegir los elementos que le permitan maximizar el
beneficiosinexcedersedelacapacidadpermitida

El problema de la mochila forma parte de una lista histrica de problemas complejos a


solucionar, si por complejidad nos referimos a la parte computacional. ste problema es
un problema que se cataloga como inherentemente difcil ya que su solucin requiere de
unacantidadsignificativaderecursoscomputacionales,sinimportarelalgoritmoutilizado.

A groso modo, el problema de la mochila, si contramos con 4 productos, para saber cual
es la mejor solucin podremos probar las = 16 posibilidades. El 2 se desprende del
hechodequecadadecisinesincluironoalproductoyel4delacantidaddeproductos.
Segn esto, 16 posibilidades es un nmero manejable, sin embargo, si la cantidad de
elementos por ejemplo ascendiera a 20, tendramos que analizar nada ms y nada menos
que posibilidades.

A continuacin, nos referiremos un poco a la formulacin lineal del problema para


desarrollar el modelo por medio de aproximaciones (Aproximacin a travs de coeficiente
de rendimiento, evaluacin de la heurstica y mejoramiento a travs de la comparacin
conelementocrtico)yanlisisdecotas(Relajacindelineal,DantzingyMartello&Toth).

2.FORMULACINLINEAL

Una de las tcnicas matemticas que se puede utilizar para la resolucin de este
problemaeslaprogramacinlineal.

Seanlasvariables:

comolacapacidaddelamochila
comoelbeneficiounitarioobtenidoporingresarelproducto enlamochila
comoelpesodelproducto
comolacantidaddeproductos
comovaloresenterosypositivos

sepuedeplantearelmodelocomo:

No obstante, el problema que tiene esta tcnica es que no siempre se puede resolver
debido a su complejidad matemtica. En esas ocasiones, es necesario recurrir a
heursticas. Una heurstica es un procedimiento que en la mayora de las ocasiones nos
permiteobtenerunabuenasolucinperoquenonecesariamenteeslaptima.

3.APROXIMACIONES

Aproximacinatravsdelcoeficientederendimiento

Una solucin intuitiva pero que puede no ser ptima podr elaborarse ordenando los
productosenformadescendentesegnlaproporcin.

/w r
i
= p
i i

y metiendo elementos de esta lista ordenada hasta que no se pueda ingresar el siguiente
elemento a la mochila. Desde este punto en adelante, siempre se asumir que los
elementosdelconjuntoseencuentranordenadossegnestaproporcin.

Ejemplo:

Considerandolasiguienteinstanciadelproblemadelamochilaconcapacidadc=65

N p w r
A 100 20 5
B 80 20 4
C 30 30 1
D 15 20 0.75
E 10 100 0.1

Aplicandolaheurstica,tomamoslosproductosAyByaquealtratardeingresarel
productoCestaramosexcediendolacapacidadpermitida.Elresultadoobtenidoes:

100 80 180 Z = + =

Esimportantenotarqueloselementosenlatablaestnordenadossegnlaproporcin . r
i

Sinoestuvieranordenados,elprimerpasoseraponerlosenorden.

EVALUACINCONHEURSTICA

La heurstica anterior funciona adecuadamente en la mayora de casos, pero existen


casosenlosquepuedetenerunmalrendimiento.

TomandolasVariables:

solucinptima. z =
=solucinobtenidaaplicandolaheurstica. z
= efectividad de la heurstica, si esta da una solucin ptima el resultado /z z
sera1.

paraprobarestotomamoselproblemadelamochilaconcapacidad , k . c = k > 1

N p w r
A 1 + 1 1 +
B k k 1

aplicandoelalgoritmo,seescogeelproductoAyenconsecuenciaelfuncionalesiguala
1,encambiolasolucinptimaserak.

Elndicedeeficienciadelaheursticasera:

ar (1 )/k v = +

siktienevaloreselevados,elvalortendera0.

MEJORAMIENTOATRAVSDELACOMPARACINCONELELEMENTOCRTICO

Realizando una pequea modificacin, podemos hacer que el ndice de eficiencia de la


heurstica no tome valores pequeos. Se define el elemento crtico s, el cual es el primer
elemento que al ser incluido excede la capacidad. comparando el resultado con el
beneficiodelelementocrticos.

ax( , ) z = m
s1
i=1
p
i
p
s

as,elvalorobtenidoaplicandolaheursticaserakyasigualelasolucinptima.

4.ANLISISDECOTAS

dada la complejidad computacional del problema de la mochila, no simpre se puede


calcular una solucion optima, una alternativa fue el planteo de heursticas.No obstante,
todava no se establecio como determinar si una heurstica es buena o no, para esto
resulta util poder acotar el problema. Al conocer el mximo valor que podra valer la
solucin ptima, se contar con ms informacin para saber si es buena la solucin que
seobtuvoconlaheurstica.

Anlisisdecotassuperioresdesarrolladasparaelproblemadelamochila:

la solucin ptima, z, es menor o igual que una cota superior, U. Una cota es superior a
otrasiseencuentramscercadelasolucinptima.

Relajacinlineal.

Definiendocomovariablescontinuasalasvariablesdedecisin,xi,.Definiendoa c
comolacapacidadrestanteluegodeingresarloselementosqueseencuentranenel
intervalo[0s1]alamochila,esdecir:

c = c
s1
i=1
w
i

Elresultadoqueseobtendrenlacorridautilizandovariablescontinuasser:

P(KP) (p /w ) U
o
= C =
s1
i=1
p
i
+ c
s s

primer trmino: corresponde a la seleccin de todos los trminos con mejor


rendimientoqueelelementocrticos.

segundo trmino: representa la aplicacin del rendimiento del elemento crtico a la


capacidad restante. Es decir, como no se puede ingresar todo el elemento crtico
plantealaideadefraccionarloeingresartodoloquepuedadelproducto.

Dantzig

Dantzig aplica una condicin de integralidad a la solucin ptima considerando a las


variablesdedecisincomocontinuas.
Denomin el operador como el operador piso, es decir, que devuelve el mayor entero
noessuperiorquea,obtenemos:

U
1
=

Considerandolaintegralidaddepiydexi,seobtienelacotadeDantzig:

U
1
=

Martello&Toth

Establecieron la integridad del elemento crtico. pidiendo que el elemento crtico sea
ingresado o no, pero dejando de aplicar la capacidad remanente al rendimiento asociado
alelementocrtico.

primeraparte:

observamos el mayor resultado posible considerando que no se ingresa el elemento


crtico en la mochila, en este caso existe la posibilidad de que se pueda ingresar un
elemento posterior uno con peor rendimiento pero que permita no exceder la capacidad
disponible.porlotanto:

W
0
=
s1
i=1
p
i
+ c((p )/(w ))
[ s
+ 1
s
+ 1
]

El rendimiento al que se aplica la capacidad restante no es el rendimiento del elemento


crticosinoeldelelementosiguiente.

segundaparte:

Observamos cual es el mayor resultado posible considerando que ahora si se ingresa el


elementocrticoenlamochila.

por definicin del elemento crtico, no se lo poda ingresar a la mochila si se haban metido
los elementos en el intervalo [0s1], la nica posibilidad de ingresar al elemento crtico es
sacandoaunodeloselementosenesteintervalo.

Lacotafinalsedesprendedeconsideraramboscasosyvercualtieneelmayorvalor.

ax(W , ) U
2
= M
0
W
1

Por lo tanto la cota de Martello & Toth es mejor a la planteada por Dantzig. En
consecuencia:

U2 U1

5.ALGORITMOSREALIZADOSCONDISTINTOSMODELOSDESOLUCINPARA
ELPROBLEMADELAMOCHILA

La solucin por backtracking permite obtener la mejor solucin al problema de la mochila,


existe el problema de que cuando la cantidad de elementos a evaluar es relativamente
grande, los tiempos de respuesta se vuelven prohibitivos. Por otro lado, la solucin de
agregar primero los elementos ms costosos, o lo ms livianos, no garantiza una solucin
ptima,oporlomenosparecidaalaptima.

Estas dos aproximaciones representan el concepto de algoritmos voraces, donde se


selecciona una estrategia que permite decidir si un elemento se agrega o no a la solucin.
En los casos mencionados se utilizaba la estrategia del mayor costo o la del menor peso.
Una mejor solucin se presenta cuando se utiliza el costo por unidad de peso para
ordenar los elementos, de esta manera, un elemento muy caro no se agrega si pesa
demasiado en comparacin con otro de menor valor, pero de mucho menor peso. La
funcinresolverProblemaquedaentoncesdelasiguientemanera:

FiguraN1AlgoritmoVorazbacktrackingparaResolverproblemadelamochilaenJava.[3]

FiguraN2AlgoritmoenprogramacindinmicaparaResolverproblemadelamochilaenPython.[3]

FiguraN3AlgoritmoenprogramacindinmicaparaResolverproblemadelamochilaenMatlab.[5]
INFOGRAFA

[1].Bruno,Tomas.http://materias.fi.uba.ar/7114/Docs/ProblemaMochila.pdf
[2].Algorithmsforknapsackproblems.http://www.diku.dk/~pisinger/951.pdf
[3].Algoritmovorazproblemadelamochila
http://jorgep.blogspot.com/2010/11/problemadelamochilaalgoritmos.html
[4].Algorithmsforknapsackproblems.
http://xcodigoinformatico.blogspot.com/2012/09/algoritmodelamochila01con.ht
ml
[5].Codeknapsackproblems.
http://www.mathworks.com/matlabcentral/fileexchange/30996knapsackproblem/c
ontent/knapsackori.m
23deAbrilde2014

Das könnte Ihnen auch gefallen