Вы находитесь на странице: 1из 35

Ant Colony Optimization

A new Meta-Heuristic

Marco Dorigo
Gianni Di Caro

Grupo 8 Berger y Casarini


Agenda
Introduccin
Autores
Inspiracin
Modelado
Problemas
Rastro de Feromona (memoria colectiva)
Hormigas
Pseudocdigo
ACO
Actividad de las Hormigas
Aplicaciones
TSP
Trfico en Redes
QAP
Conclusin
Introduccin
Autores y sus trabajos
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 aplicacin 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 heursticas.
Introduccin
Idea

ACO se inspira
en observaciones de las hormigas.
La colonia tiene un grado de organizacin alto,
comparado con la simplicidad del individuo.
Coordinacin indirecta por medio de los rastros de
feromona.
Exploracin paralela del ambiente.
Introduccin
Formalizacin
Se puede resumir los algoritmos ACO, como un
conjunto de agentes concurrentes y
asincrnicos (colonia de hormigas) que se
mueven a travs de un espacio de estados
correspondientes a soluciones parciales del
problema a resolver.
Se mueven aplicando polticas de decisin
locales estocstcias basadas en dos parmetros:
un valor heurstico que depende del modelado
del problema.
un valor que incorpora el conocimiento global
Modelado del Problema
C = {c ,c ,.....,c } conjunto finito de componentes.
1 2 n

L = {l /(c ,c )C}, conexiones o transiciones.


c1c2 1 2
C es un subconjunto del producto cartesiano CxC.
|L| Nc2
Jci,cj J(lcicj,t), funcin 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,).
Modelado del Problema
N s es la estructura de vecindad: si s1 y s2 son dos
estados, s2 es vecino de s1 si ambos estn en S y s2
puede obtenerse a partir de s1 en un nico paso
lgico. Si c1 es el ltimo componente de s1, debe existir
un componente c2 C, tal que lc1c2 L y s2 = (s1,c2)
es una solucin, si es un elemento de S y satisface
todos los requerimientos del problema.
J(L,t) define el costo asociado a cada solucin. Es
una funcin de los costos Jcicj de todas las conexiones
pertenecientes a la solucin.
Feromona
Feromona como memoria de largo plazo
Codificacin de la informacin recolectada: por las
hormigas, durante el proceso de bsqueda, almacenada
como rastros de feromona asociados a los arcos.
Lectura: Ante cada decisin una hormiga utiliza:
informacin 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
Feromona como base de la interaccin
Propicia la interaccin indirecta entre la colonia:
A cada hormiga se le hace difcil llegar a la solucin
ptima. Encontrar buenas soluciones depende de la
interaccin entre la colonia por medio de la informacin
que ellas leen y escriben en los arcos por lo que pasan,
mediante los rastros de feromona.
Percepcin de la colonia: Las hormigas modifican la
forma en que el problema es representado y percibido
por las dems hormigas, pero no se adaptan ellas
mismas.
Memoria a largo plazo.
Modelado de las Hormigas
Propiedades
Objetivo: buscar en forma constructiva, una solucin
factible de costo mnimo.
Movimientos: desde un estado sr=(sr-1,i), puede
moverse a cualquier nodo j de su vecindad factible,
definida como N ik = { j/jNi (sr,j) S }
Memoria Mk: usada para almacenar el camino
recorrido. Se usa para la construccin y evaluacin de
las soluciones y para volver atrs.
Condiciones de comienzo y fin: A cada
hormiga k se le puede asignar un estado de comienzo y
una o ms condiciones de fin (e k).
Modelado de las Hormigas
Ciclo 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 decisin probabilstica.
Final: El proceso de construccin 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.
Modelado de las Hormigas
Regla de decisin probabilstica de movimiento

La regla de decisin probabilstica de las hormigas es


una funcin de:
Un valor almacenado en tabla de ruteo, obtenido a
partir del valor de feromona del arco considerado y
un valor heurstico. i=[aij], aij=f (ij, ij)
La memoria privada de las hormigas, que almacena
su pasado.
Restricciones del problema.
Modelado de las Hormigas
Actualizacin de la Feromona
Actualizacin 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).

Actualizacin on-line retardada:


Una vez construida una solucin, rehacen el camino en
sentido inverso, actualizando el valor de la feromona de
cada arco recorrido.
Intensificacin vs.
Diversificacin.
Intensificacin: A travs de las reglas de
actualizacin de la feromona que van reforzando
las buenas soluciones.
Diversificacin: implementado a travs de:
mecanismo probabilstico de construccin de
las soluciones.
Evaporacin de la feromona.

Migracin: Comienza con alta D y baja I. A


medida que evoluciona, la bsqueda se
intensifica hacia los caminos con mayores ndices
de feromona.
Pseudocdigo

meta-heuristic()
procedure ACO meta-heuristic()
(termination_criterion_not_satisfied)
while (termination_criterion_not_satisfied)
schedule_activities
ants_generation_and_activity();
ants_generation_and_activity();
pheromone_evaporation();
pheromone_evaporation();
daemon_actions();
daemon_actions(); [opcional]
[opcional]
end schedule_activities
schedule_activities
end while
end procedure
Ants Generation And Activity

Procedure Ants_Generation_And_Activity()
While (AvailableResources)
schedule_creation_of_new_ant();
new_active_ant();
End While
End Procedure
new active ant()
procedure new active ant()
initialize ant(); while (current state target state)
M = update ant memory(); A = read local ant-routing table();
Desplazarse P = compute transition probabilities(A; M; );
next state = apply ant decision policy(P; );
Dejar Aprendizaje a la Colonia
move to next state(next state);
die(); if (online step-by-step pheromone update)
end procedure deposit pheromone on the visited arc();
update ant-routing table();
if (online delayed pheromone
end if update)
M =update
foreach visited_arc do internal state();
end while on the visited arc();
deposit pheromone
update ant-routing table();
end foreach
end if
Aplicaciones
TSP (problema del vendedor viajero)
Ruteo en redes de comunicacin
QAP
VRP y VRPTW
Ordenamiento Secuencial
Job-shop scheduling
Mayor Super-Secuencia Comn
Asignamiento Generalizado
Aplicaciones ACO-TSP
Nociones Generales
Descripcin y Objetivo: Dada una ciudad inicial
y n ciudades a visitar, encontrar un circuito
Hamiltoniano de costo mnimo, sujeto a ciertas
restricciones.
Motivacin: Fue el primer problema en ser
atacado por medio de ACO porque es:
Relativamente fcil de adaptar la metfora de la colonia
de hormigas al problema
Un problema de difcil solucin (NP-Hard)
Uno de los problemas de optimizacin combinatoria ms
estudiados
Conocido y fcil de exponer y explicar
Aplicaciones ACO-TSP
Modelado

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
Actualizacin de la feromona: Solo retardada
La evaporacin de feromona se hace luego de
que todas las hormigas terminan su tour
Aplicaciones ACO-TSP
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
vecindad factible
factible deldel
nodo
nodo
actual.
actual
Leer las entradas
entradas aa de
ij ij delala
tabla
tablade de
ruteo.
ruteo
Calcular las probabilidades
probabilidades dede transicin pijk(t).
transicin pijk(t)
Aplicar la regla de decisin para elegir una ciudad a la que
desplazarse.
Realizar el desplazamiento. Actualizar la memoria local.
Una vez terminado el tour, actualiza
actualizalalaferomona
del recorrido
feromona y termina
del su yejecucin.
recorrido termina su ejecucin.
Aplicaciones ACO-TSP
Toma de decisiones e interaccin entre la colonia...
leer los aij de Ai

=1
=5

probabilidades de transicin = 0.5

actualizar rastros de feromona

evaporacin de feromona
Aplicaciones AntNet
Notas Generales
Aplicacin posterior a TSP.
Utilizado para encontrar el optimo en la
transferencia de DATOS en redes.
Distribuido y no sincronizado.
Rutear es difcil porque los costos son
dinmicos.
Motivacin: encontrar Ri = [rijd ] para cada
nodo.
Aplicaciones AntNet
Modelado
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 fsicas del canal y el
trafico por el mismo.
Aplicaciones AntNet
Modelado
Cada Hormiga busca un camino ente 2
nodos con costo mnimo.
Hormiga(origen,destino)
Cada Hormiga parte de un nodo distinto,
desplazndose de uno a otro, hacia su
destino.
En cada paso debe optar ente los arcos
factibles, esta decisin esta basada en la
Mk y en la tabla de ruteo de cada nodo.
Aplicaciones AntNet
Feromonas

En esta aplicacin la feromona de


un arco esta en relacin con la
calidad del camino desde el nodo
actual al destino.
El valor ijd [0,1] con i actual, j
prximo, d destino.
A diferencia de TSP se genera
una estructura bidimensional
para el ruteo del nodo y las
feromonas
Aplicaciones AntNet
Valores heursticos

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
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
Decisin de la Hormiga

La Hormiga decide entre los adyacentes,


no visitados (que no estn 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
Actualizaciones

Las Hormigas se mueven como se


moveran 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 atrs, depositando
feromonas.
Aplicaciones AntNet
Actualizacin
Tsd es una medida del tiempo que insume la ruta de i a d va
j. Mide lo buena que es una ruta.
El incremento de feromona es proporcional al inverso
de Tsd.
Se coloca la feromona al final, porque hay que tener el valor
de Tsd

Se lleva cabo la evaporacin, por un factor de normalizacin,

No hay Daemon para modificar las feromonas depositadas


en los arcos.
Aplicaciones AntNet
Tabla de Ruteo resultado

Durante la ejecucin 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.
Conclusiones
AntSystems se aplica bien para problemas
Optimizacin Combinatoria, donde la
dimensn del espacio completo de
soluciones es exponencial con respecto a la
dimensin de la representacin del
problema. Problemas NP-Hard

Nocin de secuencia o distancia.

Problemas que cambian en t


Conclusiones
Fcil de paralelizar, propio del mecanismo
Esta metaheurstica se ha comprobado, segn
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


Preguntas

Вам также может понравиться