Index: branches/LearningClassifierSystems/HeuristicLab.Algorithms.LearningClassifierSystems/3.3/LCSAdaptedGeneticAlgorithm.cs
===================================================================
--- branches/LearningClassifierSystems/HeuristicLab.Algorithms.LearningClassifierSystems/3.3/LCSAdaptedGeneticAlgorithm.cs	(revision 9090)
+++ branches/LearningClassifierSystems/HeuristicLab.Algorithms.LearningClassifierSystems/3.3/LCSAdaptedGeneticAlgorithm.cs	(revision 9105)
@@ -52,4 +52,7 @@
       get { return (ValueLookupParameter<IOperator>)Parameters["Crossover"]; }
     }
+    public ValueLookupParameter<IOperator> AfterCrossoverParameter {
+      get { return (ValueLookupParameter<IOperator>)Parameters["AfterCrossover"]; }
+    }
     public ValueLookupParameter<PercentValue> MutationProbabilityParameter {
       get { return (ValueLookupParameter<PercentValue>)Parameters["MutationProbability"]; }
@@ -102,4 +105,5 @@
       Parameters.Add(new ValueLookupParameter<IOperator>("Selector", "The operator used to select solutions for reproduction."));
       Parameters.Add(new ValueLookupParameter<IOperator>("Crossover", "The operator used to cross solutions."));
+      Parameters.Add(new ValueLookupParameter<IOperator>("AfterCrossover", "The operator executed after crossing the solutions."));
       Parameters.Add(new ValueLookupParameter<PercentValue>("MutationProbability", "The probability that the mutation operator is applied on a solution."));
       Parameters.Add(new ValueLookupParameter<IOperator>("Mutator", "The operator used to mutate solutions."));
@@ -121,12 +125,9 @@
       UniformSubScopesProcessor uniformSubScopesProcessor1 = new UniformSubScopesProcessor();
       Placeholder crossover = new Placeholder();
-      DataReducer dataReducer = new DataReducer();
+      Placeholder afterCrossover = new Placeholder();
       StochasticBranch stochasticBranch = new StochasticBranch();
       Placeholder mutator = new Placeholder();
       SubScopesRemover subScopesRemover = new SubScopesRemover();
       SubScopesCounter subScopesCounter = new SubScopesCounter();
-      SubScopesProcessor subScopesProcessor2 = new SubScopesProcessor();
-      BestSelector bestSelector = new BestSelector();
-      RightReducer rightReducer = new RightReducer();
       MergingReducer mergingReducer = new MergingReducer();
       IntCounter intCounter = new IntCounter();
@@ -151,9 +152,6 @@
       crossover.OperatorParameter.ActualName = "Crossover";
 
-      dataReducer.Name = "Average Fitness of Parents";
-      dataReducer.ParameterToReduce.ActualName = "Fitness";
-      dataReducer.ReductionOperation.Value = new ReductionOperation(ReductionOperations.Avg);
-      dataReducer.TargetParameter.ActualName = "Fitness";
-      dataReducer.TargetOperation.Value = new ReductionOperation(ReductionOperations.Assign);
+      afterCrossover.Name = "AfterCrossover";
+      afterCrossover.OperatorParameter.ActualName = "AfterCrossover";
 
       stochasticBranch.ProbabilityParameter.ActualName = "MutationProbability";
@@ -167,9 +165,4 @@
       subScopesCounter.Name = "Increment EvaluatedSolutions";
       subScopesCounter.ValueParameter.ActualName = EvaluatedSolutionsParameter.Name;
-
-      bestSelector.CopySelected = new BoolValue(false);
-      bestSelector.MaximizationParameter.ActualName = "Maximization";
-      bestSelector.NumberOfSelectedSubScopesParameter.ActualName = "N";
-      bestSelector.QualityParameter.ActualName = "Fitness";
 
       intCounter.Increment = new IntValue(1);
@@ -195,10 +188,10 @@
       subScopesProcessor1.Operators.Add(new EmptyOperator());
       subScopesProcessor1.Operators.Add(childrenCreator);
-      subScopesProcessor1.Successor = subScopesProcessor2;
+      subScopesProcessor1.Successor = mergingReducer;
       childrenCreator.Successor = uniformSubScopesProcessor1;
       uniformSubScopesProcessor1.Operator = crossover;
       uniformSubScopesProcessor1.Successor = subScopesCounter;
-      crossover.Successor = dataReducer;
-      dataReducer.Successor = stochasticBranch;
+      crossover.Successor = afterCrossover;
+      afterCrossover.Successor = stochasticBranch;
       stochasticBranch.FirstBranch = mutator;
       stochasticBranch.SecondBranch = null;
@@ -207,9 +200,4 @@
       subScopesRemover.Successor = null;
       subScopesCounter.Successor = null;
-      subScopesProcessor2.Operators.Add(bestSelector);
-      subScopesProcessor2.Operators.Add(new EmptyOperator());
-      subScopesProcessor2.Successor = mergingReducer;
-      bestSelector.Successor = rightReducer;
-      rightReducer.Successor = null;
       mergingReducer.Successor = intCounter;
       intCounter.Successor = comparator;
Index: branches/LearningClassifierSystems/HeuristicLab.Algorithms.LearningClassifierSystems/3.3/LearningClassifierSystemMainLoop.cs
===================================================================
--- branches/LearningClassifierSystems/HeuristicLab.Algorithms.LearningClassifierSystems/3.3/LearningClassifierSystemMainLoop.cs	(revision 9090)
+++ branches/LearningClassifierSystems/HeuristicLab.Algorithms.LearningClassifierSystems/3.3/LearningClassifierSystemMainLoop.cs	(revision 9105)
@@ -50,4 +50,7 @@
       get { return (IConstrainedValueParameter<IManipulator>)Parameters["Mutator"]; }
     }
+    public IConstrainedValueParameter<IOperator> AfterCrossoverParameter {
+      get { return (IConstrainedValueParameter<IOperator>)Parameters["AfterCrossover"]; }
+    }
     #endregion
 
@@ -57,9 +60,12 @@
     private PredictionArrayCalculator predictionArrayCalculator;
     private ActionSelector actionSelector;
+    private DoDeletionBeforeCoveringOperator doDeletionBeforeCovering;
     private CoveringOperator covering;
+    private ConditionalSelector subsumptionSelector;
 
     private Placeholder evaluator;
     private Placeholder actionExecuter;
     private Placeholder classifierFetcher;
+    private Placeholder actionSetSubsumption;
     #endregion
 
@@ -85,4 +91,6 @@
       test.IntegerVectorParameter.ActualName = "CombinedIntegerVector";
       Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions.", new ItemSet<IManipulator>() { new UniformOnePositionManipulator() }, test));
+      XCSAfterCrossoverOperator afterCrossover = new XCSAfterCrossoverOperator();
+      Parameters.Add(new ConstrainedValueParameter<IOperator>("AfterCrossover", "The operator used to select solutions for reproduction.", new ItemSet<IOperator>() { new XCSAfterCrossoverOperator() }, afterCrossover));
       #endregion
 
@@ -91,4 +99,5 @@
       ConditionalBranch initialPopulationConditionalBranch = new ConditionalBranch();
       initialSolutionsCreator = new SolutionsCreator();
+      Assigner initialPopulationSizeAssigner = new Assigner();
       IntCounter iterationCounter = new IntCounter();
       UniformSubScopesProcessor matchCondtionSubScopesProcessor = new UniformSubScopesProcessor();
@@ -102,7 +111,19 @@
       SubScopesProcessor matchSetSubScopesProcessor = new SubScopesProcessor();
       CountNumberOfUniqueActions countNumberOfUniqueActions = new CountNumberOfUniqueActions();
+      doDeletionBeforeCovering = new DoDeletionBeforeCoveringOperator();
+      ConditionalBranch doDeletionBeforeCoveringConditionalBranch = new ConditionalBranch();
+      MergingReducer matchSetMergingReducerForDeletion = new MergingReducer();
+      SubScopeVariableCopier subscopeVariableCopier = new SubScopeVariableCopier();
+      XCSDeletionOperator deletionOperator = new XCSDeletionOperator();
+      ConditionalSelector deletionSelector = new ConditionalSelector();
+      LeftReducer leftReducerAfterDeletionSelection = new LeftReducer();
+      UniformSubScopesProcessor matchConditionAfterDeletionSubScopesProcessor = new UniformSubScopesProcessor();
+      ConditionalSelector conditionMatchSelectorAfterDeletion = new ConditionalSelector();
+      SubScopesProcessor matchSetAfterDeletionSubScopesProcessor = new SubScopesProcessor();
+      CountNumberOfUniqueActions countNumberOfUniqueActionsAfterDeletion = new CountNumberOfUniqueActions();
+      SubScopesProcessor coveringAfterDeletionSubScopesProcessor = new SubScopesProcessor();
       covering = new CoveringOperator();
-      MergingReducer mergingReducer = new MergingReducer();
-      MergingReducer mergingReducerWithSuccessor = new MergingReducer();
+      MergingReducer actionSetMergingReducer = new MergingReducer();
+      MergingReducer matchSetMergingReducer = new MergingReducer();
       evaluator = new Placeholder();
       SubScopesProcessor actionSetSubScopesProcessor = new SubScopesProcessor();
@@ -112,22 +133,37 @@
       SumAccuracy sumAccuracy = new SumAccuracy();
       UniformSubScopesProcessor updateParametersSubScopesProcessor = new UniformSubScopesProcessor();
+      ConditionalBranch actionSetSubsumptionBranch = new ConditionalBranch();
+      subsumptionSelector = new ConditionalSelector();
+      LeftReducer leftReducer = new LeftReducer();
+      XCSCheckIfGAShouldBeApplied checkIfGAShouldRun = new XCSCheckIfGAShouldBeApplied();
+      ConditionalBranch runGAConditionalBranch = new ConditionalBranch();
+      UniformSubScopesProcessor timestampAssignerSubscopeProcessor = new UniformSubScopesProcessor();
+      Assigner timestampAssigner = new Assigner();
       LCSAdaptedGeneticAlgorithm adaptedGeneticAlgorithmMainLoop = new LCSAdaptedGeneticAlgorithm();
+      IntCounter currentPopulationSizeCounter = new IntCounter();
+      CalculateNumberOfDeletionsOperator calculateNumberOfDeletions = new CalculateNumberOfDeletionsOperator();
+      XCSDeletionOperator deletionOperatorAfterGA = new XCSDeletionOperator();
+      ConditionalSelector deletionSelectorAfterGA = new ConditionalSelector();
+      LeftReducer leftReducerAfterGA = new LeftReducer();
 
       classifierFetcher = new Placeholder();
       actionExecuter = new Placeholder();
+      actionSetSubsumption = new Placeholder();
 
       variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("ZeroIntValue", new IntValue(0)));
       variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("OneIntValue", new IntValue(1)));
       variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Iteration", new IntValue(0)));
+      variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("CurrentPopulationSize", new IntValue(0)));
 
       initialPopulationConditionalBranch.ConditionParameter.ActualName = "CreateInitialPopulation";
 
       initialSolutionsCreator.NumberOfSolutionsParameter.ActualName = "N";
+
+      initialPopulationSizeAssigner.LeftSideParameter.ActualName = "CurrentPopulationSize";
+      initialPopulationSizeAssigner.RightSideParameter.ActualName = "N";
 
       iterationCounter.ValueParameter.ActualName = "Iteration";
       iterationCounter.IncrementParameter.ActualName = "OneIntValue";
 
-      matchCondtionSubScopesProcessor.Operator = matchConditionOperator;
-
       matchConditionOperator.MatchParameter.ActualName = "CombinedIntegerVector";
 
@@ -135,9 +171,35 @@
       conditionMatchSelector.ConditionParameter.ActualName = "MatchCondition";
 
+      conditionMatchSelectorAfterDeletion.CopySelected = new BoolValue(false);
+      conditionMatchSelectorAfterDeletion.ConditionParameter.ActualName = "MatchCondition";
+
       countNumberOfUniqueActions.ClassifiersParameter.ActualName = "CombinedIntegerVector";
+
+      countNumberOfUniqueActionsAfterDeletion.ClassifiersParameter.ActualName = "CombinedIntegerVector";
+
+      subscopeVariableCopier.SubScopeIndexParameter.Value = new IntValue(1);
+
+      doDeletionBeforeCovering.CurrentPopulationSizeParameter.ActualName = "CurrentPopulationSize";
+      doDeletionBeforeCovering.NumberOfUniqueActionsParameter.ActualName = countNumberOfUniqueActions.NumberOfUniqueActionsParameter.ActualName;
+      doDeletionBeforeCovering.PopulationSizeParameter.ActualName = "N";
+
+      doDeletionBeforeCoveringConditionalBranch.ConditionParameter.ActualName = doDeletionBeforeCovering.DoDeletionParameter.ActualName;
+
+      deletionOperator.NumberToDeleteParameter.ActualName = doDeletionBeforeCovering.NumberToDeleteParameter.ActualName;
+      deletionOperator.AverageActionSetSizesParameter.ActualName = "AverageActionSetSize";
+      deletionOperator.FitnessesParameter.ActualName = "Fitness";
+      deletionOperator.NumerositiesParameter.ActualName = "Numerosity";
+      deletionOperator.ExperiencesParameter.ActualName = "Experience";
+      deletionOperator.ThetaDeletionParameter.ActualName = "ThetaDeletion";
+      deletionOperator.DeltaParameter.ActualName = "Delta";
+      deletionOperator.RandomParameter.ActualName = "Random";
+
+      deletionSelector.ConditionParameter.ActualName = deletionOperator.HasToBeDeletedVariableName;
+      deletionSelector.CopySelected = new BoolValue(false);
 
       covering.ActionsInMatchSetParameter.ActualName = countNumberOfUniqueActions.UniqueActionsParameter.ActualName;
       covering.ParallelParameter.Value.Value = true;
       covering.RandomParameter.ActualName = "Random";
+      covering.CurrentPopulationSizeParameter.ActualName = "CurrentPopulationSize";
 
       matchActionSubScopesProcessor.Operator = matchActionOperator;
@@ -155,6 +217,10 @@
       actionMatchSelector.ConditionParameter.ActualName = "MatchAction";
 
+      actionSetSubsumptionBranch.ConditionParameter.ActualName = "DoActionSetSubsumption";
+
+      subsumptionSelector.CopySelected = new BoolValue(false);
+
       SelectorParameter.Value.CopySelected = new BoolValue(true);
-      SelectorParameter.Value.NumberOfSelectedSubScopesParameter.Value = new IntValue(200);
+      SelectorParameter.Value.NumberOfSelectedSubScopesParameter.Value = new IntValue(4);
 
       evaluator.Name = "Evaluator";
@@ -176,4 +242,29 @@
       sumAccuracy.AccuracyParameter.ActualName = calculateAccuracy.AccuracyParameter.ActualName;
       sumAccuracy.NumerosityParameter.ActualName = "Numerosity";
+
+      //BEGIN parameters have to be set differently
+      checkIfGAShouldRun.TimeStampsParameter.ActualName = "Timestamp";
+      checkIfGAShouldRun.NumerositiesParameter.ActualName = "Numerosity";
+      checkIfGAShouldRun.ThetaGAParameter.ActualName = "ThetaGA";
+      //END
+      checkIfGAShouldRun.IterationParameter.ActualName = iterationCounter.ValueParameter.ActualName;
+
+      runGAConditionalBranch.ConditionParameter.ActualName = checkIfGAShouldRun.RunGAParameter.ActualName;
+
+      timestampAssigner.LeftSideParameter.ActualName = "Timestamp";
+      timestampAssigner.RightSideParameter.ActualName = iterationCounter.ValueParameter.ActualName;
+
+      afterCrossover.NumerosityParameter.ActualName = "Numerosity";
+      afterCrossover.ExperienceParameter.ActualName = "Experience";
+      afterCrossover.TimestampParameter.ActualName = "Timestamp";
+      afterCrossover.CurrentIterationParameter.ActualName = "Iteration";
+      afterCrossover.FitnessParameter.ActualName = "Fitness";
+      afterCrossover.AverageActionSetSizeParameter.ActualName = "AverageActionSetSize";
+      afterCrossover.PredictionParameter.ActualName = "Prediction";
+      afterCrossover.ErrorParameter.ActualName = "Error";
+      afterCrossover.ParentFitnessParameter.ActualName = "Fitness";
+      afterCrossover.ParentErrorParameter.ActualName = "Error";
+      afterCrossover.ParentPredictionParameter.ActualName = "Prediction";
+      afterCrossover.ParentAverageActionSetSizeParameter.ActualName = "AverageActionSetSize";
 
       adaptedGeneticAlgorithmMainLoop.SelectorParameter.ActualName = SelectorParameter.Name;
@@ -183,7 +274,25 @@
       adaptedGeneticAlgorithmMainLoop.MaximumGenerationsParameter.ActualName = "ZeroIntValue";
       adaptedGeneticAlgorithmMainLoop.QualityParameter.ActualName = "Fitness";
-      //needed?
       adaptedGeneticAlgorithmMainLoop.MutationProbabilityParameter.Value = new PercentValue(10);
       adaptedGeneticAlgorithmMainLoop.MaximizationParameter.Value = new BoolValue(true);
+      adaptedGeneticAlgorithmMainLoop.AfterCrossoverParameter.ActualName = AfterCrossoverParameter.Name;
+
+      currentPopulationSizeCounter.ValueParameter.ActualName = "CurrentPopulationSize";
+      currentPopulationSizeCounter.Increment = new IntValue(2);
+
+      calculateNumberOfDeletions.CurrentPopulationSizeParameter.ActualName = "CurrentPopulationSize";
+      calculateNumberOfDeletions.PopulationSizeParameter.ActualName = "N";
+
+      deletionOperatorAfterGA.NumberToDeleteParameter.ActualName = calculateNumberOfDeletions.NumberOfDeletionsParameter.ActualName;
+      deletionOperatorAfterGA.AverageActionSetSizesParameter.ActualName = "AverageActionSetSize";
+      deletionOperatorAfterGA.FitnessesParameter.ActualName = "Fitness";
+      deletionOperatorAfterGA.NumerositiesParameter.ActualName = "Numerosity";
+      deletionOperatorAfterGA.ExperiencesParameter.ActualName = "Experience";
+      deletionOperatorAfterGA.ThetaDeletionParameter.ActualName = "ThetaDeletion";
+      deletionOperatorAfterGA.DeltaParameter.ActualName = "Delta";
+      deletionOperatorAfterGA.RandomParameter.ActualName = "Random";
+
+      deletionSelectorAfterGA.ConditionParameter.ActualName = deletionOperatorAfterGA.HasToBeDeletedVariableName;
+      deletionSelectorAfterGA.CopySelected = new BoolValue(false);
       #endregion
 
@@ -193,16 +302,33 @@
       variableCreator.Successor = initialPopulationConditionalBranch;
       initialPopulationConditionalBranch.TrueBranch = initialSolutionsCreator;
+      initialSolutionsCreator.Successor = initialPopulationSizeAssigner;
       initialPopulationConditionalBranch.FalseBranch = new EmptyOperator();
       initialPopulationConditionalBranch.Successor = classifierFetcher;
       classifierFetcher.Successor = matchCondtionSubScopesProcessor;
+      matchCondtionSubScopesProcessor.Operator = matchConditionOperator;
       matchCondtionSubScopesProcessor.Successor = conditionMatchSelector;
-      //variableCreator.Successor = adaptedGeneticAlgorithmMainLoop;
-      //adaptedGeneticAlgorithmMainLoop.Successor = conditionMatchSelector;
-
       conditionMatchSelector.Successor = matchSetSubScopesProcessor;
       matchSetSubScopesProcessor.Operators.Add(new EmptyOperator());
       matchSetSubScopesProcessor.Operators.Add(countNumberOfUniqueActions);
-      matchSetSubScopesProcessor.Successor = mergingReducerWithSuccessor;
-      countNumberOfUniqueActions.Successor = covering;
+      matchSetSubScopesProcessor.Successor = subscopeVariableCopier;
+      subscopeVariableCopier.Successor = doDeletionBeforeCovering;
+      doDeletionBeforeCovering.Successor = doDeletionBeforeCoveringConditionalBranch;
+      doDeletionBeforeCoveringConditionalBranch.TrueBranch = matchSetMergingReducerForDeletion;
+      matchSetMergingReducerForDeletion.Successor = deletionOperator;
+      deletionOperator.Successor = deletionSelector;
+      deletionSelector.Successor = leftReducerAfterDeletionSelection;
+      leftReducerAfterDeletionSelection.Successor = matchConditionAfterDeletionSubScopesProcessor;
+      doDeletionBeforeCoveringConditionalBranch.FalseBranch = coveringAfterDeletionSubScopesProcessor;
+      coveringAfterDeletionSubScopesProcessor.Operators.Add(new EmptyOperator());
+      coveringAfterDeletionSubScopesProcessor.Operators.Add(covering);
+      coveringAfterDeletionSubScopesProcessor.Successor = matchSetMergingReducer;
+      matchConditionAfterDeletionSubScopesProcessor.Operator = matchConditionOperator;
+      matchConditionAfterDeletionSubScopesProcessor.Successor = conditionMatchSelectorAfterDeletion;
+      conditionMatchSelectorAfterDeletion.Successor = matchSetAfterDeletionSubScopesProcessor;
+      matchSetAfterDeletionSubScopesProcessor.Operators.Add(new EmptyOperator());
+      matchSetAfterDeletionSubScopesProcessor.Operators.Add(countNumberOfUniqueActionsAfterDeletion);
+      matchSetAfterDeletionSubScopesProcessor.Successor = matchSetMergingReducer;
+      countNumberOfUniqueActionsAfterDeletion.Successor = covering;
+
       covering.Successor = predictionArrayCalculator;
       predictionArrayCalculator.Successor = actionSelector;
@@ -218,10 +344,25 @@
       sumAccuracy.Successor = updateParametersSubScopesProcessor;
       updateParametersSubScopesProcessor.Operator = evaluator;
-
-      actionSetSubScopesProcessor.Successor = mergingReducer;
-
-      mergingReducerWithSuccessor.Successor = iterationCounter;
+      updateParametersSubScopesProcessor.Successor = actionSetSubsumptionBranch;
+      actionSetSubsumptionBranch.TrueBranch = actionSetSubsumption;
+      actionSetSubsumption.Successor = subsumptionSelector;
+      subsumptionSelector.Successor = leftReducer;
+      actionSetSubsumptionBranch.FalseBranch = new EmptyOperator();
+      actionSetSubsumptionBranch.Successor = checkIfGAShouldRun;
+      checkIfGAShouldRun.Successor = runGAConditionalBranch;
+      runGAConditionalBranch.TrueBranch = timestampAssignerSubscopeProcessor;
+      runGAConditionalBranch.FalseBranch = new EmptyOperator();
+      timestampAssignerSubscopeProcessor.Operator = timestampAssigner;
+      timestampAssignerSubscopeProcessor.Successor = adaptedGeneticAlgorithmMainLoop;
+      adaptedGeneticAlgorithmMainLoop.Successor = currentPopulationSizeCounter;
+
+      actionSetSubScopesProcessor.Successor = actionSetMergingReducer;
+
+      matchSetMergingReducer.Successor = calculateNumberOfDeletions;
+      calculateNumberOfDeletions.Successor = deletionOperatorAfterGA;
+      deletionOperatorAfterGA.Successor = deletionSelectorAfterGA;
+      deletionSelectorAfterGA.Successor = leftReducerAfterGA;
+      leftReducerAfterGA.Successor = iterationCounter;
       iterationCounter.Successor = classifierFetcher;
-      //mergingReducer.Successor = adaptedGeneticAlgorithmMainLoop;
       #endregion
     }
@@ -249,5 +390,17 @@
       actionExecuter.OperatorParameter.ActualName = problem.ActionExecuterParameter.Name;
 
+      problem.ActionSetSubsumptionOperator.ThetaSubsumptionParameter.ActualName = "ThetaSubsumption";
+      problem.ActionSetSubsumptionOperator.ErrorsParameter.ActualName = "Error";
+      problem.ActionSetSubsumptionOperator.ErrorZeroParameter.ActualName = "ErrorZero";
+      problem.ActionSetSubsumptionOperator.ExperiencesParameter.ActualName = "Experience";
+      problem.ActionSetSubsumptionOperator.NumerositiesParameter.ActualName = "Numerosity";
+
+      subsumptionSelector.ConditionParameter.ActualName = problem.ActionSetSubsumptionOperator.HasBeenSubsumedParameterName;
+
+      actionSetSubsumption.OperatorParameter.ActualName = problem.ActionSetSubsumptionOperatorParameter.Name;
+
       matchConditionOperator.TargetMatchParameter.ActualName = problem.ClassifierFetcher.CurrentClassifierToMatchParameter.ActualName;
+
+      doDeletionBeforeCovering.MinimalNumberOfUniqueActionsParameter.ActualName = problem.ThetaMinimalNumberOfActionsParameter.Name;
 
       covering.SolutionCreatorParameter.ActualName = problem.CoveringSolutionCreatorParameter.Name;
