Changeset 4177 for trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Crossovers/AlbaCrossover.cs
- Timestamp:
- 08/09/10 13:29:06 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Crossovers/AlbaCrossover.cs
r4154 r4177 27 27 28 28 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba { 29 [Item("AlbaCrossover", "An operator which crosses two Alba VRP representations.")] 29 30 [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; 32 55 } 33 56
Note: See TracChangeset
for help on using the changeset viewer.