Index: /trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs	(revision 3672)
+++ /trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs	(revision 3673)
@@ -438,9 +438,8 @@
     private void ParameterizeAnalyzers() {
       islandQualityAnalyzer.ResultsParameter.ActualName = "Results";
-      foreach (IScopeTreeLookupParameter param in ((IAnalyzer)islandQualityAnalyzer).Parameters.OfType<IScopeTreeLookupParameter>())
-          param.Depth = 1;
+      islandQualityAnalyzer.QualityParameter.Depth = 1;
       qualityAnalyzer.ResultsParameter.ActualName = "Results";
-      foreach (IScopeTreeLookupParameter param in ((IAnalyzer)qualityAnalyzer).Parameters.OfType<IScopeTreeLookupParameter>())
-        param.Depth = 2;
+      qualityAnalyzer.QualityParameter.Depth = 2;
+
       if (Problem != null) {
         islandQualityAnalyzer.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name;
Index: /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithm.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithm.cs	(revision 3672)
+++ /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithm.cs	(revision 3673)
@@ -247,5 +247,7 @@
     }
     private BestAverageWorstQualityAnalyzer islandQualityAnalyzer;
-    //private MultipopulationBestAverageWorstQualityAnalyzer qualityAnalyzer;
+    private BestAverageWorstQualityAnalyzer qualityAnalyzer;
+    private ValueAnalyzer islandSelectionPressureAnalyzer;
+    private ValueAnalyzer selectionPressureAnalyzer;
     #endregion
 
@@ -472,5 +474,7 @@
     private void InitializeAnalyzers() {
       islandQualityAnalyzer = new BestAverageWorstQualityAnalyzer();
-      //qualityAnalyzer = new MultipopulationBestAverageWorstQualityAnalyzer();
+      qualityAnalyzer = new BestAverageWorstQualityAnalyzer();
+      islandSelectionPressureAnalyzer = new ValueAnalyzer();
+      selectionPressureAnalyzer = new ValueAnalyzer();
       ParameterizeAnalyzers();
     }
@@ -516,9 +520,28 @@
     private void ParameterizeAnalyzers() {
       islandQualityAnalyzer.ResultsParameter.ActualName = "Results";
-      //qualityAnalyzer.ResultsParameter.ActualName = "Results";
+      islandQualityAnalyzer.QualityParameter.Depth = 1;
+      qualityAnalyzer.ResultsParameter.ActualName = "Results";
+      qualityAnalyzer.QualityParameter.Depth = 2;
+
+      islandSelectionPressureAnalyzer.ResultsParameter.ActualName = "Results";
+      islandSelectionPressureAnalyzer.Name = "SelectionPressure Analyzer";
+      islandSelectionPressureAnalyzer.ValueParameter.Depth = 0;
+      islandSelectionPressureAnalyzer.ValueParameter.ActualName = "SelectionPressure";
+      islandSelectionPressureAnalyzer.ValuesParameter.ActualName = "Selection Pressure History";
+
+      selectionPressureAnalyzer.ResultsParameter.ActualName = "Results";
+      selectionPressureAnalyzer.Name = "SelectionPressure Analyzer";
+      selectionPressureAnalyzer.ValueParameter.Depth = 1;
+      selectionPressureAnalyzer.ValueParameter.ActualName = "SelectionPressure";
+      selectionPressureAnalyzer.ValuesParameter.ActualName = "Selection Pressure History";
+
       if (Problem != null) {
         islandQualityAnalyzer.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name;
         islandQualityAnalyzer.QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName;
         islandQualityAnalyzer.BestKnownQualityParameter.ActualName = Problem.BestKnownQualityParameter.Name;
+
+        qualityAnalyzer.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name;
+        qualityAnalyzer.QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName;
+        qualityAnalyzer.BestKnownQualityParameter.ActualName = Problem.BestKnownQualityParameter.Name;
       }
     }
@@ -611,11 +634,13 @@
       Analyzer.Operators.Clear();
       IslandAnalyzer.Operators.Add(islandQualityAnalyzer);
-      //Analyzer.Operators.Add(qualityAnalyzer);
+      IslandAnalyzer.Operators.Add(islandSelectionPressureAnalyzer);
+      Analyzer.Operators.Add(qualityAnalyzer);
+      Analyzer.Operators.Add(selectionPressureAnalyzer);
       if (Problem != null) {
         foreach (IAnalyzer analyzer in Problem.Operators.OfType<IAnalyzer>().OrderBy(x => x.Name)) {
-          IslandAnalyzer.Operators.Add(analyzer);
+          foreach (IScopeTreeLookupParameter param in analyzer.Parameters.OfType<IScopeTreeLookupParameter>())
+            param.Depth = 2;
+          Analyzer.Operators.Add(analyzer);
         }
-        foreach (IAnalyzer analyzer in Problem.Operators.OfType<IAnalyzer>().OrderBy(x => x.Name))
-          Analyzer.Operators.Add(analyzer);
       }
     }
Index: /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithmMainLoop.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithmMainLoop.cs	(revision 3672)
+++ /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithmMainLoop.cs	(revision 3673)
@@ -233,13 +233,12 @@
       analyzer1.OperatorParameter.ActualName = AnalyzerParameter.Name;
 
+      resultsCollector1.CopyValue = new BoolValue(false);
       resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Migrations"));
       resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
-      resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));
       resultsCollector1.CollectedValues.Add(new ScopeTreeLookupParameter<ResultCollection>("IslandResults", "Result set for each island", "Results"));
       resultsCollector1.ResultsParameter.ActualName = ResultsParameter.Name;
 
-      resultsCollector2.Name = "Reference Island Results";
-      resultsCollector2.CopyValue = new BoolValue(false);
-      resultsCollector2.CollectedValues.Add(new ScopeTreeLookupParameter<ResultCollection>("IslandResults", "Result set for each island", "Results"));
+      resultsCollector2.CopyValue = new BoolValue(true);
+      resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));
       resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name;
 
@@ -353,6 +352,5 @@
       analyzer2.OperatorParameter.ActualName = AnalyzerParameter.Name;
 
-      resultsCollector3.CollectedValues.Add(new LookupParameter<IntValue>("Migrations"));
-      resultsCollector3.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
+      resultsCollector3.CopyValue = new BoolValue(true);
       resultsCollector3.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));
       resultsCollector3.ResultsParameter.ActualName = ResultsParameter.Name;
Index: /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithmMainLoop.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithmMainLoop.cs	(revision 3672)
+++ /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithmMainLoop.cs	(revision 3673)
@@ -151,5 +151,4 @@
       resultsCollector1.CopyValue = new BoolValue(false);
       resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
-      resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));
       resultsCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Curent Comparison Factor", null, "ComparisonFactor"));
       resultsCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Selection Pressure", null, "SelectionPressure"));
Index: /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASA.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASA.cs	(revision 3672)
+++ /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASA.cs	(revision 3673)
@@ -224,5 +224,7 @@
     }
     private BestAverageWorstQualityAnalyzer villageQualityAnalyzer;
-    //private MultipopulationBestAverageWorstQualityAnalyzer qualityAnalyzer;
+    private BestAverageWorstQualityAnalyzer qualityAnalyzer;
+    private ValueAnalyzer villageSelectionPressureAnalyzer;
+    private ValueAnalyzer selectionPressureAnalyzer;
     #endregion
 
@@ -430,5 +432,7 @@
     private void InitializeAnalyzers() {
       villageQualityAnalyzer = new BestAverageWorstQualityAnalyzer();
-      //qualityAnalyzer = new MultipopulationBestAverageWorstQualityAnalyzer();
+      qualityAnalyzer = new BestAverageWorstQualityAnalyzer();
+      villageSelectionPressureAnalyzer = new ValueAnalyzer();
+      selectionPressureAnalyzer = new ValueAnalyzer();
       ParameterizeAnalyzers();
     }
@@ -454,9 +458,28 @@
     private void ParameterizeAnalyzers() {
       villageQualityAnalyzer.ResultsParameter.ActualName = "Results";
-      //qualityAnalyzer.ResultsParameter.ActualName = "Results";
+      villageQualityAnalyzer.QualityParameter.Depth = 1;
+      qualityAnalyzer.ResultsParameter.ActualName = "Results";
+      qualityAnalyzer.QualityParameter.Depth = 2;
+
+      villageSelectionPressureAnalyzer.ResultsParameter.ActualName = "Results";
+      villageSelectionPressureAnalyzer.Name = "SelectionPressure Analyzer";
+      villageSelectionPressureAnalyzer.ValueParameter.Depth = 0;
+      villageSelectionPressureAnalyzer.ValueParameter.ActualName = "SelectionPressure";
+      villageSelectionPressureAnalyzer.ValuesParameter.ActualName = "Selection Pressure History";
+
+      selectionPressureAnalyzer.ResultsParameter.ActualName = "Results";
+      selectionPressureAnalyzer.Name = "SelectionPressure Analyzer";
+      selectionPressureAnalyzer.ValueParameter.Depth = 1;
+      selectionPressureAnalyzer.ValueParameter.ActualName = "SelectionPressure";
+      selectionPressureAnalyzer.ValuesParameter.ActualName = "Selection Pressure History";
+
       if (Problem != null) {
         villageQualityAnalyzer.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name;
         villageQualityAnalyzer.QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName;
         villageQualityAnalyzer.BestKnownQualityParameter.ActualName = Problem.BestKnownQualityParameter.Name;
+
+        qualityAnalyzer.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name;
+        qualityAnalyzer.QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName;
+        qualityAnalyzer.BestKnownQualityParameter.ActualName = Problem.BestKnownQualityParameter.Name;
       }
     }
@@ -521,11 +544,13 @@
       Analyzer.Operators.Clear();
       VillageAnalyzer.Operators.Add(villageQualityAnalyzer);
-      //Analyzer.Operators.Add(qualityAnalyzer);
+      VillageAnalyzer.Operators.Add(villageSelectionPressureAnalyzer);
+      Analyzer.Operators.Add(qualityAnalyzer);
+      Analyzer.Operators.Add(selectionPressureAnalyzer);
       if (Problem != null) {
         foreach (IAnalyzer analyzer in Problem.Operators.OfType<IAnalyzer>().OrderBy(x => x.Name)) {
-          VillageAnalyzer.Operators.Add(analyzer);
+          foreach (IScopeTreeLookupParameter param in analyzer.Parameters.OfType<IScopeTreeLookupParameter>())
+            param.Depth = 2;
+          Analyzer.Operators.Add(analyzer);
         }
-        foreach (IAnalyzer analyzer in Problem.Operators.OfType<IAnalyzer>().OrderBy(x => x.Name))
-          Analyzer.Operators.Add(analyzer);
       }
     }
Index: /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASAMainLoop.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASAMainLoop.cs	(revision 3672)
+++ /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASAMainLoop.cs	(revision 3673)
@@ -225,14 +225,14 @@
       analyzer1.OperatorParameter.ActualName = AnalyzerParameter.Name;
 
+      resultsCollector1.CopyValue = new BoolValue(false);
       resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
-      resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));
       resultsCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("ComparisonFactor", null, "ComparisonFactor"));
       resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Terminated Villages", null, "TerminatedVillages"));
       resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Total Active Villages", null, "VillageCount"));
+      resultsCollector1.CollectedValues.Add(new ScopeTreeLookupParameter<ResultCollection>("VillageResults", "Result set for each village", "Results"));
       resultsCollector1.ResultsParameter.ActualName = ResultsParameter.Name;
 
-      resultsCollector2.Name = "Reference Village Results";
-      resultsCollector2.CopyValue = new BoolValue(false);
-      resultsCollector2.CollectedValues.Add(new ScopeTreeLookupParameter<ResultCollection>("VillageResults", "Result set for each village", "Results"));
+      resultsCollector2.CopyValue = new BoolValue(true);
+      resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));
       resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name;
 
@@ -362,10 +362,7 @@
       analyzer2.OperatorParameter.ActualName = AnalyzerParameter.Name;
 
-      resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
-      resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));
-      resultsCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("ComparisonFactor", null, "ComparisonFactor"));
-      resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Terminated Villages", null, "TerminatedVillages"));
-      resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Total Active Villages", null, "VillageCount"));
-      resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name;
+      resultsCollector3.CopyValue = new BoolValue(true);
+      resultsCollector3.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));
+      resultsCollector3.ResultsParameter.ActualName = ResultsParameter.Name;
 
       terminationCondition.ConditionParameter.ActualName = "TerminateSASEGASA";
