Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/16/10 12:12:29 (14 years ago)
Author:
gkronber
Message:

Changed way the grammar is stored in tree nodes to make it more efficient and fixed bugs in symbolic expression tree operators. #290 (Implement ADFs)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Tests/AllArchitectureAlteringOperatorsTest.cs

    r3360 r3369  
    7474      for (int g = 0; g < N_ITERATIONS; g++) {
    7575        for (int i = 0; i < POPULATION_SIZE; i++) {
    76           var selectedTree = (SymbolicExpressionTree)trees.SelectRandom(random).Clone();
    77           var op = combinedAAOperator.Operators.SelectRandom(random);
    78           bool success;
    79           op.ModifyArchitecture(random, selectedTree, grammar, maxTreeSize, maxTreeHeigth, maxDefuns, maxArgs, out success);
    80           if (!success) failedEvents++;
    81           Util.IsValid(selectedTree);
    82           newTrees.Add(selectedTree);
     76          if (random.NextDouble() < 0.5) {
     77            // manipulate
     78            var selectedTree = (SymbolicExpressionTree)trees.SelectRandom(random).Clone();
     79            var op = combinedAAOperator.Operators.SelectRandom(random);
     80            bool success;
     81            op.ModifyArchitecture(random, selectedTree, grammar, maxTreeSize, maxTreeHeigth, maxDefuns, maxArgs, out success);
     82            if (!success) failedEvents++;
     83            Util.IsValid(selectedTree);
     84            newTrees.Add(selectedTree);
     85          } else {
     86            // crossover
     87            var par0 = (SymbolicExpressionTree)trees.SelectRandom(random).Clone();
     88            var par1 = (SymbolicExpressionTree)trees.SelectRandom(random).Clone();
     89            bool success;
     90            newTrees.Add(SubtreeCrossover.Cross(random, par0, par1, 0.9, 100, 10, out success));
     91            if (!success) failedEvents++;
     92          }
    8393        }
    8494        trees = newTrees;
Note: See TracChangeset for help on using the changeset viewer.