Beagle Engine is an Advanced Genetic Learning Environment [BEAGLE Wiki] [BEAGLE Puppy] [Distributed BEAGLE] [BEAGLE Visualizer] [Version française] [Introduction] [History] [Features] [Mailing Lists] [Documentation] [Download] [Installation] [Copyright] |
Open BEAGLE, a versatile EC frameworkWelcome to the Open BEAGLE W3 page. Open BEAGLE is a C++ Evolutionary Computation (EC) framework. It provides an high-level software environment to do any kind of EC, with support for tree-based genetic programming; bit string, integer-valued vector, and real-valued vector genetic algorithms; and evolution strategy. The Open BEAGLE architecture follows strong principles of object oriented programming, where abstractions are represented by loosely coupled objects and where it is common and easy to reuse code. Open BEAGLE is designed to provide an EC environment that is generic, user friendly, portable, efficient, robust, elegant and free. GenericWith Open BEAGLE, the user can execute any kind of EC, as far as it fulfills some minimum requirements. The only necessary condition is to have a population of individuals to which a sequence of evolving operations is iteratively applied. So far, Open BEAGLE supports most mainstream EC flavors such genetic programming, bit string, integer-valued vector and real-valued vector genetic algorithms, and evolution strategy. It also includes support for advanced EC techniques such multiobjective optimization and co-evolution. The user can take any of these specialized frameworks and modify them further to create his own specialized flavor of evolutionary algorithms. User FriendlinessConsiderable efforts were deployed to make the use of Open BEAGLE as easy and pleasant as possible. Open BEAGLE possesses several mechanisms that offer a user friendly programming interface. For example, the memory management of dynamically allocated objects is greatly simplified by the use of reference counting and automatic garbage collection. The programming style promoted is high-level and allows rapid prototyping of applications. PortabilityThe Open BEAGLE code is compliant with the C++ ANSI/ISO 3 standard. It only requires the Standard Template Library (STL). The framework also includes a subset of the Portable Agile C++ Classes (PACC) collection, which encapsulates calls made to the operating system in a portable fashion. EfficiencyTo insure efficient execution, particular attention was given to optimization of critical code sections. Detailed execution profiles of these sections were done. Also, the fact that Open BEAGLE is written in C++ contributes to its overall good performance. RobustnessMany verification and validation statements are embedded into the code to ensure correct operation and to inform the user when there is a problem. Robust mechanisms for periodically saving the current evolution state have also been implemented in order to enable automatic restart of interrupted evolutions. EleganceThe interface of Open BEAGLE was developed with care. Great energy was invested in designing a coherent software package that follows good OO and generic programming principles. Moreover, strict programming rules were enforced to make the C++ code easy to read, understand and, eventually, modify. The use of XML as file format is also a central aspect of Open BEAGLE, which provide a common ground for tools development to analyze and generate files, and to integrate the framework with other systems. Free SourcenessThe source code of Open BEAGLE is free, available under the GNU Lesser General Public License (LGPL). Thus, it can be distributed and modified without any fee. (See section copyright for further details.)
HistoryNovember 29, 2007: Version 3.0.3 released. Minor bug fix release, fixing a problem in reading GP ephemeral random constants primitives from XML files. November 14, 2007: Version 3.0.2 released. Major bug fix release, in particular with CMA-ES and STGP mutation. Added fast compilation mode on Unix by the use of a single source file for each library. Fixes to allow compilation under MinGW/Cygwin. February 6, 2006: Creation of the BEAGLE Wiki, intended to hold the documentation and development discussions. Manual and compilation HOWTO moved on the wiki. October 10, 2005: Version 3.0.1 released. Minor changes to allow compilation on Mac OS X and with precompiled headers. Update to the compilation HOWTO. October 5, 2005: Version 3.0.0 released. This is a major release. Incorporation of the PACC collection. Integer-valued vector GA representation. Major improvements to the GP framework: dynamic ADFs, variable number of primitives arguments, etc. Miscellaneous bug fixes and minor improvements. Manual, XML schema file and compilation HOWTO updated. October 28, 2004: Version 2.2.0 released. Major update of the GA framework: flexible parameter limits management, CMA-ES algorithm and SBX crossover added. Several bug fixes. New introductory document: Genericity in Evolutionary Computation Software Tools: Principles and Case-Study. August 26, 2004: Distributed BEAGLE version 0.9 released. Major changes, bug fixes, and new documentation. Initial release of BEAGLE Visualizer, the Web interface to visualize and analyze Open BEAGLE output. Update of the XML schema file describing Open BEAGLE file format. August 3, 2004: Version 2.1.5 released. Minor changes and bug fixes. Migration buffers added to Deme class, random number generator seed read from file /dev/urandom on Unix, HFC migration operator modified, bug fix in Gray to binary GA bit string conversion, and several other minor bug fixes. July 5, 2004: Version 2.1.4 released. Minor features addition. Support for weighted GP primitives sets, HFC migration operator, lexicographic parsimony pressure tournament selection operator, co-evolution termination broadcast operator, and some minor bug fixes. June 1, 2004: Initial release of Distributed BEAGLE, the Open BEAGLE extension for distributed evolutionary computations. April 13, 2004: Version 2.1.3 released. Bug fix in the ES component of GA framework. Manual updated. April 08, 2004: Version 2.1.2 released. Minor features addition. Support for gzipped files (requires zlib), file backup mechanism, and several other small changes. Compilation HOWTO updated. January 17, 2004: Version 2.1.1 released. Minor bug fixes and some modifications to compile (once again) on gcc 2.96 and Borland C++ Builder 5. Manual updated. XML schema description file format added. December 11, 2003: Version 2.1.0 released. Major features addition. Enhancements include support for real-valued GA, evolution strategy, multiobjective optimization, co-evolution, new GA crossover operators, population seeding from file, and five new illustrative examples. Compilation HOWTO has also been updated. October 2, 2003: Open BEAGLE development and packages now moved on SourceForge.net. User manual and compilation HOWTO updated for version 2.0.0. September 24, 2003: Version 2.0.0 released. This is a major update. New XML file format, new XML parsing kit, breeder model, dynamic evolver configuration, important changes in hall-of-fame and statistics, new GA example OneMax, example allzeros renamed ZeroMin. Update now! May 29, 2003: Version 1.1.1 released. Minor bug fixes, new GA example (allzeros), and some modifications to compile with MS Visual C++ .NET 2003 (7.1) BETA. April 30, 2003: Version 1.1.0 released. Major update. New logging mechanism with XML output. Modification of the statistics structure. Some name changes. Improved reference manual. Compilation HOWTO and manual updated. March 20, 2003: Version 1.0.3 released. Essentially a bug fix release, with some small improvements. March 6, 2003: New Open BEAGLE compilation HOWTO available. The Open BEAGLE manual has been revised in order to remove the installation instructions. November 30, 2002: Open BEAGLE manual for version 1.0.1 is now available. November 21, 2002: Version 1.0.1 released. Include new Unix compilation front-end (with autoconf/automake) and project files for MS Visual C++ .NET. September 17, 2002: A mailing list on Open BEAGLE has been started on Yahoogroups. July 24, 2002: Open BEAGLE manual is now available. July 22, 2002: Release of version 1.0.0. June 13, 2002: Release of version 0.16.2 (BETA). Sections features and download added. Update of section installation. Version 0.16.2 is the BETA release of version 1.0. March 21, 2002: Initial public release of Open BEAGLE, version 0.16.1 (ALPHA). January 25, 2002: Release of the Web site.
FeaturesObject-Oriented Foundations:
Open BEAGLE generic EA framework:
GA framework (linear representations):
GP framework:
Co-evolution framework:
Mailing ListsThe Open BEAGLE mailing list on Yahoogroups is intended to announce new Open BEAGLE releases, to ask questions of the framework, and to discuss on the future developments. It is highly suggested to join it, or at least to consult it frequently, if you are interested by the EC framework. If you have any problems on Open BEAGLE, first consult this list to see if any previous discussions can help you, then ask a question on the list if you still can't solve it. The Open BEAGLE developers list on SourceForge is intended to users interested in contributing to the framework developments. It is more technically oriented and generally has a higher traffic than the Yahoogroups list. It also presents the new features added to the bleeding edge version of the framework, available in the CVS repository.
DocumentationSeveral documents on Open BEAGLE are available:
Authors of scientific papers including results generated using Open BEAGLE are encouraged to cite the following paper. DownloadThe current stable version is 3.0.3 (tarball, zip, change log). The latest development version is available from the CVS repository on SourceForge.
InstallationThe detailed installation instructions are available in the Open BEAGLE Compilation HOWTO. You need a recent ANSI/ISO 3 C++ compiler with a complete up-to-date STL and C++ library to use Open BEAGLE. COMPILER STATUS
[Top] CopyrightOpen BEAGLE: a generic C++ framework for evolutionary computation. Copyright © 1999-2007 by Christian Gagné and Marc Parizeau. Project contributors: Matthew Walker, Jiachuan Wang, Jim Shepherd, Jianjun Hu, Vinod Valsalam, Alexandre Devert, Alain-Daniel Bourdage, and Andrew Marek (Open BEAGLE); Marc Dubreuil (Distributed BEAGLE); Patrick-Emmanuel Boulanger-Nadeau and Vincent-Oliver Gravel (BEAGLE Visualizer). This project was developed in the context of a PhD at the Computer Vision and Systems Laboratory of Laval University. Christian Gagné is now a research analyst at MacDonald, Dettwiler and Associates Ltd. This library is free software; you can redistribute it and/or modify it under the terms of the version 2.1 of the GNU Lesser General Public License as published by the Free Software Foundation. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. The following page provides a nice list of some other EC packages available.
|