Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/03/13 10:08:38 (11 years ago)
Author:
ascheibe
Message:

#1886 added configuration of frequency with which the ab measures are calculated

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Analysis.AlgorithmBehavior/HeuristicLab.Analysis.AlgorithmBehavior.Analyzers/3.3/DuplicateSolutionsAnalyzer.cs

    r9418 r9431  
    2525using HeuristicLab.Common;
    2626using HeuristicLab.Core;
     27using HeuristicLab.Data;
    2728using HeuristicLab.Operators;
    2829using HeuristicLab.Optimization;
     
    5253      get { return (ILookupParameter<ItemCollection<IItem>>)Parameters["Operators"]; }
    5354    }
     55    public ValueParameter<IntValue> UpdateIntervalParameter {
     56      get { return (ValueParameter<IntValue>)Parameters["UpdateInterval"]; }
     57    }
     58    public ILookupParameter<IntValue> GenerationsParameter {
     59      get { return (ILookupParameter<IntValue>)Parameters["Generations"]; }
     60    }
    5461    #endregion
    5562
     
    7784      Parameters.Add(new ValueParameter<ISingleObjectiveSolutionSimilarityCalculator>("SimilarityCalculator"));
    7885      Parameters.Add(new LookupParameter<ItemCollection<IItem>>("Operators", "The operators and items that the problem provides to the algorithms."));
     86      Parameters.Add(new ValueParameter<IntValue>("UpdateInterval", "The interval in which the operator should be applied.", new IntValue(2)));
     87      Parameters.Add(new LookupParameter<IntValue>("Generations", "Nr of generations."));
    7988
    8089      chartingHelper = new DataTableHelper();
     
    93102      similarityChartHelper.InitializeChart(Results, "Average Similarity", new string[] { "Avg. Similarity per Generation" });
    94103
    95       var similarities = SimilarityCalculatorParameter.Value.CalculateSolutionCrowdSimilarity(ExecutionContext.Scope);
    96       List<double> similaritiesArr = new List<double>();
    97       int counter = 0;
    98       for (int i = 0; i < similarities.Length; i++) {
    99         for (int j = 0; j < similarities[i].Length; j++) {
    100           if (similarities[i][j] == 1.0 && i != j) {
    101             counter++;
    102             break;
     104      if (GenerationsParameter.ActualValue.Value % UpdateIntervalParameter.Value.Value == 0) {
     105        var similarities = SimilarityCalculatorParameter.Value.CalculateSolutionCrowdSimilarity(ExecutionContext.Scope);
     106        List<double> similaritiesArr = new List<double>();
     107        int counter = 0;
     108        for (int i = 0; i < similarities.Length; i++) {
     109          for (int j = 0; j < similarities[i].Length; j++) {
     110            if (similarities[i][j] == 1.0 && i != j) {
     111              counter++;
     112              break;
     113            }
     114          }
     115          for (int j = 0; j < similarities[i].Length; j++) {
     116            if (i != j) {
     117              similaritiesArr.Add(similarities[i][j]);
     118            }
    103119          }
    104120        }
    105         for (int j = 0; j < similarities[i].Length; j++) {
    106           if (i != j) {
    107             similaritiesArr.Add(similarities[i][j]);
    108           }
    109         }
     121
     122        similarityChartHelper.AddPoint(similaritiesArr.Average());
     123        chartingHelper.AddPoint(counter / (double)similarities.Length);
    110124      }
    111 
    112       similarityChartHelper.AddPoint(similaritiesArr.Average());
    113       chartingHelper.AddPoint(counter / (double)similarities.Length);
    114125      return base.Apply();
    115126    }
Note: See TracChangeset for help on using the changeset viewer.