Evolutionary computing is an emerging optimization approach highly inspired by the biological processes and Darwin’s natural selection and genetic inheritance.
I really wanted to write this blog post because I was highly concerned with the word in bold above (optimization). When I just started learning “Artificial Neural Networks and Evolutionary Computing as a subject module in my 7th semester at the university, I only had a vague idea about the field. It was later when I attended the lectures week by week that I realized these Neural networks can do nothing more but act as a classification model. The optimized result cannot be given using a neural network, clustering or recurrent neural network approach (except for reinforcement learning). (But the learning or the minimization of error in a network itself in ANN is an optimization approach.)
Therefore, in order to solve a so-called optimization problem, we have to use an Evolutionary computing approach which I’m going to discuss in this blog post.

Neural networks and fuzzy systems are two soft-computing paradigms for system modelling. Evolutionary computation is a general-purpose stochastic global optimization approach under the universally accepted neo-Darwinian paradigm, which is a combination of the classical Darwinian evolutionary theory, the selectionism of Weismann, and the genetics of Mendel. Evolutionary algorithms are a major approach to adaptation and optimization.
The following three terms will be highly mentioned in the post and the general meanings of then are as follows. No need to be scared! 😉
- The individual – the candidate solution
- Fitness – the quality
- Environment – the problem
According to biology, chromosomes from parents (DNA elements of parents) are exchanged to produce offspring. These chomosomes contains genetic traits of each parent and off springs will inherit these genetic traits with some variance. The process of interchanging of chromosomes to produce off springs is known as the crossover operation in Evolutionary Computing.
During the same reproduction process, the errors could also occur and can make it significantly deviated from the parent. This deviation of parents’ traits can bring new features to the off spring and there by can introduce new features to the following generations. The process of error introduction or the error generation during the reproduction is called the mutation operation in Evolutionary Computing.
So, basically the crossover operations allow us to propagate the traits of parents to the following generations and the mutation operations allow us to introduce new traits.
Therefore, as explained in Darwin’s theory, the individuals or off springs who inherit strong traits from the parents or those who have strong traits due to error during reproduction has higher chance of survival (has higher fitness to face the environment problem.) The other aspects of evolutionary computing is that it allows you to find the near optimal solutions for a given problem similar to the existing mathematical models for optimization (least score optimization).
It starts with some arbitrary solutions using the principles of Darwin’s theory, it evolves the solution space and after couple of iterations, it can find near optimal solutions for a given problem. The most useful feature of evolutionary computing is that population is a collection of individuals or solutions with some fitness values. Therefore at any given time of the experiment, you may be able to find the solution even with less fitness values. Thus compared to the mathematical approaches which find single solutions for a given problem, evolutionary computing can produce solutions for a given problem with different fitness values.
Evolving of population or generating of offspring for the next population is a process of how you can apply crossover and mutation operation. If you apply only crossover operation, the the offspring will carry only the traits of parents. So you will find solutions that digs into the same path of parent solution with some variability. Therefore crossover operation will bring you exploitation character to the population. On the other hand, if you apply mutation, it’ll introduce some error in the available traits and deviate the traits significantly from its parents; traits. The process of mutation allows or create off springs which might be completely different to the parents’ and allows to explore the search space using different set of traits. Therefore mutation introduce the exploration character to the population.
When are Evolutionary Algorithms Useful?
- Applications to find the optimal combination of fertilizer amounts that will maximize the yield of a plant and minimize the deficiencies.

- Optimizing the price of hotel rooms for accommodation based on the seasons, weather conditions…etc.
- Optimizing the prices of flight tickets.
- Optimization of the steering angle of autonomous vehicles.
- NASA – Automated optimization and design across a diverse set of mission applications.

Genetic algorithms which comes under the field of Evolutionary computing will be discussed in an upcoming blog post.