This is my take on optimizing traffic light controls as a discrete type problem with genetic algorithms.
-
Building with Docker
This will build the project with Docker. This must be done before running the program.
docker build -t tls_optimization . -
Running with Docker
This will run the project with Docker.
docker run --rm -v $(pwd):/app -w /app tls_optimization -
View map statistics
Will display statistics of the downloaded map and traffic network
docker run --rm -v $(pwd):/app -w /app tls_optimization python -m src.sumo_setup.statistics -
Generate network data
This will generate network data that will have phase durations assigned for individual TLS. This is required step to run the optimization algorithm.
docker run --rm -v $(pwd):/app -w /app tls_optimization python -m src.sumo_setup.generation -
Generate map
This will generate a new map following
osm.netccfgconfigurations.docker run --rm -v $(pwd):/app -w /app/src/sumo_setup tls_optimization netconvert -c osm.netccfg
Docker has build-in commands that are ment to be used for house keeping tasks:
docker image prune: delete all dangling images (as in without an assigned tag)docker image prune -a: delete all images not used by any containerdocker system prune: delete stopped containers, unused networks and dangling image + dangling build cachedocker system prune -a: delete stopped containers, unused networks, images not used by any container + all build cache