You are on page 1of 9

Knapsack: Resolucin y comparacin mediante Algoritmos MOEA: SPEAII y Algoritmos MOACO: PACO

Ral Bentez, Victor Rumich, Carlos Aquino, Alberto Garcete


Ingeniera Informtica, Facultad Politcnica Universidad Nacional de Asuncin. San Lorenzo - Paraguay {raulkvd, varfer86, aquinoQCD29, albertogarcetepy}@gmail.com

Resumen. La resolucin del problema de la mochila o Knapsack es realizada mediante dos tipos de algoritmos, uno de ellos es el SPEAII, variante del SPEA, que forma parte de los tipos de algoritmos evolutivos multiobjetivos o MOEAs; el otro es el P-ACO, uno de los algoritmos pertenecientes al grupo de metaheurstica ACO u optimizacin por colonia de hormigas multiobjetivo MOACO. Por ltimo, se presenta una comparacin entre los resultados que arrojan los distintos algoritmos mediante mtricas de rendimiento. Palabras Clave: Knapsack, MOEA, SPEAII, MOACO, P-ACO.

Introduccin

Este documento muestra una comparacin entre diversos algoritmos que utilizan la optimizacin multi-objetivo, uno de ellos con enfoque evolutivo y otro basado en el modelo del comportamiento de las colonias de hormigas reales, denominada metaheurstica ACO (Ant Colony Optimization, u optimizacin basada en colonia de hormigas). El trabajo considera algoritmos propuestos como el SPEAII con respecto a la teora de algoritmos evolutivos y/o genticos, y algoritmos como el P-ACO con respecto a la teora de la optimizacin basada en colonia de hormigas. Se realizaron pruebas con dos instancias del problema. Se utiliz un reconocido problema de prueba de optimizacin multi-objetivo, el Multiobjective 0/1 Knapsack Problem(o problema de la mochila). Este tipo de problema es considerado clsico en la literatura de optimizacin combinatoria y es del tipo NP-completo.

Formulacin del problema

2.1 Multiobjective Knapsack 0/1 (Problema de la Mochila) El problema de la mochila (o Knapsack problem) es un problema de optimizacin combinatoria. 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. Dados un conjunto de m tems y un conjunto de n mochilas, donde: pij representa el profit (valor) del tem j en la mochila i, wij representa el peso del tem j en la mochila i, y ci representa la capacidad de la mochila i,

la formulacin matemtica ms comn del problema es la del llamado problema de la mochila 0/1, que restringe el nmero de copias de cada tem a cero o uno, y consiste en encontrar un vector: , tal que:

, con:

donde xj = 1 indica que se utiliza el tem j.

Algoritmo MOEA

Los MOEAs se inician con un conjunto de individuos creados de forma aleatoria, los cuales constituyen la llamada poblacin inicial. Cada individuo (cromosoma) en la poblacin representa una solucin al problema de optimizacin. En cada generacin, los individuos son evaluados usando una funcin de adaptabilidad (fitness). Basados en este valor, algunos individuos, llamados padres, son seleccionados. La probabilidad de seleccin de un individuo est relacionada con su adaptabilidad, de forma a asignar mayor probabilidad de seleccin a los mejores individuos. Luego, un nmero de operadores genticos son aplicados a los padres para producir nuevos individuos que formarn parte de la nueva poblacin. El proceso continua intentando obtener soluciones cada vez mejores hasta que un criterio de parada sea satisfecho. Los algoritmos que se encuentran incluidos en el conjunto de MOEAs siguen bsicamente los pasos descritos en el siguiente pseudo-cdigo:

Algoritmo 1. Pseudo-cdigo para cualquier algoritmo considerado MOEA.

procedure MOEA inicializar_parametros() generar_poblacin_inicial()

while(!condicion_parada) evaluar_individuos() actualizar_conjunto_pareto() seleccionar_individuos() aplicar_operadores_geneticos()

3.1 SPEAII - Strength Pareto Evolutionary Algorithm II En el ao 2001 Zitzler, Laumanns y Thiele hacen unas correcciones al algoritmo SPEA, al que llama SPEAII (Zitzler et al., 2001), y ste ltimo se diferencia del primero por la asignacin de la aptitud, la seleccin de los padres, el operador de truncamiento y en fijar el tamao del archivo externo para todas sus generaciones.

Asignacin de la Aptitud: Para la asignacin de la aptitud, a diferencia del SPEA, se tiene en cuenta tanto los individuos dominados como los que dominan y la densidad de cada individuo. El valor de fuerza del individuo i , Si est dado por:

Donde j equivale al nmero de soluciones que i domina, Pt y P't son los individuos de la poblacin y los individuos pertenecientes al archivo externo en la generacin t respectivamente. Teniendo en cuenta esta nueva definicin de valor de fuerza, se calcula el valor de una aptitud cruda (sin tener en cuenta la densidad) para cada individuo Ri el cual est dado por la siguiente ecuacin:

Se debe tener en cuenta que en la medida que un individuo tenga un valor de aptitud pequeo ser preferido a uno que tenga un valor ms alto. Otro componente de la aptitud de cada individuo es la medida de densidad Di , la cual la proponen como una adaptacin al mtodo del vecino ms cercano, as:

Donde es la distancia de i al ksimo elemento. Para hallar este valor se calcula la distancia de i a todos los individuos, tanto de la poblacin como del archivo externo y luego se organiza estas distancias en una lista en orden ascendente, y se toma el valor del ksimo elemento comosiendo . Donde N es el tamao de la poblacin y N' es el tamao del archivo externo. De esta forma el valor de aptitud para el individuo i esta dado por:

Individuos del archivo externo: Inicialmente se copia todos los individuos no dominados, tanto de la poblacin como del archivo externo de la generacin anterior, al archivo externo de la generacin actual, una forma de identificarlos es seleccionando aquellos individuos que tenga valor de aptitud menor que uno. Para el SPEA II el tamao del archivo externo siempre es constante en el tiempo, por tanto, en el caso en que estos individuos no sumen la cantidad dada por el usuario N' , se debe completar el archivo con los mejores individuos dominados, es decir, con los que tengan menor valor de aptitud.

Y si el nmero hallado de no dominados es mayor que N' entonces se debe remover los individuos necesarios hasta que el tamao del archivo sea N' . La forma como se escoge el individuo a remover es hallando el que tenga la distancia mnima a otros individuos y este ser eliminado, en el caso de que exista varios individuos con la misma distancia mnima, se escoge quien tenga la segunda menor distancia mnima. La seleccin de los padres: La seleccin se hace por torneo binario con remplazo participando solamente los individuos del archivo externo. Con las mejoras propuestas para este algoritmo, efectivamente logra valores mucho mejores que el SPEA, y aunque no haya tenido la misma popularidad que ste ltimo, ha sido preferido junto con NSGA-II para la optimizacin de problemas reales.

Fig. 1. Una grfica que muestra los pasos a seguir para implementar el loop

principal del algoritmo SPEAII.

Algoritmo MOACO

Los algoritmos basados en colonias de hormigas son sistemas multi-agentes, donde el comportamiento de cada hormiga en particular, denominada hormiga artificial, est inspirado en el comportamiento de las hormigas reales Este comportamiento se obtiene por medio de una sustancia qumica llamada feromona, que las hormigas depositan al caminar en busca de alguna fuente de comida, dejando de esta manera rastros de feromonas que las dems hormigas pueden oler. Las feromonas representan para las hormigas una forma de comunicacin indirecta llamada Stigmergy. Se muestra el pseudo-cdigo de un algoritmo ACO multi-objetivo genrico, denominado en adelante MOACO (MultiObjective Ant Colony Optimization). El PACO presentado a continuacin, sigue ste pseudo-cdigo:

Algoritmo 2. Pseudo-cdigo de un algoritmo ACO multi-objetivo


procedure MOACO inicializar_parametros() while not condicion_parada() generacion=generacion + 1 for ant=1 to m // m=cantidad de hormigas construir_solucion() evaluar_solucion() actualizar_feromonas() actualizar_conjunto_pareto() end for end while end procedure construir_solucion sol={} while existen_estados_no_visitados() siguiente=seleccionar_siguiente_estado() sol=sol U {siguiente} marcar_como_visitado(siguiente) if(actualizacion_paso_a_paso) actualizar_feromonas_paso_a_paso() end while end

4.1 Pareto Ant Colony Optimization. Este algoritmo se propuso en [Doerner 2002], y se basa en la utilizacin de b tablas de feromonas (b), una para cada objetivo. En cada iteracin una hormiga computa una serie de pesos que fueron seleccionados uniformemente aleatorios, = ( 1, 2,, b), y los utiliza al calcular la regla de transicin de estados. Estando en el estado i se selecciona el estado j segn:

(4.1) Donde i es una variable aleatoria seleccionada segn la distribucin de probabilidades calculada con la ecuacin:

(4.2) Las dos mejores hormigas de cada solucin actualizan la tabla de feromonas correspondiente a dicho objetivo segn la ecuacin 4.3, realizando una actualizacin elitista.

(4.3) Cada vez que una hormiga avanza a otro estado, se realiza una actualizacin local paso a paso de las b tablas de feromonas segn la ecuacin 4.3, considerando un valor constante para = o, que representa el valor inicial para las feromonas, definido a priori.

Resultados Experimentales

5.1 Mtricas de evaluacin Ese utilizaron tres mtricas para poder evaluar los resultados obtenidos, fueron la M1, M2 y M3 cada una de ellas se refieren respectivamente a la distancia existente a un frente Pareto ptimo, a la calidad de distribucin de las soluciones sobre el frente Pareto y a la extensin sobre del frente Pareto. Para M1 se tiene la frmula: M1 ' (Y ' )= 1/ |Y'| min { d(p, a} | a Y }

Calcula la diferencia entre un frente Pareto ptimo (Y) y un frente Pareto generado por la implementacin (Y'). Para M2 la frmula: M2 ' (Y ')= 1/(|Y'| - 1) {qY ' d ( p , q)> } Calcula la adecuada distribucin del Frente Pareto sumando la cantidad de puntos fuera del vecindario , en el frente Pareto. Para M3 la frmula: M3 ' (Y ')= ( max {d ( pi , qi ) p , qY ' } ) ^ (1/2) Calcula la extensin del frente Pareto, tomando la mxima distancia entre dos puntos, en cada funcin objetivo, realizando la suma y hallando la raz cuadrada de la misma.

5.2 Resultados Los resultados obtenidos en base a pruebas hechas en el modelo del SPEA II arrojaron resultados prximos al frente Pareto ptimo, para la instancia correspondiente al de 100 items, con respecto a la instancia de 500 items en las mtricas se observa una desviacin considerable respecto al frente Pareto ptimo lo que hace sacar de conclusin que para instancias pequeas (menores o iguales a 100) el SPEA II posee un buen rendimiento. La mquina donde se realizo las pruebas fue con las siguientes caracteristicas: memoria de 2 Gb y procesador de 2600 Mhz.

Tabla 1. Resultados obtenidos sobre Instancia 1 del Knapsack evaluado con SPEA II.

Instancia 1 (100 items) Frente Pareto ptimo SPEA II

M1 0 788,128

M2 97,0 86,141

M3 43,046 37,296

Tabla 2. Resultados obtenidos sobre Instancia 2 del Knapsack evaluado con SPEA II.

Instancia 2 (500 items) Frente Pareto ptimo SPEA II

M1 0 5045,298

M2 1122,906 90,162

M3 92,136 47,529

Conclusiones y trabajos futuros

Como grupo pudimos concluir que estos dos algoritmos, cuyo comportamiento imitan tanto lo que sucede a nivel gentico, as como lo que sucede en el reino animal para el caso de la colonia de hormigas, resuelven verdaderamente serios problemas de optimizacin, dando un conjunto de posibles soluciones que son los mejores entre todas las posibilidades que existen. Aprender y entender como se lleva a cabo mediante una implementacin real es un conocimiento que nos ayud a sacarnos varias dudas acerca de lo que previamente tenamos en teora.

Referencias

1. J. Paciello, H. Martnez, C. Lezcano and B. Barn. Algoritmos de Optimizacin multiobjetivos basados en colonias de hormigas. Proceedings of CLEI2006. Latin-American Conference on Informatics (CLEI). Santiago. 2. Julio C. Ponce, Felipe Padilla, Alejandro Padilla y Miguel A. Meza. ACHPM: algoritmo de optimizacin con colonia de hormigas para el problema de la mochila 3. [Doerner2002] Doerner, K., Gutjahr, W., Hartl, R., Strauss, C., (2002), Pareto Ant Colony Optimization: A Metaheuristic Approach to Multiobjective Portfolio Selection, Proceedings of the 4th. Metaheuristics International Conference. Porto, 243-248. 4. Metodologa para la optimizacin de mltiples objetivos basada en ag y uso de preferencias. http://www.bdigital.unal.edu.co/2237/

5.

Optimizacin multiobjetivo http://vimeo.com/40738998

con

algoritmos

evolutivos

Parte

01.

6. PISA - A Platform and Programming Language Independent Interface for Search Algorithms. http://www.tik.ee.ethz.ch/sop/pisa/