GUIDE Installation Manual

Luis Da Costa and Marc Schoenauer

This is the system's installation manual for GUIDE. GUIDE is a layer that provides a common interface to evolutionary libraries to all users, practitioners or not

to rewrite

.

In our work we treat the general problem of bringing the domain of research called Evolutionary Computation (EC) closer to the general user, and therefore making its objects of study (Evolutionary Algorithms, EA) more easily understandable. The ultimate goal of this line of research is to be able to offer EAs as part of a general problem-solver toolkit.

Specifically, we argue for the necessity of a common ground, both in theory and communication, but also in practice; a main unifying idea from EC practitioners must reflect on a single view for newcomers to the field. We argue, in our paper [SC], that one of the main grouping ideas of the field should be the search for EAs that are as independent of the representation as possible. This idea is supported by work published in the literature and by our own theoretical and practical work. On that respect, we present our implementation of a software layer/product called GUIDE, who embodies the ideas of the field that we present here.

We think that GUIDE is a good proposal of a solution for the problem of making EAs widely-known. As a further proof of concept, GUIDE is being used on a personal-research level for some courses on EC (it is available under an Open Source Licence agreement at http://gforge.inria.fr/projects/guide/) and also on its first major development, as part of the European Project EvoTest (Evolutionary Testing for Complex Systems, http://evotest.iti.upv.es/). EvoTest is a multidisciplinary European funded project whose objective is to use evolutionary adaptive techniques in order to find solutions to the problems of testing software systems and deal with its complexity.

The main purpose of this Document is fulfilled by the explanations given in Chap. 2. More detail about certain concepts can be found on the the Appendixes; however, the information contained in them is not needed for the successful installation of the product.

GUIDE's Javadoc Documentation is in http://www.lri.fr/~ldacosta/guideDoc/ and was developed in the TAO team (http://tao.lri.fr); now it is hosted http://gforge.inria.fr/projects/guide/. There are 2 main papers, to this date, associated with it: the first was published in 2003, under the title GUIDE: Unifying Evolutionary Engines through a Graphical User Interface, was written by Pierre Collet and Marc Schoenauer[CS03]. The second is currently being evaluated for publication in the Journal of Artificial Intelligence Tools, and is identified in the bibliography as [SC].

The following steps have to be carried out in order to have GUIDE installed and ready to run in your environment. This steps are to be followed, no matter in what kind of operating system (Windows, UNIX-like or MacOs) the environment is to be used.

Download Evolutionary Libraries. First you will need to install the evolutionary libraries1 for which GUIDE generates (compilable and executable) code. You have the choice to install all of them, or just install the one that you think will be the most used by you2.

the latest version of the .jar file present (under Runtime GUIDE it is called GUIDE.jar). Copy it in [GUIDEDIR].

algorithmSchema.xsd Copy it in [CONFDIR]. algorithmSchema.xsd is the grammar file (XSD) for the XML that is the definition of an EA.

settingsExample.xml Copy it in [SETTINGSDIR]. This is an XML file with an example of how to set up GUIDE.

typesPlugAndPlayDir.tar or typesPlugAndPlayDir.zip Copy it in [CONFDIR]. This is the packaged tree of pre-defined types used by GUIDE. The detailed structure of this tree of types is described in App. A.

extraCode.tar or extraCode.zip Copy it in [EXTRACODEDIR]. This is the directory where you are going to indicate the libraries (and any "extra code") needed for the application, along with the location where the main function of the application is.

Configure your copy.

Unpack the pre-defined types directory. On [CONFDIR], do

unzip typesPlugAndPlayDir.zip

(if you downloaded the .zip file) or

tar -xvf typesPlugAndPlayDir.tar

(if you downloaded the .tar file)
This will create a directory called

[CONFDIR] /typesPlugAndPlayDir

Unpack the extra code directory. On [EXTRACODEDIR], do

unzip extraCode.zip

(if you downloaded the .zip file) or

tar -xvf extraCode.tar

(if you downloaded the .tar file)
This will create a directory called

[EXTRACODEDIR] /extraCode

, having 3 sub-directories inside:

extraCode/includes

,

extraCode/implement

and

extraCode/controller

Go to [SETTINGSDIR]. Copy settingsExample.xml into your local, modifiable file (let's call it mySettings.xml) Open mySettings.xml with your favourite text editor. You will see a file, described in detail in App. A. Do the following steps in order to configure GUIDE:

Modify the line identified by the tag PLUGANDPLAYTYPESDIR, in order to obtain a line that reads:

Specify a location for the GUIDE's Log file has to be specified. The Log file is useful in order to track the behaviour of the environment on different times of a specific run. For this, you need to modify the line identified by the tag LOGFILENAME, in order to obtain a line that reads:

< LOGFILENAME > name of the log file < /LOGFILENAME >

For example, if you would like the Log file to be at /tmp/kernelLog.log, you should write:

< LOGFILENAME > /tmp/kernelLog.log < /LOGFILENAME >

Extra code:

Look for the line tagged INCLUDES. You will see inner tags DIR. Modify the first of these in order to obtain a line that reads:

< DIR >
[EXTRACODEDIR] /includes
< /DIR >

Delete the others (for now3); you should then obtain this configuration:

< INCLUDES >
< DIR >
[EXTRACODEDIR] /includes
< /DIR >
< /INCLUDES >

Look for the line tagged EXTRACODE. You will see inner tags DIR. Modify the first of these in order to obtain a line that reads:

< DIR >
[EXTRACODEDIR] /extraCode
< /DIR >

Delete the others (for now4); you should then obtain this configuration:

PLUGANDPLAYTYPESDIR. This is the directory where all pre-defined types for GUIDE are kept. The philosophy and practice of types' handling in GUIDE is presented in [SC]; the directory has a particular structure where the types' definitions are present, and also the variation operators that can be applied to them. This is the detail of that structure (Table A.1)

CODEGENERATION. This section controls the parameters related to the program (code) generation.

TargetLibrary. This parameter specifies the library for which the code is going to be generated. Currently (March 2008) two options are available: EO (for Evolution Objects Library) and ECJ (for Evolutionary Computation in Java Library).

VERBOSE. If this parameter is TRUE, the code generation will be contain hints and comments. If FALSE, it will be "minimalistic".

INCLUDES. Directories with extra header files needed to compile the application. Each instance of a directory is inside a tag DIR. In the first part of the Installation Manual we already saw how to configure one of these lines in order to obtain a running version of GUIDE. However, you coudl extend it in order to customize it for your application. For example, if for the compilation of your fitness function you need header files contained in myLib/myIncludes, then you should make sure that in your settings file you will see:

EXTRACODE. Directories with other source files that need to be compiled. For example, if the fitness function uses external libraries, the adress should be included here. Each instance of a directory is inside a tag DIR. In the first part of the Installation Manual we already saw how to configure one of these lines in order to obtain a running version of GUIDE. However, you coudl extend it in order to customize it for your application. For example, if for the compilation of your fitness function you need header files contained in myLib/myImplementations, then you should make sure that in your settings file you will see: