Changeset 11727 for branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.GrammaticalOptimization
- Timestamp:
- 12/29/14 11:02:36 (10 years ago)
- Location:
- branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.GrammaticalOptimization
- Files:
-
- 3 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.GrammaticalOptimization/ExhaustiveBreadthFirstSearch.cs
r11708 r11727 12 12 private readonly int maxLen; 13 13 private readonly Queue<string> bfsQueue = new Queue<string>(); 14 private readonly IProblem problem; 14 15 15 public ExhaustiveBreadthFirstSearch(int maxLen) { 16 public ExhaustiveBreadthFirstSearch(IProblem problem, int maxLen) { 17 this.problem = problem; 16 18 this.maxLen = maxLen; 17 19 } 18 20 19 public void Run( IProblem problem,int maxIterations) {21 public void Run(int maxIterations) { 20 22 double bestQuality = double.MinValue; 21 23 bfsQueue.Enqueue(problem.Grammar.SentenceSymbol.ToString()); … … 24 26 for (int i = 0; sentenceEnumerator.MoveNext() && i < maxIterations; i++) { 25 27 var sentence = sentenceEnumerator.Current; 26 var quality = problem.Evaluate(sentence) ;28 var quality = problem.Evaluate(sentence) / problem.GetBestKnownQuality(maxLen); 27 29 RaiseSolutionEvaluated(sentence, quality); 28 30 … … 39 41 var phrase = bfsQueue.Dequeue(); 40 42 41 var nt = phrase.First(grammar.IsNonTerminal); 42 var ntIdx = phrase.IndexOf(nt); // TODO perf 43 char nt; 44 int ntIdx; 45 Grammar.FindFirstNonTerminal(grammar, phrase, out nt, out ntIdx); 43 46 var alts = grammar.GetAlternatives(nt); 44 47 foreach (var alt in alts) { -
branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.GrammaticalOptimization/ExhaustiveDepthFirstSearch.cs
r11708 r11727 24 24 for (int i = 0; sentenceEnumerator.MoveNext() && i < maxIterations; i++) { 25 25 var sentence = sentenceEnumerator.Current; 26 var quality = problem.Evaluate(sentence) ;26 var quality = problem.Evaluate(sentence) / problem.GetBestKnownQuality(maxLen); 27 27 RaiseSolutionEvaluated(sentence, quality); 28 28 … … 39 39 var phrase = stack.Pop(); 40 40 41 var nt = phrase.First(grammar.IsNonTerminal); 42 var ntIdx = phrase.IndexOf(nt); // TODO perf 41 char nt; 42 int ntIdx; 43 Grammar.FindFirstNonTerminal(grammar, phrase, out nt, out ntIdx); 43 44 var alts = grammar.GetAlternatives(nt); 44 45 foreach (var alt in alts) { -
branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.GrammaticalOptimization/HeuristicLab.Algorithms.GrammaticalOptimization.csproj
r11690 r11727 43 43 </ItemGroup> 44 44 <ItemGroup> 45 <Compile Include="AlternativesSampler.cs" /> 46 <Compile Include="AlternativesContextSampler.cs" /> 47 <Compile Include="MctsSampler.cs" /> 45 48 <Compile Include="ExhaustiveDepthFirstSearch.cs" /> 46 49 <Compile Include="ExhaustiveBreadthFirstSearch.cs" /> … … 49 52 </ItemGroup> 50 53 <ItemGroup> 54 <ProjectReference Include="..\HeuristicLab.Algorithms.Bandits\HeuristicLab.Algorithms.Bandits.csproj"> 55 <Project>{24408F7D-EE0F-4886-A08B-EC324D662E47}</Project> 56 <Name>HeuristicLab.Algorithms.Bandits</Name> 57 </ProjectReference> 58 <ProjectReference Include="..\HeuristicLab.Common\HeuristicLab.Common.csproj"> 59 <Project>{3A2FBBCB-F9DF-4970-87F3-F13337D941AD}</Project> 60 <Name>HeuristicLab.Common</Name> 61 </ProjectReference> 51 62 <ProjectReference Include="..\HeuristicLab.Problems.GrammaticalOptimization\HeuristicLab.Problems.GrammaticalOptimization.csproj"> 52 63 <Project>{cb9dccf6-667e-4a13-b82d-dbd6b45a045e}</Project>
Note: See TracChangeset
for help on using the changeset viewer.