This module utilizes Memetic Algorithm (AI) to optimally place Roadside Units in a given area map.
Fig. 1 - Framework of the Roadside Unit Placement Module
It was observed that an increase in the number of RSUs helps improve the fitness scores as is visible from the below graphs.
Fig. 2 - Fitness scores vs. No. of RSUs in Area 1 and Area 2 respectively
It was also observed that when compared to GA and GARHC algorithms (as explained in the above paper), MFRD performed the best w.r.t high fitness scores. It was also observed that as the number of generations (iterations) are increased, fitness score also increases. Both these results can be inferred from the following graphs.
Fig. 3 - Comparison of Fitness scores of RSU placement algorithms for 9 RSUs in Area 1 and Area 2 respectively
Below are the layouts for Area 1 and Area 2 showing the evolution of the best deployment locations of 12 RSUs in Area 2 obver the span of 30 generations of the MFRD algorithm.
Fig. 4 - Evolutio of deployment of 12 RSUS in Area 2 after Generation 0, 15, and 30 respectively.
-
First, install the SUMO application in your system. The steps to do so according to your system's OS are present in the official documentation here --> https://sumo.dlr.de/docs/Installing/index.html
-
Create a folder where you will keep all the files in this repository.
-
Next, download the files from this repository. There are 4 python files in this repository. Their descriptions are as follows: a) "genetic_modular.py" contains the code for genetic algorithm (GA). b) "memetic_modular.py" contains the code for memetic algorithm (MFRD). c) "mem2.py" contains the code for GARHC algorithm. d) "graphs.py" helps generate different graphs for visualization purpose.
-
You need to have a software installed in your system to run python files.
-
Create a folder "Map" inside the previous folder. Inside "Map", place the map.net.xml file. This file contains the area layout of Area 1 (Murlipura, Jaipur).
-
Now, run graphs.py to obtain graphs pertaining to GA, MFRD, and GARHC algorithms. You can vary the number of RSUs and the initial population size by changing the values of the variables RSU_COUNT and POPULATION_SIZE at the very start of each of the 3 python files containing the algorithms.