Changeset 12070 for trunk/sources/HeuristicLab.Optimization.Operators/3.3
- Timestamp:
- 02/25/15 10:59:20 (9 years ago)
- Location:
- trunk/sources/HeuristicLab.Optimization.Operators/3.3
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Optimization.Operators/3.3/NoSimilarityCalculator.cs
r12012 r12070 32 32 [Item("NoSimilarityCalculator", "An item that performs similarity calculation between two solutions. The item always considers two solutions to be distinct.")] 33 33 public sealed class NoSimilarityCalculator : SingleObjectiveSolutionSimilarityCalculator { 34 protected override bool IsCommutative { get { return true; } } 35 34 36 private NoSimilarityCalculator(bool deserializing) : base(deserializing) { } 35 37 private NoSimilarityCalculator(NoSimilarityCalculator original, Cloner cloner) : base(original, cloner) { } -
trunk/sources/HeuristicLab.Optimization.Operators/3.3/QualitySimilarityCalculator.cs
r12012 r12070 34 34 [Item("QualitySimilarityCalculator", "An item that performs similarity calculation between two solutions. The item only considers the qualities of the two solutions.")] 35 35 public sealed class QualitySimilarityCalculator : SingleObjectiveSolutionSimilarityCalculator { 36 protected override bool IsCommutative { get { return true; } } 37 36 38 private QualitySimilarityCalculator(bool deserializing) : base(deserializing) { } 37 39 private QualitySimilarityCalculator(QualitySimilarityCalculator original, Cloner cloner) : base(original, cloner) { } -
trunk/sources/HeuristicLab.Optimization.Operators/3.3/SolutionSimilarityCalculator.cs
r12012 r12070 33 33 [StorableClass] 34 34 public abstract class SolutionSimilarityCalculator : Item, ISolutionSimilarityCalculator { 35 protected abstract bool IsCommutative { get; } 36 35 37 [StorableConstructor] 36 38 protected SolutionSimilarityCalculator(bool deserializing) : base(deserializing) { } … … 71 73 for (int i = 0; i < individuals.Count; i++) similarityMatrix[i] = new double[individuals.Count]; 72 74 73 for (int i = 0; i < individuals.Count; i++) { 74 for (int j = i; j < individuals.Count; j++) { 75 similarityMatrix[i][j] = similarityMatrix[j][i] = CalculateSolutionSimilarity(individuals[i], individuals[j]); 75 if (IsCommutative) { 76 for (int i = 0; i < individuals.Count; i++) { 77 for (int j = i; j < individuals.Count; j++) { 78 similarityMatrix[i][j] = similarityMatrix[j][i] = CalculateSolutionSimilarity(individuals[i], individuals[j]); 79 } 80 } 81 } else { 82 for (int i = 0; i < individuals.Count; i++) { 83 for (int j = i; j < individuals.Count; j++) { 84 similarityMatrix[i][j] = CalculateSolutionSimilarity(individuals[i], individuals[j]); 85 if (i == j) continue; 86 similarityMatrix[j][i] = CalculateSolutionSimilarity(individuals[j], individuals[i]); 87 } 76 88 } 77 89 }
Note: See TracChangeset
for help on using the changeset viewer.