48
Una Introducción a la Optimización Usando Algoritmos de Hormigas y sus Aplicaciones Parte A Jesús A. López Universidad del Valle Cali, Colombia CIIC2007 Universidad Nacional Bogotá, Colombia Septiembre 5 – 7 de 2007

Ants Algorithms Tutorial CIIC2007 Part a (1)

Embed Size (px)

DESCRIPTION

Ants Algorithms

Citation preview

Page 1: Ants Algorithms Tutorial CIIC2007 Part a (1)

Una Introducción a la Optimización Usando Algoritmos de Hormigas y sus Aplicaciones

Parte A

Jesús A. LópezUniversidad del ValleCali, Colombia

CIIC2007Universidad NacionalBogotá, ColombiaSeptiembre 5 – 7 de 2007

Page 2: Ants Algorithms Tutorial CIIC2007 Part a (1)

Agenda

� Introducción.� Inteligencia de Enjambres.� Algoritmos de Hormigas.� Algoritmos de hormigas para la solución de problemas de enrutamiento.

� Algoritmos de hormigas� Búsqueda de alimento � Optimización y enrutamiento� Agrupamiento y categorización� División de labores� Transporte cooperativo

Page 3: Ants Algorithms Tutorial CIIC2007 Part a (1)

Introducción (I)

La Inteligencia Artificial se divide en dos escuelas dependiendo de como se diseña un Agente Inteligente. La primera que se ha denominado Inteligencia Artificial Convencional y una emergente llamada Inteligencia Computacional

Inteligencia Artificial

Inteligencia Artificial Convencional

Inteligencia Computacional

Page 4: Ants Algorithms Tutorial CIIC2007 Part a (1)

Introducción (II)

Inteligencia Artificial Convencional

Búsquedas en Espacios de Estado Planeamiento Automático

Búsqueda Combinatoria Sistemas Expertos

Sistemas Basados en Comportamiento Redes Bayesianas

Page 5: Ants Algorithms Tutorial CIIC2007 Part a (1)

Inteligencia Computacional

Redes Neuronales Sistemas Difusos Computación Evolutiva

Introducción (III)

Page 6: Ants Algorithms Tutorial CIIC2007 Part a (1)

ComputaciónEvolutiva

AlgoritmosEvolutivos

Inteligenciade Enjambres

AlgoritmosGenéticos

EstrategiasEvolutivas

ProgramaciónGenética

ProgramaciónEvolutiva

Optimización porColonia deHormigas

Optimización porEnjambre dePartículas

Optimización porEnjambre deBacterias

Búsqueda por Difusión

Estocástica

Introducción (IV)

Page 7: Ants Algorithms Tutorial CIIC2007 Part a (1)

Inteligencia de Enjambres (I)

Una simple hormiga o abeja no es muy lista, pero sus colonias lo son. El estudio de la inteligencia de enjambres esta proporcionando ideas que pueden ayudar a los humanos a manejar sistemas complejos, desde enrutamiento de camiones hasta robots militares

Page 8: Ants Algorithms Tutorial CIIC2007 Part a (1)

� Técnicas computacionales que estudian el comportamiento colectivo en grupos descentralizados y autoorganizados

� Características:� No existe una estructura de control central

� No existe un modelo explicito del entorno

� Hay un método de percepción del entorno

� El agente puede realizar cambios sobre el entorno

Inteligencia de Enjambres (II)

Page 9: Ants Algorithms Tutorial CIIC2007 Part a (1)

Inteligencia de Enjambres (III)

Cualquier intento de desarrollar algoritmos y mecanismos de solución distribuida de un problema inspirados por el comportamiento colectivo de colonias de insectos sociales y otras sociedades de animales.

Bonabeau,Dorigo,Theraulaz, Swarm Intelligence, 1999

Page 10: Ants Algorithms Tutorial CIIC2007 Part a (1)

Algoritmo Basados en Colmenas de Abajes

� Algoritmos que imitan el comportamiento de las abejas en el proceso de búsqueda y recolección de Néctar. Básicamente realiza las siguientes funciones:� Distingue clases y categorías de individuos que conforman la colmena.

� Algunos agentes tienen la tarea de ubicar fuentes de alimento suficientemente provechosas e informar, en la colmena, a los otros individuos sobre la ubicación relativa de dicha fuente a través de “danzas”.

� Dependiendo de la duración de las danzas, indica la ubicación y provecho de la fuente.

Page 11: Ants Algorithms Tutorial CIIC2007 Part a (1)

Optimización de la función Peaks (I)

Page 12: Ants Algorithms Tutorial CIIC2007 Part a (1)

Optimización de la función Peaks (II)

Page 13: Ants Algorithms Tutorial CIIC2007 Part a (1)

Optimización por Enjambre de Partículas

� Desarrollada por J. Kennedy y R. Eberhart(1995)

� Basada en los movimientos de bandadas y cardúmenes

� Combina un modelo individual con un modelo social

( ) ( ) ( ) ( )idgdidididid xpRandcxprandctvwtv −⋅⋅+−⋅⋅+⋅=+

211

( ) ( ) ( )11 ++=+ tvtxtx idid

Page 14: Ants Algorithms Tutorial CIIC2007 Part a (1)

Optimización por Enjambre de Bacterias

( ) ( ) ( ) ( )tiCtt ii ψθθ ⋅+=+1

� Desarrollado por K. Passino(2000)

� Basado en el comportamiento Quimiotáctico de las bacterias

� Considera el espacio de búsqueda como un ambiente con concentraciones variables de nutrientes

Page 15: Ants Algorithms Tutorial CIIC2007 Part a (1)

Optimización por Enjambre de Bacterias

�Optimización de Funciones

-2

0

2

-2

0

2

-5

0

5

x

Peaks

y

Page 16: Ants Algorithms Tutorial CIIC2007 Part a (1)

Algoritmos Basados en Colonias de Hormigas

� Inicialmente desarrollados por M. Dorigo (1991)

� Basados en diferentes comportamientos observados en las colonias de hormigas:� Búsqueda de alimento� Organización de cadáveres� División de labores� Construcción de nidos

� Comunicación por estigmergia

Page 17: Ants Algorithms Tutorial CIIC2007 Part a (1)

� Estigmergia =Las acciones de un insecto son determinadas o influenciadas por las consecuencias de las acciones previas de los otros insectos.� Agrupación de los insectos muertos de la colonia� Construcción de nidos� Búsqueda de alimento

Estigmergia

Page 18: Ants Algorithms Tutorial CIIC2007 Part a (1)

Los algoritmos de hormigas están basados en comportamientos exhibidos por las hormigas reales:� Búsqueda de alimento � Optimización y enrutamiento� Agrupamiento y categorización� División de labores� Transporte cooperativo

Algoritmos de Hormigasde Hormigas

Page 19: Ants Algorithms Tutorial CIIC2007 Part a (1)

� Las hormigas son capaces de encontrar el camino más corto hasta donde está el alimento

� La clave esta en la ruta de feromonas que ellas dejan.

� La feromona en el camino mas corto se refuerza haciendo que más hormigas usen dicho camino.

� Luego de un tiempo las hormigas han definido una ruta a seguir

Cómo las Hormigas Buscan Alimento?

Page 20: Ants Algorithms Tutorial CIIC2007 Part a (1)

� El problema de los dos puentes

Cómo las Hormigas Buscan Alimento?

Page 21: Ants Algorithms Tutorial CIIC2007 Part a (1)

� Esto ayuda a descartar las fuentes de alimento menos adecuadas

Evaporación de Feromona

Page 22: Ants Algorithms Tutorial CIIC2007 Part a (1)

� La idea es usar una colonia de hormigas artificiales para resolver problemas de optimización.

Optimización Basada en Colonias de Hormigas (AntColony Optimization –ACO-)

Page 23: Ants Algorithms Tutorial CIIC2007 Part a (1)

� Las hormigas son depositadas randómicamenteen las diferentes ciudades.

� Cada hormiga busca una ruta usando una regla probabilística

� Cada hormiga va depositando feromona a medida que construye una ruta

� En los nuevos recorridos la regla probabilística que define las ciudades a visitar estáinfluenciada por la cantidad de feromona depositada

� Luego de un cierto número de iteraciones, una buena solución es encontrada

ACO para el Problema del Viajante

Page 24: Ants Algorithms Tutorial CIIC2007 Part a (1)

ACO para el Problema del Viajante

� Ejemplo básico

Page 25: Ants Algorithms Tutorial CIIC2007 Part a (1)

ACO para el Problema del Viajante

Page 26: Ants Algorithms Tutorial CIIC2007 Part a (1)

Otras Aplicaciones

� Tráfico en una red de comunicaciones

� Programación de trabajos

� Programación de rutas para vehículos

Page 27: Ants Algorithms Tutorial CIIC2007 Part a (1)

Otras Aplicaciones

� AntNet

Page 28: Ants Algorithms Tutorial CIIC2007 Part a (1)

Optimización de Funciones (I)

( ) ( ) ( ) 620sin30sin52.05.0 ++= − θθθ θθ

eeJ ( ) ( )2

2

221

2

1

4

1

2

12144

3

11.24, θθθθθθθθθ +−++

+−=J

CESIN SCB

Page 29: Ants Algorithms Tutorial CIIC2007 Part a (1)

Optimización de Funciones (II)

0 10 20 30 40 50 60 70 80 90 100-2

-1

0

1

2

Min

imum

and A

vera

ge C

ost

0 10 20 30 40 50 60 70 80 90 1000

0.5

1

1.5

Cost

Devia

tion

epochs

Costo Mínimo, Promedio y Desviación de la Población

Desplazamiento de los agentes sobre el espacio de

búsqueda

Page 30: Ants Algorithms Tutorial CIIC2007 Part a (1)

Optimización de Funciones (III)

� Comparación de diferentes técnicas

SCB

8.11E-03-1.0241-1.0316AACA

5.02E-04-1.0312-1.0316BSFO

1.48E-07-1.0316-1.0316PSO

σJavgJminAlgoritmo

CESIN

2.52E-021.33951.3286AACA

1.98E-011.43951.2693BSFO

6.68E-021.32431.2573PSO

σJavgJminAlgoritmo

Page 31: Ants Algorithms Tutorial CIIC2007 Part a (1)

Sintonización de un PID (I)

� Control de Temperatura en reactor de agitación continua

� Variable de entrada: Porcentaje de apertura de la válvula de vapor

� Disturbios: Flujo de sustancia y Temperatura de Sustancia

� Se considera la saturación de todas las variables y cuantificación en los niveles de apertura.

� Puntos de operación:� T = 65.5°C� Ti = 37.7 °C� F = 425 l/s

Page 32: Ants Algorithms Tutorial CIIC2007 Part a (1)

� Bajo las mismas condiciones de diseño, obtener un controlador con desempeño similar al obtenido con AG y CD.� Bajo esfuerzo de control� Buen rechazo a perturbaciones� Rápido establecimiento

Sintonización de un PID (II)

( ) ( ) ( ) ( ) ( )zEz

KzEzKzEKzU idp ⋅

−⋅+⋅−⋅+⋅= −

1

11

1

( ) ( )( ) ( ) ( )( )∑∑==

−−−

+−=N

k

N

k

kukuN

KkykrN

KJ1

2

2

0

2

11

1

11

Page 33: Ants Algorithms Tutorial CIIC2007 Part a (1)

Sintonización de un PID (III)

0 1000 2000 3000 4000 50000

50

100

Tiempo (min)

Tem

pera

tura

(°C

)0 1000 2000 3000 4000 5000

0

50

100

Tiempo (min)

Porc

enta

je d

e A

pert

ura

FUZZY PIDAG PIDPSO PIDBSFO PIDACO

MSE 2.23E+01 1.81E+01 1.74E+01 3.52E+01 1.63E+01

MTSE 8.46E+04 6.66E+04 6.80E+04 1.43E+05 6.00E+04

CAA 1.49E+02 1.49E+02 1.49E+02 1.49E+02 1.49E+02

CAS 2.45E+00 4.17E+00 3.73E+00 1.16E+00 5.32E+00

ACO

� Comparación de diferentes técnicas

Page 34: Ants Algorithms Tutorial CIIC2007 Part a (1)

Control Indirecto Adaptativo (I)

( )( )

( ) ( ) ( )( )111

1−−−

−= khkkr

kku α

β

� Control de Nivel en Tanque con sección variable

� Se usa un modelo estimado de la planta y un controlador por equivalencia

( ) ( )( ) ( )

( )tubtha

c

btha

tghd

dt

tdh

++

+

−=

2

Page 35: Ants Algorithms Tutorial CIIC2007 Part a (1)

Control Indirecto Adaptativo (II)

El sistema de identificación corresponde al algoritmo

de enjambres

0 10 20 30 40 50 60 70 80 90 1000

5

10

15

Liq

uid

heig

ht,

h

10 20 30 40 50 60 70 80 90 100-50

0

50

Time, k

Contr

ol A

ction,

u

Page 36: Ants Algorithms Tutorial CIIC2007 Part a (1)

Plataforma de Experimentación en un Sistema de TemperaturaMultizona

Page 37: Ants Algorithms Tutorial CIIC2007 Part a (1)

Cómo Controlar la Plataforma?

I1

I2

I16

Disturbios delAmbiente

S1

S2

S25

MODELO?CONTROL?

RESTRICCIONES?

Page 38: Ants Algorithms Tutorial CIIC2007 Part a (1)

Basada en Hormigas – Un Agente

Page 39: Ants Algorithms Tutorial CIIC2007 Part a (1)

Basada en Hormigas – Dos Agente

Page 40: Ants Algorithms Tutorial CIIC2007 Part a (1)

Basada en Hormigas – Cuatro Agentes

Page 41: Ants Algorithms Tutorial CIIC2007 Part a (1)

Algoritmo de Hormigas para Agrupamiento� Algunas especies de hormigas agrupan los cadáveres de las hormigas muertas

Page 42: Ants Algorithms Tutorial CIIC2007 Part a (1)

Aplicaciones

� Agrupamiento de objetos usando robots� Se recoge el objeto con una alta probabilidad si se perciben pocos objetos cerca

� Se deposita el objeto con alta probabilidad si se perciben muchos objetos cerca

Page 43: Ants Algorithms Tutorial CIIC2007 Part a (1)

División de Labores

� Unas de las claves del éxito de los insectos sociales es su especialización morfológica y funcional:� Las reinas son reproductoras

� Soldados y obreros estériles

� Obreros especializados en cuidad y alimentar las larvas

� Obreros especializados en buscar comida

� Soldados especializados en cuidar el nido

Page 44: Ants Algorithms Tutorial CIIC2007 Part a (1)

División de LaboresAsignación Adaptativa de Tareas ATAA

AL

GO

RIT

MO

AT

AA

Inicio

Aparece una tarea

a realizarse

Tarea X

Cubierta?

Agente

disponible?

NO

NO

Se decrementa la

demanda de XSI

FinSI

distancia = 0;

Distancia 0

X = X – 0;

X = X – ;

_X= X + ;NO

SI

NO

SI

Page 45: Ants Algorithms Tutorial CIIC2007 Part a (1)

Asignación Adaptativa de TareasEjemplo

Page 46: Ants Algorithms Tutorial CIIC2007 Part a (1)

Transporte Cooperativo

Emular el comportamiento de las hormigas para transportar cooperativamente objetos que están por encima de la capacidad de un individuo

Page 47: Ants Algorithms Tutorial CIIC2007 Part a (1)

Aplicaciones

�Transporte cooperativo en robótica

Page 48: Ants Algorithms Tutorial CIIC2007 Part a (1)

Algunos Enlaces

Ant Colony Optimization

http://www.aco-metaheuristic.org/

The Swarm-Intelligent Systems (SWIS)

http://swis.epfl.ch/

Swarm Intelligence resources

http://staff.washington.edu/paymana/swarm/

Ants Viewer 1.0

http://www.rennard.org/alife/english/antsgb.html

TSPLIB is a library of sample instances for the TSP

http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/

Generic simulated flocking creatures boids.

http://www.red3d.com/cwr/boids/

Design and implementation of self-organizing and self-assembling

artifacts.

http://www.swarm-bots.org/