
Explore how evolutionary algorithms initialize a random population, run an evolution loop with selection, reproduction, crossing over, and mutation, and terminate when criteria are met.
Explore merging, sorting, and selection in genetic algorithms, combining parent populations with offspring from crossover and mutation to form the next generation from scratch in MATLAB and Python.
Merge and sort the population by cost, then select the top members for the next generation. Update the best solution and its cost for the current iteration as you iterate.
Perform continuous uniform crossover by sampling alphas in [0,1] to form offspring as convex combinations of parents X1 and X2, optionally expanding to [-gamma, 1+gamma] for exploration.
Finalize a real-coded genetic algorithm in MATLAB by generating random real-valued chromosomes, applying uniform crossover and mutation with a defined sigma, evaluating costs, and tracking the best solution across iterations.
Enforce variable bounds in genetic algorithms by checking lower and upper bounds after crossover and mutation, before evaluating the cost function, using per-variable bound arrays.
Implement a real-domain uniform crossover that creates two offspring C1 and C2 from parents P1 and P2 using gamma-based equations, with deep copies to handle reference types.
Evaluate and compare c1 and c2 by cost, update best solution if cheaper, ensure copies for reference types, append offsprings to popC, then merge, sort, and select the next generation.
Genetic Algorithms (GAs) are members of a general class of optimization algorithms, known as Evolutionary Algorithms (EAs), which simulate a fictional environment based on theory of evolution to deal with various types of mathematical problem, especially those related to optimization. Also Genetic Algorithms can be categorized as a subset of Metaheuristics, which are general-purpose tools and algorithms to solve optimization and unsupervised learning problems.
In this series of video tutorials, we are going to learn about Genetic Algorithms, from theory to implementation. After having a brief review of theories behind EA and GA, two main versions of genetic algorithms, namely Binary Genetic Algorithm and Real-coded Genetic Algorithm, are implemented from scratch and line-by-line, using both Python and MATLAB. This course is instructed by Dr. Mostapha Kalami Heris, who has years of practical work and active teaching in the field of computational intelligence.
Components of the genetic algorithms, such as initialization, parent selection, crossover, mutation, sorting and selection, are discussed in this tutorials, and backed by practical implementation. Theoretical concepts of these operators and components can be understood very well using this practical and hands-on approach.
At the end of this course, you will be fully familiar with concepts of evolutionary computation and will be able to implement genetic algorithms from scratch and also, utilize them to solve your own optimization problems.