heal-research / HeuristicLab

HeuristicLab - An environment for heuristic and evolutionary optimization
https://dev.heuristiclab.com
GNU General Public License v3.0
36 stars 16 forks source link

Create HeuristicLab.Problems.GeneticProgramming #2472

Closed HeuristicLab-Trac-Bot closed 8 years ago

HeuristicLab-Trac-Bot commented 9 years ago

Issue migrated from trac ticket # 2472

milestone: HeuristicLab 3.3.13 | component: Problems.GeneticProgramming | priority: medium | resolution: done

2015-08-27 07:01:05: @gkronber created the issue


This plugin should hold GP problems such as the aritificial ant or the lawn mower problem.

This ticket replaces individual tickets #2421, #2422, and #2469

For integration into stable merge the following changesets:

HeuristicLab-Trac-Bot commented 8 years ago

2015-11-19 10:07:24: @gkronber commented


Thanks for code reorganization. I'm going to create tickets for your remaining remarks from the review.

HeuristicLab-Trac-Bot commented 8 years ago

2015-11-19 10:30:53: @gkronber commented


Replying to [comment:22 mkommend]:

Reviewed the SymbolicExpressionTreeProblem and HL.Problems.GP and the according views and unit test for sample creation.

Comments:

  • Odd source code organization (cloning and persistence in a region at the EOF)

Fixed with r13269.

  • BasicSymbolicRegression
    • Recreates constants every time the problem is changed => not reproducible
    • Couldn't the solution be transformed to a standard data analysis tree (simplify, optimize?

Might be fixed in the future (-> separate tickets #2515, #2517)

  • Why are the boolean problems restricted (number of bits) and why is this done in the evaluation function?

In the case of the even-parity problem the restriction stems from the fact that only digits are used as terminal symbols and there are only 10 digits. Would be easy to extend this.

In the case of the mux-problem I don't remember the exact reason but I believe this is an artifact from an earlier implementation where only digits and characters were used as terminal symbols. In any case the limit of 37 bits input is rather large and would mean that a single evaluation would have to iterate over 2^37^ different input cases... I'm going to create a ticket for this (#2516).

Overall pretty cool and easy to implement problems. I am especially impressed on how easy tree evaluation can be performed for the boolean and regression problems.

HeuristicLab-Trac-Bot commented 8 years ago

2015-11-19 10:30:53: @gkronber

HeuristicLab-Trac-Bot commented 8 years ago

2015-11-19 11:38:25: @gkronber commented


r13278: merged r12895 to r12906 from trunk to stable

HeuristicLab-Trac-Bot commented 8 years ago

2015-11-19 11:39:50: @gkronber commented


r13279: merged r12911 to r12912, r12915 to r12918 from trunk to stable

HeuristicLab-Trac-Bot commented 8 years ago

2015-11-19 11:39:50: @gkronber

HeuristicLab-Trac-Bot commented 8 years ago

2015-11-19 11:42:08: @gkronber commented


r13280: merged r12921,r12936 to r12938,r12940,r12947,r13055 to r13058,r13163,r13267,r13269 from trunk to stable

HeuristicLab-Trac-Bot commented 8 years ago

2015-11-19 13:38:37: @gkronber changed status from readytorelease to closed

HeuristicLab-Trac-Bot commented 8 years ago

2015-11-19 13:38:37: @gkronber removed resolution