Opened 10 months ago

Closed 9 months ago

#2609 closed defect (done)

Cannot apply constant optimization on simplified trees

Reported by: bburlacu Owned by: mkommend
Priority: medium Milestone: HeuristicLab 3.3.14
Component: Problems.DataAnalysis.Symbolic.Regression Version: 3.3.13
Keywords: Cc:

Description

The constant optimimization evaluator makes the (reasonable) assumption that all trees have a standard shape according to the grammar so that for example, a function node with a Multiplication symbol will always have two subtrees.

However, the SymbolicDataAnalysisExpressionTreeSimplifier invalidates those assumptions as it can produce for example binary symbols with just one argument. These cases are already handled correctly by the tree interpreter, so the constant optimization evaluator should do the same.

Attachments (2)

simplified-tree.svg (10.1 KB) - added by bburlacu 10 months ago.
Simplified tree breaking arity rules
original-tree.2.svg (18.8 KB) - added by bburlacu 10 months ago.
Original tree

Download all attachments as: .zip

Change History (9)

comment:1 Changed 10 months ago by bburlacu

  • Status changed from new to accepted

r13869: Introduce arity checks before creating Autodiffterms in the TryTransformToAutoDiff method.

comment:2 Changed 10 months ago by bburlacu

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

comment:3 Changed 10 months ago by gkronber

I'm surprised that it is necessary to check the case of only one sub-tree for multiplications. Does the simplifier really produce these cases? It would be trivial to remove the multiplication node in such cases.

comment:4 Changed 10 months ago by bburlacu

I double checked and obtained an example causing an exception (see attachment).

Changed 10 months ago by bburlacu

Simplified tree breaking arity rules

Changed 10 months ago by bburlacu

Original tree

comment:5 Changed 9 months ago by mkommend

  • Owner changed from mkommend to gkronber

r13900: Refactored multiplication and division handling during transformationo to AutoDiff terms in the CoOp-Evaluator.

comment:6 Changed 9 months ago by gkronber

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

Reviewed r13869 and r13900.

comment:7 Changed 9 months ago by mkommend

  • Resolution set to done
  • Status changed from readytorelease to closed

r14004: #2584: Merged r13670 and r13916 into stable. #2609: Merged r13869 and r13900 into stable.

These four changes had to be released together, because the ConstantOptimizationEvaluator is manipulated in both tickets.

Note: See TracTickets for help on using tickets.