The term evolutionary computing refers to the study of the foundations and applications of certain heuristic techniques based on the principles of natural evolution; thus the aim of designing evolutionary algorithms (EAs) is to mimic some of the processes taking place in natural evolution. These algo rithms are classified into three main categories, depending more on historical development than on major functional techniques. In fact, their biological basis is essentially the same. Hence EC = GA uGP u ES uEP EC = Evolutionary Computing GA = Genetic Algorithms,GP = Genetic Programming ES = Evolution Strategies,EP = Evolutionary Programming Although the details of biological evolution are not completely understood (even nowadays), there is some strong experimental evidence to support the following points: &8226; Evolution is a process operating on chromosomes rather than on organ isms. &8226; Natural selection is the mechanism that selects organisms which are well adapted to the environment to reproduce more often than those which are not. &8226; The evolutionary process takes place during the reproduction stage that includes mutation (which causes the chromosomes of offspring to be dif ferent from those of the parents) and recombination (which combines the chromosomes of the parents to produce the offspring). Based upon these features, the previously mentioned three models of evolutionary computing were independently (and almost simultaneously) de veloped. An evolutionary algorithm (EA) is an iterative and stochastic process that operates on a set of individuals (called a population).