Changeset 11874 for stable/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/FullTreeCreator.cs
- Timestamp:
- 02/03/15 14:29:06 (9 years ago)
- Location:
- stable
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
/trunk/sources merged: 11494-11498,11504,11532,11536
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding merged: 11494-11497,11504,11532,11536
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/FullTreeCreator.cs
r11170 r11874 38 38 private const string MaximumSymbolicExpressionTreeLengthParameterName = "MaximumSymbolicExpressionTreeLength"; 39 39 private const string MaximumSymbolicExpressionTreeDepthParameterName = "MaximumSymbolicExpressionTreeDepth"; 40 private const string SymbolicExpressionTreeGrammarParameterName = "SymbolicExpressionTreeGrammar";41 private const string ClonedSymbolicExpressionTreeGrammarParameterName = "ClonedSymbolicExpressionTreeGrammar";42 40 43 41 #region Parameter Properties … … 49 47 get { return (IValueLookupParameter<IntValue>)Parameters[MaximumSymbolicExpressionTreeDepthParameterName]; } 50 48 } 51 52 public IValueLookupParameter<ISymbolicExpressionGrammar> SymbolicExpressionTreeGrammarParameter {53 get { return (IValueLookupParameter<ISymbolicExpressionGrammar>)Parameters[SymbolicExpressionTreeGrammarParameterName]; }54 }55 56 public ILookupParameter<ISymbolicExpressionGrammar> ClonedSymbolicExpressionTreeGrammarParameter {57 get { return (ILookupParameter<ISymbolicExpressionGrammar>)Parameters[ClonedSymbolicExpressionTreeGrammarParameterName]; }58 }59 60 49 #endregion 61 50 #region Properties … … 66 55 public IntValue MaximumSymbolicExpressionTreeLength { 67 56 get { return MaximumSymbolicExpressionTreeLengthParameter.ActualValue; } 68 }69 70 public ISymbolicExpressionGrammar ClonedSymbolicExpressionTreeGrammar {71 get { return ClonedSymbolicExpressionTreeGrammarParameter.ActualValue; }72 57 } 73 58 … … 84 69 Parameters.Add(new ValueLookupParameter<IntValue>(MaximumSymbolicExpressionTreeDepthParameterName, 85 70 "The maximal depth of the symbolic expression tree (a tree with one node has depth = 0).")); 86 Parameters.Add(new ValueLookupParameter<ISymbolicExpressionGrammar>(SymbolicExpressionTreeGrammarParameterName,87 "The tree grammar that defines the correct syntax of symbolic expression trees that should be created."));88 Parameters.Add(new LookupParameter<ISymbolicExpressionGrammar>(ClonedSymbolicExpressionTreeGrammarParameterName,89 "An immutable clone of the concrete grammar that is actually used to create and manipulate trees."));90 71 } 91 72 … … 94 75 } 95 76 96 public override IOperation InstrumentedApply() {97 if (ClonedSymbolicExpressionTreeGrammarParameter.ActualValue == null) {98 SymbolicExpressionTreeGrammarParameter.ActualValue.ReadOnly = true;99 IScope globalScope = ExecutionContext.Scope;100 while (globalScope.Parent != null)101 globalScope = globalScope.Parent;102 103 globalScope.Variables.Add(new Variable(ClonedSymbolicExpressionTreeGrammarParameterName,104 (ISymbolicExpressionGrammar)SymbolicExpressionTreeGrammarParameter.ActualValue.Clone()));105 }106 return base.InstrumentedApply();107 }108 77 109 78 protected override ISymbolicExpressionTree Create(IRandom random) { 110 return Create(random, ClonedSymbolicExpressionTreeGrammar , MaximumSymbolicExpressionTreeLength.Value, MaximumSymbolicExpressionTreeDepth.Value);79 return Create(random, ClonedSymbolicExpressionTreeGrammarParameter.ActualValue, MaximumSymbolicExpressionTreeLength.Value, MaximumSymbolicExpressionTreeDepth.Value); 111 80 } 112 81 … … 129 98 var rootNode = (SymbolicExpressionTreeTopLevelNode)grammar.ProgramRootSymbol.CreateTreeNode(); 130 99 if (rootNode.HasLocalParameters) rootNode.ResetLocalParameters(random); 131 rootNode.SetGrammar( new SymbolicExpressionTreeGrammar(grammar));100 rootNode.SetGrammar(grammar.CreateExpressionTreeGrammar()); 132 101 133 102 var startNode = (SymbolicExpressionTreeTopLevelNode)grammar.StartSymbol.CreateTreeNode(); 134 103 if (startNode.HasLocalParameters) startNode.ResetLocalParameters(random); 135 startNode.SetGrammar( new SymbolicExpressionTreeGrammar(grammar));104 startNode.SetGrammar(grammar.CreateExpressionTreeGrammar()); 136 105 137 106 rootNode.AddSubtree(startNode);
Note: See TracChangeset
for help on using the changeset viewer.