Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/15/12 00:21:10 (13 years ago)
Author:
bburlacu
Message:

#1772: Fixed a small bug in the TracingSymbolicExpressionTreeCrossover. Fixed bug in fragment matching code.

Location:
branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Crossovers/TracingSymbolicExpressionTreeCrossover.cs

    r7792 r7817  
    127127      // compare the two nodes lists and check the difference (comparing node references so we avoid false functional identity).
    128128      // if no difference is found, then it is assumed that the whole tree was swapped with itself (it can happen), so the index is 0
    129       int i, min = Math.Max(nodes0.Count, nodes1.Count);
    130       for (i = 0; i != min; ++i)
     129      int i = 0, min = Math.Min(nodes0.Count, nodes1.Count);
     130      for (; i != min; ++i)
    131131        if (nodes0[i] != nodes1[i]) break;
    132132      if (i == min) i = 0;
  • branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Plugin.cs

    r7800 r7817  
    2626
    2727namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
    28   [Plugin("HeuristicLab.Encodings.SymbolicExpressionTreeEncoding","Provides operators and related classes for the symbolic expression tree encoding.", "3.4.2.7799")]
     28  [Plugin("HeuristicLab.Encodings.SymbolicExpressionTreeEncoding","Provides operators and related classes for the symbolic expression tree encoding.", "3.4.2.7800")]
    2929  [PluginFile("HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.dll", PluginFileType.Assembly)]
    3030  [PluginDependency("HeuristicLab.Analysis", "3.3")]
  • branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/SymbolicExpressionTreeMatching.cs

    r7792 r7817  
    7070
    7171    public static bool ContainsFragment(this ISymbolicExpressionTree tree, ISymbolicExpressionTreeNode fragment, int mode) {
    72       var nodes = tree.IterateNodesBreadth() as List<ISymbolicExpressionTreeNode>;
    73       var fragments = fragment.IterateNodesBreadth() as List<ISymbolicExpressionTreeNode>;
     72      var nodes = tree.IterateNodesPostfix() as List<ISymbolicExpressionTreeNode>;
     73      var fragments = fragment.IterateNodesPostfix() as List<ISymbolicExpressionTreeNode>;
    7474      return FindMatch(nodes, fragments, mode) != -1;
    7575    }
     
    7777    // convenience methods for less typing :)
    7878    private static IEnumerator<ISymbolicExpressionTreeNode> Enumerator(this ISymbolicExpressionTree tree) {
    79       return tree.IterateNodesBreadth().GetEnumerator();
     79      return tree.IterateNodesPostfix().GetEnumerator();
    8080    }
    8181    private static IEnumerator<ISymbolicExpressionTreeNode> Enumerator(this ISymbolicExpressionTreeNode tree) {
    82       return tree.IterateNodesBreadth().GetEnumerator();
     82      return tree.IterateNodesPostfix().GetEnumerator();
    8383    }
    8484    public static int FindMatch(ISymbolicExpressionTree a, ISymbolicExpressionTree b, int mode) {
    85       var nodesA = a.IterateNodesBreadth() as List<ISymbolicExpressionTreeNode>;
    86       var nodesB = b.IterateNodesBreadth() as List<ISymbolicExpressionTreeNode>;
     85      var nodesA = a.IterateNodesPostfix() as List<ISymbolicExpressionTreeNode>;
     86      var nodesB = b.IterateNodesPostfix() as List<ISymbolicExpressionTreeNode>;
    8787      return FindMatch(nodesA, nodesB, mode);
    8888    }
    8989    public static int FindMatch(ISymbolicExpressionTreeNode a, ISymbolicExpressionTreeNode b, int mode) {
    90       var nodesA = a.IterateNodesBreadth() as List<ISymbolicExpressionTreeNode>;
    91       var nodesB = b.IterateNodesBreadth() as List<ISymbolicExpressionTreeNode>;
     90      var nodesA = a.IterateNodesPostfix() as List<ISymbolicExpressionTreeNode>;
     91      var nodesB = b.IterateNodesPostfix() as List<ISymbolicExpressionTreeNode>;
    9292      return FindMatch(nodesA, nodesB, mode);
    9393    }
Note: See TracChangeset for help on using the changeset viewer.