Diferencia entre revisiones de «Steering Behaviors»

(Etiqueta: nuestro-nuestra)
(Etiqueta: nuestro-nuestra)
Línea 1: Línea 1:
{{Software|nombre=Steering Behaviors|logo=Steering_Behaviors.jpg|fecha de creación=|versiones=|sitio web=}}<br>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 [[Desarrollo de Videojuegos|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.<br>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 de Inteligencia Artificial que se han desarrollado paralelamente en varios campos a lo largo de los años.<br>  
+
{{Software|nombre=Steering Behaviors|logo=Steering_Behaviors.jpg|fecha de creación=|versiones=|sitio web=}}<div align="justify"><br>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 [[Desarrollo de Videojuegos|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.<br>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 de Inteligencia Artificial que se han desarrollado paralelamente en varios campos a lo largo de los años.<br> </div>
  
 
== <br>¿Qué es una técnica de IA?  ==
 
== <br>¿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 la IA fue que la inteligencia necesita conocimiento. Para compensar este logro imprescindible el conocimiento posee algunas propiedades poco deseables como:<br>  
+
<div align="justify">Uno de los más rápidos y sólidos resultados que surgieron en las tres primeras décadas de las investigaciones de la IA fue que la inteligencia necesita conocimiento. Para compensar este logro imprescindible el conocimiento posee algunas propiedades poco deseables como:<br>  
  
 
*Es voluminoso  
 
*Es voluminoso  
Línea 18: Línea 18:
 
*Puede modificarse fácilmente para corregir errores y reflejar los cambios en el mundo y en nuestra visión del mundo.<br>  
 
*Puede modificarse fácilmente para corregir errores y reflejar los cambios en el mundo y en nuestra visión del mundo.<br>  
 
*Puede usarse en gran cantidad de situaciones aún cuando no sea totalmente preciso o completo. <br>  
 
*Puede usarse en gran cantidad de situaciones aún cuando no sea totalmente preciso o completo. <br>  
*Puede usarse para ayudar a superar su propio volumen, ayudando a acotar el rango de posibilidades que normalmente deben ser consideradas.<br><br>
+
*Puede usarse para ayudar a superar su propio volumen, ayudando a acotar el rango de posibilidades que normalmente deben ser consideradas.<br><br></div>
  
 
== Agentes inteligentes<br>  ==
 
== Agentes inteligentes<br>  ==
  
[[Image:Agente inteligente.jpg|thumb|left|313x196px|Representación gráfica de un Agente Inteligente]]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.<br>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.<br>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.  
+
[[Image:Agente inteligente.jpg|thumb|left|313x196px]]<div align="justify">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.<br>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.<br>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. </div>
  
 
== Agentes Autónomos Inteligentes  ==
 
== 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.<br><br>  
+
<div align="justify">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.<br><br> </div>
  
 
== Que son los Steering Behaviors?<br>  ==
 
== Que son los Steering Behaviors?<br>  ==
  
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.<br>  
+
<div align="justify">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.<br> </div>
  
 
<br>  
 
<br>  
Línea 38: Línea 38:
 
=== Seek (Seguir)<br>  ===
 
=== Seek (Seguir)<br>  ===
  
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<br>  
+
<div align="justify">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<br> </div>
  
 
<br>  
 
<br>  
Línea 44: Línea 44:
 
=== Evade (Evadir)  ===
 
=== Evade (Evadir)  ===
  
[[Image:Evade.JPG|thumb|right|172x130px|Evade.JPG]]Al igual que el pursuit el Evade calcula las posiciones futuras del objetivo pero realiza la operación de alejarse de esa posición <br><br>  
+
[[Image:Evade.JPG|thumb|right|172x130px]]<div align="justify">Al igual que el pursuit el Evade calcula las posiciones futuras del objetivo pero realiza la operación de alejarse de esa posición <br><br> </div>
  
 
=== Flee (Huir)<br>  ===
 
=== Flee (Huir)<br>  ===
  
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.<br>  
+
<div align="justify">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.<br> </div>
  
 
<br>  
 
<br>  
Línea 54: Línea 54:
 
=== Pursuit (Perseguir)<br>  ===
 
=== Pursuit (Perseguir)<br>  ===
  
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. <br>  
+
<div align="justify">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. </div><br>  
  
 
<br>  
 
<br>  
Línea 60: Línea 60:
 
=== Arrive (Arribar)  ===
 
=== Arrive (Arribar)  ===
  
[[Image:Arrive.JPG|thumb|right|170x132px]]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.<br>  
+
[[Image:Arrive.JPG|thumb|right|170x132px|Arrive.JPG]]<div align="justify">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.<br> </div>
  
 
<br>  
 
<br>  
Línea 66: Línea 66:
 
=== Wander (Aleatorio)<br>  ===
 
=== Wander (Aleatorio)<br>  ===
  
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<br>  
+
<div align="justify">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<br> </div>
  
 
<br>  
 
<br>  
Línea 72: Línea 72:
 
=== Obstacle Avoidance (Evitar obstáculos)<br>  ===
 
=== Obstacle Avoidance (Evitar obstáculos)<br>  ===
  
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.<br>  
+
<div align="justify">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.<br> </div>
  
 
<br>  
 
<br>  
Línea 78: Línea 78:
 
=== Wall Avoidance (Evitar muros)<br>  ===
 
=== Wall Avoidance (Evitar muros)<br>  ===
  
[[Image:Avoidance.JPG|thumb|right|170x132px]]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.<br>  
+
[[Image:Avoidance.JPG|thumb|right|170x132px|Avoidance.JPG]]<div align="justify">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.<br></div>  
  
 
<br>  
 
<br>  
Línea 84: Línea 84:
 
=== Interpose (Interponerse)<br>  ===
 
=== Interpose (Interponerse)<br>  ===
  
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.<br>  
+
<div align="justify">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.<br> </div>  
  
 
<br>  
 
<br>  
Línea 90: Línea 90:
 
=== Hide (Ocultarse)<br><br>  ===
 
=== Hide (Ocultarse)<br><br>  ===
  
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.<br>  
+
<div align="justify">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.<br> </div>  
  
 
<br>  
 
<br>  
Línea 96: Línea 96:
 
=== PathFollowing (Seguimiento del camino)<br>  ===
 
=== PathFollowing (Seguimiento del camino)<br>  ===
  
[[Image:PathFollowing.JPG|thumb|right|172x130px]]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.<br>  
+
[[Image:PathFollowing.JPG|thumb|right|172x130px|PathFollowing.JPG]]<div align="justify">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.<br></div>  
  
 
<br>  
 
<br>  
Línea 102: Línea 102:
 
=== Offset Pursuit (Perseguir a distancia)<br>  ===
 
=== Offset Pursuit (Perseguir a distancia)<br>  ===
  
Calcula la fuerza requerida para mantener un vehículo posicionado a una distancia de un objetivo, se utiliza principalmente para construir formaciones.<br>  
+
<div align="justify">Calcula la fuerza requerida para mantener un vehículo posicionado a una distancia de un objetivo, se utiliza principalmente para construir formaciones.<br></div> 
  
 
<br>  
 
<br>  

Revisión del 09:05 24 mar 2011

Steering Behaviors
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 de Inteligencia 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 la IA 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 IA 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 IA, 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

Agente inteligente.jpg
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


Evade (Evadir)

Evade.JPG
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)

Arrive.JPG
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.


Wall Avoidance (Evitar muros)

Avoidance.JPG
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)

PathFollowing.JPG
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.