lil-gp 1.0 User's Manual

Douglas Zongker Dr. Bill Punch

Michigan State University Michigan State University

zongker@isl.cps.msu.edu punch@isl.cps.msu.edu

11 July 1995

Copyright (c) 1995 Michigan State University.

This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


Contents

1 Introduction

1.1 Features
1.2 Kernel
1.3 Specification of Problems
1.4 Multiple Populations
1.5 Availability
1.6 Author

2 Background

2.1 Introduction
2.2 Defining an Application
2.2.1 Closure
2.2.2 Examples
2.3 Size of Individuals
2.4 Fitness
2.5 Population Initialization
2.6 Selection
2.7 Operators
2.7.1 Crossover
2.7.2 Reproduction
2.7.3 Mutation
2.8 Automatically Defined Functions (ADFs)
2.8.1 ADFs in lil-gp

3 Compiling lil-gp

3.1 Preparing the kernel
3.2 Building the Sample Problems
3.3 Running the Sample Problems
3.3.1 Symbolic Regression
3.3.2 Artificial Ant
3.3.3 Boolean 11-Multiplexer
3.3.4 Two-boxes
3.3.5 Lawnmower
3.4 Compiling Without the Makefile

4 Running lil-gp

4.1 Invoking lil-gp
4.1.1 Parameter Files
4.2 Output Files

5 Parameters

5.1 General
5.2 Output
5.3 Size Limits
5.4 Initialization
5.5 Selection Methods
5.6 Breeding
5.7 Operators
5.8 Multiple Populations

6 Implementing Problems

6.1 Basic Definitions
6.2 Functions and Terminals
6.2.1 Ephemeral Random Constants
6.2.2 Evaluation and Argument Functions
6.3 User Callbacks
6.3.1 Defining the Function Set(s)
6.3.2 Fitness Evaluation Function
6.3.3 Custom Output
6.3.4 Application Initialization
6.3.5 Output Streams
6.3.6 Checkpoint Files
6.4 Order of Processing
6.5 Kernel Considerations
6.5.1 Memory Allocation
6.5.2 Using Parameters

7 Extending the Kernel

7.1 Tree Representation
7.2 Selection Methods
7.3 Operators
7.4 Miscellany
7.4.1 Tree Generation Spaces
7.4.2 Saved Individuals
7.4.3 Ephemeral Random Constants