Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/29/19 13:53:26 (5 years ago)
Author:
mkommend
Message:

#2521: Integrated changes of #2943 into problem refactoring branch.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2521_ProblemRefactoring/HeuristicLab.Problems.TestFunctions.MultiObjective/3.3/Analyzers/CrowdingAnalyzer.cs

    r16723 r17225  
    3030namespace HeuristicLab.Problems.TestFunctions.MultiObjective {
    3131  [StorableType("F06FB45C-051E-4AD8-BD82-16DA9DCBCACB")]
    32   [Item("CrowdingAnalyzer", "The mean crowding distance for each point of the Front (see Multi-Objective Performance Metrics - Shodhganga for more information)")]
     32  [Item("CrowdingAnalyzer", "This analyzer is functionally equivalent to the CrowdingAnalyzer in HeuristicLab.Analysis, but is kept as not to break backwards compatibility")]
    3333  public class CrowdingAnalyzer : MOTFAnalyzer {
    34 
    35     public ILookupParameter<DoubleMatrix> BoundsParameter {
    36       get { return (ILookupParameter<DoubleMatrix>)Parameters["Bounds"]; }
    37     }
    3834
    3935    public IResultParameter<DoubleValue> CrowdingResultParameter {
     
    4339    [StorableConstructor]
    4440    protected CrowdingAnalyzer(StorableConstructorFlag _) : base(_) { }
    45     public CrowdingAnalyzer(CrowdingAnalyzer original, Cloner cloner)
    46       : base(original, cloner) {
    47     }
     41    public CrowdingAnalyzer(CrowdingAnalyzer original, Cloner cloner): base(original, cloner) {}
    4842    public override IDeepCloneable Clone(Cloner cloner) {
    4943      return new CrowdingAnalyzer(this, cloner);
     
    5145
    5246    public CrowdingAnalyzer() {
    53       Parameters.Add(new LookupParameter<DoubleMatrix>("Bounds",
    54         "The bounds of the solution given as either one line for all variables or a line for each variable. The first column specifies lower bound, the second upper bound."));
    55       Parameters.Add(new ResultParameter<DoubleValue>("Crowding", "The average corwding value of all points (excluding infinities)"));
     47      Parameters.Add(new ResultParameter<DoubleValue>("Crowding", "The average corwding distance of all points (excluding infinities)"));
    5648      CrowdingResultParameter.DefaultValue = new DoubleValue(double.NaN);
    57 
    5849    }
    5950
    6051    public override IOperation Apply() {
    6152      var qualities = QualitiesParameter.ActualValue;
    62       var bounds = BoundsParameter.ActualValue;
    63 
    64       var crowdingDistance = Crowding.Calculate(qualities.Select(x => x.ToArray()), bounds.CloneAsMatrix());
     53      var crowdingDistance = CrowdingCalculator.CalculateCrowding(qualities);
    6554      CrowdingResultParameter.ActualValue.Value = crowdingDistance;
    66 
    6755      return base.Apply();
    6856    }
Note: See TracChangeset for help on using the changeset viewer.