Opened 4 months ago

Last modified 12 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.

(Depends on #2966, #2958, #2435 (alglib 3.15.0), #2971)

Change History (33)

comment:1 Changed 4 months ago by gkronber

  • Status changed from new to accepted

r16671: created branch for ticket.

comment:2 Changed 4 months ago by gkronber

  • Description modified (diff)

comment:3 Changed 4 months ago by gkronber

r16673: merged r16672 from trunk to branch

comment:4 Changed 4 months ago by gkronber

r16674: worked on AutoDiff implementation based on BatchInterpreter

comment:5 Changed 4 months ago by gkronber

r16682: worked on auto diff for intervals and vectors

comment:6 Changed 4 months ago by gkronber

  • Description modified (diff)

comment:7 Changed 4 months ago by gkronber

  • Description modified (diff)

comment:8 Changed 4 months ago by gkronber

To work with this branch you first need to build trunk and then build the branch #2435 and the branch #2971 (override selected dlls in bin with new features from branches)

comment:9 Changed 4 months ago by gkronber

r16686: changed Double -> double

comment:10 Changed 4 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 4 months ago by gkronber

r16693: worked on implementations of remaining methods for IAlgebraicType

comment:12 Changed 4 months ago by gkronber

r16694: implemented remaining methods for IAlgebraicType and changed formatting

comment:13 Changed 4 months ago by gkronber

r16695: renamed classes Algebraic..., added DebuggerDisplay attributes to simplify debugging. Fixed bugs in static methods for Algebraic

comment:14 Changed 4 months ago by gkronber

r16696: added a separate plugin with an algorithm for constrained non-linear regression

comment:15 Changed 4 months ago by gkronber

r16697: missing files for r16696 (+ svn:ignore)

comment:16 Changed 4 months ago by gkronber

r16698: fixed version of HeuristicLab.Random plugin

comment:17 Changed 4 months ago by gkronber

r16727: added a unit test and made some minor improvements to interpretation of trees

comment:18 Changed 4 months ago by gkronber

r16738: another unit test, smaller fixes and checks for invalid parameters

comment:19 Changed 4 months ago by gkronber

r16739: merged r16670:16737 from trunk to branch

comment:20 Changed 4 months ago by gkronber

r16742: fix for compatibility with #2971

comment:21 Changed 4 months ago by gkronber

r16744: slightly changed calculation of integer powers for intervals and added unit tests.

comment:22 Changed 3 months ago by gkronber

r16829: merged changesets r16740:16822 from trunk to branch

comment:23 Changed 3 months ago by gkronber

r16831: made required changes to work with current trunk

comment:24 Changed 3 months ago by gkronber

r16911: merged r16839:16910 from trunk to branch

comment:25 Changed 3 months 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 3 months ago by gkronber

r16913: svn:ignore

comment:27 Changed 3 months ago by gkronber

r16914: implemented a first version of an evaluator with const opt and constraints for intervals

comment:28 Changed 3 months 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 2 months ago by gkronber

r16941: make branch compile with NamedIntervals branch, disable alglib optguard, copylocal = false

comment:30 Changed 2 months ago by gkronber

r16943: merge r16933:16942 from trunk to branch

comment:31 Changed 13 days ago by gkronber

r17120: merged r17007:17118 from trunk to branch

comment:32 Changed 12 days ago by gkronber

r17130: merged r17121:17128 from trunk to branch

comment:33 Changed 12 days ago by gkronber

r17131: added support for tanh symbol in new interpreters

Note: See TracTickets for help on using tickets.