The latest years have seen a proliferation of libraries and programs devoted to implement some or all the paradigms of evolutionary computation [Beasley, 1996]. These libraries vary a lot in scope, intent, and obviously, quality. The stated purpose of these libraries is usually to ease the effort a scientist has to devote to code a problem which has to be solved using evolutionary computation. However, by having a look at any evolutionary computation related proceedings, it can be easily seen that most research groups use homebrew and special-purpose programs, which means that most of these programs have not achieved their purpose, being usually reduced to a circle of followers.
Why this is so remains a mystery. Probably software, albeit well written, lacks documentation that clearly shows how to use it; or it is too complex for the evolutionary computation program at hand, and it is better to write it using whatever tool is known by the scientist ( MATLAB, C or FORTRAN). On the other hand, the fact that several commercial products have been released lately [Beasley, 1996], shows that there is a niche for that kind of applications, although this niche is probably outside the scientific domain and falls within the commercial or industrial users.
In any case, the availability of commercial-grade evolutionary computation toolboxes and applications would boost the knowledge of them among the software development community, from which the EC community as a whole could profit.
A popular paradigm to design EC software has been object-oriented programming, because it has got the promise of code and design reuse. Several libraries, gleaned from the GA FAQ [Beasley, 1996], have followed this paradigm, using either the most popular OO language, C.4ex++, or other languages, like Lisp; some efforts have stopped at the conceptual phase, like Papagena [Filho et al., 1994]. Why these programs have failed to have widespread support in the EC community is difficult to say; in any case, they have got their share of followers. But all of them have got weaknesses. The objective of this paper is to present an object oriented evolutionary computation toolbox, GAGS, that tries to overcome some of these problems, adding at the same time new concepts to the design of design of this kind of toolboxes.
In this paper, we will try to show what does EC have to do with object-oriented programming in section 2; then why it has some advantage if it is written in C.4ex++, and why the framework proposed, GAGS, has got many of the features desirable in an evolutionary computation library , in section 3. A brief example is presented in section 5, applications are be described in section 4, and a brief discussion will be outlined in section 6.