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 OS. This tool 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. If you want to use GPdotNET you need to have at least basic knowledge about Genetic Programming and Genetic Algorithm. Since version 2, GPdotNET became cross-platfrom and cross-OS application.
GPdotNET v2.0 supports the following types of modeling and optimizations:
- Modeling of discrete data by using SymbolicRegression modeling with GP
- Modeling of discrete data by using SymbolicRegression with GP and optimization GPModel by using GA
- Time Series modeling data by using SymbolicRegression with GP
- Optimization of analytical defined function by using GA
GPdotNET v2.0 as Cross-Platform and Cross-OS application
GPdotNET v2 is developed against .NET 4.0 and Mono 2.8. Both frameworks share 100% of all code. Except of exporting model to Excel, all source code are the same. The pictures below show look of GPdotNET on Windows 7 (first one) and Fedora 17 (second one). GPdotNET v2.0 is tested only on Fedora OS.
Picture above shows GPdotNET and its GP simulation panel in Windows 7.
Picture above shows GPdotNET and its GP simulation panel in Fedora 17.
Optimization main new feature in GPdotNET
The main new feature among several other is Optimization based on Genetic Algorithm. You can either optimize GPModel calculated in previously thought GP modeling, and also optimize analytically defined function defined with analytic function editor. The picture below shows sample of defining f(x)=x^3 – 6x^2 + 4x + 12 in the analytic function editor. During construction of the function, right table is filled automatically with variables and constants. End of process of defining analytic function is finished when the Finish button is pressed to transfer variables and constants in to Optimization panel.
Analytic function editor in GPdotNET
After the Finish button is pressed, switch to Optimize model tab and define maximum and minimum values for input variables. More information how to work with function editor can be found at this blog post.
The picture above, show optimization panel, with defined min,max values (-1, 5) and also finished optimization proces founded result of f(0.36713)=12.7093. The process of optimization is similar with GP showing standard properties during of running program.
“*.gpa” – new file format for persisting GP and GA models
GPdotNET v2.0 introduce new textual file format for persisting GP and GA models and information during the program run. The file format is simple and easy, so sometimes you can edit in order to correct some minor changes. For example if you create GPModel without optimization, but later on you need to optimize this mode, you can easily change the type of model to enable optimization. The picture below shows sample GPdotNET “gpa” file format opened in Notepad++ with syntax highlighting.
Before every line there is a comment with description.
But in optimization problems in this version, how do you specify the constraints which involve more than one variable?
I will post short tutorial about it.
For now, just select row of variable with mouse. Enter constrains in edit boxes and click Update button.