Dr. Guillermo Leguizamón

Slides:



Advertisements
Presentaciones similares
Diseño y análisis de algoritmos
Advertisements

Diseño y análisis de algoritmos
Problemas de Planificación para Máquina Única en Entornos Dinámicos Implementados con Metaheurística ACO y AEs de San Pedro M. Laboratorio de Tecnologías.
Grupo 4 Matías Melgar Pablo Carbonell
Inteligencia Artificial Búsqueda informada y exploración
Mauricio Granada Echeverri Universidad Tecnológica de Pereira
COMPONENTIZACIÓN DE ALGORITMOS GENETICOS Y SU IMPLEMENTACIÓN EN UNA PLATAFORMA ABIERTA PARA APRENDIZAJE COMPUTACIONAL.
Investigación Algorítmica
Método de Ford-Fulkerson
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Solución de problemas por búsqueda inteligente
Optimización de sistemas de trading
Metaheurística ACO Aplicada a Problemas de Planificación en Entornos Dinámicos de San Pedro M., Pandolfi D., Lasso M., Villagra A. Laboratorio de Tecnologías.
Métodos de Mejoría o de Busca Local Gladys Maquera I COPIOS Lima, 03 al 05 de noviembre de 2009.
Introducción a las Metaheurísticas
Métodos basados en poblaciones 1 En cada iteración se trabaja con un conjunto o población de soluciones Computación evolutiva: algoritmos que se inspiran.
Inteligencia artificial
Algoritmos Genéticos (AG) Integrantes: Rubén Levineri Miguel Rozas Juan Yañez Faltan autores y bibliografía.
PROGRAMACIÓN LÓGICA.
Modelos de Programación Entera - Heurísticas
Analisis y Diseño de Algoritmos Tema: Grafos 3ra Parte
Propuesta del algoritmo
AED I. Estructuras de Datos.
GRAFOS HUGO ARAYA CARRASCO.
PROGRAMACIÓN PARALELA EN ALGORITMOS SOBRE GRAFOS
Tesis para Grado de Ms.C. Optimización de Portafolios de Inversión en Bienes Raíces Mediante Algoritmos de Solución de Restricciones (Chile)
Temas importantes para el desarrollo de la segunda parte del TPE
Trabajo presentado por: LUIS FERNANDO OBANDO ING
Ant Colony Optimization (Parte II) Dr. Guillermo Leguizamón CINVESTAV, Julio 2010 Familia de algoritmos derivados del enfoque ACO.

Estructura de Datos y Algoritmos

Diseño y análisis de algoritmos
Bibliografía “Metaheuristics in Combinatorial Optimization: Overview and conceptual Comparison” C. Blum and A. Roli- TR/IRIDIA/ “An introduction.
Complejidad de los problemas de decisión
Sesión 6: Campos de Markov
Diseño y análisis de algoritmos
Parte II. Algorítmica. 3. Algoritmos voraces.
COMPUTACION EVOLUTIVA Introducción. Computación Evolutiva: Computación Evolutiva: Enfoque alternativo para abordar problemas complejos de: Enfoque alternativo.
Material de apoyo Unidad 4 Estructura de datos
Algoritmos de Búsqueda Simulated Annealing Es un algoritmo de Hill­Climmbing estocástico. Inspirado en el proceso físico (Termodinámica) de enfriamiento.
PRESENTACIÓN DEL GRUPO DE INVESTIGACIÓN UNIVERSIDAD DE CANTABRIA
Sistemas Inteligentes Distribuidos Sistemas Inteligentes Distribuidos Sesión 13 L. Enrique Sucar / Marco López Sesión 13 L. Enrique Sucar / Marco López.
Robótica Inteligente L. Enrique Sucar Leonardo Romero Marco López ITESM Cuernavaca.
Cúmulo de Partículas (Particle Swarm Optimization: PSO) Por: Antonio H. Escobar Zuluaga Universidad Tecnológica de Pereira - Colombia 2014 Optimización.
Autovalores y Autovectores
Una introducción a la computación evolutiva
Nuevas Metaheurísticas basadas en población
1 Flujo Máximo Agustín J. González ELO320: Estructura de Datos y Algoritmos.
Incorporando Búsqueda Local a un Algoritmo ACO para el Problema de Scheduling de Tardanza Ponderada Lasso M., de San Pedro M Laboratorio de Tecnologías.
Investigación Algorítmica ChasquiSoft. Integrantes Contreras Ames, Roy Carlos Gaspar Calle, Ronald Urlich Ames, Rafael Paredes.
Investigación Algorítmica
Optimización Combinatoria y Grafos Búsqueda Tabú
Excel La Hoja De Cálculo.
Estructura de Datos 4 Grafos Dirigidos
Investigación Algorítmica ChasquiSoft. Integrantes Contreras Ames, Roy Carlos Gaspar Calle, Ronald Urlich Ames, Rafael Paredes.
D. Pandolfi., A. Villagra, E. de San Pedro, M. Lasso LabTEm: Laboratorio de Tecnologías Emergentes Universidad Nacional de la Patagonia Austral Unidad.
PRESENTADO POR: LINA MARCELA IGUA TORRES SONIA MOYANO ESPINOSA DAVID MAHECHA MEDINA CRISTIAN HERNÁNDEZ GERMAN RAMÍREZ.
Prospectiva Territorial Jury Patricia Niño Galindo Planeación II
DISEÑAR Y ELABORAR ALGORITMOS Nombre: anayeli hernandez peralta Grado y grupo: 1 “3” Materia: Informática y computación Maestro: Ángel Buendía Turno: Vespertino.
Introducción a los TADs
Heurística. Los procesos que se llevan a cabo en el cerebro pueden ser analizados, a un nivel de abstacción dado, como procesos computacionales de algún.
Ciclo de Vida del Software
75.41 Algoritmos y Programación II Cátedra Ing. Patricia Calvo Complejidad algorítmica.
Investigación Algorítmica
Matemáticas Discretas MISTI
Investigación Algorítmica ChasquiSoft. Integrantes Contreras Ames, Roy Carlos Gaspar Calle, Ronald Urlich Ames, Rafael Paredes.
Marco de Trabajo para Indexación, Clasificación y Recopilación Automática de Documentos Digitales Javier Caicedo Espinoza Gonzalo Parra Chico.
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
Conclusiones: En este trabajo se ha demostrado que se pueden aplicar los algoritmos OCH al ajuste de los parámetros de un modelo borroso mediante la discretización.
Transcripción de la presentación:

Dr. Guillermo Leguizamón 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 “The emergent collective intelligence of groups of simple agents.” (Bonabeau, Dorigo and Theraulaz) G. Leguizamón - UNSL - Argentina

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, búscar alimentos, defensa contra depredadores, etc. G. Leguizamón - UNSL - Argentina

Inteligencia Colectiva - 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.

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 G. Leguizamón - UNSL - Argentina

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 Cooperación (no competencia) Comunicación directa o indirecta (stigmergy) Algoritmos Modelos Sist. Multi-Agente Grupos de Robots G. Leguizamón - UNSL - Argentina

Inteligencia Colectiva - Introducción Cine: Robótica y Ciencia Ficción (Matrix) Swarm de centinelas en acción Un “centinela” G. Leguizamón - UNSL - Argentina

Inteligencia Colectiva - Introducción Más cine y escenas que capturan el concepto G. Leguizamón - UNSL - Argentina

Inteligencia Colectiva - Introducción Algunos principios de la Inteligencia Colectiva 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 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 G. Leguizamón - UNSL - Argentina

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). G. Leguizamón - UNSL - Argentina

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

ACO (Exp. Camino más corto) 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” 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). 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: 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. ( 4 5 1 2 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 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 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

Espacio de Búsqueda - TSP Algoritmo Constructivo ¿Cómo elegir la rama a seguir? 3 1 2 5 4 5 4 3 2 1 5! en Total G. Leguizamón - UNSL - Argentina

Algunas posibilidades de expansión del árbol Greedy (como en el ejemplo del algoritmo previamente mostrado) Aleatorio (¿tiene sentido?) Greedy-random (e.g., GRASP) 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 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) F N 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 3 4 2 5 1 ¿dónde ubicamos al nido (N) y a la fuente de alimentos (F)?

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) 3 4 2 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} 3 S=(3 5), C={1,2,4} 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 nn. 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.) τ: matriz de feromona 3 4 2 5 1 1 2 3 4 5 τij indica fortaleza de la conexión (i,j) G. Leguizamón - UNSL - Argentina

Espacio de Búsqueda - TSP Algoritmo ACO ¿Cómo se elige en un ACO la rama a seguir? 3 1 2 5 4 5 4 3 2 1 G. Leguizamón - UNSL - Argentina

El primer algoritmo ACO (Ant System o AS) La construcción se realiza paso a paso en forma probabilística considerando ij y ij 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 // 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 (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 // 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., NroAnts soluciones 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 Recordar!: El nivel de feromona indica la fortaleza de la conexión. G. Leguizamón - UNSL - Argentina

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 3 1 2 5 4 Solución Completa G. Leguizamón - UNSL - Argentina

adicional Enfoques basados en Modelos Enfoques basados en Instancias AEs y ACO: un concepto adicional Enfoques basados en Modelos Enfoques basados en Instancias G. Leguizamón - UNSL - Argentina

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 I G. Leguizamón - UNSL - Argentina