Genetic Programming is a quite old technique for optimization and with that i lately had to build up a framework for the two main types in that area:
- Evolutionary Strategic (ES)
- Genetic Algorithm (GA)
My language: Go
For this task i decided to work with the programming language Go. This was my second time I used Go as the language to solve the problem. With that I digged into the world of concurrent programming and the Go-world of channels. I can say that it is quite nice to work with channels and it deliver a big performance boost.
The Framework is highly extendable, and can be used in other bigger projects or as standalone version. Everything is based on interfaces and can be changed.
What can be optimized ?
At the moment two main types are implemented:
- Function minimum(/maximum) value search
- Traveling Sales Man optimization (TSP)