Changeset 4722 for trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/PotvinEncoding.cs
- Timestamp:
- 11/06/10 01:56:04 (13 years ago)
- Location:
- trunk/sources
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources
- Property svn:mergeinfo changed
/branches/CloningRefactoring (added) merged: 4656-4693,4696-4697,4711-4714,4718-4719
- Property svn:mergeinfo changed
-
trunk/sources/HeuristicLab.Problems.VehicleRouting
- Property svn:mergeinfo changed
/branches/CloningRefactoring/HeuristicLab.Problems.VehicleRouting (added) merged: 4686-4687,4689-4693,4696-4697
- Property svn:mergeinfo changed
-
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/PotvinEncoding.cs
r4352 r4722 20 20 #endregion 21 21 22 using System.Collections.Generic; 22 23 using HeuristicLab.Common; 23 24 using HeuristicLab.Core; 24 25 using HeuristicLab.Data; 25 using HeuristicLab.Encodings.PermutationEncoding;26 26 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 27 using System.Drawing;28 using System.Collections.Generic;29 27 using HeuristicLab.Problems.VehicleRouting.Encodings.General; 30 28 … … 32 30 [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.")] 33 31 [StorableClass] 34 public class PotvinEncoding : TourEncoding { 32 public class PotvinEncoding : TourEncoding { 35 33 [Storable] 36 34 public List<int> Unrouted { get; set; } 37 35 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;36 [StorableConstructor] 37 protected PotvinEncoding(bool deserializing) : base(deserializing) { } 38 protected PotvinEncoding(PotvinEncoding original, Cloner cloner) 39 : base(original, cloner) { 40 Tours = cloner.Clone(original.Tours); 41 Unrouted = new List<int>(original.Unrouted); 44 42 } 45 46 public PotvinEncoding(): base() {43 public PotvinEncoding() 44 : base() { 47 45 Unrouted = new List<int>(); 48 46 } 49 47 50 [StorableConstructor] 51 private PotvinEncoding(bool serializing) 52 : base() { 48 public override IDeepCloneable Clone(Cloner cloner) { 49 return new PotvinEncoding(this, cloner); 53 50 } 54 51 55 52 public static PotvinEncoding ConvertFrom(IVRPEncoding encoding, ILookupParameter<DoubleMatrix> distanceMatrix) { 56 53 PotvinEncoding solution = new PotvinEncoding(); … … 85 82 Tours[tour].Cities.Insert(i, city); 86 83 87 if (Tours[tour].Feasible(dueTimeArray, serviceTimeArray, readyTimeArray, demandArray, 84 if (Tours[tour].Feasible(dueTimeArray, serviceTimeArray, readyTimeArray, demandArray, 88 85 capacity, coordinates, distanceMatrix, useDistanceMatrix)) { 89 86 double newLength = Tours[tour].GetLength(coordinates, distanceMatrix, useDistanceMatrix); 90 87 91 88 double detour = newLength - length;
Note: See TracChangeset
for help on using the changeset viewer.