Algoritmos basados en hormigas
Inteligencia Artificial Avanzada 1er. Semestre 2008
1 Aspectos Generales
La met´afora de los insectos sociales para “resolver problemas” ha sido un tema importante a partir de 1996. Estos m´etodos hacen ´enfasis en distribuci´on, inter- acciones directas o indirectas entre agentes relativamente simples, flexibilidad y robustez. La cantidad de aplicaciones con ´exito ha crecido exponencialmente en optimizaci´on combinatoria, redes de comunicaciones y rob´otica.
2 Ant Colony Optimization: Problema del Vende- dor Viajero
Supuesto (Deneubourg): Las hormigas Linepithema humile usan la auto-organizaci´on para ubicar la comida.
2.1 Problema del Vendedor Viajero:
• Es f´acil de adaptar la noci´on del camino m´as corto a hormigas
• Es un problema NP-duro
• Ha sido ampliamente estudiado y es considerado un problema “bench- mark” cl´asico.
• Es did´actico
Autores: Dorigo, Colorni, Maniezzo, 1992.
2.2 Ideas B´ asicas en los algoritmos basados en hormigas:
• Uso de un mecanismo de feedback positivo: reforzamiento de buenos caminos o soluciones
• Una feromona virtual que permite mantener en memoria las mejores op- ciones
• El riesgo de ´optimo local o stagnation se controla por un mecanismo de feedback negativo denominado evaporaci´on de la feromona que se maneja en unidades de tiempo. Este tiempo no debe ser muy grande porque producir´ıa la ca´ıda en un ´optimo local, ni tan reducida que anule el com- portamiento cooperativo del algoritmo.
• Comportamiento cooperativo: las hormigas realizan exploraci´on simult´anea de soluciones diferentes realizado por un conjunto de hormigas iguales. Las hormigas que realizan bien su trabajo influyen el comportamiento de fu- turas hormigas. Ya que las hormigas exploran varias quasi-soluciones, la feromona resultante es la consecuencia de diferentes perspectivas del es- pacio de soluciones o de b´usqueda. A´un cuando s´olo se permite a la mejor hormiga reforzar la soluci´on, existe un efecto cooperativo en el tiempo, porque las hormigas de la siguiente iteraci´on usan la feromona para guiar su exploraci´on.
2.3 Ant System (AS)
En el vendedor viajero el objetivo es encontrar el tour m´as corto para cubrir n 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)2+ (yi−yj)2]
1
2 (1)
El grafo G = (N, E) no requiere estar completamente conectado, ni tampoco ser sim´etrico.
Sea bi(t), (i = 1, .., n) el n´umero de hormigas en la ciudad i en el instante t.
Sea m =Pn
i=1 el n´umero total de hormigas. Sea τij(t + z) la intensidad de la feromona de la conecci´on (ij) en el instante t + z con:
τij(t + z) = (1 − ρ)τij(t) + ∆τij(t + z) (2) donde 0 < ρ ≤ 1 es un coeficiente que representa la evaporaci´on. La cantidad de feromona dejada en el arco (ij) por la k-´esima hormiga en el instante t + z est´a dada por:
∆τijk(t + z) =
Q
Lk si la k-´esima hormiga usa el arco (ij)
0 e.o.c (3)
donde Q es una constante y Lkes el largo del tour encontrado por la k-´esima hormiga. La intensidad inicial de cada arco τij(0) es casi cero.
La regla de transici´on, o la probabilidad que la hormiga k en la ciudad i vaya a la ciudad j es:
Pijk(t) =
[τij(t)]α[ηij]β
P
h∈permitidok (t)[τih(t)]α[ηih]β si j ∈ permitidok(t)
0 e.o.c.
(4)
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 m´as com´unmente utilizada es ηij = d1ij, denominada la visibilidad. Los par´ametros α y β entregan la importancia relativa entre la fer- omona y la visibilidad. Adem´as, cada hormiga tiene asociada una lista tab´u, la cual incluye todas las ciudades ya visitadas por la hormiga. El algoritmo AS se muestra en la figura 1.
Procedure Ant System Inicializar
Parat=1 hasta el n´umero de ciclos haga Inicio
Parak = 1 hasta m haga Inicio
repetir
seleccionar la siguiente ciudad a visitar con probabilidad Pijk hastahormiga k complete su tour
calcular largo Lk del tour d la hormiga k fin para
Salvar la mejor soluci´on encontrada hasta el momento Modifique 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´o el concepto de “hormiga elitista”. El t´ermino elitista fue elegido por su similitud con el concepto de elitismo manejado en algoritmos gen´eticos. Una hormiga elitistaes aquella que refuerza los arcos que pertenecen al mejor tour T+encontrado en la iteraci´on. El refuerzo corresponde a una cantidad LQ+, con 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 incrementar´an a´un m´as la cantidad de feromona en los arcos pertenecientes al mejor tour. El algoritmo se muestra en la figura 2.
Observaci´on 2.1
∆τij(t) =
m
X
k=1
∆τijk(t) (5)
∆τijk(t) =
Q
Lk si(i, j) ∈ Tk(t)
0 e.o.c. (6)
∆τije(t) =
Q
L+ si(i, j) ∈ T+
0 e.o.c. (7)
donde Q es una constante y Lkes el largo del tour encontrado por la k-´esima hormiga. La intensidad inicial de cada arco τ0 es casi cero.
La regla de transici´on, o la probabilidad que la hormiga k en la ciudad i vaya a la ciudad j es:
Pijk(t) = [τij(t)]α[ηij]β P
h∈Jik[τ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 heur´ıstica local.
2.4.1 Valores de los par´ametros usados en experimentos α= 1, β = 5, ρ = 0.5, m = n, Q = 100, τ0= 10−6, e= 5
Procedure AS-TSP Inicializar
Paracada arco (i, j) haga τij(0) = τ0
fin para
Parak=1 hasta m haga
Ubique la hormiga k en una ciudad elegida aleatoriamente fin para
Sea T+ et tour m´as corto encontrado desde el inicio, y L+ su largo Parat=1 hasta el n´umero de ciclos haga
Inicio
Parak = 1 hasta m haga Inicio
repetir
seleccionar la siguiente ciudad a visitar con probabilidad Pijk hastahormiga k complete su tour
calcular largo Lk del tour de la hormiga k fin para
Salvar la mejor soluci´on T+, L+, encontrada hasta el momento Paracada arco (i, j) haga
Modifique los niveles τij de feromona aplicando la siguiente regla:
τij(t) = (1 − ρ)τij(t) + ∆τij(t) + e ∗ ∆τije(t) (9) fin para
Fin
Figure 2: Algoritmo AS-TSP
2.5 ACS : Ant Colony System
2.5.1 Explicaci´on ACS
El algoritmo se muestra en la figura 3. ACS tiene 4 modificaciones con respecto a AS:
• Nueva regla de transici´on,
• Nueva regla de modificaci´on de los trazados de feromona
• Uso de cambios locales de trazados de feromona para favorecer la explo- raci´on
• Uso de una lista candidata para restringir la elecci´on de la pr´oxima ciudad a visitar.
Regla de Transici´on: Se modifica para permitir expl´ıcitamente la exploraci´on.
Cuando q > q0la regla de transici´on es la misma que en AS. Sin embargo, cuando q ≤ q0corresponde a la explotaci´on del conocimiento disponible del problema, es decir, la distancia entre las ciudades y la memoria guardada en los trazos de feromona. Con q > q0 se favorece m´as la exploraci´on.
Cuando q0 se aproxima al valor 1 se seleccionan s´olo soluciones ´optimas locales, sin embargo el ´optimo local puede no corresponder al ´optimo global. Cuando q0 est´a cercano a 0 se examinan todas las soluciones locales, aunque tengan mayor peso aquellas ´optimas locales (esto difiere de simulated annealing donde todos los estados tienen el mismo peso para ser elegidos a una alta temperatura).
Regla de modificaci´on de los trazados de feromona: En AS todas las hormi- gas pueden depositar feromona al completar sus tours. En ACS s´olo la hormiga que encontr´o el mejor tour en la iteraci´on puede modificar glob- almente las concentraciones de feromona en los arcos. As´ı en la pr´oxima iteraci´on, las hormigas son motivadas a buscar trayectorias en la vecindad del mejor tour encontrado antes. Otra diferencia es que en AS la modifi- caci´on del trazado de feromona es sobre todos los arcos, en ACS es s´olo sobre aquellos que pertenecen al mejor tour encontrado en la iteraci´on.
Modificaci´on local del trazado de feromona: Cuando la hormiga k est´a con- struyendo su tour, se encuentra en la ciudad i y selecciona la ciudad j para continuar, la concentraci´on de feromona del arco (i, j) cambia. Cuando una hormiga visita un arco, la aplicaci´on de la modificaci´on local hace que el nivel de feromona en el arco disminuya. El objetivo es hacer cada vez menos atractivos los arcos visitados por m´as hormigas, con lo cual se est´a favoreciendo indirectamente la exploraci´on de los arcos a´un no visi- 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 est´an 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 m´as cercanas. Las ciudades est´an ordenadas de menor a mayor distancia y la b´usqueda en la lista es secuencial.
3 Propiedades importantes a explorar
• No-convergencia
• Control de Par´ametros
• Optimizaci´on de Problemas Din´amicos : Routing networks..
• Algoritmos h´ıbridos
Procedure ACS-TSP inicializar
Paracada arco (i, j) haga τij(0) = τ0
fin para
Parak=1 hasta m haga
Ubique la hormiga k en una ciudad elegida aleatoriamente fin para
Sea T+ et tour m´as corto encontrado desde el inicio, y L+ su largo Parat=1 hasta el n´umero de ciclos haga
Inicio
Parak = 1 hasta m haga Inicio
repetir
Siexiste 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:
j= (
argmaxu∈Jk
i[τiu(t)]α[ηiu]β si q ≤ q0
J si q > q0
(10)
donde J ∈ Jik se elige seg´un la probabilidad:
Pijk(t) = [τij(t)]α[ηij]β P
h∈Jik[τih(t)]α[ηih]β (11) y donde i es la ciudad actual
Sinoelegir la ciudad j ∈ Jik m´as cercana fin si
Luego de cada transici´on la hormiga k modifica localmente:
τij(t) = (1 − ρ)τij(t) + ρτ0 (12) hastahormiga k complete su tour
calcular largo Lk del tour de la hormiga k fin para
Salvar la mejor soluci´on T+, L+, encontrada hasta el momento Paracada arco (i, j) ∈ T+ haga
Modifique los niveles τij de feromona aplicando la siguiente regla:
τij(t) = (1 − ρ)τij(t) + ρ∆τij(t) (13) donde ∆τij(t) = L1+
fin para
Fin 7