Algoritmo de Optimización de Colonia de Hormigas Multiobjetivo
Transcripción
Algoritmo de Optimización de Colonia de Hormigas Multiobjetivo
Programación Matemática y Software (2011) Vol. 3. No 2. ISSN: 2007-3283 Recibido: 3 de octubre de 2011/ Aceptado: 3 de enero de 2012 Publicado en línea: 30 de marzo de 2012 Algoritmo de Optimización de Colonia de Hormigas Multiobjetivo Aplicado al Problema de la Mochila Multidimensional Daniel Soto1, 1Wilson Soto1,2, y Yoan Pinzón1 1 Grupo de Algoritmos y Combinatoria ALGOS–UN Universidad Nacional, Bogotá, Colombia 2 Grupo de Sistemas Inteligentes y de Información Espacial SIGA Universidad Central, Bogotá, Colombia {wesotof, ypinzon}@unal.edu.co, [email protected], [email protected] Resumen. Este artículo presenta un algoritmo de optimización de colonia de hormigas (Ant Colony Optimization – ACO) multiobjetivo. El algoritmo propuesto es aplicado al problema de la mochila multidimensional. El problema de la mochila multidimensional es un problema de optimización combinatoria que consiste en encontrar un subconjunto de objetos que maximicen el beneficio total mientras se satisfacen ciertas restricciones. Se muestra como el algoritmo propuesto obtiene mejores resultados comparado con un importante algoritmo en un conjunto de datos seleccionado. Palabras clave: Optimización de Colonia de Hormigas Multiobjetivo, Metaheurísticas, Problema de la Mochila Multidimensional. Abstract. This paper presents a multiobjetive Ant Colony Optimization (ACO) algorithm. The proposed algorithm is applied to the multidimensional knapsack problem. The multidimensional knapsack problem is combinatorial optimization problem that consists in finding a subset of objects that maximizes total profit while satisfying some resource constraints. We show that algorithm proposed obtains better results compared with an important algorithm in a selected dataset. Keywords: Multiobjective Ant Colony Optimization, Metaheuristic, Multidimensional Knapsack Problem. 1 Autor de correspondencia: [email protected], [email protected] 21 Algoritmo de Optimización de Colonia de Hormigas Multiobjetivo 1. Introducción El problema de la mochila multidimensional se puede aplicar en diversos problemas La optimización de varios objetivos tiene reales de la bioinformática, economía y muchas aplicaciones en la vida real entre robótica [2,4,6,16]. las cuales están la producción industrial, entornos financieros, inventarios y Las contribuciones del presente trabajo son: complejidad computacional [8]. Determinar presentar un algoritmo multiobjetivo basado un conjunto de soluciones óptimas para este en ACO y en el algoritmo MMAS descrito en tipo de problemas es el principal aspecto de [15]. El algoritmo propuesto obtiene mejores la optimización multiobjetivo. Uno de los resultados en varios ejemplos comparado problemas que hace parte de este grupo es con el algoritmo SPEA2 (Streng Pareto el problema de la mochila multidimensional, Evolutionary Algorithm versión 2). además, de estar clasificado como un problema de optimización combinatoria NP– Este artículo tiene la siguiente estructura: la hard [10,12]. sección 2 define formalmente el concepto del problema de la mochila multidimensional Si se considera un problema de n elementos y el algoritmo colonia de hormigas. La y sección 3 explica en detalle el algoritmo para cada uno su correspondiente beneficio y peso. El problema de la mochila propuesto. es la tarea de empacar algunos de esos parámetros y resultados experimentales y elementos en una mochila m de capacidad en c, tal que la suma del beneficio de esos conclusiones. elementos sea máxima. Ahora, si la La última sección sección 4 detalla aparecen los las al considerar más de una mochila (objetivos) 2. Conceptos básicos en las cuales su capacidad (restricciones) pueda ser diferente y se respete su límite logrando el máximo beneficio (optimización) se obtiene el problema de la mochila multidimensional. Por lo tanto, podemos asemejar el problema multidimensional a un de la Los problemas de optimización multiobjetivo – en inglés Multiobjective Optimization Problem (MOP) – formalmente se pueden expresar como: mochila problema de optimización de múltiples objetivos. Definición 1. (Problemas de Optimización Multiobjetivo), Un MOP en general incluye un conjunto de n parámetros (variables de En años recientes, algunos de los trabajos relacionados para resolver el problema de la mochila multidimensional son: desde el enfoque de los algoritmos evolutivos (EA) decisión), un conjunto de k funciones objetivo y un conjunto de m restricciones. Las funciones objetivo y las restricciones son funciones de las variables de decisión. [14,17,18] y optimización por colonia de hormigas (ACO) [1,3,4,8,9]. El objetivo de la optimización es: 22 Soto D., Soto W., Pinzon Y. y = f ( x) = ( f1 ( x), f 2 ( x),, f 3 ( x)) e( x) = (e1 ( x), e2 ( x),, em ( x)) 0 (1) x = ( x1 , x2 ,, xn ) X y = ( y1 , y2 ,, yk ) Y maximizar sujeto a donde x es el vector de decisión, y es vector elementos y un conjunto m de mochilas, con: pi , j = beneficio del elemento j respecto a i, la mochila objetivo, X se denota como el espacio de wi , j = peso del elemento j respecto a la decisión y Y se llama el espacio objetivo. mochila i , Las restricciones e(x) ≤ 0 determinan el ci = capacidad de la mochila i , conjunto de soluciones factibles. se Definición 2. (Conjunto de soluciones factibles), el factible X f es conjunto definido como el conjunto de vectores de decisión x que satisface las restricciones e(x) : encontrar un vector x = ( x1 , x2 ,, xn ) {0,1}n , tal que las restricciones de capacidad n ei ( x) = wi , j x j ci (1 i m) (3) j =1 son satisfechas y para la cual X f = {x X | e( x) 0} (2) La imagen de X f , i.e. la región factible dentro debe del espacio de búsqueda, es denotado como Y f = f ( X f ) = { f ( x)} . xX f W.L.O.G. para un problema máximo, donde n f i ( x) = pi , j x j (4) de x j = 1 si y solo si el elemento j es y seleccionado. dadas son similares. problema multidimensional es j =1 minimización, las definiciones anteriormente El f ( x) = ( f1 ( x), f 2 ( x),, f m ( x)) de – la mochila Multidimensional 2.1 Optimización por colonia de hormigas Knapsack Problem (MKP) – es un problema de optimización multiobjetivo, el cual se Optimización por colonia de hormigas – Ant compone de Colony mochilas (objetivos) un número Optimization (ACO) – es una arbitrario de una con metodología propuesta por Marco Dorigo capacidad (restricción) y un conjunto de [5]. Esta metodología estudia sistemas elementos que tienen asociado un peso y artificiales tomando como inspiración el un beneficio. La tarea consiste en encontrar comportamiento real de las colonias de un subconjunto de estos elementos que hormigas, las cuales se usan para resolver colocados dentro de las mochilas maximice problemas de optimización combinatoria. cada el beneficio total teniendo en cuenta las capacidades de estas [17]. Formalmente el problema MKP se define como: Definición 3. (Problema de la mochila multidimensional), dado un conjunto n de Los componentes de un algoritmo de colonia de hormigas son: 23 Algoritmo de Optimización de Colonia de Hormigas Multiobjetivo Hormigas: tienen por objetivo realizar un que la hormiga k tome la ruta hacia j desde i recorrido Cerrado) en la iteración t, la probabilidad solamente dentro del problema dado por el usuario. es calculada para las villas j que no han sido Memoria de feromonas: es utilizada visitadas aún por la hormiga k. (Ciclo Completo para tener una historia de los recorridos efectuados por las hormigas y poder Después de haber completado los cambiar la intensidad de cada posible recorridos de todas las hormigas escogidas ruta a cada nueva iteración. es Probabilidad de selección de un camino: feromona sobre cada arco de cada recorrido toma de decisión de cada hormiga al en función de la calidad de la solución momento de escoger un camino para encontrada pasar de un nodo a otro. La fórmula que función es llamada impregnación de las define la probabilidad es llamada regla feromonas de transición de estados aleatorios o intensificación [7]: necesario dejar para y una cada se usa cantidad recorrido, la regla de esta de regla de Bonabeau [7]: ij (t ) ij (t ) pijk (t ) lJ ik il (t ) il (t ) 0 si j J ik (5) si Q k (t ) L (t ) 0 k ij si (i, j ) T k (6) si (i, j ) T k j J ik En (6), Lk (t ) es la longitud del recorrido de La regla de Bonabeau (5) está basada en la hormiga k en la iteración t y Q es una los conceptos de visibilidad (la visibilidad es constante, la regla es aplicada a todos los el numero inverso de la distancia entre dos arcos que pertenecen al recorrido realizado nodos i y j, y ij = 1 de la traza de d ij por la hormiga k en la iteración t. feromona dejada sobre un arco del camino, atenuación de las feromonas, proceso que es decir, la traza de feromona dejada entre evapora un nodo i y una j en una iteración t es garantizando que la memoria global del ij(t ) , α y β son dos parámetros que tiene sistema el control sobre la importancia relativa de la intensidad de la feromona y la visibilidad, así Otra función importante es la función de las olvida trazas las de malas feromonas soluciones encontradas con la regla de evaporación [7]: ij (t 1) (1 ) ij (t ) ij (t ) (7) se puede decir que con α = 0 solamente la visibilidad es evaluada, por el contrario si β = 0 solamente la intensidad de las feromonas es evaluada. En (7) es el índice de evaporación de la feromona, es decir, el índice con el cual la traza de feromonas se va a evaporar en relación con las iteraciones y ij (t ) es la Como resultado de la evaluación de la regla se tiene una probabilidad para cada posible camino, pijk (t ) es la probabilidad función de impregnación. 24 Soto D., Soto W., Pinzon Y. • 2.2 Métricas Métrica M2 distribución del conjunto A , donde, > 0 corresponde a un Para el análisis de resultados se utilizaron parámetro de vecindad: las métricas de desempeño de [17], que están basadas en los conceptos de óptimo El óptimo de Pareto en un problema multiobjetivo, es una solución 1 | {b A| a b > } | | A | 1 aA (10) Métrica M3 extensión del conjunto A: M 2 ( A) = de Pareto y Dominancia (Ecuación 8). óptima • cuando no existe otra solución tal que n M 3 ( A) = mejore en un objetivo sin empeorar al max { a b i i | a, b A} (11) i =1 menos uno de los otros. Esta solución óptima se determina con el concepto de dominancia. Definición 3 Algoritmo propuesto 4. (Dominancia), para dos algoritmo propuesto (Algoritmo P– MOACO2) está basado en MMAS [15] y en vectores de decisión cualesquiera p y q, p q ( p domina q) f ( p) > f (q) p q ( p domina débilmente q) f ( p) f (q) p q ( p es indiferent e a q) f ( p) f (q) f (q) f ( p) El el trabajo de Khichane et al. [11]. El (8) algoritmo propuesto (Algoritmo 1) realiza dos cambios en el algoritmo base y crea el Cuando las soluciones son dominantes planteamiento de la visibilidad calculada en el sentido de que no hay otras soluciones como una propiedad variable de cada superiores a estas en el espacio de elemento. A continuación se muestra en búsqueda y cuando todos los objetivos son detalle las principales características del considerados, este conjunto se denomina algoritmo propuesto: conjunto no dominado o frente óptimo de Pareto y es la mejor colección de soluciones Una variabilidad adaptativa que refiere al cambio de los parámetros α (alfa) y β al problema. (beta) para la población (– valores entre Las métricas usadas 0 y 5 – [13]), básicamente evalúan la distancia, la distribución y la los objetivos a optimizar y extensión de la solución generada por los algoritmos. el cambio de la importancia relativa de la evaluación de las propiedades de los elementos. • Métrica M1 distancia promedio al conjunto Óptimo de Pareto X p : M1 ( A) = 1 min { a x | x X(9)p } | A | aA 2 Pareto Multi–Objective Ant Colony Optimization 25 Algoritmo de Optimización de Colonia de Hormigas Multiobjetivo Algoritmo 1 Algoritmo P–MOACO la regla de transición (véase Ecuación 1: Iniciar τ 5), donde: 2: Generar 2 especies para la población (Evaluación m i , j = E P diferente del objetivo) 3: (13) =0 Para t = 1 . . . tmax 4: Genera_Probabilidad 5: Generar número global α (alfa) de forma Las líneas 15 y 18 están relacionadas con el óptimo de Pareto. aleatoria Generar número global β (beta) de forma 6: 7: aleatoria según la taxonomía MOACO (Multi–Objetive Para toda hormiga k = 1 . . . kmax Ant Colony Optimization) [4] (ver Tabla 1): 8: Vrecorrido[ ] = 0 9: Elegir un elemento de forma aleatoria 10: Para todo elemento no seleccionado 4 Experimentos y resultados 11: Selección_Elemento 12: Intensificar la traza de feromonas (Ec. 6) 13: 14: 15: 16: El algoritmo propuesto se puede clasificar Los resultados experimentales del algoritmo Evaporar la traza de forma uniforme propuesto (Ec. 7) resultados del algoritmo SPEA2 (Streng Fin Para son comparados con los Pareto Evolutionary Algorithm versión 2). El Ingresar al frente global aplicando dominancia algoritmo SPEA2 es un referente para Fin Para 17: Fin Para solucionar problemas multiobjetivo que usan 18: Refinamiento del frente global el óptimo de Pareto [2]. Sobresalen los siguientes detalles del algoritmo P–MOACO (Algoritmo 1): En la línea 2 se garantiza Además, el algoritmo SPEA2, en [20] mostró como obtuvo un comportamiento una similar a NSGA-II (Nondominated Sorting evaluación equitativa (E) de la solución Genetic en dos formas diferentes: beneficio algoritmos . w i , j En la línea 4 procedimiento se i, j encuentra SPEA y superior (primera a los versión de SPEA2) y PESA (Pareto Envelope–Based p o beneficio/peso p i, j Algorithm) Selection Algorithm) para el problema de la el Genera_Probabilidad, que genera números de forma aleatoria que sirven como probabilidad P para determinar la importancia de los m objetivos, según la Ecuación 12. mochila multidimensional con 2,3 y 4 objetivos, incluso en algunos casos obtuvo mejores respecto resultados a experimentales NSGA–II. Los con resultados reportados corresponden a la mediana después de 25 ejecuciones. El tiempo de ejecución promedio para 100 elementos es m P =1 11 se (12) =0 En la línea 36.37, para 250 elementos 73.13 y para 500 elementos encuentra el experimentos es 243.51 fueron minutos. realizados en Los un procedimiento Seleccion_Elemento, que equipo Intel Core 2 Duo de GHz, 3GB de selecciona un elemento dentro de la memoria y sobre Ubuntu Karmic Koala. lista de elementos restantes basado en 26 Soto D., Soto W., Pinzon Y. 4.2 Conjuntos de datos Tabla1. Algoritmo Propuesto en la Taxonomía MOACO El algoritmo P–MOACO fue probado con datos extraídos del Swiss Federal Institute of Technology Zurich ETH3 y comparado con los resultados del algoritmo SPEA2 4.1 Parámetros sobre los mismos conjuntos de datos. Las metaheurísticas heurístico como especialmente para método resolver Los conjuntos de datos seleccionados problemas de optimización combinatoria tienen 3 objetivos (m) y 100–250–500 deben tener en cuenta el balance entre la elementos (n). Además, la selección de exploración estos conjuntos permite que los resultados (búsquedas diversas para descubrir nuevas áreas) y la explotación se puedan visualizar. (búsqueda intensa en el área actual para encontrar soluciones óptimas). Los 4.3 Resultados parámetros en ACO para modificar el comportamiento de las hormigas y lograr el Para los problemas seleccionados no se equilibrio entre la búsqueda local y global tiene un conjunto óptimo reportado, es por son la intensificación y la diversificación, ello que la métrica M1 no es tenida en respectivamente. cuenta. Con respecto a las restantes métricas (Figura 1), se observa como el La diversificación se refiere a la incremento en el número de iteraciones o sensibilidad de las hormigas con respecto a ciclos la huella dejada por la feromona, si este correspondientes valor extensión de la solución. decrece, la sensibilidad de las mejoran los a la resultados distribución y hormigas a la traza de la feromona es baja. La intensificación se relaciona con la tasa Los resultados obtenidos con el de evaporación de la feromona, si existe un algoritmo P–MOACO son comparados con decremento en este valor, implica que la el algoritmo SPEA2 para cada uno de los feromona se evapora más lentamente. conjuntos de datos seleccionados. Fueron Entonces, si se incrementa la habilidad de seleccionados los mejores resultados según exploración de las hormigas, usualmente se las métricas para todas las ejecuciones encuentran mejores soluciones, pero se ve realizadas (Tabla 2). Los resultados para afectado el tiempo para encontrarlas. 100 elementos se pueden ver en la Figura 2, 250 elementos en la Figura 3 y 500 Para los experimentos reportados a elementos en la Figura 4. continuación, se tiene a α, β y ρ calculados de forma aleatoria y un número de hormigas de 100. Un número de 1000 iteraciones o ciclos fue determinado en base a las métricas usadas (Figura 1). 3http://www.tik.ee.ethz.ch/sop/download/supplementary/testP roblemSuite/ 27 Algoritmo de Optimización de Colonia de Hormigas Multiobjetivo Fig. 1. Resultados métrica M2 (izq.) y métrica M3 (der.) del algoritmo P–MOACO para los conjuntos de datos de 100, 250 y 500 elementos Tabla 2. Resultados de la mejor evaluación del algoritmo P–MOACO y el algoritmo SPEA para el conjunto de 100, 250 y 500 elementos con 3 mochilas. No. soluciones óptimas Métrica M2 Métrica M3 SPEA2 354 330 410 100 P–MOACO 1090 1176 1133 SPEA2 5.028 5.171 5.464 250 P–MOACO 5.791 6.303 6.572 SPEA2 38.961 49.335 63.166 500 P–MOACO 63.796 95.094 137.542 Fig. 2. Comportamiento de los algoritmos SPEA2 y P–MOACO con m=3 y n=100 28 Soto D., Soto W., Pinzon Y. Fig. 3. Comportamiento de los algoritmos SPEA2 y P–MOACO con m=3 y n=250 Fig. 4. Comportamiento de los algoritmos SPEA2 y P–MOACO con m=3 y n=500 29 Algoritmo de Optimización de Colonia de Hormigas Multiobjetivo En las figuras (Figura 2, Figura 3 y Figura 4) es evidente observar como el algoritmo P–MOACO tiene una extensión Referencias [1]. Aghezzaf Brahim y Naimi Mohamed. The two-stage recombination operator and its más grande de soluciones óptimas y una application distribución más knapsack problem: A comparative study. concentrada con respecto al algoritmo Computers and Operations Research. Vol. SPEA2. Las diferentes vistas de cada una 36(12):3247–3262, 2009. entre soluciones to the multiobjective 0/1 de las figuras reflejan dicha afirmación, al igual que los resultados presentados en la [2]. Aimin Zhou, Bo–Yang Qu, Hui Li, Shi– Zheng Tabla 2. Zhao, Ponnuthurai Nagaratnam Suganthan y Qingfu Zhang. Multiobjective evolutionary algorithms A survey of the 5 CONCLUSIONES state of the art. Swarm and Evolutionary Computation, 1(1):32–49, 2011. Este artículo tiene descrita una versión modificada de un algoritmo ACO [3]. Alaya Inés, Solnon Christine y Ghédira multiobjetivo y su aplicación a la solución Khaled. Ant Colony Optimization for Multi– óptima de búsqueda en un problema de objective Optimization Problems In Proc. of optimización combinatoria. Los resultados the 19th IEEE International Conference on muestran que el algoritmo propuesto tiene Tools with Artificial Intelligence (ICTAI un mejor desempeño a un algoritmo evolutivo basado en el frente de pareto y de igual forma indican el potencial de la aproximación de ACO para resolver 2007), 1:450–457, IEEE Computer Society Press, 2007. [4]. Angelo Jaqueline S. y Barbosa, Helio J.C. On Ant Colony Optimization Algorithms for problemas de restricción, específicamente, Multiobjective en Optimization: Methods and Applications. Ed. el problema de la mochila La importancia del algoritmo propuesto está en su aplicación a problemas reales con combinatoria, Ant Colony Avi Ostfeld, InTech. pp. 53–74, 2011. multidimensional. relacionados Problems donde, optimización para cualquier [5]. Dorigo M. Optimization, Learning and Natural Algorithms, PhD thesis. Politecnico di Milano, Italie, 1992. [6]. Dréo Johann. Adaptation de la méthode des número de elementos n y cualquier número colonies de fourmis pour l'optimisation en de objetivos m se pretende minimizar o variables continues. Application en génie maximizar una función objetivo. Uno de los biomédica, Ph.D. tesis, Universidad de trabajos futuros es mejorar el algoritmo Paris XII, France, 2003. propuesto usando el paradigma de programación paralela esperando que se amplíe el espacio de búsqueda y encontrar de forma más rápida soluciones óptimas al problema. [7]. Dréo Johann, Pétrowsky Alain, Siarry Patrick y Taillard Éric.Métaheuristiques pour l'optimisation difficil, Eyrolles, 2003. 30 Soto D., Soto W., Pinzon Y. [8]. Fidanova S. Probabilistic Model of Ant [15]. Stutzle Thomas y Holger Hoos, MAX–MIN Colony Optimization for Multiple Knapsack Ant System. Future Generation Computer Problem, Large Scale Scientific Computing, Systems, 16(2000), 889–914. Lecture Notes in Computer Science 4818, 545–552, 2008. [16]. Tomoyuki Hiroyasu, Mitsunori Miki, Seiichi Nakayama [9]. Fidanova S. Ant Colony Optimization for y Yoshiko Hanada. Multi- Objective Optimization of Diesel Engine Multiple Knapsack Problem and Model Bias, Emissions and Fuel Economy Using Numerical Analysis and Applications 2004, SPEA2+, in Hans–Georg Beyer et al. Lecture Notes in Computer Science 3401, (editors), 2005 Genetic and Evolutionary 282–289, 2005. Computation Conference (GECCO'2005), 2:2195–2196, ACM Press, New York, USA, [10]. KKellerer H., U. Pferschy y D. Pisinger. Knapsack Problems, Springer 2005. Verlag, Berlin, Germany. 2004. [17]. Zitzler E. Evolutionary Algorithms for Multiobjective Optimization: Methods and [11]. Khichane Madjid, Patrick Albert y Christine Solnon. Un l'optimisation modèle par réactif pour colonies de Applications. Ph.D. thesis, Swiss Federal Institute of Technology (ETH) Zurich, Switzerland, 1999. fourmis:application á la satisfaction de contraintes, Journees Francophones de [18]. Zitzler E. y L. Thiele. Multiobjective Programmation par Contraintes JFPC'09, Evolutionary Algorithms: A Comparative France, 2009. Case Study and the Strength Pareto Approach, [12]. Martello Silvano y Paolo Toth. Knapsack problems: algorithms and computer IEEE Transactions on Evolutionary Computation, 3 (1999), 257– 271. implementations, John Wiley & Sons Inc., New York, USA, 1990. [19]. Zitzler, E.y L. Thiele. An Evolutionary Algorithm for Multiobjective Optimization: [13]. Olive Xavier. Résolution de conflits par algorithmes Master stochastiques Recherche, École parallèles, nationale supériore de l'aéronautique et de l'space, The Strength Pareto Approach, Technical Report, Swiss Technology Federal (ETH) Zurich, Institute of Switzerland, 1998. Toulouse, France, 2006. [20]. Zitzler E., M. Laumanns y L. Thiele, [14]. Shah Ruchit y Reed Patrick. Comparative analysis of algorithms multiobjective for random and evolutionary Evolutionary Algorithm, Technical Report, correlated Swiss Federal Institute of Technology (ETH) instances of multiobjective d-dimensional knapsack problems. European Journal of Operational Research, 211(3):466–479, 2011. SPEA2: Improving the Strength Pareto Elsevier, Zurich, Switzerland, 2001. Algoritmo de Optimización de Colonia de Hormigas Multiobjetivo Daniel Soto. Ingeniero de sistemas. Actualmente trabaja la para privada en temas relacionados inteligencia parte empresa con la artificial. Hace del grupo de Algoritmos y Combinatoria ALGOS-UN de la Universidad Nacional de Colombia. Wilson Soto. Ingeniero de sistemas, Esp. en ingeniería del software ingeniería de computación. y MSc sistemas en y Actualmente es docente tiempo completo de la Universidad Central en Colombia. Hace parte del grupo de Algoritmos y Combinatoria ALGOS-UN de la Universidad Nacional de Colombia y del grupo de Sistemas Inteligentes y de Información Espacial SIGA de la Universidad Central. Yoan Pinzón. Ingeniero de sistemas, Esp. en ingeniería de software, MSc y PhD de la Universidad College de King’s Londres. Actualmente es vicedecano de investigación y extensión de la Universidad Nacional de Colombia. Hace parte del grupo de investigación LISI y ALGOSUN de la Universidad Nacional de Colombia. 31