Skip to main content

Programando un algoritmo de flocking / manada

Hace tiempo me interesé por los algoritmos de flocking o movimientos de manada. Esto pude sonar a chino, pero simplemente se trata de tratar emular los movimientos en conjunto de los pajaros, bancos de peces, ovejas…, vamos, cualquier conjunto de animales en movimiento.

Las reglas de movimiento, a pesar de que puedan parecer complejas a simple vista, estan basadas sólo en tres simples leyes:

  1. Repulsión: Intentar no chocar con los compañeros.

    flocking regla 1

  2. Alineamiento: Avanzar en una dirección semejante a la de tus compañeros.
  3. flocking regla 2

  4. Cohesión: Acercarse hacia el centro del grupo.
  5. flocking regla 3


De la media de estos valores se extrae el vector director de cada individuo.

VectorDirector = (Repulsión + Alineamiento + Cohesión)/3

Pues con esta idea intenté ayer programar una pequeña demo para implementarlo.

Aquí os pongo un video de como esta quedando. Aún quedan por retocar varias cosas ya que algunas reglas no las estoy aplicando estrictamente. La parte más importante que no esta implementada es el calculo de las posiciones de los vecinos. De momento los calculos de las dos primeras reglas las realizo sobre el número global de individuos, derivando en algunos movimientos extraños de cohesión.

En la demo juego con los efectos de atracción y repulsión de la manada sobre un punto movil.

Espero que os guste.


Comments

Popular posts from this blog

Himno de Teleco

Himno de la carrera de ingeniería de Telecomunicaciones, al más puro estilo Dragon Ball. Para echarte unas risas. Aviso de antemano: el humor de la canción está dirigido exclusivamente a estudiantes de Telecomunicaciones, ingenieros de ídem o a cualquiera que tenga unos conocimientos básicos (universitarios) sobre señales y sistemas. Vamos con Payán, todos a la vez a buscar con ahínco un sistema de transmisión. Sin duda será, convencido estoy, lineal, invariante y sin distorsión. Este mundo es como un filtro ideal donde hay escondido un suspenso en él. Como un filtro multicolor con un cero de transmisión, como una variable aleatoria con toda su gran inversión, el proceso empieza ahora, ¡vamos a filtrar, filtrar, filtrar, filtrar, filtrar! Hallaremos su covarianza y también su correlación, con la respuesta al impulso hallaremos convolución, el filtro sin distorsión será al fin nuestro, oh. Integrémoslo por Fourier, unidos a Gauss no hay que temer pues tenemos el DSP, ¡que no sirve p...

El test de Voight-Kampff

El otro día hablé sobre los test de Turing inversos en su vertiente visual, los captchas. Hoy os propongo este test en su vertiente emocional. Quien sabe si algún día necesitaremos aplicarlo de verdad con un tío como el de aquí al lado. El test de Voight-Kampff es un conjunto de preguntas destinadas a buscar una respuesta emotiva propia de los humanos, que en teoría la inteligencia artificial es incapaz de tener. Aquí va: La reacción es un factor importante en el test. Por favor presta atención. Responde tan rápido como puedas. Es tu cumpleaños y te regalan una cartera de piel. ¿Como reaccionas? Tienes un hijo. Éste te enseña su colección de mariposas y un frasco con el veneno para matarlas. ¿Qué haces? Estás viendo la televisión. De repente, te das cuenta de que una avispa te sube por el brazo. Estás leyendo una revista y te encuentras con la fotografía de un hombre desnudo. Estás viendo una obra de teatro. Tiene lugar un banquete en el que los invitados se deleitan con un aperitivo d...

NSLU2 y Debian

Últimamente le estaba dando vueltas a la cabeza pensando como podría instalarme un eMule en un equipo que pudiera estar encendido toda la noche y a ser posible, sin ventiladores. Estuve mirando placas Epia mini - atx pero el equipo entero resultaba por unos 300€ como mínimo y era demasiado pa mi body . Al fin dí con la solución... NSLU 2!. El NSLU 2 es un dispositivo creado por Linksys . Este aparatito simplemente es un servidor de ficheros compartidos en red mediante SMB . Puede compartir tanto pendrives flash como discos duros. La gestión se realiza mediante un interfaz web , como cualquier router de hoy en día. El Slug (nombre de serie NSLU 2) es un servidor ideal para dejar encendido todo el día, consume 8W/hora, es muy silencioso (no tiene ventiladores) y tiene un tamaño muy reducido.Tiene 2 puertos USB y tarjeta de red RJ 45. Su precio es de 99€ y para las funciones que realiza puede parecer un poco caro. Pero ahora viene la gracia... ¿Si os digo que su procesador es un...