- Timestamp:
- 08/09/10 18:08:14 (14 years ago)
- Location:
- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba
- Files:
-
- 1 deleted
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/AlbaEncoding.cs
r4177 r4179 154 154 cities); 155 155 } 156 157 internal static void RemoveUnusedParameters(ParameterCollection parameters) { 158 parameters.Remove("DistanceMatrix"); 159 parameters.Remove("UseDistanceMatrix"); 160 parameters.Remove("Capacity"); 161 parameters.Remove("Demand"); 162 parameters.Remove("ReadyTime"); 163 parameters.Remove("DueTime"); 164 parameters.Remove("ServiceTime"); 165 } 156 166 } 157 167 } -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Crossovers/AlbaCrossover.cs
r4177 r4179 30 30 [StorableClass] 31 31 public sealed class AlbaCrossover : VRPCrossover { 32 public IValueLookupParameter<IPermutationCrossover> PermutationCrossoverParameter {33 get { return (IValueLookupParameter<IPermutationCrossover>)Parameters[" PermutationCrossover"]; }32 public IValueLookupParameter<IPermutationCrossover> InnerCrossoverParameter { 33 get { return (IValueLookupParameter<IPermutationCrossover>)Parameters["InnerCrossover"]; } 34 34 } 35 36 [StorableConstructor] 37 private AlbaCrossover(bool deserializing) : base(deserializing) { } 35 38 36 39 public AlbaCrossover() 37 40 : base() { 38 Parameters.Add(new ValueLookupParameter<IPermutationCrossover>("PermutationCrossover", "The permutation crossover.", new EdgeRecombinationCrossover())); 41 Parameters.Add(new ValueLookupParameter<IPermutationCrossover>("InnerCrossover", "The permutation crossover.", new EdgeRecombinationCrossover())); 42 43 AlbaEncoding.RemoveUnusedParameters(Parameters); 39 44 } 40 45 41 void Crossover() { 42 PermutationCrossoverParameter.ActualValue.ParentsParameter.ActualName = ParentsParameter.ActualName; 46 private void Crossover() { 47 //note - the inner crossover is called here and the result is converted to an alba representation 48 //some refactoring should be done here in the future - the crossover operation should be called directly 49 50 InnerCrossoverParameter.ActualValue.ParentsParameter.ActualName = ParentsParameter.ActualName; 43 51 IAtomicOperation op = this.ExecutionContext.CreateOperation( 44 PermutationCrossoverParameter.ActualValue, this.ExecutionContext.Scope);52 InnerCrossoverParameter.ActualValue, this.ExecutionContext.Scope); 45 53 op.Operator.Execute((IExecutionContext)op); 46 54 47 string childName = PermutationCrossoverParameter.ActualValue.ChildParameter.ActualName;55 string childName = InnerCrossoverParameter.ActualValue.ChildParameter.ActualName; 48 56 if (ExecutionContext.Scope.Variables.ContainsKey(childName)) { 49 57 Permutation permutation = ExecutionContext.Scope.Variables[childName].Value as Permutation; -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Manipulators/AlbaManipulator.cs
r4177 r4179 29 29 [Item("AlbaManipulator", "An operator which manipulates an alba VRP representation.")] 30 30 [StorableClass] 31 public sealed class AlbaManipulator : VRPManipulator { 32 public IValueLookupParameter<IPermutationManipulator> PermutationManipulatorParameter {33 get { return (IValueLookupParameter<IPermutationManipulator>)Parameters[" PermutationManipulator"]; }31 public sealed class AlbaManipulator : VRPManipulator { 32 public IValueLookupParameter<IPermutationManipulator> InnerManipulatorParameter { 33 get { return (IValueLookupParameter<IPermutationManipulator>)Parameters["InnerManipulator"]; } 34 34 } 35 36 [StorableConstructor] 37 private AlbaManipulator(bool deserializing) : base(deserializing) { } 35 38 36 39 public AlbaManipulator() 37 40 : base() { 38 Parameters.Add(new ValueLookupParameter<IPermutationManipulator>("PermutationManipulator", "The permutation manipulator.", new TranslocationManipulator())); 41 Parameters.Add(new ValueLookupParameter<IPermutationManipulator>("InnerManipulator", "The permutation manipulator.", new TranslocationManipulator())); 42 43 AlbaEncoding.RemoveUnusedParameters(Parameters); 39 44 } 40 45 41 46 public override IOperation Apply() { 42 IVRPEncoding solution = VRP SolutionParameter.ActualValue;47 IVRPEncoding solution = VRPToursParameter.ActualValue; 43 48 if (!(solution is AlbaEncoding)) { 44 VRP SolutionParameter.ActualValue = AlbaEncoding.ConvertFrom(solution, VehiclesParameter.ActualValue.Value);49 VRPToursParameter.ActualValue = AlbaEncoding.ConvertFrom(solution, VehiclesParameter.ActualValue.Value); 45 50 } 46 51 47 52 OperationCollection next = new OperationCollection(base.Apply()); 48 53 49 IPermutationManipulator op = PermutationManipulatorParameter.ActualValue;54 IPermutationManipulator op = InnerManipulatorParameter.ActualValue; 50 55 if (op != null) { 51 op.PermutationParameter.ActualName = VRP SolutionParameter.ActualName;56 op.PermutationParameter.ActualName = VRPToursParameter.ActualName; 52 57 next.Insert(0, ExecutionContext.CreateOperation(op)); 53 58 } -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/AlbaMoveMaker.cs
r4177 r4179 61 61 } 62 62 63 [StorableConstructor] 64 protected AlbaMoveMaker(bool deserializing) : base(deserializing) { } 63 65 64 66 public AlbaMoveMaker() -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/AlbaMoveOperator.cs
r4177 r4179 33 33 protected abstract IPermutationMoveOperator PermutationMoveOperatorParameter { get; set; } 34 34 35 [StorableConstructor] 36 protected AlbaMoveOperator(bool deserializing) : base(deserializing) { } 37 38 public AlbaMoveOperator() : base() 39 { 40 AlbaEncoding.RemoveUnusedParameters(Parameters); 41 } 42 35 43 public override IOperation Apply() { 36 IVRPEncoding solution = VRP SolutionParameter.ActualValue;44 IVRPEncoding solution = VRPToursParameter.ActualValue; 37 45 if (!(solution is AlbaEncoding)) { 38 VRP SolutionParameter.ActualValue = AlbaEncoding.ConvertFrom(solution, VehiclesParameter.ActualValue.Value);46 VRPToursParameter.ActualValue = AlbaEncoding.ConvertFrom(solution, VehiclesParameter.ActualValue.Value); 39 47 } 40 48 41 PermutationMoveOperatorParameter.PermutationParameter.ActualName = VRP SolutionParameter.ActualName;49 PermutationMoveOperatorParameter.PermutationParameter.ActualName = VRPToursParameter.ActualName; 42 50 IAtomicOperation op = this.ExecutionContext.CreateChildOperation(PermutationMoveOperatorParameter); 43 51 op.Operator.Execute((IExecutionContext)op); -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveEvaluator.cs
r4177 r4179 35 35 } 36 36 37 [StorableConstructor] 38 private AlbaTranslocationMoveEvaluator(bool deserializing) : base(deserializing) { } 39 37 40 public AlbaTranslocationMoveEvaluator() 38 41 : base() { … … 43 46 TranslocationMove move = TranslocationMoveParameter.ActualValue; 44 47 //perform move 45 AlbaEncoding newSolution = VRP SolutionParameter.ActualValue.Clone() as AlbaEncoding;48 AlbaEncoding newSolution = VRPToursParameter.ActualValue.Clone() as AlbaEncoding; 46 49 TranslocationManipulator.Apply(newSolution, move.Index1, move.Index2, move.Index3); 47 50 -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveGenerator.cs
r4177 r4179 68 68 } 69 69 70 [StorableConstructor] 71 private AlbaTranslocationMoveGenerator(bool deserializing) : base(deserializing) { } 72 70 73 public AlbaTranslocationMoveGenerator() 71 74 : base() { … … 80 83 IOperation successor = base.Apply(); 81 84 82 Permutation permutation = VRP SolutionParameter.ActualValue as Permutation;85 Permutation permutation = VRPToursParameter.ActualValue as Permutation; 83 86 string moveName = TranslocationMoveGeneratorParameter.ActualValue.TranslocationMoveParameter.Name; 84 87 -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveHardTabuCriterion.cs
r4177 r4179 56 56 } 57 57 58 [StorableConstructor] 59 private AlbaTranslocationMoveHardTabuCriterion(bool deserializing) : base(deserializing) { } 60 58 61 public AlbaTranslocationMoveHardTabuCriterion() 59 62 : base() { -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveMaker.cs
r4177 r4179 52 52 } 53 53 54 [StorableConstructor] 55 private AlbaTranslocationMoveMaker(bool deserializing) : base(deserializing) { } 56 54 57 public AlbaTranslocationMoveMaker() 55 58 : base() { -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveSoftTabuCriterion.cs
r4177 r4179 56 56 } 57 57 58 [StorableConstructor] 59 private AlbaTranslocationMoveSoftTabuCriterion(bool deserializing) : base(deserializing) { } 60 58 61 public AlbaTranslocationMoveSoftTabuCriterion() 59 62 : base() { -
trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveTabuMaker.cs
r4177 r4179 56 56 } 57 57 58 [StorableConstructor] 59 private AlbaTranslocationMoveTabuMaker(bool deserializing) : base(deserializing) { } 60 58 61 public AlbaTranslocationMoveTabuMaker() 59 62 : base() {
Note: See TracChangeset
for help on using the changeset viewer.