Changes between Version 5 and Version 6 of Documentation/Howto/ImplementANewVRPProblemInstance
- Timestamp:
- 08/17/14 22:31:06 (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Documentation/Howto/ImplementANewVRPProblemInstance
v5 v6 1 = How to ... implement a new VRP ProblemInstance=1 = How To Implement New VRP Problem Instances = 2 2 3 3 == Goals == 4 4 5 One way to implement a new VRP variant is by implementing a new {{{VRPProblemInstance}}}. This is a suitable possibility if the VRP variant requires additional model data. A {{{VRPProblemInstance}}} is responsible for storing all information about a VRP instance like coordinates, distances, demands, etc. By extending a {{{VRPProblemInstance}}} it is possible to add additional data as additional constraints or flexibility to a VRP variant. It is also necessary to implement a new {{{VRPEvaluator}}} (see [wiki:UsersHowtosImplementANewVRPEvaluator How to ... implement a new VRP Evaluator]) to interpret the new data.5 One way to implement a new VRP variant is by implementing a new {{{VRPProblemInstance}}}. This is a suitable possibility if the VRP variant requires additional model data. A {{{VRPProblemInstance}}} is responsible for storing all information about a VRP instance like coordinates, distances, demands, etc. By extending a {{{VRPProblemInstance}}} it is possible to add additional data as additional constraints or flexibility to a VRP variant. It is also necessary to implement a new {{{VRPEvaluator}}} (see the howto on [[Documentation/Howto/ImplementANewVRPEvaluator|implementing new VRP evaluators]]) to interpret the new data. 6 6 7 7 In addition to the new {{{VRPProblemInstance}}} a new ''parser'' for reading the additional data from a file is required. In order to integrate the new parser into HeuristicLab a {{{VRPInstanceProvider}}} and other components are also required. … … 21 21 == Prerequisites == 22 22 23 Before you start, make sure you have the latest version of the HeuristicLab source code ready. Then create a new plugin called {{{HeuristicLab.TimeDependentVRP}}}. For additional help for creating a new plugin, see [ wiki:UsersHowtosImplementPluginsStepByStep How to ... create HeuristicLab plugins (step by step)].23 Before you start, make sure you have the latest version of the HeuristicLab source code ready. Then create a new plugin called {{{HeuristicLab.TimeDependentVRP}}}. For additional help for creating a new plugin, see [[Documentation/DevelopmentCenter|the development center]]. 24 24 25 25 Your plugin need an additional dependency onto the {{{HeuristicLab.Problems.VehicleRouting}}} and the {{{HeuristicLab.Problems.Instances.VehicleRouting}}} plugin. The plugin should look like this: … … 169 169 == Implement new Evaluator == 170 170 171 In order to make use of the travel time a new {{{VRPEvaluator}}} is necessary. For detailed information about how to implement a new VRP Evaluator, see [wiki:UsersHowtosImplementANewVRPEvaluator How to ... implement a new VRP Evaluator]. As we derived from {{{CVRPTWProblemInstance}}} for the new {{{TimeDependentProblemIntance}}}, we now derive the {{{TimeDependentVRPEvaluator}}} from the existing {{{CVRPTWEvaluator}}}.171 In order to make use of the travel time a new {{{VRPEvaluator}}} is necessary. For detailed information about how to implement a new VRP Evaluator, see the howto on [[Documentation/Howto/ImplementANewVRPEvaluator|implementing new VRP evaluators]]. As we derived from {{{CVRPTWProblemInstance}}} for the new {{{TimeDependentProblemIntance}}}, we now derive the {{{TimeDependentVRPEvaluator}}} from the existing {{{CVRPTWEvaluator}}}. 172 172 173 173 {{{