lilgpSetup User's Manual

1.1 Introduction

LilgpSetup is a companion utility for lil-gp that will help you construct the parameter files necessary to run experiments with lil-gp. It provides a set of fill-in forms that are organized by the type of parameters they are responsible for. You simply enter parameters in the required fields, many of which already contain default values that follow the recommendations found in John Koza's Genetic Programming and Genetic Programming II. Once the parameters have been entered, lilgpSetup will parse them and report any errors or warnings it has found. After the you have resolved the errors, lilgpSetup will automatically generate a parameter file that is ready to be used by lil-gp.

If you are unfamiliar with genetic algorithms, genetic programming, or lil-gp, then you should begin by reading the lil-gp User's Manual.

1.1.1 Features

lilgpSetup features include:

1.1.2 Limitations

lilgpSetup does not support the following features of lil-gp:
tree[#].max_nodes
tree[#].max_depth
init.tree[#].method
init.tree[#].depth
exch[#].from.tree[#]
exch[#].fromselect[#]

1.1.3 Author

This software was written by Ryan Shoemaker under the direction of Dr. William Punch. Other companion utilities for lil-gp have been developed by Ryan Shoemaker and Dave Guyette as part of a joint project.

Comments and suggestions may be sent to:

shoema16@cps.msu.edu
punch@cps.msu.edu

Department of Computer Science
3115 Engineering Building
Michigan State University
East Lansing, MI 48824
USA

1.2 Getting Started

When you unpack the distribution, you should get this directory tree:


lilgpSetup/ 
    classes/          (byte-code files)
    docs/             (documentation files)
        images/       (image files used in documentation)
    javadocs/         (source-code documentation files)
        images/       (image files used in source-code documentation)
    src/              (source-code files)

Before using lilgpSetup, you must have Java JDK 1.02 installed on your system. To generate the .class files, change into the lilgpSetup/src directory and type:

javac -d ../classes *.java

To run lilgpSetup, simply change into the lilgpSetup/classes directory and type:

java lilgpSetup

If you are running the utilities under Windows95/NT, you will have to modify the paths in the above commands and also add the lilgpSetup/classes directory to your CLASSPATH in place of the dot directory ".".

This is version 1.0 of lilgpetup. Updates and information related to lilgpSetup can be found on the World Wide Web at http://isl.cps.msu.edu.

1.3 Window Descriptions

The user interface for lilgpSetup is structured around the different parameter categories outlined in Chapter 5 of [Zon96]. Each parameter category has a panel dedicated to it in lilgpSetup and switching between them is accomplished by clicking on the buttons on the left-hand side of the main window. Each panel contains a number of fields and components that allow you to select values for the parameters that control the operation of lil-gp. Several of these components already contain values when you run lilgpSetup. These are the default values that the system assumes if you do not change them. Each component has a label next to it that can be used to request immediate help for that parameter. Simply place the mouse over the label and hold down the Ctrl button while you click on the label. This will open the on-line help system to a page that contains information about the selected parameter.

This remainder of this manual will be dedicated to providing screen-by-screen description of every feature available in lilgpSetup. Each section will focus on a specific window in the system and the features available from it.

1.3.1 Menu Options

The only two menus available on the menubar are File and Help. The File menu offers three options: Open, Save As, and Exit. Selecting the Open or Save As menu items will open a file dialog and allow you to open and save parameter files. Selecting the Exit menu item will exit the system after asking for confirmation. The Help menu has two menu items: Help and About. Selecting Help will open an on-line help system that will allow you to search by keyword and selecting About will display information about the author and version of lilgpSetup.

1.3.2 The General Parameters Window

This window allows you to enter all of the parameters that control the over all operation of lil-gp. As you can see in Figure 1, this parameter panel contains three textfields for entering parameter values. The following table summarizes legal values for these fields:

Parameter Name
Expected Data Type and Range
Default Value
max_generations
positive integer
none
pop_size
positive integer
none
random_seed
integer
1


Figure 1 - General Parameters Window

1.3.3 The Output Parameters Window

This panel allows you to enter parameters that control lil-gp's output files and checkpoint files.

Parameter Name
Expected Data Type and Range
Default Value
output.basename
string
lilgp
output.detail
integer between 0 and 100
50
output.stt_interval
integer between 1 and max_generations
1
output.bestn
integer between 1 and pop_size
1
output.digits
positive integer
4
checkpoint.interval
integer between 1 and max_generations
none
checkpoint.filename
string
gp%06d.ckp
checkpoint.compress
string
none


Figure 2 - Output Parameters Window

1.3.4 The Size Limit Parameter Window

This panel allows you to enter the parameters that control the size of individual trees in the population.

Parameter Name
Expected Data Type and Range
Default Value
max_nodes
positive integer
none
max_depth
positive integer
none


Figure 3 - Size Limit Parameters Window

1.3.5 The Tree Initialization Window

Parameters entered in this window will control how the population of trees is initialized.

Parameter Name
Expected Data Type and Range
Default Value
init.method
half_and_half, grow, or full
half_and_half
init.depth
string
2-6
init.random_attempts
positive integer
100


Figure 4 - Tree Initialization Parameter Window

1.3.6 The Breeding Parameter Window

This window allows you to select the number of breed phases and whether or not to use probabilistic operators. After entering the number of breed phases, click the 'Go' button to open the Phase Parameters window where you will select the individual operators and rates. If you want to delete all of the current breed phase operators and rates from the database, simply press the 'Purge' button.

Parameter Name
Expected Data Type and Range
Default Value
breed_phase
positive integer
none
probabilistic_operators
on or off
on


Figure 5 - Breeding Parameters Window

1.3.7 The Phase Parameters Window

This window allows you to select the breed operators, selection methods, and breed rates for each phase. The left-hand panel contains all of the parameter labels for the phase panels. The phase panels respond to your selections by hiding and showing only those options appropriate for the current selection. For example, when you select 'crossover' in an operator field, the 'cutoff', 'proportion', 'size', 'method', and 'depth' options are hidden since they do not apply to the crossover operation. When you are through selecting the options for each phase, click the 'Accept' button to save your changes and return to the main window.

Parameter Name
Expected Data Type and Range
Default Value
operator
crossover, reproduction, or mutation
crossover
selection
fitness, fitness_overselect, tournament, inverse_fitness, random, best, or worst
fitness
cutoff
real number between 0.0 and 1.0
if pop_size <= 1000
else 320/pop_size
proportion
real number between 0.0 and 1.0
0.80
size
integer between 1 and pop_size
2
keep_trying
on or off
on
internal
real number between 0.0 and 1.0
0.9
external
real number between 0.0 and 1.0
0.1
method
half_and_half, grow, full
half_and_half
depth
string
0-4
rate
real number between 0.0 and 1.0
none


Figure 6 - Phase Parameters Window

1.3.8 The Sub Population Parameters Window

This window is very similar to the Breed Phase Parameters window. After entering the number of sub-populations and the exchange frequency, click on the 'Go' button to open the exchange editor and exchange graph. This window also has a 'Purge' button on it to remove any exchange parameters that are currently in the database.

Parameter Name
Expected Data Type and Range
Default Value
multiple.subpops
positive integer
1
multiple.exch_gen
integer between 1 and max_generations
none

Note, there is no field for multiple.exchanges. This parameter is automatically entered into the database by lilgpSetup when you close the sub-population editor.


Figure 7 - Sub Population Parameters Window

1.3.9 The Sub Population Editor Window

This window contains all of the controls needed to create and edit sub-population exchanges. Adding a new exchange requires you to set the five components in the top of the panel and click on the 'Add/Replace' button. After adding the new exchange, you will see a verbal description of it appear in the bottom summary area. You should also see a graphical representation of it in the Sub Population Graph window. There are several other options available to you in this window. To delete an existing exchange, select it in the summary portion of the window and press the 'Delete' button. Similarly, you can edit and replace exchanges by clicking the appropriate buttons.


Figure 8 - Sub Population Editor Window

1.3.10 The Sub Population Graph Window

In this window, you will find a graphic representation of the sub-population exchanges that you have entered in the exchange editor. There are no controls available in this window - it is for visual purposes only.


Figure 9 - Sub Population Graph Window

1.3.11 The User Defined Parameters Window

Any application specific parameters may be typed in this window as long as they are of the form 'parameter = value' Even though there is no explicit support for the multi-tree individual parameters listed in the Limitations section, you may enter values for them here. Unfortunately, the validity of the parameter values can not be checked.

If lilgpSetup fails to recognize a parameter while reading from a parameter file, then it will assume that the parameter is user defined and place it in this window. As a consequence, if you hand edit a parameter file (i.e. in emacs or notepad) and make a typographical error, that parameter will likely appear in this window along with any legitimate user defined parameters.


Figure 10 - User Defined Parameters Window

1.3.12 The Compile Button and Error List

At any time during the process of entering parameters, you may press the 'Compile' button found in the lower left corner of the main window. This will cause lilgpSetup to collect all of the parameters from each window and check them for errors. When this process is complete, the Error List window will open (or be updated if it is already open) and display the results. Figure 11 shows what this window looks like when it contains errors. In this case, lilgpSetup has found an error with the pop_size parameter. Consequently, it can not verify any of the variables that depend on pop_size, so a warning is issued for output.bestn. Entries beginning with '>' are comments inserted by lilgpSetup.


Figure 11 - Error Window With Errors

Once you have fixed all of the errors, the Error List window should look like Figure 12, and you are ready to save the parameter file. It is not necessary to manually compile the parameters before saving the parameter file, lilgpSetup automatically checks them for errors before allowing a save to occur. As a result, there is no way of saving a set of parameters that contains either errors or warnings.


Figure 12 - Error Window With No Errors