Index: branches/ALPS/HeuristicLab.Algorithms.ALPS.SteadyState/3.3/AlpsSsGeneticAlgorithm.cs
===================================================================
--- branches/ALPS/HeuristicLab.Algorithms.ALPS.SteadyState/3.3/AlpsSsGeneticAlgorithm.cs	(revision 12120)
+++ branches/ALPS/HeuristicLab.Algorithms.ALPS.SteadyState/3.3/AlpsSsGeneticAlgorithm.cs	(revision 12136)
@@ -43,6 +43,6 @@
       get { return (IValueParameter<IntArray>)Parameters["PopulationSize"]; }
     }
-    private IValueParameter<IntValue> MaximumGenerationsParameter {
-      get { return (IValueParameter<IntValue>)Parameters["MaximumGenerations"]; }
+    private IValueParameter<IntValue> MaximumIterationsParameter {
+      get { return (IValueParameter<IntValue>)Parameters["MaximumIterations"]; }
     }
     public IConstrainedValueParameter<ISelector> SelectorParameter {
@@ -71,7 +71,7 @@
       set { PopulationSizeParameter.Value = value; }
     }
-    public IntValue MaximumGenerations {
-      get { return MaximumGenerationsParameter.Value; }
-      set { MaximumGenerationsParameter.Value = value; }
+    public IntValue MaximumIterations {
+      get { return MaximumIterationsParameter.Value; }
+      set { MaximumIterationsParameter.Value = value; }
     }
 
@@ -116,5 +116,5 @@
       : base() {
       Parameters.Add(new ValueParameter<IntArray>("PopulationSize", "The size of the population of solutions each layer.", new IntArray(new[] { 100 })));
-      Parameters.Add(new ValueParameter<IntValue>("MaximumGenerations", "The maximum number of generations that should be processed.", new IntValue(1000)));
+      Parameters.Add(new ValueParameter<IntValue>("MaximumIterations", "The maximum number of iterations that should be processed.", new IntValue(1000)));
       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."));
@@ -132,6 +132,8 @@
       var initializeAgeProcessor = new UniformSubScopesProcessor();
       var initializeAge = new VariableCreator() { Name = "Initialize Age" };
-      var initializeLocalEvaluatedSolutions = new SubScopesCounter() { Name = "Initialize LayerEvaluatedSolutions" };
+      var initializeLayerPopulationSize = new SubScopesCounter() { Name = "Init LayerPopulationCounter" };
+      var initializeLocalEvaluatedSolutions = new Assigner() { Name = "Initialize LayerEvaluatedSolutions" };
       var initializeGlobalEvaluatedSolutions = new DataReducer() { Name = "Initialize EvaluatedSolutions" };
+      var initializeCurrentPopulationSize = new Assigner() { Name = "CurrentPopulationSize = EvaluatedSolutions" };
       var resultsCollector = new ResultsCollector();
       var mainLoop = new AlpsSsGeneticAlgorithmMainLoop();
@@ -156,9 +158,14 @@
 
       initializeAgeProcessor.Operator = initializeAge;
-      initializeAgeProcessor.Successor = initializeLocalEvaluatedSolutions;
-
-      initializeAge.CollectedValues.Add(new ValueParameter<IntValue>("Age", new IntValue(0)));
-
-      initializeLocalEvaluatedSolutions.ValueParameter.ActualName = "LayerEvaluatedSolutions";
+      initializeAgeProcessor.Successor = initializeLayerPopulationSize;
+
+      initializeAge.CollectedValues.Add(new ValueParameter<IntValue>("Age", new IntValue(1)));
+
+      initializeLayerPopulationSize.ValueParameter.ActualName = "LayerPopulationSize";
+      initializeLayerPopulationSize.Successor = initializeLocalEvaluatedSolutions;
+
+      initializeLocalEvaluatedSolutions.LeftSideParameter.ActualName = "LayerEvaluatedSolutions";
+      initializeLocalEvaluatedSolutions.RightSideParameter.ActualName = "LayerPopulationSize";
+      initializeLocalEvaluatedSolutions.Successor = null;
 
       initializeGlobalEvaluatedSolutions.ReductionOperation.Value.Value = ReductionOperations.Sum;
@@ -166,7 +173,12 @@
       initializeGlobalEvaluatedSolutions.ParameterToReduce.ActualName = "LayerEvaluatedSolutions";
       initializeGlobalEvaluatedSolutions.TargetParameter.ActualName = "EvaluatedSolutions";
-      initializeGlobalEvaluatedSolutions.Successor = resultsCollector;
+      initializeGlobalEvaluatedSolutions.Successor = initializeCurrentPopulationSize;
+
+      initializeCurrentPopulationSize.LeftSideParameter.ActualName = "CurrentPoulationSize";
+      initializeCurrentPopulationSize.RightSideParameter.ActualName = "EvaluatedSolutions";
+      initializeCurrentPopulationSize.Successor = resultsCollector;
 
       resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));
+      resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Current PopulationSize", null, "CurrentPopulationSize"));
       resultsCollector.Successor = mainLoop;
 
@@ -252,7 +264,7 @@
       if (Problem != null) {
         foreach (var @operator in Problem.Operators.OfType<IIterationBasedOperator>()) {
-          @operator.IterationsParameter.ActualName = "Generations";
+          @operator.IterationsParameter.ActualName = "Iteration";
           @operator.IterationsParameter.Hidden = true;
-          @operator.MaximumIterationsParameter.ActualName = MaximumGenerationsParameter.Name;
+          @operator.MaximumIterationsParameter.ActualName = MaximumIterationsParameter.Name;
           @operator.MaximumIterationsParameter.Hidden = true;
         }
