GPdotNET is tree based genetic programming application for solving problems based on Symbolic Regression. GPdotNET can be applied in various engineering problems of modeling and optimization, as well as Time Series modeling. Project contains C# library with Genetic programming implementation algorithms and Windows Forms application for graphical and visual results presentation. GPdotNET also support parallel processing for multicore processors based on ParallelFx library.
GPdotNET Quick Tour
GPdotNEt requires data to be stored in CSV format, which you can load in application. You can also load data for testing prediction model. The following picture shows Data dialog for loading training and testing data. Loaded data are presented in tabular and graphical manner.
Data format
The format of data which you can load in to an application are in CSV format. The following picture show data format in notepad editor. Each column is split with semicolon, and each row with new line.
Note that decimal separator is comma (European standard). During of loading data for training and testing, program creates model with the last colum as an output variable, and others as input. From training data GPdotNET define variable for Terminal set as well.
Settings parameters of Genetic programming
GP has various parameters which have to be correctly set. The following picture show GP parameters GPdotNET supports.
Selection Methods in Genetic programming
Regarding selection methods in GP, GPdotNET supports 6 kind of selection:
- Rank
- Roulete
- Tournment
- SUS
- FUS
- SS
Tournment and SS (Skrgic selection) contain additional parameter, which can be specified by the user.
Initialization methods
Initialization methods supported with GPdotNET
1. Full
2. Grow
3. Ramphed – Half & half
Primitive computers programs
Every genetic programming algorithms contains set of primitive computers programs which user can choose for model. GPdotNET support near 50 function which can be included in GP model. User can easily choose which programs can be included in GP model by checking Selected column. The weight column defined different probability for choosing function during of run the GP.
Running GP algorithm
When you setup all information needed for running GP, click Run button, and algorithm is starting. On this Tab page (see picture below) you can see information about:
1. Current generation
2. Currently best fitness
4. Maximum fitness
5. Average fitness in population
Etc…
Involve until is option how to run program regarding fitness value or generation number. In combo box option you can choose:
Involve until:
1. Generation number
2. Fitness >=
Based on the option, you can input value in edit control.
You can also see some time specific information about average time left to program completes (if you select involve until generation number).
Presenting the results
GPdotNET is multithreaded application, so during the program runs, you can see result model, as well as result in S-Expression.
Click on View S- expression button to see result.
Testig GP model
If you loaded test data in Data Tab page, when program finish searching for the best chromosome, you can see prediction based on the current result. See picture below. You can also see the prediction of testing data during the program runs.
There will be more in the next post, which we will put some tutorials about modelling in GPdogtNET.