Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/16/11 15:07:36 (12 years ago)
Author:
ascheibe
Message:

#1659 updated branch from trunk

Location:
branches/Benchmarking
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/Benchmarking

  • branches/Benchmarking/sources

  • branches/Benchmarking/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/GrowTreeCreator.cs

    r6888 r7000  
    2121
    2222using System;
    23 using System.Collections.Generic;
    24 using System.ComponentModel;
    2523using System.Linq;
    2624using HeuristicLab.Common;
     
    134132      var arity = SampleArity(random, seedNode);
    135133      // throw an exception if the seedNode happens to be a terminal, since in this case we cannot grow a tree
    136       if (arity <= 0) 
    137         throw new ArgumentException("Cannot grow tree. Seed node shouldn't have arity zero."); 
     134      if (arity <= 0)
     135        throw new ArgumentException("Cannot grow tree. Seed node shouldn't have arity zero.");
    138136
    139       var possibleSymbols = seedNode.Grammar.GetAllowedChildSymbols(seedNode.Symbol).Where(s => s.InitialFrequency > 0.0).ToList();
    140137
    141138      for (var i = 0; i != arity; ++i) {
     139        var possibleSymbols = seedNode.Grammar.GetAllowedChildSymbols(seedNode.Symbol, i).Where(s => s.InitialFrequency > 0.0);
    142140        var selectedSymbol = possibleSymbols.SelectRandom(random);
    143141        var tree = selectedSymbol.CreateTreeNode();
     
    157155        throw new ArgumentException("Cannot grow node of arity zero. Expected a function node.");
    158156
    159       var possibleSymbols = currentDepth < maxDepth ?
    160         root.Grammar.GetAllowedChildSymbols(root.Symbol).Where(s => s.InitialFrequency > 0.0).ToList() :
    161         root.Grammar.GetAllowedChildSymbols(root.Symbol).Where(s => s.InitialFrequency > 0.0 && root.Grammar.GetMaximumSubtreeCount(s) == 0).ToList();
    162157
    163158      for (var i = 0; i != arity; ++i) {
     159        var possibleSymbols = currentDepth < maxDepth
     160                                ? root.Grammar.GetAllowedChildSymbols(root.Symbol,i).Where(s => s.InitialFrequency > 0.0)
     161                                : root.Grammar.GetAllowedChildSymbols(root.Symbol,i).Where(
     162                                  s => s.InitialFrequency > 0.0 && root.Grammar.GetMaximumSubtreeCount(s) == 0);
    164163        var selectedSymbol = possibleSymbols.SelectRandom(random);
    165164        var tree = selectedSymbol.CreateTreeNode();
Note: See TracChangeset for help on using the changeset viewer.