Opened 11 years ago

Closed 10 years ago

Last modified 10 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 11 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 11 years ago by mkommend

  • Status changed from assigned to reviewing

comment:3 Changed 11 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 11 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 11 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 11 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 11 years ago by mkommend (previous) (diff)

comment:7 Changed 11 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 11 years ago by bburlacu (previous) (diff)

comment:8 Changed 11 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 11 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 11 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 11 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 11 years ago by mkommend

r7227: Corrected AfterDeserialization in SymbolicExpressionTreeLengthAnalyzer.

comment:13 Changed 11 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 11 years ago by abeham

  • Owner changed from abeham to mkommend

Works very well, thanks!

comment:15 Changed 11 years ago by ascheibe

r7230 fixed compiler warnings and removed duplicated interface

comment:16 Changed 11 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 10 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 10 years ago by bburlacu

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

Note: See TracTickets for help on using tickets.