En el pequeño mundo de las hormigas, las distintas tareas se dividen entre cientos de individuos, ¿quién no ha visto a estos pequeños bichos recolectar comida para la colonia?
Podríamos afirmar que la búsqueda de comida se divide en las siguientes etapas:
- Varias hormigas salen a buscar comida
- Cuando una encuentra una fuente de comida, regresa a su nido con una pequeña cantidad
- Otras hormigas “se enteran” y abastecen el nido con la misma fuente de comida
- Cuando se agota la comida de la fuente, las hormigas dejan de ir a esta y el proceso se repite desde el inicio
Conocidas las etapas, podemos preguntarnos:
¿Cómo hace la primera hormiga para encontrar comida?
Parece ser que siguen un patrón aleatorio, dispersándose desde el área cercana al nido, hasta los lugares más alejados de este, dejando un rastro químico conocido como feromona. En algún lugar he leído que utilizan el olfato pero no parece ser algo necesario dentro del modelo.
¿Cómo recuerda que camino seguir para volver al nido?
Algunos dicen que se guían por los campos magnéticos, otros dicen que se guían por la vista. Ambas alternativas exigen cierta capacidad de memoria: si una hormiga trepara por una de las patas de la mesa, no tendría cómo guiarse por los campos magnéticos a menos que pueda recordar el campo cada vez que ha ido cambiando de dirección.
La idea más aceptada es que una hormiga simplemente sigue el rastro de feromonas dejado desde que salió del nido. durante este regreso va liberando más feromonas, con lo cual el camino se refuerza.
¿Cómo se enteran las demás de este hallazgo? y… ¿Cómo saben que camino seguir hasta la fuente de comida?
La idea más común (no por eso la más acertada) consiste en pensar que una hormiga es capaz de “transmitir” a las demás la información acerca de la fuente de comida.
Pero en realidad, lo único que tienen que hacer las hormigas es seguir los caminos de feromonas.
¿Cómo se enteran en qué momento se ha agotado la comida?
Nuevamente podemos pensar en la posibilidad de la comunicación, aunque, también esta vez, tiene mayor aceptación la teoría de las feromonas: si las hormigas llegan a la supuesta fuente de comida y no encuentran nada, no segregarán feromonas. Y como las feromonas se evaporan al cabo de un tiempo, no quedará ni rastro ni información acerca de la fuente de comida ya agotada.
Bueno, ¿y que tiene todo esto que ver con la programación?
Pues mucho: en primer lugar significa un interesante reto poder desarrollar un modelo creíble que simule el comportamiento de algún organismo vivo. En segundo lugar, el trabajo en equipo de las hormigas está sirviendo de inspiración a futuras implementaciones de robots que puedan ser utilizados, por ejemplo, en rescates. Finalmente, la forma de trabajar de estos pequeños seres ha servido de referencia en modelos informáticos que se utilizan en la solución de problemas reales. Para mayor información, buscar “algoritmo de las hormigas”.
En esta oportunidad voy a desarrollar un programa que simule el comportamiento de las hormigas. Ya otras personas lo han hecho, y el resultado ha sido bastante interesante, sin embargo me gustaría poder cambiar cosas aquí y allá, y eso sólo puedo hacerlo cómodamente con mi propio programa.
Por cierto, por mucho que el resultado de mi programa se parezca al mundo real, esto no significa que sea de esa manera como ocurre realmente. Cuando una persona propone un modelo, lo hace con la información de la cual dispone, asumiendo algunos datos difíciles de determinar y omitiendo otros que no le parecen relevantes.
Recuerden que ni un algoritmo evolutivo explica la evolución, ni un algoritmo de las hormigas explica el comportamiento de estas.
En estos momentos, en que no he escrito ni una línea de código, realmente no se cual será el resultado de mi programa. No puedo anticipar si las hormigas viajaran en círculo sin poder alimentarse o si por lo menos se moverán. ¡Quizás terminen saliéndose del monitor!
Para empezar por algún lado, modelaremos a una hormiga de la manera más simple posible:
| Clase Hormiga | |
| Atributo | Significado |
| Posición X,Y | Necesitamos conocer dónde se encuentra cada hormiga |
| Dirección | Necesitamos saber hacia dónde se dirige |
| Estado | Inicialmente consideraremos 2 estados: “buscando comida” y “llevando comida” |
| Render | Si queremos dibujar la hormiga en pantalla, este será el método a usar |
A continuación, modelaremos la comida:
| Clase Fuente | |
| Atributo | Significado |
| Posición X,Y | Necesitamos las hormigas necesitan conocer dónde se encuentra la comida |
| Cantidad | Inicialmente la comida está en su máxima cantidad, las hormigas la van retirando |
| Render | Dibujar la comida de acuerdo a la cantidad que queda |
Dentro de nuestro modelo, vamos a considerar que las hormigas dejan un rastro de feromonas:
| Clase Feromona | |
| Atributo | Significado |
| Posición X,Y | Para conocer dónde se encuentra el rastro |
| Intensidad | Inicialmente la feromona está en su máxima intensidad, luego se va evaporando con el tiempo |
| Render | Dibujar el rastro (para nosotros, las hormigas no necesitan “verlo”) |
(Continuará…)

Posted on abril 17, 2010
0