Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
BIOINFORMÁTICA
2003 - 2004
Tema 2: Algoritmos de
Optimización basados
en Colonias de Hormigas
Oscar Cordón
Dpto. Ciencias de la Computación e I.A.
Universidad de Granada
E- mail: ocordon@decsai.ugr.es
Índice de Contenidos
I. Las Colonias de
Hormigas Naturales
n Las hormigas son insectos sociales que viven en colonias y
que tienen un comportamiento dirigido al desarrollo de la
colonia como un todo mas que a un desarrollo individual
Recordad...
¡SED LA BOLA!
I. Las Colonias de
Hormigas Naturales (2)
n Una característica interesante del comportamiento de las
colonias de hormigas es cómo pueden encontrar los
caminos más cortos entre el hormiguero y la comida
Entonces...
¿Cómo lo hacen?
I. Las Colonias de
Hormigas Naturales (3)
n En su recorrido, depositan una sustancia llamada feromona
que todas pueden oler (estimergia)
I. Las Colonias de
Hormigas Naturales (4)
n Cada vez que una hormiga llega a una intersección, decide
el camino a seguir de un modo probabilístico
I. Las Colonias de
Hormigas Naturales (5)
n Las bifurcaciones más prometedoras (más cercanas a la comida)
van acumulando feromona al ser recorridas por más hormigas
(reclutamiento de masas)
I. Las Colonias de
Hormigas Naturales (6)
I. Las Colonias de
Hormigas Naturales (7)
I. Las Colonias de
Hormigas Naturales (7)
I. Las Colonias de
Hormigas Naturales (7)
I. Las Colonias de
Hormigas Naturales (7)
I. Las Colonias de
Hormigas Naturales (7)
I. Las Colonias de
Hormigas Naturales (7)
I. Las Colonias de
Hormigas Naturales (7)
n La hormiga artificial
n El Sistema de Hormigas
De las hormigas
naturales a la OCH
n Para aplicar la OCH a un problema, es necesario que pueda
ser representado en forma de grafo con pesos
De las hormigas
naturales a la OCH (2)
n Los algoritmos de OCH reproducen el comportamiento de las
hormigas reales en una colonia artificial de hormigas. Cada
hormiga artificial es un agente que imita a la hormiga natural.
La hormiga artificial
Estructura básica de un
algoritmo de OCH
1. Inicialización de parámetros (p.e., asignación de una
cantidad inicial de feromona τ0 a cada arco)
2. Planificación_de_actividades
– generación_y_activación_de_hormigas
– evaporación_de_feromona
– acciones_del_demonio (OPCIONAL)
Estructura básica de un
algoritmo de OCH
1. Inicialización de parámetros (p.e., asignación de una
cantidad inicial de feromona τ0 a cada arco)
2. Planificación_de_actividades
– generación_y_activación_de_hormigas
– evaporación_de_feromona
– acciones_del_demonio (OPCIONAL)
Estructura básica de un
algoritmo de OCH
1. Inicialización de parámetros (p.e., asignación de una
cantidad inicial de feromona τ0 a cada arco)
2. Planificación_de_actividades
– generación_y_activación_de_hormigas
– evaporación_de_feromona
– acciones_del_demonio (OPCIONAL)
Procedimiento generación_y_activación_de_hormigas
Estructura básica de un
algoritmo de OCH (2)
Procedimiento nueva_hormiga (id_hormiga)
Estructura básica de un
algoritmo de OCH (3)
3. Si (actualización_de_feromona_en_línea_a_posteriori)
3.1. Para cada arco recorrido hacer
n depositar_feromona_en_el_arco_recorrido
4. liberar_recursos_de_la_hormiga (id_hormiga)
El demonio puede:
– Actualizar la feromona globalmente (actualización fuera de línea),
p.e., considerando únicamente la mejor hormiga para la deposición
El Sistema de Hormigas
n El primer algoritmo de OCH que se propuso fue el
denominado Sistema de Hormigas (Ant System) (SH)
M. Dorigo, V. Maniezzo, A. Colorni, The Ant System: Optimization by a
Colony of Cooperating Agents. IEEE Trans. On Systems, Man and
Cybernetics-Part B, Vol. 26, 1996, 1-13
0, en otro caso
- τrs es la feromona del arco a rs - ηrs es la inf. heurística del arco ars
- Jk(r) es el conjunto de nodos - α y β son pesos que establecen un
alcanzables desde r no visitados equilibrio entre la importancia de la
aún por la hormiga k información memorística y heurística
τ rs = τ rs + ∆τ rsk
f ( C ( Sk )), si la hormiga k ha visitado el arco a rs
− ∆τ rsk =
0, en otro caso
– f(C(S k)) es una cantidad de feromona directamente proporcional a la
bondad de la solución generada por la hormiga k, C(S k)
τ rs = (1 − ρ ) ⋅τ rs
El Sistema de
Colonia de Hormigas
M. Dorigo, L.M. Gambardella, Ant Colony System: A Cooperative Learning Approach
to the Traveling Salesman Problem. IEEE Trans. on Evolutionary Computation, Vol.
1, nº 1, 1997, 53-66
El Sistema de
Colonia de Hormigas (2)
n La regla de transición de SCH (regla proporcional pseudo-aleatoria) es:
El Sistema de
Colonia de Hormigas (3)
n Puesto que el demonio efectúa la actualización de fero-
mona fuera de línea después de la evaporación, ambas
tareas se pueden realizar mediante la operación:
τ rs = (1 − ρ ) ⋅τ rs + ρ ⋅ f (C ( S mejor− global))
El Sistema de
Colonia de Hormigas (4)
n Cada vez que una hormiga cualquiera recorre un arco, aplica
la actualización de feromona en línea paso a paso:
τ rs = (1 − ϕ ) ⋅τ rs + ϕ ⋅τ 0
Funciones adicionales de
los algoritmos de OCH
n Como algoritmos de optimización y búsqueda, los
algoritmos de OCH deben guardar un equilibrio adecuado
entre eficiencia y la eficacia
Funciones adicionales de
los algoritmos de OCH (2)
1. USO DE LISTAS DE CANDIDATOS
n Cuando los casos de los problemas son de gran tamaño, los
algoritmos de OCH pueden requerir un tiempo de ejecución alto
Funciones adicionales de
los algoritmos de OCH (3)
n La LC almacena los cl nodos preferidos para visitar desde cada
nodo r ordenados de mejor a peor valor heurístico
Funciones adicionales de
los algoritmos de OCH (4)
Extensiones de los
Algoritmos de OCH (5)
2. USO DE ALGORITMOS DE BÚSQUEDA LOCAL
Funciones adicionales de
los algoritmos de OCH (6)
n El algoritmo básico de OCH con búsqueda local es:
Funciones adicionales de
los algoritmos de OCH (7)
IV. Aplicaciones
n Otras Aplicaciones
Probabilidades de transición
1 2 3 4 5 6 Uniforme Solución
1 - 0.322 0.144 0.144 0.161 0.227 0.000 (1 2 - - - -)
2 - - 0.336 0.237 0.212 0.212 0.031 (1 2 3 - - -)
3 - - - 0.475 0.300 0.225 0.673 (1 2 3 5 - -)
5 - - - 0.585 - 0.415 0.842 (1 2 3 5 6 -)
6 - - - 1.000 - (1 2 3 5 6 4)
τ rs = ( 1 − ϕ )·τ rs
– Número de hormigas: m = 10
– Cinco casos clásicos de gran tamaño: 198, 442, 532, 783 y 1577
– Lista de candidatos para reducir el tiempo de ejecución (cl=15)
– 15 ejecuciones del SCH en una SUN Sparc-Server a 50 MHz
Dpto. Ciencias de la Computación e Inteligencia Artificial 57
? ri = d r ⋅ f i ; r = 1, ..., n ; i = 1, ..., n
l1 l2 l3 l4 l5
u1 u2 u3 u4 u5
∑ (d rk · fS (r )S (k ) + d sk · fS ( s) S (k ) + d kr · f S ( k )S (r ) + d ks · f S (k )S ( s) )
k ≠r , s
∑ (d rk · fS ( s) S (k ) + d sk · fS (r ) S (k ) + d kr · f S ( k )S (s ) + d ks · f S ( k )S (r ) )
k ≠r , s
d rk ·( f S (s ) S (k ) − f S (r ) S ( k ) ) + d sk ·( f S ( r )S (k ) − f S ( s )S (k ) ) +
∑
d kr ·( f S (k )S ( s ) − f S ( k )S (r ) ) + d ks ·( f S (k ) S (r ) − f S (k ) S (s ) )
k ≠r , s
– Número de hormigas: m = n
– Cada algoritmo se ejecuta una vez durante una hora en un 386 a 16 MHz
– EE = Estrategia de Evolución, MC = Muestreo y Agrupamiento, SH-BL =
SH con búsqueda local
Dpto. Ciencias de la Computación e Inteligencia Artificial 70
Otras aplicaciones
n Los algoritmos de OCH se han aplicado a otros muchos
problemas:
– Secuenciación de Tareas
– Coloreo de Grafos
– Encaminamiento de Vehículos
– Ordenación Secuencial
– “Pooling” de vehículos
– Líneas de producción de coches
– Problemas de Agrupamiento (Clustering)
– Aprendizaje de Reglas Clásicas y Difusas
– etc.
– Sencillos de entender
– Rápidos
– Con buen rendimiento
V. Bibliografía
BIBLIOGRAFÍA BÁSICA
V. Bibliografía (2)
BIBLIOGRAFÍA BÁSICA
http://iridia.ulb.ac.be/~mdorigo/ACO/ACO.html
V. Bibliografía (3)
BIBLIOGRAFÍA DE APOYO
BIOINFORMÁTICA
2003 - 2004