Este trabajo fue realizado en el marco de Trabajo Final de la materia Algoritmos y Estructuras de Datos, de la carrera Ingeniería en Computación, Facultad de Ciencias Exactas, Físicas y Naturales, Universidad Nacional de Córdoba. La consigna detalla las siguientes especificaciones: El trabajo consiste en simular el tráfico en una ciudad. Ud. conduce un vehículo desde un punto de la ciudad a otro, y desea hacerlo de la manera más rápida posible. La ciudad está conformada por manzanas cuadradas, calles de una sola mano que tienen un solo carril y avenidas de doble mano de dos o de tres carriles por mano. En cada esquina existe un semáforo para evitar colisiones entre autos. Cada turno de semáforo verde permite que pasen n autos por carril, por lo que en una avenida pasaran 2n o 3n, según la cantidad de carriles que disponga. El valor para n debe definirse por anticipado, pero que una vez definido, no cambia. Cada carril tiene capacidad para alojar solo 3*n vehículos. Si al cruzar un semáforo, se desea ir hacia una calle o avenida con el/los carril/es con la capacidad colmada, dicho vehículo no avanza. En la ciudad también circulan ambulancias y patrulleros de policia, los cuales tienen prioridad de paso, por lo que no deben esperar su turno (en la cola) para cruzar el semáforo, pero si deben esperar que el semáforo este en “verde” para pasar. Se deberá definir el “plano” de la ciudad donde simular el tráfico con la forma que prefiera. Deberá respetar un mínimo de 64 manzanas, distribuidas como un cuadrado de 8 x 8 manzanas, con cuatro avenidas, dos por cada dimensión. La configuración deberá leerla desde un archivo,donde podrán reflejarse cambios en el plano a simular. Al comienzo de la simulación, deberá introducir en la ciudad un número arbitrario (o aleatorio) de autos, ambulancias y patrulleros, cada cual con un origen y un destino. Una vez que el vehículo arribe a destino, puede sacarlo de la simulación. Puede suponer que los orígenes y destinos son lasesquinas. La forma en que los vehículos circulan es la siguiente: todos los semáforos se habilitan (verde) una vez por cada iteración, es decir, si hay s semáforos, se habilita cada uno de dichos semáforos. En ese momento circulan los vehículos que estaban esperando hacia la siguiente esquina, en la cantidad que corresponda, y se continúa con el siguiente semáforo. En cada iteración se habilitan una sola vez todos los semáforos. El orden en el cual se habilitan dentro de la iteración depende de la “carga” que tengan los semáforos, por lo que aquellos con colas mas largas deberán habilitarse antes que los de menorcola. Deberá utilizar un grafo para representar la ciudad, una cola de prioridad por semáforo (implementada con una heap en arreglo), y deberá determinar el camino más corto para cada vehiculo, el cual definirá su recorrido. Para su vehículo, deberá redefinir dicho recorrido cada 2 iteraciones, teniendo en cuenta el estado de “saturación” del tráfico. Deberá generar por cada iteración un “ranking” de los semáforos más saturados a los efectos de habilitarlos según ese orden. Al final de cada iteración deberá mostrar el estado de cada semáforo por pantalla o sobre un archivo, a los fines de realizar el seguimiento de la simulación.
-
Notifications
You must be signed in to change notification settings - Fork 0
Este trabajo fue realizado en el marco de Trabajo Final de la materia Algoritmos y Estructuras de Datos, de la carrera Ingeniería en Computación, Facultad de Ciencias Exactas, Físicas y Naturales.... (continuar)
mgleria/Simulacion-Trafico-C-
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
Este trabajo fue realizado en el marco de Trabajo Final de la materia Algoritmos y Estructuras de Datos, de la carrera Ingeniería en Computación, Facultad de Ciencias Exactas, Físicas y Naturales.... (continuar)
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published