GPdotNET


GPdotNET – project

GPdotNET Blog posts

GPdotNET v4.0

GPdotNET v2.0

GPdotNET  Logo

GPdotNET is open source project, published on

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.

 gpdotnetv40_sl01

The typical process of modelling with GPdotNET can be described in 5 steps.

  1.  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.
  2. 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.
  3. 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.
  4.  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.
  5. 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.

Modeling_in_GPdotNET_v4

Modeling in GPdotNET v4.0

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

  1. It seems to work fine, except that when I press “START”, I always get the error message: “Greska u formiranju modela experimentalnih podataka”
    Can you help?
    thanks!
    Scott Gordon

    • Thanks for interesting in my project.
      The error is about your experimental data. Maybe, your training data set and testing data set are not the same dimensions. Can you provide me with more information about error, or you can send me your experimental data to see whats wrong.

      Thanks.

  2. Thanks for responding so quickly. I get the same error with your SRsample data. Perhaps I am doing something wrong? I am running the .exe version. I first click the new icon. Then I go under the “data” tab and click “load training data”. I choose your SRsample_training.csv file. Then I click “load test”, and choose your SRsample_test.csv file. Then I move to the Run tab and click “start”. I then get the error message.

    • You probably didnt install ParallelFX CTP June 2008, library for parallel programming with .NET.
      You can find it on MS site or you can download dll from here

      In source code of you can also find subversion with Visual Studio 2010 Beta 2 or RC project. Try to compile and run.

  3. Thanks, I’ll try those. The MS site does not distribute parallelFX ctp june 2008 any more, so I’ll have to try your link, or compile under the VS 2010 beta or RC.

  4. Your copy of the dll wouldn’t install using Regsvr32. Am trying the beta VS.

  5. I tried that, same error.

    • Then you need some other components. Which version of .NET Framework is installed on your machine?
      GPdotNET only support .NET 3.5 SP1. So if you have older version of the .NET probably this cause the error.

  6. Yes, I have 3.5 SP1. So now I’m trying to compile using the _src folders. I can open the .sln file, but when I try to build it can’t find the System.Threading.dll. Which folder in the project should I put it in so the compiler can find it? Thanks again.

    • Here is compiled version with parallelfx. Just download and run. If you have .NET 3.5 with Sp1 it should work corectly.

  7. You’re a genius… that one works! I am going to enjoy playing with it. Thank you very much for spending the time helping me out.

  8. Quick update… although the program is running now, it starts consuming a lot of memory and quickly freezes – must be stopped from the task manager. I’ve reduced lots of the parameters (pop size, tree depth, etc) and it doesn’t seem to make a difference. Also tried it on two different machines. During 2nd or 3rd gen it has frozen. If I change to “single core” in settings, it freezes during 1st gen.

    • I didn’t experience that problem. For about 100 training point and population size 500 with about 10 tree depth level, evolution completes below second. Naturally during the runs of algorithm consuming more memory cause the population contains bigger chromosomes but not to freeze the program.

  9. I just tried it in our university’s advanced lab with 64-bit machines, and it froze the same as it does on my two 32-bit machines. Have you tried it on a variety of workstations? thanks.

  10. hello everybody.I just want to thanks developer. GPDOTNET is a really useful application good job.
    but in final step of using app I always have problem when I’m exporting results to excel. the formula doesn’t work!
    any idea?
    for example this one:
    (((((((R5+(R1*((R1*X1)+R4)))/R1)+(((((((R4/X3)+(R4*X2))*R5)-(((R1+((R5/R5)+(X1+X1)))+(R2+X3))+((R4/R5)+(R4*X2))))+(R3+(X3*R5)))/R3)+((R6*X3)+((R5*X1)+(((X1+R6)*((((X2*X2)+(X1-X3))+(R6/R3))+(R6+R1)))+(R6+(R6/(((R5*R1)+(X1-R5))+(R5/R5)))))))))*X1)+((R6+R6)/R4))/(((((((((R3+(R6+R4))+R6)*((((R5*R4)+(R3/X1))+((R4+R1)+(R2-X3)))+R2))+(R6/R3))+(X1+((X1*((R6+R1)+X1))+(R6+R1))))/(R3+R1))+((R5*((((R5*R4)+(R3/X1))+(R4+(R2-X3)))+R2))+((R1+R6)/((R1*R4)+(R1+R6)))))/R1)+((R1+X3)*((R1/R4)+X2))))+((((((((R4/X3)+(R4*X2))*R5)-(((R1+((((R1+R5)*(R3*X1))/((R3*R6)+(X3+X1)))+(((R6+X3)+(R2/X2))+X1)))+(R2+X3))+((R4/R5)+(R4*X2))))+(((R5*X1)+(((X1+X1)*(((((R1+R4)*(R5+R2))+((R6*R3)-(R1+R5)))+(R6/R3))+(R6+R1)))+(R6+(R1/((((X1+R1)*(R6+R2))+((R2*R3)-(R1+R5)))+(R5/R5))))))+(X3*R6)))/R3)+((R6*X3)+((X1*R3)+(R6+R1))))+(((((R3+R3)*((((R5*R4)+(R3/X3))+((X1+R1)+(R2-X3)))+R2))+(((((R4+(R6+R4))+R1)*((((R5*R5)+(R3/X1))+((R4+R1)+(R2-X3)))+R2))+((((((R4/X3)+(R4*X2))*R5)-(((R1+(R5+R2))+(R2+X3))+((R4/R6)+(R4*X2))))+(R3+(X3*R6)))/X1))+(((((R3+(R6+R4))+R6)*((((R5*R4)+(R3/X1))+((R4+R1)+(R2-X3)))+R2))+(R6/(((((R4+R3)*R3)-((R5+R6)+(X3+R1)))+(R3+(X3*R1)))/R3)))+(R3+((X1*((R6+R1)+X1))+(R6+R1))))))+((((R4+(R6+R4))+R6)*((((R5*R4)+(R4/X1))+((R4+R1)+(R2-X3)))+R2))+(((((((R3+(R6+R4))+R6)*((((R5*R4)+(R3/X1))+((R4+R1)+(R2-X3)))+R2))+(R6/((((R2*R3)-(R6+R1))+(R3+(X3*R1)))/X3)))+(R5+((X1*((R6+R1)+X1))+(R6+R1))))/((R1*((R1*X1)+R3))+R1))/((R6*R3)+(X2+R6)))))/(((R6+(R1*((R1*X1)+R3)))*R2)+(R6/R4)))))
    Thank u

    • Thank you for interes in GPdotNET.

      Yes, you are right,it is very often happend that, and it is not problem with GPdotNET. There is solution about it trying to copy and paste formula directly in to excel in the fist row of Y column, then manually paste in other rows.

      The process of exporting formula from GPdotNET in to Excel is simply paste operation, and sometimes excell does not accept the formula.

  11. Hi ! Thanks for the article ! it’s very good , but i have а several questions :
    What’s the difference between data model and time series ?
    How does work prediction ?What does it predicts ?+)
    Why fitness function error is increase?

    • Thanks for the questions. They are very common.
      1) With Data model you can build mathematical model of discretized data, like experimental research with 2 or more input variable, and one and only one output.
      2) Time series is stochastic process in time like weather forecast, stock exchange and so on. The data depends only of time and previous data.
      When you got the result, you can export model in to Excel, and test model by other values as well as make prediction of model. But you can also load data for testing in to GPdotNET, and compare GP model with real value.
      3) The fitness is normalized, so if the value is zero that is the worse result, and if the value is 1000 this is the correct solution (this is specific programming model), whatever it is maximum or minimum type of solution finding.

      I am glad if you got the right answers.
      Regards
      Bahrudin Hrnjica

  12. Hello,
    I’m using it but actually I found out some problems; sometimes, when I repeat more time the same experiment (whitout close and re-open the application) the time consuming is high. The real problem is on my simple quartic function: it’s quite far to approssimate it. I can’t understand the reason; I tried other GP framework without changing any params; most of all are able, quiackly, to get very close to x^4 + X^3 + X^2 + X.
    Start to guess I’m doing wrong something. Any suggestion?
    thanks

    • Thank you for using GPdotNET,
      I am not so sure about solution of your problem, but generally such a problem sould be solved relatively quickly.

      Maybe some sugestions:

      1. Did you try to run model without constants
      2. Check for parameters of tree dept it would not be too big (maybe about 7)
      3. Check functions set, right choose of function set will increase quality of gp solution.

      regards

  13. Why I can’t copy or cut any cell in gpdotnet after it finishs.

    • In Export menu, there are options which you can export all data to excel with GP model as well.

      • Thank you very much. But why I can’t export R or Ygp column? and what should I do if excel formula is too large? I going to plan to write article about exporting the GPdotNET results in to excel. So stay tuneed.

      • During export, GPdotNET gives you opportunity to copy and paste formula directly in to excel, if something went wrong. So it never be the case that you can not export data as well as formula in to excel.

  14. Very cool project!

    Here’s another that you might want to check out if you’re looking for additional algorithms/representations/etc.(unfortunately there’s no GUI yet, but everything seems to be working fine at the console) …

    I’ve forked ECJ to C# .NET 4.0. The package includes everything from the original ECJ Java project, including all of the working samples.

    I also wrote 500 unit tests to verify many aspects of the conversion. But many more tests are needed. In particular, the distributed computation aspects are not fully tested. That’s because I plan on converting from ECJ’s simple use of sockets to a more robust strategy using WCF and WF. I’ll also be reworking the framework to utilize TPL (Task Parallel Library). Of course, none of that is particularly relevant if you just want to lift some algorithms out of it.

    Anyway, you can download the initial conversion here:

    I am also in the process of converting several other frameworks from Java to .NET that relate to “synthetic intelligence” research (when I can find the time).

    Ben

    PS: ECJ is a very powerful and flexible framework for Evolutionary Computation in Java. But there are a lot of cool .NET features that could make it even better for those of us who prefer C#.

    • Cool, thank you for sharing this information. Seems that your project is interesting too. Unfortunately, my every day job is different than GPdotNET which I develop in free time.

      If you think I can help dont hesitate to contact me on mail published in About secton of my blog.

      Regards

  15. hello i am a beginner with this package and i cant load training test to gpdotnet because i cant open guidance picture in this page can you send me a correct file format or example file? i need it very and i don’t have time please help me))))))):

  16. Hey! This is my first visit to your blog! We are a team of volunteers and starting a new initiative in a community in the same niche. Your blog provided us useful information to work on. You have done a extraordinary job!

  17. Hi Bahrudin, I need some urgent help in WPF.

    I am looking for PlacementAdapter and ParentAdapter classes examples.

    My task is to create custom panel based canvas that will interact in design time (possible using PlacementAdapter and ParentAdapter abstract classes) and handle size/position of standard controls like TextBox or Label when such a control become child of the custom panel.

    Any help is welcome in advance.

  18. Hello, I downloaded source (v2beta) but opening in VS2010 says two missing projects, gpNetLib and gpWpfTreeDrawerLib. Where do I get these from?

    Thanks

  19. Thanks for your quick reply!
    I downloaded the source from here

    And get folders GPdotNetv2b2, GPDotNet, BuildProcessTemplates and file GPdotNet.sln
    I opened the GPdotNet.sln in VS2010 and cancel the TFS request.

    If I delete the two projects then I get 10 errors – missing references in files including GP_TS_Panel, TreeExpression & GPdotNetApp

    • Sorry for inconvenience,
      please open GPdotNETv2b2 folder

      and open GPdotNET_CP.sln file within the folder.

      The root solution file is for previous version but several project are deleted.

  20. That worked. Many thanks for your help and for sharing your code, keep up the great work

    Steve

  21. Hello,

    Compliment for the excellent work!! Really nice!

    I’ve a question/problem.

    I’ve try the GPdotNET v2.0 to model a simple time series.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31

    The software can find very fast solutions but none of them are correct. On the prediction tab the R is 19. Am I missing something?

    Thanks a lot for your work
    Claudio

  22. …Just an update.

    The formulas are correct, just the field “Ygp” in the prediction tab has a wrong calculated value.

    Please run my simple test case, to see it.
    Claudio

    • Hi Claudio,

      thank you for your bug report,
      I have just reproduced your bug.

      It will be fixed in the next probably Beta 3 version.

      Note that there are still some minor bugs, which I need to fix, before I released version 2.

      Regards
      Bahrudin

      • That’s really cool!!!

        I’ve also notice that the Export Gp result ->Excel/Calc , sometimes produced invalid formulas , in the formula there are reference to un-used cells.

        Thanks again
        Claudio

      • Ill take a look for this report too. It might be a bug too.

        Thank you very much. You saved me a lot of time.

        Feel free to drop here any strange behavior you recognize.

        PS: I have already fixed your previous bug report :)

        Best regards
        Bahrudin

  23. Ok…if you asked for ;-)

    Click on New -> selected any GP Model -> click Run.

    ->UnHandled exception

    Maybe an old fashion “Try and catch” around, and a nice msgbox. ;-)
    Claudio

    • Claudio,
      please take a look for Beta 3 recently uploaded version. IT contains fix for all your bug report. :)
      regards

      • Hello Bahrudin

        Everything looks perfect… ;-) Thanks a lot!

        I have a request/wish.
        Would it be possible to use the formula output as input on the next iteration?

        To improve accuracy I normally use the formula in excel and
        compute the value and use it as an additional input. I normally do this
        2 o 3 times. Would be nice to have it fully automated, maybe a checkbox to control such behaviors.
        What do you think?
        Claudio

      • You want multiple output variables which can depend to one of the previous output variable. Maybe in the next next version but for now it is impossible.

  24. Hello
    Thank you for GPdotNET.
    How can I convert data of excel 2007 to gpa or another for software?

    • Probably you asked for information how can you discrete data import in to GPdotNET, to define Training data, you will find answer in this post /2009/11/05/gpdotnet-quick-tour/ . Please see Chapter Data Format, BUT in V2 DECIMAL SEPARATOR IS POINT, NOT COMMA.

  25. Marco Rojas

    Hi, how I can predict new genetic programming model trained and saved file (*. Gpa), new input data?

    Best regards,
    Marco

    • Please see topics at the begining of this page. You can also find information how to use GPdotNET in “GPdotNET User Manual” installed with the GPdotNET on your PC.

      • Marco Rojas

        Hi, thanks for your reply, I have another query:

        Case – Model for discrete data:
        1) in GPdotNET new button click, click and post training data file with 3 inputs and 1 output, not I click on button Prediction Data.
        2) after the end of training GPdotNET, I click on save as *. GPa. and click out of GPdotNET
        3) then start GPdotNET, I click on Open and save file charge *. GPa trained with 3 inputs and 1 output
        4) then I click on Prediction GPdotNET dates with “3 new entries … end” to predict and does not work.

        suggestion:
        GPdotNET predict layers should be more than 1 column output (output 1, output 2, output 3 …..) In real life cases, it is necessary to predict more than one output variable in discrete data, time series and other options.

        Thank you for your attention.

    • Marco Rojas

      Hi, thanks for your reply, I have another query:

      Case – Model for discrete data:
      1) in GPdotNET new button click, click and post training data file with 3 inputs and 1 output, not I click on button Prediction Data.
      2) after the end of training GPdotNET, I click on save as *. GPa. and click out of GPdotNET
      3) then start GPdotNET, I click on Open and save file charge *. GPa trained with 3 inputs and 1 output
      4) then I click on Prediction GPdotNET dates with “3 new entries … end” to predict and does not work.

      suggestion:
      GPdotNET predict layers should be more than 1 column output (output 1, output 2, output 3 …..) In real life cases, it is necessary to predict more than one output variable in discrete data, time series and other options.

      Thank you for your attention.

  26. Hello, when I to load a .CSV value into your program, I get the message:

    “Input string was not in a correct format.”

    Here’s a sample of my .CSV.

    d42,e42,f42,g42,h42,i42,j42,k42,y
    1.99,-3,1.917,2.36,1.667,1.952,213.5,1.952,-4
    1.909,2,2,1.763,2.19,2.05,195,1.862,10
    1.935,-3,1.971,2.29,1.699,1.935,189,1.971,-4
    1.917,-6,1.99,3.01,1.444,1.98,196,1.926,-11
    1.99,-6.5,1.917,3.44,1.364,1.971,183,1.935,-15
    1.952,-9,1.952,5.04,1.211,1.952,202.5,1.952,-13
    1.971,4,1.935,1.606,2.49,1.952,183.5,1.952,-8
    1.935,-4,1.971,2.49,1.606,1.952,193,1.952,-3
    1.971,1,1.935,1.926,1.98,1.926,213.5,1.98,5
    1.952,-4,1.952,2.54,1.585,1.952,198,1.952,15

    I’ve tried changing the decimals to commas, and using semicolons as the separator:
    d42;e42;f42;g42;h42;i42;j42;k42;y
    1,99;-3;1,917;2,36;1,667;1,952;213,5;1,952;-4
    1,909;2;2;1,763;2,19;2,05;195;1,862;10
    1,935;-3;1,971;2,29;1,699;1,935;189;1,971;-4
    1,917;-6;1,99;3,01;1,444;1,98;196;1,926;-11
    1,99;-6,5;1,917;3,44;1,364;1,971;183;1,935;-15
    1,952;-9;1,952;5,04;1,211;1,952;202,5;1,952;-13
    1,971;4;1,935;1,606;2,49;1,952;183,5;1,952;-8
    1,935;-4;1,971;2,49;1,606;1,952;193;1,952;-3
    1,971;1;1,935;1,926;1,98;1,926;213,5;1,98;5
    1,952;-4;1,952;2,54;1,585;1,952;198;1,952;15

    Any help would be appreciated.

    Take care,
    Dylan

    • Hi
      thanx for comment.
      Please use ; (semicolom) instead of , (comma) to separate values. Floating point is . for any localization.
      Please dont use name of variables, GPdotNET knows that the last column is output variable.You can use ! as first character in line to make a comment.
      For the sample you have provided the correct data file is the following:

      ! comment this line is not consider to be input data d42;e42;f42;g42;h42;i42;j42;k42;y
      1.99;-3;1.917;2.36;1.667;1.952;213.5;1.952;-4
      1.909;2;2;1.763;2.19;2.05;195;1.862;10
      1.935;-3;1.971;2.29;1.699;1.935;189;1.971;-4
      1.917;-6;1.99;3.01;1.444;1.98;196;1.926;-11
      1.99;-6.5;1.917;3.44;1.364;1.971;183;1.935;-15
      1.952;-9;1.952;5.04;1.211;1.952;202.5;1.952;-13
      1.971;4;1.935;1.606;2.49;1.952;183.5;1.952;-8
      1.935;-4;1.971;2.49;1.606;1.952;193;1.952;-3
      1.971;1;1.935;1.926;1.98;1.926;213.5;1.98;5
      1.952;-4;1.952;2.54;1.585;1.952;198;1.952;15

      Regards

  27. Marco Rojas

    Hello,

    I have some suggestions for improving the program:
    PREDICTION
    – GPdotNET should have a module only for predictions where you can use the best program or chromosome found
    INPUTS – *. XLS
    – GPdotNET should be able to use tabs or file formats *. XLS
    DEPARTURES – PREDICTION
    – GPdotNET should be able to predict 2 or more columns = outputs model for discrete data, time series model ……..

    Regards,
    framework
    Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder

    • Hi Thanx for comments and suggestion. I know it is very important to have more than one output variable. I have put this task on the list before the latest version. I can say it will be included in next version .

      Regading file format:
      – CSV file format is used for loading discrate data in to GPdotNET, while
      – *.gpa is txt file format for persisting whole gpdotnet information on disk and use later.

      It is not much work to make CSV to be Tab separated as well. I will include that feature in the task list.

  28. Nagarjuna Chamidisetty

    hi…when I tried to load a data set…its displaying the following error…

    “Input string was not in a correct format”

    I have modified my data set based on the suggestions provided by you.But after modifying the data set also I am facing the same problem..please help me regarding this issue….

    my data set:
    ,a,b,c,out
    1,6.785629952,0.089481096,0.307327347,0.05734874
    2,0.127460067,6.824537231,0.801486075,0.558778019
    3,2.264304954,5.225778363,0.276048284,0.901687409
    4,8.597624892,0.723785558,0.567003547,2.000598587
    5,2.726648921,0.286097693,1.86661489,2.718022387
    6,8.072915963,0.008600376,6.486199477,2.920979146
    7,8.965816347,2.942398068,0.45596967,5.484830071
    8,6.052904221,6.791992466,0.456608418,8.571342036
    9,7.177019311,0.03813694,6.601688252,11.92888863
    10,0.905245517,9.340801168,1.231698787,12.82801732
    11,5.107911999,1.769890817,1.296346985,15.19261058
    12,6.967205236,5.671592803,0.773768659,23.65842977
    13,6.127624624,1.78395069,1.660156964,30.12820805
    14,0.859691076,2.016229906,4.401787765,33.58463777

    Modified Data set:
    ;a;b;c;out
    1;6.785629952;0.089481096;0.307327347;0.05734874
    2;0.127460067;6.824537231;0.801486075;0.558778019
    3;2.264304954;5.225778363;0.276048284;0.901687409
    4;8.597624892;0.723785558;0.567003547;2.000598587
    5;2.726648921;0.286097693;1.86661489;2.718022387
    6;8.072915963;0.008600376;6.486199477;2.920979146
    7;8.965816347;2.942398068;0.45596967;5.484830071
    8;6.052904221;6.791992466;0.456608418;8.571342036
    9;7.177019311;0.03813694;6.601688252;11.92888863
    10;0.905245517;9.340801168;1.231698787;12.82801732
    11;5.107911999;1.769890817;1.296346985;15.19261058
    12;6.967205236;5.671592803;0.773768659;23.65842977

    after modifying the data set, I tried to load it.But again its showing the same error

    “Input string was not in a correct format”….

    Could you please help me regarding this issue…

    Regards

    • Variable name cannot be part of Load data. You can simple commented variable names (the first line) and you can load data.

      You data should looks like. (note that I have put ! before line one in order to commented line.)

      !;a;b;c;out
      1;6.785629952;0.089481096;0.307327347;0.05734874
      2;0.127460067;6.824537231;0.801486075;0.558778019
      3;2.264304954;5.225778363;0.276048284;0.901687409
      4;8.597624892;0.723785558;0.567003547;2.000598587
      5;2.726648921;0.286097693;1.86661489;2.718022387
      6;8.072915963;0.008600376;6.486199477;2.920979146
      7;8.965816347;2.942398068;0.45596967;5.484830071
      8;6.052904221;6.791992466;0.456608418;8.571342036
      9;7.177019311;0.03813694;6.601688252;11.92888863
      10;0.905245517;9.340801168;1.231698787;12.82801732
      11;5.107911999;1.769890817;1.296346985;15.19261058
      12;6.967205236;5.671592803;0.773768659;23.65842977

  29. Nagarjuna Chamidisetty

    hello,

    when I tried to load a data set…its displaying the following error…

    “Input string was not in a correct format”

    my data set:

    CS AVG OBP SLG OPS PA/game Salary
    5 0.29 0.34 0.43 0.76 4.48 7000000
    9.75 0.28 0.34325 0.373 0.71625 4.425961 7000000
    5.33 0.26 0.35 0.44 0.79 3.96 3650000
    1.33 0.24 0.28 0.41 0.7 3.09 560000
    0.67 0.27 0.35 0.45 0.8 2.92 3100000
    1.33 0.26 0.34 0.44 0.78 3.98 12000000
    2.33 0.25 0.34 0.45 0.79 4.1 13146942
    1 0.24 0.29567 0.405 0.70067 3.820221 1450000

    this is some part of data set, i have 23 attributes.I need to predict the salaries using the statistics.I tried to modify the data set in the following manner

    !;a;b;c;out

    but i am facing the same issue.Could you please help me regarding this.

    Awaiting reply.

    • Hi
      thank for using GPdotNET.
      Your data set should use semicolumn not tab delimiter.
      Please note that the first row is commented with !, also I would suggest that output variable Salary be divided with 10000 to get better precision whe GPdotNET calculate error.
      The correct format of data set is the following:

      !CS AVG OBP SLG OPS PA/game Salary
      5;0.29;0.34;0.43;0.76;4.48;7000000
      9.75;0.28;0.34325;0.373;0.71625;4.425961;7000000
      5.33;0.26;0.35;0.44;0.79;3.96;3650000
      1.33;0.24;0.28;0.41;0.7;3.09;560000
      0.67;0.27;0.35;0.45;0.8;2.92;3100000
      1.33;0.26;0.34;0.44;0.78;3.98;12000000
      2.33;0.25;0.34;0.45;0.79;4.1;13146942
      1;0.24;0.29567;0.405;0.70067;3.820221;1450000

      Regards

      • Jehad Ahmad

        How can I find the RMS error and other information regarding the results?

      • Hi, thanks for the comment.

        When the model is completed, you can use export option to export it to Excel. In Excel you can perform any statistic measurements you like.

  30. Hi Bahruddin
    I copies the formula directly from GPdotNet model to excel and changes the R values to their corresponding values. I got different results than the model suggests.
    (((((R6^3 *R5^3)/(R5^3 *X2))*X1) *((X2+(R1^1/3))-(((X2-R2-R4) *(R4^3 *R2^2)^3)^2 *(R2-X1)^2))^3)^1/4)
    X1 X2 R1 R2 R3 R4 R5 R6 Y Ygp
    0.5 35 9.54587 1.43482 4.48529 0.51399 8.00154 5.91715 20 39729.61154
    Anything I have missed.
    Thanks

    • Hi, thanx for the comment.

      Please use toolbar command “Export GP Model” to Excel instead of manually copying the formula.

      The difference of the result may be of interpretation of the formula. For example: divide operation is protected, means every non-number result is replaces by1.

  31. Besides, the value for R3 is given while it is not included in the formula.

  32. (IF(ISNUMBER(POWER((((IF(ISNUMBER((I3 ^3 *H3 ^3) /(H3 ^3 *C3) );(I3 ^3 *H3 ^3) /(H3 ^3 *C3) ;0)) *B3) *((C3+(power(D3 ;1/3)) ) -(((C3-E3 -G3 ) *(G3 ^3 *E3 ^2) ^3) ^2 *(E3 -B3) ^2) ) ^3) ;1/4));POWER((((IF(ISNUMBER((I3 ^3 *H3 ^3) /(H3 ^3 *C3) );(I3 ^3 *H3 ^3) /(H3 ^3 *C3) ;0)) *B3) *((C3+(power(D3 ;1/3)) ) -(((C3-E3 -G3 ) *(G3 ^3 *E3 ^2) ^3) ^2 *(E3 -B3) ^2) ) ^3) ;1/4);0))

    This is how it looks with export tool!!

    • Is it ok now with the result, or you still have different results?

      If you have different result, you can send me the gpa file, I will try to see what is happening.

      You have my email in About page of my blog.

  33. Jehad Yamin

    I sent it to your hotmail yesterday.
    Many thanks for effort.

  34. rabani rosli

    can i know the difference between generation number and fitness>= in a simulation based on tsp

    • Hi rabani, thanks for the comment. Gen number and fitness>= are stopping criteria for searching. The “generation number” marks searching algorithm will stop when iteration number reach specified number. On the other hand, the “fitness>=” means searching will continue until best found fitness would be greater than specified number.
      Hope was clear description.

  35. GPFunctionSet.cs,
    if (tt[0] > 1 && tt[0] 1||tt[0]<-1?0:Math.Asin(tt[0]));

  36. There seems to be also mistake in Sqrt and Log10 calculation in the same file (GPFunctionSet.cs).
    The “>” should be inversed.

  37. Hey Bahrudin,
    Congratulations to the great software you developed, GPdotNET really rocks!
    I have a question:
    would it be possible to add + constant to the result before checking the fitness?
    The constant = mean value of the result – mean value of the target sample.
    I have noticed that sometimes the error is there mainly because of the shift (up or down) of the simulated values compared to the desired target.
    If I want to do it myself, in which sourcecode files shall I look?

  38. Hi, Bahrudin. I have tried putting the data in the format you’ve described earlier. The program still comes up with the ‘incorrect data input’ error. Maybe you can send a sample file to my mail or further explain better.
    Thanks.

    • Muktar, the data format is very sensitive. Any special characters in it will ruin your data import. Try the files supplied in the directory with the software, or create a simple file in excel and export it into CSV format with correct settings.
      Cheers, Alex

  39. Hi
    Thank you for this program,I have one problem;after I imported my data and run them when I wanted to export the result to excel the number all of them that I imported change and I don’t know why?

  40. Hello,I check your new stuff named “GPdotNET | Bahrudin Hrnjica Blog” daily.Your humoristic style is witty, keep it up! And you can look our website about proxy server list.

  41. I get “Object reference not set to an instance of an object” what is this for?

  42. Can I model multi input multi output data? input (x1 x2 3) output (y1 y2 y3)

  1. Pingback:

  2. Pingback:

  3. Pingback:

  4. Pingback: GPdotNET v2 release date is Nov, 04. 2012. « Bahrudin Hrnjica Blog

  5. Pingback: Function optimization with Genetic Algorithm by using GPdotNET | Bahrudin Hrnjica Blog

  6. Pingback: Alati za analizu rezultata eksperimentalnog istraživanja | Bahrudin Hrnjica Blog

  7. Pingback:

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. (  / Change )

Twitter picture

You are commenting using your Twitter account. (  / Change )

Facebook photo

You are commenting using your Facebook account. (  / Change )

Google+ photo

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

Connecting to %s

Copyright @2023. bhrnjica All Rights Reserved .