Changeset 15930 for branches/2886_SymRegGrammarEnumeration/HeuristicLab.Algorithms.DataAnalysis.SymRegGrammarEnumeration/GrammarEnumeration/GrammarEnumerationAlgorithm.cs
- Timestamp:
- 05/08/18 16:40:07 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2886_SymRegGrammarEnumeration/HeuristicLab.Algorithms.DataAnalysis.SymRegGrammarEnumeration/GrammarEnumeration/GrammarEnumerationAlgorithm.cs
r15915 r15930 35 35 private readonly string MaxComplexityParameterName = "Max. Complexity"; 36 36 private readonly string GuiUpdateIntervalParameterName = "GUI Update Interval"; 37 private readonly string GrammarSymbolsParameterName = "Grammar Symbols"; 37 38 38 39 public override bool SupportsPause { get { return false; } } … … 85 86 public ICheckedItemCollection<IGrammarEnumerationAnalyzer> Analyzers { 86 87 get { return AnalyzersParameter.Value; } 88 } 89 90 public IFixedValueParameter<ReadOnlyCheckedItemCollection<EnumValue<GrammarRule>>> GrammarSymbolsParameter { 91 get { return (IFixedValueParameter<ReadOnlyCheckedItemCollection<EnumValue<GrammarRule>>>)Parameters[GrammarSymbolsParameterName]; } 92 } 93 94 public ReadOnlyCheckedItemCollection<EnumValue<GrammarRule>> GrammarSymbols { 95 get { return GrammarSymbolsParameter.Value; } 87 96 } 88 97 … … 136 145 Analyzers.SetItemCheckedState(Analyzers.First(analyzer => analyzer is RSquaredEvaluator), true); 137 146 //Analyzers.SetItemCheckedState(Analyzers.First(analyzer => analyzer is SentenceLogger), true); 147 148 var grammarSymbols = Enum.GetValues(typeof(GrammarRule)) 149 .Cast<GrammarRule>() 150 .Select(v => new EnumValue<GrammarRule>(v)); 151 152 Parameters.Add(new FixedValueParameter<ReadOnlyCheckedItemCollection<EnumValue<GrammarRule>>>( 153 GrammarSymbolsParameterName, 154 new ReadOnlyCheckedItemCollection<EnumValue<GrammarRule>>(new CheckedItemCollection<EnumValue<GrammarRule>>(grammarSymbols)) 155 )); 156 foreach (EnumValue<GrammarRule> grammarSymbol in GrammarSymbols) { 157 GrammarSymbols.SetItemCheckedState(grammarSymbol, true); 158 } 138 159 } 139 160 140 161 public GrammarEnumerationAlgorithm(GrammarEnumerationAlgorithm original, Cloner cloner) : base(original, cloner) { 141 142 143 162 } 144 163 #endregion … … 165 184 PhraseExpansionCount = 0; 166 185 167 Grammar = new Grammar(Problem.ProblemData.AllowedInputVariables.ToArray() );186 Grammar = new Grammar(Problem.ProblemData.AllowedInputVariables.ToArray(), GrammarSymbols.CheckedItems.Select(v => v.Value)); 168 187 169 188 OpenPhrases = new SearchDataStore(SearchDataStructure); // Select search strategy … … 261 280 SymbolString s = new SymbolString(Grammar.StartSymbol); 262 281 263 while ( Grammar.GetComplexity(s) <= MaxComplexity) {282 while (!s.IsSentence() && Grammar.GetComplexity(s) <= MaxComplexity) { 264 283 int expandedSymbolIndex = s.NextNonterminalIndex(); 265 284 NonterminalSymbol expandedSymbol = (NonterminalSymbol)s[expandedSymbolIndex];
Note: See TracChangeset
for help on using the changeset viewer.