[ Home | Docs | News | Resources | Download] |
GAUL Frequently Asked Questions |
Introduction |
What is a GA? What is evolutionary computation? The basics of evolutionary computation and genetic algorithms are covered on the website. For in depth discussions of Genetic Algorithms and the other related algorithms the interested reader is directed to the GAUL resources list. What is GAUL? The Genetic Algorithm Utility Library (or, GAUL for short) is an open source programming library designed to assist in the development of code requiring genetic algorithms. The steady-state, generation based and the island model of evolution are supported, using the Darwinian, Lamarckian or Baldwinian evolutionary schemes. Standard mutation, crossover and selection operators are provided, while code hooks additionally allow custom operators. It provides data structures and functions for handling and manipulation of the data required for a genetic algorithm. Additional stochastic algorithms are provided for comparison to the genetic algorithms. Much of the functionality is also available through a simple S-Lang interface. Why don't I have to pay for GAUL? This version of GAUL is freely distributed under the terms of the GNU General Public License, which in essence means that you can obtain it for free, and pass it to your friends with, or without, modifications. The author accepts that the GNU General Public License is incompatible with certain commercial requirements or third-party license stipulations. Consequently, GAUL may be licensed under alternative terms on an individual case-by-case basis by contacting the author at gaul@linux-domain.com. I think I've found a bug, what can I do? Please send details of your system, the version of GAUL that you are using and concise instructions for reproducing the crash, or erroneous result, to gaul-devel@lists.sourceforge.net. Alternatively, use SourceForge's bug submission facility. I've read the entire FAQ and my question wasn't answered, where can I get more help? All available documentation may be accessed at http://gaul.sourceforge.net/documentation.html, but be warned that some of this documentation is still being written. Your questions are likely to be answered if you post them on the GAUL mailing list, gaul-devel@lists.sourceforge.net, hosted by SourceForge. You may find information about this mailing list through a web interface at http://lists.sourceforge.net/lists/listinfo/gaul-devel, or by sending an email with just the word `help' as subject or in the body, to gaul-devel-request@lists.sourceforge.net. Can I get commercial support? Stewart is prepared to produce custom modifications and extensions (especially after receiving donations to support GAUL development). Commercial support and consultancy are also available. References are available upon request. A great way to support the on-going development of GAUL is to re-license it for propriety use. Payments are accepted in $ (USD), £ (GBP) and beer. Who developed GAUL? The majority of GAUL was developed by Stewart Adcock. Since being released as open source, numerous patches have been submitted for includion, by a variety of talented coders. Is GAUL OSI certified software? Yes. |
Installing GAUL |
What are the hardware requirements? Linux, UNIX and other POSIX-compliant OSs on any sensible hardware will be supported. A list of platforms on which GAUL is known to work is provided on the website. The details of the optimisation that is being performed is more critical than any hardware requirements of GAUL. GAUL will run on and is able to utilise multiple processors, including those on Beowulf-style clusters and more traditional supercomputers. What are the software requirements? Compilation of GAUL requires a fairly modern C/C++ compiler. Its compilation is much simpler with the GNU maketools although it is possible to complete a successful compilation without these. Prior installation of the S-Lang scripting engine is advised, but not essential. There are no other requirements. Does GAUL work on MS Windows? Yes, but not fully and without a certain amount of hassle. Without changes, GAUL compiles successfully with the Cygwin environment on Windows. GAUL also compiles and runs successfully with the Dev-C++ IDE and Microsoft Visual C++, albeit with a few features disabled. Full native support for Windows is a current development aim, and this is progressing well. Which operating systems does GAUL support? GAUL is known to work on several UNIX and UNIX-like operating systems, including several versions of Linux. It should compile successfully on any POSIX compliant OS, but this has not been confirmed. A list of tested systems is provided on the website. Pre-compiled binaries are available for several platforms. From where may I download GAUL? Full instructions are provided on the website. You'll probably want to visit the sourceforge project page for the latest version, and many earlier versions. How is GAUL installed? The simple approach is to type "./configure ; make" in the top-level gaul directory. Full instructions are provided on the website. |
Using GAUL |
How do I get started? You are recommended to work though the tutorial initially. Once you understand the basics of the GAUL API, you can find further information in the reference guide. What scripting languages are supported? Only S-Lang is supported in the current GAUL releases. However, a wrapper for interfacing GAUL to SVL does exist. Ask Stewart if you are interested in using this. Prototype Perl wrappers have been developed by Stewart and at least one other by an external developer. Stewart can provide his version upon request. Third-party wrappers exist for tcl, Ruby, and Lua, at various levels of completeness. |
Modifying and extending GAUL |
Can I modify the source code? Yes! In fact, I would even encourage you to poke around in the source code. There is probably no better way to learn about how GAUL, in particular, and GAs, in general, work. This version of GAUL is distributed using the GNU General Public License. The spirit of this license is to encourage people to freely modify and subsequently distribute the software. I would be grateful to receive improvements and additions, but you are under no obligation to provide them to me if they are only intended for your own use. How can I find more about the source code internals? GAUL is entirely composed of simple and portable C. The distribution's directory structure is fairly straightforward. The main GAUL source is located in the "src/" subdirectory. In this directory all code relating to evolutionary algorithms and population handling is located. General utility code, including a pseudo-random number generator, linked lists, and timing routines, is found in the "util/" directory. All code which is not directly related to evolutionary computation will be found in there. Most of that code is common to other software projects. Test code, as much as currently exists, is in the "test/" directory. The "example/" directory contains some illustrative programs which rely on GAUL and the code relating to the tutorials. Each directory contains a README file which presents the contents of that directory. Why was GAUL written in C? Originally, the choices of either C or C++ were available in order to meet efficiency and portability requirements. I choose C, mainly, because I think it is more fun. Several very good C++ GA toolkits already existed, but in my humble opinion the available C toolkits all sucked in one way or another. One advantage of C is that it is trivial to use its functions from within C++, while the reverse is not so true. |
[ Home | Docs | News | Resources | Download] |
Hosted by: |
© 2001-2009, "Stewart Adcock" <stewart@linux-domain.com> All rights reserved. |
All trademarks on this page are probably owned by their respective companies. You can insert you own favourite disclaimer here. |