Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/17/11 15:14:45 (13 years ago)
Author:
gkronber
Message:

#1418 implemented linear scaling for classification solutions, fixed bugs interactive simplifier view for classification solutions.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/InteractiveSymbolicDataAnalysisSolutionSimplifierView.cs

    r5729 r5736  
    9292
    9393        // automatically fold all branches with impact = 1
    94         List<ISymbolicExpressionTreeNode> nodeList = Content.Model.SymbolicExpressionTree.Root.GetSubTree(0).IterateNodesPrefix().ToList();
     94        List<ISymbolicExpressionTreeNode> nodeList = Content.Model.SymbolicExpressionTree.Root.GetSubtree(0).IterateNodesPrefix().ToList();
    9595        foreach (var parent in nodeList) {
    96           for (int subTreeIndex = 0; subTreeIndex < parent.SubTrees.Count(); subTreeIndex++) {
    97             var child = parent.GetSubTree(subTreeIndex);
     96          for (int subTreeIndex = 0; subTreeIndex < parent.SubtreesCount; subTreeIndex++) {
     97            var child = parent.GetSubtree(subTreeIndex);
    9898            if (!(child.Symbol is Constant) && nodeImpacts[child].IsAlmost(1.0)) {
    9999              SwitchNodeWithReplacementNode(parent, subTreeIndex);
     
    102102        }
    103103        // show only interesting part of solution
    104         this.treeChart.Tree = new SymbolicExpressionTree(tree.Root.GetSubTree(0).GetSubTree(0));
     104        this.treeChart.Tree = new SymbolicExpressionTree(tree.Root.GetSubtree(0).GetSubtree(0));
    105105        this.PaintNodeImpacts();
    106106      }
     
    124124      var tree = Content.Model.SymbolicExpressionTree;
    125125      foreach (SymbolicExpressionTreeNode treeNode in tree.IterateNodesPostfix()) {
    126         for (int i = 0; i < treeNode.SubTrees.Count(); i++) {
    127           ISymbolicExpressionTreeNode subTree = treeNode.GetSubTree(i);
     126        for (int i = 0; i < treeNode.SubtreesCount; i++) {
     127          ISymbolicExpressionTreeNode subTree = treeNode.GetSubtree(i);
    128128          if (subTree == visualTreeNode.SymbolicExpressionTreeNode) {
    129129            SwitchNodeWithReplacementNode(treeNode, i);
     
    133133
    134134      // show only interesting part of solution
    135       this.treeChart.Tree = new SymbolicExpressionTree(tree.Root.GetSubTree(0).GetSubTree(0));
     135      this.treeChart.Tree = new SymbolicExpressionTree(tree.Root.GetSubtree(0).GetSubtree(0));
    136136
    137137      UpdateModel(tree);
    138       this.PaintNodeImpacts();
    139138    }
    140139
    141140    private void SwitchNodeWithReplacementNode(ISymbolicExpressionTreeNode parent, int subTreeIndex) {
    142       ISymbolicExpressionTreeNode subTree = parent.GetSubTree(subTreeIndex);
    143       parent.RemoveSubTree(subTreeIndex);
     141      ISymbolicExpressionTreeNode subTree = parent.GetSubtree(subTreeIndex);
     142      parent.RemoveSubtree(subTreeIndex);
    144143      if (replacementNodes.ContainsKey(subTree)) {
    145144        var replacementNode = replacementNodes[subTree];
    146         parent.InsertSubTree(subTreeIndex, replacementNode);
     145        parent.InsertSubtree(subTreeIndex, replacementNode);
    147146        // exchange key and value
    148147        replacementNodes.Remove(subTree);
    149148        replacementNodes.Add(replacementNode, subTree);
    150       } else {
    151         throw new InvalidOperationException("Could not find replacement value.");
    152149      }
    153150    }
Note: See TracChangeset for help on using the changeset viewer.