Opened 11 years ago
Closed 11 years ago
#2152 closed enhancement (done)
The extensibility of the VRPProblem should be improved for creating new problem instances
Reported by: | pfleck | Owned by: | pfleck |
---|---|---|---|
Priority: | medium | Milestone: | HeuristicLab 3.3.10 |
Component: | Problems.VehicleRouting | Version: | 3.3.9 |
Keywords: | Cc: |
Description
In order to implement a new VRP problem instance you have to extend the VehicleRoutingProblem because the IProblemInstanceConsumer interface has to be added. This is not desired because only the ProblemInstance should be extended and not the problem itself.
public interface IVRPInstanceConsumer : IProblemInstanceConsumer<CVRPData>, IProblemInstanceConsumer<CVRPTWData>, IProblemInstanceConsumer<MDCVRPData>, IProblemInstanceConsumer<MDCVRPTWData>, IProblemInstanceConsumer<PDPTWData> { } ... public sealed class VehicleRoutingProblem : ..., IVRPInstanceConsumer {
Change History (14)
comment:1 Changed 11 years ago by pfleck
- Status changed from new to accepted
comment:2 Changed 11 years ago by pfleck
comment:3 Changed 11 years ago by pfleck
- Owner changed from pfleck to abeham
- Status changed from accepted to reviewing
comment:4 Changed 11 years ago by svonolfe
added static apply methods to VRP operators in r10460
comment:5 Changed 11 years ago by pfleck
r10475 made static apply method for Potvin IterativeInsertionCreator public.
comment:6 follow-up: ↓ 7 Changed 11 years ago by abeham
Is it possible to define an interpreter in the VRPData so that we don't need the dynamic lookup of the interpreter?
comment:7 in reply to: ↑ 6 Changed 11 years ago by pfleck
Replying to abeham:
Is it possible to define an interpreter in the VRPData so that we don't need the dynamic lookup of the interpreter?
This would cause a problem dependent dependency. As the HL.Instances are problem independent, I think this should be avoided.
Besides, this change would probably cause a cyclic dependency too.
comment:8 Changed 11 years ago by pfleck
- Owner changed from abeham to pfleck
- Status changed from reviewing to assigned
comment:9 Changed 11 years ago by pfleck
- Status changed from assigned to accepted
comment:10 Changed 11 years ago by pfleck
- Lookup for appropriate Interpreter now causes an InvalidOperationException if no or more than one interpreter is found.
- Put InterpreterDataType extraction into new method for better readability.
comment:11 Changed 11 years ago by pfleck
r10652: Added unit test which loads all available VRP instances to check correct interpreter lookup. (Same approach as QAPLIBInstancesTest)
comment:12 Changed 11 years ago by pfleck
- Owner changed from pfleck to abeham
- Status changed from accepted to reviewing
comment:13 Changed 11 years ago by abeham
- Owner changed from abeham to pfleck
- Status changed from reviewing to readytorelease
OK
comment:14 Changed 11 years ago by pfleck
- Resolution set to done
- Status changed from readytorelease to closed
r10435