Evolutionary Computation

EVOLUTIONARY COMPUTATION

By Jay Jaganaath

It is a known fact that Man always tries to seek out natural phenomena and replicate it to its own benefit. A few notable examples include birds taken as inspiration when designing airplanes, burrs being taken as inspiration for velcro and so on. These replications, known as biomimicry, are used universally to engineer new innovations and solve real world problems.

Such biomimicry has been applied to the world of computing in an unconventional way. This biomimicry is known as a field known as evolutionary computation. In a broad definition, evolutionary computation is a family of algorithms for global optimisation inspired by biological evolution.To understand what evolutionary computing really means, it is first important to know what ‘optimisation’ really means. 
 
Optimisation, in the most general sense, is the selection of a best element (with regard to some criterion) from some set of available alternatives. In the most basic sense, Optimisation can include finding the maximum or minimum value of a function out of a set of points in the range of the function.
In evolutionary computing, a given set of option is continuosly updated until the optimal solution is found. This is derived from the Darwinian principle of ‘Survival of the Fittest’, which states that out of a population of organisms, only the ‘fittest’ can effectively survive and pass their genes on to the next generation.
In computing, such factors like ‘fitness’ are represented by a numerical value given to every option in the data set. In the ‘evolution’ of this data set, elements having the lowest ‘fitness’ in the set have a lower probability to ‘survive’ while the ‘surviving’ elements have a higher chance. During this process, random changes can be given to the properties of few ‘surviving’ options in the set in accordance to the ‘mutation’. Factors like ‘fitness’ and ‘mutation’ both correspond to specific functions that drive the data set towards an optimal solution through such algorithms.
An example of this algorithm in action would be a program which attempts to find a option in a given data set of words, which is identical to the word ‘UNICORN’. In order to achieve this, the program’s algorithm would assign a ‘fitness’ value to each word according to how many letters the word shares with the desired option. For example, if there was an option named ‘POPCORN’, the fitness factor of this option would be 4, as it has 4 letters in common with ‘UNICORN’. The ‘mutation’ function of the algorithm would switch each letter of the randomly chosen option with the next letter in the alphabet after each ‘generation’. For example, if ‘POPCORN’ were to be randomly chosen, the ‘mutation’ function would alter it to be ‘QPQDPSO’.
Evolutionary computing has proven to be invaluable when solving for different optimisation problems, as a program utilising such concepts can effectively find solutions faster and more efficiently than software designed by humans. It has many applications especially in the world of social media marketing. For example, the advertisements that appear on Social Media platforms are customised for each user in that an evolutionary algorithm is used to process the browsing history of the user to find out what kinds of advertisements would be most effective on the user.
In conclusion, Evolutionary computing, one of the few applications of natural systems in Computer Science, is an integral part of the world’s daily functioning.