Versión y Actividad
Análisis
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.
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.
- Clona este repositorio en tu máquina local:
$ git clone https://github.com/imarranz/nagel-schreckenberg-model.git
- Accede al directorio del proyecto:
$ cp nagel-schreckenberg-model
- 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
- Observa la simulación en tiempo real y analiza el comportamiento del tráfico en la carretera.
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.
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.
Asegúrate de tener Python 3.x instalado en tu sistema. Además, puedes instalar las bibliotecas necesarias ejecutando:
$ pip install numpy matplotlib
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.
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para obtener más detalles.
