Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/04/10 17:34:02 (14 years ago)
Author:
svonolfe
Message:

Further improved the VRP design (#1039)

Location:
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Creators/AlbaPushForwardInsertionCreator.cs

    r4150 r4154  
    2828using HeuristicLab.Parameters;
    2929using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     30using HeuristicLab.Problems.VehicleRouting.Encodings.General;
    3031
    3132namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Crossovers/AlbaCrossover.cs

    r4150 r4154  
    2828namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
    2929  [StorableClass]
    30   public abstract class AlbaCrossover : VRPCrossover {
    31     public ILookupParameter<IntValue> VehiclesParameter {
    32       get { return (ILookupParameter<IntValue>)Parameters["Vehicles"]; }
    33     }
    34 
    35     public AlbaCrossover()
    36       : base() {
    37         Parameters.Add(new LookupParameter<IntValue>("Vehicles", "The vehicles count."));
    38     }
    39    
     30  public abstract class AlbaCrossover : VRPCrossover {   
    4031    protected virtual void Crossover() {
    4132    }
    4233
    4334    public override IOperation Apply() {
    44       int cities = 0;
    45 
    4635      ItemArray<IVRPEncoding> parents = new ItemArray<IVRPEncoding>(ParentsParameter.ActualValue.Length);
    4736      for (int i = 0; i < ParentsParameter.ActualValue.Length; i++) {
    4837        IVRPEncoding solution = ParentsParameter.ActualValue[i];
    49         cities = solution.Cities;
     38
    5039        if (!(solution is AlbaEncoding)) {
    5140          parents[i] = AlbaEncoding.ConvertFrom(solution, VehiclesParameter.ActualValue.Value);
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Crossovers/AlbaPermutationCrossover.cs

    r4150 r4154  
    3939
    4040    protected override void Crossover() {
    41       int cities = ParentsParameter.ActualValue[0].Cities;
    42 
    4341      PermutationCrossoverParameter.ActualValue.ParentsParameter.ActualName = ParentsParameter.ActualName;
    4442      IAtomicOperation op = this.ExecutionContext.CreateOperation(
     
    5149        ExecutionContext.Scope.Variables.Remove(childName);
    5250
    53         ChildParameter.ActualValue = new AlbaEncoding(permutation, cities);
     51        ChildParameter.ActualValue = new AlbaEncoding(permutation, Cities);
    5452      } else
    5553        ChildParameter.ActualValue = null;
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Manipulators/AlbaManipulator.cs

    r4150 r4154  
    2828namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
    2929  [StorableClass]
    30   public abstract class AlbaManipulator : VRPManipulator {
    31     public ILookupParameter<IntValue> VehiclesParameter {
    32       get { return (ILookupParameter<IntValue>)Parameters["Vehicles"]; }
    33     }
    34 
    35     public AlbaManipulator()
    36       : base() {
    37         Parameters.Add(new LookupParameter<IntValue>("Vehicles", "The vehicles count."));
    38     }
    39    
     30  public abstract class AlbaManipulator : VRPManipulator {   
    4031    protected virtual void Manipulate() {
    4132    }
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/AlbaMoveOperator.cs

    r4150 r4154  
    2929  [Item("AlbaMoveOperator", "A move operator for an alba VRP representation.")]
    3030  [StorableClass]
    31   public abstract class AlbaMoveOperator : VRPMoveOperator {
    32     public ILookupParameter<IntValue> VehiclesParameter {
    33       get { return (ILookupParameter<IntValue>)Parameters["Vehicles"]; }
    34     }
    35 
    36     public AlbaMoveOperator()
    37       : base() {
    38       Parameters.Add(new LookupParameter<IntValue>("Vehicles", "The vehicles count."));
    39     }
    40    
     31  public abstract class AlbaMoveOperator : VRPMoveOperator {   
    4132    [Storable]
    4233    protected abstract IPermutationMoveOperator PermutationMoveOperatorParameter { get; set; }
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveGenerator.cs

    r4068 r4154  
    8282      Permutation permutation = VRPSolutionParameter.ActualValue as Permutation;
    8383      string moveName = TranslocationMoveGeneratorParameter.ActualValue.TranslocationMoveParameter.Name;
    84       int cities = VRPSolutionParameter.ActualValue.Cities;
    8584
    8685      List<Scope> toBeDeleted = new List<Scope>();
     
    9392            if (move.Index1 - 1 >= 0 &&
    9493              move.Index3 - 1 >= 0)
    95               criteria1 = (permutation[move.Index1] >= cities &&
    96                 permutation[move.Index1 - 1] >= cities &&
    97                 permutation[move.Index3 - 1] >= cities);
     94              criteria1 = (permutation[move.Index1] >= Cities &&
     95                permutation[move.Index1 - 1] >= Cities &&
     96                permutation[move.Index3 - 1] >= Cities);
    9897
    9998            int index3 = move.Index3 + (move.Index2 - move.Index1) + 1;
     
    101100            if (move.Index2 + 1 < permutation.Length &&
    102101              index3 < permutation.Length)
    103               criteria2 = (permutation[move.Index2] >= cities &&
    104                 permutation[move.Index2 + 1] >= cities &&
    105                 permutation[index3] >= cities);
     102              criteria2 = (permutation[move.Index2] >= Cities &&
     103                permutation[move.Index2 + 1] >= Cities &&
     104                permutation[index3] >= Cities);
    106105
    107106            if (criteria1 && criteria2)
Note: See TracChangeset for help on using the changeset viewer.