Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/10/15 14:06:29 (9 years ago)
Author:
gkronber
Message:

#2283: worked on contextual MCTS

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Problems.GrammaticalOptimization/SymbolicRegressionPoly10Problem.cs

    r11742 r11745  
    7272
    7373    // 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));
    7884    }
    7985  }
Note: See TracChangeset for help on using the changeset viewer.