Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/10/12 17:17:14 (12 years ago)
Author:
bburlacu
Message:

#1772: Changelog:

  • Removed GetCutIndex method, and corresponding index field in the GenealogyGraphNode.
  • Implemented tracking for mutated fragments.
  • Improved FindMatch method.
  • Added IterateNodesBreadth functionality to symbolic expression trees and nodes.
  • Added check conditions for clearing global tracking structures so that the 2 analyzers are not mutually exclusive anymore.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.EvolutionaryTracking.Views/3.4/GenealogyGraphView.cs

    r7785 r7792  
    2121
    2222using System;
     23using System.Collections.Generic;
    2324using System.Drawing;
    2425using System.Linq;
     
    9293      symbolicExpressionTreeChart.Tree = (ISymbolicExpressionTree)genealogyGraphNode.Data;
    9394      if (_selectedVisualSymbolicExpressionTreeNode != null) {
    94         var nodes = symbolicExpressionTreeChart.Tree.IterateNodesPostfix().ToArray();
    95         var fragments = _selectedVisualSymbolicExpressionTreeNode.SymbolicExpressionTreeNode.IterateNodesPostfix().ToArray();
     95        var nodes = symbolicExpressionTreeChart.Tree.IterateNodesBreadth() as List<ISymbolicExpressionTreeNode>;
     96        var fragments = _selectedVisualSymbolicExpressionTreeNode.SymbolicExpressionTreeNode.IterateNodesBreadth() as List<ISymbolicExpressionTreeNode>;
    9697        int index = SymbolicExpressionTreeMatching.FindMatch(nodes, fragments, similarityModeSelector.SelectedIndex);
    9798        if (index != -1) {
    98           _selectedVisualSymbolicExpressionTreeNode = symbolicExpressionTreeChart.GetVisualSymbolicExpressionTreeNode(nodes[index + fragments.Count() - 1]);
     99          _selectedVisualSymbolicExpressionTreeNode = symbolicExpressionTreeChart.GetVisualSymbolicExpressionTreeNode(nodes[index + fragments.Count - 1]);
    99100          var subtree = _selectedVisualSymbolicExpressionTreeNode.SymbolicExpressionTreeNode;
    100101          foreach (var visualNode in subtree.IterateNodesPostfix().Select(node => symbolicExpressionTreeChart.GetVisualSymbolicExpressionTreeNode(node))) {
     
    104105        }
    105106      }
    106       // the cutpoint index represents the index of the node/subtree (when the tree is enumerated in postfix order)
    107       // that was changed (by mutation) or received from a parent (by crossover)
    108       if (visualGenealogyGraphNode.Data.CutpointIndex != -1) {
    109         var gNode = visualGenealogyGraphNode.Data;
    110         var symbExprTree = gNode.Data as ISymbolicExpressionTree;
    111         if (symbExprTree == null) return;
    112         var nodes = symbExprTree.IterateNodesPostfix();
    113         var fragment = nodes.ElementAt(gNode.CutpointIndex);
    114         if (fragment != null) foreach (var node in fragment.IterateNodesPostfix()) {
    115             var visualNode = symbolicExpressionTreeChart.GetVisualSymbolicExpressionTreeNode(node);
    116             visualNode.FillColor = Color.LightPink;
    117           }
    118         symbolicExpressionTreeChart.Repaint();
    119       }
     107      // what's left to be done here is to:
     108      // - get the symbolic expression tree
     109      // - get the corresponding fragment
     110      // - for all symbolic expression tree nodes in the fragment, colorize the corresponding visual nodes
     111      // - repaint the tree
    120112    }
    121113
Note: See TracChangeset for help on using the changeset viewer.