GPdotNET – project
GPdotNET Blog posts
- Function optimization with Genetic Algorithm by using GPdotNET
- Implementation of Traveling Salesman Problem with GPdotNET
- How to optimize analityc function in GPdotNET
- Golden Ratio and GPdotNET v2 User Interface
- GPdotNET v2.0 Feature Complete Milestone Reached
- GPdotNET v2.0 announcements
- Optimization new feature in GPdotNET v2.0
- GPdotNET v2.0 is comming
- GPdotNET v2.0 first look
- GPdotNETv2.0 for Linux now is on code.google.com
- GPdotNET Session at KulenDayz 2012
- Skrgic Selection in GPdotNET – 20.Okt.2011
- Yet another scientific work based on GPdotNET – 27. Sep. 2011
- How to add custom function in GPdotNET – 12. Jun. 2011
- GPdotNET v1.0 released – 9. Jun. 2010
- GPdotNET Beta2 released – 4. Jun. 2010
- Fixed memory problem with GPdotNET beta – 16. May. 2010
- GPdotNET on .NET 4.0 Client Profile – 13.May.2010.
- The New version of GPdotNET is coming soon – 10. Jan. 2010
- Modelling with GPdotNET Tutorial – 25. November.2009
- GPdotNET Quick Tour – 05.November. 2009
GPdotNET is open source project, published on http://github.com/bhrnjica/gpdotnet
GPdotNET is C# open source artificial intelligence tool for applying Genetic Algorithm and Artificial Neural Networks in modeling, prediction, optimization and pattern recognitions. With GPdotNET you can solve various engineering problems from classic regression and approximation to linear programming transportation and location problems and other machine learning based problems. By providing the learning algorithms GPdotNET uses a data of the research or experimental measures to learn about the problem. The results of learning algorithms are analytical models which can describe or predict the state of the problem, or can recognize the pattern. GPdotNET is very easy to use, even if you have no deep knowledge of GA, GP or ANN, you can apply those methods in finding solutions. 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, as well as machine learning mainly Artificial Neural Networks.
The typical process of modelling with GPdotNET can be described in 5 steps.
- Choosing the Solver Type: The first step is choosing the type of the solver. Which solver you will use depends on your intention what you want to do. For example if you want to make model for your experimental measurement you have several options which depend of your experimental data and the method you want to use. In GPdotNET you can use Genetic Programming or Neural Nets for modelling and prediction experimental data. But this is not strictly separate as may look on the flowchart below. That means that you can user Neural Networks for prediction, but training algorithm can be based on Genetic Algorithm or Particle Swarm Optimization or Back Propagation algorithm.
- Loading Experimental Data: GPdotNET uses powerful tool for importing your experimental data regardless of the type of data. You can import your numerical, binary or classification data. GPdotNET can automatically define classes, or format numerical data with floating or comma separated decimal values. More info can be find in Section 2.
- Setting Learning Parameters. After data is loaded and prepared successfully, you have to set parameters for the selected method. GPdotNET providers various parameters for each method, so you can set parameters which can provides and generates best output model.
- Searching for the solution: GPdotNET provides visualization of the searching solution so you can visually monitor how GPdotNET finds better solution as increasing the iteration number. If you provide data for testing calculated model, you can also see simulation of prediction.
- Saving and exporting the results: GPdotNET provides several options you can choose while exporting your solution. You can export your solution in Excel or text file, as well as in Wolfram Mathematica or R programming languages.
As can would be seen, working in GPdotNET follows the same procedures regardless of the problem type. That means you have the same set of steps when modelling with Genetic Programming or Neural Networks. In fact GPdotNET contains the same set of input dialogs when you try to solve Traveling Salesman Problem with Genetic Algorithm or if you try to solve handwriting recognition by using Backpropagation Neural Networks. All learning algorithms within GPdotNET share the same UI.
The picture below shows the flowchart of the modelling in GPdotNET. The five steps described previously are depicted in the graphical forms surrounded with Start and Stop elements.
Besides parameters specific to learning algorithm, GPdotNET provides set of parameters which control the way of how iteration process should terminates as well as how iteration process should be processed by means of parallelization to use the multicore processors. During the problem searching GPdotNET records the history, so you can see when the best solution is found, how much time pass since last iteration process start, or how much time is remain to finish currently running iteration process.
Due to the fact that GP is the method which requires lot of processing time, GPdotNET provides parallelization, which speed up the process of searching. Enabling or disabling the parallelization processing is just a click of the button.
2. Cross OS and Cross platform software
One of the main requirement for GPdotNET is ability to run on multiple OS, by using .NET and Mono framework. So GPdotNET 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.
3. Modeling Tool based on Symbolic regression
GPdotNET is developed primary for modeling discrete data e.g. experimental observation from which we need to build a model. GPdotNET support almost unlimited number of input variables (up to 2000) and one output variable. It supports live simulation during program run. All GP and GA parameters can be customized. User also can choose between more than 40 arithmetic functions to be included in model.
4. Optimization of GPModels
GPdotNET v2 can run optimization of calculated GP Model. 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.
5. Optimization of analytically defined function
GPdotNET v2 now supports optimization of any analytically defined function. You can defined function in Tree expression designed, define constrains and perform optimization.
6. Info tab in Model
When you start with modelling 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.
7. New text based file format *.gpa
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.
8. Support for Excel and CSV export
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.
9. New Look& Feel
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.
10. System requirenments:
- For running GPdotNET application
a.) OS – Windows XP SP2 or newer, other OSs which support Mono
b.).NET Framework 4.0 Client Profile, or Mono 2.8
- For development of GPdotNET
a) Visual Studio 2010 (expr, pro, ult), .NET Framework 4.0, MonoDevelop