Schools of Evolutionary Computation
Evolutionary Computation is a field of artificial intelligence that is used to solve many real-life problems. It is based on the biological evolution process that uses many optimization techniques like self-organization, genetic algorithms, swarm intelligence, evolutionary programming, genetic programming, cultural algorithms and harmony search algorithms. Yao (1999; p.1) has explained evolutionary computation as, "Evolutionary computation is the study of computational systems which use ideas and get inspiration from natural evolution and adaptation. It aims at understanding such computational systems and developing more robust and efficient ones for solving real-world problems."
In the world of computer science, evolutionary computation is used to make search more precise and effective. These different techniques make it possible to get accurate results for the given set of keywords. This improved search can make a huge difference because of the voluminous amount of information that is available around the world. These techniques also help to reduce the amount of time for each search. Out of the different evolutionary computation techniques, genetic algorithms, genetic programming and evolutionary programming are more extensively used.
Genetic Algorithm
Genetic Algorithms are based on Darwin's Theory of Evolution. It was developed by John Holland during 1960s at the University of Michigan in Ann Arbor. This algorithms follows the principle that the best or fittest model is the best way to design a robust system that is adaptive to changing needs.
In this algorithm, a basic set of solutions are taken and this is called the population. The individual solutions are the strings or chromosomes. Out of these, the best and fittest chromosomes are taken to form new populations to produce a set of solutions that are better than the previous solution. This iterative process is continued until a solution that matches the specified constraints is obtained. This is a simple, yet powerful means of finding solutions for a problem.
The distinguishing features of the genetic algorithms are its three features -- the representation: bit strings, method of selection: proportional selection and the method of producing variations: crossover. (Back, Fogel & Michaelwicz, 2000). Another salient feature of this type of algorithm is that it uses the time-tested principles of evolution, namely mutation, selection and reproduction. One major advantage of this algorithm is its parallel processing. The offspring work in a parallel fashion making it faster to get accurate results and less time-consuming than serial processing. This also makes it possible to solve problems without knowing anything at the start of the process. So, it works well in most of the situations and has a lot of real-world applications.
Genetic algorithms is used in a wide range of industries like automotive design, robotics, telecommunications and routing problems, gaming, encryption and even in investment ideas and strategies. Each of these applications has a different process and a different goal. In the automotive industry, it can be used to come up with the best design and materials for different race cars to get the best performance from them. While the robotics industry uses genetic algorithms to come up with the optimal solutions from the vast available set of solutions, the finance industry is likely to use it to identify pit holes or problems that can prevent catastrophes like the current economic meltdown. According to Mitchell (1998, p.16), "GAs have been used to evolve computer programs for specific tasks, and to design computational structures such as cellular automata and sorting networks." These algorithms can also be used to find the best route in telecommunications, aviation and shipping.
Despite these numerous applications, they are not without criticism. The different parameters like the size of the population, crossover, choice of strings and the rate of mutation must be controlled to get the best results. It can also result in a problem called premature convergence in which one fitter individual can dominate the others and this can lead to a localized solution instead of searching the entire population. These are some of the drawbacks of this technique.
Genetic Programming
Genetic Programming is a specialized part of genetic algorithm where each individual is a computer program that is designed to perform a specific user-defined task. It starts with an initial set of computer programs that has numerous functions and domains to solve a particular problem. Then, each program is measured in terms of how well it can perform in a given environment. Based on this test called the fitness measure, the fit programs are selected for the next generation of reproduction. This process is continued until the best solution is determined. (Koza, 1992).
The advantages of genetic programming is that it is an evolving process based on the tested process of natural selection and evolution. This also uses parallel processing and so it can produce more accurate results within a short period of time. Due to these advantages, it is used in many real-world applications.
It plays a profound role in data mining and virtual reality, in every field ranging from finance to gaming. Specialized computer programs can retrieve data from large databases with a lot of precision and speed. These programs can also be used to identify relationships among this data and express them in a way that is best suited for the user. In the field of virtual reality, it can be used to generate the right graphical shapes and sounds to better depict a certain scenario.
Though genetic programming is used in many major applications and fields of study, it also comes with some criticism. The main criticism is that it is very difficult to implement a solution that will solve search as well as optimization problems. Also, genetic programs can only solve problems that have a broad outline. It is not possible to get results when the user starts from zero.
Evolutionary Programming
Evolutionary programming is another optimization technique that is a slight variant of the genetic algorithms. Instead of focusing on the genetic factors of evolution, the evolutionary programming technique lays more emphasis on the behavioral relationship between the parent and offspring. The process is very similar to the other techniques. A random sample is selected and out of this each solution is reproduced to a new population. The fitness of each solution is computed and a tournament selection process is followed to pick the fittest or the best solution. Under this solution, an individual or parent is chosen based on how many other individuals it was able to beat during the tournament.
You’re 81% through this paper. Sign up to read the full paper.
Sign Up Now — Instant Access Already a member? Log inAlways verify citation format against your institution’s current style guide requirements.