Index: /branches/HiveHiveEngine/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs
===================================================================
--- /branches/HiveHiveEngine/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs	(revision 7390)
+++ /branches/HiveHiveEngine/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs	(revision 7391)
@@ -297,6 +297,10 @@
       if (proportionalSelector != null) SelectorParameter.Value = proportionalSelector;
 
-      foreach (ISelector selector in ApplicationManager.Manager.GetInstances<ISelector>().Where(x => !(x is IMultiObjectiveSelector)).OrderBy(x => x.Name))
+      foreach (ISelector selector in ApplicationManager.Manager.GetInstances<ISelector>().Where(x => !(x is IMultiObjectiveSelector)).OrderBy(x => x.Name)) {
+        var stochasticOperator = selector as IStochasticOperator;
+        if (stochasticOperator != null)
+          stochasticOperator.RandomParameter.ActualName = "Global Random";
         EmigrantsSelectorParameter.ValidValues.Add(selector);
+      }
 
       foreach (IReplacer replacer in ApplicationManager.Manager.GetInstances<IReplacer>().OrderBy(x => x.Name))
Index: /branches/HiveHiveEngine/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/ParallelIslandGeneticAlgorithmMainLoop.cs
===================================================================
--- /branches/HiveHiveEngine/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/ParallelIslandGeneticAlgorithmMainLoop.cs	(revision 7390)
+++ /branches/HiveHiveEngine/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/ParallelIslandGeneticAlgorithmMainLoop.cs	(revision 7391)
@@ -270,13 +270,13 @@
       generationsReducer.Name = "Increment Generations";
       generationsReducer.ParameterToReduce.ActualName = islandGenerationsCounter.ValueParameter.ActualName;
-      generationsReducer.TargetParameterName.Value = new StringValue("Generations");
-      generationsReducer.ReductionOperation.Value = new ReductionType(ReductionTypes.Min);
-      generationsReducer.TargetOperation.Value = new TargetOperationType(TargetOperationTypes.Sum);
+      generationsReducer.TargetParameter.ActualName = "Generations";
+      generationsReducer.ReductionOperation.Value = new ReductionOperation(ReductionOperations.Min);
+      generationsReducer.TargetOperation.Value = new ReductionOperation(ReductionOperations.Sum);
 
       evaluatedSolutionsReducer.Name = "Increment Evaluated Solutions";
       evaluatedSolutionsReducer.ParameterToReduce.ActualName = IslandEvaluatedSolutions.Name;
-      evaluatedSolutionsReducer.TargetParameterName.Value = new StringValue(EvaluatedSolutionsParameter.Name);
-      evaluatedSolutionsReducer.ReductionOperation.Value = new ReductionType(ReductionTypes.Sum);
-      evaluatedSolutionsReducer.TargetOperation.Value = new TargetOperationType(TargetOperationTypes.Sum);
+      evaluatedSolutionsReducer.TargetParameter.ActualName = EvaluatedSolutionsParameter.Name;
+      evaluatedSolutionsReducer.ReductionOperation.Value = new ReductionOperation(ReductionOperations.Sum);
+      evaluatedSolutionsReducer.TargetOperation.Value = new ReductionOperation(ReductionOperations.Sum);
 
       emigrantsSelector.Name = "Emigrants Selector (placeholder)";
Index: /branches/HiveHiveEngine/HeuristicLab.Operators/3.3/HeuristicLab.Operators-3.3.csproj
===================================================================
--- /branches/HiveHiveEngine/HeuristicLab.Operators/3.3/HeuristicLab.Operators-3.3.csproj	(revision 7390)
+++ /branches/HiveHiveEngine/HeuristicLab.Operators/3.3/HeuristicLab.Operators-3.3.csproj	(revision 7391)
@@ -119,9 +119,7 @@
     <Compile Include="AlgorithmOperator.cs" />
     <Compile Include="SubScopesRandomCreator.cs" />
-    <Compile Include="TargetOperationType.cs" />
-    <Compile Include="TargetOperationTypes.cs" />
     <Compile Include="IntDataReducer.cs" />
-    <Compile Include="ReductionType.cs" />
-    <Compile Include="ReductionTypes.cs" />
+    <Compile Include="ReductionOperation.cs" />
+    <Compile Include="ReductionOperations.cs" />
     <Compile Include="MultiOperator.cs" />
     <Compile Include="Operator.cs" />
Index: /branches/HiveHiveEngine/HeuristicLab.Operators/3.3/IntDataReducer.cs
===================================================================
--- /branches/HiveHiveEngine/HeuristicLab.Operators/3.3/IntDataReducer.cs	(revision 7390)
+++ /branches/HiveHiveEngine/HeuristicLab.Operators/3.3/IntDataReducer.cs	(revision 7391)
@@ -36,15 +36,12 @@
       get { return (ScopeTreeLookupParameter<IntValue>)Parameters["ParameterToReduce"]; }
     }
-    public ValueLookupParameter<StringValue> TargetParameterName {
-      get { return (ValueLookupParameter<StringValue>)Parameters["TargetParameterName"]; }
-    }
-    private LookupParameter<IntValue> TargetParameter {
+    public LookupParameter<IntValue> TargetParameter {
       get { return (LookupParameter<IntValue>)Parameters["TargetParameter"]; }
     }
-    public ValueParameter<ReductionType> ReductionOperation {
-      get { return (ValueParameter<ReductionType>)Parameters["ReductionOperation"]; }
+    public ValueParameter<ReductionOperation> ReductionOperation {
+      get { return (ValueParameter<ReductionOperation>)Parameters["ReductionOperation"]; }
     }
-    public ValueParameter<TargetOperationType> TargetOperation {
-      get { return (ValueParameter<TargetOperationType>)Parameters["TargetOperation"]; }
+    public ValueParameter<ReductionOperation> TargetOperation {
+      get { return (ValueParameter<ReductionOperation>)Parameters["TargetOperation"]; }
     }
     #endregion
@@ -59,8 +56,7 @@
       #region Create parameters
       Parameters.Add(new ScopeTreeLookupParameter<IntValue>("ParameterToReduce", "The parameter on which the reduction operation should be applied."));
-      Parameters.Add(new ValueLookupParameter<StringValue>("TargetParameterName", "Parameter to store the result in.", new StringValue(string.Empty)));
-      Parameters.Add(new LookupParameter<IntValue>("TargetParameter", "The actual parameter defined by TargetParameterName."));
-      Parameters.Add(new ValueParameter<ReductionType>("ReductionOperation", "The reduction operation to perform."));
-      Parameters.Add(new ValueParameter<TargetOperationType>("TargetOperation", "The target operation to perform."));
+      Parameters.Add(new LookupParameter<IntValue>("TargetParameter", "The target variable in which the reduced value should be stored."));
+      Parameters.Add(new ValueParameter<ReductionOperation>("ReductionOperation", "The operation which is applied on the parameter to reduce."));
+      Parameters.Add(new ValueParameter<ReductionOperation>("TargetOperation", "The operation used to apply the reduced value to the target variable."));
       #endregion
     }
@@ -74,37 +70,40 @@
 
       if (intValues.Count() > 0) {
-        TargetParameter.ActualName = TargetParameterName.ActualValue.Value;
         if (TargetParameter.ActualValue == null) TargetParameter.ActualValue = new IntValue();
 
         int result = 1;
         switch (ReductionOperation.Value.Value) {
-          case ReductionTypes.Sum:
+          case ReductionOperations.Sum:
             result = intValues.Sum(x => x.Value);
             break;
-          case ReductionTypes.Prod:
+          case ReductionOperations.Prod:
             intValues.ForEach(x => result *= x.Value);
             break;
-          case ReductionTypes.Avg:
+          case ReductionOperations.Avg:
             result = (int)Math.Round(intValues.Average(x => x.Value));
             break;
-          case ReductionTypes.Min:
+          case ReductionOperations.Min:
             result = intValues.Min(x => x.Value);
             break;
-          case ReductionTypes.Max:
+          case ReductionOperations.Max:
             result = intValues.Max(x => x.Value);
             break;
+          default:
+            throw new InvalidOperationException("Operation " + ReductionOperation.Value.Value + " is not supported as ReductionOperation.");
         }
 
         switch (TargetOperation.Value.Value) {
-          case TargetOperationTypes.Set:
+          case ReductionOperations.Assign:
             TargetParameter.ActualValue.Value = result;
             break;
-          case TargetOperationTypes.Sum:
+          case ReductionOperations.Sum:
             TargetParameter.ActualValue.Value += result;
             break;
-          case TargetOperationTypes.Prod:
+          case ReductionOperations.Prod:
             if (TargetParameter.ActualValue.Value == 0) TargetParameter.ActualValue.Value = 1;
             TargetParameter.ActualValue.Value *= result;
             break;
+          default:
+            throw new InvalidOperationException("Operation " + TargetOperation.Value.Value + " is not supported as TargetOperation.");
         }
       }
Index: /branches/HiveHiveEngine/HeuristicLab.Operators/3.3/ReductionOperation.cs
===================================================================
--- /branches/HiveHiveEngine/HeuristicLab.Operators/3.3/ReductionOperation.cs	(revision 7391)
+++ /branches/HiveHiveEngine/HeuristicLab.Operators/3.3/ReductionOperation.cs	(revision 7391)
@@ -0,0 +1,46 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Drawing;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Operators {
+  [Item("ReductionOperation", "Represents a certain type of reduction operation.")]
+  [StorableClass]
+  public class ReductionOperation : ValueTypeValue<ReductionOperations> {
+    public static new Image StaticItemImage {
+      get { return HeuristicLab.Common.Resources.VSImageLibrary.Enum; }
+    }
+
+    [StorableConstructor]
+    protected ReductionOperation(bool deserializing) : base(deserializing) { }
+    protected ReductionOperation(ReductionOperation original, Cloner cloner) : base(original, cloner) { }
+    public ReductionOperation() : base() { }
+    public ReductionOperation(ReductionOperations type) : base(type) { }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new ReductionOperation(this, cloner);
+    }
+  }
+}
Index: /branches/HiveHiveEngine/HeuristicLab.Operators/3.3/ReductionOperations.cs
===================================================================
--- /branches/HiveHiveEngine/HeuristicLab.Operators/3.3/ReductionOperations.cs	(revision 7391)
+++ /branches/HiveHiveEngine/HeuristicLab.Operators/3.3/ReductionOperations.cs	(revision 7391)
@@ -0,0 +1,31 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Operators {
+  public enum ReductionOperations {
+    Assign,
+    Sum,
+    Prod,
+    Min,
+    Max,
+    Avg
+  }
+}
Index: anches/HiveHiveEngine/HeuristicLab.Operators/3.3/ReductionType.cs
===================================================================
--- /branches/HiveHiveEngine/HeuristicLab.Operators/3.3/ReductionType.cs	(revision 7390)
+++ 	(revision )
@@ -1,46 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System.Drawing;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Operators {
-  [Item("ReductionType", "Represents a certain type of reduction operation.")]
-  [StorableClass]
-  public class ReductionType : ValueTypeValue<ReductionTypes> {
-    public static new Image StaticItemImage {
-      get { return HeuristicLab.Common.Resources.VSImageLibrary.Enum; }
-    }
-
-    [StorableConstructor]
-    protected ReductionType(bool deserializing) : base(deserializing) { }
-    protected ReductionType(ReductionType original, Cloner cloner) : base(original, cloner) { }
-    public ReductionType() : base() { }
-    public ReductionType(ReductionTypes type) : base(type) { }
-
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new ReductionType(this, cloner);
-    }
-  }
-}
Index: anches/HiveHiveEngine/HeuristicLab.Operators/3.3/ReductionTypes.cs
===================================================================
--- /branches/HiveHiveEngine/HeuristicLab.Operators/3.3/ReductionTypes.cs	(revision 7390)
+++ 	(revision )
@@ -1,30 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-namespace HeuristicLab.Operators {
-  public enum ReductionTypes {
-    Sum,
-    Prod,
-    Min,
-    Max,
-    Avg
-  }
-}
Index: anches/HiveHiveEngine/HeuristicLab.Operators/3.3/TargetOperationType.cs
===================================================================
--- /branches/HiveHiveEngine/HeuristicLab.Operators/3.3/TargetOperationType.cs	(revision 7390)
+++ 	(revision )
@@ -1,46 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System.Drawing;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Operators {
-  [Item("TargetOperationType", "Represents a certain type of target parameter operation.")]
-  [StorableClass]
-  public class TargetOperationType : ValueTypeValue<TargetOperationTypes> {
-    public static new Image StaticItemImage {
-      get { return HeuristicLab.Common.Resources.VSImageLibrary.Enum; }
-    }
-
-    [StorableConstructor]
-    protected TargetOperationType(bool deserializing) : base(deserializing) { }
-    protected TargetOperationType(TargetOperationType original, Cloner cloner) : base(original, cloner) { }
-    public TargetOperationType() : base() { }
-    public TargetOperationType(TargetOperationTypes type) : base(type) { }
-
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new TargetOperationType(this, cloner);
-    }
-  }
-}
Index: anches/HiveHiveEngine/HeuristicLab.Operators/3.3/TargetOperationTypes.cs
===================================================================
--- /branches/HiveHiveEngine/HeuristicLab.Operators/3.3/TargetOperationTypes.cs	(revision 7390)
+++ 	(revision )
@@ -1,28 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-namespace HeuristicLab.Operators {
-  public enum TargetOperationTypes {
-    Set,
-    Sum,
-    Prod
-  }
-}
