GPdotNET is artificial intelligence tool for applying Genetic Programming and Genetic Algorithm in modeling and optimization of various engineering problems. It is .NET (Mono) application written in C# programming language which can run on both Windows and
Linux based OS. Project started in 2006 within postgraduate project for modeling and optimization with evolutionary algorithms. As open source project, GPdotNET is first published on November 5 2009 on codeplex.com. GPdotNET is very easy to use. Even if you
have no deep knowledge of GP and GA, you can apply those methods in finding solution. The project can be used in modeling any kind of engineering process, which can be described with discrete data, as well as in education during teaching students about evolutionary
methods, mainly GP and GA. The project is licensed under GNU Library General Public License (LGPL). For information about license and other kind of copyright please see
Figure 1. GPdotNET v2 new look
Main place for all news, documentation and code changes is my blog site at
If you have never heard about GP and GA, recommendation for getting basic information about GP is
http://en.wikipedia.org/wiki/Genetic_programming. The wiki page also contains some links to other web sites about GP. For GA there is wiki page which contains a basic information about GA at this
GPdotNET v2.0 supports the following types of modeling and optimizations:
1. Model for Discrete Data – modeling with/or without prediction of discrete data by using Symbolic Regression modeling with GP
2. Model&Opt. for Discrete Data - modeling with/or without prediction of discrete data by using Symbolic Regression with GP and Optimizing calculated GPdotNET model by using GA
3. Model for Time Series - Time Series modeling and prediction data by using Symbolic Regression with GP
4. Optimization of Analytic Function - optimization of analytic defined function by using GA
GPdotNET v2.0 as Cross-Platform and Cross-OS application
One of the main requirements for GPdotNET v2.0 is ability to run on multiple OS, by using .NET and Mono framework. So GPdotNET v2 can run on all OS where Mono is implemented. During the implementation every piece of code is tested against Mono. When code
is not compatible with Mono, it was replaced with the code available in Mono. I can say that the whole implementation is done using Visual Studio and MonoDevelop, working on Windows and Fedora 17. I didn’t have much time to test GPdotNET on OS other
that Windows 7 and Fedora 1, so every bug report would be appreciated.
Figure 2. GPdotNET v2 in MAC OS environment
Figure 3. GPdotNET v2 in Fedora 17 OS environment
New text based file format *.gpa (new in v2)
GPdotNET V1.0 supported binary file format, and for large population size the file size was also big. On the other hand, with text file format you have possibility to modify file outside the GPdotNET. For example you can see whole population chromosomes,
and see other data you are interesting in. You can also perform some manual modification if you like, by modifying training or testing data as well as parameters. In general manual modification file is not recommended.
Support for Excel and CSV export (new in v2)
Exporting in GPdotNET v2 is based on openXML file format, but there is some compatibility issue in Mono, so you cannot use Excel exporting in Mono. While you ruinning GPdotNET v2 on Mono you can export data in CSV file format. This is only one feature which
is not running in both Mono and .NET.
Optimization of GPModels (new in v2)
GPdotNET v2 can run optimization of calculated gpmodel. Optimization is very important for any engineering system.You can perform optimization after you perform modelling and got result. In fact you can run optimization and modeling as much as you want with
only one constrains: You cannot run Optimization and Modelling at the same time.
Optimization of analytically defined function (new in v2)
GPdotNET v2 now supports optimization of any analytically defined function. You can defined function in Tree expression designed, define constrains and perform optimization.
Support *.csv data file
GPdotNET support csv file format for loading training, testing and time series data. Common example of data file can be seen on the following picture. Regardless of user localization floating numbers must be written with decimal
point. On this way we skip some complexity and localization issue seen in the previous version. Columns are separated by semicolon, and rows with newline. The last column is always output variable. In case of Time Series, data file can contains only one column.
Info tab in Model (new in v2)
When you start with modeling and/or optimization a new Info Tab is created as well. Info tab contains rich edit control in which you can paste or load any rich text content from text to picture. On this way, you can attach textual information of you model.
New Look& Feel (new win V2)
Unlike previous version, GPdotNET v2 has new simplified GUI with only one big toolbar containing all available options, by removing all unnecessary options. Commands are split in to 4 major groups: Model, Modelling, Export and
Common. It is very simple and gives you all options directly on the screen. Run, Stop and Optimize commands are shifted to main toolbar, in order to give use ability to stop or run programs from any tab page, not only from run page.
Useful links related to GPdotNET v2.0
GPdotNET Project at my blog GPdotNET v2.0 First Looks
Tutorial: Working with optimization module in GPdotNET v2.0
More info at my Blog: http://bhrnjica.net