Opened 16 months ago

Last modified 8 weeks ago

#3073 reviewing enhancement

Constraints and Splitting for Interval Arithmetic

Reported by: chaider Owned by: gkronber
Priority: medium Milestone: HeuristicLab 3.3.17
Component: Problems.DataAnalysis Version: trunk
Keywords: Cc:

Description

Extend the current interval arithmetic

  • Add shape constraints to define constraints over the model and its partial derivatives
  • Add splitting for intervals to reduce the overestimation of boundaries

Change History (73)

comment:1 Changed 16 months ago by chaider

  • Status changed from new to accepted

r17589 Added branch

comment:2 Changed 16 months ago by chaider

r17590

  • Added DataAnalysis.Symbolic (Corrected path)
  • Changed includes/paths
  • Added solution

comment:3 Changed 16 months ago by chaider

r17591 Added Problems.DataAnalysis and Problems.DataAnalysis.Views

comment:4 Changed 15 months ago by chaider

r17607 Added classes/views to define constraints

comment:5 Changed 15 months ago by chaider

r17627

  • Added interval grammar for fixed scaling
  • Changed formatting
  • Fixed typos

comment:6 Changed 15 months ago by chaider

r17631

  • Added splitting parameter in IntervalInterpreter
  • Added methods for spitting in Interval class
  • Fixed some typos and other minor changes

comment:7 Changed 15 months ago by chaider

r17637 Changed variable ranges to readonly at GetIntervals methods

comment:8 Changed 15 months ago by chaider

r17650

  • Added HyperbolicTangent as known symbol to IntervalInterpreter and DerivativeCalculator
  • Removed Cube- and Cuberoot-Symbol from IntervalArithmeticGrammar and set Power- and Root-Symbol to disabled
  • Added HyperbolicTangent as known symbol to IntervalInterpreter and DerivativeCalculator
  • Removed Cube- and Cuberoot-Symbol from IntervalArithmeticGrammar and set Power- and Root-Symbol to disabled

comment:9 Changed 15 months ago by chaider

r17651 Persistence fixes

comment:10 Changed 14 months ago by dpiringe

r17723

  • added regions in IntervalConstraint
  • modified IntervalConstraintsParser to detect regions

comment:11 Changed 13 months ago by dpiringe

r17728

  • added a weight property for constraints (to have a weight multiplier for errors) in IntervalConstraint
  • modified IntervalConstraintsParser to detect weights

comment:12 Changed 13 months ago by dpiringe

r17736

  • added a check in Interval/IntervalConstraintsParser to throw an exception for multiple variables with the same key

comment:13 Changed 12 months ago by chaider

r17742 Added smart splitting method to interpreter

comment:14 Changed 12 months ago by gkronber

r17756: suggested refactoring / fix for splitting algorithm

comment:15 Changed 12 months ago by gkronber

r17757:17758: change sorting order for BoxBound

Last edited 12 months ago by gkronber (previous) (diff)

comment:16 Changed 12 months ago by chaider

r17760

  • Split only variables occuring more than once in the model
  • Fixed returning interval from splitting method

comment:17 Changed 12 months ago by chaider

r17763 Added interface for bound estimators and added an IABoundEstimator

comment:18 Changed 12 months ago by dpiringe

r17765

  • added new class Region and refactored the relevant code in IntervalConstraint and IntervalConstraintsParser
  • added the .editorconfig file from trunk (to satisfy the coding guidelines)
Last edited 12 months ago by dpiringe (previous) (diff)

comment:19 Changed 12 months ago by dpiringe

r17767

  • fixed a bug which caused a NullPointerException
  • added a storable constructor in Region
Last edited 12 months ago by dpiringe (previous) (diff)

comment:20 Changed 12 months ago by chaider

r17768

  • Removed Region class and used IntervallCollection instead
  • Changed Parser to work with IntervalColletions
  • Moved CheckConstraint methods from Analyzer to IntervalUtil class
  • Added CheckConstraint method to interface to check if an interval is in a given constraint
  • Added possibility to stop splitting as soon as a constraint is fulfiled

comment:21 Changed 12 months ago by chaider

r17773 Fixed error calculation in IABoundsEstimator

comment:22 Changed 11 months ago by gkronber

r17780: added (limited) support for power symbol (only for integer exponents)

comment:23 Changed 10 months ago by chaider

r17790 Merged trunk into branch

comment:24 Changed 9 months ago by dpiringe

r17791

  • removed the weight multiplication in IntervalUtil -> should not be calculated in this method

comment:25 Changed 9 months ago by mkommend

r17793: Merged trunk changes into the branch.

comment:26 Changed 9 months ago by gkronber

r17798 merged r17797 from trunk to branch.

comment:27 Changed 9 months ago by gkronber

r17800: fixed bug in derivation of power function

comment:28 Changed 9 months ago by gkronber

r17802: merged r17801 from trunk to branch

comment:29 Changed 9 months ago by chaider

r17818 Allow comma as decimal seperator

comment:30 Changed 8 months ago by chaider

r17822 Fixed double parsing

comment:31 Changed 8 months ago by gkronber

r17827: merged r17811:17826 from trunk to branch

comment:32 Changed 6 months ago by gkronber

r17874: merge r17835, r17845 from trunk to branch

comment:33 Changed 6 months ago by gkronber

r17875: merged r17832 from trunk to branch

comment:34 Changed 6 months ago by gkronber

r17876: merged r17856, r17858 from trunk to branch

comment:35 Changed 6 months ago by chaider

r17880

  • Added AQ to IntervalArithmeticGrammar
  • Fixed bug in IABoundsEstimator

comment:36 Changed 6 months ago by chaider

r17881 Removed unused code

comment:37 Changed 6 months ago by chaider

r17885 renamed branch for reintegration

comment:38 Changed 6 months ago by chaider

r17886 made a copy of the reintegration branch to keep splitting code (which will be removed for reintegration)

comment:39 Changed 6 months ago by chaider

r17887 intermediate comment while refactoring the branch

comment:40 Changed 6 months ago by chaider

r17890 intermediate commit while refactoring

comment:41 Changed 6 months ago by gkronber

r17891: refactoring to prepare for trunk reintegration

comment:42 Changed 6 months ago by chaider

r17893 Added changes for reintegration

comment:43 Changed 6 months ago by chaider

r17894 moved views into Regression folder because they are only used within RegressionProblemData

comment:44 Changed 6 months ago by chaider

r17895 renamed IntervalConstraintView -> ShapeConstraintView

comment:45 Changed 6 months ago by chaider

r17896 refactoring to prepare for trunk integration

comment:46 Changed 6 months ago by chaider

r17902 merged reintegration branch to trunk

comment:47 Changed 6 months ago by chaider

r17905 deleted reintegration branch

comment:48 Changed 6 months ago by chaider

r17906 bugfixing

comment:49 Changed 6 months ago by gkronber

TODO:

  • ShapeConstraintsView shows warning about "Unparsed changes" when opening the view
  • Label about "Unparsed changes" is moved behind parse button when the view is not wide enough
  • Exception wenn "OptimizeParameters = false" in NMSE Evaluator with constraints
  • Maximization array in MultiObjectiveEvaluator should use the Maximization flag from problem instead
  • Maximization should be automatically updated when constraints are changed (added, removed, enabled, disabled)
  • rounding for constraint violation values in multi-objective evaluator
  • line spaces in help for shape constraints (.rtf file)
  • Data Preprocessing View cannot be opened
  • It seems the variable intervals are lost when solutions are combined to an ensemble (use Cross-validation to test this)
  • Add a new class ShapeConstrainedRegressionProblemData derived from RegressionProblemData
  • Prepare a sample for shape-constrained symbolic regression with GP
Last edited 2 months ago by gkronber (previous) (diff)

comment:50 Changed 6 months ago by chaider

r17907

  • Set cloning constructor to protected in IntervalArithCompiledExpressionBoundsEstimator
  • Add Content == null handle in the OnContentChanged in ShapeConstraintView

comment:51 Changed 6 months ago by chaider

r17908 Changed Interval tests, set delta to check bounds against each other

comment:52 Changed 6 months ago by gkronber

r17909 also change storable ctor for IntervalArithCompiledExpressionBoundsEstimator to protected

comment:53 Changed 6 months ago by chaider

r17910 Worked on todos: resource file update, added constraints with checked state into list, fixed constructor

comment:54 Changed 6 months ago by gkronber

r17911 code improvements after reintegration of branch

comment:55 Changed 6 months ago by gkronber

r17912 improved help message.

comment:56 Changed 6 months ago by gkronber

r17913: fixed build fail of test solution

comment:57 Changed 6 months ago by chaider

r17914 Fixed check for scaling nodes in ConstraintsEvaluators

comment:58 Changed 6 months ago by chaider

r17927 Updated ShapeConstraintsView Design/Layout

comment:59 Changed 5 months ago by chaider

r17937 Minor changes to views

comment:60 Changed 5 months ago by gkronber

r17958:17959: refactoring ShapeConstrainedRegressionProblem as discussed with MKo and CHa

Last edited 5 months ago by gkronber (previous) (diff)

comment:61 Changed 5 months ago by gkronber

@Christian

  • please re-create the sample (it didn't work)
  • please check the ShapeConstraintView again.

comment:62 Changed 5 months ago by gkronber

r17960: moved files

comment:63 Changed 5 months ago by gkronber

r17961: propagate variableRanges from ShapeConstrainedRegressionProblemData to RegressionProblemData

comment:64 Changed 5 months ago by chaider

r17964 Added sample on start page and default problem in shape constrained regression problem data

comment:65 Changed 5 months ago by chaider

r17965 Added constraints for ShapeConstraintsSampleTest and fixed values

comment:66 Changed 5 months ago by chaider

r17968 Added different values in test case for x64/86 environments

comment:67 Changed 4 months ago by gkronber

  • Version changed from branch to trunk

r17981: fixed bugs in ShapeConstrainedRegressionProblemData

comment:68 Changed 4 months ago by gkronber

  • Owner changed from chaider to gkronber
  • Status changed from accepted to reviewing

comment:69 Changed 4 months ago by gkronber

r17982: fix build fail

comment:70 Changed 3 months ago by gkronber

r17993: changed compatibility check for IntervalInterpreter to be more specific for integer powers (see r17780)

comment:71 Changed 2 months ago by gkronber

Also tracks changes from #3076

comment:72 Changed 8 weeks ago by chaider

Include chnages from #3130

comment:73 Changed 8 weeks ago by chaider

r18034 Moved VariableRanges from RegressionProblemData to DataAnalysisProblemData to make it also available in classification problems

Note: See TracTickets for help on using tickets.