In this lesson, we will study an Introduction to Evolutionary Algorithms. Evolutionary Algorithms are fast, easy-to-implement, and robust search techniques. These algorithms are highly flexible and do not assume any specific information about the objective function. These algorithms are inspired by evolutionary biology or bionics in short and majorly follow Darwin’s principle of survival of the fittest.

The world of bionics has brought us so many amazing inventions! It’s all thanks to the application of biological or natural principles to the study and design of human systems. We’ve even been able to mimic bats and fish to create incredible inventions like radar and submarines. How cool is that?! And get this, the natural evolution of species has taught us so much about how to adapt to our environment and optimize our fitness. It’s like we can take a page from modern genetics and apply it to craft evolutionary algorithms. So, let’s just brainstorm the concept behind the family of evolutionary algorithms. Evolutionary algorithms derive their inspiration from the Darwinian Principle of the “Survival of the fittest”. According to Darwinian theory, only the fittest will survive in a given environment. And, species with competing interests will evolve over the course of time. So following the same principle, evolutionary algorithms take their inspiration from evolutionary genetics.

Introduction to Evolutionary Algorithms
Survival of the fittest

In the above image, don’t confuse yourself with the thought that the leopard got its meal today, but think of it as an evolution in the family of cats, where some cats have evolved dramatically bigger than my own pet cat. We will not be discussing my cat here. But, we are interested in knowing the genetic principles like mutation, crossover, and selection. Let’s dive a little deeper to understand the design methodology of evolutionary algorithms. There are three major characteristics that help evolutionary algorithms to perform complex optimization or learning tasks with the ability to evolve. We will be discussing each one of these in detail below.

Major features of Evolutionary Algorithms:

The first characteristic of these evolutionary algorithms is a population-based approach. Evolutionary Algorithms or EAs maintain a set of randomized solutions in the search space. These randomized solutions are also referred to as search agents, particles, or individuals. And this set of randomized solutions is called ‘Population‘. This population-based approach helps EAs in achieving parallel learning paradigms to find optimal solutions in the search space.

The second characteristic of EAs is to follow a fitness-oriented approach. Solutions or individuals in the population have their own genetic representation, called its code, and performance evaluation is called its fitness value. This performance evaluation depends on your objective function and the type of your optimization problem. That is, whether you want to minimize or maximize the objective function. If you want to maximize the objective function then the solution with the highest objective value is considered as the fittest. So, the core idea behind EAs is to always prefer fitter individuals. This characteristic of EAs helps in approximating the optimal solution and achieving convergence.

And the third major characteristic which provides Evolutionary Algorithms with a cutting edge is their ability to adapt to the environment by using variations in the population. These variation operators mimic the genetic gene changes and efficiently search the search space. These variations operators are mutation, crossover, and selection operators. These operators help individuals to change their position in the search space. As now you’re ready to understand a major class of these intelligent algorithms, let’s have a major timeline of the development.

AlgorithmsTime Line
Genetic Algorithm (Holland)1967
Artificial Immune Systems (Farmer)1986
Ant Colony Optimizer (Dorgio)1992
Genetic Programming (Koza)1992
Particle Swarm Optimizer (Kennedy and Eberhart)1995
Differential Evolution (Storn and Price)1997
Scatter Search (Glover)2000
Timeline of some standard evolutionary algorithms

Applications of Evolutionary Algorithms

Applications of Evolutionary Algorithms

The applications of Evolutionary Algorithms can be broadly studied under two major categories: Optimization Problems and Learning Problems. Optimization problems arise in almost every aspect of science, decision science, and management of resources while learning problems concern is to provide machines an “intelligence” similar to humans or about some minor percentage of what the human mind can learn. These learning problems are basically “Artificial Intelligence (AI)” problems. Different kinds of learning methods are used, some of which you may have already heard like supervised learning, unsupervised learning, and reinforcement learning. We will later discuss these problems in detail. If you’re interested in understanding these learning methods see here. (link to blog Introduction to learning methods.) Anyway, these both optimization problems and learning problems can be tackled using evolutionary algorithms. Even most of the challenging real-world optimization problems can be solved using evolutionary algorithms which was not possible earlier using traditional optimization techniques. Here below we list some of the applications from various academic disciplines where these intelligent algorithms can be used.

Apart from the above-mentioned applications the use of evolutionary algorithms is widespread in control theory, game theory, image processing, signal processing, planning and scheduling, multi-objective optimization, and many more. In short, if you’re having a convex problem which is involving various model parameters, evolutionary algorithms can become a handy choice for you. We will be discussing some popular evolutionary algorithms in detail and try to implement these algorithms in some computing environments like Python or MATLAB.

I hope you enjoy reading the introduction to evolutionary algorithms. Leave your comments and insights in the comment section below. Happy Learning!

Leave a Reply

Your email address will not be published. Required fields are marked *