Genetic algorithm (GA) is an adaptive exploratory algorithm developed by J.H. Holland in 1975. GA is used in order to find optimal or near-optimal solutions for problems which are hard or impossible to be solved, using classical search/optimization algorithms in a reasonable amount of time. This algorithm was inspired from Charles Darwin’s theory of natural evolution and uses bioinspired operators like crossover, mutation and selection to solve the problem. Some of applications of genetic algorithm include, image processing, solving Sudoku puzzles, solving travelling salesman problem, feature selection and etc.
- Studying prerequisites which are necessary to understand GA better.
- Explaining GA, thoroughly and in detail.
- Reviewing some of articles that used GA to solve a problem.
- Implementing GA algorithm from scratch in Python for a sample problem.
The focus in this presentation is on a deep and detailed understanding of this algorithm theoretically and implementing this algorithm in Python is also done in order to have a better and deeper understanding. Therefore, it is not necessary to learn or know Python programming language, as a prerequisite for this presentation, but, if you want to implement GA one day, being able to Python program will be beneficial.