Changeset 3294 for trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/SymbolicExpressionTreeNode.cs
- Timestamp:
- 04/09/10 17:28:32 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/SymbolicExpressionTreeNode.cs
r3269 r3294 21 21 22 22 using System; 23 using System.Linq; 23 24 using System.Collections.Generic; 24 25 using System.Text; … … 27 28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 28 29 using HeuristicLab.Data; 30 using System.Diagnostics; 29 31 30 32 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding { … … 46 48 protected SymbolicExpressionTreeNode(SymbolicExpressionTreeNode original) { 47 49 symbol = original.symbol; 48 this.subTrees = new List<SymbolicExpressionTreeNode>();50 subTrees = new List<SymbolicExpressionTreeNode>(); 49 51 foreach (var subtree in original.SubTrees) { 50 52 AddSubTree((SymbolicExpressionTreeNode)subtree.Clone()); 51 53 } 54 dynamicSymbols = new Dictionary<string, int>(original.dynamicSymbols); 52 55 } 53 56 … … 76 79 return maxHeight + 1; 77 80 } 78 81 82 [Storable] 83 private Dictionary<string, int> dynamicSymbols = new Dictionary<string, int>(); 84 public void AddDynamicSymbol(string symbolName) { 85 Debug.Assert(!dynamicSymbols.ContainsKey(symbolName)); 86 dynamicSymbols[symbolName] = 0; 87 } 88 89 public void AddDynamicSymbol(string symbolName, int nArguments) { 90 AddDynamicSymbol(symbolName); 91 SetDynamicSymbolArgumentCount(symbolName, nArguments); 92 } 93 94 public void RemoveDynamicSymbol(string symbolName) { 95 dynamicSymbols.Remove(symbolName); 96 } 97 98 public IEnumerable<string> DynamicSymbols { 99 get { return dynamicSymbols.Keys; } 100 } 101 102 public int GetDynamicSymbolArgumentCount(string symbolName) { 103 return dynamicSymbols[symbolName]; 104 } 105 public void SetDynamicSymbolArgumentCount(string symbolName, int nArguments) { 106 Debug.Assert(dynamicSymbols.ContainsKey(symbolName)); 107 dynamicSymbols[symbolName] = nArguments; 108 } 109 79 110 public virtual void ResetLocalParameters(IRandom random) { } 80 111 public virtual void ShakeLocalParameters(IRandom random, double shakingFactor) { }
Note: See TracChangeset
for help on using the changeset viewer.