Table of Contents


Last Updated: 2/6/2023

Evolutionary Computing

What is Evolutionary Computing?

Evolutionary computing is a way for a computer to solve problems by mimicking how living things evolve in real life. Just like animals and plants change over time to better survive in their environment, a computer program can improve itself to solve a task better. It's like a computer game where the computer creates different "creatures," and the best ones survive to create new generations... also known as "Survival of the fittest."

Evolutionary computing is a family of computational techniques inspired by the principles of biological evolution, such as reproduction, mutation, selection, and adaptation. These techniques solve optimization and search problems by generating and manipulating a population of candidate solutions, where each candidate represents a possible solution to the problem. The population evolves through the application of genetic operators, such as crossover and mutation, that create new candidates by recombining and altering the genetic information of existing ones. The fitness of each candidate is evaluated by a fitness function that measures its quality or suitability for the problem at hand. The candidates with higher fitness are more likely to be selected for reproduction and to contribute to the next generation. In comparison, the ones with lower fitness are more likely to be eliminated from the population. This process is repeated for several generations until a satisfactory solution is found or a stopping criterion is met.

Evolutionary Computing in Real Life

Evolutionary algorithms are a class of optimization algorithms inspired by the principles of biological evolution and are widely used in various real-life applications, including:

  1. Engineering design optimization: Evolutionary algorithms can optimize the design of various engineering systems, such as airplanes, automobiles, and spacecraft.
  2. Finance: Evolutionary algorithms are used in portfolio optimization, algorithmic trading, and risk management.
  3. Healthcare: Evolutionary algorithms are used in drug discovery, protein folding prediction, and medical diagnosis.
  4. Image and signal processing: Evolutionary algorithms are used for image and signal processing tasks such as image denoising, feature extraction, and compression.
  5. Machine learning: Evolutionary algorithms are used for hyperparameter tuning and model selection in machine learning models.
  6. Robotics: Evolutionary algorithms are used for robot control and locomotion optimization. These are just a few examples of evolutionary algorithms' many real-life applications.

Evolutionary Computing Classification

Evolutionary Computing Types

Evolutionary Algorithms (EAs) and Swarm Optimization (SO) are algorithms used to solve optimization problems inspired by the principles of biological evolution. Even though they sound very similar, they have some key differences:

  1. Evolutionary Algorithms (EA): EAs are a class of optimization algorithms inspired by the principles of biological evolution, such as natural selection and genetic recombination. They work by representing candidate solutions to a problem as a population of individuals and then using genetic operations such as selection, crossover, and mutation to evolve this population over time toward better solutions. Evolutionary Algorithms include families of algorithms like:
    1. Genetic Algorithms (GAs): Genetic algorithms use a genetic metaphor to evolve candidate solutions to a problem. They represent solutions as strings of binary or real-valued numbers and use genetic operations such as selection, crossover, and mutation to evolve these strings over time.
    2. Evolutionary Strategies (ESs): Evolutionary strategies use a probabilistic evolution model to evolve candidate solutions to a problem. They represent solutions as vectors of real-valued numbers and use perturbation operators to evolve these vectors over time.
    3. Evolutionary Programming (EP): Evolutionary programming uses an explicit evolution model to evolve candidate solutions to a problem. They represent solutions as functions and use genetic operations to evolve these functions over time.
    4. Genetic Programming (GP): Genetic programming uses a genetic metaphor to evolve computer programs to solve a problem. They represent programs as trees and use genetic operations such as crossover and mutation to evolve these trees over time.
    5. Differential Evolution (DE): Differential Evolution is a simple and efficient global optimization algorithm that uses differences between candidate solutions to drive the evolution.
  2. Swarm Intelligence Optimization (SO): SO is a class of optimization algorithms inspired by the behavior of social animals, such as birds, ants, and bees. They work by representing candidate solutions as particles and then using interaction and cooperation between these particles to find a better solution. some of the most widely used families of algorithms in SO include:
    1. Ant Colony Optimization (ACO). Ant Colony Optimization is a swarm intelligence optimization algorithm inspired by the foraging behavior of ants. In ACO, candidate solutions to a problem are represented as ants that explore the search space and update a pheromone trail that guides the movement of other ants. The ants update the pheromone trail based on the quality of the solutions they find, with better solutions leading to stronger pheromone trails.
    2. Particle Swarm Optimization (PSO). Particle Swarm Optimization is a swarm intelligence optimization algorithm that mimics the behavior of social animals, such as birds and fish, to find optimal solutions to a problem. In PSO, candidate solutions are represented as particles that move and interact with each other in a search space. The movement of these particles is guided by local and global information about the search space.
    3. Artificial Bee Colony (ABC). Artificial Bee Colony is a swarm intelligence optimization algorithm inspired by the foraging behavior of honey bees. In ABC, candidate solutions to a problem are represented as bees that explore the search space and update their positions based on the quality of the solutions they find. A combination of local and global information about the search space guides the movement of the bees.
    4. Firefly Algorithm (FA). Firefly Algorithm is a swarm intelligence optimization algorithm inspired by the flashing behavior of fireflies. In FA, candidate solutions to a problem are represented as fireflies that emit light and update their positions based on the quality of the solutions they find. The fireflies' movement is guided by their relative brightness, with brighter fireflies attracting other fireflies to their location.
    5. Cuckoo Search (CS): Cuckoo Search is a swarm intelligence optimization algorithm that is inspired by the egg-laying behavior of cuckoos. In CS, candidate solutions to a problem are represented as cuckoos that lay eggs in nests and update their positions based on the quality of the solutions they find. The movement of the cuckoos is guided by a combination of local and global information about the search space.

In summary, all these algorithms are used for optimization but use different strategies to find the optimal solution. Evolutionary algorithms use a genetic metaphor to evolve a population of candidate solutions, and swarm optimization uses a population of agents that interact with each other.

Extra Resources

Books

This book introduces evolutionary computing, including its history, theory, and practical applications. It is ideal for beginners and intermediates who want to learn about evolutionary algorithms, genetic algorithms, and other types of evolutionary computing.

This book is a complete guide to genetic programming, a type of evolutionary computing that uses evolutionary algorithms to solve complex problems. The book introduces the theory and practice of genetic programming, including its history, key concepts, and applications. It covers various aspects of genetic programming, including representation, selection, recombination, mutation, and fitness evaluation. The book also includes numerous examples and case studies to illustrate the concepts and techniques of genetic programming.

Videos