Genericity in Evolutionary Computation Software Tools: Principles and Case-study

This paper deals with the need for generic software development tools in evolutionary computations (EC). These tools will be essential for the next generation of evolutionary algorithms where application designers and researchers will need to mix different combinations of traditional EC (e.g. genetic algorithms, genetic programming, evolutionary strategies, etc.), or to create new variations of these EC, in order to solve complex real world problems. Six basic principles are proposed to guide the development of such tools. These principles are then used to evaluate six freely available, widely used EC software tools. Finally, the design of Open BEAGLE, the framework developed by the authors, is presented in more detail.

[1]  Lawrence J. Fogel,et al.  Artificial Intelligence through Simulated Evolution , 1966 .

[2]  John H. Holland,et al.  Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control, and Artificial Intelligence , 1992 .

[3]  Richard S. Forsyth,et al.  BEAGLE—A DARWINIAN APPROACH TO PATTERN RECOGNITION , 1981 .

[4]  W. Daniel Hillis,et al.  Co-evolving parasites improve simulated evolution as an optimization procedure , 1990 .

[5]  Zbigniew Michalewicz,et al.  Genetic Algorithms + Data Structures = Evolution Programs , 1992, Artificial Intelligence.

[6]  Michael de la Maza,et al.  Book review: Genetic Algorithms + Data Structures = Evolution Programs by Zbigniew Michalewicz (Springer-Verlag, 1992) , 1993 .

[7]  John R. Koza,et al.  Genetic programming - on the programming of computers by means of natural selection , 1993, Complex adaptive systems.

[8]  Cesare Alippi,et al.  Genetic-algorithm programming environments , 1994, Computer.

[9]  Martin C. Martin,et al.  Genetic programming in C++: implementation issues , 1994 .

[10]  Una-May O'Reilly,et al.  Genetic Programming II: Automatic Discovery of Reusable Programs. , 1994, Artificial Life.

[11]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[12]  David J. Montana,et al.  Strongly Typed Genetic Programming , 1995, Evolutionary Computation.

[13]  Michael E. Wall,et al.  Galib: a c++ library of genetic algorithm components , 1996 .

[14]  David R. Musser,et al.  STL tutorial and reference guide - C++ programming with the standard template library , 1996, Addison-Wesley professional computing series.

[15]  Thomas Bäck,et al.  Evolutionary computation: comments on the history and current state , 1997, IEEE Trans. Evol. Comput..

[16]  Astro Teller,et al.  PADO: a new learning architecture for object recognition , 1997 .

[17]  Tom Lenaerts,et al.  Building a Genetic Programming Framework: The Added-Value of Design Patterns , 1998, EuroGP.

[18]  M. Nicholas,et al.  Sutherland: An extensible object-oriented software framework for evolutionary computation , 1998 .

[19]  Peter Nordin,et al.  Genetic programming - An Introduction: On the Automatic Evolution of Computer Programs and Its Applications , 1998 .

[20]  James Clark,et al.  XSL Transformations (XSLT) Version 1.0 , 1999 .

[21]  Eric S. Raymond,et al.  The cathedral and the bazaar - musings on Linux and Open Source by an accidental revolutionary , 2001 .

[22]  Steve Vinoski,et al.  Advanced CORBA® Programming with C++ , 1999 .

[23]  Natalio Krasnogor,et al.  MAFRA: A java memetic algorithms framework , 2000 .

[24]  David B. Fogel,et al.  Evolution-ary Computation 1: Basic Algorithms and Operators , 2000 .

[25]  Lutz Prechelt,et al.  An Empirical Comparison of Seven Programming Languages , 2000, Computer.

[26]  Zbigniew Michalewicz,et al.  Evolutionary Computation 2 : Advanced Algorithms and Operators , 2000 .

[27]  Marc Schoenauer,et al.  Take It EASEA , 2000, PPSN.

[28]  Zbigniew Michalewicz,et al.  Evolutionary Computation 2 , 2000 .

[29]  Andreas Rummler,et al.  eaLib - A Java Framework for Implementation of Evolutionary Algorithms , 2001, Fuzzy Days.

[30]  M. Keijzer,et al.  Evolving Objects: A General Purpose Evolutionary Computation Library , 2001, Artificial Evolution.

[31]  Tong Heng Lee,et al.  A multiobjective evolutionary algorithm toolbox for computer-aided multiobjective optimization , 2001, IEEE Trans. Syst. Man Cybern. Part B.

[32]  G. Kókai,et al.  An Experimental Evaluation of the Generic Evolutionary Algorithms Programming Library , 2001 .

[33]  Gary B. Lamont,et al.  Evolutionary Algorithms for Solving Multi-Objective Problems , 2002, Genetic Algorithms and Evolutionary Computation.

[34]  Marc Parizeau,et al.  Open BEAGLE: A New C++ Evolutionary Computation Framework , 2002, GECCO.

[35]  Robert M. MacCallum,et al.  Introducing a Perl Genetic Programming System - and Can Meta-evolution Solve the Bloat Problem? , 2003, EuroGP.

[36]  Andrew R. McIntyre,et al.  Resource Review: Three Open Source Systems for Evolving Programs–Lilgp, ECJ and Grammatical Evolution , 2004, Genetic Programming and Evolvable Machines.

[37]  Sara Silva,et al.  GPLAB A Genetic Programming Toolbox for MATLAB , 2004 .

[38]  Don Roberts,et al.  Evolving Frameworks A Pattern Language for Developing Object-Oriented Frameworks , 2004 .

[39]  Maarten Keijzer,et al.  Evolving Objects: Evolutionary computation framework , 2004 .

[40]  Róbert Ványi,et al.  Object Oriented Design and Implementation of a General Evolutionary Algorithm , 2004, GECCO.