21 Jun

Cómo crear agentes con rangos de visión en AnyLogic

bulldozer

  • Contexto
  • Modelo
  • Video
  • Descarga

Con frecuencia se desea limitar el movimiento e iteración de los agentes a solo aquellos elementos que caen dentro un rango de visión limitado. Este modelo es una demostración de cómo se pueden crear rangos de visión a los agentes en un espacio determinado.

En este modelo se asumen agentes representando bulldozers esparcidos en un campo donde hay diferentes minas a las que los agentes deben trasladarse. Estos agentes solo pueden identificar las minas que se encuentran en el rango de visión establecido.

El modelo cuenta con dos tipos de agentes: MyAgents y Mine.

MyAgent representa el bulldozer cuya visión es limitada. La mina es el lugar donde el bulldozer debe desplazarse.

Los agentes estan contenidos en dos poblaciones: myAgents y mines, ambas inician vacías al comienzo del modelo mediante la función Setup. Esta crea los agentes, los ubica de manera aleatoria en el espacio y asigna parámetros. A continuación se presenta la función:

El usuario cuenta con diferentes botones donde puede seleccionar agentes, rotarlo y obtener los agentes dentro del rango de visión frente a él. Este rango de visión es determinado por el ángulo solamente (cualquier agente con un ángulo menor a una referencia predeterminada es aceptable. El usuario puede además incluir la distancia como parte del rango de visión, es decir no solo considerar las minas que estén dentro del ángulo de visión frente a el sino también dentro de una distancia determinada).

La selección del agente se realiza utilizando el siguiente código

El cálculo del ángulo y la distancia se hace en el siguiente código

Este código hace uso de dos funciones: getAngleTo y getDistanceTo. A continuación se presentan estas dos funciones:

 

Existen además botones para aumentar o reducir el ángulo de rotación de los bulldozers. El ángulo del campo de visión puede ser ajustado usando un slider. El código del slider se presenta a continuación:

El siguiente es un video del modelo en funcionamiento

El modelo en AnyLogic puede ser descargado en el siguiente Link

Comentario Final

Como se ha podido observar el modelo no pretende hacer más que reportar las minas frente al agente que están dentro de su campo de visión. El usuario puede agregar utilizar este código como base para agregar acciones más complejas como movimientos, ruteos e incluso algoritmos de decisión.

No olviden dejar su comentario!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: