Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/29/10 20:34:10 (13 years ago)
Author:
mkommend
Message:

Worked on VRP project (ticket #922).

Location:
branches/CloningRefactoring
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • branches/CloningRefactoring/HeuristicLab.Problems.OneMax/3.3/OneMaxSolution.cs

    r4681 r4691  
    7575      Initialize();
    7676    }
     77    public override IDeepCloneable Clone(Cloner cloner) {
     78      return new OneMaxSolution(this, cloner);
     79    }
    7780    public OneMaxSolution() : base() { }
    7881    public OneMaxSolution(BinaryVector binaryVector, DoubleValue quality)
  • branches/CloningRefactoring/HeuristicLab.Problems.TravelingSalesman/3.3/Evaluators/TSPEuclideanPathEvaluator.cs

    r4683 r4691  
    3333  public sealed class TSPEuclideanPathEvaluator : TSPCoordinatesPathEvaluator {
    3434    [StorableConstructor]
    35     protected TSPEuclideanPathEvaluator(bool deserializing) : base(deserializing) { }
    36     protected TSPEuclideanPathEvaluator(TSPEuclideanPathEvaluator original, Cloner cloner) : base(original, cloner) { }
     35    private TSPEuclideanPathEvaluator(bool deserializing) : base(deserializing) { }
     36    private TSPEuclideanPathEvaluator(TSPEuclideanPathEvaluator original, Cloner cloner) : base(original, cloner) { }
    3737    public TSPEuclideanPathEvaluator() : base() { }
    3838
  • branches/CloningRefactoring/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Crossovers/AlbaPermutationCrossover.cs

    r4690 r4691  
    2020#endregion
    2121
     22using HeuristicLab.Common;
    2223using HeuristicLab.Core;
    2324using HeuristicLab.Encodings.PermutationEncoding;
    2425using HeuristicLab.Parameters;
    2526using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    26 using HeuristicLab.Data;
    27 using HeuristicLab.Common;
    2827
    2928namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
    3029  [Item("AlbaPermutationCrossover", "An operator which crosses two VRP representations using a standard permutation operator.  It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")]
    3130  [StorableClass]
    32   public sealed class AlbaPermutationCrossover : AlbaCrossover {   
     31  public sealed class AlbaPermutationCrossover : AlbaCrossover {
    3332    public IValueLookupParameter<IPermutationCrossover> InnerCrossoverParameter {
    3433      get { return (IValueLookupParameter<IPermutationCrossover>)Parameters["InnerCrossover"]; }
     
    3938    private AlbaPermutationCrossover(AlbaPermutationCrossover original, Cloner cloner)
    4039      : base(original, cloner) {
     40    }
     41    public override IDeepCloneable Clone(Cloner cloner) {
     42      return new AlbaPermutationCrossover(this, cloner);
    4143    }
    4244    public AlbaPermutationCrossover()
  • branches/CloningRefactoring/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/LambdaInterchange/AlbaLambdaInterchangeMove.cs

    r4690 r4691  
    2020#endregion
    2121
     22using HeuristicLab.Common;
    2223using HeuristicLab.Core;
     24using HeuristicLab.Data;
    2325using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    24 using HeuristicLab.Encodings.PermutationEncoding;
    25 using HeuristicLab.Common;
    26 using System.Collections.Generic;
    2726using HeuristicLab.Problems.VehicleRouting.Encodings.General;
    28 using HeuristicLab.Data;
    2927
    3028namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
    3129  [Item("InversionMove", "Item that describes a lambda move on a VRP representation.  It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")]
    3230  [StorableClass]
    33   public class AlbaLambdaInterchangeMove: Item, IVRPMove {
     31  public class AlbaLambdaInterchangeMove : Item, IVRPMove {
    3432    [Storable]
    3533    public IVRPEncoding Individual { get; protected set; }
    36    
     34
    3735    [Storable]
    3836    public int Tour1 { get; protected set; }
     
    5553    [StorableConstructor]
    5654    protected AlbaLambdaInterchangeMove(bool deserializing) : base(deserializing) { }
    57     protected AlbaLambdaInterchangeMove(AlbaLambdaInterchangeMove original, Cloner cloner)      : base(original, cloner) {
     55    protected AlbaLambdaInterchangeMove(AlbaLambdaInterchangeMove original, Cloner cloner)
     56      : base(original, cloner) {
    5857      Tour1 = original.Tour1;
    5958      Position1 = original.Position1;
     
    6665      Individual = cloner.Clone(original.Individual);
    6766    }
     67    public override IDeepCloneable Clone(Cloner cloner) {
     68      return new AlbaLambdaInterchangeMove(this, cloner);
     69    }
    6870
    69     public AlbaLambdaInterchangeMove(): base() {
     71    public AlbaLambdaInterchangeMove()
     72      : base() {
    7073      Tour1 = -1;
    7174      Position1 = -1;
     
    7982    }
    8083
    81     public AlbaLambdaInterchangeMove(int tour1, int position1, int length1, 
     84    public AlbaLambdaInterchangeMove(int tour1, int position1, int length1,
    8285      int tour2, int position2, int length2, AlbaEncoding permutation) {
    83         Tour1 = tour1;
    84         Position1 = position1;
    85         Length1 = length1;
     86      Tour1 = tour1;
     87      Position1 = position1;
     88      Length1 = length1;
    8689
    87         Tour2 = tour2;
    88         Position2 = position2;
    89         Length2 = length2;
     90      Tour2 = tour2;
     91      Position2 = position2;
     92      Length2 = length2;
    9093
    91         this.Individual = permutation.Clone() as AlbaEncoding;
     94      this.Individual = permutation.Clone() as AlbaEncoding;
    9295    }
    9396
     
    9699    public TourEvaluation GetMoveQuality(
    97100      IntValue vehicles,
    98       DoubleArray dueTimeArray, DoubleArray serviceTimeArray, DoubleArray readyTimeArray, 
     101      DoubleArray dueTimeArray, DoubleArray serviceTimeArray, DoubleArray readyTimeArray,
    99102      DoubleArray demandArray, DoubleValue capacity, DoubleMatrix coordinates,
    100103      DoubleValue fleetUsageFactor, DoubleValue timeFactor, DoubleValue distanceFactor,
    101104      DoubleValue overloadPenalty, DoubleValue tardinessPenalty,
    102105      ILookupParameter<DoubleMatrix> distanceMatrix, Data.BoolValue useDistanceMatrix) {
    103         return AlbaLambdaInterchangeMoveEvaluator.GetMoveQuality(Individual as AlbaEncoding, this, vehicles,
    104           dueTimeArray, serviceTimeArray, readyTimeArray, demandArray, capacity,
    105           coordinates, fleetUsageFactor, timeFactor, distanceFactor,
    106           overloadPenalty, tardinessPenalty, distanceMatrix, useDistanceMatrix);
     106      return AlbaLambdaInterchangeMoveEvaluator.GetMoveQuality(Individual as AlbaEncoding, this, vehicles,
     107        dueTimeArray, serviceTimeArray, readyTimeArray, demandArray, capacity,
     108        coordinates, fleetUsageFactor, timeFactor, distanceFactor,
     109        overloadPenalty, tardinessPenalty, distanceMatrix, useDistanceMatrix);
    107110    }
    108111
  • branches/CloningRefactoring/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Creators/PushForwardInsertionCreator.cs

    r4687 r4691  
    6060    [StorableConstructor]
    6161    private PushForwardCreator(bool deserializing) : base(deserializing) { }
    62     protected PushForwardCreator(PushForwardCreator original, Cloner cloner) : base(original, cloner) { }
     62    private PushForwardCreator(PushForwardCreator original, Cloner cloner) : base(original, cloner) { }
    6363    public override IDeepCloneable Clone(Cloner cloner) {
    6464      return new PushForwardCreator(this, cloner);
  • branches/CloningRefactoring/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/Crossovers/RandomParentCloneCrossover.cs

    r4687 r4691  
    3636    [StorableConstructor]
    3737    private RandomParentCloneCrossover(bool deserializing) : base(deserializing) { }
    38     protected RandomParentCloneCrossover(RandomParentCloneCrossover original, Cloner cloner) : base(original, cloner) { }
     38    private RandomParentCloneCrossover(RandomParentCloneCrossover original, Cloner cloner) : base(original, cloner) { }
    3939    public override IDeepCloneable Clone(Cloner cloner) {
    4040      return new RandomParentCloneCrossover(this, cloner);
    4141    }
     42
    4243
    4344    public RandomParentCloneCrossover()
  • branches/CloningRefactoring/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/Crossovers/PotvinCrossover.cs

    r4352 r4691  
    2020#endregion
    2121
     22using System.Collections.Generic;
     23using HeuristicLab.Common;
    2224using HeuristicLab.Core;
    23 using HeuristicLab.Encodings.PermutationEncoding;
     25using HeuristicLab.Optimization;
    2426using HeuristicLab.Parameters;
    2527using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    26 using HeuristicLab.Data;
    27 using HeuristicLab.Optimization;
    28 using System.Collections.Generic;
    2928
    3029namespace HeuristicLab.Problems.VehicleRouting.Encodings.Potvin {
     
    3837    [StorableConstructor]
    3938    protected PotvinCrossover(bool deserializing) : base(deserializing) { }
     39    protected PotvinCrossover(PotvinCrossover original, Cloner cloner)
     40      : base(original, cloner) {
     41    }
    4042
    4143    public PotvinCrossover() {
     
    6870    protected bool Repair(IRandom random, PotvinEncoding solution, Tour newTour) {
    6971      bool success = true;
    70      
     72
    7173      //remove duplicates from new tour     
    7274      for (int i = 0; i < newTour.Cities.Count; i++) {
     
    8082        }
    8183      }
    82       while(newTour.Cities.Contains(0))
     84      while (newTour.Cities.Contains(0))
    8385        newTour.Cities.Remove(0);
    8486
     
    108110
    109111        int route, place;
    110         if(FindInsertionPlace(solution, unrouted, out route, out place)) {
     112        if (FindInsertionPlace(solution, unrouted, out route, out place)) {
    111113          solution.Tours[route].Cities.Insert(place, unrouted);
    112114        } else {
  • branches/CloningRefactoring/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/Crossovers/PotvinRouteBasedCrossover.cs

    r4352 r4691  
    2020#endregion
    2121
     22using HeuristicLab.Common;
    2223using HeuristicLab.Core;
    23 using HeuristicLab.Encodings.PermutationEncoding;
    24 using HeuristicLab.Parameters;
    2524using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    26 using HeuristicLab.Data;
    2725
    2826namespace HeuristicLab.Problems.VehicleRouting.Encodings.Potvin {
     
    3230    [StorableConstructor]
    3331    private PotvinRouteBasedCrossover(bool deserializing) : base(deserializing) { }
    34 
     32    private PotvinRouteBasedCrossover(PotvinRouteBasedCrossover original, Cloner cloner)
     33      : base(original, cloner) {
     34    }
     35    public override IDeepCloneable Clone(Cloner cloner) {
     36      return new PotvinRouteBasedCrossover(this, cloner);
     37    }
    3538    public PotvinRouteBasedCrossover()
    3639      : base() { }
    37      
     40
    3841    protected override PotvinEncoding Crossover(IRandom random, PotvinEncoding parent1, PotvinEncoding parent2) {
    3942      PotvinEncoding child = parent2.Clone() as PotvinEncoding;
     
    5558        return child;
    5659      else {
    57         if(random.NextDouble() < 0.5)
     60        if (random.NextDouble() < 0.5)
    5861          return parent1.Clone() as PotvinEncoding;
    5962        else
  • branches/CloningRefactoring/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/Crossovers/PotvinSequenceBasedCrossover.cs

    r4352 r4691  
    2020#endregion
    2121
     22using HeuristicLab.Common;
    2223using HeuristicLab.Core;
    23 using HeuristicLab.Encodings.PermutationEncoding;
    24 using HeuristicLab.Parameters;
    2524using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    26 using HeuristicLab.Data;
    2725
    2826namespace HeuristicLab.Problems.VehicleRouting.Encodings.Potvin {
     
    3230    [StorableConstructor]
    3331    private PotvinSequenceBasedCrossover(bool deserializing) : base(deserializing) { }
     32    private PotvinSequenceBasedCrossover(PotvinSequenceBasedCrossover original, Cloner cloner)
     33      : base(original, cloner) {
     34    }
     35    public override IDeepCloneable Clone(Cloner cloner) {
     36      return new PotvinSequenceBasedCrossover(this, cloner);
     37    }
    3438
    3539    public PotvinSequenceBasedCrossover()
    3640      : base() { }
    37        
     41
    3842    protected override PotvinEncoding Crossover(IRandom random, PotvinEncoding parent1, PotvinEncoding parent2) {
    3943      PotvinEncoding child = parent1.Clone() as PotvinEncoding;
  • branches/CloningRefactoring/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/Manipulators/PotvinLocalSearchManipulator.cs

    r4352 r4691  
    2020#endregion
    2121
     22using System.Collections.Generic;
     23using HeuristicLab.Common;
    2224using HeuristicLab.Core;
    23 using HeuristicLab.Encodings.PermutationEncoding;
     25using HeuristicLab.Data;
    2426using HeuristicLab.Parameters;
    2527using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    26 using HeuristicLab.Data;
    27 using System.Collections.Generic;
    2828
    2929namespace HeuristicLab.Problems.VehicleRouting.Encodings.Potvin {
     
    3737    [StorableConstructor]
    3838    private PotvinLocalSearchManipulator(bool deserializing) : base(deserializing) { }
    39 
    40     public PotvinLocalSearchManipulator() : base() {
     39    private PotvinLocalSearchManipulator(PotvinLocalSearchManipulator original, Cloner cloner)
     40      : base(original, cloner) {
     41    }
     42    public override IDeepCloneable Clone(Cloner cloner) {
     43      return new PotvinLocalSearchManipulator(this, cloner);
     44    }
     45    public PotvinLocalSearchManipulator()
     46      : base() {
    4147      Parameters.Add(new ValueParameter<IntValue>("Iterations", "The number of max iterations.", new IntValue(100)));
    4248    }
     
    7177          }
    7278          individual.Tours[currentTour].Cities.RemoveRange(currentCity, length);
    73          
     79
    7480          currentCity++;
    7581        }
     
    106112                  individual.Tours[insertionTour].Cities.InsertRange(
    107113                    insertionPlace,
    108                     toBeInserted); 
     114                    toBeInserted);
    109115                }
    110116                city++;
     
    115121          }
    116122          iterations++;
    117         } while (insertionFound && 
     123        } while (insertionFound &&
    118124          iterations < Iterations.Value.Value);
    119125
  • branches/CloningRefactoring/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/Manipulators/PotvinManipulator.cs

    r4352 r4691  
    2020#endregion
    2121
     22using HeuristicLab.Common;
    2223using HeuristicLab.Core;
    23 using HeuristicLab.Encodings.PermutationEncoding;
     24using HeuristicLab.Optimization;
    2425using HeuristicLab.Parameters;
    2526using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    26 using HeuristicLab.Data;
    27 using HeuristicLab.Optimization;
    2827
    2928namespace HeuristicLab.Problems.VehicleRouting.Encodings.Potvin {
     
    3736    [StorableConstructor]
    3837    protected PotvinManipulator(bool deserializing) : base(deserializing) { }
    39 
     38    protected PotvinManipulator(PotvinManipulator original, Cloner cloner)
     39      : base(original, cloner) {
     40    }
    4041    public PotvinManipulator() {
    4142      Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator which should be used for stochastic manipulation operators."));
     
    7374    protected bool FindInsertionPlace(PotvinEncoding individual, int city, int routeToAvoid, out int route, out int place) {
    7475      return individual.FindInsertionPlace(
    75         DueTimeParameter.ActualValue, ServiceTimeParameter.ActualValue, ReadyTimeParameter.ActualValue, 
    76         DemandParameter.ActualValue, CapacityParameter.ActualValue, CoordinatesParameter.ActualValue, 
     76        DueTimeParameter.ActualValue, ServiceTimeParameter.ActualValue, ReadyTimeParameter.ActualValue,
     77        DemandParameter.ActualValue, CapacityParameter.ActualValue, CoordinatesParameter.ActualValue,
    7778        DistanceMatrixParameter, UseDistanceMatrixParameter.ActualValue,
    7879        city, routeToAvoid, out route, out place);
    7980    }
    80    
     81
    8182    public override IOperation Apply() {
    8283      IVRPEncoding solution = VRPToursParameter.ActualValue;
     
    8485        VRPToursParameter.ActualValue = PotvinEncoding.ConvertFrom(solution, DistanceMatrixParameter);
    8586      }
    86      
     87
    8788      Manipulate(RandomParameter.ActualValue, VRPToursParameter.ActualValue as PotvinEncoding);
    8889
  • branches/CloningRefactoring/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/Manipulators/PotvinOneLevelExchangeManipulator.cs

    r4352 r4691  
    2020#endregion
    2121
     22using System.Collections.Generic;
     23using HeuristicLab.Common;
    2224using HeuristicLab.Core;
    23 using HeuristicLab.Encodings.PermutationEncoding;
    24 using HeuristicLab.Parameters;
    2525using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    26 using HeuristicLab.Data;
    27 using System.Collections.Generic;
    2826
    2927namespace HeuristicLab.Problems.VehicleRouting.Encodings.Potvin {
     
    3331    [StorableConstructor]
    3432    private PotvinOneLevelExchangeMainpulator(bool deserializing) : base(deserializing) { }
     33    private PotvinOneLevelExchangeMainpulator(PotvinOneLevelExchangeMainpulator original, Cloner cloner)
     34      : base(original, cloner) {
     35    }
     36    public override IDeepCloneable Clone(Cloner cloner) {
     37      return new PotvinOneLevelExchangeMainpulator(this, cloner);
     38    }
     39    public PotvinOneLevelExchangeMainpulator() : base() { }
    3540
    36     public PotvinOneLevelExchangeMainpulator() : base() { }
    37    
    3841    protected override void Manipulate(IRandom random, PotvinEncoding individual) {
    3942      int selectedIndex = SelectRandomTourBiasedByLength(random, individual);
     
    5255
    5356      route1.Cities.RemoveAll(
    54         new System.Predicate<int>( 
     57        new System.Predicate<int>(
    5558          delegate(int val) {
    56             return (replaced.Contains(val)); 
     59            return (replaced.Contains(val));
    5760          }
    5861        )
  • branches/CloningRefactoring/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/Manipulators/PotvinTwoLevelExchangeManipulator.cs

    r4352 r4691  
    2020#endregion
    2121
     22using HeuristicLab.Common;
    2223using HeuristicLab.Core;
    23 using HeuristicLab.Encodings.PermutationEncoding;
    24 using HeuristicLab.Parameters;
    2524using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    26 using HeuristicLab.Data;
    27 using System.Collections.Generic;
    2825
    2926namespace HeuristicLab.Problems.VehicleRouting.Encodings.Potvin {
     
    3330    [StorableConstructor]
    3431    private PotvinTwoLevelExchangeManipulator(bool deserializing) : base(deserializing) { }
     32    private PotvinTwoLevelExchangeManipulator(PotvinTwoLevelExchangeManipulator original, Cloner cloner) : base(original, cloner) { }
     33    public override IDeepCloneable Clone(Cloner cloner) {
     34      return new PotvinTwoLevelExchangeManipulator(this, cloner);
     35    }
     36    public PotvinTwoLevelExchangeManipulator() : base() { }
    3537
    36     public PotvinTwoLevelExchangeManipulator() : base() { }
    37    
    3838    protected override void Manipulate(IRandom random, PotvinEncoding individual) {
    3939      int selectedIndex = SelectRandomTourBiasedByLength(random, individual);
     
    5454                if (FindInsertionPlace(individual,
    5555                  customer2, selectedIndex, out route, out place)) {
    56                     individual.Tours[route].Cities.Insert(place, customer2);
     56                  individual.Tours[route].Cities.Insert(place, customer2);
    5757                  route1.Cities.RemoveAt(customer1Position);
    5858
  • branches/CloningRefactoring/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/PotvinEncoding.cs

    r4352 r4691  
    2020#endregion
    2121
     22using System.Collections.Generic;
    2223using HeuristicLab.Common;
    2324using HeuristicLab.Core;
    2425using HeuristicLab.Data;
    25 using HeuristicLab.Encodings.PermutationEncoding;
    2626using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    27 using System.Drawing;
    28 using System.Collections.Generic;
    2927using HeuristicLab.Problems.VehicleRouting.Encodings.General;
    3028
     
    3230  [Item("PotvinEncoding", "Represents a potvin encoding of VRP solutions. It is implemented as described in Potvin, J.-Y. and Bengio, S. (1996). The Vehicle Routing Problem with Time Windows - Part II: Genetic Search. INFORMS Journal of Computing, 8:165–172.")]
    3331  [StorableClass]
    34   public class PotvinEncoding : TourEncoding {   
     32  public class PotvinEncoding : TourEncoding {
    3533    [Storable]
    3634    public List<int> Unrouted { get; set; }
    3735
    38     public override IDeepCloneable Clone(HeuristicLab.Common.Cloner cloner) {
    39       PotvinEncoding clone = new PotvinEncoding();
    40       cloner.RegisterClonedObject(this, clone);
    41       clone.Tours = (ItemList<Tour>)cloner.Clone(this.Tours);
    42       clone.Unrouted = new List<int>(Unrouted);
    43       return clone;
    44     }
    45 
    46     public PotvinEncoding(): base() {
     36    public PotvinEncoding()
     37      : base() {
    4738      Unrouted = new List<int>();
    4839    }
    49 
     40    protected PotvinEncoding(PotvinEncoding original, Cloner cloner)
     41      : base(original, cloner) {
     42      Tours = cloner.Clone(original.Tours);
     43      Unrouted = new List<int>(original.Unrouted);
     44    }
     45    public override IDeepCloneable Clone(Cloner cloner) {
     46      return new PotvinEncoding(this, cloner);
     47    }
    5048    [StorableConstructor]
    5149    private PotvinEncoding(bool serializing)
    5250      : base() {
    5351    }
    54    
     52
    5553    public static PotvinEncoding ConvertFrom(IVRPEncoding encoding, ILookupParameter<DoubleMatrix> distanceMatrix) {
    5654      PotvinEncoding solution = new PotvinEncoding();
     
    8583            Tours[tour].Cities.Insert(i, city);
    8684
    87             if (Tours[tour].Feasible(dueTimeArray, serviceTimeArray, readyTimeArray, demandArray, 
     85            if (Tours[tour].Feasible(dueTimeArray, serviceTimeArray, readyTimeArray, demandArray,
    8886              capacity, coordinates, distanceMatrix, useDistanceMatrix)) {
    89                 double newLength = Tours[tour].GetLength(coordinates, distanceMatrix, useDistanceMatrix);
     87              double newLength = Tours[tour].GetLength(coordinates, distanceMatrix, useDistanceMatrix);
    9088
    9189              double detour = newLength - length;
  • branches/CloningRefactoring/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Zhu/Manipulators/ZhuPermutationManipulator.cs

    r4687 r4691  
    2020#endregion
    2121
     22using HeuristicLab.Common;
    2223using HeuristicLab.Core;
    2324using HeuristicLab.Encodings.PermutationEncoding;
    2425using HeuristicLab.Parameters;
    2526using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    26 using HeuristicLab.Data;
    2727
    2828namespace HeuristicLab.Problems.VehicleRouting.Encodings.Zhu {
     
    4444    public ZhuPermutationManipulator()
    4545      : base() {
    46         Parameters.Add(new ValueLookupParameter<IPermutationManipulator>("InnerManipulator", "The permutation manipulator.", new TranslocationManipulator()));
     46      Parameters.Add(new ValueLookupParameter<IPermutationManipulator>("InnerManipulator", "The permutation manipulator.", new TranslocationManipulator()));
    4747    }
    4848
  • branches/CloningRefactoring/HeuristicLab.Problems.VehicleRouting/3.3/VRPSolution.cs

    r4690 r4691  
    223223    private VRPSolution(bool deserializing) : base(deserializing) { }
    224224
    225     protected VRPSolution(VRPSolution original, Cloner cloner)
     225    private VRPSolution(VRPSolution original, Cloner cloner)
    226226      : base(original, cloner) {
    227227      coordinates = cloner.Clone(original.coordinates);
Note: See TracChangeset for help on using the changeset viewer.