What is evolutionary computation?

by Stephen M. Walker II, Co-Founder / CEO

What is evolutionary computation?

Evolutionary computation is a subfield of artificial intelligence that uses algorithms inspired by biological evolution to solve complex optimization problems. These algorithms, known as evolutionary algorithms, are population-based and operate through a process of trial and error. They use mechanisms such as reproduction, mutation, recombination, and selection, which are inspired by biological evolution.

The process begins with an initial set of candidate solutions. These solutions are then iteratively updated, with weaker solutions being stochastically removed and stronger solutions being used to generate new ones. This process is intended to simulate natural selection and mutation, leading to a population of increasingly refined solutions.

Evolutionary computation is particularly useful for problems that have too many variables for traditional algorithms to handle effectively. It's often used when the fitness function (a measure of solution quality) has many local extrema that can trap sequential methods.

Applications of evolutionary computation are numerous and diverse. They include solving optimization problems, designing robots, creating decision trees, tuning data mining algorithms, training neural networks, and tuning hyperparameters. In the field of machine learning and data science, evolutionary computation can be used to optimize 'black box' models and statistical models.

One notable approach within evolutionary computation is genetic programming, which involves the evolution of programs themselves. This was advocated by John Koza, who used Lisp S-expressions (trees of sub-expressions) to represent programs, allowing for the swapping of subtrees as a form of genetic mixing.

What are the benefits of using evolutionary computation?

  1. Flexibility — EC procedures are flexible and can be easily adjusted to the problem at hand. Almost any aspect of the algorithm may be changed and customized.

  2. Self-Adaptation — EC has the ability to self-adapt the search for optimum solutions on the fly. This means that the algorithms can adjust themselves based on the problem's requirements and the solutions they find.

  3. Robustness — EC is robust with respect to noisy evaluation functions, making it suitable for problems where the evaluation function might be noisy or uncertain.

  4. Global Optimization — EC optimizers are global optimization methods and scale well to higher dimensional problems.

  5. Parallel, Exploratory Search — EC performs a parallel, exploratory search for solutions, which allows it to try out novel ideas and discover surprising and creative solutions.

What are some of the challenges associated with evolutionary computation?

  1. Lack of Reproducibility — EC is affected by the lack of accepted benchmark problems, making the measurement of performance a tricky business. There is also a lack of standard algorithms and implementations.

  2. No Theoretical Guarantees on Convergence — In general, EC offers no theoretical guarantees on convergence. They only guarantee improvements in successive iterations.

  3. Benchmarking Issues — Benchmarking is a cornerstone in the analysis and development of computational methods, especially in the field of EC. However, some of the frequently used benchmark functions have their respective optima in the center, which makes their comparison with other methods challenging.

How does evolutionary computation compare to other AI methods?

EC differs from other AI methods like deep learning in several ways. While deep learning is focused on modeling known behaviors and abilities, EC can afford to try out novel ideas and discover surprising and creative solutions. This is because EC is based on a population of solutions rather than a single, continuously refined solution.

What are some potential applications of evolutionary computation?

EC has potential applications in various fields:

  1. Industry, Medicine, and Defense — EC is becoming a common technique for solving difficult, real-world problems in these sectors.

  2. Image Analysis, Signal Processing, and Pattern Recognition — EC can be used in these areas to develop more efficient and effective solutions.

  3. Edge, Fog, and Cloud Computing — EC can be used to optimize the performance and efficiency of these computing paradigms.

  4. Social Networks — Applications of bio-inspired techniques on social networks can be developed using EC.

  5. Creative AI — EC can drive the future of creative AI by discovering solutions that are surprising and creative.

  6. Design and Engineering Problems — EC can be used to solve complex design and engineering problems.

  7. Reinforcement Learning — EC can be used to design neural networks for reinforcement learning.

  8. Scheduling Problems — EC can be used to solve complex scheduling problems.

More terms

What is STanford Research Institute Planning System (STRIPS)?

STRIPS, or Stanford Research Institute Planning System, is a programming language and algorithm for automated planning in artificial intelligence. It was developed by Richard Fikes and Nils Nilsson at the Stanford Research Institute in 1969. STRIPS uses a state-space representation of the world to plan actions that will achieve a given goal. The system represents the current state of the world as a set of propositions, or facts, and defines actions as transformations between states. It then uses a search algorithm to find a sequence of actions that will lead from the initial state to the desired goal state. STRIPS has been widely used in robotics, game playing, and other applications where automated planning is required.

Read more

What is a branching factor?

The branching factor in computing, tree data structures, and game theory refers to the number of children at each node, also known as the outdegree. When the number of children per node is not uniform across the tree or graph, an average branching factor is calculated to represent the typical case.

Read more

It's time to build

Collaborate with your team on reliable Generative AI features.
Want expert guidance? Book a 1:1 onboarding session from your dashboard.

Start for free