Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/AlbaMoveOperator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/AlbaMoveOperator.cs	(revision 3946)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/AlbaMoveOperator.cs	(revision 3947)
@@ -43,5 +43,5 @@
 
       PermutationMoveOperatorParameter.PermutationParameter.ActualName = VRPSolutionParameter.ActualName;
-      IAtomicOperation op = this.ExecutionContext.CreateOperation(PermutationMoveOperatorParameter);
+      IAtomicOperation op = this.ExecutionContext.CreateChildOperation(PermutationMoveOperatorParameter);
       op.Operator.Execute((IExecutionContext)op);
 
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveEvaluator.cs	(revision 3946)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveEvaluator.cs	(revision 3947)
@@ -54,6 +54,6 @@
         newSolution,
         DueTimeParameter.ActualValue, ServiceTimeParameter.ActualValue, ReadyTimeParameter.ActualValue,
-        DemandParameter.ActualValue, CapacityParameter.ActualValue, 
-        FleetUsageFactor.Value, TimeFactor.Value, DistanceFactor.Value, OverloadPenalty.Value, TardinessPenalty.Value,
+        DemandParameter.ActualValue, CapacityParameter.ActualValue,
+        FleetUsageFactor.ActualValue, TimeFactor.ActualValue, DistanceFactor.ActualValue, OverloadPenalty.ActualValue, TardinessPenalty.ActualValue,
         CoordinatesParameter.ActualValue, DistanceMatrixParameter, UseDistanceMatrixParameter.ActualValue);
     }
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveGenerator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveGenerator.cs	(revision 3946)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveGenerator.cs	(revision 3947)
@@ -29,9 +29,10 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.Parameters;
+using HeuristicLab.Data;
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
   [Item("AlbaTranslocationMoveGenerator", "An operator which generates translocation moves for the alba representation.")]
   [StorableClass]
-  public sealed class AlbaTranslocationMoveGenerator : AlbaMoveOperator, IPermutationTranslocationMoveOperator, IMoveGenerator {
+  public sealed class AlbaTranslocationMoveGenerator : AlbaMoveOperator, IPermutationTranslocationMoveOperator, IMultiMoveGenerator {
     public IValueLookupParameter<TranslocationMoveGenerator> TranslocationMoveGeneratorParameter {
       get { return (IValueLookupParameter<TranslocationMoveGenerator>)Parameters["TranslocationMoveGenerator"]; }
@@ -40,5 +41,10 @@
     protected override IPermutationMoveOperator PermutationMoveOperatorParameter {
       get { return TranslocationMoveGeneratorParameter.Value; }
-      set { TranslocationMoveGeneratorParameter.Value = value as TranslocationMoveGenerator; }
+      set { 
+        TranslocationMoveGeneratorParameter.Value = value as TranslocationMoveGenerator;
+        if (TranslocationMoveGeneratorParameter.Value is IMultiMoveGenerator) {
+          ((IMultiMoveGenerator)TranslocationMoveGeneratorParameter.Value).SampleSizeParameter.ActualName = SampleSizeParameter.Name;
+        }
+      }
     }
 
@@ -61,7 +67,14 @@
     }
 
+    public IValueLookupParameter<IntValue> SampleSizeParameter {
+      get { return (IValueLookupParameter<IntValue>)Parameters["SampleSize"]; }
+    }
+
     public AlbaTranslocationMoveGenerator(): base() {
       Parameters.Add(new ValueLookupParameter<TranslocationMoveGenerator>("TranslocationMoveGenerator", "The move generator.", 
         new StochasticTranslocationMultiMoveGenerator()));
+      Parameters.Add(new ValueLookupParameter<IntValue>("SampleSize", "The number of moves to generate."));
+
+      ((IMultiMoveGenerator)TranslocationMoveGeneratorParameter.Value).SampleSizeParameter.ActualName = SampleSizeParameter.Name;
     }
 
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Evaluators/VRPEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Evaluators/VRPEvaluator.cs	(revision 3946)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Evaluators/VRPEvaluator.cs	(revision 3947)
@@ -84,7 +84,4 @@
       get { return (ILookupParameter<DoubleValue>)Parameters["Capacity"]; }
     }
-    /*public ILookupParameter<DoubleValue> MaxTravelTimeParameter {
-      get { return (ILookupParameter<DoubleValue>)Parameters["MaxTravelTime"]; }
-    } */
     public ILookupParameter<DoubleArray> DemandParameter {
       get { return (ILookupParameter<DoubleArray>)Parameters["Demand"]; }
@@ -99,21 +96,18 @@
       get { return (ILookupParameter<DoubleArray>)Parameters["ServiceTime"]; }
     }
-    public IValueParameter<DoubleValue> FleetUsageFactor {
-      get { return (IValueParameter<DoubleValue>)Parameters["FleetUsageFactor"]; }
-    }
-    public IValueParameter<DoubleValue> TimeFactor {
-      get { return (IValueParameter<DoubleValue>)Parameters["TimeFactor"]; }
-    }
-    public IValueParameter<DoubleValue> DistanceFactor {
-      get { return (IValueParameter<DoubleValue>)Parameters["DistanceFactor"]; }
-    }
-    /*public IValueParameter<DoubleValue> TimePenalty {
-      get { return (IValueParameter<DoubleValue>)Parameters["TimePenalty"]; }
-    } */
-    public IValueParameter<DoubleValue> OverloadPenalty {
-      get { return (IValueParameter<DoubleValue>)Parameters["OverloadPenalty"]; }
-    }
-    public IValueParameter<DoubleValue> TardinessPenalty {
-      get { return (IValueParameter<DoubleValue>)Parameters["TardinessPenalty"]; }
+    public ILookupParameter<DoubleValue> FleetUsageFactor {
+      get { return (ILookupParameter<DoubleValue>)Parameters["FleetUsageFactor"]; }
+    }
+    public ILookupParameter<DoubleValue> TimeFactor {
+      get { return (ILookupParameter<DoubleValue>)Parameters["TimeFactor"]; }
+    }
+    public ILookupParameter<DoubleValue> DistanceFactor {
+      get { return (ILookupParameter<DoubleValue>)Parameters["DistanceFactor"]; }
+    }
+    public ILookupParameter<DoubleValue> OverloadPenalty {
+      get { return (ILookupParameter<DoubleValue>)Parameters["OverloadPenalty"]; }
+    }
+    public ILookupParameter<DoubleValue> TardinessPenalty {
+      get { return (ILookupParameter<DoubleValue>)Parameters["TardinessPenalty"]; }
     }
 
@@ -132,15 +126,13 @@
       Parameters.Add(new LookupParameter<IntValue>("Vehicles", "The number of vehicles."));
       Parameters.Add(new LookupParameter<DoubleValue>("Capacity", "The capacity of each vehicle."));
-      //Parameters.Add(new LookupParameter<DoubleValue>("MaxTravelTime", "The maximum travel time of each route."));
       Parameters.Add(new LookupParameter<DoubleArray>("Demand", "The demand of each customer."));
       Parameters.Add(new LookupParameter<DoubleArray>("ReadyTime", "The ready time of each customer."));
       Parameters.Add(new LookupParameter<DoubleArray>("DueTime", "The due time of each customer."));
       Parameters.Add(new LookupParameter<DoubleArray>("ServiceTime", "The service time of each customer."));
-      Parameters.Add(new ValueParameter<DoubleValue>("FleetUsageFactor", "The fleet usage factor considered in the evaluation.", new DoubleValue(0)));
-      Parameters.Add(new ValueParameter<DoubleValue>("TimeFactor", "The time factor considered in the evaluation.", new DoubleValue(0)));
-      Parameters.Add(new ValueParameter<DoubleValue>("DistanceFactor", "The distance factor considered in the evaluation.", new DoubleValue(1)));
-      //Parameters.Add(new ValueParameter<DoubleValue>("TimePenalty", "The time penalty considered in the evaluation.", new DoubleValue(10)));
-      Parameters.Add(new ValueParameter<DoubleValue>("OverloadPenalty", "The overload penalty considered in the evaluation.", new DoubleValue(50)));
-      Parameters.Add(new ValueParameter<DoubleValue>("TardinessPenalty", "The tardiness penalty considered in the evaluation.", new DoubleValue(50)));
+      Parameters.Add(new LookupParameter<DoubleValue>("FleetUsageFactor", "The fleet usage factor considered in the evaluation."));
+      Parameters.Add(new LookupParameter<DoubleValue>("TimeFactor", "The time factor considered in the evaluation."));
+      Parameters.Add(new LookupParameter<DoubleValue>("DistanceFactor", "The distance factor considered in the evaluation."));
+      Parameters.Add(new LookupParameter<DoubleValue>("OverloadPenalty", "The overload penalty considered in the evaluation."));
+      Parameters.Add(new LookupParameter<DoubleValue>("TardinessPenalty", "The tardiness penalty considered in the evaluation."));
     }
 
@@ -289,7 +281,4 @@
       }
 
-      if (sumEval.Quality < sumEval.Distance) {
-      }
-
       return sumEval;
     }
@@ -299,6 +288,6 @@
 
       TourEvaluation sumEval = Evaluate(solution, DueTimeParameter.ActualValue, ServiceTimeParameter.ActualValue, ReadyTimeParameter.ActualValue, 
-        DemandParameter.ActualValue, CapacityParameter.ActualValue, 
-        FleetUsageFactor.Value, TimeFactor.Value, DistanceFactor.Value, OverloadPenalty.Value, TardinessPenalty.Value, 
+        DemandParameter.ActualValue, CapacityParameter.ActualValue,
+        FleetUsageFactor.ActualValue, TimeFactor.ActualValue, DistanceFactor.ActualValue, OverloadPenalty.ActualValue, TardinessPenalty.ActualValue, 
         CoordinatesParameter.ActualValue, DistanceMatrixParameter, UseDistanceMatrixParameter.ActualValue);
 
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Interfaces/IVRPEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Interfaces/IVRPEvaluator.cs	(revision 3946)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Interfaces/IVRPEvaluator.cs	(revision 3947)
@@ -46,4 +46,10 @@
     ILookupParameter<DoubleValue> OverloadParameter { get; }
     ILookupParameter<DoubleValue> TardinessParameter { get; }
+
+    ILookupParameter<DoubleValue> FleetUsageFactor { get; }
+    ILookupParameter<DoubleValue> TimeFactor { get; }
+    ILookupParameter<DoubleValue> DistanceFactor { get; }
+    ILookupParameter<DoubleValue> OverloadPenalty { get; }
+    ILookupParameter<DoubleValue> TardinessPenalty { get; }
   }
 }
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Interfaces/IVRPMoveEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Interfaces/IVRPMoveEvaluator.cs	(revision 3946)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Interfaces/IVRPMoveEvaluator.cs	(revision 3947)
@@ -45,4 +45,10 @@
     ILookupParameter<DoubleValue> MoveOverloadParameter { get; }
     ILookupParameter<DoubleValue> MoveTardinessParameter { get; }
+
+    ILookupParameter<DoubleValue> FleetUsageFactor { get; }
+    ILookupParameter<DoubleValue> TimeFactor { get; }
+    ILookupParameter<DoubleValue> DistanceFactor { get; }
+    ILookupParameter<DoubleValue> OverloadPenalty { get; }
+    ILookupParameter<DoubleValue> TardinessPenalty { get; }
   }
 }
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/MoveEvaluators/VRPMoveEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/MoveEvaluators/VRPMoveEvaluator.cs	(revision 3946)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/MoveEvaluators/VRPMoveEvaluator.cs	(revision 3947)
@@ -69,18 +69,18 @@
       get { return (ILookupParameter<DoubleArray>)Parameters["ServiceTime"]; }
     }
-    public IValueParameter<DoubleValue> FleetUsageFactor {
-      get { return (IValueParameter<DoubleValue>)Parameters["FleetUsageFactor"]; }
+    public ILookupParameter<DoubleValue> FleetUsageFactor {
+      get { return (ILookupParameter<DoubleValue>)Parameters["FleetUsageFactor"]; }
     }
-    public IValueParameter<DoubleValue> TimeFactor {
-      get { return (IValueParameter<DoubleValue>)Parameters["TimeFactor"]; }
+    public ILookupParameter<DoubleValue> TimeFactor {
+      get { return (ILookupParameter<DoubleValue>)Parameters["TimeFactor"]; }
     }
-    public IValueParameter<DoubleValue> DistanceFactor {
-      get { return (IValueParameter<DoubleValue>)Parameters["DistanceFactor"]; }
+    public ILookupParameter<DoubleValue> DistanceFactor {
+      get { return (ILookupParameter<DoubleValue>)Parameters["DistanceFactor"]; }
     }
-    public IValueParameter<DoubleValue> OverloadPenalty {
-      get { return (IValueParameter<DoubleValue>)Parameters["OverloadPenalty"]; }
+    public ILookupParameter<DoubleValue> OverloadPenalty {
+      get { return (ILookupParameter<DoubleValue>)Parameters["OverloadPenalty"]; }
     }
-    public IValueParameter<DoubleValue> TardinessPenalty {
-      get { return (IValueParameter<DoubleValue>)Parameters["TardinessPenalty"]; }
+    public ILookupParameter<DoubleValue> TardinessPenalty {
+      get { return (ILookupParameter<DoubleValue>)Parameters["TardinessPenalty"]; }
     }
 
@@ -126,9 +126,9 @@
       Parameters.Add(new LookupParameter<DoubleArray>("DueTime", "The due time of each customer."));
       Parameters.Add(new LookupParameter<DoubleArray>("ServiceTime", "The service time of each customer."));
-      Parameters.Add(new ValueParameter<DoubleValue>("FleetUsageFactor", "The fleet usage factor considered in the evaluation.", new DoubleValue(0)));
-      Parameters.Add(new ValueParameter<DoubleValue>("TimeFactor", "The time factor considered in the evaluation.", new DoubleValue(0)));
-      Parameters.Add(new ValueParameter<DoubleValue>("DistanceFactor", "The distance factor considered in the evaluation.", new DoubleValue(1)));
-      Parameters.Add(new ValueParameter<DoubleValue>("OverloadPenalty", "The overload penalty considered in the evaluation.", new DoubleValue(50)));
-      Parameters.Add(new ValueParameter<DoubleValue>("TardinessPenalty", "The tardiness penalty considered in the evaluation.", new DoubleValue(50)));
+      Parameters.Add(new LookupParameter<DoubleValue>("FleetUsageFactor", "The fleet usage factor considered in the evaluation."));
+      Parameters.Add(new LookupParameter<DoubleValue>("TimeFactor", "The time factor considered in the evaluation."));
+      Parameters.Add(new LookupParameter<DoubleValue>("DistanceFactor", "The distance factor considered in the evaluation."));
+      Parameters.Add(new LookupParameter<DoubleValue>("OverloadPenalty", "The overload penalty considered in the evaluation."));
+      Parameters.Add(new LookupParameter<DoubleValue>("TardinessPenalty", "The tardiness penalty considered in the evaluation."));
     }
 
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/SolomonParser.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/SolomonParser.cs	(revision 3946)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/SolomonParser.cs	(revision 3947)
@@ -145,5 +145,5 @@
         readyTime.Add((double)int.Parse(m[4].Value));
         double st = (double)int.Parse(m[6].Value);
-        dueTime.Add(st + (double)int.Parse(m[5].Value));
+        dueTime.Add((double)int.Parse(m[5].Value));
         serviceTime.Add(st);
         line = reader.ReadLine();
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/VehicleRoutingProblem.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/VehicleRoutingProblem.cs	(revision 3946)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/VehicleRoutingProblem.cs	(revision 3947)
@@ -90,4 +90,19 @@
       get { return EvaluatorParameter; }
     }
+    public IValueParameter<DoubleValue> FleetUsageFactor {
+      get { return (IValueParameter<DoubleValue>)Parameters["FleetUsageFactor"]; }
+    }
+    public IValueParameter<DoubleValue> TimeFactor {
+      get { return (IValueParameter<DoubleValue>)Parameters["TimeFactor"]; }
+    }
+    public IValueParameter<DoubleValue> DistanceFactor {
+      get { return (IValueParameter<DoubleValue>)Parameters["DistanceFactor"]; }
+    }
+    public IValueParameter<DoubleValue> OverloadPenalty {
+      get { return (IValueParameter<DoubleValue>)Parameters["OverloadPenalty"]; }
+    }
+    public IValueParameter<DoubleValue> TardinessPenalty {
+      get { return (IValueParameter<DoubleValue>)Parameters["TardinessPenalty"]; }
+    }
     public OptionalValueParameter<DoubleValue> BestKnownQualityParameter {
       get { return (OptionalValueParameter<DoubleValue>)Parameters["BestKnownQuality"]; }
@@ -181,4 +196,9 @@
       Parameters.Add(new ValueParameter<DoubleArray>("ServiceTime", "The service time of each customer.", new DoubleArray()));
       Parameters.Add(new OptionalValueParameter<DoubleValue>("BestKnownQuality", "The quality of the best known solution of this VRP instance."));
+      Parameters.Add(new ValueParameter<DoubleValue>("FleetUsageFactor", "The fleet usage factor considered in the evaluation.", new DoubleValue(100)));
+      Parameters.Add(new ValueParameter<DoubleValue>("TimeFactor", "The time factor considered in the evaluation.", new DoubleValue(0)));
+      Parameters.Add(new ValueParameter<DoubleValue>("DistanceFactor", "The distance factor considered in the evaluation.", new DoubleValue(1)));
+      Parameters.Add(new ValueParameter<DoubleValue>("OverloadPenalty", "The overload penalty considered in the evaluation.", new DoubleValue(100)));
+      Parameters.Add(new ValueParameter<DoubleValue>("TardinessPenalty", "The tardiness penalty considered in the evaluation.", new DoubleValue(100)));
 
       Parameters.Add(new ValueParameter<IVRPCreator>("SolutionCreator", "The operator which should be used to create new VRP solutions.", creator));
@@ -343,4 +363,9 @@
       Evaluator.DueTimeParameter.ActualName = DueTimeParameter.Name;
       Evaluator.ServiceTimeParameter.ActualName = ServiceTimeParameter.Name;
+      Evaluator.FleetUsageFactor.ActualName = FleetUsageFactor.Name;
+      Evaluator.TimeFactor.ActualName = TimeFactor.Name;
+      Evaluator.DistanceFactor.ActualName = DistanceFactor.Name;
+      Evaluator.OverloadPenalty.ActualName = OverloadPenalty.Name;
+      Evaluator.TardinessPenalty.ActualName = TardinessPenalty.Name;
     }
     private void ParameterizeAnalyzer() {
@@ -369,4 +394,9 @@
         op.DueTimeParameter.ActualName = DueTimeParameter.Name;
         op.ServiceTimeParameter.ActualName = ServiceTimeParameter.Name;
+        op.FleetUsageFactor.ActualName = FleetUsageFactor.Name;
+        op.TimeFactor.ActualName = TimeFactor.Name;
+        op.DistanceFactor.ActualName = DistanceFactor.Name;
+        op.OverloadPenalty.ActualName = OverloadPenalty.Name;
+        op.TardinessPenalty.ActualName = TardinessPenalty.Name;
       }
       string translocationMove = Operators.OfType<IMoveGenerator>().OfType<IPermutationTranslocationMoveOperator>().First().TranslocationMoveParameter.ActualName;
