martes, 24 de marzo de 2009

Implementación de un Simulador















La simulación de tráfico puede tener distintos enfoques, desde el meramente lúdico como son los simuladores de carreras, hasta el que nos incumbe, referido a las características reales de tráfico a nivel de cruces semaforizados y trayectos cortos. En la imagen vemos un ejemplo del paquete SUMO, en donde se simula el cruce de dos calles de 4 carriles.

De la calidad de la simulación dependen los resultados obtenibles del proyecto, ya que la única forma de probar las propuestas es a través de un simulacro en el computador: no es una tarea trivial la selección, mejora o implementación del mismo.

Para la implementación de un simulador, se requieren primero que todo modelos de la calle (planos), del trafico (datos de flujo vehicular y peatonal) y por ultimo comportamentales (de los conductores, peatones, semaforos).

Todos estos datos deben introducirse en un programa de simulación, que por lo visto es en la mayoría de los casos programas creados bajo el paradigma de la programación orientada a objetos. Dentro del programa se manejan distintos tipos de simulación entre los que se encuentran los autómatas celulares y otros nombrados anteriormente. ¿Pero que son estos conceptos?

Programación Orientada a objetos: Durante los primeros cursos de programación, al estudiante se le enseñan las estructuras básicas como son , los lazos “if”, “for” las estructuras como “switch” “wait” etc. Estos elementos son comunes a cualquier tipo de programación, pero sobre esta capa de elementos existe una llamada “paradigma de programación”: es un estilo fundamental de programación. Los paradigmas difieren en los conceptos y abstracciones usadas para representar los elementos del programa y los pasos que componen el proceso de computación.

Este paradigma se basa en la idea de tener un conjunto de objetos que interactúan entre si de manera colaborativa, donde cada objeto es capaz de recibir y enviar mensajes, además de procesar el contenido de los mismos. La idea de manejar objetos surge de los entornos de simulación donde tenemos una serie de elementos que interactúan: este paradigma está estrechamente ligado al desarrollo de los programas de simulación y en teoría es la mejor forma de desarrollar programas de ese tipo.

Por lo general, el paradigma al que estamos acostumbrados es el que está basado en procedimientos o funciones, en el cual un programa principal (por lo general llamado “main”) contiene el esqueleto del programa y llama a otras funciones para realizar tareas especificas.

En la programación orientada a objetos existen grupos llamados Clases, que agrupan objetos. Los objetos son entes con características peculiares que contienen métodos, es decir programas para realizar ciertas acciones.

Este paradigma de programacion es usado con regularidad para construir simulaciones ya que segun los ingenieros de sistemas, hay una relacion 1:1 entre el concepto de objetos y los objetos reales de un mundo virtual,de manera que se facilita la programacion de sistemas y entes virtuales.

Automata Celular: Es una construcción matemática consistente en un universo de dos dimensiones que se encu

entra teselado, y en el cual cada una de las teselas, se convierte en un ente con características especificas que interactúa con sus vecinos por medio de unas reglas definidas. El ejemplo más sencillo e impresionante de un autómata celular es el juego de la vida de Conway , donde a partir de un tablero de juego dividido en células, se definen dos estados para cada célula : vivo o muerto.

Las reglas para la dinámica del juego son:

  1. Cualquier célula con menos de dos vecinos vivos, debe morir, debido a la baja población.
  2. Cualquier célula con más de tres vecinos vivos, debe morir, por sobrepoblación.
  3. Cualquier célula con tres vecinos vivos, vive hasta la siguiente generación sin cambio.

4. Cualquier célula muerta rodeada de tres vecinos vivos, adquiere vida.

Con este conjunto de reglas y universo sencillos se logran construcciones de gran complejidad , que emulan algunos aspectos de la vida biológica como al auto replicación.




No hay comentarios:

Publicar un comentario