Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/26/17 23:13:15 (7 years ago)
Author:
abeham
Message:

#2730:

  • Unified implementation of all equality comparers and similarity calculators in BinaryVector, IntegerVector, RealVector, Permutation, and LinearLinkage encodings
  • Added Euclidean distance-based similarity calculators for real and integer vectors using a transformation function with scaling parameter
Location:
trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/HeuristicLab.Encodings.RealVectorEncoding-3.3.csproj

    r14660 r15067  
    183183    <Compile Include="ReflectiveBoundsChecker.cs" />
    184184    <Compile Include="ShakingOperators\RealVectorShakingOperator.cs" />
     185    <Compile Include="SimilarityCalculators\EuclideanSimilarityCalculator.cs" />
    185186    <Compile Include="SimilarityCalculators\HammingSimilarityCalculator.cs" />
    186187    <Compile Include="StrategyParameters\StdDevStrategyVectorCreator.cs" />
  • trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/RealVectorEqualityComparer.cs

    r14659 r15067  
    2020#endregion
    2121
     22using System;
    2223using System.Collections.Generic;
     24using HeuristicLab.PluginInfrastructure;
    2325
    2426namespace HeuristicLab.Encodings.RealVectorEncoding {
     27  [NonDiscoverableType]
    2528  public class RealVectorEqualityComparer : EqualityComparer<RealVector> {
    2629    public override bool Equals(RealVector x, RealVector y) {
    2730      if (x == null && y == null) return true;
    2831      if (x == null || y == null) return false;
     32      if (ReferenceEquals(x, y)) return true;
    2933      if (x.Length != y.Length) return false;
    3034      for (var i = 0; i < x.Length; i++)
     
    3438
    3539    public override int GetHashCode(RealVector obj) {
     40      if (obj == null) throw new ArgumentNullException("obj", "RealVectorEqualityComparer: Cannot compute hash value of null.");
    3641      unchecked {
    3742        int hash = 17;
  • trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/SimilarityCalculators/HammingSimilarityCalculator.cs

    r14659 r15067  
    4545    public static double CalculateSimilarity(RealVector left, RealVector right) {
    4646      if (left == null || right == null)
    47         throw new ArgumentException("Cannot calculate similarity because one or both of the provided scopes is null.");
     47        throw new ArgumentException("Cannot calculate similarity because one or both of the provided solutions is null.");
    4848      if (left.Length != right.Length)
    4949        throw new ArgumentException("Cannot calculate similarity because the provided solutions have different lengths.");
    50       if (left == right) return 1.0;
     50      if (left.Length == 0)
     51        throw new ArgumentException("Cannot calculate similarity because solutions are of length 0.");
     52      if (ReferenceEquals(left, right)) return 1.0;
    5153
    5254      double similarity = 0.0;
Note: See TracChangeset for help on using the changeset viewer.