Documentation:Manual:Conclusion
From Beagle
In this document was presented the main concept of the Open BEAGLE framework for evolutionary computations (EC). This framework has been designed following an Object Oriented (OO) methodology, built on strong foundations and abstract descriptions of general concepts. Open BEAGLE can do almost any evolutionary algorithms that fits into the following simple, general algorithm: an evolutionary process done by a series of operations applied iteratively on a population of individuals. The operations done can be anything and they can be apply on any kind of population entities.
Over this generic algorithm, a standard library have been defined to enable Open BEAGLE to do some classical EC flavor. With version 3.0 of the framework, Open BEAGLE support five standard EC representations: binary genetic algorithms, integer-valued vector genetic algorithms, real-valued vector genetic algorithms, evolution strategy, and genetic programming (GP). The four vector-based representations are relatively simple to implement on a framework such Open BEAGLE. On the other hand, GP is a quite more sophisticated EC paradigm and is provided in Open BEAGLE as a complex, fully-featured implementation. In our opinion, it is one of the most flexible and complete C++ implementation of tree-based GP available.
The Open BEAGLE characteristics and capabilities can be resumed in the following statements:
- Open BEAGLE is a flexible, extensible EC framework.
- As often stated in the actual document, the Open BEAGLE framework is built on a strong, sophisticated OO foundation. Many mechanism had been deployed to allow finely modularized interchangeable components. The design was inspired from some proved design patterns and existing generic OO frameworks. Every composing parts of the framework can be replaced by another, custom or defined in the standardized library, with little efforts.
- Open BEAGLE is a programmer-friendly environment.
- Toward all these sophisticated mechanisms, a prospective Open BEAGLE user may think that the framework is usable only by C++ wizards. In fact, all the works to do by the user had been simplified by the usage of generic programming (i.e. templates) that encapsulated all the laborious programming tasks and letting the application programmer to implement only the essential, application-specific parts. The programming is usually very high-level and simple. Only some general guidelines, exposed in this document, needs to be followed.
- Open BEAGLE is an open source and free software.
- Open BEAGLE is an open source and free, as in free speech, framework that allow the user to do almost whatever they want with it. It is released under the GNU Library (or Lesser) General Public License, LGPL, which encourage sharing of the software. The limitations are common-sense: any individual or corporations cannot made any profit by selling it, except by charging a reasonable cost for the media, and it is impossible to release any closed-source version of the Open BEAGLE framework, or any derived products. This mean that the framework will stay forever free and open source.
- Open BEAGLE is fast.
- Although the Open BEAGLE framework is very flexible and user-friendly, the performance of the framework had never been neglected. During the implementation process, we look forward a quick, efficient implementation. Some optimization features had also been added to the framework and can be turned on once an application is known to be stable.
- Open BEAGLE is a robust framework.
- First, the framework had been developed using defensive programming principles, using deep checking to detect any irregular situations and signal it as necessary. Secondly, the framework intensively use the standards C++ exception mechanisms to handle erroneous situations and send to the user appropriate feedbacks. Third, Open BEAGLE had also been tested with specialized tools to ensure that there is no memory leaks, and successful evolutions, that were spanning some weeks of intensive computing, had been done without any crash. And finally, milestones can be written as often as necessary, up to one for each deme at each generation, from which recovery from interruptions of any source is possible, with a simple command-line argument.
- Open BEAGLE is a system independent library.
- Open BEAGLE had been designed using a standardized, modern C++ programming approach. It also only use standard, portable library and the core frameworks don't do system-dependent call. Is is a portable, write once, compile anywhere environment.
- Open BEAGLE is well documented.
- As you should realized, Open BEAGLE is supported by a quite big, comprehensive manual, that you are actually reading, an extensive HTML reference manual that deeply document the implementation of the framework, and a maintained Web site.
