protected GESymbolicDataAnalysisProblem(T problemData, U evaluator, V solutionCreator)
            : base(evaluator, solutionCreator)
        {
            Parameters.Add(new ValueParameter <T>(ProblemDataParameterName, ProblemDataParameterDescription, problemData));
            Parameters.Add(new ValueParameter <ISymbolicDataAnalysisGrammar>(SymbolicExpressionTreeGrammarParameterName, SymbolicExpressionTreeGrammarParameterDescription));
            Parameters.Add(new ValueParameter <ISymbolicDataAnalysisExpressionTreeInterpreter>(SymbolicExpressionTreeInterpreterParameterName, SymbolicExpressionTreeInterpreterParameterDescription));
            Parameters.Add(new FixedValueParameter <IntValue>(MaximumSymbolicExpressionTreeLengthParameterName, MaximumSymbolicExpressionTreeLengthParameterDescription));
            Parameters.Add(new FixedValueParameter <IntRange>(FitnessCalculationPartitionParameterName, FitnessCalculationPartitionParameterDescription));
            Parameters.Add(new FixedValueParameter <IntRange>(ValidationPartitionParameterName, ValidationPartitionParameterDescription));
            Parameters.Add(new FixedValueParameter <PercentValue>(RelativeNumberOfEvaluatedSamplesParameterName, RelativeNumberOfEvaluatedSamplesParameterDescription, new PercentValue(1)));
            Parameters.Add(new FixedValueParameter <BoolValue>(ApplyLinearScalingParameterName, ApplyLinearScalingParameterDescription, new BoolValue(false)));
            IntMatrix m = new IntMatrix(new int[, ] {
                { 0, 100 }
            });

            Parameters.Add(new ValueParameter <IntMatrix>(BoundsParameterName, BoundsParameterDescription, m));
            Parameters.Add(new ValueParameter <IGenotypeToPhenotypeMapper>(GenotypeToPhenotypeMapperParameterName, GenotypeToPhenotypeMapperParameterDescription, new DepthFirstMapper()));

            SymbolicExpressionTreeInterpreterParameter.Hidden = true;
            ApplyLinearScalingParameter.Hidden = true;

            SymbolicExpressionTreeGrammar     = new GESymbolicExpressionGrammar(problemData.AllowedInputVariables, problemData.AllowedInputVariables.Count() * 3);
            SymbolicExpressionTreeInterpreter = new SymbolicDataAnalysisExpressionTreeLinearInterpreter();

            FitnessCalculationPartition.Start = ProblemData.TrainingPartition.Start;
            FitnessCalculationPartition.End   = ProblemData.TrainingPartition.End;

            InitializeOperators();

            UpdateGrammar();
            RegisterEventHandlers();
        }
 protected GESymbolicExpressionGrammar(GESymbolicExpressionGrammar original, Cloner cloner) : base(original, cloner)
 {
 }
 protected GESymbolicExpressionGrammar(GESymbolicExpressionGrammar original, Cloner cloner) : base(original, cloner) { }