Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/15/21 11:50:57 (2 years ago)
Author:
gkronber
Message:

#3140: merged r18091:18131 from branch to trunk

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views

  • trunk/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/InteractiveSymbolicRegressionSolutionSimplifierView.Designer.cs

    r17180 r18132  
    5353      this.Name = "InteractiveSymbolicRegressionSolutionSimplifierView";
    5454      this.Size = new System.Drawing.Size(564, 348);
    55       this.btnOptimizeConstants.Enabled = true;
     55      this.btnOptimizeParameters.Enabled = true;
    5656      this.ResumeLayout(false);
    5757    }
  • trunk/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/InteractiveSymbolicRegressionSolutionSimplifierView.cs

    r17430 r18132  
    4242
    4343      var tree = Content?.Model?.SymbolicExpressionTree;
    44       btnOptimizeConstants.Enabled = tree != null && SymbolicRegressionConstantOptimizationEvaluator.CanOptimizeConstants(tree);
     44      btnOptimizeParameters.Enabled = tree != null && SymbolicRegressionParameterOptimizationEvaluator.CanOptimizeParameters(tree);
    4545    }
    4646
     
    5151    }
    5252
    53     protected override ISymbolicExpressionTree OptimizeConstants(ISymbolicExpressionTree tree, IProgress progress) {
    54       const int constOptIterations = 50;
     53    protected override ISymbolicExpressionTree OptimizeParameters(ISymbolicExpressionTree tree, IProgress progress) {
     54      const int iterations = 50;
    5555      const int maxRepetitions = 100;
    5656      const double minimumImprovement = 1e-10;
     
    6464      do {
    6565        prevResult = result;
    66         result = SymbolicRegressionConstantOptimizationEvaluator.OptimizeConstants(model.Interpreter, tree, regressionProblemData, regressionProblemData.TrainingIndices,
    67           applyLinearScaling: true, maxIterations: constOptIterations, updateVariableWeights: true, lowerEstimationLimit: model.LowerEstimationLimit, upperEstimationLimit: model.UpperEstimationLimit,
     66        result = SymbolicRegressionParameterOptimizationEvaluator.OptimizeParameters(model.Interpreter, tree, regressionProblemData, regressionProblemData.TrainingIndices,
     67          applyLinearScaling: true, maxIterations: iterations, updateVariableWeights: true, lowerEstimationLimit: model.LowerEstimationLimit, upperEstimationLimit: model.UpperEstimationLimit,
    6868          iterationCallback: (args, func, obj) => {
    69             double newProgressValue = progress.ProgressValue + (1.0 / (constOptIterations + 2) / maxRepetitions); // (constOptIterations + 2) iterations are reported
     69            double newProgressValue = progress.ProgressValue + (1.0 / (iterations + 2) / maxRepetitions); // (iterations + 2) iterations are reported
    7070            progress.ProgressValue = Math.Min(newProgressValue, 1.0);
    7171          });
  • trunk/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/SymbolicRegressionSolutionResponseFunctionView.cs

    r17180 r18132  
    120120
    121121    private void ChangeVariableValue(string variableName, double value) {
    122       foreach (var constNode in variableNodes[variableName].Cast<ConstantTreeNode>())
    123         constNode.Value = value;
     122      foreach (var numNode in variableNodes[variableName].Cast<NumberTreeNode>())
     123        numNode.Value = value;
    124124
    125125      UpdateResponseSeries();
     
    210210
    211211          int childIndex = varNode.Parent.IndexOfSubtree(varNode);
    212           var replacementNode = MakeConstantTreeNode(medianValues[varNode.VariableName]);
     212          var replacementNode = MakeNumberTreeNode(medianValues[varNode.VariableName]);
    213213          var parent = varNode.Parent;
    214214          parent.RemoveSubtree(childIndex);
     
    223223    }
    224224
    225     private ISymbolicExpressionTreeNode MakeProduct(ConstantTreeNode c, double weight) {
     225    private ISymbolicExpressionTreeNode MakeProduct(NumberTreeNode c, double weight) {
    226226      var mul = new Multiplication();
    227227      var prod = mul.CreateTreeNode();
    228       prod.AddSubtree(MakeConstantTreeNode(weight));
     228      prod.AddSubtree(MakeNumberTreeNode(weight));
    229229      prod.AddSubtree(c);
    230230      return prod;
    231231    }
    232232
    233     private ConstantTreeNode MakeConstantTreeNode(double value) {
    234       Constant constant = new Constant();
    235       constant.MinValue = value - 1;
    236       constant.MaxValue = value + 1;
    237       ConstantTreeNode constantTreeNode = (ConstantTreeNode)constant.CreateTreeNode();
    238       constantTreeNode.Value = value;
    239       return constantTreeNode;
     233    private NumberTreeNode MakeNumberTreeNode(double value) {
     234      Number number = new Number();
     235      number.MinValue = value - 1;
     236      number.MaxValue = value + 1;
     237      NumberTreeNode numberTreeNode = (NumberTreeNode)number.CreateTreeNode();
     238      numberTreeNode.Value = value;
     239      return numberTreeNode;
    240240    }
    241241  }
Note: See TracChangeset for help on using the changeset viewer.