Una Metaheurística Bio inspirada -...

52
Ant Colony Optimization (Optimización Basada en el comportamiento de Colonias de Hormigas) Una Metaheurística Bio inspirada CINVESTAV – Ciudad de México - 2012 Dr. Guillermo Leguizamón

Transcript of Una Metaheurística Bio inspirada -...

Ant Colony Optimization(Optimización Basada en el 

comportamiento de Colonias de Hormigas)

Una Metaheurística Bio‐inspirada

CINVESTAV – Ciudad de México - 2012Dr. Guillermo Leguizamón

El enfoque ACO, marco general.

• La metaheurística ACO se sitúa dentro del    campo de la “INTELIGENCIA COLECTIVA” o “INTELIGENCIA DE ENJAMBRES” o  “SWARM INTELLIGENCE” 

• 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.

Inteligencia Colectiva‐ Introducción

“The emergent collective intelligence of groups of simple agents.”

(Bonabeau, Dorigo and Theraulaz)

Inteligencia Colectiva‐ Introducción

Muchos insectos/aves/peces sociales actuandocolectivamente, son capaces de realizarcomportamientos complejos, e.g., defender un nido, construir puentes y nidos, distribuirtareas, buscar alimentos, defenderse de 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

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 apartir de los cuales pueden emerger estructurasde alto nivel debido a las interacciones entrecomponentes de bajo nivel.

(Bonabeau et al., en Swarm Intelligence, 1999)

Inteligencia Colectiva ‐ Introducción

Modelos

Algoritmos

Sist. Multi-Agente

Grupos de Robots

Inteligencia Colectiva ‐ Introducción

Cine: Robótica y Ciencia Ficción (Matrix)

Un “centinela”

Swarm de centinelas en acción

Inteligencia Colectiva ‐ Introducción

Más cine y escenas que capturan el concepto

Inteligencia Colectiva ‐ Introducción

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

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

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)

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. 

Ant Colony Optimization (ACO)

ACO (Exp. Camino más corto)Alimento

Nido

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).

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

(*) No son simuladores de algoritmos ACO, sino que representan un modelo simplificado para mostrar el comportamiento forrajero de las hormigas

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

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

Conceptos Previos (Cont.) Vecindario de un punto en el espacio

Operador

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; // completaMejora TRUEwhile ( Mejora )

NS Vecindario de S // aplica operadorS’ Mejor(NS) // acorde al objetivoif ( S mejor que S’ ) Mejora FALSEelse S S’

end-whilereturn 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’ o  con una componente del problema.

• 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.

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-whileS Sp;return S;

end-procedure

Esta parte es la que determina la “voracidad”

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?

Espacio de Búsqueda del Problema (Ejemplo, TSP)

Tamaño N=5, → 5!=120 Posibles solucionesN=6, → 6!=720N=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

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?

Algunas posibilidades de expansión del árbol

1. Greedy (como en el ejemplo del algoritmopreviamentemostrado)

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 …)

Consideraciones para suaplicació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.

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.

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.

Consideraciones para su aplicación (ejemplo general)

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

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

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  n×n.

• Heurística local (visibilidad):  1/dij, es decir, un valor inversamente proporcional a la distancia entre las ciudades i y j.

ACO aplicado a TSP (Cont.)

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 ‐ TSPAlgoritmo ACO

¿Cómo se elige en un ACO la rama a seguir?

El primer algoritmo ACO (*) (Ant System o AS)

Inicializar();for c=1 to Nro_ciclos{

for k=1 to Nro_antsant-k construye solución k;

Guardar la mejor solución;Actualizar Rastro (i.e., τij);Reubicar hormigas para el próximo ciclo;

}

La construcción se realiza paso a paso en forma probabilística considerando

τij y ηij

(*) Propuesto originalmente por Marco Dorigo en su tesis doctoral

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

..

)( βα

βα

ητητ

α  y βcontrolan resp.  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_antsant-k construye solución k;

Guardar la mejor solución;Actualizar Rastro (i.e., τij);Reubicar hormigas para el próximo ciclo;

}

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 (e.g., NroAntssoluciones o la mejor de la colonia):

Actualización : el parámetro ρ es el factor de evaporación.

∑=

Δ=+ΔNroAnts

kij

kij tt

1)()1( ττ

)1()()1()1( +Δ+−=+ ttt ijijij ττρτ

Éste, es un valor directamente

proporcional a la calidad de la solución:

kijk Lt /1)( =Δ τ

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

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.

• MaxMin‐AS (control sobre los valores del rastro)

•AS‐rank (ranking de soluciones)

•AS‐elistim (todas las soluciones + la mejor solución)

•Ant Colony System (ACS – modificación local y global)

•Ant‐Q (basado en Q‐Learning, en desuso) 

¿Qué diferencia fundamental  existe entre el enfoque ACO y los AEs?

EB desde la perspectiva de un AE y ACO

Procesa solucionescompletas

3

1 2 54

41 25

5

51

2

21

1

1 5

1

Construye solucionespaso a paso

AEs y ACO: un concepto adicional

• 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

Estudios actuales 

• Modelos Paralelos

• Hibridación

• Estudio y análisis de sus propiedades

• Aplicaciones a problemas de carácter no estacionario (ambientes dinámicos)

• Dominios Continuos

Información de interés

• Dorigo, M. & T. Stützle - “Ant Colony Optimization”. MIT Press, 2004.

• Bonabeau, E., Dorigo, M., and Theraulaz, G. – “SwarmIntelligence: From Naturals to Artifical Systems”. Oxford University Press, 1999.

• Engelbrecht, A.P. – “Fundamentals of Computational Swarm Intelligence”. Wiley, 2005.

Información de interés (Cont.)

• http://iridia.ulb.ac.be/~mdorigo/ACO/ACO.html

• http://www.metaheuristics.net/

FIN

Parte I