Why evolution is not a good paradigm for program induction: a critique of genetic programming

  • Authors:
  • John R. Woodward;Ruibin Bai

  • Affiliations:
  • The University of Nottingham, Ningbo, China;The University of Nottingham, Ningbo, China

  • Venue:
  • Proceedings of the first ACM/SIGEVO Summit on Genetic and Evolutionary Computation
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

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.