Opened 7 years ago

Closed 4 years ago

#1070 closed enhancement (done)

Port SymbolicExpressionTree manipulation operators from 3.2 to 3.3

Reported by: gkronber Owned by: gkronber
Priority: low Milestone: HeuristicLab 3.3.8
Component: Encodings.SymbolicExpressionTreeEncoding Version: 3.3.8
Keywords: Cc:

Description


Attachments (1)

remove branch mutation test.hl (862.8 KB) - added by mkommend 5 years ago.
differences between GP samples with or without remove branch mutation

Download all attachments as: .zip

Change History (18)

comment:1 Changed 7 years ago by gkronber

  • Status changed from new to assigned

comment:2 Changed 7 years ago by gkronber

r4189:

  • Implemented manipulation operator for symbolic expression tree encoding that replaces one randomly chosen branch with a new randomly initialized branch.

comment:3 Changed 7 years ago by gkronber

  • Status changed from assigned to new

comment:4 Changed 6 years ago by gkronber

  • Version changed from 3.3 to 3.3.2

comment:5 Changed 6 years ago by gkronber

  • Owner changed from gkronber to mkommend
  • Status changed from new to assigned

comment:6 Changed 5 years ago by mkommend

  • Status changed from assigned to accepted

comment:7 Changed 5 years ago by mkommend

r8333: Added RemoveBranchManipulation to HL.Encodings.SymbolicExpressionTree.

comment:8 Changed 5 years ago by mkommend

r8335: Adapted unit test to take new GP manipulator into account.

comment:9 Changed 5 years ago by mkommend

r8342: Updated GP samples to contain the new manipulator.

comment:10 Changed 5 years ago by mkommend

  • Owner changed from mkommend to gkronber
  • Status changed from accepted to reviewing

comment:11 Changed 5 years ago by gkronber

  • Milestone changed from HeuristicLab 3.3.x Backlog to HeuristicLab 3.3.8

comment:12 follow-up: Changed 5 years ago by gkronber

Interestingly the symbolic regression sample unit test became slower because of the new operator (from 1m43s to 2m11s)

comment:13 Changed 5 years ago by gkronber

  • Owner changed from gkronber to mkommend

Changed 5 years ago by mkommend

differences between GP samples with or without remove branch mutation

comment:14 in reply to: ↑ 12 Changed 5 years ago by mkommend

Replying to gkronber:

Interestingly the symbolic regression sample unit test became slower because of the new operator (from 1m43s to 2m11s)

I have attached a file containing two runs of the GP sample; one time with the remove branch mutation and one time without and exactly the same seed as the unit test uses. Both result in the same quality values as the unit test does /did. When looking at the results it becomes obvious why the unit test became slower, because more nodes were evaluated. The sum of the average tree size per generation over all generations increases from 2655.662 to 3521.365.

comment:15 Changed 5 years ago by mkommend

  • Owner changed from mkommend to gkronber

comment:16 Changed 5 years ago by gkronber

  • Status changed from reviewing to readytorelease

This is a reasonable explanation for the performance deterioration.

Reviewed the operator added with r8333 (especially like the recursive application to generate a minimal tree). Changesets r8335 and r8342 should be correct as well.

comment:17 Changed 4 years ago by swagner

  • Resolution set to done
  • Status changed from readytorelease to closed
  • Version changed from 3.3.2 to 3.3.8
Note: See TracTickets for help on using tickets.