Optimización por colonia de hormigas: cómo un rastro de feromona encuentra un camino corto
Estigmergia, el experimento del doble puente, el sistema de hormigas de Dorigo, el papel de los parámetros α, β y ρ y las variantes mejoradas, sobre un circuito por las capitales regionales checas y sobre 60 ciudades, en comparación con el recocido.
Serie Fundamentos de IA Parte 29 de 52
- Mapa de la inteligencia artificial: qué es cada cosa y cómo encaja todo
- Breve historia de la inteligencia artificial: de Turing a los modelos de lenguaje
- Datos, modelo, entrenamiento, inferencia: los conceptos básicos en un solo ejemplo
- Cómo leer la notación matemática: símbolos, subíndices, sumatorios y cuantificadores
- Conjuntos y relaciones: las piezas con las que se construyen las definiciones en IA
- Funciones y aplicaciones: por qué todo modelo de IA es una función
- Lógica y demostraciones: las reglas con las que se razona en IA
- Grafos y árboles: la estructura sobre la que se apoyan la búsqueda y las redes neuronales
- Álgebra lineal para aprendizaje automático: vectores, matrices y por qué la IA sobre todo multiplica
- Derivadas, gradiente y regla de la cadena: cómo sabe un modelo en qué dirección aprender
- Descenso de gradiente: cómo aprende un modelo
- Qué es la probabilidad: del lanzamiento de un dado a los axiomas de Kolmogórov
- Probabilidad condicionada y teorema de Bayes: cómo cambiar una estimación cuando te enteras de algo nuevo
- Variable aleatoria y función de distribución: una sola función que lo dice todo sobre la distribución
- Función de densidad y función de probabilidad: por qué una variable continua tiene probabilidad cero en cada punto
- Esperanza, varianza y covarianza: dónde está una distribución, qué anchura tiene y qué se relaciona con qué
- Resumen de las distribuciones de probabilidad: Bernoulli, binomial, Poisson, uniforme, normal y exponencial
- Ley de los grandes números y teorema central del límite: por qué las medias se comportan de forma tan predecible
- Estadística y estimación de parámetros: máxima verosimilitud, MAP e intervalos de confianza
- Teoría de la información: entropía, entropía cruzada y divergencia KL, el origen de las funciones de pérdida
- Búsqueda en el espacio de estados: BFS, DFS, UCS y A* con animaciones
- Juegos y adversarios: minimax, poda alfa-beta y Monte Carlo tree search
- Satisfacción de restricciones: backtracking, propagación de restricciones y AC-3 con un sudoku y un mapa de regiones checas
- Lógica y sistemas basados en conocimiento: encadenamiento hacia delante y hacia atrás, resolución y sistemas expertos
- Planificación: STRIPS, el mundo de bloques, heurísticas a partir de la relajación y la planificación en los agentes de IA
- Búsqueda local y recocido simulado: un viajante por las capitales regionales checas
- Algoritmos genéticos: población, cruce, mutación y selección en una mochila para la excursión
- Estrategias evolutivas y programación genética: de la regla de un quinto a la ley de Kepler
- Optimización por colonia de hormigas: cómo un rastro de feromona encuentra un camino corto
- Optimización por enjambre de partículas: inercia, experiencia propia y experiencia del enjambre
- Neuroevolución: evolución de los pesos y la forma de las redes neuronales, y el algoritmo NEAT
- Conjuntos difusos y funciones de pertenencia: cómo escribir «algo cálido»
- Lógica difusa y probabilidad: por qué «algo cálido» no significa «probablemente cálido»
- Lógica difusa: t-normas, implicaciones y reglas SI–ENTONCES
- Control difuso: Mamdani y Sugeno, del ventilador al péndulo invertido sobre un carro
- Agrupamiento difuso: el algoritmo fuzzy c-means y los puntos entre clusters
- Sistemas neuro-difusos (ANFIS): reglas difusas que aprenden de los datos
- Cadenas de Markov: matriz de transición, distribución estacionaria y PageRank
- Modelos ocultos de Márkov: el algoritmo de Viterbi y el casino deshonesto
- Redes bayesianas: por qué está mojada la hierba y qué significa eso para el aspersor
- El filtro de Kalman: cómo estimar a partir de mediciones imprecisas dónde está un coche y a qué velocidad va
- Tipos de aprendizaje automático: supervisado, no supervisado, semisupervisado y más
- Prompts, contexto y RAG: cómo darle a un modelo la información correcta
- Autocodificadores variacionales (VAE): imágenes nuevas a partir de un espacio latente continuo
- Redes generativas adversarias (GAN): el falsificador contra el detective
- Modelos de difusión: cómo el ruido puro se convierte en una imagen
- Procesos de decisión de Markov: estados, acciones, recompensas y ecuaciones de Bellman
- Q-learning y DQN: aprender el valor de las acciones, de la tabla a la red neuronal
- Gradiente de la política y PPO: aprender directamente la política
- Cómo funciona un agente de IA: un modelo de lenguaje en un bucle con herramientas
- Programación con agentes de IA: encargo, pruebas y revisión
- Evaluación y seguridad de los sistemas de IA: cómo medir y cómo vigilar
Temario completo de la serie 52 de 83 temas publicados
- Cómo una colonia encuentra el camino más corto aunque ninguna hormiga lo conozca.
- Cómo el sistema de hormigas construye circuitos a partir de feromona y distancias, y por qué la feromona tiene que evaporarse.
- Dónde fallan los algoritmos de hormigas y cómo los rescatan las variantes mejoradas y la búsqueda local.
Conviene conocer antes: Búsqueda local y recocido simulado: un viajante por las capitales regionales checas
Una hormiga sola no tiene mapa, no sabe contar y apenas ve unos centímetros por delante. Aun así, la colonia encuentra de forma fiable el camino más corto del hormiguero a la comida. Ninguna hormiga lo conoce: surge de cómo todas juntas marcan el terreno. A principios de los años noventa, Marco Dorigo, del Politécnico de Milán, se dio cuenta de que el mismo truco se puede aplicar al problema del viajante. Así nació la optimización por colonia de hormigas y, con ella, todo el campo de la inteligencia de enjambre.
Continúa el artículo Búsqueda local y recocido simulado. Resolvemos la misma tarea —un circuito por las capitales regionales con un óptimo de 1 060,4 km—, así que veremos qué tal les va a las hormigas frente al recocido.
1. Comunicarse con rastros
Definición — estigmergia
La estigmergia es una comunicación indirecta a través del entorno: un individuo modifica el entorno y ese cambio influye en lo que harán después los demás (o él mismo). El término lo acuñó Pierre-Paul Grassé en 1959 al estudiar cómo construyen las termitas sus termiteros.
Las hormigas no se dicen nada; se dejan mensajes en el suelo. Por donde pasan, depositan feromona, un rastro de olor que se evapora con el tiempo. Una hormiga en una bifurcación va con más probabilidad hacia donde el rastro huele más fuerte. Como un sendero pisado en la hierba: cuanta más gente pasa por él, más marcado está y más gente lo seguirá.
2. El experimento del doble puente
En 1989, Goss, Deneubourg y sus colegas construyeron para hormigas argentinas dos puentes entre el hormiguero y la comida, uno el doble de largo que el otro. Al cabo de un rato, la mayor parte de la colonia iba por el más corto. ¿Por qué? Una hormiga que eligió la rama corta llega antes a la comida y, cuando vuelve, la rama corta ya está marcada junto a la comida. El camino corto se marca más deprisa y empieza a ganar.
Definición — modelo de elección de rama (Deneubourg et al.)
Si al principio la rama corta y la larga tienen cantidades de feromona A y B, una hormiga elige la rama corta con probabilidad
P = (k + A)h / ((k + A)h + (k + B)h),
donde k determina con qué fuerza reacciona la hormiga a un rastro débil y h > 1 amplifica las diferencias. La hormiga deposita feromona al principio de la rama elegida y al final cuando llega.
Mientras hay poca feromona (menos que k), las hormigas eligen casi al azar. A medida que aumenta, decide cada vez más. El exponente h = 2 hace que el doble de feromona signifique cuatro veces más atracción: una pequeña ventaja se infla rápidamente hasta un claro predominio.
P = (k + A)h / ((k + A)h + (k + B)h)
- P
- la probabilidad de que la siguiente hormiga vaya por la rama corta: la hormiga no decide con certeza, solo con un peso; la rama larga se queda con el resto 1 − P
- A
- feromona en la rama corta: lo único que la hormiga «sabe» del camino; cuanta más hay, más atrae la rama corta
- B
- feromona en la rama larga: en el denominador compite con la corta, así que decide la proporción de los rastros, no su cantidad absoluta
- k
- un «umbral de atención»: se suma por igual a ambas ramas, de modo que las primeras moléculas de feromona apenas cambian la proporción; sin él, la primera hormiga decidiría por toda la colonia
- h
- el amplificador: una potencia mayor que 1 exagera la diferencia; es justo lo que convierte una pequeña ventaja casual en retroalimentación positiva
Ejemplo — cómo deciden k = 30 y h = 2
En la rama corta hay A = 20 unidades de feromona; en la larga, B = 10:
P = (30 + 20)2 / ((30 + 20)2 + (30 + 10)2) = 2 500 / (2 500 + 1 600) = 2 500 / 4 100 ≈ 0,610.
- Rastros iguales (A = B, por ejemplo ambos nulos): P = 0,500, puro azar.
- Cinco unidades contra cero: P = 352 / (352 + 302) ≈ 0,576; un rastro pequeño apenas decide nada, ese es el trabajo de k.
- A = 60, B = 10: P = 8 100 / (8 100 + 1 600) ≈ 0,835, ya un claro predominio.
- Sin amplificación (h = 1), con A = 20 y B = 10 saldría solo 50 / 90 ≈ 0,556 en lugar de 0,610.
Una simulación del modelo (k = 30, h = 2, diez hormigas por paso, rama corta de 5 pasos, larga de 10) muestra la proporción de feromona en la rama corta en ocho colonias:
Siete colonias se estabilizaron en la rama corta y una en la larga: las primeras hormigas eligieron por casualidad la rama larga y la retroalimentación positiva la «bloqueó». De cien colonias, 85 terminaron en la rama corta y 9 en la larga. Cuando ambas ramas son igual de largas, las colonias se reparten más o menos a medias (46 y 42): la simetría la rompe el azar. La longitud del camino desplaza, pues, el resultado, pero no lo garantiza. Veremos la misma debilidad en el algoritmo.
3. El sistema de hormigas
El sistema de hormigas de Dorigo (Ant System, 1992) envía hormigas virtuales por un grafo de ciudades. Cada una construye un circuito completo y, según lo corto que sea, deposita feromona en sus aristas.
Definición — circuito y su longitud
Se dan n ciudades y distancias dij = dji > 0. Un circuito es un orden de las ciudades π = (π1, …, πn) en el que cada ciudad aparece exactamente una vez; su longitud es
L(π) = dπ1π2 + dπ2π3 + … + dπnπ1
(el último término devuelve al viajero a casa). Una arista (i, j) pertenece al circuito si i y j van seguidas en él. El problema del viajante busca el circuito de longitud mínima.
Definición — regla de transición
Una hormiga en la ciudad i va a una ciudad j aún no visitada con probabilidad
pij = τijα · ηijβ / ∑l τilα · ηilβ,
donde τij es la feromona de la arista, ηij = 1 / dij es la visibilidad (las ciudades cercanas son más atractivas) y la suma recorre todas las ciudades no visitadas l. Los parámetros α y β ponderan el rastro frente a la distancia.
La hormiga decide según dos cosas: cuántas compañeras pasaron por ahí (feromona) y lo lejos que está (visibilidad). Nunca elige con certeza: solo favorece algunas opciones. Gracias a eso, cada hormiga construye un circuito un poco distinto.
pij = τijα · ηijβ / ∑l ∈ Ni τilα · ηilβ
- pij
- la probabilidad de un paso de i a j: sorteamos en lugar de elegir lo mejor, para que la colonia siga probando también otros circuitos
- τijα
- la memoria de la colonia: la feromona lleva la experiencia de las hormigas anteriores; el exponente α dice cuánto fiarse de ella (α = 0 la apaga por completo)
- ηijβ
- codicia: η = 1 / d favorece las ciudades cercanas; es un consejo que tenemos gratis desde la primera iteración, cuando la feromona aún no sabe nada
- ∑ … sobre Ni
- la suma de los pesos de todas las ciudades aún no visitadas: al dividir, los pesos se convierten en probabilidades que suman 1; las ciudades visitadas no están en ella, así que la hormiga no vuelve a ellas
Ejemplo — una decisión de una hormiga
Una hormiga está en la ciudad i y le quedan tres ciudades: a 50, 100 y 150 km, con feromona τ = 1, 3 y 2. La constante de la visibilidad se simplifica en la fracción, así que calculemos con η = 100 / d, es decir, 2, 1 y 2/3. Con α = 1 y β = 3:
- pesos: 1 · 23 = 8,000, 3 · 13 = 3,000, 2 · (2/3)3 ≈ 0,593;
- su suma, 11,593;
- probabilidades 0,690, 0,259 y 0,051.
Gana la ciudad más cercana, aunque tiene menos feromona. Con β = 1 saldría 0,316, 0,474 y 0,211: manda la feromona. Y con β = 0 decide solo el rastro: 0,167, 0,500 y 0,333 (proporciones 1 : 3 : 2).
Definición — actualización de la feromona
Tras cada iteración la feromona se evapora en todas partes y cada hormiga m añade a las aristas de su circuito de longitud Lm una cantidad proporcional a 1 / Lm:
τij ← (1 − ρ) · τij + ∑m : (i, j) ∈ circuito m Q / Lm,
donde ρ ∈ (0, 1) es la tasa de evaporación.
Los circuitos cortos dejan un rastro más fuerte, así que las aristas que se repiten a menudo en ellos se refuerzan poco a poco. La evaporación es olvido: un rastro que nadie renueva desaparece. Sin ella, la colonia se aferraría para siempre a lo que descubrió en las primeras iteraciones.
τij ← (1 − ρ) · τij + ∑m : (i, j) ∈ circuito m Q / Lm
- τij a la izquierda
- la nueva feromona de la arista: aquello por lo que se guiarán las hormigas de la próxima iteración
- (1 − ρ)
- evaporación: cada iteración quita a cada rastro la misma fracción ρ; la experiencia antigua se debilita así geométricamente y la colonia puede reaprender
- τij a la derecha
- la feromona hasta ahora: la memoria solo se corrige, no se empieza de cero
- ∑m
- suma sobre las hormigas que pasaron por la arista: cada hormiga añade solo a las aristas de su circuito; una arista que usan más hormigas recibe más; aquí se cuentan los «votos» de la colonia
- Q / Lm
- una recompensa inversamente proporcional a la longitud del circuito: circuito más corto = rastro más fuerte; la constante Q solo fija la escala
Ejemplo — una actualización
Una arista tiene τ = 1, ρ = 0,3, Q = 1 000 y han pasado por ella dos hormigas con circuitos de 1 100 y 1 300 km:
τ ← 0,7 · 1 + 1 000 / 1 100 + 1 000 / 1 300 ≈ 0,700 + 0,909 + 0,769 = 2,378.
Una arista por la que no pasó nadie tiene tras la misma iteración solo 0,7. La hormiga con el circuito más corto añadió más (0,909 frente a 0,769).
import random
def postav_okruh(start, n, tau, d, alfa=1, beta=3):
okruh, volna = [start], set(range(n)) - {start}
while volna:
i = okruh[-1]
kandidati = list(volna)
vahy = [tau[i][j] ** alfa * (1 / d[i][j]) ** beta for j in kandidati]
j = random.choices(kandidati, weights=vahy)[0]
okruh.append(j)
volna.remove(j)
return okruh
def aktualizuj(tau, okruhy, delka, rho=0.3, Q=1.0):
for radek in tau:
for j in range(len(radek)):
radek[j] *= 1 - rho # evaporación
for okruh in okruhy:
L = delka(okruh)
for a, b in zip(okruh, okruh[1:] + okruh[:1]):
tau[a][b] += Q / L # circuito más corto, rastro más fuerte
tau[b][a] += Q / L
El sistema de hormigas completo se limita a alternar la construcción de circuitos y la actualización, y recuerda el mejor circuito que alguien haya construido nunca:
def mravenci_system(n, d, mravencu, iteraci, tau0):
tau = [[tau0] * n for _ in range(n)] # al principio igual en todas partes
nejlepsi = None
for it in range(iteraci):
okruhy = [postav_okruh(m % n, n, tau, d) for m in range(mravencu)]
aktualizuj(tau, okruhy, delka) # evaporación + nuevo rastro
kandidat = min(okruhy, key=delka)
if nejlepsi is None or delka(kandidat) < delka(nejlepsi):
nejlepsi = kandidat
return nejlepsi
4. Hormigas sobre las capitales regionales
Soltemos 13 hormigas (una desde cada ciudad) durante 100 iteraciones con α = 1, β = 3 y ρ = 0,3. El mapa muestra la feromona en las aristas tras las iteraciones 1, 5, 20 y 100; cuanto más gruesa la línea, más feromona:
En la primera iteración el rastro está repartido casi por todas partes y el mejor circuito mide 1 292,6 km. Ya en la quinta iteración una de las hormigas encuentra el óptimo de 1 060,4 km. La feromona se concentra después en las aristas de los buenos circuitos —las líneas débiles desaparecen, las fuertes se quedan— y la hormiga media construye un circuito de unos 1 250 km. La colonia no converge del todo: sigue probando un poco.
Traza de la ejecución por iteraciones: el mejor circuito encontrado hasta el momento y el circuito medio de las trece hormigas en esa iteración:
| Iteración | Mejor hasta ahora | Media de la iteración |
|---|---|---|
| 1 | 1 292,6 km | 1 477,7 km |
| 2 | 1 208,6 km | 1 424,0 km |
| 3 | 1 208,6 km | 1 450,0 km |
| 4 | 1 097,7 km | 1 376,7 km |
| 5 | 1 060,4 km | 1 330,2 km |
| 10 | 1 060,4 km | 1 267,7 km |
| 100 | 1 060,4 km | 1 247,2 km |
El mejor circuito mejora a saltos (la tercera iteración no aportó nada nuevo, la cuarta recortó 111 km), mientras que la media baja más despacio y de forma irregular: las hormigas sortean, así que incluso en una buena iteración algunas construyen circuitos flojos. La diferencia entre la media y el mejor es justo la exploración que impide que la colonia se congele del todo.
No siempre sale tan bien. De veinte ejecuciones con semillas distintas, solo 7 encontraron el óptimo; la media fue de 1 073,9 km y el peor resultado, 1 083,0 km. El recocido, con 98 de 100 en la misma tarea, fue más fiable. Para hacerse una idea: el «vecino más cercano» voraz, que siempre va a la ciudad no visitada más próxima, da entre 1 120 y 1 336 km según el punto de partida. Las hormigas son claramente mejores, pero el sistema de hormigas básico por sí solo no es un campeón; por eso surgieron sus variantes mejoradas.
5. Para qué sirven α, β y ρ
Con trece ciudades se puede resolver mucho incluso sin feromona. La diferencia solo la muestra una tarea mayor: las mismas 60 ciudades aleatorias que en el artículo sobre el recocido, 30 hormigas, 150 iteraciones, media de tres ejecuciones:
| Configuración | Longitud media | Mejor de tres |
|---|---|---|
| α = 1, β = 3, ρ = 0,3 | 2 262,7 km | 2 194,0 km |
| α = 0 (sin feromona) | 3 049,8 km | 3 037,9 km |
| β = 0 (sin distancias) | 8 648,5 km | 8 422,4 km |
| ρ = 0,02 (la feromona apenas se evapora) | 2 374,5 km | 2 370,4 km |
| ρ = 0,9 (la feromona se evapora casi al instante) | 2 274,1 km | 2 242,4 km |
- Sin feromona (α = 0), las hormigas son solo viajeros voraces aleatorios y no aprenden nada: circuitos un tercio más largos.
- Sin distancias (β = 0), la colonia no tiene dónde apoyarse: los primeros circuitos son completamente aleatorios y la feromona que dejan lleva a otros igual de aleatorios.
- Una evaporación lenta mantiene demasiado tiempo los rastros de los primeros circuitos, malos, y la colonia aprende despacio. Una evaporación rápida, en cambio, olvida también lo bueno.
Cuánto tiempo recuerda la colonia se puede calcular con exactitud. Basta con seguir una sola arista.
Teorema — feromona estacionaria y vida media de la evaporación
Si una arista recibe en cada iteración el mismo incremento Δ ≥ 0, es decir, τt+1 = (1 − ρ) τt + Δ, entonces
τt = Δ/ρ + (1 − ρ)t (τ0 − Δ/ρ) → Δ/ρ cuando t → ∞.
Sin incremento (Δ = 0), el rastro baja a la mitad en t½ = ln 2 / (−ln(1 − ρ)) iteraciones.
Demostración. Restando Δ/ρ a ambos lados de la recurrencia se obtiene τt+1 − Δ/ρ = (1 − ρ)(τt − Δ/ρ), porque (1 − ρ)Δ/ρ + Δ = Δ/ρ. La desviación respecto de Δ/ρ se multiplica, pues, en cada iteración por el número 1 − ρ ∈ (0, 1) y tiende geométricamente a cero. La vida media es la solución de (1 − ρ)t = ½. ∎
τ* = Δ / ρ
- τ*
- el nivel en el que se estabiliza la feromona de la arista: el aporte y la evaporación están en equilibrio
- Δ
- cuánto recibe la arista por iteración: las aristas de circuitos frecuentes y cortos tienen un Δ grande y, por tanto, también un nivel alto
- ρ
- en el denominador: una evaporación lenta deja crecer mucho los rastros y las diferencias entre aristas tardan en igualarse; una rápida los mantiene bajos y dependientes solo de las últimas iteraciones
Una arista con τ0 = 1 y ρ = 0,3: una recibe en cada iteración Δ = 1; la otra no la usa nadie.
| t | 0 | 1 | 2 | 3 | 5 | 10 |
|---|---|---|---|---|---|---|
| Δ = 1 | 1,00 | 1,70 | 2,19 | 2,53 | 2,94 | 3,27 |
| Δ = 0 | 1,00 | 0,70 | 0,49 | 0,34 | 0,17 | 0,03 |
La arista usada se acerca a 1/0,3 ≈ 3,33; la no usada cae en diez iteraciones por debajo de tres centésimas. La vida media de la evaporación para las filas de la tabla anterior: con ρ = 0,3 es de 1,94 iteraciones; con ρ = 0,02, nada menos que 34,31 iteraciones —así que los rastros de los primeros circuitos aleatorios mandan todavía durante decenas de iteraciones—, y con ρ = 0,9, solo 0,30 iteraciones, de modo que la colonia recuerda prácticamente solo la última ronda.
La mejor configuración dio entre 2 194 y 2 314 km, comparable con el recocido del artículo anterior, que en las mismas ciudades terminó entre 2 210 y 2 270 km.
6. Hormigas mejores
- La estrategia elitista añade feromona extra al mejor circuito hasta el momento para que no se pierda.
- MAX–MIN Ant System (Stützle y Hoos, 2000) solo permite depositar feromona a la mejor hormiga y mantiene τ entre un límite inferior y uno superior. El límite inferior garantiza que ninguna arista desaparezca del todo, de modo que la colonia no se congela antes de tiempo, como la que en el experimento del puente acabó en la rama larga.
- Ant Colony System (Dorigo y Gambardella, 1997) elige con cierta probabilidad directamente la mejor arista y quita feromona ya durante la construcción del circuito, para que las demás hormigas prueben en otro sitio.
- Búsqueda local. En la práctica, cada circuito construido por una hormiga se pule además con movimientos 2-opt del artículo sobre el recocido. Las hormigas encuentran una buena región y el escalador la afina; en los años noventa esta combinación estaba entre los mejores métodos para el problema del viajante.
Definición — estrategia elitista y MAX–MIN Ant System
La estrategia elitista añade a la actualización habitual otros e · Q / Lbest en cada arista del mejor circuito hasta el momento, de longitud Lbest; e es el número de «hormigas elitistas».
MAX–MIN Ant System deposita feromona solo según el mejor circuito y recorta el resultado al intervalo [τmin, τmax]:
τij ← min(τmax, max(τmin, (1 − ρ) τij + Δij)), donde Δij = 1 / Lbest para las aristas del mejor circuito y 0 en otro caso.
Stützle y Hoos eligen como límite superior τmax = 1 / (ρ Lbest), justo el valor estacionario Δ/ρ del teorema anterior para una arista que está en el mejor circuito todas las veces. El límite inferior es una pequeña fracción del superior; además, al principio la feromona se fija en τmax para que las primeras iteraciones exploren lo más ampliamente posible.
Definición — reglas de Ant Colony System
Regla proporcional pseudoaleatoria: una hormiga en la ciudad i sortea q en [0, 1). Si q ≤ q0, va directamente a la ciudad de mayor peso, j = arg maxl ∈ Ni τil · ηilβ; si no, elige por sorteo según la regla de transición del sistema de hormigas.
Actualización local: justo después de pasar por la arista (i, j), τij ← (1 − ξ) τij + ξ τ0, de modo que una arista usada se debilita un poco hacia el valor inicial τ0.
Actualización global tras una iteración, solo en las aristas del mejor circuito: τij ← (1 − ρ) τij + ρ / Lbest.
Dorigo y Gambardella (1997) usan en el artículo original q0 = 0,9, β = 2 y ρ = ξ = 0,1: en nueve de cada diez pasos la hormiga toma la mejor arista y solo en el décimo explora.
7. Dónde trabajan las hormigas
- Encaminamiento en redes. El algoritmo AntNet (Di Caro y Dorigo, 1998) envía por la red pequeños paquetes-hormiga que miden los retardos y actualizan las tablas de encaminamiento. Así la red se adapta continuamente a la congestión.
- Rutas de vehículos y planificación. Reparto de mercancías, recogida de residuos u orden de los pedidos en producción: tareas emparentadas con el problema del viajante, en las que los algoritmos de hormigas se usan junto con la búsqueda local.
- Inteligencia de enjambre. Una colonia de hormigas es uno de los ejemplos de cómo de individuos simples y reglas locales surge un comportamiento inteligente del conjunto. Otro, el enjambre de partículas, es el tema del próximo artículo.
8. Resumen
- Las hormigas se comunican con rastros en el entorno (estigmergia): un camino más corto se marca más deprisa y la retroalimentación positiva lo refuerza.
- En el modelo del doble puente, 85 de 100 colonias se estabilizan en la rama corta, pero el azar también puede bloquear la larga.
- El sistema de hormigas elige la siguiente ciudad según la feromona τα y la distancia ηβ; la feromona se evapora a la tasa ρ y los circuitos cortos añaden más.
- En las capitales regionales encontró el óptimo, pero solo en 7 de 20 ejecuciones; en 60 ciudades quedó a la par del recocido. Sin feromona o sin distancias, bastante peor.
- Las variantes usadas en la práctica (MAX–MIN, ACS) evitan la congelación prematura y combinan las hormigas con búsqueda local.
¿Quieres probarlo tú? Pide a un agente de IA que escriba una simulación del doble puente y mira qué pasa si «cierras» la rama corta a mitad del experimento: ¿consigue la colonia volver a la larga?
¿Lo ves de otra manera? Escribe a support@coden-app.com.