Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/16/18 15:19:58 (6 years ago)
Author:
lkammere
Message:

#2886: Changes in search heuristic for solving Poly-10 problem. Adapt tree evaluation to cover non-terminal symbols.

File:
1 edited

Legend:

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

    r15883 r15907  
    304304        xSymbol, ySymbol, mulSymbol, ySymbol, mulSymbol, constSymbol, mulSymbol,
    305305        ySymbol, ySymbol, mulSymbol, constSymbol, mulSymbol, addSymbol, constSymbol, addSymbol, invSymbol,
    306         constSymbol, addSymbol 
     306        constSymbol, addSymbol
    307307      });
    308308
     
    339339        ySymbol, ySymbol, mulSymbol, constSymbol, mulSymbol, addSymbol,
    340340        ySymbol, constSymbol, mulSymbol, addSymbol,
    341         constSymbol, addSymbol 
     341        constSymbol, addSymbol
    342342      });
    343343
     
    362362
    363363      alg.Start();
    364      
     364
    365365      TerminalSymbol constSymbol = alg.Grammar.Const;
    366366      TerminalSymbol xSymbol = alg.Grammar.VarTerminals.First();
     
    370370      TerminalSymbol divSymbol = alg.Grammar.Inv;
    371371
    372      
     372
    373373      // x x mul c mul y y mul c mul add const add inv const mul const add
    374374      SymbolString targetSolution = new SymbolString(new[] {
    375         xSymbol, xSymbol, mulSymbol, constSymbol, mulSymbol, 
     375        xSymbol, xSymbol, mulSymbol, constSymbol, mulSymbol,
    376376        ySymbol, ySymbol, mulSymbol, constSymbol, mulSymbol, addSymbol,
    377377        constSymbol, addSymbol, divSymbol,
     
    410410        xSymbol, xSymbol, mulSymbol, xSymbol, mulSymbol, constSymbol, mulSymbol,
    411411        ySymbol, ySymbol, mulSymbol, ySymbol, mulSymbol, constSymbol, mulSymbol, addSymbol,
    412         ySymbol, constSymbol, mulSymbol, addSymbol, 
     412        ySymbol, constSymbol, mulSymbol, addSymbol,
    413413        xSymbol, constSymbol, mulSymbol, addSymbol,
    414414        constSymbol, addSymbol
     
    422422
    423423      // Evaluate
     424      EvaluateGrammarEnumeration();
     425    }
     426
     427    [TestMethod]
     428    [TestProperty("Goal", "Poly-10 derivatives")]
     429    public void MctsSymbReg_NoConstants_Poly10_Part1() {
     430      alg.MaxComplexity = 12;
     431      alg.OptimizeConstants = false;
     432      var regProblem = new PolyTen(123).GenerateRegressionData();
     433
     434      //  Y = X1*X2 + X3*X4 + X5*X6 + X1*X7*X9 + X3*X6*X10
     435      //  Y' = X1*X2 + X3*X4 + X5*X6
     436      // simplify problem by changing target
     437      var ds = ((Dataset)regProblem.Dataset).ToModifiable();
     438      var ys = ds.GetDoubleValues("Y").ToArray();
     439      var x1 = ds.GetDoubleValues("X1").ToArray();
     440      var x2 = ds.GetDoubleValues("X2").ToArray();
     441      var x3 = ds.GetDoubleValues("X3").ToArray();
     442      var x4 = ds.GetDoubleValues("X4").ToArray();
     443      var x5 = ds.GetDoubleValues("X5").ToArray();
     444      var x6 = ds.GetDoubleValues("X6").ToArray();
     445      var x7 = ds.GetDoubleValues("X7").ToArray();
     446      var x8 = ds.GetDoubleValues("X8").ToArray();
     447      var x9 = ds.GetDoubleValues("X9").ToArray();
     448      var x10 = ds.GetDoubleValues("X10").ToArray();
     449      for (int i = 0; i < ys.Length; i++) {
     450        //ys[i] -= x1[i] * x7[i] * x9[i];
     451        //ys[i] -= x3[i] * x6[i] * x10[i];
     452      }
     453      ds.ReplaceVariable("Y", ys.ToList());
     454
     455      alg.Problem.ProblemData = new RegressionProblemData(ds, regProblem.AllowedInputVariables, regProblem.TargetVariable);
     456
     457      alg.Start();
     458
    424459      EvaluateGrammarEnumeration();
    425460    }
Note: See TracChangeset for help on using the changeset viewer.