Index: /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithm.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithm.cs	(revision 3697)
+++ /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithm.cs	(revision 3698)
@@ -259,5 +259,5 @@
       Parameters.Add(new ConstrainedValueParameter<IMigrator>("Migrator", "The migration strategy."));
       Parameters.Add(new ConstrainedValueParameter<ISelector>("EmigrantsSelector", "Selects the individuals that will be migrated."));
-      Parameters.Add(new ConstrainedValueParameter<IReplacer>("ImmigrationReplacer", "Selects the population from the unification of the original population and the immigrants."));
+      Parameters.Add(new ConstrainedValueParameter<IReplacer>("ImmigrationReplacer", "Replaces part of the original population with the immigrants."));
       Parameters.Add(new ValueParameter<IntValue>("PopulationSize", "The size of the population of solutions of each island.", new IntValue(100)));
       Parameters.Add(new ValueParameter<IntValue>("MaximumGenerations", "The maximum number of generations that should be processed.", new IntValue(100)));
@@ -318,7 +318,5 @@
       mainLoop.SuccessRatioParameter.ActualName = SuccessRatioParameter.Name;
       mainLoop.ComparisonFactorParameter.ActualName = "ComparisonFactor";
-      mainLoop.ComparisonFactorLowerBoundParameter.ActualName = ComparisonFactorLowerBoundParameter.Name;
       mainLoop.ComparisonFactorModifierParameter.ActualName = ComparisonFactorModifierParameter.Name;
-      mainLoop.ComparisonFactorUpperBoundParameter.ActualName = ComparisonFactorUpperBoundParameter.Name;
       mainLoop.MaximumSelectionPressureParameter.ActualName = MaximumSelectionPressureParameter.Name;
       mainLoop.OffspringSelectionBeforeMutationParameter.ActualName = OffspringSelectionBeforeMutationParameter.Name;
Index: /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithmMainLoop.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithmMainLoop.cs	(revision 3697)
+++ /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithmMainLoop.cs	(revision 3698)
@@ -111,10 +111,4 @@
     public LookupParameter<DoubleValue> ComparisonFactorParameter {
       get { return (LookupParameter<DoubleValue>)Parameters["ComparisonFactor"]; }
-    }
-    public ValueLookupParameter<DoubleValue> ComparisonFactorLowerBoundParameter {
-      get { return (ValueLookupParameter<DoubleValue>)Parameters["ComparisonFactorLowerBound"]; }
-    }
-    public ValueLookupParameter<DoubleValue> ComparisonFactorUpperBoundParameter {
-      get { return (ValueLookupParameter<DoubleValue>)Parameters["ComparisonFactorUpperBound"]; }
     }
     public ValueLookupParameter<IOperator> ComparisonFactorModifierParameter {
@@ -163,6 +157,4 @@
       Parameters.Add(new ValueLookupParameter<DoubleValue>("SuccessRatio", "The ratio of successful to total children that should be achieved."));
       Parameters.Add(new LookupParameter<DoubleValue>("ComparisonFactor", "The comparison factor is used to determine whether the offspring should be compared to the better parent, the worse parent or a quality value linearly interpolated between them. It is in the range [0;1]."));
-      Parameters.Add(new ValueLookupParameter<DoubleValue>("ComparisonFactorLowerBound", "The lower bound of the comparison factor (start)."));
-      Parameters.Add(new ValueLookupParameter<DoubleValue>("ComparisonFactorUpperBound", "The upper bound of the comparison factor (end)."));
       Parameters.Add(new ValueLookupParameter<IOperator>("ComparisonFactorModifier", "The operator used to modify the comparison factor."));
       Parameters.Add(new ValueLookupParameter<DoubleValue>("MaximumSelectionPressure", "The maximum selection pressure that terminates the algorithm."));
@@ -178,8 +170,8 @@
       Placeholder islandAnalyzer1 = new Placeholder();
       ResultsCollector islandResultsCollector1 = new ResultsCollector();
+      Placeholder comparisonFactorModifier1 = new Placeholder();
       Placeholder analyzer1 = new Placeholder();
       ResultsCollector resultsCollector1 = new ResultsCollector();
       ResultsCollector resultsCollector2 = new ResultsCollector();
-      Placeholder comparisonFactorModifier = new Placeholder();
       UniformSubScopesProcessor uniformSubScopesProcessor1 = new UniformSubScopesProcessor();
       ConditionalBranch islandTerminatedBySelectionPressure1 = new ConditionalBranch();
@@ -207,4 +199,5 @@
       Comparator generationsComparator = new Comparator();
       Comparator terminatedIslandsComparator = new Comparator();
+      Placeholder comparisonFactorModifier2 = new Placeholder();
       Placeholder analyzer2 = new Placeholder();
       ResultsCollector resultsCollector3 = new ResultsCollector();
@@ -230,4 +223,7 @@
       islandResultsCollector1.ResultsParameter.ActualName = "Results";
 
+      comparisonFactorModifier1.Name = "Initialize Comparison Factor (Placeholder)";
+      comparisonFactorModifier1.OperatorParameter.ActualName = ComparisonFactorModifierParameter.Name;
+
       analyzer1.Name = "Analyzer (placeholder)";
       analyzer1.OperatorParameter.ActualName = AnalyzerParameter.Name;
@@ -236,4 +232,5 @@
       resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Migrations"));
       resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
+      resultsCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Comparison Factor", null, "ComparisonFactor"));
       resultsCollector1.CollectedValues.Add(new ScopeTreeLookupParameter<ResultCollection>("IslandResults", "Result set for each island", "Results"));
       resultsCollector1.ResultsParameter.ActualName = ResultsParameter.Name;
@@ -242,7 +239,4 @@
       resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));
       resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name;
-
-      comparisonFactorModifier.Name = "ComparisonFactorModifier (Placeholder)";
-      comparisonFactorModifier.OperatorParameter.ActualName = ComparisonFactorModifierParameter.Name;
 
       islandTerminatedBySelectionPressure1.Name = "Island Terminated ?";
@@ -349,4 +343,7 @@
       terminatedIslandsComparator.ResultParameter.ActualName = "TerminateTerminatedIslands";
 
+      comparisonFactorModifier2.Name = "Update Comparison Factor (Placeholder)";
+      comparisonFactorModifier2.OperatorParameter.ActualName = ComparisonFactorModifierParameter.Name;
+
       analyzer2.Name = "Analyzer (placeholder)";
       analyzer2.OperatorParameter.ActualName = AnalyzerParameter.Name;
@@ -367,12 +364,12 @@
       variableCreator.Successor = uniformSubScopesProcessor0;
       uniformSubScopesProcessor0.Operator = islandVariableCreator;
-      uniformSubScopesProcessor0.Successor = analyzer1;
+      uniformSubScopesProcessor0.Successor = comparisonFactorModifier1;
       islandVariableCreator.Successor = islandAnalyzer1;
       islandAnalyzer1.Successor = islandResultsCollector1;
       islandResultsCollector1.Successor = null;
+      comparisonFactorModifier1.Successor = analyzer1;
       analyzer1.Successor = resultsCollector1;
       resultsCollector1.Successor = resultsCollector2;
-      resultsCollector2.Successor = comparisonFactorModifier;
-      comparisonFactorModifier.Successor = uniformSubScopesProcessor1;
+      resultsCollector2.Successor = uniformSubScopesProcessor1;
       uniformSubScopesProcessor1.Operator = islandTerminatedBySelectionPressure1;
       uniformSubScopesProcessor1.Successor = generationsCounter;
@@ -407,5 +404,6 @@
       immigrationReplacer.Successor = null;
       generationsComparator.Successor = terminatedIslandsComparator;
-      terminatedIslandsComparator.Successor = analyzer2;
+      terminatedIslandsComparator.Successor = comparisonFactorModifier2;
+      comparisonFactorModifier2.Successor = analyzer2;
       analyzer2.Successor = resultsCollector3;
       resultsCollector3.Successor = generationsTerminationCondition;
@@ -414,5 +412,5 @@
       generationsTerminationCondition.Successor = null;
       terminatedIslandsCondition.TrueBranch = null;
-      terminatedIslandsCondition.FalseBranch = comparisonFactorModifier;
+      terminatedIslandsCondition.FalseBranch = uniformSubScopesProcessor1;
       terminatedIslandsCondition.Successor = null;
       #endregion
Index: /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithmMainLoop.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithmMainLoop.cs	(revision 3697)
+++ /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithmMainLoop.cs	(revision 3698)
@@ -75,10 +75,4 @@
     public ValueLookupParameter<DoubleValue> SuccessRatioParameter {
       get { return (ValueLookupParameter<DoubleValue>)Parameters["SuccessRatio"]; }
-    }
-    public ValueLookupParameter<DoubleValue> ComparisonFactorLowerBoundParameter {
-      get { return (ValueLookupParameter<DoubleValue>)Parameters["ComparisonFactorLowerBound"]; }
-    }
-    public ValueLookupParameter<DoubleValue> ComparisonFactorUpperBoundParameter {
-      get { return (ValueLookupParameter<DoubleValue>)Parameters["ComparisonFactorUpperBound"]; }
     }
     public ValueLookupParameter<IOperator> ComparisonFactorModifierParameter {
@@ -116,6 +110,4 @@
       Parameters.Add(new ValueLookupParameter<IOperator>("Analyzer", "The operator used to analyze each generation."));
       Parameters.Add(new ValueLookupParameter<DoubleValue>("SuccessRatio", "The ratio of successful to total children that should be achieved."));
-      Parameters.Add(new ValueLookupParameter<DoubleValue>("ComparisonFactorLowerBound", "The lower bound of the comparison factor (start)."));
-      Parameters.Add(new ValueLookupParameter<DoubleValue>("ComparisonFactorUpperBound", "The upper bound of the comparison factor (end)."));
       Parameters.Add(new ValueLookupParameter<IOperator>("ComparisonFactorModifier", "The operator used to modify the comparison factor."));
       Parameters.Add(new ValueLookupParameter<DoubleValue>("MaximumSelectionPressure", "The maximum selection pressure that terminates the algorithm."));
@@ -125,5 +117,5 @@
       #region Create operators
       VariableCreator variableCreator = new VariableCreator();
-      Placeholder comparisonFactorModifier = new Placeholder();
+      Placeholder comparisonFactorModifier1 = new Placeholder();
       Placeholder analyzer1 = new Placeholder();
       ResultsCollector resultsCollector1 = new ResultsCollector();
@@ -133,4 +125,5 @@
       Comparator maxGenerationsComparator = new Comparator();
       Comparator maxSelectionPressureComparator = new Comparator();
+      Placeholder comparisonFactorModifier2 = new Placeholder();
       Placeholder analyzer2 = new Placeholder();
       ResultsCollector resultsCollector3 = new ResultsCollector();
@@ -142,7 +135,8 @@
       variableCreator.CollectedValues.Add(new ValueParameter<DoubleValue>("SelectionPressure", new DoubleValue(0)));
       variableCreator.CollectedValues.Add(new ValueParameter<DoubleValue>("CurrentSuccessRatio", new DoubleValue(0)));
-
-      comparisonFactorModifier.Name = "Modify ComparisonFactor (placeholder)";
-      comparisonFactorModifier.OperatorParameter.ActualName = ComparisonFactorModifierParameter.Name;
+      variableCreator.CollectedValues.Add(new ValueParameter<DoubleValue>("ComparisonFactor", new DoubleValue(0)));
+
+      comparisonFactorModifier1.Name = "Initialize ComparisonFactor (placeholder)";
+      comparisonFactorModifier1.OperatorParameter.ActualName = ComparisonFactorModifierParameter.Name;
 
       analyzer1.Name = "Analyzer (placeholder)";
@@ -190,4 +184,7 @@
       maxSelectionPressureComparator.RightSideParameter.ActualName = MaximumSelectionPressureParameter.Name;
 
+      comparisonFactorModifier2.Name = "Update ComparisonFactor (placeholder)";
+      comparisonFactorModifier2.OperatorParameter.ActualName = ComparisonFactorModifierParameter.Name;
+
       analyzer2.Name = "Analyzer (placeholder)";
       analyzer2.OperatorParameter.ActualName = AnalyzerParameter.Name;
@@ -206,6 +203,6 @@
       #region Create operator graph
       OperatorGraph.InitialOperator = variableCreator;
-      variableCreator.Successor = comparisonFactorModifier;
-      comparisonFactorModifier.Successor = analyzer1;
+      variableCreator.Successor = comparisonFactorModifier1;
+      comparisonFactorModifier1.Successor = analyzer1;
       analyzer1.Successor = resultsCollector1;
       resultsCollector1.Successor = resultsCollector2;
@@ -214,5 +211,6 @@
       generationsCounter.Successor = maxGenerationsComparator;
       maxGenerationsComparator.Successor = maxSelectionPressureComparator;
-      maxSelectionPressureComparator.Successor = analyzer2;
+      maxSelectionPressureComparator.Successor = comparisonFactorModifier2;
+      comparisonFactorModifier2.Successor = analyzer2;
       analyzer2.Successor = resultsCollector3;
       resultsCollector3.Successor = conditionalBranch1;
