Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Genetic Algorithms in Python and MATLAB
Rating: 4.5 out of 5(596 ratings)
27,669 students

Genetic Algorithms in Python and MATLAB

A Practical and Hands-on Approach
Last updated 1/2021
English
English [Auto],

What you'll learn

  • How genetic algorithms work?
  • Binary and Real-Coded Genetic Algorithms
  • Implementation of GA in Python and MATLAB

Course content

4 sections42 lectures4h 12m total length
  • Introduction4:25

    Define genetic algorithms as evolutionary methods for optimization, and explore their theory, structure, and DNA-like representations, then implement a simple version in MATLAB and Python.

  • What is an Evolutionary Algorithm?4:27

    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.

  • What is a Genetic Algorithm?3:55

    Define the genetic algorithm workflow: create an initial population, evaluate with an objective function, perform crossover to produce offspring, apply mutation, merge populations, and select top members until termination.

  • Crossover12:35

    Learn how the crossover operator blends two parent chromosomes to create offspring in genetic algorithms, illustrating single-point, double-point, and uniform crossover with binary representations and simple equations.

  • Mutation4:31

    Mutation flips binary chromosome genes to introduce exploration, selecting random indices and applying a mutation rate to produce mutated offspring after crossover.

  • Parent Selection5:04

    Explore how genetic algorithms choose parents by comparing random selection, deterministic and probabilistic tournament selection, and roulette wheel real selection, emphasizing fitness-based probabilities.

  • Merging, Sorting and Selection4:02

    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.

Requirements

  • Basic Math and Optimization
  • Python Programming
  • MATLAB Programming

Description

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.

Who this course is for:

  • Computer Science Students
  • Engineering and Applied Math Students
  • Anyone interested in Optimization
  • Anyone interested in Computational Intelligence
  • Anyone interested in Metaheuristics
  • Anyone interested in Evolutionary Computation