Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#1661 closed feature request (done)

New SymbolicExpressionLengthTreeAnalyzer

Reported by: bburlacu Owned by: bburlacu
Priority: medium Milestone: HeuristicLab 3.3.6
Component: Encodings.SymbolicExpressionTreeEncoding Version: 3.3.6
Keywords: Cc: mkommend

Description

This new analyzer can be used to visualize the distribution of tree lengths within the running population, in the form of a histogram (it will show the frequency, i.e. number of individuals in the population, of each possible tree length).

The histogram consists of a number of bins equal to the number of possible tree lengths, ranging from the minimum to the maximum allowed tree length (so the interval width will always be 1), and depending on this number, it can automatically adjust the scale which is displayed on the X-axis.

Additionally, the analyzer has an option to record the history of the tree length distributions from each generation.

Change History (18)

comment:1 Changed 5 years ago by bburlacu

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

r6978: Added SymbolicExpressionTreeLengthAnalyzer. Added new scalingFactory visual property for table data rows (for dynamically adjusting the histogram scale depending on the number of bins) + scaling logic inside the tree length analyzer, adjusted DataTableView.

comment:2 Changed 5 years ago by mkommend

  • Status changed from assigned to reviewing

comment:3 Changed 5 years ago by mkommend

  • Owner changed from mkommend to bburlacu
  • Status changed from reviewing to assigned

Reviewing comments:

  • The naming of the results generated by the analyzer must be improved
  • Addressing results or parameters in code should be done by constants instead of literals

comment:4 Changed 5 years ago by bburlacu

  • Owner changed from bburlacu to mkommend
  • Status changed from assigned to reviewing

r7124: Improved naming of variables and replaced literals with constants. Added new IsVisibleInLegend visual property for data rows.

comment:5 Changed 5 years ago by bburlacu

  • Cc mkommend added
  • Owner changed from mkommend to abeham

r7126: Modified the DataTableView to take the IsVisibleInLegend property into account for all chart types. Added default value for the IsVisibleInLegend property in the storable constructor (the property is true by default, identical to the old behavior).

comment:6 Changed 5 years ago by mkommend

  • Owner changed from abeham to bburlacu
  • Status changed from reviewing to assigned

The analyzer currently does not work with the OSGA.

Last edited 5 years ago by mkommend (previous) (diff)

comment:7 Changed 5 years ago by bburlacu

r7143: Refactored some bits in the SymbolicExpressionTreeLengthAnalyzer. It now works with GA and it mostly works with OSGA, short of an interesting bug that I couldn't yet track down.

The bug occurs in the following situation:

  • Using OSGA with the SymbolicExpressionTreeLengthAnalyzer turned on
  • Everything works until the user wants to see the graphical histogram
  • During the update of the bar chart/histogram, at some point the chart throws an overflow exception (possible a divide by zero or related). The exception is followed by a long stack trace involving WinForms? and the Graphics system.

The user can click continue and run again (if the histogram is not displayed then everything is fine)

Last edited 5 years ago by bburlacu (previous) (diff)

comment:8 Changed 5 years ago by bburlacu

  • Owner changed from bburlacu to mkommend
  • Status changed from assigned to reviewing

r7147: Fixed a couple of bugs in the SymbolicExpressionTreeLengthAnalyzer and made some minor aesthetic changes (relating to the way chart columns are displayed).

comment:9 Changed 5 years ago by mkommend

  • Owner changed from mkommend to bburlacu
  • Status changed from reviewing to assigned

Reviewing comments:

  • Improve the y-axis scaling
  • Hide rarely changed and lookup parameters
  • Name the DataTables correctly
  • Remove the unnecessary generations counter

comment:10 Changed 5 years ago by bburlacu

  • Owner changed from bburlacu to mkommend
  • Status changed from assigned to reviewing

r7150: Simplified the Y-axis scaling, removed generations counter, hid some parameters and renamed the history data table.

comment:11 Changed 5 years ago by bburlacu

r7223: Fixed bug in the CalculateHistogram method inside the DataTableView, adjusted the way vertical scaling is performed in the SymbolicExpressionTreeLengthAnalyzer.

comment:12 Changed 5 years ago by mkommend

r7227: Corrected AfterDeserialization in SymbolicExpressionTreeLengthAnalyzer.

comment:13 Changed 5 years ago by mkommend

  • Owner changed from mkommend to abeham

Can you please have a look at the changes regarding the DataTable histogram.

comment:14 Changed 5 years ago by abeham

  • Owner changed from abeham to mkommend

Works very well, thanks!

comment:15 Changed 5 years ago by ascheibe

r7230 fixed compiler warnings and removed duplicated interface

comment:16 Changed 5 years ago by mkommend

  • Owner changed from mkommend to bburlacu
  • Status changed from reviewing to readytorelease

Thx for changing this minor code issues.

comment:17 Changed 5 years ago by swagner

  • Resolution set to done
  • Status changed from readytorelease to closed
  • Version changed from 3.3.5 to 3.3.6

comment:18 Changed 5 years ago by bburlacu

r861: Fixed bug in storable constructor call in the SymbolicExpressionTreeLengthAnalyzer.

Note: See TracTickets for help on using tickets.