- Timestamp:
- 08/06/18 17:59:50 (6 years ago)
- Location:
- branches/2886_SymRegGrammarEnumeration
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2886_SymRegGrammarEnumeration/HeuristicLab.Algorithms.DataAnalysis.SymRegGrammarEnumeration/GrammarEnumeration/Grammar.cs
r16053 r16056 278 278 } 279 279 280 public double EvaluatePhrase(SymbolList s, IRegressionProblemData problemData, bool optimizeConstants, int iterations, bool applyLinearScaling) {281 SymbolicExpressionTree tree = ParseSymbolicExpressionTree(s);282 283 return RSquaredEvaluator.Evaluate(problemData, tree, optimizeConstants, iterations, applyLinearScaling);284 }285 286 280 #region Parse to SymbolicExpressionTree 287 288 281 public string ToInfixString(SymbolList sentence) { 289 282 Debug.Assert(sentence.Any(), "Trying to evaluate empty sentence!"); -
branches/2886_SymRegGrammarEnumeration/Test/GrammarEnumerationTest.cs
r16026 r16056 4 4 using System.Linq; 5 5 using HeuristicLab.Algorithms.DataAnalysis.SymRegGrammarEnumeration; 6 using HeuristicLab.Algorithms.DataAnalysis.SymRegGrammarEnumeration.GrammarEnumeration;7 6 using HeuristicLab.Common; 8 7 using HeuristicLab.Core; … … 59 58 public void NoConstants_Nguyen1() { 60 59 // x³ + x² + x 61 alg. OptimizeConstants = false;60 alg.Evaluator.OptimizeConstants = false; 62 61 alg.MaxComplexity = 6; 63 62 alg.Problem.ProblemData = new NguyenFunctionOne(Seed).GenerateRegressionData(); 63 alg.SearchDataStructureSize = (int)1e6; 64 64 65 65 alg.Start(); … … 80 80 int actualSolutionHash = alg.Grammar.Hasher.CalcHashCode(alg.BestTrainingSentence); 81 81 82 Assert.IsTrue(alg.DistinctSentencesComplexity.ContainsKey(targetSolutionHash), "Actual solution was not generated!");82 //Assert.IsTrue(alg.DistinctSentencesComplexity.ContainsKey(targetSolutionHash), "Actual solution was not generated!"); 83 83 84 84 Assert.AreEqual(targetSolutionHash, actualSolutionHash, "Actual solution was not recognized as best one."); … … 117 117 public void NoConstants_Nguyen6() { 118 118 // sin(x) + sin(x + x²) 119 alg. OptimizeConstants = false;119 alg.Evaluator.OptimizeConstants = false; 120 120 alg.MaxComplexity = 4; 121 121 alg.Problem.ProblemData = new NguyenFunctionSix(Seed).GenerateRegressionData(); 122 alg.SearchDataStructureSize = (int)1e6; 122 123 123 124 alg.Start(); … … 139 140 int actualSolutionHash = alg.Grammar.Hasher.CalcHashCode(alg.BestTrainingSentence); 140 141 141 Assert.IsTrue(alg.DistinctSentencesComplexity.ContainsKey(targetSolutionHash), "Actual solution was not generated!");142 //Assert.IsTrue(alg.DistinctSentencesComplexity.ContainsKey(targetSolutionHash), "Actual solution was not generated!"); 142 143 Assert.AreEqual(targetSolutionHash, actualSolutionHash, "Actual solution was not recognized as best one."); 143 144 … … 149 150 public void NoConstants_Nguyen9() { 150 151 // sin(x) + sin(y²) 151 alg. OptimizeConstants = false;152 alg.Evaluator.OptimizeConstants = false; 152 153 alg.MaxComplexity = 3; 153 154 alg.Problem.ProblemData = new NguyenFunctionNine(Seed).GenerateRegressionData(); 155 alg.SearchDataStructureSize = (int)1e6; 154 156 155 157 alg.Start(); … … 172 174 int actualSolutionHash = alg.Grammar.Hasher.CalcHashCode(alg.BestTrainingSentence); 173 175 174 Assert.IsTrue(alg.DistinctSentencesComplexity.ContainsKey(targetSolutionHash), "Actual solution was not generated!");176 //Assert.IsTrue(alg.DistinctSentencesComplexity.ContainsKey(targetSolutionHash), "Actual solution was not generated!"); 175 177 Assert.AreEqual(targetSolutionHash, actualSolutionHash, "Actual solution was not recognized as best one."); 176 178 … … 193 195 public void NoConstants_Inverse() { 194 196 // x / (log(x)*x + x) 195 alg. OptimizeConstants = false;197 alg.Evaluator.OptimizeConstants = false; 196 198 alg.MaxComplexity = 4; 197 199 … … 199 201 var y = x.Select(xi => xi / (Math.Log(xi) * xi + xi)).ToList(); 200 202 alg.Problem.ProblemData = new RegressionProblemData(new Dataset(new List<string>() { "x", "y" }, new List<IList>() { x, y }), "x".ToEnumerable(), "y"); 203 alg.SearchDataStructureSize = (int)1e7; 201 204 202 205 alg.Start(); … … 209 212 // log(x+1) + log(x*x + 1) 210 213 alg.MaxComplexity = 4; 211 alg. OptimizeConstants = true;214 alg.Evaluator.OptimizeConstants = true; 212 215 alg.Problem.ProblemData = new NguyenFunctionSeven().GenerateRegressionData(); 213 216 … … 241 244 // x*x*x*x - x*x*x + y*y/2 -y 242 245 alg.MaxComplexity = 10; 243 alg. OptimizeConstants = true;246 alg.Evaluator.OptimizeConstants = true; 244 247 alg.Problem.ProblemData = new NguyenFunctionTwelve().GenerateRegressionData(); 245 248 … … 256 259 alg.MaxComplexity = 2; 257 260 alg.Problem.ProblemData = new KeijzerFunctionThree().GenerateRegressionData(); 261 alg.SearchDataStructureSize = (int)1e7; 258 262 259 263 alg.Start(); … … 274 278 int actualSolutionHash = alg.Grammar.Hasher.CalcHashCode(alg.BestTrainingSentence); 275 279 276 Assert.IsTrue(alg.DistinctSentencesComplexity.ContainsKey(targetSolutionHash), "Actual solution was not generated!");280 //Assert.IsTrue(alg.DistinctSentencesComplexity.ContainsKey(targetSolutionHash), "Actual solution was not generated!"); 277 281 Assert.AreEqual(targetSolutionHash, actualSolutionHash, "Actual solution was not recognized as best one."); 278 282 … … 286 290 // (30*x*z) / ((x - 10)*y*y) 287 291 alg.MaxComplexity = 5; 288 alg. OptimizeConstants = true;292 alg.Evaluator.OptimizeConstants = true; 289 293 alg.Problem.ProblemData = new KeijzerFunctionFive().GenerateRegressionData(); 294 alg.SearchDataStructureSize = (int)1e7; 290 295 291 296 alg.Start(); … … 311 316 int actualSolutionHash = alg.Grammar.Hasher.CalcHashCode(alg.BestTrainingSentence); 312 317 313 Assert.IsTrue(alg.DistinctSentencesComplexity.ContainsKey(targetSolutionHash), "Actual solution was not generated!");318 //Assert.IsTrue(alg.DistinctSentencesComplexity.ContainsKey(targetSolutionHash), "Actual solution was not generated!"); 314 319 315 320 Assert.AreEqual(targetSolutionHash, actualSolutionHash, "Actual solution was not recognized as best one."); … … 326 331 alg.MaxComplexity = 10; 327 332 alg.Problem.ProblemData = new KeijzerFunctionTwelve().GenerateRegressionData(); 333 alg.SearchDataStructureSize = (int)1e7; 328 334 329 335 alg.Start(); … … 348 354 int actualSolutionHash = alg.Grammar.Hasher.CalcHashCode(alg.BestTrainingSentence); 349 355 350 Assert.IsTrue(alg.DistinctSentencesComplexity.ContainsKey(targetSolutionHash), "Actual solution was not generated!");356 //Assert.IsTrue(alg.DistinctSentencesComplexity.ContainsKey(targetSolutionHash), "Actual solution was not generated!"); 351 357 Assert.AreEqual(targetSolutionHash, actualSolutionHash, "Actual solution was not recognized as best one."); 352 358 … … 360 366 // 8 / (2 + x*x + y*y) 361 367 alg.MaxComplexity = 4; 362 alg. OptimizeConstants = true;368 alg.Evaluator.OptimizeConstants = true; 363 369 alg.Problem.ProblemData = new KeijzerFunctionFourteen().GenerateRegressionData(); 370 alg.SearchDataStructureSize = (int)1e7; 364 371 365 372 alg.Start(); … … 385 392 int actualSolutionHash = alg.Grammar.Hasher.CalcHashCode(alg.BestTrainingSentence); 386 393 387 Assert.IsTrue(alg.DistinctSentencesComplexity.ContainsKey(targetSolutionHash), "Actual solution was not generated!");394 //Assert.IsTrue(alg.DistinctSentencesComplexity.ContainsKey(targetSolutionHash), "Actual solution was not generated!"); 388 395 Assert.AreEqual(targetSolutionHash, actualSolutionHash, "Actual solution was not recognized as best one."); 389 396 … … 398 405 // x*x*x / 5 + y*y*y / 2 - y - x 399 406 alg.MaxComplexity = 8; 400 alg. OptimizeConstants = true;407 alg.Evaluator.OptimizeConstants = true; 401 408 alg.Problem.ProblemData = new KeijzerFunctionFifteen().GenerateRegressionData(); 402 409 … … 432 439 public void MctsSymbReg_NoConstants_Poly10_Part1() { 433 440 alg.MaxComplexity = 12; 434 alg. OptimizeConstants = false;441 alg.Evaluator.OptimizeConstants = false; 435 442 var regProblem = new PolyTen(123).GenerateRegressionData(); 436 443 -
branches/2886_SymRegGrammarEnumeration/Test/TreeHashingTest.cs
r16026 r16056 1 1 using System.Linq; 2 2 using HeuristicLab.Algorithms.DataAnalysis.SymRegGrammarEnumeration; 3 using HeuristicLab.Algorithms.DataAnalysis.SymRegGrammarEnumeration.GrammarEnumeration;4 3 using Microsoft.VisualStudio.TestTools.UnitTesting; 5 4 … … 138 137 [TestCategory("TreeHashing")] 139 138 public void SimpleConst() { 140 SymbolList s1 = new SymbolList(new Symbol[] { c, varA, grammar.Multiplication, c, grammar.Addition });139 SymbolList s1 = new SymbolList(new Symbol[] { c, varA, grammar.Multiplication, c, grammar.Addition }); 141 140 SymbolList s2 = new SymbolList(new Symbol[] { c, varA, grammar.Multiplication, c, varA, grammar.Multiplication, grammar.Addition, c, grammar.Addition }); 142 141
Note: See TracChangeset
for help on using the changeset viewer.