Free cookie consent management tool by TermsFeed Policy Generator

Opened 8 years ago

Closed 8 years 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 8 years ago.
Simplified tree breaking arity rules
original-tree.2.svg (18.8 KB) - added by bburlacu 8 years ago.
Original tree

Download all attachments as: .zip

Change History (9)

comment:1 Changed 8 years ago by bburlacu

  • Status changed from new to accepted

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

comment:2 Changed 8 years ago by bburlacu

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

comment:3 Changed 8 years 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 8 years ago by bburlacu

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

Changed 8 years ago by bburlacu

Simplified tree breaking arity rules

Changed 8 years ago by bburlacu

Original tree

comment:5 Changed 8 years 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 8 years ago by gkronber

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

Reviewed r13869 and r13900.

comment:7 Changed 8 years 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.