Of a function y = f(x), we know a number of samples yi = f(xi). Let's call this function the "target function" and the samples the "fitness cases". Our goal is to find an approximation of the target function in symbolic form. We measure the quality of the approximation by the sum of the absolute differences of the target function values and the approximation function values at the sample points. This number is also called the "fitness" of an approximating function.
In the main panel, you may control the genetic program and
inspect the results.
Click the Start button to launch the genetic program. Use the
Pause/Resume button to hold and resume the program. The Stop
button aborts the program. Use the Settings
button to inspect and change some parameters for the program.
The Approximation window shows a cartesian diagram with several traces:
When a complete generation has been evaluated, the Fitnesses window displays a histogram of the fitness values of all individuals.
The Status window indicates what is currently happening.
The Results window displays a symbolic representation of the best approximation function found so far, along with some other data.
You may inspect or change some parameters of the genetic
program in the Settings dialog. Call it up with the Settings button.
Note that you cannot change the settings while the genetic
program is running. Therefore, the Settings button is enabled only
when the program is stopped.
Brief explanation of settings | |
---|---|
Population size | The number of individuals (i.e. synthesized programs) in the population. Each generation has the same number of individuals. |
Max. depth for new individuals | The maximum depth of program trees for new individuals. |
Crossover fraction Reproduction fraction Mutation fraction |
When producing a new
generation, new individuals are generated from the old
population by three methods:
The ratio of the fraction numbers determines the ratio of the methods chosen. |
Max. depth for individuals after crossover | The maximum tree depth for programs produced by crossover. If an offspring exceeds this limit, one of the parents is chosen instead. |
Max. depth for new subtrees in mutants | The maximum depth of subtrees that are spliced in at mutation. |
Method of generation | Determines the shape of the
program trees in the initial population:
|
Method of selection | Determines the method how
parents are selected when breeding a new generation:
|
Fitness cases | These are the samples of the
target function that we are trying to approximate. The
fitness cases are a series of x-y value pairs (x is the independent
variable, y is the function value). To enter your own fitness cases, either type in the values or paste them from the clipboard. You may embed comment lines. Comment lines start with "//". You must enter at least 10 x-y pairs. |
Function set | The list shows all the
functions available. Functions are the internal nodes of the
program trees. The algorithm uses only those functions that you have selected in the list. You must select at least one item. |
Terminal set | The list shows all the
terminal types available. Terminals are the leaves of the program
trees. The algorithm uses only those terminals that you have selected in the list. You must select at least one item. |