Evolutionary computation is a relatively new technique. The term itself was first suggested in 1991 and represents many researchers have worked on different methods of simulating different aspects of evolution. These include genetic algorithms, evolution strategy and evolutionary programming. All of these techniques involve the reproduction, random variation, competition and selection of contending individuals. These make up the principles of evolution on a computer.
Evolution works as an optimization process. This does not mean that it is perfection but evolution can still solve extremely complex issues with precise solutions. For this reason researchers have sought to discover an algorithm to solve difficult engineering problems.
Previous techniques were to use gradient descent, deterministic hill climbing, and purely random search without heredity. The results of these techniques were unsatisfactory when applied to many problems of optimization that natural evolution seemed to solve well.
Truly intelligent machines have been sought for many years. Some define intelligence as the capability of a system to change its behaviors in order to meet its goals. This requires prediction because it must predict the circumstances and then make the appropriate changes. Instead of attempting to replicate humans through rules or neural connections a new alternative is to simulate evolution by predictive evolutionary programming. This was the base of evolutionary programming of Fogel.
Computer evolution is being used not only to solve particular problems but also to capture evolution in a simulation. This gives insight into the natural evolution process. The success of this allows the study of biological systems that are only possibilities of what life might be like. This questions what these imagined systems might have in common with naturally evolved life.
Evolutionary computation covers a wide continuum of areas. These can be broken up into five broad categories which are not absolute or definitive:
Simulation and identification
One of the largest problems for optimization is the traveling salesman problem. A salesman must travel to a number of different cities and get home. Trying to optimize the speed and accuracy to predict the best order for the salesman to visit the cities to minimize time spent traveling.
Evolutionary Computation has been applied greatly to artificial neural networks, both in their design and in the search for the optimal weights. It has also been applied to several engineering applications, especially structure design in both the two-dimensional aspects as well as three-dimensional aspects.
Simulation and Identification
Simulations are often created when researchers are unsure about what the behaviors might be. Evolutionary Computation is often applied to very complex problems in scientific fields. Roosen and Meyer used such as strategy with they were trying to determine the equilibrium of chemically reactive systems. This simulation determined what the minimum free enthalpy of the system involved.
Evolutionary computation is used in physically simulated animation through space time constraints. Through evolutionary algorithms the simulation is able to apply physics to a character while allowing the animators to have control over the actions of the characters. One major application of this is Natural Motion’s Endorphin.
Evolutionary Computation has two approaches to control, an on-line approach and an off-line approach. Off-line refers to the use of evolutionary algorithms to create a contoller for a system. The on-line approach refers to the use of evolutionary algorithms as an active control process. Evolutionary computation allows for a controller that is able to adapt to a system that is able to change over time. Examples of this are the control of guidance and navigation systems and blancing a pole on a moving cart. The balancing of a pole using evolutionary computation is closely related to controlling FK joints of a character to allow it to balance.
Classification systems are used by many systems to define characteristics of the environment so that they may be controled by a control system. Gameplaying is an application that also utilizes classification systems. It is usually applied to simple games but has also been used for serious military games.