Index: trunk/sources/HeuristicLab.Algorithms.TabuSearch/3.3/TabuSearch.cs
===================================================================
--- trunk/sources/HeuristicLab.Algorithms.TabuSearch/3.3/TabuSearch.cs	(revision 3280)
+++ trunk/sources/HeuristicLab.Algorithms.TabuSearch/3.3/TabuSearch.cs	(revision 3340)
@@ -63,9 +63,9 @@
       get { return (ConstrainedValueParameter<ISingleObjectiveMoveEvaluator>)Parameters["MoveEvaluator"]; }
     }
-    private ConstrainedValueParameter<ITabuChecker> TabuMoveEvaluatorParameter {
-      get { return (ConstrainedValueParameter<ITabuChecker>)Parameters["TabuMoveEvaluator"]; }
-    }
-    private ConstrainedValueParameter<ITabuMaker> TabuMoveMakerParameter {
-      get { return (ConstrainedValueParameter<ITabuMaker>)Parameters["TabuMoveMaker"]; }
+    private ConstrainedValueParameter<ITabuChecker> TabuCheckerParameter {
+      get { return (ConstrainedValueParameter<ITabuChecker>)Parameters["TabuChecker"]; }
+    }
+    private ConstrainedValueParameter<ITabuMaker> TabuMakerParameter {
+      get { return (ConstrainedValueParameter<ITabuMaker>)Parameters["TabuMaker"]; }
     }
     private ValueParameter<IntValue> TabuTenureParameter {
@@ -101,11 +101,11 @@
       set { MoveEvaluatorParameter.Value = value; }
     }
-    public ITabuChecker TabuMoveEvaluator {
-      get { return TabuMoveEvaluatorParameter.Value; }
-      set { TabuMoveEvaluatorParameter.Value = value; }
-    }
-    public ITabuMaker TabuMoveMaker {
-      get { return TabuMoveMakerParameter.Value; }
-      set { TabuMoveMakerParameter.Value = value; }
+    public ITabuChecker TabuChecker {
+      get { return TabuCheckerParameter.Value; }
+      set { TabuCheckerParameter.Value = value; }
+    }
+    public ITabuMaker TabuMaker {
+      get { return TabuMakerParameter.Value; }
+      set { TabuMakerParameter.Value = value; }
     }
     public IntValue TabuTenure {
@@ -135,9 +135,9 @@
       Parameters.Add(new ConstrainedValueParameter<IMoveMaker>("MoveMaker", "The operator used to perform a move."));
       Parameters.Add(new ConstrainedValueParameter<ISingleObjectiveMoveEvaluator>("MoveEvaluator", "The operator used to evaluate a move."));
-      Parameters.Add(new ConstrainedValueParameter<ITabuChecker>("TabuMoveEvaluator", "The operator to evaluate whether a move is tabu or not."));
-      Parameters.Add(new ConstrainedValueParameter<ITabuMaker>("TabuMoveMaker", "The operator used to insert attributes of a move into the tabu list."));
+      Parameters.Add(new ConstrainedValueParameter<ITabuChecker>("TabuChecker", "The operator to check whether a move is tabu or not."));
+      Parameters.Add(new ConstrainedValueParameter<ITabuMaker>("TabuMaker", "The operator used to insert attributes of a move into the tabu list."));
       Parameters.Add(new ValueParameter<IntValue>("TabuTenure", "The length of the tabu list.", new IntValue(10)));
       Parameters.Add(new ValueParameter<IntValue>("MaximumIterations", "The maximum number of generations which should be processed.", new IntValue(1000)));
-      Parameters.Add(new ValueParameter<IntValue>("SampleSize", "The neighborhood size for stochastic sampling move generators", new IntValue(20)));
+      Parameters.Add(new ValueParameter<IntValue>("SampleSize", "The neighborhood size for stochastic sampling move generators", new IntValue(100)));
 
       RandomCreator randomCreator = new RandomCreator();
@@ -159,6 +159,6 @@
       tsMainLoop.MoveMakerParameter.ActualName = MoveMakerParameter.Name;
       tsMainLoop.MoveEvaluatorParameter.ActualName = MoveEvaluatorParameter.Name;
-      tsMainLoop.TabuMoveEvaluatorParameter.ActualName = TabuMoveEvaluatorParameter.Name;
-      tsMainLoop.TabuMoveMakerParameter.ActualName = TabuMoveMakerParameter.Name;
+      tsMainLoop.TabuCheckerParameter.ActualName = TabuCheckerParameter.Name;
+      tsMainLoop.TabuMakerParameter.ActualName = TabuMakerParameter.Name;
       tsMainLoop.MaximumIterationsParameter.ActualName = MaximumIterationsParameter.Name;
       tsMainLoop.RandomParameter.ActualName = RandomCreator.RandomParameter.ActualName;
@@ -178,5 +178,5 @@
     public override void Prepare() {
       if (Problem != null && MoveGenerator != null && MoveMaker != null && MoveEvaluator != null &&
-          TabuMoveEvaluator != null && TabuMoveMaker != null)
+          TabuChecker != null && TabuMaker != null)
         base.Prepare();
     }
@@ -191,5 +191,5 @@
       }
       foreach (ITabuChecker op in Problem.Operators.OfType<ITabuChecker>()) {
-        op.MoveTabuParameter.ActualNameChanged += new EventHandler(TabuMoveEvaluator_MoveTabuParameter_ActualNameChanged);
+        op.MoveTabuParameter.ActualNameChanged += new EventHandler(TabuChecker_MoveTabuParameter_ActualNameChanged);
       }
       ParameterizeSolutionsCreator();
@@ -200,4 +200,6 @@
       ParameterizeMoveEvaluator();
       ParameterizeMoveMaker();
+      ParameterizeTabuMaker();
+      ParameterizeTabuChecker();
       Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
       base.OnProblemChanged();
@@ -214,4 +216,6 @@
       ParameterizeMoveEvaluator();
       ParameterizeMoveMaker();
+      ParameterizeTabuMaker();
+      ParameterizeTabuChecker();
       Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
       base.Problem_EvaluatorChanged(sender, e);
@@ -232,6 +236,6 @@
       }
       foreach (ITabuChecker op in Problem.Operators.OfType<ITabuChecker>()) {
-        op.MoveTabuParameter.ActualNameChanged -= new EventHandler(TabuMoveEvaluator_MoveTabuParameter_ActualNameChanged);
-        op.MoveTabuParameter.ActualNameChanged += new EventHandler(TabuMoveEvaluator_MoveTabuParameter_ActualNameChanged);
+        op.MoveTabuParameter.ActualNameChanged -= new EventHandler(TabuChecker_MoveTabuParameter_ActualNameChanged);
+        op.MoveTabuParameter.ActualNameChanged += new EventHandler(TabuChecker_MoveTabuParameter_ActualNameChanged);
       }
       UpdateMoveGenerator();
@@ -241,4 +245,6 @@
       ParameterizeMoveEvaluator();
       ParameterizeMoveMaker();
+      ParameterizeTabuMaker();
+      ParameterizeTabuChecker();
       base.Problem_OperatorsChanged(sender, e);
     }
@@ -247,4 +253,6 @@
       ParameterizeMoveEvaluator();
       ParameterizeMoveMaker();
+      ParameterizeTabuMaker();
+      ParameterizeTabuChecker();
     }
     private void MoveGeneratorParameter_ValueChanged(object sender, EventArgs e) {
@@ -255,4 +263,6 @@
       ParameterizeMoveEvaluator();
       ParameterizeMoveMaker();
+      ParameterizeTabuMaker();
+      ParameterizeTabuChecker();
     }
     private void MoveEvaluator_MoveQualityParameter_ActualNameChanged(object sender, EventArgs e) {
@@ -260,9 +270,11 @@
       ParameterizeMoveEvaluator();
       ParameterizeMoveMaker();
-    }
-    private void TabuMoveEvaluatorParameter_ValueChanged(object sender, EventArgs e) {
-      ParameterizeMainLoop();
-    }
-    private void TabuMoveEvaluator_MoveTabuParameter_ActualNameChanged(object sender, EventArgs e) {
+      ParameterizeTabuMaker();
+      ParameterizeTabuChecker();
+    }
+    private void TabuCheckerParameter_ValueChanged(object sender, EventArgs e) {
+      ParameterizeMainLoop();
+    }
+    private void TabuChecker_MoveTabuParameter_ActualNameChanged(object sender, EventArgs e) {
       ParameterizeMainLoop();
     }
@@ -287,5 +299,5 @@
       MoveGeneratorParameter.ValueChanged += new EventHandler(MoveGeneratorParameter_ValueChanged);
       MoveEvaluatorParameter.ValueChanged += new EventHandler(MoveEvaluatorParameter_ValueChanged);
-      TabuMoveEvaluatorParameter.ValueChanged += new EventHandler(TabuMoveEvaluatorParameter_ValueChanged);
+      TabuCheckerParameter.ValueChanged += new EventHandler(TabuCheckerParameter_ValueChanged);
       SampleSizeParameter.NameChanged += new EventHandler(SampleSizeParameter_NameChanged);
     }
@@ -307,6 +319,6 @@
       IMoveMaker oldMoveMaker = MoveMaker;
       ISingleObjectiveMoveEvaluator oldMoveEvaluator = MoveEvaluator;
-      ITabuChecker oldTabuMoveEvaluator = TabuMoveEvaluator;
-      ITabuMaker oldTabuMoveMaker = TabuMoveMaker;
+      ITabuChecker oldTabuMoveEvaluator = TabuChecker;
+      ITabuMaker oldTabuMoveMaker = TabuMaker;
       ClearMoveParameters();
       if (MoveGenerator != null) {
@@ -323,7 +335,7 @@
             MoveEvaluatorParameter.ValidValues.Add(moveEvaluator);
           foreach (ITabuChecker tabuMoveEvaluator in operators.OfType<ITabuChecker>())
-            TabuMoveEvaluatorParameter.ValidValues.Add(tabuMoveEvaluator);
+            TabuCheckerParameter.ValidValues.Add(tabuMoveEvaluator);
           foreach (ITabuMaker tabuMoveMaker in operators.OfType<ITabuMaker>())
-            TabuMoveMakerParameter.ValidValues.Add(tabuMoveMaker);
+            TabuMakerParameter.ValidValues.Add(tabuMoveMaker);
         }
         if (oldMoveMaker != null) {
@@ -336,10 +348,10 @@
         }
         if (oldTabuMoveMaker != null) {
-          ITabuMaker tmm = TabuMoveMakerParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldTabuMoveMaker.GetType());
-          if (tmm != null) TabuMoveMaker = tmm;
+          ITabuMaker tmm = TabuMakerParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldTabuMoveMaker.GetType());
+          if (tmm != null) TabuMaker = tmm;
         }
         if (oldTabuMoveEvaluator != null) {
-          ITabuChecker tme = TabuMoveEvaluatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldTabuMoveEvaluator.GetType());
-          if (tme != null) TabuMoveEvaluator = tme;
+          ITabuChecker tme = TabuCheckerParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldTabuMoveEvaluator.GetType());
+          if (tme != null) TabuChecker = tme;
         }
       }
@@ -348,6 +360,6 @@
       MoveMakerParameter.ValidValues.Clear();
       MoveEvaluatorParameter.ValidValues.Clear();
-      TabuMoveEvaluatorParameter.ValidValues.Clear();
-      TabuMoveMakerParameter.ValidValues.Clear();
+      TabuCheckerParameter.ValidValues.Clear();
+      TabuMakerParameter.ValidValues.Clear();
     }
     private void ParameterizeSolutionsCreator() {
@@ -361,6 +373,6 @@
       if (MoveEvaluator != null)
         MainLoop.MoveQualityParameter.ActualName = MoveEvaluator.MoveQualityParameter.ActualName;
-      if (TabuMoveEvaluator != null)
-        MainLoop.MoveTabuParameter.ActualName = TabuMoveEvaluator.MoveTabuParameter.ActualName;
+      if (TabuChecker != null)
+        MainLoop.MoveTabuParameter.ActualName = TabuChecker.MoveTabuParameter.ActualName;
       MainLoop.VisualizerParameter.ActualName = Problem.VisualizerParameter.Name;
       if (Problem.Visualizer != null)
@@ -389,4 +401,19 @@
       }
     }
+    private void ParameterizeTabuMaker() {
+      foreach (ITabuMaker op in Problem.Operators.OfType<ITabuMaker>()) {
+        op.QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName;
+        if (MoveEvaluator != null)
+          op.MoveQualityParameter.ActualName = MoveEvaluator.MoveQualityParameter.ActualName;
+      }
+    }
+    private void ParameterizeTabuChecker() {
+      foreach (ITabuChecker op in Problem.Operators.OfType<ITabuChecker>()) {
+        if (MoveEvaluator != null)
+          op.MoveQualityParameter.ActualName = MoveEvaluator.MoveQualityParameter.ActualName;
+        if (TabuChecker != null)
+          op.MoveTabuParameter.ActualName = TabuChecker.MoveTabuParameter.ActualName;
+      }
+    }
     #endregion
   }
Index: trunk/sources/HeuristicLab.Algorithms.TabuSearch/3.3/TabuSearchMainLoop.cs
===================================================================
--- trunk/sources/HeuristicLab.Algorithms.TabuSearch/3.3/TabuSearchMainLoop.cs	(revision 3280)
+++ trunk/sources/HeuristicLab.Algorithms.TabuSearch/3.3/TabuSearchMainLoop.cs	(revision 3340)
@@ -70,9 +70,9 @@
       get { return (ValueLookupParameter<IOperator>)Parameters["MoveMaker"]; }
     }
-    public ValueLookupParameter<IOperator> TabuMoveEvaluatorParameter {
-      get { return (ValueLookupParameter<IOperator>)Parameters["TabuMoveEvaluator"]; }
-    }
-    public ValueLookupParameter<IOperator> TabuMoveMakerParameter {
-      get { return (ValueLookupParameter<IOperator>)Parameters["TabuMoveMaker"]; }
+    public ValueLookupParameter<IOperator> TabuCheckerParameter {
+      get { return (ValueLookupParameter<IOperator>)Parameters["TabuChecker"]; }
+    }
+    public ValueLookupParameter<IOperator> TabuMakerParameter {
+      get { return (ValueLookupParameter<IOperator>)Parameters["TabuMaker"]; }
     }
     public ValueLookupParameter<IOperator> VisualizerParameter {
@@ -108,6 +108,6 @@
       Parameters.Add(new ValueLookupParameter<IOperator>("MoveMaker", "The operator that performs a move and updates the quality."));
       Parameters.Add(new ValueLookupParameter<IOperator>("MoveEvaluator", "The operator that evaluates a move."));
-      Parameters.Add(new ValueLookupParameter<IOperator>("TabuMoveEvaluator", "The operator that evaluates whether a move is tabu."));
-      Parameters.Add(new ValueLookupParameter<IOperator>("TabuMoveMaker", "The operator that declares a move tabu."));
+      Parameters.Add(new ValueLookupParameter<IOperator>("TabuChecker", "The operator that checks whether a move is tabu."));
+      Parameters.Add(new ValueLookupParameter<IOperator>("TabuMaker", "The operator that declares a move tabu."));
 
       Parameters.Add(new ValueLookupParameter<IOperator>("Visualizer", "The operator used to visualize solutions."));
@@ -128,5 +128,5 @@
       UniformSubScopesProcessor moveEvaluationProcessor = new UniformSubScopesProcessor();
       Placeholder moveEvaluator = new Placeholder();
-      Placeholder tabuMoveEvaluator = new Placeholder();
+      Placeholder tabuChecker = new Placeholder();
       SubScopesSorter moveQualitySorter = new SubScopesSorter();
       BestAverageWorstQualityCalculator bestAverageWorstMoveQualityCalculator = new BestAverageWorstQualityCalculator();
@@ -135,5 +135,5 @@
       RightReducer rightReducer = new RightReducer();
       UniformSubScopesProcessor moveMakingProcessor = new UniformSubScopesProcessor();
-      Placeholder tabuMoveMaker = new Placeholder();
+      Placeholder tabuMaker = new Placeholder();
       Placeholder moveMaker = new Placeholder();
       DataTableValuesCollector valuesCollector = new DataTableValuesCollector();
@@ -193,6 +193,6 @@
       moveEvaluator.OperatorParameter.ActualName = MoveEvaluatorParameter.Name;
 
-      tabuMoveEvaluator.Name = "TabuMoveEvaluator (placeholder)";
-      tabuMoveEvaluator.OperatorParameter.ActualName = TabuMoveEvaluatorParameter.Name;
+      tabuChecker.Name = "TabuChecker (placeholder)";
+      tabuChecker.OperatorParameter.ActualName = TabuCheckerParameter.Name;
 
       moveQualitySorter.DescendingParameter.ActualName = MaximizationParameter.Name;
@@ -215,6 +215,6 @@
       emptyNeighborhoodBranch1.ConditionParameter.ActualName = "EmptyNeighborhood";
 
-      tabuMoveMaker.Name = "TabuMoveMaker (placeholder)";
-      tabuMoveMaker.OperatorParameter.ActualName = TabuMoveMakerParameter.Name;
+      tabuMaker.Name = "TabuMaker (placeholder)";
+      tabuMaker.OperatorParameter.ActualName = TabuMakerParameter.Name;
 
       moveMaker.Name = "MoveMaker (placeholder)";
@@ -272,6 +272,6 @@
       moveEvaluationProcessor.Operator = moveEvaluator;
       moveEvaluationProcessor.Successor = moveQualitySorter;
-      moveEvaluator.Successor = tabuMoveEvaluator;
-      tabuMoveEvaluator.Successor = null;
+      moveEvaluator.Successor = tabuChecker;
+      tabuChecker.Successor = null;
       moveQualitySorter.Successor = bestAverageWorstMoveQualityCalculator;
       bestAverageWorstMoveQualityCalculator.Successor = valuesCollector;
@@ -282,7 +282,7 @@
       emptyNeighborhoodBranch1.Successor = null;
       rightReducer.Successor = moveMakingProcessor;
-      moveMakingProcessor.Operator = tabuMoveMaker;
+      moveMakingProcessor.Operator = tabuMaker;
       moveMakingProcessor.Successor = subScopesRemover1;
-      tabuMoveMaker.Successor = moveMaker;
+      tabuMaker.Successor = moveMaker;
       moveMaker.Successor = null;
       subScopesRemover1.Successor = null;
