Changeset 11482 for branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SimilarityCalculators/MaxCommonSubtreeSimilarityCalculator.cs
- Timestamp:
- 10/21/14 01:31:20 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SimilarityCalculators/MaxCommonSubtreeSimilarityCalculator.cs
r11458 r11482 31 31 [Item("MaxCommonSubtreeSimilarityCalculator", "A similarity calculator based on the size of the maximum common subtree between two trees")] 32 32 public class MaxCommonSubtreeSimilarityCalculator : SingleObjectiveSolutionSimilarityCalculator, ISymbolicDataAnalysisExpressionSimilarityCalculator { 33 [Storable] 33 34 private readonly SymbolicExpressionTreeNodeSimilarityComparer comparer; 34 35 public bool MatchVariableNames { … … 88 89 } 89 90 90 public static double MaxCommonSubtreeSimilarity(ISymbolicExpressionTree a, ISymbolicExpressionTree b, SymbolicExpressionTreeNodeSimilarityComparer comparer) { 91 public static double MaxCommonSubtreeSimilarity(ISymbolicExpressionTree a, ISymbolicExpressionTree b, ISymbolicExpressionTreeNodeSimilarityComparer comparer) { 92 int m = SymbolicExpressionTreeMatching.Match(a.Root, b.Root, comparer); 93 return 2.0 * m / (a.Length + b.Length); 94 } 95 96 public static double MaxCommonSubtreeSimilarityRestricted(ISymbolicExpressionTree a, ISymbolicExpressionTree b, SymbolicExpressionTreeNodeSimilarityComparer comparer) { 91 97 int max = 0; 92 98 var rootA = a.Root.GetSubtree(0).GetSubtree(0); … … 99 105 if (lenB <= max) continue; 100 106 int matches = SymbolicExpressionTreeMatching.Match(aa, bb, comparer); 107 // if (max < matches) 101 108 if (matches == lenB && max < matches) 102 109 max = matches;
Note: See TracChangeset
for help on using the changeset viewer.