Colonias de Hormigas
Inteligencia Artificial
Universidad del Magdalena
Introducción
• Se basan en inteligencia de enjambre
• Inteligencia colectiva y organización
descentralizada
https://www.youtube.com/watch?v=BQBBautjJ9M
Enjambres Inteligentes
Características
• Conformados por muchos individuos
• Los individuos son homogéneos
• Interacciones locales basadas en reglas
• Auto-organización
Algoritmos de Enjambre
• Hormigas, ACO - ant colony optimization
• Abejas, ABC - artificial bee colony
• Luciérnagas, firefly
• Bandadas de pájaros o bancos de peces (PSO)
Colonias de Hormigas
• Optimización basada en colonias de hormigas:
basada en la forma como la hormigas se comunican
indirectamente entre si.
Colonias de Hormigas
• Las hormigas encuentran el camino mas corto entre su nido y
la fuente de comida utilizando rastros de feromonas.
Comportamientos Claves
• Las hormigas producen rastros de feromona y esta actúa
como una señal para otras hormigas – ESTIGMERGIA
(comunicación indirecta a través de la interacción con el
medio ambiente).
• Si una hormiga decide con alguna probabilidad seguir un
rastro de feromona, esa hormiga produce mas feromona de
tal manera que reforzar el rastro.
Comportamientos Claves
• Entre mas hormigas siguen el rastro,
mas fuerte se hace la feromona y mas
hormigas probablemente lo seguirán.
• La fuerza de la feromona se evapora
con el tiempo.
• La feromona ayuda a construir caminos
mas cortos rápidamente (no tienen
mucho tiempo para evaporarse), la
hormigas siguen este camino.
Ant Colony Optimization (ACO)
• Usualmente se utilizan para resolver problemas de
mínimo costo.
• Se utiliza para resolver problemas que pueden
representarse como un grafo con N nodos y A aristas
no dirigidas.
Implementación
• Hormigas: construyen soluciones.
• Movimiento: escogen el próximo componente en la
construcción de una solución.
• Próximo movimiento: basado en probabilidad.
Implementación
Cada arista se le asigna un valor estático con base en la
función de costo: (i,j) = 1/di,j.
Cada arista se le asigna una feromona (i,j) depositada
por las hormigas.
Los caminos son dinámicos y se aprenden en ejecución.
Cada hormiga intenta construir una ruta completa de
acuerdo a una probabilidad que depende de (i,j) y (i,j)
para escoger la próxima ciudad.
Algoritmo
Begin
Inicialización
Mientras no se satisfaga condición de parada :
Se posiciona cada hormiga en un nodo de inicio
Repetir:
Para cada hormiga :
Escoger el próximo nodo
Actualizar feromona paso por paso
Fin del para
Hasta que cada hormiga construya una solución
Aplicar la actualización de las feromona
Actualizar la mejor solución
Fin del mientras
Fin del algoritmos
Ejemplo
• El agente viajero:
Grafo (N,E): donde N =
ciudades(nodos), E = aristas
d ij = costo de ir de la ciudad i a la
ciudad j (peso de la arista)
Las hormigas se mueve de una ciudad I a
una ciudad j con una probabilidad de
transición.
[]
TSP
1
[]
A
B
2
[]
C
3
[]
4
D
E []
5
Primera Iteración
TSP
[A] [B]
1 2
A
B
[C]
[D] [E]
4 D 5
E
TSP
En cada iteración por cada
hormiga
[A]
1
A
[A] B
1 C
[A]
1
[A,D]
[A]
1
1 E
D
TSP
Segunda Iteración
[E,A] [C,B]
5
3
A
B
[B,C]
2
C
[A,D]
[D,E]
D 4
E
TSP
Tercera Iteración
[D,E,A] [E,A,B]
4 5
A
B
[A,D,C]
1
C
[B,C,D]
[C,B,E]
2
D 3
E
TSP
Cuarta Iteración
[B,C,D,A] [D,E,A,B]
2 4
A
B
[E,A,B,C]
5
C
[C,B,E,D]
[A,D,C,E]
3
D 1
E
TSP
Quinta Iteración
[C,B,E,D,A] [A,D,C,E,B]
1
3
A
B
[D,E,A,B,C]
4
C
[E,A,B,C,D]
[B,C,D,A,E]
5
D
E 2
[A,D,C,E,B]
TSP
Actualización
L1 =300
1
[B,C,D,A,E]
L2 =450
2
[C,B,E,D,A]
L3 =260
3
[D,E,A,B,C]
L4 =280
4
[E,A,B,C,D]
L5 =420
5
Colonias de Hormiga
• Regla de transición:
• Actualización de la feromona
Tasa de decremento
de la feromona
Aplicaciones
ACO es aplicable a cualquier problema que
involucre una secuencia.
La solución del problema debe representarse
como un camino en una red.
Lectura Complementaria
https://cupdf.com/document/optimizacion-basada-en-
optimizacion-basada-en-colonia-de-hormigas.html