Changeset 11745 for branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Problems.GrammaticalOptimization/SymbolicRegressionPoly10Problem.cs
- Timestamp:
- 01/10/15 14:06:29 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Problems.GrammaticalOptimization/SymbolicRegressionPoly10Problem.cs
r11742 r11745 72 72 73 73 // right now only + and * is supported 74 public string CanonicalRepresentation(string terminalPhrase) { 75 var terms = terminalPhrase.Split('+'); 76 return string.Join("+", terms.Select(term => string.Join("", term.Replace("*", "").OrderBy(ch => ch))) 77 .OrderBy(term => term)); 74 public string CanonicalRepresentation(string phrase) { 75 var terms = phrase.Split('+').Select(t => t.Replace("*", "")); 76 var terminalTerms = terms.Where(t => t.All(ch => grammar.IsTerminal(ch))); 77 var nonTerminalTerms = terms.Where(t => t.Any(ch => grammar.IsNonTerminal(ch))); 78 79 return string.Join("+", terminalTerms.Select(term => CanonicalTerm(term)).OrderBy(term => term).Concat(nonTerminalTerms.Select(term => CanonicalTerm(term)))); 80 } 81 82 private string CanonicalTerm(string term) { 83 return string.Join("", term.OrderByDescending(ch => (byte)ch)); 78 84 } 79 85 }
Note: See TracChangeset
for help on using the changeset viewer.