Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/04/19 16:03:51 (5 years ago)
Author:
abeham
Message:

#2521: refactored multi-objective problems' maximization

  • Add ForceValue method to IValueParameter to perform changes even when it is read-only
  • Add MaximizationChanged event handler
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2521_ProblemRefactoring/HeuristicLab.Optimization/3.3/Problems/MultiObjectiveHeuristicOptimizationProblem.cs

    r17226 r17317  
    2020#endregion
    2121
     22using System;
     23using HEAL.Attic;
    2224using HeuristicLab.Common;
    2325using HeuristicLab.Core;
    2426using HeuristicLab.Data;
    2527using HeuristicLab.Parameters;
    26 using HEAL.Attic;
    2728
    2829namespace HeuristicLab.Optimization {
     
    3637    [StorableConstructor]
    3738    protected MultiObjectiveHeuristicOptimizationProblem(StorableConstructorFlag _) : base(_) { }
    38     protected MultiObjectiveHeuristicOptimizationProblem(MultiObjectiveHeuristicOptimizationProblem<T, U> original, Cloner cloner) : base(original, cloner) { }
     39    protected MultiObjectiveHeuristicOptimizationProblem(MultiObjectiveHeuristicOptimizationProblem<T, U> original, Cloner cloner)
     40      : base(original, cloner) {
     41      RegisterEventHandlers();
     42    }
    3943    protected MultiObjectiveHeuristicOptimizationProblem()
    4044      : base() {
    4145      Parameters.Add(new ValueParameter<BoolArray>(MaximizationParameterName, "Determines for each objective whether it should be maximized or minimized."));
     46
     47      RegisterEventHandlers();
    4248    }
    4349
     
    4551      : base(evaluator, solutionCreator) {
    4652      Parameters.Add(new ValueParameter<BoolArray>(MaximizationParameterName, "Determines for each objective whether it should be maximized or minimized."));
     53
     54      RegisterEventHandlers();
     55    }
     56
     57    private void RegisterEventHandlers() {
     58      MaximizationParameter.ValueChanged += MaximizationParameterOnValueChanged;
     59    }
     60
     61    private void MaximizationParameterOnValueChanged(object sender, EventArgs e) {
     62      OnMaximizationChanged();
    4763    }
    4864
     
    6177      get { return Evaluator; }
    6278    }
     79
     80    public event EventHandler MaximizationChanged;
     81    protected void OnMaximizationChanged() {
     82      MaximizationChanged?.Invoke(this, EventArgs.Empty);
     83    }
    6384  }
    6485}
Note: See TracChangeset for help on using the changeset viewer.