Skip to content

imarranz/nagel-schreckenberg-model

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Modelo Nagel-Schreckenberg para Simulación de Tráfico

Versión y Actividad

Pull Requests MIT License Stars

GitHub release (latest by date) GitHub Release Date

GitHub last commit GitHub all releases

Análisis

GitHub top language GitHub language count

Redes Sociales

Este repositorio contiene una implementación del modelo de Nagel-Schreckenberg en Python para simular el tráfico vehicular en una carretera. El modelo de Nagel-Schreckenberg es un modelo de simulación que se utiliza para estudiar el comportamiento del tráfico y la congestión en carreteras.

Descripción del Modelo

El modelo de Nagel-Schreckenberg se basa en reglas simples de interacción entre vehículos en una carretera. Incluye componentes como aceleración, desaceleración, frenado aleatorio y movimiento, que permiten simular el tráfico en una carretera de manera realista. Los vehículos avanzan y ajustan su velocidad en función de la distancia al vehículo de adelante y factores aleatorios. Los vehículos avanzan de una celda a otra en pasos discretos de tiempo, siguiendo reglas muy simples pero realistas:

  • Aceleración: Si la velocidad de un vehículo es menor que su velocidad máxima permitida y no hay obstáculos delante, acelera en una unidad.

  • Desaceleración: Si la distancia al vehículo de adelante es menor o igual a su velocidad actual, reduce su velocidad a la distancia disponible.

  • Frenado Aleatorio: Con una probabilidad dada, un vehículo puede reducir su velocidad de manera aleatoria, simulando comportamientos humanos impredecibles.

  • Movimiento: Los vehículos avanzan de acuerdo a sus velocidades actualizadas.

  • Entrada de Nuevos Vehículos: En cada paso, se pueden agregar nuevos vehículos a la carretera, generalmente desde el extremo izquierdo.

Uso del Código

  1. Clona este repositorio en tu máquina local:
$ git clone https://github.com/imarranz/nagel-schreckenberg-model.git
  1. Accede al directorio del proyecto:
$ cp nagel-schreckenberg-model
  1. Ejecuta el modelo de simulación proporcionando los parámetros deseados, como longitud de la carretera, densidad de vehículos, velocidad máxima, probabilidad de desaceleración, número de pasos, etc.:
$ python nagel_schreckenberg_model.py
  1. Observa la simulación en tiempo real y analiza el comportamiento del tráfico en la carretera.

Salida

Actualmente, el código está desarrollado para que genere una imagen como la siguiente:

En esta imagen se muestran los diferentes tiempos evaluados en el eje Y (tiempo) mostrando en la parte superior los primeros estados y en la parte inferior los últimos estados analizados. En el eje X (posición) la posición de cada coche en la carreter. Cada punto representa un vehículo y el color nos dice la velocidad a la que circula cada vehículo.

Personalización

Puedes personalizar la simulación ajustando los parámetros en el archivo nagel_schreckenberg_model.py según tus necesidades. Experimenta con diferentes configuraciones para observar cómo afectan al tráfico y la congestión en la carretera.

Requisitos

Asegúrate de tener Python 3.x instalado en tu sistema. Además, puedes instalar las bibliotecas necesarias ejecutando:

$ pip install numpy matplotlib

Contribuciones

Si deseas contribuir a este proyecto o realizar mejoras, ¡eres bienvenido! Siéntete libre de abrir un issue o enviar una pull request con tus cambios.

Licencia

Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para obtener más detalles.

About

Repositorio que contiene una implementación en Python del modelo de Nagel-Schreckenberg para la simulación de tráfico en carreteras. Este modelo proporciona una herramienta sencilla pero efectiva para explorar el comportamiento del tráfico de vehículos y estudiar fenómenos de congestión en carreteras.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors