Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/18/08 16:20:26 (16 years ago)
Author:
gkronber
Message:

added Size and Height properties to interface IFunctionTree and removed the helper methods from TreeGardener (specific implementations of size and height properties in classes implementing IFunctionTree can be more efficient than the general functions in TreeGardener)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.StructureIdentification/Manipulation/CutOutNodeManipulation.cs

    r238 r324  
    7474        if (root.SubTrees.Count > 0) {
    7575          root = root.SubTrees[random.Next(root.SubTrees.Count)];
    76           GetVariableValue<IntData>("TreeSize", scope, true).Data = gardener.GetTreeSize(root);
    77           GetVariableValue<IntData>("TreeHeight", scope, true).Data = gardener.GetTreeHeight(root);
     76          GetVariableValue<IntData>("TreeSize", scope, true).Data = root.Size;
     77          GetVariableValue<IntData>("TreeHeight", scope, true).Data = root.Height;
    7878          // update the variable
    7979          scope.GetVariable(scope.TranslateName("FunctionTree")).Value = root;
     
    8585          IFunctionTree newTree;
    8686          newTree = gardener.CreateRandomTree(gardener.Terminals, 1, 1);
    87           GetVariableValue<IntData>("TreeSize", scope, true).Data = gardener.GetTreeSize(newTree);
    88           GetVariableValue<IntData>("TreeHeight", scope, true).Data = gardener.GetTreeHeight(newTree);
     87          GetVariableValue<IntData>("TreeSize", scope, true).Data = newTree.Size;
     88          GetVariableValue<IntData>("TreeHeight", scope, true).Data = newTree.Height;
    8989          // update the variable
    9090          scope.GetVariable(scope.TranslateName("FunctionTree")).Value = newTree;
     
    107107        Debug.Assert(gardener.IsValidTree(root));
    108108        // update the size and height of our tree
    109         GetVariableValue<IntData>("TreeSize", scope, true).Data = gardener.GetTreeSize(root);
    110         GetVariableValue<IntData>("TreeHeight", scope, true).Data = gardener.GetTreeHeight(root);
     109        GetVariableValue<IntData>("TreeSize", scope, true).Data = root.Size;
     110        GetVariableValue<IntData>("TreeHeight", scope, true).Data = root.Height;
    111111        // don't need to schedule initialization operations
    112112        return null;
     
    118118        parent.RemoveSubTree(childIndex);
    119119        // then determine the number of nodes left over after the child has been removed!
    120         int remainingNodes = gardener.GetTreeSize(root);
     120        int remainingNodes = root.Size;
    121121        allowedFunctions = gardener.GetAllowedSubFunctions(parent.Function, childIndex);
    122122        IFunctionTree newFunctionTree = gardener.CreateRandomTree(allowedFunctions, maxTreeSize - remainingNodes, maxTreeHeight - parentLevel);
    123123        parent.InsertSubTree(childIndex, newFunctionTree);
    124         GetVariableValue<IntData>("TreeSize", scope, true).Data = gardener.GetTreeSize(root);
    125         GetVariableValue<IntData>("TreeHeight", scope, true).Data = gardener.GetTreeHeight(root);
     124        GetVariableValue<IntData>("TreeSize", scope, true).Data = root.Size;
     125        GetVariableValue<IntData>("TreeHeight", scope, true).Data = root.Height;
    126126        Debug.Assert(gardener.IsValidTree(root));
    127127        // schedule an initialization operation for the new function-tree
Note: See TracChangeset for help on using the changeset viewer.