Ant Colony Optimization
(Optimización Basada en el comportamiento de Colonias de
Hormigas)
Una Metaheurística Bio-inspirada
Dr. Guillermo Leguizamón
CINVESTAV – Julio de 2010
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
Inteligencia Colectiva- Introducción
G. Leguizamón - UNSL - Argentina
“The emergent collective intelligence of groups of simple agents.”
(Bonabeau, Dorigo and Theraulaz)
Inteligencia Colectiva- Introducción
G. Leguizamón - UNSL - Argentina
Muchos insectos/aves/peces sociales actuando colectivamente, son capaces de realizar comportamientos complejos, e.g., defender un nido, construir puentes y nidos, distribuir tareas, búscar alimentos, defensa contra depredadores, etc.
Inteligencia Colectiva - Introducción
Algunas preguntas que surgen cuando vemos la complejidad y perfección del producto de ciertas colonias/enjambres:
- ¿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?
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.
Ingeligencia Colectiva - Introducción
G. Leguizamón - UNSL - Argentina
Agentes simples (gobernados por reglas sencillas), pero masivos.
Comportamiento emergente
Auto-organización
Descentralización
Flexibilidad
Auto-reparación
Características de estos sistemas
Ingeligencia Colectiva - Introducción
Auto-organización (Self-organization )
Es un conjunto de mecanismos dinámicos a partir de los cuales pueden emerger estructuras de alto nivel debido a las interacciones entre componentes de bajo nivel.
(Bonabeau et al., en Swarm Intelligence, 1999)
Inteligencia Colectiva - Introducción
G. Leguizamón - UNSL - Argentina
Cooperación (no competencia)
Comunicación directa o indirecta (stigmergy)
Modelos
Algoritmos
Sist. Multi-Agente
Grupos de Robots
Inteligencia Colectiva - Introducción
G. Leguizamón - UNSL - Argentina
Cine: Robótica y Ciencia Ficción (Matrix)
Un “centinela”
Swarm de centinelas en acción
Inteligencia Colectiva - Introducción
G. Leguizamón - UNSL - Argentina
Más cine y escenas que capturan el concepto
Inteligencia Colectiva - Introducción
G. Leguizamón - UNSL - Argentina
Algunos principios de la Inteligencia Colectiva
1. Auto-organización basada en:• intensificación de tareas vía retroalimentación positiva• balance de actividades vía retroalimentación negativa• intensificación de fluctuaciones aleatorias•múltiples interacciones
2. stigmergy , basada en:• trabajo realizado como respuesta al estado del entorno • el entorno funciona como memoria de estado de
trabajo realizado • el trabajo no depende de agentes específicos
Inteligencia Colectiva - Introducción
G. Leguizamón - UNSL - Argentina
Definición de Inteligencia Colectiva Computacional (ICC) o Computational Swarm Intelligence (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. Engelbrecht da una definición similar, excepto que no incluye a los dispositivos (e.g., robots).
Ant Colony Optimization (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
G. Leguizamón - UNSL - Argentina
Comportamiento: búsqueda y provisión de alimentos realizando la exploración desde el nido (comportamiento forrajero).
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
Ant Colony Optimization (ACO)
ACO (Exp. Camino más corto) Alimento
Nido
G. Leguizamón - UNSL - Argentina
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).
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
ACO: algunos conceptos previos 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
Conceptos Previos (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
Conceptos Previos (Cont.)
Vecindario de un punto en el espacio
Operador
G. Leguizamón - UNSL - Argentina
Búsqueda Local: ejemplo, operador de intercambio de 2 elementos.
( 1 5 4 2 3)
( 4 5 1 2 3)( 5 1 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
else S 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
Procedure GreedyConstHeurist; Sp ElegirPrimeraComponente(Cand); while (Sp no esté completa) C ComponenteGreedy(Cand);
Sp Sp 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
Cada punto en EB es una permutación de las ciudades, e.g., (3 5 1 4 2) o (2 5 3 4 1)
3 4
2
51
G. Leguizamón - UNSL - Argentina
3
1 2 54
41 25
5
51
2
21
1
1 5
1
5
5! en Total
3
4
2
1
Espacio de Búsqueda - TSPAlgoritmo Constructivo
¿Cómo elegir la rama a seguir?
G. Leguizamón - UNSL - Argentina
Algunas posibilidades de expansión del árbol
1. Greedy (como en el ejemplo del algoritmo previamente mostrado)
2. Aleatorio (¿tiene sentido?)3. Greedy-random (e.g., GRASP)4. o bien, según Ant Colony
Optimization (formulación clásica del enfoque, a continuación …)
G. Leguizamón - UNSL - Argentina
Consideraciones para su aplicació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
Dorigo et 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
G. Leguizamón - UNSL - Argentina
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
Consideraciones para su aplicación (ejemplo
general)
G. Leguizamón - UNSL - ArgentinaG. Leguizamón - UNSL - Argentina
FN
ACO aplicado a TSP
3 4
2
51
¿dónde ubicamos al nido (N) y a la fuente de alimentos (F)?
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
ACO aplicado a TSP (Cont.)
3 4
2
51
G. Leguizamón - UNSL - Argentina
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)
ACO aplicado a TSP (Cont.)
3
G. Leguizamón - UNSL - Argentina
S=(3), C={1,2,4,5}
5
S=(3 5), C={1,2,4}
S=(3 5 4), C={1,2}
S=(3 5 4 2), C={1}
S=(3 5 4 2 1), C={}
4
2
1
S=(), C={1,2,3,4,5}
Solución
Inicial
Componentes
Candidatas
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:
• 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 i y j.
G. Leguizamón - UNSL - Argentina
ACO aplicado a TSP (Cont.)
G. Leguizamón - UNSL - Argentina
3 4
2
51
τ: matriz de feromona
τij indica fortaleza de la conexión (i,j)
11
2
2 3
34
4
5
5
ACO aplicado a TSP (Cont.)
3
1 2 54
41 25
5
51
2
21
1
1 5
1
5
3
4
2
1
Espacio de Búsqueda - TSP
Algoritmo ACO ¿Cómo se elige en un ACO la rama a seguir?
G. Leguizamón - UNSL - Argentina
El primer algoritmo ACO (Ant System o AS)
Inicializar();for c=1 to Nro_ciclos{ for k=1 to Nro_ants ant-k construye solución k; Guardar la mejor solución; Actualizar Rastro (i.e., ij);
Aplicar Búsqueda Local // OpcionalReubicar hormigas para el próximo ciclo;
} G. Leguizamón - UNSL - Argentina
La construcción se realiza paso a paso en forma probabilística considerando
ij y ij
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}
casootroen
CandidatasjkP
Candidatashihih
ijij
ij
0
..
)(
G. Leguizamón - UNSL - Argentina
Los parámetros
α y β controlan
respectivamente la
importancia del rastro y la
heurística
El primer algoritmo ACO (Ant System o AS)
Inicializar();for c=1 to Nro_ciclos{ for k=1 to Nro_ants ant-k construye solución k; Guardar la mejor solución; Actualizar Rastro (i.e., ij);
Aplicar Búsqueda Local // OpcionalReubicar hormigas para el próximo ciclo;
} G. Leguizamón - UNSL - Argentina
Se puede hacer considerando todas las soluciones encontradas o un subconjunto de ellas
Actualización del Rastro en AS
Acumulación de rastro proporcional a la calidad de las soluciones (i.e., NroAnts soluciones o la mejor de la colonia):
Actualización : el parámetro es el factor de evaporación.
NroAnts
kij
kij t
1
)1(
)1()()1()1( ttt ijijij
Este valor es calculado directamente
proporcional a la calidad de la solució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.
11
2
2 3
34
4
5
5
G. Leguizamón - UNSL - Argentina
Recordar!: El nivel de feromona indica la fortaleza de la conexión.
Otros algoritmos ACO
Surgen como respuesta a ciertos problemas observados en AS y básicamente se diferencian en cómo usan y/o modifican el rastro de feromona.
• MinMax-AS (control sobre los valores del rastro)
• AS-rank (ranking de soluciones)
• AS-elistim (sólo la mejor solució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
EB desde la perspectiva de un AE y ACO
Solución Completa
3
1 2 54
41 25
5
51
2
21
1
1 5
1
G. Leguizamón - UNSL - Argentina
AEs y ACO: un concepto adicional
G. Leguizamón - UNSL - Argentina
• Enfoques basados en Modelos
• Enfoques basados en Instancias
Aplicaciones de ACO
• TSP• Scheduling • Vehicle Routing Problem (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 - “Ant Colony Optimization”. Mit Press.
• Bonabeau, E., Dorigo, M., and Theraulaz, G. – “Swarm Intelligence: From Naturals to Artifical Systems”. Oxford University Press.
• Engelbrecht, A.P. – “Fundamentals of Computational Swarm Intelligence”. Wiley.
G. Leguizamón - UNSL - Argentina
Información de interés (Cont)
• http://iridia.ulb.ac.be/~mdorigo/ACO/ACO.html
• http://www.metaheuristics.net/
G. Leguizamón - UNSL - Argentina
Vemos ahora un programa en Lenguaje C (versión para Linux) de un algoritmo ACO (Ant System y variantes) para Resolver el Problema de Viajante de Comercio (TSP).
G. Leguizamón - UNSL - Argentina
FIN
Parte IG. Leguizamón - UNSL - Argentina
Top Related