Skip to content

normal and sequential genetic optimization of evolutionary algorithm in C++ through multithreading in traffic signal

Notifications You must be signed in to change notification settings

roycekeung/GA_T

Repository files navigation

Genetic algorithms c++

Genetic algorithms (GA) was written in c++. It can be used as a library for optimizing the traffic signal timing plan in both python and c++ platform through multithreading for high performance core computation. The genetic algorithm is a type of evolutionary algorithms, and within this project it was derived into NGA and SGA variation respectively.

Input parameters of general GA

params

Flow chart of NGA

NGA

Flow chart of NGA

SGA

General computational process of GA

GA consisted of 13 steps, and it keeps iterating until the generation met up the best performance of the eval value. Too see more detialed, could have checked up <<Genetic algorithms c++ explanation.pdf>> in details

  1. Randomly generate timing plan
  2. Evaluating performance
  3. Sorting populations
  4. Keep elite
  5. fitness ratio calculation
  6. Reproduction of the intermediate parents
  7. Selections of single run crossover
  8. Crossover
  9. mutation
  10. Decoding (translation binary to decimal integer, decimal to binary integer)
  11. Checking crossphase requirement
  12. Checking history for overlapping population
  13. Keep on prepare for next generation

Reference

Dynamic network traffic control Control Strategies for Oversaturated Traffic Advances in Genetic Algorithm Optimization of Traffic Signals

About

normal and sequential genetic optimization of evolutionary algorithm in C++ through multithreading in traffic signal

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages