# 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