Opened 3 years ago
Closed 3 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)
Change History (9)
comment:1 Changed 3 years ago by bburlacu
- Status changed from new to accepted
comment:2 Changed 3 years ago by bburlacu
- Owner changed from bburlacu to mkommend
- Status changed from accepted to reviewing
comment:3 Changed 3 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 3 years ago by bburlacu
I double checked and obtained an example causing an exception (see attachment).
comment:5 Changed 3 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 3 years ago by gkronber
- Owner changed from gkronber to mkommend
- Status changed from reviewing to readytorelease
comment:7 Changed 3 years ago by mkommend
- Resolution set to done
- Status changed from readytorelease to closed
r13869: Introduce arity checks before creating Autodiffterms in the TryTransformToAutoDiff method.