public OffspringSelectionGeneticAlgorithm CreateGeSymbolicRegressionSample() { var ga = new OffspringSelectionGeneticAlgorithm(); #region Problem Configuration var problem = new HeuristicLab.Problems.GrammaticalEvolution.GESymbolicRegressionSingleObjectiveProblem(); #endregion #region Algorithm Configuration ga.Name = "Grammatical Evolution - Symbolic Regression (Poly-10)"; ga.Description = "Grammatical evolution algorithm for solving a symbolic regression problem problem"; ga.Problem = problem; problem.Load(new PolyTen().GenerateRegressionData()); // must occur after loading problem data because the grammar creates symbols for random constants once the data is loaded var consts = problem.SymbolicExpressionTreeGrammar.AllowedSymbols.OfType <Constant>().ToList(); foreach (var c in consts) { problem.SymbolicExpressionTreeGrammar.RemoveSymbol(c); } SamplesUtils.ConfigureOsGeneticAlgorithmParameters <GenderSpecificSelector, Encodings.IntegerVectorEncoding.SinglePointCrossover, Encodings.IntegerVectorEncoding.UniformOnePositionManipulator>( ga, 1000, 1, 50, 0.05, 200); #endregion return(ga); }
public OffspringSelectionGeneticAlgorithm CreateGeSymbolicRegressionSample() { var ga = new OffspringSelectionGeneticAlgorithm(); #region Problem Configuration var problem = new HeuristicLab.Problems.GrammaticalEvolution.GESymbolicRegressionSingleObjectiveProblem(); #endregion #region Algorithm Configuration ga.Name = "Grammatical Evolution - Symbolic Regression (Poly-10)"; ga.Description = "Grammatical evolution algorithm for solving a symbolic regression problem problem"; ga.Problem = problem; problem.Load(new PolyTen().GenerateRegressionData()); // must occur after loading problem data because the grammar creates symbols for random constants once the data is loaded var consts = problem.SymbolicExpressionTreeGrammar.AllowedSymbols.OfType<Constant>().ToList(); foreach (var c in consts) { problem.SymbolicExpressionTreeGrammar.RemoveSymbol(c); } SamplesUtils.ConfigureOsGeneticAlgorithmParameters<GenderSpecificSelector, Encodings.IntegerVectorEncoding.SinglePointCrossover, Encodings.IntegerVectorEncoding.UniformOnePositionManipulator>( ga, 1000, 1, 50, 0.05, 200); #endregion return ga; }