Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/29/14 11:02:36 (10 years ago)
Author:
gkronber
Message:

#2283: worked on grammatical optimization problem solvers (simple MCTS done)

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  
    1212    private readonly int maxLen;
    1313    private readonly Queue<string> bfsQueue = new Queue<string>();
     14    private readonly IProblem problem;
    1415
    15     public ExhaustiveBreadthFirstSearch(int maxLen) {
     16    public ExhaustiveBreadthFirstSearch(IProblem problem, int maxLen) {
     17      this.problem = problem;
    1618      this.maxLen = maxLen;
    1719    }
    1820
    19     public void Run(IProblem problem, int maxIterations) {
     21    public void Run(int maxIterations) {
    2022      double bestQuality = double.MinValue;
    2123      bfsQueue.Enqueue(problem.Grammar.SentenceSymbol.ToString());
     
    2426      for (int i = 0; sentenceEnumerator.MoveNext() && i < maxIterations; i++) {
    2527        var sentence = sentenceEnumerator.Current;
    26         var quality = problem.Evaluate(sentence);
     28        var quality = problem.Evaluate(sentence) / problem.GetBestKnownQuality(maxLen);
    2729        RaiseSolutionEvaluated(sentence, quality);
    2830
     
    3941        var phrase = bfsQueue.Dequeue();
    4042
    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);
    4346        var alts = grammar.GetAlternatives(nt);
    4447        foreach (var alt in alts) {
  • branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.GrammaticalOptimization/ExhaustiveDepthFirstSearch.cs

    r11708 r11727  
    2424      for (int i = 0; sentenceEnumerator.MoveNext() && i < maxIterations; i++) {
    2525        var sentence = sentenceEnumerator.Current;
    26         var quality = problem.Evaluate(sentence);
     26        var quality = problem.Evaluate(sentence) / problem.GetBestKnownQuality(maxLen);
    2727        RaiseSolutionEvaluated(sentence, quality);
    2828
     
    3939        var phrase = stack.Pop();
    4040
    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);
    4344        var alts = grammar.GetAlternatives(nt);
    4445        foreach (var alt in alts) {
  • branches/HeuristicLab.Problems.GrammaticalOptimization/HeuristicLab.Algorithms.GrammaticalOptimization/HeuristicLab.Algorithms.GrammaticalOptimization.csproj

    r11690 r11727  
    4343  </ItemGroup>
    4444  <ItemGroup>
     45    <Compile Include="AlternativesSampler.cs" />
     46    <Compile Include="AlternativesContextSampler.cs" />
     47    <Compile Include="MctsSampler.cs" />
    4548    <Compile Include="ExhaustiveDepthFirstSearch.cs" />
    4649    <Compile Include="ExhaustiveBreadthFirstSearch.cs" />
     
    4952  </ItemGroup>
    5053  <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>
    5162    <ProjectReference Include="..\HeuristicLab.Problems.GrammaticalOptimization\HeuristicLab.Problems.GrammaticalOptimization.csproj">
    5263      <Project>{cb9dccf6-667e-4a13-b82d-dbd6b45a045e}</Project>
Note: See TracChangeset for help on using the changeset viewer.