Boids


Boids es una vida artificial programa, desarrollado por Craig Reynolds en 1986, que simula la que acuden comportamiento de las aves . Su artículo sobre este tema fue publicado en 1987 en las actas de la conferencia ACM SIGGRAPH . [1] El nombre "boid" corresponde a una versión abreviada de "objeto bird-oid", que se refiere a un objeto parecido a un pájaro. [2] Por cierto, "boid" es también una pronunciación del dialecto metropolitano de Nueva York para "pájaro".

Un ejemplo de Boids creado en OpenGL
Reglas aplicadas en Boids simples
Alineación
Cohesión

Como ocurre con la mayoría de las simulaciones de vida artificial, Boids es un ejemplo de comportamiento emergente ; es decir, la complejidad de los Boids surge de la interacción de agentes individuales (los boids, en este caso) que se adhieren a un conjunto de reglas simples. Las reglas que se aplican en el mundo Boids más simple son las siguientes:

  • separación : de dirección para evitar el hacinamiento flockmates locales
  • alineación : dirija hacia el rumbo promedio de los compañeros de bandada locales
  • cohesión : dirección para moverse hacia la posición promedio (centro de masa) de los compañeros de bandada locales

Se pueden agregar reglas más complejas, como la evitación de obstáculos y la búsqueda de metas.

El modelo básico se ha ampliado de varias formas diferentes desde que Reynolds lo propuso. Por ejemplo, Delgado-Mata et al. [3] amplió el modelo básico para incorporar los efectos del miedo. El olfato se utilizó para transmitir emociones entre animales, a través de feromonas modeladas como partículas en un gas de expansión libre. Hartman y Benes [4] introdujeron una fuerza complementaria al alineamiento que denominan cambio de liderazgo. Este novillo define la posibilidad de que el boid se convierta en líder e intente escapar.

El movimiento de los Boids puede caracterizarse como caótico (grupos divididos y comportamiento salvaje) u ordenado. Los comportamientos inesperados, como dividir las bandadas y reunirse después de evitar obstáculos, pueden considerarse emergentes.

El marco de boids se usa a menudo en gráficos por computadora, proporcionando representaciones de apariencia realista de bandadas de pájaros y otras criaturas, como bancos de peces o manadas de animales. Por ejemplo, se usó en el videojuego Half-Life de 1998 para las criaturas voladoras parecidas a pájaros que se ven al final del juego en Xen , llamadas "boid" en los archivos del juego.

El modelo Boids se puede utilizar para el control directo y la estabilización de equipos de vehículos terrestres no tripulados simples (UGV) [5] o micro vehículos aéreos (MAV) [6] en robótica de enjambres . Para la estabilización de equipos heterogéneos UAV-UGV, el modelo fue adaptado para usar la localización relativa a bordo por Saska et al. [7]

En el momento de la propuesta, el enfoque de Reynolds representó un gran paso adelante en comparación con las técnicas tradicionales utilizadas en la animación por computadora para películas. La primera animación creada con el modelo era Stanley y Stella en: Rompiendo el hielo (1987), seguido de un debut en el cine con Tim Burton de la película 's Batman vuelve (1992) con generada por ordenador enjambres de murciélagos y los ejércitos de pingüinos marchando por las calles de Gotham City. [8]

El modelo boids se ha utilizado para otras aplicaciones interesantes. Se ha aplicado para programar automáticamente estaciones de radio multicanal de Internet. [9] También se ha utilizado para visualizar información [10] y para tareas de optimización. [11]

  1. ^ Reynolds, Craig (1987). Rebaños, rebaños y cardúmenes: un modelo de comportamiento distribuido . SIGGRAPH '87: Actas de la 14ª Conferencia Anual sobre Gráficos por Computadora y Técnicas Interactivas . Asociación de Maquinaria Informática . págs. 25–34. CiteSeerX  10.1.1.103.7187 . doi : 10.1145 / 37401.37406 . ISBN 978-0-89791-227-3. S2CID  546350 .
  2. ^ Banks, Alec; Vincent, Jonathan; Anyakoha, Chukwudi (julio de 2007). "Una revisión de la optimización del enjambre de partículas. Parte I: antecedentes y desarrollo". Computación natural . 6 (4): 467–484. CiteSeerX  10.1.1.605.5879 . doi : 10.1007 / s11047-007-9049-5 . S2CID  2344624 .
  3. ^ Delgado-Mata, Carlos; Martínez, Jesús Ibáñez; Abeja, Simón; Ruiz-Rodarte, Rocío; Aylett, Ruth (2007). "Sobre el uso de animales virtuales con miedo artificial en entornos virtuales". Computación de nueva generación . 25 (2): 145-169. doi : 10.1007 / s00354-007-0009-5 . S2CID  26078361 .
  4. ^ Hartman, Christopher; Benes̆, Bedr̆ich (julio de 2006). "Boids autónomos". Animación por ordenador y mundos virtuales . 17 (3–4): 199–206. doi : 10.1002 / cav.123 . S2CID  15720643 .
  5. ^ Min, Hongkyu; Wang, Zhidong (2011). Diseño y análisis de Group Escape Behavior para robots móviles autónomos distribuidos . Conferencia Internacional IEEE sobre Robótica y Automatización (ICRA). doi : 10.1109 / ICRA.2011.5980123 .
  6. ^ Saska, Martin; Jan, Vakula; Libor, Preucil (2014). Enjambres de microvehículos aéreos estabilizados bajo una localización visual relativa . Conferencia Internacional IEEE sobre Robótica y Automatización (ICRA). doi : 10.1109 / ICRA.2014.6907374 .
  7. ^ Saska, Martin; Vojtech, Vonasek; Tomas, Krajnik; Libor, Preucil (2012). Coordinación y navegación de equipos heterogéneos de UAV-UGV localizados mediante un enfoque de ojo de halcón (PDF) . Conferencia Internacional IEEE / RSJ sobre Robots y Sistemas Inteligentes (IROS).
  8. ^ Lebar Bajec, Iztok; Heppner, Frank H. (2009). "Vuelo organizado en aves" (PDF) . Comportamiento animal . 78 (4): 777–789. doi : 10.1016 / j.anbehav.2009.07.007 . S2CID  53180059 .
  9. ^ Ibáñez, Jesús; Gómez-Skarmeta, Antonio F .; Blat, Josep (2003). "DJ-boids: comportamiento colectivo emergente como programación de emisoras de radio multicanal". Actas de la octava conferencia internacional sobre interfaces de usuario inteligentes . págs. 248-250. doi : 10.1145 / 604045.604089 .
  10. ^ Moere, AV (2004). "Visualización de datos que varían en el tiempo utilizando boids de agrupación de información". Actas del Simposio IEEE sobre visualización de información . págs. 97-104. doi : 10.1109 / INFVIS.2004.65 .
  11. ^ Cui, Zhihua; Shi, Zhongzhi (2009). "Optimización del enjambre de partículas Boid". Revista Internacional de Computación y Aplicaciones Innovadoras . 2 (2): 77–85. doi : 10.1504 / IJICA.2009.031778 .

  • Página de Boids de Craig Reynolds
  • Explicación del algoritmo en pseudocódigo
  • Implementación de JavaScript
  • Implementación de JavaScript con Phaser Framework
  • Simulación de Boids 3D usando OpenGL, utilizado por la Unidad de Historia Natural de la BBC
  • Simulación 3D en vivo en el navegador del comportamiento de la bandada de aves en Unity3D : implementación de código abierto para Windows, Linux y Mac
  • Implementación de código abierto UNIX + Windows en C ++, usando OpenGL y controles de simulación
  • Una implementación de java usando la API de javafx
  • GLSchool - parte del software XScreenSaver