protected InteractiveSymbolicDataAnalysisSolutionSimplifierView(ISymbolicDataAnalysisSolutionImpactValuesCalculator impactCalculator)
        {
            InitializeComponent();
            foldedNodes           = new Dictionary <ISymbolicExpressionTreeNode, ISymbolicExpressionTreeNode>();
            changedNodes          = new Dictionary <ISymbolicExpressionTreeNode, ISymbolicExpressionTreeNode>();
            nodeImpacts           = new Dictionary <ISymbolicExpressionTreeNode, double>();
            this.Caption          = "Interactive Solution Simplifier";
            this.impactCalculator = impactCalculator;

            // initialize the tree modifier that will be used to perform edit operations over the tree
            treeChart.ModifyTree = Modify;
        }
 protected SymbolicDataAnalysisExpressionPruningOperator(ISymbolicDataAnalysisSolutionImpactValuesCalculator impactValuesCalculator)
 {
     #region add parameters
     Parameters.Add(new LookupParameter <IDataAnalysisProblemData>(ProblemDataParameterName));
     Parameters.Add(new LookupParameter <ISymbolicDataAnalysisModel>(SymbolicDataAnalysisModelParameterName));
     Parameters.Add(new LookupParameter <IntRange>(FitnessCalculationPartitionParameterName));
     Parameters.Add(new LookupParameter <IntValue>(PrunedNodesParameterName, "A counter of how many nodes were pruned."));
     Parameters.Add(new LookupParameter <IntValue>(PrunedSubtreesParameterName, "A counter of how many subtrees were replaced."));
     Parameters.Add(new LookupParameter <IntValue>(PrunedTreesParameterName, "A counter of how many trees were pruned."));
     Parameters.Add(new FixedValueParameter <BoolValue>(PruneOnlyZeroImpactNodesParameterName, "Specify whether or not only zero impact nodes should be pruned."));
     Parameters.Add(new FixedValueParameter <DoubleValue>(NodeImpactThresholdParameterName, "Specifies an impact value threshold below which nodes should be pruned."));
     Parameters.Add(new LookupParameter <DoubleLimit>(EstimationLimitsParameterName));
     Parameters.Add(new LookupParameter <ISymbolicDataAnalysisExpressionTreeInterpreter>(InterpreterParameterName));
     Parameters.Add(new LookupParameter <ISymbolicExpressionTree>(SymbolicExpressionTreeParameterName));
     Parameters.Add(new LookupParameter <DoubleValue>(QualityParameterName));
     Parameters.Add(new LookupParameter <BoolValue>(ApplyLinearScalingParameterName));
     Parameters.Add(new ValueParameter <ISymbolicDataAnalysisSolutionImpactValuesCalculator>(ImpactValuesCalculatorParameterName, impactValuesCalculator));
     #endregion
 }
 public SymbolicClassificationPruningOperator(ISymbolicDataAnalysisSolutionImpactValuesCalculator impactValuesCalculator)
     : base(impactValuesCalculator)
 {
     Parameters.Add(new LookupParameter <ISymbolicClassificationModelCreator>(ModelCreatorParameterName));
     Parameters.Add(new LookupParameter <ISymbolicClassificationSingleObjectiveEvaluator>(EvaluatorParameterName));
 }
 public SymbolicRegressionPruningOperator(ISymbolicDataAnalysisSolutionImpactValuesCalculator impactValuesCalculator)
   : base(impactValuesCalculator) {
   Parameters.Add(new LookupParameter<ISymbolicRegressionSingleObjectiveEvaluator>(EvaluatorParameterName));
 }
 protected SymbolicDataAnalysisExpressionPruningOperator(ISymbolicDataAnalysisSolutionImpactValuesCalculator impactValuesCalculator) {
   #region add parameters
   Parameters.Add(new LookupParameter<IDataAnalysisProblemData>(ProblemDataParameterName));
   Parameters.Add(new LookupParameter<ISymbolicDataAnalysisModel>(SymbolicDataAnalysisModelParameterName));
   Parameters.Add(new LookupParameter<IntRange>(FitnessCalculationPartitionParameterName));
   Parameters.Add(new LookupParameter<IntValue>(PrunedNodesParameterName, "A counter of how many nodes were pruned."));
   Parameters.Add(new LookupParameter<IntValue>(PrunedSubtreesParameterName, "A counter of how many subtrees were replaced."));
   Parameters.Add(new LookupParameter<IntValue>(PrunedTreesParameterName, "A counter of how many trees were pruned."));
   Parameters.Add(new FixedValueParameter<BoolValue>(PruneOnlyZeroImpactNodesParameterName, "Specify whether or not only zero impact nodes should be pruned."));
   Parameters.Add(new FixedValueParameter<DoubleValue>(NodeImpactThresholdParameterName, "Specifies an impact value threshold below which nodes should be pruned."));
   Parameters.Add(new LookupParameter<DoubleLimit>(EstimationLimitsParameterName));
   Parameters.Add(new LookupParameter<ISymbolicDataAnalysisExpressionTreeInterpreter>(InterpreterParameterName));
   Parameters.Add(new LookupParameter<ISymbolicExpressionTree>(SymbolicExpressionTreeParameterName));
   Parameters.Add(new LookupParameter<DoubleValue>(QualityParameterName));
   Parameters.Add(new LookupParameter<BoolValue>(ApplyLinearScalingParameterName));
   Parameters.Add(new ValueParameter<ISymbolicDataAnalysisSolutionImpactValuesCalculator>(ImpactValuesCalculatorParameterName, impactValuesCalculator));
   #endregion
 }