








Jürgen Schmidhuber's
page on the 


2nd (?) paper on Genetic Programming (1987)
(In 2010, the 25th anniversary of Genetic Programming was celebrated, and
Schmidhuber gave the keynote at GP Theory and Practice 2010
@ University of Michigan's Center for the Study of Complex Systems.)



As an undergrad
Schmidhuber
used Genetic Algorithms to evolve
computer programs with loops etc. on a Symbolics LISP machine at SIEMENS AG.
He reimplemented the system in PROLOG at TUM.
In 1987 he published this work
(see jpeg scan below)
together with Dirk Dickmanns and Andreas
Winklhofer (authors in alphabetical order).
Presumably this was
world's 2nd paper on pure "Genetic Programming."
The authors were not aware of Nichael Cramer's
earlier paper on pure GP (1985):
A Representation for the Adaptive Generation of Simple Sequential Programs,
Proc. of an Intl. Conf. on Genetic Algorithms and their Applications,
CarnegieMellon University, July 2426, 1985.
(Stephen F. Smith proposed a related approach as part
of a larger system: A Learning System Based on Genetic
Adaptive Algorithms, PhD Thesis, Univ. Pittsburgh, 1980).
However, Schmidhuber was apparently the first to describe
a GP implementation with
loops and variable length code. Since the 1987 paper
is of historic interest, one can find a jpeg scan
below (source code omitted).
 
There may be better ways of evolving computer programs than GP's.
Our contributions include Adaptive Levin Search (extending
Levin's universal search algorithm, which is theoretically optimal for
nonincremental search), and
Probabilistic Incremental Program Evolution (PIPE).
The biasoptimal way of evolving programs, however, is the
Optimal Ordered Problem Solver (OOPS, J. Schmidhuber, July 2002).
We are also working on learning algorithms for finding
programs running on
recurrent neural networks.
 

First paper on MetaGP. In the same year 1987, Schmidhuber's
diploma thesis
came out.
Pages 713 are devoted to a more ambitious, selfimproving,
metalearning GP
approach that recursively applies metalevel GP (first introduced here)
to the task of finding better program modifying programs on lower levels.
The goal was to use GP for improving GP:
Page 7
Page 8
Page 9
Page 10
Page 11
Page 12
Page 13
Schmidhuber continued to work on
program search
and
metalearning.



