Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is holding genetic programming back?

I have done a fair amount of work with genetic algorithms quite successfully and thus far ignored genetic programming. As far as I know, most programs remain written by programmers, and I'm curious to know what is holding genetic programming back?

Some possible explanations I thought of are:

  1. The search space is just too large to find useful programs among the noise
  2. Most real applications can't supply sufficient data to allow fitness evaluation of such a space.
  3. It is difficult to reduce the efficacy of many real applications down to a single fitness measure. In other words, writing a suitable fitness function would probably entail the same amount of work as writing the actual program.

Any ideas?

like image 461
zenna Avatar asked Dec 07 '10 19:12

zenna


People also ask

What do you mean by genetic programming?

In artificial intelligence, genetic programming (GP) is a technique of evolving programs, starting from a population of unfit (usually random) programs, fit for a particular task by applying operations analogous to natural genetic processes to the population of programs.

What is the purpose of genetic programming?

Genetic Programming is a new method to generate computer programs. It was derived from the model of biological evolution. Programs are 'bred' through continuous improvement of an initially random population of programs.

Is genetic programming still used?

All the big companies are now using Neural Nets(NNs) and Genetic Algorithms(GAs) to help their NNs to learn better and more efficiently.


1 Answers

This is something I have been considering in my own research, and I'd say there are many reasons:

  1. The vast majority of research in the GP field has focused on producing formulas rather than the sort of software that gets produced by most programmers. There are plenty of computer scientists in the field, but very few are focused on producing the sort of programs you would expect, so advances have been slow in that area.

  2. There is a significant over emphasis on using LISP because it can produce nice tree structures which are easy to manipulate and unfortunatly imperative programs have been neglected because they involve solving some tricky problems. For GP to be taken seriously by programmers it has to produce imperative programs.

  3. Real programs contain looping constructs, but loops are difficult to implement in GP without all sorts of ugly constraints to prevent infinite looping.

  4. Genetic Programming does not scale well. It is fine for small problems, with a small available language, but as you say in your first point - the search space becomes too large very quickly.

  5. Compared to a human programmer, GP can be very slow. It is however very parallelisable so is likely to benefit substantially as larger numbers of processor cores become the norm.

Another valid answer would be that it is difficult to trust code has been automatically generated. This is true, but in practice I doubt this has much impact because GP is not able to produce the right sort of programs in the first place.

like image 79
Tom Castle Avatar answered Sep 29 '22 06:09

Tom Castle