Subsections
1. Introduction
1.1 What is FrEAK?
FrEAK, the Free Evolutionary Algorithm Kit, is a free toolkit for the creation, simulation,
and analysis of evolutionary algorithms within a graphical interface.
We created FrEAK as a comfortable, flexible and extendable platform to perform
experimental analysis of evolutionary algorithms. Several components
commonly used in evolutionary algorithms are provided with FrEAK
and a developer's guide
explains how to create your own components.
The graphical interface allows you to create your own algorithms and to
watch your algorithm running.
With the built-in replay function, you can step back anytime and watch
past runs and generations.
Observers may be used to show, e.g., different
performance measures, the individuals of the current population or
other data derived from the algorithm.
FrEAK uses the approved random number generator ``Mersenne Twister''1.1
to provide
well-distributed pseudorandom numbers.
The random seed is drawn from the current system time
on schedule creation and preserved during load and save operations.
1.2 Evolutionary Algorithms
There are many views of evolutionary algorithms in the scientific community.
In FrEAK, we consider evolutionary algorithms
as randomized search heuristics
used to optimize a specified fitness function.
The fitness function is defined on a phenotype search space
which represents the set of all search points.
Search points are referred to as individuals.
An individual contains a phenotype used to determine the individual's fitness, a genotype out of the genotype search space representing the individual's gene data and some other attributes like, e.g., its date of birth.
Evolutionary algorithms in FrEAK are represented by
algorithm graphs, also denoted as
operator graphs.
Algorithm graphs are acyclic flow graphs leading individuals through various
nodes. The nodes represent operators like mutation, recombination, selection, and several other operators. They process the incoming individuals and propagate
the resulting individuals through their outgoing edges.
Every generation, the current population1.2
is led through the algorithm graph from a start node towards a finish node where
the new population is received. A graphical editor is provided that enables you to
design your own algorithm graphs.
For further information, read Chapter 4: chapter4.
1.3 Overview
FrEAK is based on schedules containing the algorithm and
simulation options. A wizard guides you through the process of creating a
new schedule, as described in Chapter 2.
You may save the current schedule to share the results of your algorithm or to continue the simulation later on.
When a schedule has been created, lean back and start the simulation.
FrEAK provides a replay mode allowing you to watch past runs and past generations
in the current run. To learn more about controlling runs, read Chapter 3:
chapter3.
1.3.1 Schedule Creation: Designing the Algorithm
The algorithm consists of seven components, which are called
modules:
- a phenotype search space,
- a fitness function,
- a genotype-mapper,
- an algorithm graph,
- a set of stopping criteria,
- a population model, and
- an initial population.
The phenotype search space represents the
domain of the fitness function. The fitness function is the function to be optimized.
While most of the modules provided with FrEAK are designed for
maximization problems, this is not a
fundamental restriction; you may write custom modules that work with
minimization problems as well.
The genotype-mapper is an optional component. If a genotype-mapper is specified, it is used to map an individual's phenotype to a corresponding genotype. The operators inside the operator graph then work on the individual's genotype. If no genotype-mapper is specified, the genotype search space equals the phenotype search space and the individuals's phenotype represents its genotype, too.
To specify the algorithm graph, you may create your own algorithm with the
graphical editor or load an algorithm. Several common algorithms are provided
with FrEAK and can be picked from a ready-made list.
Stopping criteria
tell the algorithm to stop the current run if a specified condition is fulfilled.
The population model is an optional choice and allows you to maintain subdivisions inside
the population. The last step here is to specify the initial population by choosing
an initialization module that creates the individuals
forming the first generation.
If you want to write your own module, refer to the Module Developer's Guide.
Preparing the simulation covers the following two steps:
- add observers and views and
- create batches of runs.
Observers are modules collecting and computing data that
is then displayed by views. E.g., observers
can compute measures like the fitness variance within the population or simply collect
all individuals of the current population. A view displays the data observed
by an observer if it is able to handle the type of data the observer
provides. The two most commonly used data types
are individuals and numbers. Observers may have an arbitrary number of views.
Last but not least, you may create batches of runs.
A batch is a collection of runs with own configurations for the phenotype search space, the
fitness function and the initialization module.
The modules selected and configured in the previous steps form the first batch
which is created by default.
You may then eventually add other batches with different configurations, e.g., to vary the dimension of the search space or the population size.
When the schedule creation is finished, you see a control panel at the bottom, an information panel to the left and
the created views to the right. For details, see
Chapter 3: chapter3.
Note that a speed limit of 10 generations per second is set by default in the control panel.
You can switch off the speed limit or alter its value by using either the text field or the slider to the right.
Then hit the Start button to start the simulation.
When the stopping criterion is fulfilled, the run ends and the next run starts,
if multiple runs or batches have been created.
Please note that several options and commands are disabled when the algorithm
is running. To pause the algorithm and enable editing commands, hit the
Suspend button to suspend the current run.
For further information about editing the current schedule,
see Section 3.3: EditingSchedule.
In the information panel, the current time index is shown.
By entering a different time index or by using the navigation buttons in the control panel, you can skip back to past generations, runs, and batches to watch a replay of the simulation at that point of time.
To continue the simulation, hit the Skip to End button and FrEAK continues creating new generations.