Back to Publications
2009

Why evolution is not a good paradigm for program induction

Woodward, John R. and Bai, Ruibin

Abstract

We revisit the roots of Genetic Programming (i.e. Natural Evolution), and conclude that the mechanisms of the process of evolution (i.e. selection, inheritance and variation) are highly suited to the process; genetic code is an effective transmitter of information and crossover is an effective way to search through the viable combinations. Evolution is not without its limitations, which are pointed out, and it appears to be a highly effective problem solver; however we over-estimate the problem solving ability of evolution, as it is often trying to solve "self-imposed" survival problems. We are concerned with the evolution of Turing Equivalent programs (i.e. those with iteration and memory). Each of the mechanisms which make evolution work so well are examined from the perspective of program induction. Computer code is not as robust as genetic code, and therefore poorly suited to the process of evolution, resulting in a insurmountable landscape which cannot be navigated effectively with current syntax based genetic operators. Crossover, has problems being adopted in a computational setting, primarily due to a lack of context of exchanged code. A review of the literature reveals that evolved programs contain at most two nested loops, indicating that a glass ceiling to what can currently be accomplished.

Keywords

Computer scienceCrossoverSoftware evolutionGenetic programmingGenetic representationContext (archaeology)Theoretical computer scienceSelection (genetic algorithm)Process (computing)Inheritance (genetic algorithm)TuringProgramming languageArtificial intelligenceSoftware developmentSoftware

Authors from this organization

Ruibin Bai

Ruibin Bai

Director of Lab

Computer Science and Operations Research