Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Creators/DefaultRepresentationCreator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Creators/DefaultRepresentationCreator.cs	(revision 4539)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Creators/DefaultRepresentationCreator.cs	(revision 4722)
@@ -20,12 +20,8 @@
 #endregion
 
+using System.Collections.Generic;
+using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Operators;
-using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using System.Collections.Generic;
-using HeuristicLab.Problems.VehicleRouting.Encodings;
-using HeuristicLab.Problems.VehicleRouting.Encodings.Alba;
 using HeuristicLab.Problems.VehicleRouting.Encodings.Potvin;
 
@@ -38,4 +34,5 @@
     [StorableConstructor]
     protected DefaultRepresentationCreator(bool deserializing) : base(deserializing) { }
+    protected DefaultRepresentationCreator(DefaultRepresentationCreator original, Cloner cloner) : base(original, cloner) { }
 
     public DefaultRepresentationCreator() : base() { }
@@ -46,5 +43,5 @@
 
       return base.Apply();
-    }    
+    }
   }
 }
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Creators/MultiVRPSolutionCreator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Creators/MultiVRPSolutionCreator.cs	(revision 4539)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Creators/MultiVRPSolutionCreator.cs	(revision 4722)
@@ -23,5 +23,7 @@
 using System.Linq;
 using HeuristicLab.Collections;
+using HeuristicLab.Common;
 using HeuristicLab.Core;
+using HeuristicLab.Data;
 using HeuristicLab.Operators;
 using HeuristicLab.Optimization;
@@ -29,5 +31,4 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.Data;
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
@@ -78,23 +79,28 @@
 
     [StorableConstructor]
-    private MultiVRPSolutionCreator(bool deserializing) : base(deserializing) { }
+    protected MultiVRPSolutionCreator(bool deserializing) : base(deserializing) { }
+    protected MultiVRPSolutionCreator(MultiVRPSolutionCreator original, Cloner cloner) : base(original, cloner) { }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new MultiVRPSolutionCreator(this, cloner);
+    }
+
     public MultiVRPSolutionCreator()
       : base() {
-        Parameters.Add(new LookupParameter<IVRPEncoding>("VRPTours", "The new VRP tours."));
+      Parameters.Add(new LookupParameter<IVRPEncoding>("VRPTours", "The new VRP tours."));
 
-        Parameters.Add(new ValueLookupParameter<IntValue>("Cities", "The city count."));
-        Parameters.Add(new LookupParameter<DoubleMatrix>("Coordinates", "The coordinates of the cities."));
-        Parameters.Add(new LookupParameter<DoubleMatrix>("DistanceMatrix", "The matrix which contains the distances between the cities."));
-        Parameters.Add(new LookupParameter<BoolValue>("UseDistanceMatrix", "True if a distance matrix should be calculated and used for evaluation, otherwise false."));
-        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<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 ValueLookupParameter<IntValue>("Cities", "The city count."));
+      Parameters.Add(new LookupParameter<DoubleMatrix>("Coordinates", "The coordinates of the cities."));
+      Parameters.Add(new LookupParameter<DoubleMatrix>("DistanceMatrix", "The matrix which contains the distances between the cities."));
+      Parameters.Add(new LookupParameter<BoolValue>("UseDistanceMatrix", "True if a distance matrix should be calculated and used for evaluation, otherwise false."));
+      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<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."));
 
-        foreach (Type type in ApplicationManager.Manager.GetTypes(typeof(IVRPCreator)).OrderBy(op => op.Name)) {
-          if (!typeof(MultiOperator<IVRPCreator>).IsAssignableFrom(type))
-            Operators.Add((IVRPCreator)Activator.CreateInstance(type), true);
+      foreach (Type type in ApplicationManager.Manager.GetTypes(typeof(IVRPCreator)).OrderBy(op => op.Name)) {
+        if (!typeof(MultiOperator<IVRPCreator>).IsAssignableFrom(type))
+          Operators.Add((IVRPCreator)Activator.CreateInstance(type), true);
       }
     }
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Creators/PushForwardInsertionCreator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Creators/PushForwardInsertionCreator.cs	(revision 4539)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Creators/PushForwardInsertionCreator.cs	(revision 4722)
@@ -22,7 +22,7 @@
 using System;
 using System.Collections.Generic;
+using HeuristicLab.Common;
 using HeuristicLab.Core;
 using HeuristicLab.Data;
-using HeuristicLab.Encodings.PermutationEncoding;
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
@@ -60,4 +60,8 @@
     [StorableConstructor]
     private PushForwardCreator(bool deserializing) : base(deserializing) { }
+    private PushForwardCreator(PushForwardCreator original, Cloner cloner) : base(original, cloner) { }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new PushForwardCreator(this, cloner);
+    }
 
     public PushForwardCreator()
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Creators/RandomCreator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Creators/RandomCreator.cs	(revision 4539)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Creators/RandomCreator.cs	(revision 4722)
@@ -20,9 +20,7 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
+using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Encodings.PermutationEncoding;
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
@@ -41,4 +39,8 @@
     [StorableConstructor]
     private RandomCreator(bool deserializing) : base(deserializing) { }
+    private RandomCreator(RandomCreator original, Cloner cloner) : base(original, cloner) { }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new RandomCreator(this, cloner);
+    }
 
     public RandomCreator()
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Crossovers/MultiVRPSolutionCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Crossovers/MultiVRPSolutionCrossover.cs	(revision 4539)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Crossovers/MultiVRPSolutionCrossover.cs	(revision 4722)
@@ -23,5 +23,7 @@
 using System.Linq;
 using HeuristicLab.Collections;
+using HeuristicLab.Common;
 using HeuristicLab.Core;
+using HeuristicLab.Data;
 using HeuristicLab.Operators;
 using HeuristicLab.Optimization;
@@ -29,5 +31,4 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.Data;
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
@@ -82,8 +83,12 @@
 
     [StorableConstructor]
-    private MultiVRPSolutionCrossover(bool deserializing) : base(deserializing) { }
+    protected MultiVRPSolutionCrossover(bool deserializing) : base(deserializing) { }
+    protected MultiVRPSolutionCrossover(MultiVRPSolutionCrossover original, Cloner cloner) : base(original, cloner) { }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new MultiVRPSolutionCrossover(this, cloner);
+    }
     public MultiVRPSolutionCrossover()
       : base() {
-       Parameters.Add(new ScopeTreeLookupParameter<IVRPEncoding>("Parents", "The parent permutations which should be crossed."));
+      Parameters.Add(new ScopeTreeLookupParameter<IVRPEncoding>("Parents", "The parent permutations which should be crossed."));
       ParentsParameter.ActualName = "VRPTours";
       Parameters.Add(new LookupParameter<IVRPEncoding>("Child", "The child permutation resulting from the crossover."));
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Crossovers/RandomParentCloneCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Crossovers/RandomParentCloneCrossover.cs	(revision 4539)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Crossovers/RandomParentCloneCrossover.cs	(revision 4722)
@@ -20,8 +20,5 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using HeuristicLab.Common;
 using HeuristicLab.Core;
 using HeuristicLab.Optimization;
@@ -39,4 +36,9 @@
     [StorableConstructor]
     private RandomParentCloneCrossover(bool deserializing) : base(deserializing) { }
+    private RandomParentCloneCrossover(RandomParentCloneCrossover original, Cloner cloner) : base(original, cloner) { }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new RandomParentCloneCrossover(this, cloner);
+    }
+
 
     public RandomParentCloneCrossover()
@@ -54,5 +56,5 @@
       Parameters.Remove("ServiceTime");
     }
-    
+
     public override IOperation Apply() {
       if (RandomParameter.ActualValue.Next() < 0.5)
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Manipulators/MultiVRPSolutionManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Manipulators/MultiVRPSolutionManipulator.cs	(revision 4539)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Manipulators/MultiVRPSolutionManipulator.cs	(revision 4722)
@@ -23,5 +23,7 @@
 using System.Linq;
 using HeuristicLab.Collections;
+using HeuristicLab.Common;
 using HeuristicLab.Core;
+using HeuristicLab.Data;
 using HeuristicLab.Operators;
 using HeuristicLab.Optimization;
@@ -29,5 +31,4 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.Data;
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
@@ -78,5 +79,9 @@
 
     [StorableConstructor]
-    private MultiVRPSolutionManipulator(bool deserializing) : base(deserializing) { }
+    protected MultiVRPSolutionManipulator(bool deserializing) : base(deserializing) { }
+    protected MultiVRPSolutionManipulator(MultiVRPSolutionManipulator original, Cloner cloner) : base(original, cloner) { }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new MultiVRPSolutionManipulator(this, cloner);
+    }
     public MultiVRPSolutionManipulator()
       : base() {
@@ -97,6 +102,6 @@
         if (!typeof(MultiOperator<IVRPManipulator>).IsAssignableFrom(type)) {
           IVRPManipulator op = (IVRPManipulator)Activator.CreateInstance(type);
-          bool operatorChecked = true; 
-          if(op is HeuristicLab.Problems.VehicleRouting.Encodings.Potvin.PotvinLocalSearchManipulator || 
+          bool operatorChecked = true;
+          if (op is HeuristicLab.Problems.VehicleRouting.Encodings.Potvin.PotvinLocalSearchManipulator ||
             op is HeuristicLab.Problems.VehicleRouting.Encodings.Prins.PrinsLSManipulator)
             operatorChecked = false;
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Moves/Interfaces/IMultiVRPMoveGenerator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Moves/Interfaces/IMultiVRPMoveGenerator.cs	(revision 4539)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Moves/Interfaces/IMultiVRPMoveGenerator.cs	(revision 4722)
@@ -20,6 +20,4 @@
 #endregion
 
-using HeuristicLab.Core;
-using HeuristicLab.Encodings.PermutationEncoding;
 using HeuristicLab.Optimization;
 
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Moves/Interfaces/IMultiVRPMoveOperator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Moves/Interfaces/IMultiVRPMoveOperator.cs	(revision 4539)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Moves/Interfaces/IMultiVRPMoveOperator.cs	(revision 4722)
@@ -21,6 +21,4 @@
 
 using HeuristicLab.Core;
-using HeuristicLab.Encodings.PermutationEncoding;
-using HeuristicLab.Optimization;
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Moves/Interfaces/IVRPMove.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Moves/Interfaces/IVRPMove.cs	(revision 4539)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Moves/Interfaces/IVRPMove.cs	(revision 4722)
@@ -21,6 +21,4 @@
 
 using HeuristicLab.Core;
-using HeuristicLab.Encodings.PermutationEncoding;
-using HeuristicLab.Optimization;
 using HeuristicLab.Data;
 
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Moves/MultiVRPMoveOperator/MultiVRPMoveEvaluator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Moves/MultiVRPMoveOperator/MultiVRPMoveEvaluator.cs	(revision 4539)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Moves/MultiVRPMoveOperator/MultiVRPMoveEvaluator.cs	(revision 4722)
@@ -20,6 +20,6 @@
 #endregion
 
+using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Encodings.PermutationEncoding;
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -36,8 +36,12 @@
     [StorableConstructor]
     private MultiVRPMoveEvaluator(bool deserializing) : base(deserializing) { }
+    private MultiVRPMoveEvaluator(MultiVRPMoveEvaluator original, Cloner cloner) : base(original, cloner) { }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new MultiVRPMoveEvaluator(this, cloner);
+    }
 
     public MultiVRPMoveEvaluator()
       : base() {
-        Parameters.Add(new LookupParameter<IVRPMove>("VRPMove", "The generated moves."));
+      Parameters.Add(new LookupParameter<IVRPMove>("VRPMove", "The generated moves."));
     }
 
@@ -53,8 +57,8 @@
         CapacityParameter.ActualValue,
         CoordinatesParameter.ActualValue,
-        FleetUsageFactor.ActualValue, 
-        TimeFactor.ActualValue, 
-        DistanceFactor.ActualValue, 
-        OverloadPenalty.ActualValue, 
+        FleetUsageFactor.ActualValue,
+        TimeFactor.ActualValue,
+        DistanceFactor.ActualValue,
+        OverloadPenalty.ActualValue,
         TardinessPenalty.ActualValue,
         DistanceMatrixParameter,
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Moves/MultiVRPMoveOperator/MultiVRPMoveGenerator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Moves/MultiVRPMoveOperator/MultiVRPMoveGenerator.cs	(revision 4539)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Moves/MultiVRPMoveOperator/MultiVRPMoveGenerator.cs	(revision 4722)
@@ -21,7 +21,10 @@
 
 using System;
+using System.Collections.Generic;
 using System.Linq;
 using HeuristicLab.Collections;
+using HeuristicLab.Common;
 using HeuristicLab.Core;
+using HeuristicLab.Data;
 using HeuristicLab.Operators;
 using HeuristicLab.Optimization;
@@ -29,11 +32,9 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.Data;
-using System.Collections.Generic;
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
   [Item("MultiVRPMoveGenerator", "Randomly selects and applies its move generators.")]
   [StorableClass]
-  public class MultiVRPMoveGenerator : CheckedMultiOperator<IMultiVRPMoveGenerator>, IMultiVRPMoveOperator, 
+  public class MultiVRPMoveGenerator : CheckedMultiOperator<IMultiVRPMoveGenerator>, IMultiVRPMoveOperator,
     IStochasticOperator, IMultiMoveGenerator {
     public override bool CanChangeName {
@@ -97,5 +98,9 @@
 
     [StorableConstructor]
-    private MultiVRPMoveGenerator(bool deserializing) : base(deserializing) { }
+    protected MultiVRPMoveGenerator(bool deserializing) : base(deserializing) { }
+    protected MultiVRPMoveGenerator(MultiVRPMoveGenerator original, Cloner cloner) : base(original, cloner) { }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new MultiVRPMoveGenerator(this, cloner);
+    }
     public MultiVRPMoveGenerator()
       : base() {
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Moves/MultiVRPMoveOperator/MultiVRPMoveMaker.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Moves/MultiVRPMoveOperator/MultiVRPMoveMaker.cs	(revision 4539)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Moves/MultiVRPMoveOperator/MultiVRPMoveMaker.cs	(revision 4722)
@@ -20,13 +20,12 @@
 #endregion
 
+using HeuristicLab.Common;
 using HeuristicLab.Core;
 using HeuristicLab.Data;
-using HeuristicLab.Operators;
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using System.Collections.Generic;
 
-namespace HeuristicLab.Problems.VehicleRouting.Encodings.General{
+namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
   [Item("MultiVRPMoveMaker", "Peforms multiple moves on a given VRP encoding and updates the quality.")]
   [StorableClass]
@@ -81,5 +80,9 @@
 
     [StorableConstructor]
-    private LambdaInterchangeMoveMaker(bool deserializing) : base(deserializing) { }
+    protected LambdaInterchangeMoveMaker(bool deserializing) : base(deserializing) { }
+    protected LambdaInterchangeMoveMaker(LambdaInterchangeMoveMaker original, Cloner cloner) : base(original, cloner) { }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new LambdaInterchangeMoveMaker(this, cloner);
+    }
 
     public LambdaInterchangeMoveMaker()
@@ -112,5 +115,5 @@
       DoubleValue moveQuality = MoveQualityParameter.ActualValue;
       DoubleValue quality = QualityParameter.ActualValue;
-     
+
       //perform move
       VRPToursParameter.ActualValue = move.MakeMove();
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/PermutationEncoding.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/PermutationEncoding.cs	(revision 4539)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/PermutationEncoding.cs	(revision 4722)
@@ -20,4 +20,6 @@
 #endregion
 
+using System;
+using System.Collections.Generic;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -25,7 +27,4 @@
 using HeuristicLab.Encodings.PermutationEncoding;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using System.Collections.Generic;
-using HeuristicLab.Problems.VehicleRouting.Encodings.General;
-using System;
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
@@ -48,4 +47,8 @@
       : base() {
     }
+    protected PermutationEncoding(PermutationEncoding original, Cloner cloner)
+      : base(original, cloner) {
+    }
+
 
     public int IndexOf(int city) {
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/TourEncoding.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/TourEncoding.cs	(revision 4539)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/TourEncoding.cs	(revision 4722)
@@ -20,11 +20,10 @@
 #endregion
 
+using System.Collections.Generic;
+using System.Drawing;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
 using HeuristicLab.Data;
-using HeuristicLab.Encodings.PermutationEncoding;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using System.Drawing;
-using System.Collections.Generic;
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
@@ -35,5 +34,5 @@
       get { return HeuristicLab.Common.Resources.VS2008ImageLibrary.Class; }
     }
-    
+
     #region IVRPEncoding Members
     public virtual List<Tour> GetTours(ILookupParameter<DoubleMatrix> distanceMatrix = null, int maxVehicles = int.MaxValue) {
@@ -51,6 +50,5 @@
 
     public int Cities {
-      get 
-      {
+      get {
         int cities = 0;
 
@@ -75,4 +73,7 @@
       : base() {
     }
+    protected TourEncoding(TourEncoding original, Cloner cloner)
+      : base(original, cloner) {
+    }
 
     public static void ConvertFrom(IVRPEncoding encoding, TourEncoding solution, ILookupParameter<DoubleMatrix> distanceMatrix) {
@@ -82,5 +83,5 @@
     public static void ConvertFrom(List<int> route, TourEncoding solution) {
       solution.Tours = new ItemList<Tour>();
-      
+
       Tour tour = new Tour();
       for (int i = 0; i < route.Count; i++) {
