When you start GGP, the program will show the three permanent dialogs

`GGP Actions
`

When you start Actions or modify one of the Options, temporary dialogs pop up that allow you to modify data, answer questions, execute commands, etc. Not all of these dialogs are explained here. The most important ones are:

`Approximation
of a function`

`Data of the basis functions`

`Constants,
elementary functions and operations`

`Fitness
definitions and entire basis data`

`Function options dialog`

`Graphic window options`

`Mutation rates, Constants`

`Options for computations of series and
formula`

`Pool of available basis functions`

`What
would you like to be computed?`

** GGP
Actions** Contains 9 buttons that are a
kind of shortcuts for the most important actions that can also be
started from the Actions menu. Note that there are some
differences in the behavior of the shortcuts and the menu
actions. The shortcuts immediately start an action (usually),
whereas the menu actions usually display dialog boxes for
specifying details of the action. The meaning of the 9 buttons
(from left to right) is:

- Compute Series or Formula (This action will not start immediately!)
- Clear the actual
window`CH Graphics` - Draw the actual function
- Approximate the actual function with the actual basis
- Optimize the parameters of the actual basis (in an infinite loop!)
- Optimize the parameters of the basis, the composition of the basis, and the pool
- Stop the optimization (infinite loops)
- Display the best solution that has been found so far
- Display the hitlist, i.e., the best solutions that have been found and saved on files

** Cursor
position** Displays the data of the
position of the cursor, as long as it is in a

** Data of the approximation**
Displays the most important data of the actual and best
approximation that has been found so far. Moreover, a small text
box gives hints on what GGP is doing.

** Approximation of a function** Contains the most important system
parameters for the approximation of a given function. Note that
the approximation is performed in three nested loops. The dialog
contains a group of boxes for each of these loops. The inner loop
is the parameter optimization loop, the middle loop is the type
optimization loop, the
outer (infinite) loop is the pool
optimization loop. In
addition, the dialog contains boxes for the color number and the

The parameter
optimization loop is
repeated no more than ** N<=** times. It
can be exited before N iterations have been performed, if the
chance of finding a much better solution is considered to be
small. The values

The type
optimization loop is
performed at least as many times as required to compute the
fitness of each function in the pool once. GGP picks up pool
functions with an undefined fitness and constructs a basis using
them. This basis is tested in the parameter optimization loop. It
is reasonable to test at least the fittest pool functions more
than once. This is done, if ** N+=** is
bigger than 0. After having used each of the pool functions in
one of the basis sets, GGP will construct

The pool
optimization loop is
infinite and can be stopped by the user only and by rare events
that cause GGP to crash. In this loop, the ** Mod. %**
worst basis functions of the pool are deleted and replaced by new
functions that are constructed A) randomly, B) by mini mutations
of one of the remaining functions in the pool, C) by the
well-known genetic operations mutation or crossover. The
corresponding rates are defined in the boxes

mul(mul(div(x0,p0),mul(p0,x0)),sim(com(p0,p0),div(x0,x0)))

In usual notation, this is ((x0/p0)*(p0*x0))*sin(cos(p0*p0)*(x0/x0)). You certainly can simplify this formula. Symbolic formula simplification is rather difficult. Moreover, simplification modifies the topology of the formula tree. The tree above has exactly 8 terminals. It is completely symmetric and has the same topology as all full trees of depth 3 with binary operators only. (x0*x0)*sin(cos(p0*p0)) has only four terminals, sin(cos(p0^2))*x0^2 even only two terminals and a completely different topology. This makes crossover not only more complicated but also questionable. Natural genetic crossover combines strings of identical length, not strings of arbitrary length. At least, Christian Hafner's experience with full trees without simplification is more encouraging than the experience with variable trees with simplification. Therefore, only full trees without automatic simplification are available in the current GGP implementation.

** Data of the basis functions** Contains the information on the actual
basis and buttons for changing and recomputing the basis. Since
the entire basis can contain more than one basis function, only
the data of the basis function selected in the

** Constants, elementary
functions and operations** Contains the definitions of the four
implicit constants C0, C1, C2, C3 and the probabilities of GGP's
elementary functions/operators that are used to construct formula
of basis functions. When the probability is set equal to 0, the
corresponding function/operator will not be used when GGP
constructs a new basis function. Nonetheless you can add manually
formula in the pool containing elementary functions/operators
with zero probability.

** Fitness definitions and
entire basis data** Contains the formal definitions of the fitness values
and some fitness information of the actual basis. Note that GGP
uses the

** Function options dialog** Contains data on the actual function
and its graphic outfit. Note that GGP displays only one
real-valued function with only one real-valued argument at a
time, but GGP can store several functions of one or more
arguments in a file. In this case, GGP stores all functions as an
array. The rows of this array correspond to the values, i.e., the
sampling points. The

** Graphic window options** Contains data of the CH graphics
windows. For the GGP Demo Version, the number of such windows is
one and cannot be changed. Each window is characterized by 1) a

** Mutation rates, Constants** Contains details of the GGP mutations
that are not described here.

`Options for computations of
series and`** formula** Contains data for defining several
series and of user defined formula. The former is not important
for the GGP demo and is not described in this manual. In the
section

** Pool of available basis
functions**
Contains data of the individuals in the pool and buttons for pool
manipulations. The formula string of the individual selected in
the

** What would you like to be
computed?**
Contains buttons that allow the computation of several series and
function manipulations. For the GGP demo, only