Steering Behaviors

Steering Behaviors
Información sobre la plantilla
Steering Behaviors.jpg
Concepto:Los Steering Behaviors son comportamientos que siguen los agentes autónomos a la hora de tomar decisiones cuando este interactúa con los demás elementos del entorno virtual.

Steering Behaviors. A medida que los videojuegos fueron evolucionando, y fueron surgiendo nuevos géneros la necesidad de técnicas de Inteligencia Artificial fue aumentando en gran medida. Uno de los principales objetivos de un videojuego es ofrecer retos al usuario, esto se logra introduciendo técnicas de Inteligencia Artificial , ya que ellas son las que deciden cuáles son las mejores opciones que pueden tomar los elementos del videojuego a partir de las condiciones del entorno que los rodea.

Las técnicas que se utilizan para un videojuego dependen mucho del tipo de videojuego que estemos diseñando. Existe una gran multitud de técnicas deInteligencia Artificial que se han desarrollado paralelamente en varios campos a lo largo de los años.

¿Qué es una técnica de IA?

Uno de los más rápidos y sólidos resultados que surgieron en las tres primeras décadas de las investigaciones de laInteligencia Artficial fue que la inteligencia necesita conocimiento. Para compensar este logro imprescindible el conocimiento posee algunas propiedades poco deseables como:

  • Es voluminoso
  • Es difícil caracterizarlo con exactitud
  • Cambia constantemente.
  • Se distingue de los datos en que se organiza de tal forma que se corresponde con la forma en que va a ser usado.

Con los puntos anteriores se concluye que una técnica de Inteligencia Artificial es un método que utiliza conocimiento representado de tal forma que:

  • El conocimiento represente las generalizaciones. En otras palabras no es necesario representar de forma separada cada situación individual. En lugar de esto se agrupan las situaciones que comparten propiedades importantes. Si el conocimiento no posee esta propiedad, puede necesitarse demasiada memoria. Si no se cumple esta propiedad es mejor hablar de "datos" que de conocimiento.
  • Debe ser comprendido por las personas que lo proporcionan. Aunque en mucho programas, los datos pueden adquirirse automáticamente (por ejemplo, mediante lectura de instrumentos), en muchos dominios de la Inteligencia Artificial, la mayor parte del conocimiento que se suministra a los programas lo proporcionan personas haciéndolo siempre en términos que ellos comprenden.
  • Puede modificarse fácilmente para corregir errores y reflejar los cambios en el mundo y en nuestra visión del mundo.
  • Puede usarse en gran cantidad de situaciones aún cuando no sea totalmente preciso o completo.
  • Puede usarse para ayudar a superar su propio volumen, ayudando a acotar el rango de posibilidades que normalmente deben ser consideradas.

Agentes inteligentes

Representación de un Agente Inteligente Simple

Un agente inteligente, es una entidad capaz de percibir su entorno, procesar tales percepciones y responder o actuar en su entorno de manera racional, es decir, de manera correcta y tendiendo a maximizar un resultado esperado.

En este contexto la racionalidad es la característica que posee una elección de ser correcta, más específicamente, de tender a maximizar un resultado esperado. Este concepto de racionalidad es más general y por ello más adecuado que inteligencia (la cual sugiere entendimiento) para describir el comportamiento de los agentes inteligentes. Por este motivo es mayor el consenso en llamarlos agentes racionales.

Un agente inteligente puede ser una entidad física o virtual. Si bien el término agente racional se refiere a agentes artificiales en el campo de la Inteligencia Artificial, también puede considerarse agentes racionales a los animales incluido el hombre.

Agentes Autónomos Inteligentes

Un agente autónomo es un sistema situado en y parte de un entorno que siente ese entorno y actúa sobre él, a través del tiempo, persiguiendo sus propios objetivos de forma que afecte lo que siente en el futuro.

¿Que son los Steering Behaviors?

Los Steering Behaviors son comportamientos que siguen los agentes autónomos a la hora de tomar decisiones cuando este interactúa con los demás elementos del entorno virtual. A continuación se hace un análisis más detallado de los tipos de Steering Behaviors simples.

Tipos de Steering Behaviors Simples

Seek (Seguir)

Este comportamiento es útil para dirigir un agente en la dirección correcta, esto lo logra ya que retorna una fuerza que lo impulsa hacia el objetivo. Para ello lo que hace es calcular la fuerza necesaria para llegar al objetivo
<div

Evade (Evadir)

Representación del comportamiento Pursuit y Evade

Al igual que el pursuit el Evade calcula las posiciones futuras del objetivo pero realiza la operación de alejarse de esa posición.

Flee (Huir)

Este Steering Behaviors es parecido al Seek pero realiza la función opuesta ya que lo que se busca es alejar un agente de una posición determinada. Esto se logra generando una fuerza que dirige un agente hacia la posición contraria a la que se encuentra un objetivo específico.

Pursuit (Perseguir)

Se utiliza cuando un agente busca como interceptar un objetivo en movimiento. El éxito de la función de búsqueda depende de lo bien que el demandante puede predecir la trayectoria del evasor. Esto puede ser muy complicado, por lo que debe hacerse una solución en la que se obtenga el rendimiento adecuado y sin usar demasiados ciclos de reloj.

Arrive (Arribar)

Representación del comportamiento Arrive

El Seek resulta útil para lograr que un agente avance en la dirección correcta, pero a menudo se desea que este tenga la capacidad de ir disminuyendo su velocidad según llega a su objetivo. Para ello el Arrive calcula el tiempo que demora el agente para llegar al objetivo, y a partir de este valor obtiene la velocidad necesaria en que debe viajar hasta el objetivo.

Wander (Aleatorio)

Su objetivo es crear una fuerza que le imprima un movimiento aleatorio al vehículo en el entorno virtual. Consiste en proyectar un círculo en el frente del vehículo y un objetivo que se mueve alrededor de su perímetro de modo que el vehículo lo siga. Este objetivo gira en función del tamaño de la circunferencia. Es capaz de imprimirle una sensación de nerviosismo al movimiento.

Obstacle Avoidance (Evitar obstáculos)

Es un comportamiento que dirige un vehículo de modo que evite los obstáculos que yacen en su camino. Un obstáculo es cualquier objeto que pueda encontrarse en su camino. Esto se logra colocando un rectángulo (caja de detección) en la dirección del vehículo, que sea proporcional a la velocidad del mismo, en caso de que colisione con algún obstáculo, cambia su dirección, manteniendo a este libre de colisiones.

Representación del comportamiento Obstacle Avoidance

Wall Avoidance (Evitar muros)

Tiene como propósito evadir una pared (segmento de línea en 2D) que se encuentre en su camino, esto se logra proyectando tres rayos al frente del agente que son los que interceptan cualquier pared en su camino produciendo una fuerza normal en el punto donde se cruzan, que repele al vehículo logrando que esta sea evitada. Este proceso puede ser efectivo también colocando una caja de detección al frente del vehículo, de forma tal que al colisionar con el segmento de línea cambie su curso en la dirección contraria, este proceso es similar al del Obstacle Avoidance.

Interpose (Interponerse)

Genera una fuerza que dirige un vehículo al punto medio de una línea imaginaria que separa otros dos vehículos(o puntos en el espacio, o de un agente y un punto). Se comporta similar a un guardia personal que se interpone entre un atacante y su defendido. El primer paso en este algoritmo es determinar el punto medio de una línea que conecta las posiciones de los agentes en el momento actual y se calcula la distancia. Este valor se divide por la velocidad para determinar el tiempo necesario para recorrerla.

Hide (Ocultarse)

Este algoritmo se encarga de dirigir un agente detrás de un obstáculo con respecto a otro agente que lo persigue (cazador), de forma tal que entre ellos siempre exista un obstáculo. Además este comportamiento se puede utilizar no solo en situaciones en las que un agente está huyendo de otro, sino también cuando quiere alcanzar su objetivo (presa) escondiéndose entre los objetos sin que este note su presencia.

PathFollowing (Seguimiento del camino)

Representación del comportamiento PathFollowing

Un agente con comportamiento PathFollowing contiene una lista de puntos que visitar, y crea una fuerza que lo dirige por el orden de la lista a cada uno de los puntos, los puntos visitados quedan descartados.

Offset Pursuit (Perseguir a distancia)

Calcula la fuerza requerida para mantener un vehículo posicionado a una distancia de un objetivo, se utiliza principalmente para construir formaciones.

Enlaces Externos

Fuentes

  • JACOBSON, Ivar; RUMBAUGH, James; BOOCH, Grady, “El proceso unificado de desarrollo”.2004. Addison Wesley. Volumen II.