Index: branches/RAPGA/HeuristicLab.Algorithms.RAPGA/3.3/RAPGA.cs
===================================================================
--- branches/RAPGA/HeuristicLab.Algorithms.RAPGA/3.3/RAPGA.cs	(revision 8359)
+++ branches/RAPGA/HeuristicLab.Algorithms.RAPGA/3.3/RAPGA.cs	(revision 8377)
@@ -76,4 +76,7 @@
       get { return (IValueParameter<IntValue>)Parameters["Effort"]; }
     }
+    private IValueParameter<IntValue> BatchSizeParameter {
+      get { return (IValueParameter<IntValue>)Parameters["BatchSize"]; }
+    }
     public IConstrainedValueParameter<ISelector> SelectorParameter {
       get { return (IConstrainedValueParameter<ISelector>)Parameters["Selector"]; }
@@ -131,4 +134,8 @@
       set { EffortParameter.Value = value; }
     }
+    public IntValue BatchSize {
+      get { return BatchSizeParameter.Value; }
+      set { BatchSizeParameter.Value = value; }
+    }
     public ISelector Selector {
       get { return SelectorParameter.Value; }
@@ -174,4 +181,6 @@
     [Storable]
     private BestAverageWorstQualityAnalyzer qualityAnalyzer;
+    [Storable]
+    private PopulationSizeAnalyzer populationSizeAnalyzer;
     #endregion
 
@@ -183,4 +192,5 @@
       : base(original, cloner) {
       qualityAnalyzer = cloner.Clone(original.qualityAnalyzer);
+      populationSizeAnalyzer = cloner.Clone(original.populationSizeAnalyzer);
       Initialize();
     }
@@ -191,7 +201,8 @@
       Parameters.Add(new ValueParameter<IntValue>("PopulationSize", "The size of the population of solutions.", new IntValue(100)));
       Parameters.Add(new ValueParameter<IntValue>("MinimumPopulationSize", "The minimum size of the population of solutions.", new IntValue(2)));
-      Parameters.Add(new ValueParameter<IntValue>("MaximumPopulationSize", "The maximum size of the population of solutions.", new IntValue(299)));
+      Parameters.Add(new ValueParameter<IntValue>("MaximumPopulationSize", "The maximum size of the population of solutions.", new IntValue(300)));
       Parameters.Add(new ValueParameter<DoubleValue>("ComparisonFactor", "The comparison factor.", new DoubleValue(0.0)));
-      Parameters.Add(new ValueParameter<IntValue>("Effort", "The maximum number of offspring created in each generation.", new IntValue(400)));
+      Parameters.Add(new ValueParameter<IntValue>("Effort", "The maximum number of offspring created in each generation.", new IntValue(1000)));
+      Parameters.Add(new ValueParameter<IntValue>("BatchSize", "The number of children that should be created during one iteration of the offspring creation process.", new IntValue(10)));
       Parameters.Add(new ConstrainedValueParameter<ISelector>("Selector", "The operator used to select solutions for reproduction."));
       Parameters.Add(new ConstrainedValueParameter<ICrossover>("Crossover", "The operator used to cross solutions."));
@@ -247,4 +258,5 @@
 
       qualityAnalyzer = new BestAverageWorstQualityAnalyzer();
+      populationSizeAnalyzer = new PopulationSizeAnalyzer();
       ParameterizeAnalyzers();
       UpdateAnalyzers();
@@ -302,9 +314,9 @@
       base.Problem_OperatorsChanged(sender, e);
     }
-    void EffortParameter_ValueChanged(object sender, EventArgs e) {
-      Effort.ValueChanged +=new EventHandler(Effort_ValueChanged);
-      ParameterizeSelectors();
-    }
-    void Effort_ValueChanged(object sender, EventArgs e) {
+    void BatchSizeParameter_ValueChanged(object sender, EventArgs e) {
+      BatchSize.ValueChanged += new EventHandler(BatchSize_ValueChanged);
+      ParameterizeSelectors();
+    }
+    void BatchSize_ValueChanged(object sender, EventArgs e) {
       ParameterizeSelectors();
     }
@@ -337,6 +349,6 @@
       ElitesParameter.ValueChanged += new EventHandler(ElitesParameter_ValueChanged);
       Elites.ValueChanged += new EventHandler(Elites_ValueChanged);
-      EffortParameter.ValueChanged += new EventHandler(EffortParameter_ValueChanged);
-      Effort.ValueChanged += new EventHandler(Effort_ValueChanged);
+      BatchSizeParameter.ValueChanged += new EventHandler(BatchSizeParameter_ValueChanged);
+      BatchSize.ValueChanged += new EventHandler(BatchSize_ValueChanged);
       if (Problem != null) {
         Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
@@ -365,5 +377,5 @@
       foreach (ISelector selector in SelectorParameter.ValidValues) {
         selector.CopySelected = new BoolValue(true);
-        selector.NumberOfSelectedSubScopesParameter.Value = new IntValue(2 * EffortParameter.Value.Value);
+        selector.NumberOfSelectedSubScopesParameter.Value = new IntValue(2 * BatchSize.Value);
         selector.NumberOfSelectedSubScopesParameter.Hidden = true;
         ParameterizeStochasticOperator(selector);
@@ -381,4 +393,6 @@
       qualityAnalyzer.ResultsParameter.ActualName = "Results";
       qualityAnalyzer.ResultsParameter.Hidden = true;
+      populationSizeAnalyzer.ResultsParameter.ActualName = "Results";
+      populationSizeAnalyzer.ResultsParameter.Hidden = true;
       if (Problem != null) {
         qualityAnalyzer.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name;
@@ -437,4 +451,5 @@
       }
       Analyzer.Operators.Add(qualityAnalyzer, qualityAnalyzer.EnabledByDefault);
+      Analyzer.Operators.Add(populationSizeAnalyzer, populationSizeAnalyzer.EnabledByDefault);
     }
     private void UpdateSimilarityCalculators() {
