Changeset 15067 for trunk/sources/HeuristicLab.Encodings.LinearLinkageEncoding/3.4/SimilarityCalculators
- Timestamp:
- 06/26/17 23:13:15 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Encodings.LinearLinkageEncoding/3.4/SimilarityCalculators/HammingSimilarityCalculator.cs
r14659 r15067 30 30 [StorableClass] 31 31 public sealed class HammingSimilarityCalculator : SingleObjectiveSolutionSimilarityCalculator { 32 33 protected override bool IsCommutative { 34 get { return true; } 35 } 32 protected override bool IsCommutative { get { return true; } } 36 33 37 34 [StorableConstructor] 38 35 private HammingSimilarityCalculator(bool deserializing) : base(deserializing) { } 39 36 private HammingSimilarityCalculator(HammingSimilarityCalculator original, Cloner cloner) : base(original, cloner) { } 40 public HammingSimilarityCalculator() { }37 public HammingSimilarityCalculator() : base() { } 41 38 42 39 public override IDeepCloneable Clone(Cloner cloner) { … … 45 42 46 43 public static double CalculateSimilarity(LinearLinkage left, LinearLinkage right) { 47 if (left.Length != right.Length) throw new ArgumentException("Comparing encodings of unequal length"); 44 if (left == null || right == null) 45 throw new ArgumentException("Cannot calculate similarity because one or both of the provided solutions is null."); 46 if (left.Length != right.Length) 47 throw new ArgumentException("Cannot calculate similarity because the provided solutions have different lengths."); 48 if (left.Length == 0) 49 throw new ArgumentException("Cannot calculate similarity because solutions are of length 0."); 50 if (ReferenceEquals(left, right)) return 1.0; 51 48 52 var similarity = 0; 49 53 for (var i = 0; i < left.Length; i++) {
Note: See TracChangeset
for help on using the changeset viewer.