Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting.Views/3.4/HeuristicLabProblemsVehicleRoutingViewsPlugin.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting.Views/3.4/HeuristicLabProblemsVehicleRoutingViewsPlugin.cs (revision 4368)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting.Views/3.4/HeuristicLabProblemsVehicleRoutingViewsPlugin.cs (revision 4369)
@@ -26,5 +26,5 @@
/// Plugin class for HeuristicLab.Problems.VehicleRouting.Views plugin
///
- [Plugin("HeuristicLab.Problems.VehicleRouting.Views", "3.4.0.4363")]
+ [Plugin("HeuristicLab.Problems.VehicleRouting.Views", "3.4.0.4365")]
[PluginFile("HeuristicLab.Problems.VehicleRouting.Views-3.4.dll", PluginFileType.Assembly)]
[PluginDependency("HeuristicLab.Collections", "3.3")]
Index: anches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/AlbaOperator.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/AlbaOperator.cs (revision 4368)
+++ (revision )
@@ -1,45 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see .
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Problems.VehicleRouting.Interfaces;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Core;
-using HeuristicLab.Parameters;
-using HeuristicLab.Operators;
-using HeuristicLab.Problems.VehicleRouting.Variants;
-
-namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
- [Item("AlbaOperator", "Represents a VRP operator.")]
- [StorableClass]
- public abstract class AlbaOperator : VRPOperator,
- ISingleDepotOperator, IHeterogenousCapacitatedOperator, ITimeWindowedOperator {
- [StorableConstructor]
- protected AlbaOperator(bool deserializing) : base(deserializing) { }
-
- public AlbaOperator()
- : base() {
- }
- }
-}
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Creators/AlbaCreator.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Creators/AlbaCreator.cs (revision 4368)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Creators/AlbaCreator.cs (revision 4369)
@@ -26,16 +26,12 @@
using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
using HeuristicLab.Problems.VehicleRouting.Interfaces;
+using HeuristicLab.Problems.VehicleRouting.Encodings.General;
namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
[Item("AlbaCreator", "A VRP creator.")]
[StorableClass]
- public abstract class AlbaCreator : AlbaOperator, IVRPCreator {
+ public abstract class AlbaCreator : VRPCreator, IAlbaOperator, IVRPCreator {
public override bool CanChangeName {
get { return false; }
- }
-
- #region IVRPCreator Members
- public ILookupParameter VRPToursParameter {
- get { return (ILookupParameter)Parameters["VRPTours"]; }
}
@@ -45,8 +41,5 @@
public AlbaCreator()
: base() {
- Parameters.Add(new LookupParameter("VRPTours", "The new VRP tours."));
}
-
- #endregion
}
}
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Crossovers/AlbaCrossover.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Crossovers/AlbaCrossover.cs (revision 4368)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Crossovers/AlbaCrossover.cs (revision 4369)
@@ -27,19 +27,12 @@
using HeuristicLab.Optimization;
using HeuristicLab.Problems.VehicleRouting.Interfaces;
+using HeuristicLab.Problems.VehicleRouting.Encodings.General;
namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
[Item("AlbaCrossover", "An operator which crosses two VRP representations.")]
[StorableClass]
- public abstract class AlbaCrossover : AlbaOperator, IVRPCrossover, IStochasticOperator {
+ public abstract class AlbaCrossover : VRPCrossover, IAlbaOperator, IVRPCrossover, IStochasticOperator {
public ILookupParameter RandomParameter {
get { return (LookupParameter)Parameters["Random"]; }
- }
-
- public ILookupParameter> ParentsParameter {
- get { return (ScopeTreeLookupParameter)Parameters["Parents"]; }
- }
-
- public ILookupParameter ChildParameter {
- get { return (ILookupParameter)Parameters["Child"]; }
}
@@ -51,9 +44,4 @@
: base() {
Parameters.Add(new LookupParameter("Random", "The pseudo random number generator which should be used for stochastic manipulation operators."));
-
- Parameters.Add(new ScopeTreeLookupParameter("Parents", "The parent permutations which should be crossed."));
- ParentsParameter.ActualName = "VRPTours";
- Parameters.Add(new LookupParameter("Child", "The child permutation resulting from the crossover."));
- ChildParameter.ActualName = "VRPTours";
}
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/IAlbaOperator.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/IAlbaOperator.cs (revision 4369)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/IAlbaOperator.cs (revision 4369)
@@ -0,0 +1,37 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Problems.VehicleRouting.Interfaces;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Core;
+using HeuristicLab.Parameters;
+using HeuristicLab.Operators;
+using HeuristicLab.Problems.VehicleRouting.Variants;
+
+namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
+ public interface IAlbaOperator:
+ ISingleDepotOperator, IHeterogenousCapacitatedOperator, ITimeWindowedOperator {
+ }
+}
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Manipulators/AlbaManipulator.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Manipulators/AlbaManipulator.cs (revision 4368)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Manipulators/AlbaManipulator.cs (revision 4369)
@@ -27,15 +27,12 @@
using HeuristicLab.Optimization;
using HeuristicLab.Problems.VehicleRouting.Interfaces;
+using HeuristicLab.Problems.VehicleRouting.Encodings.General;
namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
[Item("AlbaManipulator", "An operator which manipulates a VRP representation.")]
[StorableClass]
- public abstract class AlbaManipulator : AlbaOperator, IVRPManipulator, IStochasticOperator {
+ public abstract class AlbaManipulator : VRPManipulator, IAlbaOperator, IVRPManipulator, IStochasticOperator {
public ILookupParameter RandomParameter {
get { return (LookupParameter)Parameters["Random"]; }
- }
-
- public ILookupParameter VRPToursParameter {
- get { return (ILookupParameter)Parameters["VRPTours"]; }
}
@@ -46,5 +43,4 @@
: base() {
Parameters.Add(new LookupParameter("Random", "The pseudo random number generator which should be used for stochastic manipulation operators."));
- Parameters.Add(new LookupParameter("VRPTours", "The VRP tours to be manipulated."));
}
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/AlbaMoveEvaluator.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/AlbaMoveEvaluator.cs (revision 4369)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/AlbaMoveEvaluator.cs (revision 4369)
@@ -0,0 +1,41 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Problems.VehicleRouting.Encodings.General;
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
+ [Item("AlbaMoveEvaluator", "Evaluates an Alba VRP move.")]
+ [StorableClass]
+ public abstract class AlbaMoveEvaluator: VRPMoveEvaluator, IAlbaOperator {
+ [StorableConstructor]
+ protected AlbaMoveEvaluator(bool deserializing) : base(deserializing) { }
+
+ public AlbaMoveEvaluator()
+ : base() {
+ }
+ }
+}
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/AlbaMoveGenerator.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/AlbaMoveGenerator.cs (revision 4369)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/AlbaMoveGenerator.cs (revision 4369)
@@ -0,0 +1,52 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Problems.VehicleRouting.Encodings.General;
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.VehicleRouting.Interfaces;
+
+namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
+ [Item("AlbaMoveGenerator", "Generates Alba VRP moves.")]
+ [StorableClass]
+ public abstract class AlbaMoveGenerator : VRPMoveGenerator, IAlbaOperator {
+ [StorableConstructor]
+ protected AlbaMoveGenerator(bool deserializing) : base(deserializing) { }
+
+ public AlbaMoveGenerator()
+ : base() {
+ }
+
+ public override IOperation Apply() {
+ IVRPEncoding solution = VRPToursParameter.ActualValue;
+ if (!(solution is AlbaEncoding)) {
+ //VRPToursParameter.ActualValue = AlbaEncoding.ConvertFrom(solution, VehiclesParameter.ActualValue.Value,
+ // DistanceMatrixParameter);
+ }
+
+ return base.Apply();
+ }
+ }
+}
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/AlbaMoveMaker.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/AlbaMoveMaker.cs (revision 4369)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/AlbaMoveMaker.cs (revision 4369)
@@ -0,0 +1,52 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Problems.VehicleRouting.Encodings.General;
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.VehicleRouting.Interfaces;
+
+namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
+ [Item("AlbaMoveMaker", "Makes an Alba VRP move.")]
+ [StorableClass]
+ public abstract class AlbaMoveMaker : VRPMoveMaker, IAlbaOperator {
+ [StorableConstructor]
+ protected AlbaMoveMaker(bool deserializing) : base(deserializing) { }
+
+ public AlbaMoveMaker()
+ : base() {
+ }
+
+ public override IOperation Apply() {
+ IVRPEncoding solution = VRPToursParameter.ActualValue;
+ if (!(solution is AlbaEncoding)) {
+ //VRPToursParameter.ActualValue = AlbaEncoding.ConvertFrom(solution, VehiclesParameter.ActualValue.Value,
+ // DistanceMatrixParameter);
+ }
+
+ return base.Apply();
+ }
+ }
+}
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveEvaluator.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveEvaluator.cs (revision 4369)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveEvaluator.cs (revision 4369)
@@ -0,0 +1,54 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using HeuristicLab.Core;
+using HeuristicLab.Encodings.PermutationEncoding;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.VehicleRouting.Encodings.Alba;
+
+namespace HeuristicLab.Problems.VehicleRouting {
+ [Item("AlbaTranslocationMoveEvaluator", "Evaluates a translocation or insertion move (3-opt) for a VRP representation. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")]
+ [StorableClass]
+ public sealed class AlbaTranslocationMoveEvaluator : AlbaMoveEvaluator, IAlbaTranslocationMoveOperator {
+ public ILookupParameter TranslocationMoveParameter {
+ get { return (ILookupParameter)Parameters["TranslocationMove"]; }
+ set { Parameters["TranslocationMove"].ActualValue = value.ActualValue; }
+ }
+
+ [StorableConstructor]
+ private AlbaTranslocationMoveEvaluator(bool deserializing) : base(deserializing) { }
+
+ public AlbaTranslocationMoveEvaluator()
+ : base() {
+ Parameters.Add(new LookupParameter("TranslocationMove", "The move to evaluate."));
+ }
+
+ protected override void EvaluateMove() {
+ TranslocationMove move = TranslocationMoveParameter.ActualValue;
+ //perform move
+ AlbaEncoding newSolution = VRPToursParameter.ActualValue.Clone() as AlbaEncoding;
+ TranslocationManipulator.Apply(newSolution, move.Index1, move.Index2, move.Index3);
+
+ UpdateEvaluation(newSolution);
+ }
+ }
+}
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveGenerator.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveGenerator.cs (revision 4369)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveGenerator.cs (revision 4369)
@@ -0,0 +1,95 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System.Collections.Generic;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Encodings.PermutationEncoding;
+using HeuristicLab.Optimization;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.VehicleRouting.Interfaces;
+
+namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
+ [Item("AlbaTranslocationMoveGenerator", "An operator which generates translocation moves for a VRP representation. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")]
+ [StorableClass]
+ public sealed class AlbaTranslocationMoveGenerator : AlbaMoveGenerator, IAlbaTranslocationMoveOperator, IMultiMoveGenerator {
+ public IValueLookupParameter TranslocationMoveGeneratorParameter {
+ get { return (IValueLookupParameter)Parameters["TranslocationMoveGenerator"]; }
+ }
+
+ private IPermutationMoveOperator PermutationMoveOperatorParameter {
+ get { return TranslocationMoveGeneratorParameter.Value; }
+ set {
+ TranslocationMoveGeneratorParameter.Value = value as TranslocationMoveGenerator;
+ if (TranslocationMoveGeneratorParameter.Value is IMultiMoveGenerator) {
+ ((IMultiMoveGenerator)TranslocationMoveGeneratorParameter.Value).SampleSizeParameter.ActualName = SampleSizeParameter.Name;
+ }
+ }
+ }
+
+ public ILookupParameter TranslocationMoveParameter {
+ get {
+ if (TranslocationMoveGeneratorParameter.Value != null)
+ return TranslocationMoveGeneratorParameter.Value.TranslocationMoveParameter;
+ else
+ return null;
+ }
+ }
+
+ public ILookupParameter PermutationParameter {
+ get {
+ if (TranslocationMoveGeneratorParameter.Value != null)
+ return TranslocationMoveGeneratorParameter.Value.PermutationParameter;
+ else
+ return null;
+ }
+ }
+
+ public IValueLookupParameter SampleSizeParameter {
+ get { return (IValueLookupParameter)Parameters["SampleSize"]; }
+ }
+
+ [StorableConstructor]
+ private AlbaTranslocationMoveGenerator(bool deserializing) : base(deserializing) { }
+
+ public AlbaTranslocationMoveGenerator()
+ : base() {
+ Parameters.Add(new ValueLookupParameter("TranslocationMoveGenerator", "The move generator.",
+ new StochasticTranslocationMultiMoveGenerator()));
+ Parameters.Add(new ValueLookupParameter("SampleSize", "The number of moves to generate."));
+
+ ((IMultiMoveGenerator)TranslocationMoveGeneratorParameter.Value).SampleSizeParameter.ActualName = SampleSizeParameter.Name;
+ }
+
+ public override IOperation Apply() {
+ IOperation next = base.Apply();
+
+ IVRPEncoding solution = VRPToursParameter.ActualValue;
+
+ PermutationMoveOperatorParameter.PermutationParameter.ActualName = VRPToursParameter.ActualName;
+ IAtomicOperation op = this.ExecutionContext.CreateChildOperation(PermutationMoveOperatorParameter);
+ op.Operator.Execute((IExecutionContext)op);
+
+ return next;
+ }
+ }
+}
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveMaker.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveMaker.cs (revision 4369)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveMaker.cs (revision 4369)
@@ -0,0 +1,57 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Encodings.PermutationEncoding;
+using HeuristicLab.Optimization;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.VehicleRouting.Interfaces;
+
+namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
+ [Item("AlbaTranslocationMoveMaker", "An operator which makes translocation moves for a VRP representation. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")]
+ [StorableClass]
+ public sealed class AlbaTranslocationMoveMaker : AlbaMoveMaker, IAlbaTranslocationMoveOperator {
+ private TranslocationMoveMaker moveMaker;
+
+ public ILookupParameter TranslocationMoveParameter {
+ get { return moveMaker.TranslocationMoveParameter; }
+ }
+
+ public ILookupParameter PermutationParameter {
+ get { return moveMaker.PermutationParameter; }
+ }
+
+ [StorableConstructor]
+ private AlbaTranslocationMoveMaker(bool deserializing) : base(deserializing) { }
+
+ public AlbaTranslocationMoveMaker()
+ : base() {
+ moveMaker = new TranslocationMoveMaker();
+ }
+
+ protected override void PerformMove() {
+ moveMaker.PermutationParameter.ActualName = VRPToursParameter.ActualName;
+ IAtomicOperation op = this.ExecutionContext.CreateChildOperation(moveMaker);
+ op.Operator.Execute((IExecutionContext)op);
+ }
+ }
+}
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/IAlbaTranslocationMoveOperator.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/IAlbaTranslocationMoveOperator.cs (revision 4369)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/IAlbaTranslocationMoveOperator.cs (revision 4369)
@@ -0,0 +1,31 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using HeuristicLab.Core;
+using HeuristicLab.Encodings.PermutationEncoding;
+using HeuristicLab.Optimization;
+using HeuristicLab.Problems.VehicleRouting.Interfaces;
+
+namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
+ public interface IAlbaTranslocationMoveOperator : IVRPMoveOperator {
+ ILookupParameter TranslocationMoveParameter { get; }
+ }
+}
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Creators/VRPCreator.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Creators/VRPCreator.cs (revision 4369)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Creators/VRPCreator.cs (revision 4369)
@@ -0,0 +1,49 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Core;
+using HeuristicLab.Optimization;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
+using HeuristicLab.Problems.VehicleRouting.Interfaces;
+
+namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
+ [Item("VRPCreator", "Creates a VRP solution.")]
+ [StorableClass]
+ public abstract class VRPCreator : VRPOperator, IVRPCreator {
+ public ILookupParameter VRPToursParameter {
+ get { return (ILookupParameter)Parameters["VRPTours"]; }
+ }
+
+ [StorableConstructor]
+ protected VRPCreator(bool deserializing) : base(deserializing) { }
+
+ public VRPCreator()
+ : base() {
+ Parameters.Add(new LookupParameter("VRPTours", "The VRP tours to be created."));
+ }
+ }
+}
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/VRPMoveEvaluator.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/VRPMoveEvaluator.cs (revision 4369)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/VRPMoveEvaluator.cs (revision 4369)
@@ -0,0 +1,98 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Core;
+using HeuristicLab.Optimization;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
+using HeuristicLab.Problems.VehicleRouting.Interfaces;
+
+namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
+ [Item("VRPMoveEvaluator", "Evaluates a VRP move.")]
+ [StorableClass]
+ public abstract class VRPMoveEvaluator : VRPMoveOperator, ISingleObjectiveMoveEvaluator {
+ public const string MovePrefix = "Move";
+
+ public ILookupParameter QualityParameter {
+ get { return (ILookupParameter)Parameters["Quality"]; }
+ }
+ public ILookupParameter MoveQualityParameter {
+ get { return (ILookupParameter)Parameters["MoveQuality"]; }
+ }
+
+ [StorableConstructor]
+ protected VRPMoveEvaluator(bool deserializing) : base(deserializing) { }
+
+ public VRPMoveEvaluator()
+ : base() {
+ Parameters.Add(new LookupParameter("Quality", "The quality of the solution."));
+ Parameters.Add(new LookupParameter("MoveQuality", "The relative quality of the move."));
+ }
+
+ //helper method to evaluate an updated individual
+ protected void UpdateEvaluation(IVRPEncoding updatedTours) {
+ IVRPEvaluator evaluator = ProblemInstance.EvaluatorParameter.Value.Clone() as IVRPEvaluator;
+
+ Dictionary originalName =
+ new Dictionary();
+
+ foreach (IParameter parameter in evaluator.Parameters) {
+ if (parameter is ILookupParameter
+ && parameter != evaluator.ProblemInstanceParameter
+ && parameter != evaluator.VRPToursParameter) {
+ originalName[parameter] = (parameter as ILookupParameter).ActualName;
+
+ (parameter as ILookupParameter).ActualName =
+ MovePrefix +
+ (parameter as ILookupParameter).ActualName;
+ }
+ }
+
+ try {
+ this.ExecutionContext.Scope.Variables.Add(new Variable(evaluator.VRPToursParameter.ActualName,
+ updatedTours));
+
+ IAtomicOperation op = this.ExecutionContext.CreateChildOperation(evaluator);
+ op.Operator.Execute((IExecutionContext)op);
+ }
+ finally {
+ foreach (IParameter parameter in originalName.Keys) {
+ (parameter as ILookupParameter).ActualName = originalName[parameter];
+ }
+
+ this.ExecutionContext.Scope.Variables.Remove(evaluator.VRPToursParameter.ActualName);
+ }
+ }
+
+ protected abstract void EvaluateMove();
+
+ public override IOperation Apply() {
+ EvaluateMove();
+
+ return base.Apply();
+ }
+ }
+}
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/VRPMoveGenerator.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/VRPMoveGenerator.cs (revision 4369)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/VRPMoveGenerator.cs (revision 4369)
@@ -0,0 +1,45 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Core;
+using HeuristicLab.Optimization;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
+using HeuristicLab.Problems.VehicleRouting.Interfaces;
+
+namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
+ [Item("VRPMoveGenerator", "Generates moves for a VRP solution.")]
+ [StorableClass]
+ public abstract class
+ VRPMoveGenerator : VRPMoveOperator, IMoveGenerator {
+ [StorableConstructor]
+ protected VRPMoveGenerator(bool deserializing) : base(deserializing) { }
+
+ public VRPMoveGenerator()
+ : base() {
+ }
+ }
+}
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/VRPMoveMaker.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/VRPMoveMaker.cs (revision 4369)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/VRPMoveMaker.cs (revision 4369)
@@ -0,0 +1,91 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Core;
+using HeuristicLab.Optimization;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
+using HeuristicLab.Problems.VehicleRouting.Interfaces;
+
+namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
+ [Item("VRPMoveMaker", "Performs a VRP move.")]
+ [StorableClass]
+ public abstract class VRPMoveMaker : VRPMoveOperator, IMoveMaker {
+ public ILookupParameter QualityParameter {
+ get { return (ILookupParameter)Parameters["Quality"]; }
+ }
+ public ILookupParameter MoveQualityParameter {
+ get { return (ILookupParameter)Parameters["MoveQuality"]; }
+ }
+
+ [StorableConstructor]
+ protected VRPMoveMaker(bool deserializing) : base(deserializing) { }
+
+ public VRPMoveMaker()
+ : base() {
+ Parameters.Add(new LookupParameter("Quality", "The quality of the solution."));
+ Parameters.Add(new LookupParameter("MoveQuality", "The relative quality of the move."));
+ }
+
+ protected abstract void PerformMove();
+
+ private void UpdateMoveEvaluation() {
+ IVRPEvaluator evaluator = ProblemInstance.EvaluatorParameter.Value;
+ foreach (IParameter parameter in evaluator.Parameters) {
+ if (parameter is ILookupParameter
+ && parameter != evaluator.VRPToursParameter
+ && parameter != evaluator.ProblemInstanceParameter) {
+ ILookupParameter evaluatorParameter = parameter as ILookupParameter;
+
+ string resultName = evaluatorParameter.ActualName;
+ if (!this.Parameters.Exists(p => p.Name == resultName)) {
+ ILookupParameter resultParameter = new LookupParameter(resultName);
+ resultParameter.ExecutionContext = ExecutionContext;
+ this.Parameters.Add(resultParameter);
+ }
+
+ string moveResultName = VRPMoveEvaluator.MovePrefix + resultName;
+ if (!this.Parameters.Exists(p => p.Name == moveResultName)) {
+ ILookupParameter moveResultParameter = new LookupParameter(moveResultName);
+ moveResultParameter.ExecutionContext = ExecutionContext;
+ this.Parameters.Add(moveResultParameter);
+ }
+
+ ILookupParameter result = Parameters[resultName] as ILookupParameter;
+ ILookupParameter moveResult = Parameters[moveResultName] as ILookupParameter;
+ result.ActualValue = moveResult.ActualValue.Clone() as IItem;
+ }
+ }
+ }
+
+ public override IOperation Apply() {
+ PerformMove();
+ UpdateMoveEvaluation();
+
+ return base.Apply();
+ }
+ }
+}
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/VRPMoveOperator.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/VRPMoveOperator.cs (revision 4369)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/VRPMoveOperator.cs (revision 4369)
@@ -0,0 +1,46 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Core;
+using HeuristicLab.Problems.VehicleRouting.Interfaces;
+using HeuristicLab.Parameters;
+
+namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
+ [Item("VRPMoveOperator", "A VRP move operator.")]
+ [StorableClass]
+ public abstract class VRPMoveOperator : VRPOperator, IVRPMoveOperator {
+ public ILookupParameter VRPToursParameter {
+ get { return (ILookupParameter)Parameters["VRPTours"]; }
+ }
+
+ [StorableConstructor]
+ protected VRPMoveOperator(bool deserializing) : base(deserializing) { }
+
+ public VRPMoveOperator() {
+ Parameters.Add(new LookupParameter("VRPTours", "The VRP tours considered in the move."));
+ }
+ }
+}
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/HeuristicLab.Problems.VehicleRouting-3.4.csproj
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/HeuristicLab.Problems.VehicleRouting-3.4.csproj (revision 4368)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/HeuristicLab.Problems.VehicleRouting-3.4.csproj (revision 4369)
@@ -111,5 +111,5 @@
-
+
@@ -121,8 +121,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -133,4 +147,5 @@
+
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/HeuristicLabProblemsVehicleRoutingPlugin.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/HeuristicLabProblemsVehicleRoutingPlugin.cs (revision 4368)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/HeuristicLabProblemsVehicleRoutingPlugin.cs (revision 4369)
@@ -26,5 +26,5 @@
/// Plugin class for HeuristicLab.Problems.VehicleRouting plugin
///
- [Plugin("HeuristicLab.Problems.VehicleRouting", "3.4.0.4363")]
+ [Plugin("HeuristicLab.Problems.VehicleRouting", "3.4.0.4365")]
[PluginFile("HeuristicLab.Problems.VehicleRouting-3.4.dll", PluginFileType.Assembly)]
[PluginDependency("HeuristicLab.Analysis", "3.3")]
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Interfaces/IVRPEvaluator.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Interfaces/IVRPEvaluator.cs (revision 4368)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Interfaces/IVRPEvaluator.cs (revision 4369)
@@ -29,4 +29,6 @@
namespace HeuristicLab.Problems.VehicleRouting.Interfaces {
public interface IVRPEvaluator: IVRPOperator, ISingleObjectiveEvaluator {
+ ILookupParameter VRPToursParameter { get; }
+
bool Feasible(IVRPProblemInstance instance, IVRPEncoding solution);
bool Feasible(IVRPProblemInstance instance, Tour tour);
Index: /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Interfaces/IVRPMoveOperator.cs
===================================================================
--- /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Interfaces/IVRPMoveOperator.cs (revision 4369)
+++ /branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Interfaces/IVRPMoveOperator.cs (revision 4369)
@@ -0,0 +1,30 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using HeuristicLab.Core;
+using HeuristicLab.Optimization;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.Problems.VehicleRouting.Interfaces {
+ public interface IVRPMoveOperator : IVRPOperator, IMoveOperator {
+ ILookupParameter VRPToursParameter { get; }
+ }
+}