Opened 2 months ago
Last modified 9 days ago
#2994 accepted feature request
AutoDiff support for interval calculation
Reported by: | gkronber | Owned by: | gkronber |
---|---|---|---|
Priority: | medium | Milestone: | HeuristicLab 3.3.x Backlog |
Component: | Problems.DataAnalysis.Symbolic | Version: | branch |
Keywords: | Cc: |
Description (last modified by gkronber)
Support for interval arithmetic has been added in #2966.
This allows us to calculate an approximation for the value range when expressions are evaluated. We want to consider the output interval also within optimization of numeric parameters of models. Therefore, we need to be able to calculate gradients for intervals.
Changes in this ticket include our own implementation of automatic differentiation (AutoDiff) for symbolic expressions with support for the BatchInterpreter and the IntervalInterpreter.
Change History (30)
comment:1 Changed 2 months ago by gkronber
- Status changed from new to accepted
comment:2 Changed 2 months ago by gkronber
- Description modified (diff)
comment:3 Changed 2 months ago by gkronber
comment:4 Changed 2 months ago by gkronber
r16674: worked on AutoDiff implementation based on BatchInterpreter
comment:5 Changed 2 months ago by gkronber
r16682: worked on auto diff for intervals and vectors
comment:6 Changed 2 months ago by gkronber
- Description modified (diff)
comment:7 Changed 2 months ago by gkronber
- Description modified (diff)
comment:8 Changed 2 months ago by gkronber
comment:9 Changed 2 months ago by gkronber
r16686: changed Double -> double
comment:10 Changed 2 months ago by mkommend
What about prefixing each algebraic type with algebraic to have a clear indication of which types can be used in interpreters?
e.g. Double -> AlgebraicDouble
comment:11 Changed 2 months ago by gkronber
r16693: worked on implementations of remaining methods for IAlgebraicType
comment:12 Changed 2 months ago by gkronber
r16694: implemented remaining methods for IAlgebraicType and changed formatting
comment:13 Changed 2 months ago by gkronber
r16695: renamed classes Algebraic..., added DebuggerDisplay attributes to simplify debugging. Fixed bugs in static methods for Algebraic
comment:14 Changed 2 months ago by gkronber
r16696: added a separate plugin with an algorithm for constrained non-linear regression
comment:15 Changed 2 months ago by gkronber
comment:16 Changed 2 months ago by gkronber
r16698: fixed version of HeuristicLab.Random plugin
comment:17 Changed 7 weeks ago by gkronber
r16727: added a unit test and made some minor improvements to interpretation of trees
comment:18 Changed 7 weeks ago by gkronber
r16738: another unit test, smaller fixes and checks for invalid parameters
comment:19 Changed 7 weeks ago by gkronber
r16739: merged r16670:16737 from trunk to branch
comment:20 Changed 7 weeks ago by gkronber
comment:21 Changed 7 weeks ago by gkronber
r16744: slightly changed calculation of integer powers for intervals and added unit tests.
comment:22 Changed 4 weeks ago by gkronber
r16829: merged changesets r16740:16822 from trunk to branch
comment:23 Changed 4 weeks ago by gkronber
r16831: made required changes to work with current trunk
comment:24 Changed 13 days ago by gkronber
r16911: merged r16839:16910 from trunk to branch
comment:25 Changed 13 days ago by gkronber
r16912: added a new plugin for extension classes based on new functionality in this branch and added an evaluator that uses new AutoDiff
comment:26 Changed 13 days ago by gkronber
r16913: svn:ignore
comment:27 Changed 13 days ago by gkronber
r16914: implemented a first version of an evaluator with const opt and constraints for intervals
comment:28 Changed 12 days ago by gkronber
r16915: add boundary constraints and threshold for epsx hoping to prevent endless loop in alglib, add optimization of variable weights
comment:29 Changed 9 days ago by gkronber
r16941: make branch compile with NamedIntervals branch, disable alglib optguard, copylocal = false
comment:30 Changed 9 days ago by gkronber
r16943: merge r16933:16942 from trunk to branch
r16671: created branch for ticket.