In this section:
Like all genetic algorithms, gene expression programming uses populations of individuals and, therefore, some kind of initial population must be created to get things started. Subsequent populations are descendants, via genetic modification, of this initial or founder population. We have already seen that, in genotype/phenotype systems, we only need to create the chromosomes of the individuals and let the developmental process take charge from there. Thus, in GEP, it is only necessary to create randomly the simple chromosomal structures of the individuals of the initial population. And this is a trivial task. For each problem, we must choose the symbols used to create the chromosomes, that is, we must choose the set of functions and terminals we believe to be appropriate to solve the problem at hand. We must also choose the length of each gene, the number of genes per chromosome and how the products of their expression interact with one another. And, finally, we must provide for a selection environment (the set of fitness cases) against which the fitness of each individual is evaluated. Then, according to fitness, individuals are selected to reproduce with modification, giving birth to the new members of the next generation. This new population is then subjected to the same developmental process and one more new population is created. This process is repeated for a certain number of generations or until a good solution has been found.