Changeset 9423 for branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisExpressionTreeMatching.cs
- Timestamp:
- 05/02/13 13:48:38 (11 years ago)
- Location:
- branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Problems.DataAnalysis.Symbolic
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Problems.DataAnalysis.Symbolic
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic merged: 9288
- Property svn:mergeinfo changed
-
branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisExpressionTreeMatching.cs
r9293 r9423 12 12 [Item("SymbolicExpressionTreeNodeSimilarityComparer", "A comparison operator that checks node equality based on different similarity measures.")] 13 13 [StorableClass] 14 public class SymbolicExpressionTreeNodeSimilarityComparer : Item, ISymbolicExpressionTreeNode Comparer {14 public class SymbolicExpressionTreeNodeSimilarityComparer : Item, ISymbolicExpressionTreeNodeSimilarityComparer { 15 15 [StorableConstructor] 16 16 private SymbolicExpressionTreeNodeSimilarityComparer(bool deserializing) : base(deserializing) { } … … 98 98 // - A function node is "greater" than a terminal node 99 99 // - A variable terminal is "greater" than a constant terminal 100 public class SymbolicExpressionTreeNodeComparer : I Comparer<ISymbolicExpressionTreeNode>{100 public class SymbolicExpressionTreeNodeComparer : ISymbolicExpressionTreeNodeComparer { 101 101 public int Compare(ISymbolicExpressionTreeNode a, ISymbolicExpressionTreeNode b) { 102 102 if (!(a is SymbolicExpressionTreeTerminalNode)) { … … 208 208 private double[,] matrix; 209 209 210 public SymbolicExpressionTreeNodeSimilarityComparer comparer;210 public SymbolicExpressionTreeNodeSimilarityComparer SimilarityComparer { get; set; } 211 211 212 212 public List<ISymbolicExpressionTreeNode> Calculate(ISymbolicExpressionTreeNode n1, ISymbolicExpressionTreeNode n2) { 213 if ( comparer == null) throw new Exception("Comparer cannot be null.");213 if (SimilarityComparer == null) throw new Exception("Comparer cannot be null."); 214 214 215 215 x = n1.IterateNodesPrefix().ToArray(); … … 228 228 if (i == 0 || j == 0) { 229 229 matrix[i, j] = 0; 230 } else if ( comparer.Equals(x[i - 1], y[j - 1])) {230 } else if (SimilarityComparer.Equals(x[i - 1], y[j - 1])) { 231 231 matrix[i, j] = matrix[i - 1, j - 1] + 1; 232 232 } else { … … 241 241 private void recon(int i, int j) { 242 242 if (i == 0 || j == 0) return; 243 if ( comparer.Equals(x[i - 1], y[j - 1])) {243 if (SimilarityComparer.Equals(x[i - 1], y[j - 1])) { 244 244 recon(i - 1, j - 1); 245 245 maxCommonSubseq.Add(x[i - 1]);
Note: See TracChangeset
for help on using the changeset viewer.