530 likes | 648 Views
Dr. Guillermo Leguizamón CINVESTAV – Julio de 2010. Ant Colony Optimization (Optimización Basada en el comportamiento de Colonias de Hormigas) Una Metaheurística Bio -inspirada. El enfoque ACO, marco general. La metaheurística ACO se sitúa dentro del
E N D
Dr. Guillermo Leguizamón CINVESTAV – Julio de 2010 AntColonyOptimization(Optimización Basada en el comportamiento de Colonias de Hormigas)Una Metaheurística Bio-inspirada G. Leguizamón - UNSL - Argentina
El enfoque ACO, marco general. • La metaheurística ACO se sitúa dentro del • campo de la “INTELIGENCIA COLECTIVA” (IC) o • “SWARM INTELLIGENCE” (SI) • Este marco presupone un conjunto de agentes • que obedecen a un conjunto de reglas muy • simples, pero que actuando cooperativamente, surge • un sistema mucho más complejo. • Ejemplos: Hormigas, termitas, abejas, • peces (cardúmenes), pájaros, etc. G. Leguizamón - UNSL - Argentina
InteligenciaColectiva- Introducción “The emergent collective intelligence of groups of simple agents.” (Bonabeau, Dorigo and Theraulaz) G. Leguizamón - UNSL - Argentina
InteligenciaColectiva- Introducción Muchosinsectos/aves/pecessocialesactuandocolectivamente, son capaces de realizarcomportamientoscomplejos, e.g., defender un nido, construirpuentes y nidos, distribuirtareas, búscaralimentos, defensa contra depredadores, etc. G. Leguizamón - UNSL - Argentina
InteligenciaColectiva - Introducción • ¿Qué los gobierna? • ¿Quién emite las ordenes? • ¿Quién tiene una visión global? • ¿Quién elabora los planes? • ¿Quién preserva el equilibrio? Algunas preguntas que surgen cuando vemos la complejidad y perfección del producto de ciertas colonias/enjambres: Parece ser que cada agente tiene sus propios objetivos, pero el resultado (construcción de un nido, puente, camino) se percibe como algo organizado y complejo.
IngeligenciaColectiva - Introducción Características de estos sistemas Agentes simples (gobernados por reglas sencillas), pero masivos. Comportamiento emergente Auto-organización Descentralización Flexibilidad Auto-reparación G. Leguizamón - UNSL - Argentina
IngeligenciaColectiva - Introducción Auto-organización (Self-organization ) Es un conjunto de mecanismosdinámicos a partir de los cualespuedenemergerestructuras de alto niveldebido a lasinteracciones entre componentes de bajonivel. (Bonabeau et al., en Swarm Intelligence, 1999)
InteligenciaColectiva - Introducción Cooperación (no competencia) Comunicación directa o indirecta (stigmergy) Algoritmos Modelos Sist. Multi-Agente Grupos de Robots G. Leguizamón - UNSL - Argentina
InteligenciaColectiva - Introducción Cine: Robótica y CienciaFicción (Matrix) Swarm de centinelas en acción Un “centinela” G. Leguizamón - UNSL - Argentina
InteligenciaColectiva - Introducción Más cine y escenas que capturan el concepto G. Leguizamón - UNSL - Argentina
InteligenciaColectiva - Introducción Algunosprincipios de la InteligenciaColectiva • Auto-organización basada en: • intensificación de tareasvíaretroalimentaciónpositiva • balance de actividadesvíaretroalimentaciónnegativa • intensificación de fluctuaciones aleatorias • múltiples interacciones • stigmergy , basada en: • trabajorealizadocomorespuesta al estado del entorno • el entornofuncionacomomemoria de estado de trabajorealizado • el trabajo no depende de agentesespecíficos G. Leguizamón - UNSL - Argentina
InteligenciaColectiva - Introducción Definición de Inteligencia Colectiva Computacional (ICC) o ComputationalSwarmIntelligence (CSI), según E. Bonabeau et al.: “cualquier intento de diseñar, desde una perspectiva distribuida, algoritmos o dispositivos para resolver problemas inspirados en el comportamiento de insectos u otros animales sociales” A. Engelbrechtda una definición similar, excepto que no incluye a los dispositivos (e.g., robots). G. Leguizamón - UNSL - Argentina
AntColonyOptimization (ACO) La metaheurística ACO engloba a un conjunto de algoritmos cuyo diseño está basado en el comportamiento de ciertas colonias de hormigas reales Comportamiento: búsqueda y provisión de alimentos realizando la exploración desde el nido (comportamiento forrajero). G. Leguizamón - UNSL - Argentina
Ant Colony Optimization (ACO) Las hormigas reales (ciertas especies) dejan un rastro (feromona) que puede ser detectado por el resto de la colonia (comunicación indirecta o stigmergy) G. Leguizamón - UNSL - Argentina
Ant Colony Optimization (ACO) Definición: Un Algoritmo ACO es un proceso distribuido en el que un conjunto de agentes (reactivos) actúan en forma independiente y cooperan esporádicamente en forma indirecta para llevar a cabo un objetivo común. G. Leguizamón - UNSL - Argentina
Instrucciones: • Reemplazar iconos de ejemplo por iconos de documentos activos así: • Crear documento en Word. • Volver a PowerPoint. • En el menú Insertar, seleccione Objeto... • Haga clic en “Crear desde archivo” • Ubique el nombre de archivo en el cuadro “Archivo” • “Mostrar como icono” debe estar activado. • Haga clic en Aceptar • Seleccione un icono • En el menú Presentación, seleccione Configuración de la acción. • Haga clic en “Acción de objeto” y seleccione “Modificar” • Haga clic en Aceptar ACO (Exp. Camino más corto) Alimento Ciertas especies de hormigas realizan un proceso llamado auto-catalítico, el que modifica la velocidad con que se deja el rastro de feromona. Existen 2 tipos de catalizadores. Positivos: aumentan la velocidad de una reacción. Negativos: disminuyen la velocidad de una reacción (inhibidor). Nido G. Leguizamón - UNSL - Argentina
Algunos Simuladores • http://www.sinanerdem.net/ant-colony-simulator • http://www.rennard.org/alife/english/antsgb.html • http://www.mcrit.com/complexity/applets/boid.html G. Leguizamón - UNSL - Argentina
ACO: algunosconceptosprevios • Antes de introducir los aspectos computacionales de la metaheurística ACO, veamos dos métodos básicos para explorar el espacio de búsqueda con elementos comunes a algunas metaheurísticas, por ejemplo: • Búsqueda Local • Algoritmos constructivos G. Leguizamón - UNSL - Argentina
ConceptosPrevios (Cont.)Búsqueda Local • Presupone una estructura bien definida del espacio de • búsqueda (uso del concepto de vecindario). • Comienza desde una solución inicial y repetidamente trata de mejorarla a través de cambios locales • Cada cambio realizado le permite al método, “moverse” hacia otros puntos del espacio de búsqueda dentro del vecindario G. Leguizamón - UNSL - Argentina
Operador ConceptosPrevios (Cont.) Vecindario de un punto en el espacio G. Leguizamón - UNSL - Argentina
Búsqueda Local: ejemplo, operador de intercambio de 2 elementos. ( 4 512 3) ( 5 1 4 2 3) ( 1 5 4 2 3) ( 2 5 4 1 3) ( 3 5 4 2 1) ( ?) ( ?)
Búsqueda Local: algoritmo simple Procedure BL; S Solución_Inicial; // completa Mejora TRUE while ( Mejora ) NS Vecindario de S // aplica op S’ Mejor(NS) // acorde al objetivo if( S mejor que S’ ) Mejora FALSE elseS S’ end-while return S; end-procedure
Conceptos Previos (Cont.) • Algoritmos constructivos • Las soluciones son construidas iterativamente añadiendo componentes a una solución partiendo desde una solución ‘vacía’. • Por ejemplo, en el problema del Viajante de Comercio (TSP) la solución es construida añadiendo una ciudad tras otra incrementando la longitud del tour. G. Leguizamón - UNSL - Argentina
Conceptos Previos (Cont.) Ejemplo de un Algoritmo constructivo ProcedureGreedyConstHeurist; SpElegirPrimeraComponente(Cand); while (Sp no esté completa) C ComponenteGreedy(Cand); SpSp C; end-while S Sp; return S; end-procedure Esta parte es la que determina la “voracidad” G. Leguizamón - UNSL - Argentina
Conceptos Previos (Cont.) • ¿Qué diferencia hay entre Búsqueda Local y un Algoritmo Constructivo? • ¿Cómo visualizar el espacio de búsqueda para un Algoritmo Constructivo? • ¿Se pueden definir operadores para explorar dicho espacio? G. Leguizamón - UNSL - Argentina
Espacio de Búsqueda del Problema (Ejemplo, TSP) Tamaño N=5, 5!=120 Posibles soluciones N=6, 6!=720 N=100, 100! = ? EB 2 3 4 5 1 Cada punto en EB es una permutación de las ciudades, e.g., (3 5 1 4 2)o (2 5 3 4 1) G. Leguizamón - UNSL - Argentina
3 ¿Cómo elegir la rama a seguir? 2 4 1 5 1 4 5 1 2 5 1 5 1 2 5 1 2 1 Espacio de Búsqueda - TSPAlgoritmo Constructivo 5 4 3 2 1 5! en Total G. Leguizamón - UNSL - Argentina
Algunasposibilidades de expansión del árbol • Greedy (como en el ejemplo del algoritmopreviamentemostrado) • Aleatorio (¿tienesentido?) • Greedy-random (e.g., GRASP) • o bien, según Ant Colony Optimization (formulaciónclásica del enfoque, a continuación …) G. Leguizamón - UNSL - Argentina
Consideracionesparasuaplicación • El enfoque ACO es particularmente adecuado para ser aplicado a problemas que acepten una representación vía grafo (necesario para imitar la búsqueda de un camino) • Representación del rastro de feromona y su asociación a las conexiones entre las componentes del problema. • Posibilidad de añadir conocimiento del problema (heurística local) para guiar junto con el rastro la construcción de las soluciones. G. Leguizamón - UNSL - Argentina
Consideraciones para su aplicación Dorigoet al. plantean el concepto de “grafo de construcción” como pre-requisito para aplicar un algoritmo ACO. La existencia de este grafo permitirá a las hormigas de la colonia, recorrer dicho grafo para la construcción de las soluciones en forma cooperativa. G. Leguizamón - UNSL - Argentina
Consideraciones para su aplicación • Se define un grafo GC=(V,E) donde: • V es el conjunto de vértices • E el conjunto de arcos que representan las • conexiones entre los vértices • C es el conjunto de componentes del problema y • puede estar asociado a V o E. G. Leguizamón - UNSL - Argentina G. Leguizamón - UNSL - Argentina
Consideraciones para su aplicación (ejemplo general) N F G. Leguizamón - UNSL - Argentina G. Leguizamón - UNSL - Argentina
ACO aplicado a TSP Grafo GC =(V,E), donde V es el conjunto de n ciudades (componentes) y E las carreteras entre las ciudades (TSP simétrico) . En este ejemplo n=5 2 ¿dónde ubicamos al nido (N) y a la fuente de alimentos (F)? 3 4 5 1
ACO aplicado a TSP (Cont.) Nido: nodos elegidos aleatoriamente (e.g., 3) FA: el último nodo luego de completada la solución (e.g., 1) Una posible solución: (3 5 4 2 1) 2 3 4 5 1 G. Leguizamón - UNSL - Argentina
ACO aplicado a TSP (Cont.) Al momento de decidir la próxima ciudad a visitar, ¿cuáles serán los opciones para cada hormiga? Veamos el caso de una hormiga particular: S=(), C={1,2,3,4,5} 2 S=(3), C={1,2,4,5} S=(3 5), C={1,2,4} 3 4 Componentes Candidatas Solución Inicial S=(3 5 4), C={1,2} S=(3 5 4 2), C={1} 5 1 S=(3 5 4 2 1), C={} G. Leguizamón - UNSL - Argentina
ACO aplicado a TSP (Cont.) • Representación del rastro de feromona puede ser realizado a través de una matriz de números reales () de nn. • Heurística local (visibilidad): 1/dij, es decir, un valor inversamente proporcional a la distancia entre las ciudades iy j. G. Leguizamón - UNSL - Argentina
ACO aplicado a TSP (Cont.) τ: matriz de feromona 2 3 4 1 2 3 4 5 1 2 3 5 1 4 τij indica fortaleza de la conexión (i,j) 5 G. Leguizamón - UNSL - Argentina
3 ¿Cómo se elige en un ACO la rama a seguir? 2 4 1 5 1 4 5 1 2 5 1 5 1 2 5 1 2 1 Espacio de Búsqueda - TSPAlgoritmo ACO 5 4 3 2 1 G. Leguizamón - UNSL - Argentina
El primer algoritmo ACO (AntSystem o AS) La construcción se realiza paso a paso en forma probabilística considerando ij y ij Inicializar(); for c=1 toNro_ciclos { for k=1 toNro_ants ant-k construye solución k; Guardar la mejor solución; Actualizar Rastro (i.e., ij); Aplicar Búsqueda Local // Opcional Reubicar hormigas para el próximo ciclo; } G. Leguizamón - UNSL - Argentina
AS - Construcción de una solución para TSP /* Sk: Solución o permutación construida por la hormiga k*/ Sk= Ciudad_Inicial; (escogida de acuerdo a algún criterio) while ( no se haya completado el tour ) { Seleccionar próx. ciudad (j) con probabilidad Pij (i es la última ciudad incluida) Sk= Sk j } Los parámetros α y β controlan respectivamente la importancia del rastro y la heurística G. Leguizamón - UNSL - Argentina
El primer algoritmo ACO (AntSystem o AS) Inicializar(); for c=1 toNro_ciclos { for k=1 toNro_ants ant-k construye solución k; Guardar la mejor solución; Actualizar Rastro(i.e., ij); Aplicar Búsqueda Local // Opcional Reubicar hormigas para el próximo ciclo; } Se puede hacer considerando todas las soluciones encontradas o un subconjunto de ellas G. Leguizamón - UNSL - Argentina
Actualización del Rastro en AS Este valor es calculado directamente proporcional a la calidad de la solución Acumulación de rastro proporcional a la calidad de las soluciones (i.e., NroAntssoluciones o la mejor de la colonia): Actualización : el parámetro es el factor de evaporación. G. Leguizamón - UNSL - Argentina
Importancia de Rastro () • Como todo método heurístico, un algoritmo ACO tiene su bloque de construcción a partir del cual se generan nuevas soluciones del espacio de búsqueda. • El bloque de construcción está representado por la estructura dado que incide directamente en las componentes a seleccionar. 1 2 3 4 5 1 Recordar!: El nivel de feromona indica la fortaleza de la conexión. 2 3 4 5 G. Leguizamón - UNSL - Argentina
Otrosalgoritmos ACO • Surgencomorespuesta a ciertosproblemasobservados en AS y básicamente se diferencian encómousan y/o modifican el rastro de feromona. • MinMax-AS (control sobre los valores del rastro) • AS-rank (ranking de soluciones) • AS-elistim (sólola mejorsolución) • Ant Colony System (ACS) • Ant-Q (basado en Q-Learning) G. Leguizamón - UNSL - Argentina
¿Quédiferencia fundamental existe entre el enfoque ACO y los AEs? G. Leguizamón - UNSL - Argentina
3 2 4 1 5 1 4 5 1 2 5 1 5 1 2 5 1 1 2 EB desde la perspectiva de un AE y ACO Solución Completa G. Leguizamón - UNSL - Argentina
AEs y ACO: un concepto adicional • Enfoques basados en Modelos • Enfoques basados en Instancias G. Leguizamón - UNSL - Argentina
Aplicaciones de ACO • TSP • Scheduling • VehicleRoutingProblem (VRP) • Data Mining (Ant-Miner & Ant-Tree) • Problemas de Grafos (Clique, Coloreo, etc.) • Ruteo Dinámico (ANT-Net) • Problemas con funciones continuas y restricciones • Geometría Computacional G. Leguizamón - UNSL - Argentina
Estudios actuales • Modelos Paralelos • Hibridación • Estudio y análisis de sus propiedades • Aplicaciones a problemas de carácter no estacionario (ambientes dinámicos) G. Leguizamón - UNSL - Argentina
Información de interés • Dorigo, M. & T. Stützle - “AntColonyOptimization”. MitPress. • Bonabeau, E., Dorigo, M., and Theraulaz, G. – “SwarmIntelligence: FromNaturalstoArtificalSystems”. Oxford UniversityPress. • Engelbrecht, A.P. – “Fundamentals of Computational Swarm Intelligence”. Wiley. G. Leguizamón - UNSL - Argentina