Imitación a las Hormigas

35
Grupo 8 – Berger y Casarini Ant Colony Optimization A new Meta- Heuristic Marco Dorigo Gianni Di Caro

description

Son las diferentes teorías de imitación de las hormigas

Transcript of Imitación a las Hormigas

Page 1: Imitación a las Hormigas

Grupo 8 – Berger y Casarini

Ant Colony Optimization

A new Meta-Heuristic

Marco DorigoGianni Di Caro

Page 2: Imitación a las Hormigas

Agenda Introducción

Autores Inspiración

Modelado Problemas Rastro de Feromona (memoria colectiva) Hormigas

Pseudocódigo ACO Actividad de las Hormigas

Aplicaciones TSP Tráfico en Redes QAP

Conclusión

Page 3: Imitación a las Hormigas

Introducción

Université Libre de Bruxelles Marco Dorigo Gianni Di Caro

En 1991, primer sistema AS, para resolver TSP. Lo último anterior a este trabajo es una aplicación al ruteo

en redes de Di Caro y Dorigo, 1998. Para muchos de los problemas tratados, Ant Systems

proporciona resultados comparables con los mejores obtenidos con otras heurísticas.

Autores y sus trabajos

Page 4: Imitación a las Hormigas

Introducción

ACO se inspiraen observaciones de las hormigas.

La colonia tiene un grado de organización alto, comparado con la simplicidad del individuo.

Coordinación indirecta por medio de los rastros de feromona.

Exploración paralela del ambiente.

Idea

Page 5: Imitación a las Hormigas

Se puede resumir los algoritmos ACO, como un conjunto de agentes concurrentes y asincrónicos (colonia de hormigas) que se mueven a través de un espacio de estados correspondientes a soluciones parciales del problema a resolver.

Se mueven aplicando políticas de decisión locales estocástcias basadas en dos parámetros: un valor heurístico que depende del modelado

del problema. un valor que incorpora el conocimiento global

IntroducciónFormalización

Page 6: Imitación a las Hormigas

Modelado del Problema C = {c1,c2,.....,cn} conjunto finito de componentes.

L = {lc1c2/(c1,c2)C}, conexiones o transiciones. C es un subconjunto del producto cartesiano CxC.|L| Nc

2

Jci,cj J(lcicj,t), función que asocia costos a las aristas.

(C,L,t) conjunto finito de restricciones asignadas a elementos de C y L.

s = (ci,cj,…,ck,…) estado del problema.

S = estados posibles.S = estados factibles f(S,).

Page 7: Imitación a las Hormigas

Ns es la estructura de vecindad: si s1 y s2 son dos estados, s2 es vecino de s1 si ambos están en S y s2 puede obtenerse a partir de s1 en un único paso lógico. Si c1 es el último componente de s1, debe existir un componente c2 C, tal que lc1c2 L y s2 = (s1,c2)

es una solución, si es un elemento de S y satisface todos los requerimientos del problema.

J(L,t) define el costo asociado a cada solución. Es una función de los costos Jcicj de todas las conexiones pertenecientes a la solución.

Modelado del Problema

Page 8: Imitación a las Hormigas

Feromona

Codificación de la información recolectada: por las hormigas, durante el proceso de búsqueda, almacenada como rastros de feromona asociados a los arcos.

Lectura: Ante cada decisión una hormiga utiliza:• información propia• del nodo en que se encuentra• de los arcos adyacentes (feromona).

Escritura: Para cada arco transitado por una hormiga, ésta deja el rastro de feromona.

Feromona como memoria de largo plazo

Page 9: Imitación a las Hormigas

Feromona

Propicia la interacción indirecta entre la colonia: A cada hormiga se le hace difícil llegar a la solución óptima. Encontrar buenas soluciones depende de la interacción entre la colonia por medio de la información que ellas leen y escriben en los arcos por lo que pasan, mediante los rastros de feromona.

Percepción de la colonia: Las hormigas modifican la forma en que el problema es representado y percibido por las demás hormigas, pero no se adaptan ellas mismas.

Memoria a largo plazo.

Feromona como base de la interacción

Page 10: Imitación a las Hormigas

Modelado de las HormigasPropiedades

Objetivo: buscar en forma constructiva, una solución factible de costo mínimo.

Movimientos: desde un estado sr=(sr-1,i), puede moverse a cualquier nodo j de su vecindad factible, definida como N i

k = { j/jNi (sr,j) S } Memoria Mk: usada para almacenar el camino

recorrido. Se usa para la construcción y evaluación de las soluciones y para volver atrás.

Condiciones de comienzo y fin: A cada hormiga k se le puede asignar un estado de comienzo y una o más condiciones de fin (e k).

Page 11: Imitación a las Hormigas

Modelado de las HormigasCiclo de Vida

Comienzo: Cada una desde un estado inicial(puede o no ser el mismo para todas)

Desplazamiento: A estados en la vecindad factible, de acuerdo a una regla de decisión probabilística.

Final: El proceso de construcción termina cuando la hormiga cumple al menos una de las condiciones de fin.

Muerte: Luego de cumplidas estas actividades, codifica su aporte a la colonia y muere, liberando todos los recursos.

Page 12: Imitación a las Hormigas

La regla de decisión probabilística de las hormigas es una función de: Un valor almacenado en tabla de ruteo,

obtenido a partir del valor de feromona del arco considerado y un valor heurístico. i=[aij], aij=f (ij, ij)

La memoria privada de las hormigas, que almacena su pasado.

Restricciones del problema.

Modelado de las HormigasRegla de decisión probabilística de movimiento

Page 13: Imitación a las Hormigas

Actualización de la Feromona

Actualización on-line paso a paso: Cada hormiga al moverse de un nodo i, a un nodo j, actualiza el valor de la feromona ij del arco (i,j).

Actualización on-line retardada:Una vez construida una solución, rehacen el camino en sentido inverso, actualizando el valor de la feromona de cada arco recorrido.

Modelado de las Hormigas

Page 14: Imitación a las Hormigas

Intensificación vs. Diversificación. Intensificación: A través de las reglas de

actualización de la feromona que van reforzando las buenas soluciones.

Diversificación: implementado a través de: mecanismo probabilístico de construcción de

las soluciones. Evaporación de la feromona.

Migración: Comienza con alta D y baja I. A medida que evoluciona, la búsqueda se intensifica hacia los caminos con mayores índices de feromona.

Page 15: Imitación a las Hormigas

Pseudocódigo

procedure ACO meta-heuristic()while (termination_criterion_not_satisfied)

schedule_activities

ants_generation_and_activity();pheromone_evaporation();daemon_actions(); [opcional]

end schedule_activitiesend while

end procedure

procedure ACO meta-heuristic()while (termination_criterion_not_satisfied)

schedule_activities

ants_generation_and_activity();pheromone_evaporation();daemon_actions();

[opcional]end schedule_activities

end whileend procedure

procedure ACO meta-heuristic()while (termination_criterion_not_satisfied)

schedule_activities

ants_generation_and_activity();pheromone_evaporation();daemon_actions();

[opcional]end schedule_activities

end whileend procedure

procedure ACO meta-heuristic()while (termination_criterion_not_satisfied)

schedule_activities

ants_generation_and_activity();pheromone_evaporation();daemon_actions();

[opcional]end schedule_activities

end whileend procedure

procedure ACO meta-heuristic()while (termination_criterion_not_satisfied)

schedule_activities

ants_generation_and_activity();pheromone_evaporation();daemon_actions();

[opcional]end schedule_activities

end whileend procedure

Page 16: Imitación a las Hormigas

Ants Generation And Activity

Procedure Ants_Generation_And_Activity()While (AvailableResources)

schedule_creation_of_new_ant();new_active_ant();

End WhileEnd Procedure

Procedure Ants_Generation_And_Activity()While (AvailableResources)

schedule_creation_of_new_ant();new_active_ant();

End WhileEnd Procedure

Page 17: Imitación a las Hormigas

new active ant()

while (current state target state)A = read local ant-routing table();P = compute transition probabilities(A; M; );next state = apply ant decision policy(P; );move to next state(next state);if (online step-by-step pheromone update)

deposit pheromone on the visited arc();

update ant-routing table();end ifM = update internal state();

end while

if (online delayed pheromone update) foreach visited_arc do deposit pheromone on the visited arc(); update ant-routing table(); end foreachend if

procedure new active ant() initialize ant(); M = update ant memory(); Desplazarse Dejar Aprendizaje a la Colonia die();end procedure

Page 18: Imitación a las Hormigas

Aplicaciones

TSP (problema del vendedor viajero) Ruteo en redes de comunicación QAP VRP y VRPTW Ordenamiento Secuencial Job-shop scheduling Mayor Super-Secuencia Común Asignamiento Generalizado

Page 19: Imitación a las Hormigas

Aplicaciones – ACO-TSP

Descripción y Objetivo: Dada una ciudad inicial y n ciudades a visitar, encontrar un circuito Hamiltoniano de costo mínimo, sujeto a ciertas restricciones.

Motivación: Fue el primer problema en ser atacado por medio de ACO porque es: Relativamente fácil de adaptar la metáfora de la colonia

de hormigas al problema Un problema de difícil solución (NP-Hard) Uno de los problemas de optimización combinatoria más

estudiados Conocido y fácil de exponer y explicar

Nociones Generales

Page 20: Imitación a las Hormigas

Aplicaciones – ACO-TSPModelado

C = Conjunto de ciudades L = Conjunto de conexiones entre ciudades Jcicj = Distancias entre ci y cj, ci,cj C La ciudad inicial para cada hormiga es elegida

aleatoreamente Actualización de la feromona: Solo retardada La evaporación de feromona se hace luego de

que todas las hormigas terminan su tour

Page 21: Imitación a las Hormigas

Aplicaciones – ACO-TSP

Se posicionan en paralelo m hormigas en m ciudades, elegidas aleatoreamente.

Se inicializa la memoria Mk con esa ciudad. Comienza un ciclo hasta que cada hormiga

complete un tour: Buscar la vecindad factible del nodo actual. Leer las entradas aij de la tabla de ruteo. Calcular las probabilidades de transición pij

k(t). Aplicar la regla de decisión para elegir una ciudad a la que

desplazarse. Realizar el desplazamiento. Actualizar la memoria local.

Una vez terminado el tour, actualiza la feromona del recorrido y termina su ejecución.

Comportamiento de las hormigas Se posicionan en paralelo m hormigas en m

ciudades, elegidas aleatoreamente. Se inicializa la memoria Mk con esa ciudad. Comienza un ciclo hasta que cada hormiga

complete un tour: Buscar la vecindad factible del nodo actual Leer las entradas aij de la tabla de ruteo Calcular las probabilidades de transición pij

k(t) Aplicar la regla de decisión para elegir una ciudad a la que

desplazarse. Realizar el desplazamiento. Actualizar la memoria local.

Una vez terminado el tour, actualiza la feromona del recorrido y termina su ejecución.

Page 22: Imitación a las Hormigas

Aplicaciones – ACO-TSPToma de decisiones e interacción entre la colonia...

leer los aij de Ai

probabilidades de transición

actualizar rastros de feromona

evaporación de feromona

= 1

= 5

= 0.5

Page 23: Imitación a las Hormigas

Aplicación posterior a TSP. Utilizado para encontrar el optimo en la

transferencia de DATOS en redes. Distribuido y no sincronizado. Rutear es difícil porque los costos son

dinámicos. Motivación: encontrar Ri = [rijd ] para cada

nodo.

Aplicaciones – AntNet

Notas Generales

Page 24: Imitación a las Hormigas

Aplicaciones – AntNet

Se modela cada nodo de la red como un nodo de un grafo G(C,L).

C = Nodos de la red. L = “links” entre nodos, su valores

estan relacionados con las propiedades físicas del canal y el trafico por el mismo.

Modelado

Page 25: Imitación a las Hormigas

Cada Hormiga busca un “camino” ente 2 nodos con costo mínimo. Hormiga(origen,destino)

Cada Hormiga parte de un nodo distinto, desplazándose de uno a otro, hacia su destino.

En cada paso debe optar ente los arcos factibles, esta decisión esta basada en la Mk y en la tabla de ruteo de cada nodo.

Aplicaciones – AntNetModelado

Page 26: Imitación a las Hormigas

Feromonas

En esta aplicación la feromona de un arco esta en relación con la calidad del camino desde el nodo actual al destino.

El valor ijd [0,1] con i actual, j próximo, d destino.

A diferencia de TSP se genera una estructura bidimensional para el ruteo del nodo y las feromonas

Aplicaciones – AntNet

Page 27: Imitación a las Hormigas

Valores heurísticos

Para cada arco se coloca valor inicial, nij [0,1], independiente del destino.

q en este problema representa el largo de la cola de bits para enviar por el link.

El efecto es desestimar los caminos mas congestionados.

Aplicaciones – AntNet

Page 28: Imitación a las Hormigas

Ruteo del nodo

Cada nodo tiene su tabla de ruteo y depende de nij y ijd

Con un factor w [0,1] se da mas peso a uno u otro.

Aplicaciones – AntNet

Page 29: Imitación a las Hormigas

Decisión de la Hormiga

La Hormiga decide entre los adyacentes, no visitados (que no están en Mk).

Los adyacentes factibles tienen pijd(t)

pijd(t) = aijd(t) ,valor de tabla de ruteo(no visitados).

pijd(t) = 0, adyacentes ya visitados.

pijd(t) = 1/|Ni|, si no hay caminos posibles (fueron ya todos visitados).

Aplicaciones – AntNet

Page 30: Imitación a las Hormigas

Actualizaciones

Las Hormigas se mueven como se moverían los datos en la red.

Igual que los bits reales tienen retraso para su viaje hacia el destino.

Una vez que la Hormiga llega a destino, regresa hacia atrás, depositando feromonas.

Aplicaciones – AntNet

Page 31: Imitación a las Hormigas

Actualización

Tsd es una medida del tiempo que insume la ruta de i a d vía j. Mide lo “buena que es una ruta”.

El incremento de feromona es proporcional al inversode Tsd.

Se coloca la feromona al final, porque hay que tener el valor de Tsd

Se lleva cabo la evaporación, por un factor de normalización,

No hay “Daemon” para modificar las feromonas depositadas en los arcos.

Aplicaciones – AntNet

Page 32: Imitación a las Hormigas

Tabla de Ruteo resultado

Durante la ejecución de AntNet, las Hormigas van modificando las tablas de ruteo de cada nodo para optimizar la transferencia de datos por la red.

Estas tablas son usadas al rutear los datos a ser transmitidos por la red.

Aplicaciones – AntNet

Page 33: Imitación a las Hormigas

Conclusiones AntSystems se aplica bien para problemas

Optimización Combinatoria, donde la dimensíón del espacio completo de soluciones es exponencial con respecto a la dimensión de la representación del problema. Problemas NP-Hard

Noción de secuencia o distancia.

Problemas que cambian en t

Page 34: Imitación a las Hormigas

Conclusiones

Fácil de paralelizar, propio del mecanismo Esta metaheurística se ha comprobado, según

Gambardella, como altamente competitiva en: MACS-VRPTW: Vehicle Routing Problem with

Time Windows HAS-QAP: Quadratic Assignment Problem HAS-SOP: Sequential Ordering Problem Flexible Job Shop Problem

Page 35: Imitación a las Hormigas

Preguntas

¿?