Ant Colony Optimization

Documentos relacionados
Algoritmos basados en hormigas

BIOINFORMÁTICA

Inteligencia de enjambres

Metaheurísticas y heurísticas. Algoritmos y Estructuras de Datos III

Optimización basada en Colonia de Hormigas

Grafos Eulerianos y Hamiltonianos. Algoritmos y Estructuras de Datos III

Dimensionamiento y Planificación de Redes

ALGORÍTMICA

Inteligencia Artificial

BIOINFORMÁTICA

Métodos Constructivos. Empiezan desde una solución vacía (a veces pequeña)

OPTIMIZACIÓN DEL PROBLEMA DEL AGENTE VIAJERO USANDO EL SISTEMA DE COLONIA DE HORMIGAS Y BUSQUEDA GREEDY

Algoritmos genéticos

Teoría de grafos y optimización en redes

Tutorial 3D de algoritmos de optimización a partir de colonias de hormigas

El problema de ruteo de vehículos

greedy (adj): avaricioso, voraz, ávido, codicioso, glotón

Alineamiento múltiple de secuencias

ALGORITMOS DE ENJAMBRE SWARM ALGORITHMS. Artículo de Revisión JOURNAL BOLIVIANO DE CIENCIAS VOLUMEN 12 NÚMERO 36 ISSN RESUMEN

Optimización de Colonia de Hormigas para resolver el problema de Distribución en Planta

Proyectos de Investigación

Inicio. Cálculos previos GRASP. Resultados. Fin. Figura 5.1: Diagrama de flujo del algoritmo.

Son una clase particular de los algoritmos evolutivos.

Búsqueda en línea y Búsqueda multiagente

Redes Neuronales Artificiales

Algoritmos de Colonia de Hormigas para el Problema del Viajante de Comercio por Familias y para el Problema de Ruteo de Vehículos por Familias

Búsqueda en e.e. --> reglas para elegir entre las ramas que con más probabilidad lleven a la solución.

Optimización por Colonia de Hormigas para la Asignación Dinámica de Recursos en una Plataforma de Experimentación de Temperatura Multizona

Aprendizaje Computacional. Eduardo Morales y Jesús González

Introducción la placa alveolar OBJETO Y ALCANCE DE LA TESIS REQUISITOS EXIGIBLES A LOS PRODUCTOS DE CONSTRUCCIÓN...

Colonias Distribuidas de Hormigas en un Entorno Paralelo Asíncrono

Estado 3.2 (coste = 9)

Análisis y Diseño de Algoritmos Tablas de Hash

Aprendizaje Automatizado

Unidad Académica Profesional UAEM Tianguistenco, Paraje El Tejocote, San Pedro Tlaltizapán, Tianguistenco, México CP 52640

Introducción a la Investigación Operativa

Aplicación de la metodología GRASP al problema de Rutificación de Vehículos (VRP)

ALGORÍTMICA

Grafos. CCIR / Depto Matemáticas CB102

Uso de una Colonia de Hormigas. para resolver Problemas de Programación. de Horarios

Introducción a la Robótica Mecanismos para el control de un robot (5)

Sesión 4: Teoría de Grafos

Coloreo de vértices Definiciones: Coloreo de Grafos. Cotas para χ Proposición: Si H es un subgrafo de G entonces χ(h) χ(g).

Un modelo híbrido de inteligencia computacional para resolver el problema de Job Shop Scheduling

METAHEURISTICAS Ideas, Mitos, Soluciones

MATRIZ DE ARBOLES DE DECISION

Análisis de algoritmos

Ejemplo de Presentación Beamer

Modelos de Redes: Problemas de la Ruta más m s corta. M. En C. Eduardo Bustos Farías

Capítulo 8. Árboles. Continuar

Modelos predictivos y de optimización de estructuras de hormigón

INDICE INTRODUCCION1 DESARROLLO2 GRAFOS (CONCEPTO).2 ARISTAS...2 VERTICES2 CAMINOS.3 CLASIFICACION DE GRAFOS...3 GRAFOS EULERIANOS.

D conjunto de N patrones etiquetados, cada uno de los cuales está caracterizado por n variables predictoras X 1,..., X n y la variable clase C.

Optimización inspirada en la naturaleza

Optimización por colonia de hormigas: aplicaciones y tendencias

Complejidad computacional (Análisis de Algoritmos)

ALGORITMOS HEURÍSTICOS Y APROXIMADOS. Análisis y diseño de algoritmos II- 2009

Framework basado en Colonias de Hormigas artificiales para la resolución de problemas de optimización

Curso de Inteligencia Artificial

Control Inteligente Usando Optimización por Colonia de Hormigas

Redes Bayesianas (3) Carlos Hurtado L. Depto. de Ciencias de la Computación, Universidad de Chile

CONTENIDO. 1.- Introducción a la Inteligencia Artificial (IA) 2.- Lógica de predicados. 3.- Búsqueda de soluciones

Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE

Ingeniería en Sistemas Computacionales. Inteligencia Artificial. Ing. Bruno López Takeyas. Algoritmo Hill Climbing

UNIVERSIDAD MAYOR DE SAN SIMÓN FACULTAD DE CIENCIAS Y TECNOLOGÍA INGENIERÍA DE SISTEMAS BÚSQUEDA PRIMERO EL MEJOR

Grafos y Redes. 3. Resolución: Dibujar el camino sin levantar el lápiz y pasando sólo una vez por cada arco o arista.

IMPLEMENTACION EN HIDROINFORMÁTICA DE UN MÉTODO DE OPTIMIZACIÓN MATEMÁTICA BASADO EN LA COLONIA DE HORMIGAS

Arboles. Definiciones formales: 1) un árbol es un grafo acíclico finito T (P, E) tal que. P = E + 1 => todo arco es desconectante.

TÉCNICAS HEURÍSTICAS APLICADAS AL PROBLEMA DEL CARTERO VIAJANTE (TSP)

Integrantes: Leonardo Tilli Fernando Hernández

APLICACIÓN DE UN MODELO DE OPTIMIZACIÓN EN LA PLANEACIÓN DE RUTAS DE LOS BUSES ESCOLARES DEL COLEGIO LICEO DE CERVANTES NORTE

Una Interfaz Grafo-Matriz

TEMA 3. Árboles. Objetivos. Contenidos. Bibliografía. Básica

Diagramas de Bloques

Teoría 1 Introducción a la Inteligencia Artificial

1. GRAFOS : CONCEPTOS BASICOS

Tema 2: Representación de problemas como espacios de estados

MODELOS DE INVESTIGACION DE OPERACIONES

Fútbol, geometría y otros problemas.

Modelos de Redes: Árbol. M. En C. Eduardo Bustos Farías

Modelos de enjambre aplicados a problemas de optimización

Geometría Computacional. Dr. Antonio Marín Hernández

El problema del agente viajero

Transcripción:

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

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 actuando colectivamente, son capaces de realizar comportamientos complejos, e.g., defender un nido, construir puentes y nidos, distribuir tareas, 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 Características de estos sistemas Agentes simples (gobernados por reglas sencillas), pero masivos. Comportamiento emergente Auto-organización Descentralización Flexibilidad Auto-reparación

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 Algoritmos Modelos Sist. Multi-Agente Grupos de Robots

Inteligencia Colectiva Introducción Cine: Robótica y Ciencia Ficción (Matrix) Swarm de centinelas en acción Un centinela

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

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)

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.

ACO (Exp. Camino más corto) Ciertas especies de hormigas realizan un proceso llamado auto catalítico, el que modifica la velocidad con que se deja el rastro de feromona. Alimento Existen 2 tipos de catalizadores. Positivos: aumentan la velocidad de una reacción. Negativos: disminuyen la velocidad de una reacción (inhibidor). Nido

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. ( 5 1 4 2 3) ( 4 5 1 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 ) N S Vecindario de S // aplica operador S Mejor(N S ) // 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 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-while S 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 soluciones N=6, 6!=720 N=100, 100! =? EB 2 3 4 1 5 Cada punto en EB es una permutación de las ciudades, e.g., (3 5 1 4 2) o (2 5 3 4 1)

Espacio de Búsqueda TSP Algoritmo Constructivo Cómo elegir la rama a seguir? 3 5 1 2 4 5 4 1 4 5 1 2 5 3 1 5 1 2 2 5 1 2 1 1 5! en Total

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 )

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.

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 G C =(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) N F

ACO aplicado a TSP Grafo G C =(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 3 4 dónde ubicamos al nido (N) y a la fuente de alimentos (F)? 1 5

ACO aplicado a TSP (Cont.) 2 3 4 Nido: nodos elegidos aleatoriamente (e.g., 3) FA: el último nodo luego de completada la solución (e.g., 1) 1 5 Una posible solución: (3 5 4 2 1)

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: 2 Solución Inicial S=(), C={1,2,3,4,5} S=(3), C={1,2,4,5} Componentes Candidatas 3 4 S=(3 5), C={1,2,4} S=(3 5 4), C={1,2} 1 5 S=(3 5 4 2), C={1} S=(3 5 4 2 1), C={}

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 n n. Heurística local (visibilidad): 1/d ij, es decir, un valor inversamente proporcional a la distancia entre las ciudades i y j.

ACO aplicado a TSP (Cont.) 2 3 4 1 5 τ: matriz de feromona 1 2 3 4 5 1 2 3 4 5 τ ij indica fortaleza de la conexión (i,j)

Cómo se elige en un ACO la rama a seguir? Espacio de Búsqueda TSP Algoritmo ACO 3 5 1 2 4 5 4 1 4 5 1 2 5 3 1 5 1 2 2 5 1 2 1 1

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 ); 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 /* S k : Solución o permutación construida por la hormiga k */ S k = Ciudad_Inicial; (escogida de acuerdo a algún criterio) while ( no se haya completado el tour ) { } Seleccionar próx. ciudad (j) con probabilidad P ij (i es la última ciudad incluida) P ij ( k) S k = S k j α β τ ij. ηij = α τ ih. η h Candidatas 0 β ih j Candidatas en otro caso α y β controlan resp. la importancia del rastro y la heurística

El primer algoritmo ACO (Ant System o AS) Se puede hacer considerando todas las soluciones encontradas o un subconjunto de ellas 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); Reubicar hormigas para el próximo ciclo; }

Actualización del Rastro en AS Δτ ij NroAnts k ( t + 1) = Δ τ k = 1 Acumulación de rastro proporcional a la calidad de las soluciones (e.g., NroAnts soluciones o la mejor de la colonia): ij ( t) Éste, es un valor directamente proporcional a la calidad de la solución: k Δ τ ij ( t ) = 1 / L k Actualización : el parámetro ρ es el factor de evaporación. τ ( t + 1) = (1 ρ) τ ( t) + Δτ ( t + 1) ij ij ij

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 2 3 4 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 3 1 2 4 5 1 4 5 1 2 5 1 5 1 2 5 1 2 1 Procesa soluciones completas Construye soluciones paso 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. Swarm Intelligence: 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