Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/03/15 11:18:07 (9 years ago)
Author:
bburlacu
Message:

#2276: Merged trunk changes.

Location:
branches/HeuristicLab.DatasetRefactor/sources
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.DatasetRefactor/sources

  • branches/HeuristicLab.DatasetRefactor/sources/HeuristicLab.Algorithms.RAPGA/3.3/DuplicatesSelector.cs

    r12031 r12105  
    2525using HeuristicLab.Core;
    2626using HeuristicLab.Optimization;
     27using HeuristicLab.Parameters;
    2728using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2829using HeuristicLab.Selection;
     
    3738  [Item("DuplicatesSelector", "A selection operator which considers a single solution representation and selects duplicates. The remaining scope then contains unique solutions and the selected scope their duplicates.")]
    3839  [StorableClass]
    39   public sealed class DuplicatesSelector : SingleObjectiveSelector, ISimilarityBasedOperator {
    40     #region ISimilarityBasedOperator Members
    41     [Storable]
    42     public ISolutionSimilarityCalculator SimilarityCalculator { get; set; }
    43     #endregion
     40  public sealed class DuplicatesSelector : SingleObjectiveSelector {
     41    public IValueLookupParameter<ISolutionSimilarityCalculator> SimilarityCalculatorParameter {
     42      get { return (IValueLookupParameter<ISolutionSimilarityCalculator>)Parameters["SimilarityCalculator"]; }
     43    }
    4444
    4545    [StorableConstructor]
    4646    private DuplicatesSelector(bool deserializing) : base(deserializing) { }
    47     private DuplicatesSelector(DuplicatesSelector original, Cloner cloner)
    48       : base(original, cloner) {
    49       this.SimilarityCalculator = cloner.Clone(original.SimilarityCalculator);
     47    private DuplicatesSelector(DuplicatesSelector original, Cloner cloner) : base(original, cloner) { }
     48    public DuplicatesSelector()
     49      : base() {
     50      Parameters.Add(new ValueLookupParameter<ISolutionSimilarityCalculator>("SimilarityCalculator", "The similarity calculator that should be used to calculate solution similarity."));
    5051    }
    51     public DuplicatesSelector() : base() { }
    5252
    5353    public override IDeepCloneable Clone(Cloner cloner) {
    5454      return new DuplicatesSelector(this, cloner);
     55    }
     56
     57    [StorableHook(HookType.AfterDeserialization)]
     58    private void AfterDeserialization() {
     59      // BackwardsCompatibility3.3
     60      #region Backwards compatible code, remove with 3.4
     61      if (!Parameters.ContainsKey("SimilarityCalculator"))
     62        Parameters.Add(new ValueLookupParameter<ISolutionSimilarityCalculator>("SimilarityCalculator", "The similarity calculator that should be used to calculate solution similarity."));
     63      #endregion
    5564    }
    5665
     
    6170      for (int i = 0; i < scopes.Count; i++)
    6271        for (int j = i + 1; j < scopes.Count; j++)
    63           marks[j] = SimilarityCalculator.Equals(scopes[i], scopes[j]);
     72          marks[j] = SimilarityCalculatorParameter.ActualValue.Equals(scopes[i], scopes[j]);
    6473
    6574
Note: See TracChangeset for help on using the changeset viewer.