Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/09/10 13:29:06 (14 years ago)
Author:
svonolfe
Message:

Refactored VRP in preparation for the code review (#1039)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Crossovers/AlbaCrossover.cs

    r4154 r4177  
    2727
    2828namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
     29  [Item("AlbaCrossover", "An operator which crosses two Alba VRP representations.")]
    2930  [StorableClass]
    30   public abstract class AlbaCrossover : VRPCrossover {   
    31     protected virtual void Crossover() {
     31  public sealed class AlbaCrossover : VRPCrossover {   
     32    public IValueLookupParameter<IPermutationCrossover> PermutationCrossoverParameter {
     33      get { return (IValueLookupParameter<IPermutationCrossover>)Parameters["PermutationCrossover"]; }
     34    }
     35
     36    public AlbaCrossover()
     37      : base() {
     38      Parameters.Add(new ValueLookupParameter<IPermutationCrossover>("PermutationCrossover", "The permutation crossover.", new EdgeRecombinationCrossover()));
     39    }
     40
     41    void Crossover() {
     42      PermutationCrossoverParameter.ActualValue.ParentsParameter.ActualName = ParentsParameter.ActualName;
     43      IAtomicOperation op = this.ExecutionContext.CreateOperation(
     44        PermutationCrossoverParameter.ActualValue, this.ExecutionContext.Scope);
     45      op.Operator.Execute((IExecutionContext)op);
     46
     47      string childName = PermutationCrossoverParameter.ActualValue.ChildParameter.ActualName;
     48      if (ExecutionContext.Scope.Variables.ContainsKey(childName)) {
     49        Permutation permutation = ExecutionContext.Scope.Variables[childName].Value as Permutation;
     50        ExecutionContext.Scope.Variables.Remove(childName);
     51
     52        ChildParameter.ActualValue = new AlbaEncoding(permutation, Cities);
     53      } else
     54        ChildParameter.ActualValue = null;
    3255    }
    3356
Note: See TracChangeset for help on using the changeset viewer.