An Efficient Implementation of GSGP using Higher-Order Functions and Memoization

Created by W.Langdon from gp-bibliography.bib Revision:1.4221

  author =       "Alberto Moraglio",
  title =        "An Efficient Implementation of GSGP using Higher-Order
                 Functions and Memoization",
  booktitle =    "Semantic Methods in Genetic Programming",
  year =         "2014",
  editor =       "Colin Johnson and Krzysztof Krawiec and 
                 Alberto Moraglio and Michael O'Neill",
  address =      "Ljubljana, Slovenia",
  month =        "13 " # sep,
  note =         "Workshop at Parallel Problem Solving from Nature 2014
  keywords =     "genetic algorithms, genetic programming",
  URL =          "",
  size =         "2 pages",
  abstract =     "Geometric Semantic Genetic Programming (GSGP) [1] is a
                 novel form of Genetic Programming (GP) that can be
                 interpreted as searching directly the semantic space of
                 programs. This new form of GP is very promising as it
                 induces always a simple unimodal fitness landscape for
                 any problem it is applied to, hence it converges to the
                 optimum very quickly. A drawback of GSGP with crossover
                 is the exponential growth of individuals due to the
                 fact that the offspring tree contains both parent
                 trees, hence individuals double their size at each
                 generation. Vanneschi et al. [2] have proposed an
                 implementation of GSGP with crossover using a complex
                 pointer-based data structure that prevents the
                 exponential growth by keeping trace of the ancestry of
                 individuals rather than storing them directly. We
                 propose a new implementation of GSGP also based on
                 tracing the ancestry of individuals, that however does
                 not explicitly build and maintain a data structure, but
                 uses higher-order functions and memoization to achieve
                 the same effect, leaving the burden of book-keeping to
                 the compiler. The resulting implementation is fast,
                 elegant and concise. A Python implementation (under 100
                 lines without comments) is on GitHub at
  notes =        "SMGP 2014",

Genetic Programming entries for Alberto Moraglio