Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/16/21 16:47:07 (3 years ago)
Author:
dpiringe
Message:

#3136

  • fixed eventhandler reregister after deserialisazion/cloning
  • added a test case for StructuredSymbolicRegressionSingleObjectiveProblem
  • changed the usage of a Dictionary to List
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3136_Structural_GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/StructuredSymbolicRegressionSingleObjectiveProblem.cs

    r18146 r18151  
    8080      var shapeConstraintProblemData = new ShapeConstrainedRegressionProblemData(problemData);
    8181
    82 
    8382      var targetInterval = shapeConstraintProblemData.VariableRanges.GetInterval(shapeConstraintProblemData.TargetVariable);
    8483      var estimationWidth = targetInterval.Width * 10;
    8584
    86 
    8785      var structureTemplate = new StructureTemplate();
    88       structureTemplate.Changed += OnTemplateChanged;
    8986
    9087      var evaluators = new ItemSet<SymbolicRegressionSingleObjectiveEvaluator>(
     
    10097        ProblemDataParameterName,
    10198        shapeConstraintProblemData));
    102       ProblemDataParameter.ValueChanged += ProblemDataParameterValueChanged;
    10399
    104100      Parameters.Add(new FixedValueParameter<StructureTemplate>(
     
    123119      Operators.Add(new SymbolicExpressionSymbolFrequencyAnalyzer());
    124120
     121      RegisterEventHandlers();
    125122      StructureTemplate.Template =
    126123        "(" +
     
    132129
    133130    public StructuredSymbolicRegressionSingleObjectiveProblem(StructuredSymbolicRegressionSingleObjectiveProblem original,
    134       Cloner cloner) : base(original, cloner) { }
     131      Cloner cloner) : base(original, cloner) {
     132      ProblemDataParameter.ValueChanged += ProblemDataParameterValueChanged;
     133      RegisterEventHandlers();
     134    }
    135135
    136136    [StorableConstructor]
    137137    protected StructuredSymbolicRegressionSingleObjectiveProblem(StorableConstructorFlag _) : base(_) { }
     138
     139
     140    [StorableHook(HookType.AfterDeserialization)]
     141    private void AfterDeserialization() {
     142      RegisterEventHandlers();
     143    }
     144
    138145    #endregion
    139146
     
    148155    }
    149156
     157    private void RegisterEventHandlers() {
     158      if (StructureTemplate != null) {
     159        StructureTemplate.Changed += OnTemplateChanged;
     160      }
     161
     162      ProblemDataParameter.ValueChanged += ProblemDataParameterValueChanged;
     163    }
     164
    150165    private void OnTemplateChanged(object sender, EventArgs args) {
    151166      SetupStructureTemplate();
     
    156171        Encoding.Remove(e);
    157172
    158       foreach (var f in StructureTemplate.SubFunctions.Values) {
     173      foreach (var f in StructureTemplate.SubFunctions) {
    159174        SetupVariables(f);
    160175        if (!Encoding.Encodings.Any(x => x.Name == f.Name)) // to prevent the same encoding twice
Note: See TracChangeset for help on using the changeset viewer.