Anúncio
Anúncio

Mais conteúdo relacionado

Anúncio

Desplazamiento en grupo

  1. Inteligencia Artificial para Videojuegos Percepción y movimiento Desplazamiento en grupo
  2. ● ¡Hay muchos comportamientos de dirección! ● Seguiremos hablando de ellos, y veremos formas de combinarlos ○ Cuando varios agentes interactúan entre sí emerge comportamiento de grupo, que aparenta estar “coordinado” Desplazamiento en grupo 2 Motivación
  3. ● Esto permitirá generar movimientos tan creíbles como el de los pajaroides, demo de Reynolds (1986) ○ Aparenta haber “inteligencia”, ¡esa es la clave! Desplazamiento en grupo 3 Motivación BOIDS (BOTS + BIRDS)
  4. ● Trata de evitar “pegarse” demasiado a otros que van en su misma dirección ○ Es casi “repulsión”, útil para simular multitudes ○ Según distancia al vecino más cercano, umbral máximo de vecindad y aceleración máxima, vemos separación lineal o ley inversa del cuadrado ○ También puede calcularse la repulsión total como el sumatorio para los N vecinos más próximos Desplazamiento en grupo 4 Separación LINEAR SEPARATION INVERSE SQUARE LAW * k es un coeficiente positivo que indica lo rápido que decae la separación con la distancia (y teniendo en cuenta que el resultado NO está normalizado…) SEPARATION
  5. Desplazamiento en grupo 5 Separación Tiempo = O(1) Espacio = O(n) donde n son los agentes vecinos
  6. ● Trata de no chocar con otros agentes que van en dirección distinta ○ Puede verse como Separación de aquellos vecinos que estén en el cono de visión del agente ○ La comprobación debe tener en cuenta dirección desde el agente hasta la colisión y umbral de cono, el coseno de la mitad del ángulo del cono de visión ○ Existen mejoras a este algoritmo, ya que a veces “evita demasiado” y otras veces se queda corto Desplazamiento en grupo 6 Evitación de colisiones COLLISION AVOIDANCE CONE THRESHOLD
  7. Desplazamiento en grupo 7 Evitación de colisiones
  8. Desplazamiento en grupo 8 Evitación de colisiones
  9. Desplazamiento en grupo 9 Evitación de colisiones Tiempo = O(1) Espacio = O(n) donde n son los posibles vecinos
  10. ● Trata de no chocar con obstáculos que no son circulares ni pequeños ○ A veces hay obstáculos, como escaleras, esquinas o paredes, cuya forma no puede aproximarse a un sólo punto ○ Se usará un detector de colisiones, proyectando uno o varios rayos “unos segundos” por delante y, si alguno colisiona, fija un nuevo objetivo y lo seguirá ■ El objetivo se establecerá cierta distancia sobre la normal al objeto desde el punto de la colisión Desplazamiento en grupo 10 Evitación de obstáculos
  11. ● Para añadir comportamientos, una idea habitual es extender el comportamiento (Ej. Seguir) en una clase específica que sería Seguir… evitando Obstáculos Desplazamiento en grupo 11 Evitación de obstáculos
  12. Desplazamiento en grupo 12 Evitación de obstáculos
  13. ● El detector de colisiones tiene esta interfaz ○ Usando una determinada configuración de rayos, devuelve la primera colisión encontrada ○ ¡Las esquinas suponen una verdadera trampa para la IA!, requieren soluciones avanzadas Desplazamiento en grupo 13 Evitación de obstáculos
  14. ● Es habitual necesitar varios a la vez ○ Ej. Seguir un objetivo, evitar colisiones con agentes, con obstáculos, llegar al destino… ○ Lo de ir extendiendo las clases básicas con versiones específicas… no es lo más elegante ● Combinar estos comportamientos requiere usar mezcla (por pesos o por prioridades), arbitraje (cediéndose el control)... o ambas técnicas (llamadas arquitecturas híbridas) Desplazamiento en grupo 14 Combinar comportamientos BLENDING ARBITRATION
  15. ● La forma más simple de combinar comportamientos de dirección: sumarlos ○ Muy típico para mantener agrupaciones ■ Cohesión (Llegada al centro de masas del grupo) ■ Separación con respecto a los vecinos Desplazamiento en grupo 15 Mezcla por pesos * Los pesos no suelen sumar 1 (no es media ponderada) pero da igual porque hay máximos de seguridad
  16. Desplazamiento en grupo 16 Mezcla por pesos Tiempo = O(1) Espacio = O(n) donde n son los comportamientos de dirección
  17. ● Los pajaroides posiblemente tienen el primer comportamiento de dirección combinado, y el más famoso, el desplazamiento en bandada ○ Mezclaban por pesos 3 comportamientos de dirección de los básicos… ¡y el resultado era brutal! Desplazamiento en grupo 17 Desplazamiento en bandada FLOCKING Separación Cohesión Alineamiento (y equiparamiento de velocidad)
  18. ● Simula una bandada o enjambre de seres… que no se dirigen a ningún sitio ○ Al añadir Equiparación de velocidad al desplazamiento en bandada, los pesos van así: ■ Separación > Cohesión > Alineamiento y Equiparación de velocidad Desplazamiento en grupo 18 Desplazamiento en bandada * Los vecinos pueden reducirse considerando sólo los que tengo en mi cono de visión
  19. ● En la práctica, surgen problemas si la bandada se mueve en entornos cerrados ○ Equilibrio estable, los comportamientos de dirección se contraponen y bloquean al agente ○ Entornos restringidos, con puertas o pasillos por donde el agente inteligente no es capaz de pasar ○ Miopía, los comportamientos de dirección no ven más allá de lo local... pueden fallar en lo global Desplazamiento en grupo 19 Desplazamiento en bandada
  20. ● Hay comportamientos de dirección que sólo algunas veces devuelven aceleración ○ ¡Y justo entonces conviene hacerles MUCHO caso! ● Se pueden organizar estos comportamientos en grupos ordenados por prioridad ○ Cada grupo da una salida (= sus comportamientos mezclados por peso) y se usa sólo la primera salida por encima de cierto umbral ε (cercano a 0) ○ Ej. Prioridad 1: ¡Evitaciones diversas!; Prioridad 2: Separación; Prioridad 3: Persecuciones varias Desplazamiento en grupo 20 Mezcla por prioridad
  21. Desplazamiento en grupo 21 Mezcla por prioridad Tiempo = O(1) Espacio = O(n) donde n son los comportamientos de dirección
  22. ● Si necesitásemos un control más fino, el siguiente paso sería comportamientos de dirección que cooperen entre sí ○ Implica reprogramarse los algoritmos, ya no tendríamos algoritmos independientes ○ Tiene mucho que ver con el tema de Decisión, pues Millington propone aquí un sistema compuesto basado en un flujo que desglosa cada componente del comportamiento de dirección y luego trata de actuar teniéndolo todo en cuenta Desplazamiento en grupo 22 Arbitraje cooperativo
  23. ● El cono de visión del agente A. Sirve para “repeler” a otros agentes B. Sirve como umbral para percibir C. Ayuda a filtrar obstáculos colisionables D. Ayuda a filtrar los agentes que podrían colisionar ● Desarrolla tu respuesta (en texto libre) Desplazamiento en grupo 23 Participación
  24. * Excepto el contenido multimedia de terceros autores Federico Peinado (2019-2023) www.federicopeinado.es Críticas, dudas, sugerencias...
Anúncio