Changeset 3360 for trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/SymbolicExpressionTreeNode.cs
- Timestamp:
- 04/15/10 19:58:42 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/SymbolicExpressionTreeNode.cs
r3338 r3360 128 128 yield return this; 129 129 } 130 //public int GetMinExpressionLength() {131 // return Grammar.GetMinExpressionLength(Symbol);132 //}133 //public int GetMaxExpressionLength() {134 // return Grammar.GetMaxExpressionLength(Symbol);135 //}136 //public int GetMinExpressionDepth() {137 // return Grammar.GetMinExpressionDepth(Symbol);138 //}139 130 public IEnumerable<Symbol> GetAllowedSymbols(int argumentIndex) { 140 131 return Grammar.Symbols.Where(s => Grammar.IsAllowedChild(Symbol, s, argumentIndex)); … … 146 137 return Grammar.GetMaxSubtreeCount(Symbol); 147 138 } 148 //public int GetMaxExpressionLength(Symbol s) {149 // return Grammar.GetMaxExpressionLength(s);150 //}151 //public int GetMinExpressionLength(Symbol s) {152 // return Grammar.GetMinExpressionLength(s);153 //}154 //public int GetMinExpressionDepth(Symbol s) {155 // return Grammar.GetMinExpressionDepth(s);156 //}157 139 158 140 #region ICloneable Members … … 165 147 166 148 167 public bool IsValidTree() {168 var matchingSymbol = (from symb in Grammar.Symbols169 where symb.Name == Symbol.Name170 select symb).SingleOrDefault();171 149 172 if (SubTrees.Count < Grammar.GetMinSubtreeCount(matchingSymbol)) return false;173 else if (SubTrees.Count > Grammar.GetMaxSubtreeCount(matchingSymbol)) return false;174 else for (int i = 0; i < SubTrees.Count; i++) {175 if (!GetAllowedSymbols(i).Select(x => x.Name).Contains(SubTrees[i].Symbol.Name)) return false;176 if (!SubTrees[i].IsValidTree()) return false;177 }178 return true;179 }180 150 } 181 151 }
Note: See TracChangeset
for help on using the changeset viewer.