Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/02/13 13:48:38 (11 years ago)
Author:
bburlacu
Message:

#1772: Implemented GeneticItem-based similarity measure. Renamed ISymbolicExpressionTreeNodeComparer to ISymbolicExpressionTreeNodeSimilarityComparer.

Location:
branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Problems.DataAnalysis.Symbolic
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Problems.DataAnalysis.Symbolic

  • branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisExpressionTreeMatching.cs

    r9293 r9423  
    1212  [Item("SymbolicExpressionTreeNodeSimilarityComparer", "A comparison operator that checks node equality based on different similarity measures.")]
    1313  [StorableClass]
    14   public class SymbolicExpressionTreeNodeSimilarityComparer : Item, ISymbolicExpressionTreeNodeComparer {
     14  public class SymbolicExpressionTreeNodeSimilarityComparer : Item, ISymbolicExpressionTreeNodeSimilarityComparer {
    1515    [StorableConstructor]
    1616    private SymbolicExpressionTreeNodeSimilarityComparer(bool deserializing) : base(deserializing) { }
     
    9898  // - A function node is "greater" than a terminal node
    9999  // - A variable terminal is "greater" than a constant terminal
    100   public class SymbolicExpressionTreeNodeComparer : IComparer<ISymbolicExpressionTreeNode> {
     100  public class SymbolicExpressionTreeNodeComparer : ISymbolicExpressionTreeNodeComparer {
    101101    public int Compare(ISymbolicExpressionTreeNode a, ISymbolicExpressionTreeNode b) {
    102102      if (!(a is SymbolicExpressionTreeTerminalNode)) {
     
    208208  private double[,] matrix;
    209209
    210   public SymbolicExpressionTreeNodeSimilarityComparer comparer;
     210  public SymbolicExpressionTreeNodeSimilarityComparer SimilarityComparer { get; set; }
    211211
    212212  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.");
    214214
    215215    x = n1.IterateNodesPrefix().ToArray();
     
    228228        if (i == 0 || j == 0) {
    229229          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])) {
    231231          matrix[i, j] = matrix[i - 1, j - 1] + 1;
    232232        } else {
     
    241241  private void recon(int i, int j) {
    242242    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])) {
    244244      recon(i - 1, j - 1);
    245245      maxCommonSubseq.Add(x[i - 1]);
Note: See TracChangeset for help on using the changeset viewer.