Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/20/18 13:43:36 (7 years ago)
Author:
lkammere
Message:

#2886: Replace integer hashing of phrases with simplification to (temporary) string representations.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2886_SymRegGrammarEnumeration/Test/GrammarEnumerationTest.cs

    r15784 r15791  
    7575      int actualSolutionHash = alg.Grammar.CalcHashCode(alg.BestTrainingSentence);
    7676
    77       Assert.IsTrue(alg.DistinctSentences.ContainsKey(actualSolutionHash), "Actual solution was not generated!");
     77      Assert.IsTrue(alg.DistinctSentences.ContainsKey(targetSolutionHash), "Actual solution was not generated!");
    7878
    7979      Assert.AreEqual(targetSolutionHash, actualSolutionHash, "Actual solution was not recognized as best one.");
     
    112112    public void NoConstants_Nguyen6() {
    113113      // sin(x) + sin(x + x²)
    114       alg.MaxTreeSize = 13;
     114      alg.MaxTreeSize = 10;
    115115      alg.Problem.ProblemData = new NguyenFunctionSix(Seed).GenerateRegressionData();
    116116
     
    130130      int actualSolutionHash = alg.Grammar.CalcHashCode(alg.BestTrainingSentence);
    131131
    132       Assert.IsTrue(alg.DistinctSentences.ContainsKey(actualSolutionHash), "Actual solution was not generated!");
    133 
     132      Assert.IsTrue(alg.DistinctSentences.ContainsKey(targetSolutionHash), "Actual solution was not generated!");
    134133      Assert.AreEqual(targetSolutionHash, actualSolutionHash, "Actual solution was not recognized as best one.");
    135134
     
    141140    public void NoConstants_Nguyen9() {
    142141      // sin(x) + sin(y²)
    143       alg.MaxTreeSize = 10;
     142      alg.MaxTreeSize = 11;
    144143      alg.Problem.ProblemData = new NguyenFunctionNine(Seed).GenerateRegressionData();
    145144
    146145      alg.Start();
     146
     147      TerminalSymbol xSymbol = alg.Grammar.Var.VariableTerminalSymbols.First(v => v.StringRepresentation == "X");
     148      TerminalSymbol ySymbol = alg.Grammar.Var.VariableTerminalSymbols.First(v => v.StringRepresentation == "Y");
     149      TerminalSymbol mulSymbol = alg.Grammar.Multiplication;
     150      TerminalSymbol addSymbol = alg.Grammar.Addition;
     151      TerminalSymbol sinSymbol = alg.Grammar.Sin;
     152
     153      SymbolString targetSolution = new SymbolString(new[] {
     154        xSymbol, sinSymbol,
     155        ySymbol, ySymbol, mulSymbol, sinSymbol, addSymbol
     156      });
     157
     158      int targetSolutionHash = alg.Grammar.CalcHashCode(targetSolution);
     159      int actualSolutionHash = alg.Grammar.CalcHashCode(alg.BestTrainingSentence);
     160
     161      Assert.IsTrue(alg.DistinctSentences.ContainsKey(targetSolutionHash), "Actual solution was not generated!");
     162      Assert.AreEqual(targetSolutionHash, actualSolutionHash, "Actual solution was not recognized as best one.");
     163
    147164      EvaluateGrammarEnumeration();
    148165    }
     
    162179    [TestProperty("Goal", "structure search")]
    163180    public void NoConstants_Inverse() {
    164       // 1 / (log(x)*x + x)
     181      // sin(x) / (log(x)*x + x)
    165182      alg.MaxTreeSize = 12;
    166183
    167184      var x = Enumerable.Range(0, 100).Select(_ => rand.NextDouble() + 1.1).ToList();
    168       var y = x.Select(xi => 1 / (Math.Log(xi) * xi + xi)).ToList();
     185      var y = x.Select(xi => xi / (Math.Log(xi) * xi + xi)).ToList();
    169186      alg.Problem.ProblemData = new RegressionProblemData(new Dataset(new List<string>() { "x", "y" }, new List<IList>() { x, y }), "x".ToEnumerable(), "y");
    170187
Note: See TracChangeset for help on using the changeset viewer.