Está en la página 1de 7

Algoritmos basados en hormigas

Inteligencia Articial Avanzada 1er. Semestre 2008

Aspectos Generales

La metfora de los insectos sociales para resolver problemas ha sido un tema a importante a partir de 1996. Estos mtodos hacen nfasis en distribucin, intere e o acciones directas o indirectas entre agentes relativamente simples, exibilidad y robustez. La cantidad de aplicaciones con xito ha crecido exponencialmente e en optimizacin combinatoria, redes de comunicaciones y robtica. o o

Ant Colony Optimization: Problema del Vendedor Viajero

Supuesto (Deneubourg): Las hormigas Linepithema humile usan la auto-organizacin o para ubicar la comida.

2.1

Problema del Vendedor Viajero:

Es fcil de adaptar la nocin del camino ms corto a hormigas a o a Es un problema NP-duro Ha sido ampliamente estudiado y es considerado un problema benchmark clsico. a Es didctico a Autores: Dorigo, Colorni, Maniezzo, 1992.

2.2

Ideas Bsicas en los algoritmos basados en hormigas: a

Uso de un mecanismo de feedback positivo: reforzamiento de buenos caminos o soluciones Una feromona virtual que permite mantener en memoria las mejores opciones

El riesgo de ptimo local o stagnation se controla por un mecanismo de o feedback negativo denominado evaporacin de la feromona que se maneja o en unidades de tiempo. Este tiempo no debe ser muy grande porque producir la ca en un ptimo local, ni tan reducida que anule el coma da o portamiento cooperativo del algoritmo. Comportamiento cooperativo: las hormigas realizan exploracin simultnea o a de soluciones diferentes realizado por un conjunto de hormigas iguales. Las hormigas que realizan bien su trabajo inuyen el comportamiento de futuras hormigas. Ya que las hormigas exploran varias quasi-soluciones, la feromona resultante es la consecuencia de diferentes perspectivas del espacio de soluciones o de b squeda. A n cuando slo se permite a la mejor u u o hormiga reforzar la solucin, existe un efecto cooperativo en el tiempo, o porque las hormigas de la siguiente iteracin usan la feromona para guiar o su exploracin. o

2.3

Ant System (AS)

En el vendedor viajero el objetivo es encontrar el tour ms corto para cubrir n a ciudades. Cada ciudad debe ser visitada una sola vez. En el espacio euclideano la distancia dij entre la ciudad i y la ciudad j se expresa como: dij = [(xi xj ) + (yi yj ) ] 2
2 2
1

(1)

El grafo G = (N, E) no requiere estar completamente conectado, ni tampoco ser simtrico. e Sea bi (t), (i = 1, .., n) el n mero de hormigas en la ciudad i en el instante t. u Sea m = n el n mero total de hormigas. Sea ij (t + z) la intensidad de la u i=1 feromona de la coneccin (ij) en el instante t + z con: o ij (t + z) = (1 )ij (t) + ij (t + z) (2)

donde 0 < 1 es un coeciente que representa la evaporacin. La cantidad o de feromona dejada en el arco (ij) por la k-sima hormiga en el instante t + z e est dada por: a
k ij (t + z) = Q Lk

si la k-sima hormiga usa el arco (ij) e e.o.c

(3)

donde Q es una constante y Lk es el largo del tour encontrado por la k-sima e hormiga. La intensidad inicial de cada arco ij (0) es casi cero. La regla de transicin, o la probabilidad que la hormiga k en la ciudad i o vaya a la ciudad j es: [ij (t)] [ij ] si j permitidok (t) k [ih (t)] [ih ] (4) Pij (t) = hpermitidok (t) 0 e.o.c. 2

donde permitidok (t) es el conjunto de ciudades no visitadas por la hormiga k hasta el instante t y ij representa una heuristica local. Para el vendedor viajero, la heuristica ms com nmente utilizada es ij = d1 , denominada la a u ij visibilidad. Los parmetros y entregan la importancia relativa entre la fera omona y la visibilidad. Adems, cada hormiga tiene asociada una lista tab , la a u cual incluye todas las ciudades ya visitadas por la hormiga. El algoritmo AS se muestra en la gura 1. Procedure Ant System Inicializar Para t=1 hasta el n mero de ciclos haga u Inicio Para k = 1 hasta m haga Inicio repetir k seleccionar la siguiente ciudad a visitar con probabilidad Pij hasta hormiga k complete su tour calcular largo Lk del tour d la hormiga k n para Salvar la mejor solucin encontrada hasta el momento o Modique los niveles ij de feromona Fin Figure 1: Algoritmo AS

2.4

Mejoras para Ant System (AS) aplicado a TSP

Marco Dorigo en un esfuerzo por mejorar la performance de AS aplicado a TSP incorpor el concepto de hormiga elitista. El trmino elitista fue elegido por o e su similitud con el concepto de elitismo manejado en algoritmos genticos. Una e hormiga elitista es aquella que refuerza los arcos que pertenecen al mejor tour Q T + encontrado en la iteracin. El refuerzo corresponde a una cantidad L+ , con o + + L igual al largo del tour T . La idea es producir un incremento del refuerzo ya realizado por las hormigas normales, incluyendo un conjunto de hormigas e, que incrementarn a n ms la cantidad de feromona en los arcos pertenecientes a u a al mejor tour. El algoritmo se muestra en la gura 2. Observacin 2.1 o ij (t) =
k=1 k ij (t) = Q Lk

m k ij (t)

(5)

si (i, j) T k (t) e.o.c.

(6)

e ij (t) =

Q L+

si (i, j) T + e.o.c.

(7)

donde Q es una constante y Lk es el largo del tour encontrado por la k-sima e hormiga. La intensidad inicial de cada arco 0 es casi cero. La regla de transicin, o la probabilidad que la hormiga k en la ciudad i vaya o a la ciudad j es:
k Pij (t) =

[ij (t)] [ij ]


k hJi

[ih (t)] [ih ]

(8)

donde Jik es el conjunto de ciudades permitidas, es decir, no visitadas por la hormiga k hasta el instante t y ij representa una heurstica local. 2.4.1 Valores de los parmetros usados en experimentos a

= 1, = 5, = 0.5, m = n, Q = 100, 0 = 106 , e = 5 Procedure AS-TSP Inicializar Para cada arco (i, j) haga ij (0) = 0 n para Para k=1 hasta m haga Ubique la hormiga k en una ciudad elegida aleatoriamente n para Sea T + et tour ms corto encontrado desde el inicio, y L+ su largo a Para t=1 hasta el n mero de ciclos haga u Inicio Para k = 1 hasta m haga Inicio repetir k seleccionar la siguiente ciudad a visitar con probabilidad Pij hasta hormiga k complete su tour calcular largo Lk del tour de la hormiga k n para Salvar la mejor solucin T + , L+ , encontrada hasta el momento o Para cada arco (i, j) haga Modique los niveles ij de feromona aplicando la siguiente regla:
e ij (t) = (1 )ij (t) + ij (t) + e ij (t)

(9)

n para Fin Figure 2: Algoritmo AS-TSP

2.5
2.5.1

ACS : Ant Colony System


Explicacin ACS o

El algoritmo se muestra en la gura 3. ACS tiene 4 modicaciones con respecto a AS: Nueva regla de transicin, o Nueva regla de modicacin de los trazados de feromona o Uso de cambios locales de trazados de feromona para favorecer la exploracin o Uso de una lista candidata para restringir la eleccin de la prxima ciudad o o a visitar. Regla de Transicin: Se modica para permitir expl o citamente la exploracin. o Cuando q > q0 la regla de transicin es la misma que en AS. Sin embargo, o cuando q q0 corresponde a la explotacin del conocimiento disponible del o problema, es decir, la distancia entre las ciudades y la memoria guardada en los trazos de feromona. Con q > q0 se favorece ms la exploracin. a o Cuando q0 se aproxima al valor 1 se seleccionan slo soluciones ptimas o o locales, sin embargo el ptimo local puede no corresponder al ptimo o o global. Cuando q0 est cercano a 0 se examinan todas las soluciones a locales, aunque tengan mayor peso aquellas ptimas locales (esto diere o de simulated annealing donde todos los estados tienen el mismo peso para ser elegidos a una alta temperatura). Regla de modicacin de los trazados de feromona: En AS todas las hormio gas pueden depositar feromona al completar sus tours. En ACS slo la o hormiga que encontr el mejor tour en la iteracin puede modicar globo o almente las concentraciones de feromona en los arcos. As en la prxima o iteracin, las hormigas son motivadas a buscar trayectorias en la vecindad o del mejor tour encontrado antes. Otra diferencia es que en AS la modicacin del trazado de feromona es sobre todos los arcos, en ACS es slo o o sobre aquellos que pertenecen al mejor tour encontrado en la iteracin. o Modicacin local del trazado de feromona: Cuando la hormiga k est cono a struyendo su tour, se encuentra en la ciudad i y selecciona la ciudad j para continuar, la concentracin de feromona del arco (i, j) cambia. Cuando o una hormiga visita un arco, la aplicacin de la modicacin local hace o o que el nivel de feromona en el arco disminuya. El objetivo es hacer cada vez menos atractivos los arcos visitados por ms hormigas, con lo cual se a est favoreciendo indirectamente la exploracin de los arcos a n no visia o u tados. Una consecuencia de esta estrategia es que las hormigas tienden a no converger a una misma trayectoria o tour.

Uso de la lista candidata: ACS explota una lista de candidatas. Una lista de candidatas es una lista de ciudades preferidas a ser visitadas a partir desde una ciudad dada. En lugar de examinar todas las posibilidades desde la ciudad i, se examinan primero aquellas no visitadas que estn a en la lista de candidatas y luego las restantes, siempre que no existan ciudades candidatas. La lista de candidatas de una ciudad contiene las cl ciudades ms cercanas. Las ciudades estn ordenadas de menor a mayor a a distancia y la b squeda en la lista es secuencial. u

Propiedades importantes a explorar


No-convergencia Control de Parmetros a Optimizacin de Problemas Dinmicos : Routing networks.. o a Algoritmos h bridos

Procedure ACS-TSP inicializar Para cada arco (i, j) haga ij (0) = 0 n para Para k=1 hasta m haga Ubique la hormiga k en una ciudad elegida aleatoriamente n para Sea T + et tour ms corto encontrado desde el inicio, y L+ su largo a Para t=1 hasta el n mero de ciclos haga u Inicio Para k = 1 hasta m haga Inicio repetir Si existe al menos una ciudad j lista de candidatas entonces Elegir la siguiente ciudad j, j Jik , entre las cl ciudades en la lista de candidatas con: argmaxuJi [iu (t)] [iu ] k J

j=

si q q0 si q > q0

(10)

donde J Jik se elige seg n la probabilidad: u [ij (t)] [ij ]

k hJi

k Pij (t) =

[ih (t)] [ih ]

(11)

y donde i es la ciudad actual Sino elegir la ciudad j Jik ms cercana a n si Luego de cada transicin la hormiga k modica localmente: o ij (t) = (1 )ij (t) + 0 (12)

hasta hormiga k complete su tour calcular largo Lk del tour de la hormiga k n para Salvar la mejor solucin T + , L+ , encontrada hasta el momento o Para cada arco (i, j) T + haga Modique los niveles ij de feromona aplicando la siguiente regla: ij (t) = (1 )ij (t) + ij (t) donde ij (t) = n para Fin
1 L+

(13)

Figure 3: Algoritmo ACS: Autores: Dorigo y Gambardella (IDSIA - Suiza) Valores de los parmetros usados en experimentos: a = 1, = 2, q0 = 0.9, m = 10, Q = 100, 0 = (nLnn )1 , cl = 15

También podría gustarte