Ok, aquí tenemos el modelo de las hormigas de la librería de modelos de NetLogo,
dicho sea de paso, está bajo "Biología", en el menú de la biblioteca, aquí está
en cualquier caso, abrimos el modelo que crea una colonia de hormigas en el medio
donde está esa hormiga roja en el medio de ese punto púrpura y crea tres fuentes de
comida alrededor del modelo y entonces cuando lanzamos a las hormigas al mundo,
ellas empiezan a caminar en forma aleatoria y en esa caminata aleatoria
ellas tratan de encontrar comida
y cuando encuentran la comida, que están representada por las tres pilas, ellas
levantan la comida y vuelven al nido y cuando vuelven al nido ellas dejan un
rastro de feromona en el piso, lo cual indica que han encontrado algo de comida
y eso significa que podemos explorar una serie de conductas diferentes de las
hormigas, cómo lo hacen,
y esta feromona está basada en un químico que las otras hormigas pueden seguir hacia
la fuente de comida
una cosa interesante es que las hormigas aparentemente merodean por todo el
ambiente local y mantienen la traza en muchos sentidos, lo más cerca posible del
nido y de hecho, pueden sortear obstáculos que se les ponen en el camino en muchas
formas interesantes, de cualquier forma, presionamos el botón "go" y vemos que esta
clase de aleatoriedad para recolectar y consumir comida, termina en patrones muy
interesantes de conducta; primero que nada podemos correr el modelo tantas veces como
querramos y las hormigas, casi con certeza siempre hallarán la fuente más cercana de
comida y volverán suavemente al lugar de donde salieron y encontrarán la próxima
fuente de comida y la siguiente luego de ello
la conducta de las hormigas hace que se encimen unas con otras debido a que ellas
creen que aún hay alimentos, por las feromonas que emanan, que ellas dejan
y esto sucede una y otra vez cuando corremos el modelo y en verdad resulta que
este algoritmo de hormigas, si queremos, para encontrar la comida y encontrar los
caminos cuando no se conocen los mejores
es muy óptimo en situaciones de espacios muy grandes, de hecho se utiliza en lo que
se llama el algoritmo de optimización de la colonia de hormigas, para que haga
cosas como encontrar el camino más veloz para atravesar una red y en los sistemas
de redes computacionales
este modelo de conducta nos lleva a un montón de patrones interesantes
ahora, qué tiene que ver esto con la programación orientada a objetos? en este
caso particular no pareciera mucho, pero lo importante aquí es que las respuestas
requieren de muy poco conocimiento global ellas mantienen la traza de las rutas,
cada hormiga en particular mantiene la traza hacia el nido, pero en realidad no
mantienen la traza de a donde van a conseguir la comida o algo por el estilo
ellas únicamente dejan en el piso el rastro de las feromonas y esas feromonas
influencia las decisiones de otras hormigas que así encuentran el camino a la
comida, esto, dicho sea de paso, es llamado a veces la interacción estigmergia
este es el proceso de comunicarle a alguien más a través del medioambiente y
las hormigas hacen esto en forma muy satisfactoria en este caso en particular
la razón por la que creo que esto es relevante, es debido a que es un ejemplo
muy sencillo de lo que sucede cuando se puede incorporar este dato en una función
dentro de una entidad, las hormigas son entidades individuales que tienen sus
datos propios, su propio conocimiento acerca de como es el mundo, ellas no
comparten ese conocimiento con nadie más directamente, ellas lo comparten en forma
indirecta, a través del medioambiente, ellas actúan sobre el medioambiente,
entonces hasta ese punto, creo que es un buen ejemplo de cosas como la programación
orientada a objetos y el modelo de actores de programación, yo creo que tienen muchas
de las mismas propiedades
dicho sea de paso, este es uno de los pocos ejemplos en NetLogo que usan una
interesante característica que voy a mencionar rápidamente, hay una primitiva
déjenme ver si la encuentro rápido, que se llama "difusión" y hemos hablado de la
difusión bastante, cuando hablamos de las interacciones del medioambiente y lo que
hace esta difusión es, difundir, esperen que bajo rápido, perdón acá está otra vez
"difusión" esencialmente
toma como entrada una variable y difunde esos valores a los vecinos alrededor y
entonces dispersa tu difusión, lo que está sucediendo es que la celda donde la
hormiga tira la feromona, esa celda se dispersa a sus vecinos y esos vecinos
dispersan lo poco que tienen y así sigue y sigue hasta que queda en 0 y entonces
se dispersa a partir de esa concentración y a lo largo del tiempo, la feromona en
un lugar en particular empieza a decrecer pero entonces, la feromona en los lugares
alrededor se incrementan un poco, en base a la feromona en esa posición
eventualmente todo se dispersará, pero funciona muy bien en la dispersión
este es un modelo muy interesante, vimos algunos principios de la programación
orientada a objetos y algunos principios del modelo del actor, en lo que ya es un
clásico de los MBA, entonces, aquí vamos