GPdotNET v2.0 first look


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:

  1. Modeling of discrete data by using SymbolicRegression modeling with GP
  2. Modeling of discrete data by using SymbolicRegression with GP and optimization GPModel by using GA
  3. Time Series modeling data by using SymbolicRegression with GP
  4. 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.

image_thumb11
Picture above shows GPdotNET and its GP simulation panel in Windows 7.

image_thumb10
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.

image_thumb15
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.

image_thumb27

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.

image_thumb31

Before every line there is a comment with description.

About Bahrudin Hrnjica

PhD in Mechanical Engineering, Microsoft MVP for .NET. Likes .NET, Math, Mechanical Engineering, Evolutionary Algorithms, Blogging.

Posted on 20/07/2012, in .NET, C#, GPdotNET and tagged , , , . Bookmark the permalink. 2 Comments.

  1. Aritra Mukherjee

    But in optimization problems in this version, how do you specify the constraints which involve more than one variable?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s