7.2 Formación de bandadas y bancos. Estoy segura de que has visto un comportamiento como este en el día a día o en algún vídeo. La asombrosa sincronía con la que los pájaros son capaces de formar una bandada, girar y actuar como una sola entidad. Durante mucho tiempo la gente encontraba este comportamiento realmente misterioso. Simplemente parecía imposible que este tipo de cosas pudieran ser conseguidas sin un líder o sin que cada pájaro tuviera algún conocimiento global de toda la bandada. Igualmente, los bancos de peces tienen muchas propiedades similares en las que el comportamiento sincronizado y muy intricado del banco como un todo parece requerir algún tipo de líder. Por supuesto, ahora sabemos que este tipo de comportamiento es posible sin un líder y sin información global por parte de los individuos, sabemos que realmente emerge de unas reglas relativamente simples en las que cada individuo sólo interactúa con sus vecinos próximos. Preguntémonos primero el "por qué?". Por qué los pájaros se juntan en bandadas? Por qué los peces forman bancos? Resulta que hay varias respuestas posibles. Ahí van algunas hipótesis: Los predadores se pensarán que la bandada o el banco es en verdad un solo organismo grande y posiblemente peligroso, y guardarán las distancias. O los predadores no serán capaces de enfocarse en un individuo concreto de la bandada o del banco. La bandada o el banco será más efectivo al capturar presas en una caza cooperativa que cada individuo por sus cuenta. La bandada o el banco incremetarán la aerodinámica o la hidrodánima de los individuos de manera parecida al pelotón de una carrera ciclista. Estas son sólo hipótesis. Hay muchas otras. Es posible que todas ellas sean correctas. Ahora podemos mirara al "Cómo?". Cómo es que estas bandadas o bancos pueden llegar a formarse sin ningún líder y a pesar de que cada individuo del grupo sólo obtiene una poca de información interaccionando con sus vecinos más cercanos? En los 80, un diseñador gráfico llamado Craig Reynolds presentó un modelo muy simple de este fenómeno llamado modelo de Boyd. Su auténtico objetivo era desarrollar gráficos de ordenador realistas del comportamiento de bandadas o bancos. Escribió un artículo muy famoso titulado "Bandadas, rebaños y bancos, un modelo distribuido del comportamiento" que he colgado en la página de materiales del curso. En el artículo nos da un modelo simple en el que los individuos siguen tres reglas en orden de importancia. Evasión de colisiones, esto es evitar chocar con los compañeros cercanos en la bandada. Adaptación de velocidad, intento de aparejar su velocidad con la de los compañeros cercanos en la bandada. Y tendencia al centro de la bandada, intento de estar cerca de los compañeros cercanos en la bandada. Reynolds y otros que simularon este modelo encontraron que estas reglas extremadamente simples producían un realismo muy sorprendente. Puedes ver esto en varias simulaciones gráficas sencillas del modelo. Aquí hay una. Este es un modelo de un banco utilizando el algoritmo de Boyd. Pudes ver que estos peces abstractos o idealizados en verdad parecen un banco de peces real y convincente excepto por la forma de sus cuerpos. Esta es una demostración impresionante del comportamiento complejo a partir de reglas sencillas. Vamos a mirar con un poco más de detalle a una versión de NetLogo de este modelo. Está en la librería de modelos en la sección de biología. Y así es como funciona. Tenemos un número de pájaros similar a los del modelo de Boyd. Es ligeramente diferente, pero la idea es la siguiente. Cada pájaro sigue las siguientes reglas: Si estoy muy cerca de mi vecino, entonces me separo. Lo que quiere decir que me voy a girar 90 grados respecto de la dirección de mi vecino más próximo o algún numero máximo de grados que es un parámetro que el usuario puede variar. De otro modo, si no estoy demasiado cerca de mi vecino más cercano, voy a hacer una de estas dos cosas: Voy a alinear la dirección en la que me muevo para hacerla lo más parecida posible a la dirección media de mis vecinos. Y voy a adherirme, lo que significa que voy a girar de tal manera que me voy a poner más cerca de mis vecinos. OK, echemos un vistazo al modelo. He abierto NetLogo y despues he ido al menú archivo, a la librería de modelos, a biología, y he encontrado el modelo de formación de bandadas (flocking). Ábrelo y verás que hay una serie de barras deslizadoras que me permiten controlar los parámetros del modelo. Yo voy a darle simplemente a SETUP y GO. Ahora puedes ver los pequeños pájaros moviéndose. Voy a acelerarlos un poco. Empiezan moviéndose en direcciones aleatorias y moviéndose a velocidad constante. Y a medida que pasa el tiempo, empiezan a adherirse formando bandadas. Y puedes hacer esto mejor cuando se están moviendo más rápido. Puedes ver? Esto no es muy realista porque en verdad no se está imitando la física del vuelo, pero aún así se puede observar el comportamiento de bandada. Y fíjate que el mundo se cierra alrededor de si mismo en los bordes aquí. La manera en la que esto funciona es: cada pájado empieza mirando a una dirección al azar cuando hacemos el SETUP y en cada paso temporal cada pájaro localiza a sus vecinos. Sus vecinos son otros pájaros dentro de su radio de visión, que es tres casillas de distancia. Cada pájaro mira a su vecino más cercano y si este vecino está más cerca que una distancia mínima (que aquí ha sido fijada como una casilla) el pájaro se voltea. Y la cantidad que se voltea viene dada por este MAX SEPARATE que aquí es 1.5 grados. Ese es el máximo que se volteará. Voy a intentar y voltearme tanto como sea posible dentro del máximo. Si no tiene ningún vecino cercano dentro de esa separación mínima, el pájaro intentará alinearse y adherirse con su giro. Donde se gira lo máximo posible para alinearse con el promedio de sus vecinios y volverá a girarse lo máximo posible para adherirse, para moverse más cerca de sus vecinos. Y ese es el algoritmo. Para el quiz de esta unidad, voy a darte algunos ejercicios para hacer con este modelo.