Gene expression programming

Gene Expression Programming (GEP) is a new evolutionary algorithm that evolves computer programs. The individuals of gene expression programming are encoded in linear chromosomes which are expressed or translated into expression trees (branched entities). Thus, in GEP, the genotype (the linear chromosomes) and the phenotype (the expression trees) are different entities (both structurally and functionally) that, nevertheless, work together forming an indivisible whole.

As in nature, the linear chromosomes consist of the genetic material that is passed on with modification to the next generation. Therefore, in GEP, all the genetic modifications take place in the chromosomes, and only the chromosomes are transmitted in the process of reproduction. After reproduction the new chromosomes are expressed forming the body or expression trees (ETs).

The ETs are themselves computer programs evolved to solve a particular problem and are selected according to their capabilities in solving the problem at hand. With time, populations of such computer programs discover new traits and become better adapted to a particular selection environment (for instance, a set of experimental results) and, hopefully, a good solution evolves.

Due to the genotype/phenotype representation and to the multigenic organization of GEP chromosomes, this new algorithm surpasses the old GP system in 100-10,000 times.

To know all the details of this new algorithm, see the seminal GEP paper (published in Complex Systems) where the algorithm is fully described and applied to a vast set of problems, including symbolic regression, Boolean concept learning, and cellular automata.