User applications written for lil-gp 0.95b will
require changes to run under version 0.99b. The changes are nontrivial
but straightforward. The format for specifying some parameters has
changed as well, conversion should be trivial with the exception of
multiple subpop exchange topologies, which have changed completely.
If you've modified the 0.95b kernel then your code will definitely
break.
Changes...
- ADFs and more. Individuals are now considered
to be forests rather than single trees, with each different trees
possibly over different function sets. Function sets can include
special tokens causing other trees in the individual to be
evaluated, giving the net effect of ADFs.
- Function sets defined at runtime. Allows user
code to create function set based on parameter settings.
- Header file consolidation. All the sources now
include only "", which itself is nothing but a list of
#includes. This should ease things for users which need to modify
kernel includes.
- Unlimited tree size. The "max_nodes" parameter
is now optional -- if it is unset then the only limit on tree size (in
nodes) is available memory.
- Tracking of N best individuals. The top N
individuals in a population are printed to the BST file, where N is a
user-settable parameter (previously only the single top individual was
listed in the BST).
- Continuation lines in parameter files. A
backslash at the end of a line now continues a parameter definition.
This is useful for...
- Specifying options to operators and selection
methods. This is now done with one big long parameter.
Instead of this:
breed[2].operator = crossover
breed[2].rate = 0.9
breed[2].select = tournament
breed[2].size = 7
breed[2].internal = 0.8
breed[2].external = 0.2
you do something like this:
breed[2].operator = crossover, \
select = (tournament, size=7), \
internal = 0.8, external = 0.2
breed[2].rate = 0.9
Improved mutation operator. The half-and-half
method can now be used to generate the mutant subtrees, and the depth
can be specified as a ramp instead of a single value.
Altering breeding parameters during the run. An
undocumented feature of previous versions was that the breeding
parameters (percent crossover, percent reproduction, selection
methods, etc.) could be altered mid-run by altering the parameter
database. This won't work any more, but this feature is officially
supported via another method. Subpopulation exchange topologies can
be altered in a similar fashion.
More sample problems. The squad-car problem has
been removed, but the two-boxes problem and the lawnmower problem are
included (both using ADFs).
Object-oriented implementation of selection methods and
operators. Helpful for those wishing to add their own.
back to the lil-gp home page.
lil-gp changes for version 0.99b,
Doug Zongker,
last modified 6/13/1995
|