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
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.
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
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
ax( , ) z = m
s1
i=1
p
i
p
s
as,elvalorobtenidoaplicandolaheursticaserakyasigualelasolucinptima.
4.ANLISISDECOTAS
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
Dantzig
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:
W
0
=
s1
i=1
p
i
+ c((p )/(w ))
[ s
+ 1
s
+ 1
]
segundaparte:
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
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