Changeset 5686 for branches/DataAnalysis Refactoring/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/ArchitectureManipulators/ArgumentDuplicater.cs
- Timestamp:
- 03/15/11 13:34:38 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DataAnalysis Refactoring/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/ArchitectureManipulators/ArgumentDuplicater.cs
r5529 r5686 107 107 // register the new argument symbol and increase the number of arguments of the ADF 108 108 selectedDefunBranch.Grammar.AddSymbol(newArgSymbol); 109 selectedDefunBranch.Grammar.SetMinSubtreeCount(newArgSymbol, 0); 110 selectedDefunBranch.Grammar.SetMaxSubtreeCount(newArgSymbol, 0); 109 selectedDefunBranch.Grammar.SetSubtreeCount(newArgSymbol, 0, 0); 111 110 // allow the argument as child of any other symbol 112 111 foreach (var symb in selectedDefunBranch.Grammar.Symbols) 113 for (int i = 0; i < selectedDefunBranch.Grammar.GetMax SubtreeCount(symb); i++) {114 selectedDefunBranch.Grammar. SetAllowedChild(symb, newArgSymbol, i);112 for (int i = 0; i < selectedDefunBranch.Grammar.GetMaximumSubtreeCount(symb); i++) { 113 selectedDefunBranch.Grammar.AddAllowedChildSymbol(symb, newArgSymbol, i); 115 114 } 116 115 selectedDefunBranch.NumberOfArguments++; … … 122 121 select symb).SingleOrDefault(); 123 122 if (matchingInvokeSymbol != null) { 124 subtree.Grammar.SetMinSubtreeCount(matchingInvokeSymbol, selectedDefunBranch.NumberOfArguments); 125 subtree.Grammar.SetMaxSubtreeCount(matchingInvokeSymbol, selectedDefunBranch.NumberOfArguments); 126 foreach (var child in subtree.Grammar.GetAllowedSymbols(subtree.Symbol, 0)) { 127 for (int i = 0; i < subtree.Grammar.GetMaxSubtreeCount(matchingInvokeSymbol); i++) { 128 subtree.Grammar.SetAllowedChild(matchingInvokeSymbol, child, i); 123 subtree.Grammar.SetSubtreeCount(matchingInvokeSymbol, selectedDefunBranch.NumberOfArguments, selectedDefunBranch.NumberOfArguments); 124 foreach (var child in subtree.Grammar.GetAllowedChildSymbols(subtree.Symbol, 0)) { 125 for (int i = 0; i < subtree.Grammar.GetMaximumSubtreeCount(matchingInvokeSymbol); i++) { 126 subtree.Grammar.AddAllowedChildSymbol(matchingInvokeSymbol, child, i); 129 127 } 130 128 }
Note: See TracChangeset
for help on using the changeset viewer.