Free cookie consent management tool by TermsFeed Policy Generator

Opened 10 years ago

Closed 10 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 10 years ago by pfleck

  • Status changed from new to accepted

comment:2 Changed 10 years ago by pfleck

r10435

  • Removed generic argument of VRPInstanceProvider.
  • Removed specific IProblemInstanceConsumer interfaces.
  • Added dynamic lookup of compatible interpreter.

comment:3 Changed 10 years ago by pfleck

  • Owner changed from pfleck to abeham
  • Status changed from accepted to reviewing

comment:4 Changed 10 years ago by svonolfe

added static apply methods to VRP operators in r10460

comment:5 Changed 10 years ago by pfleck

r10475 made static apply method for Potvin IterativeInsertionCreator public.

comment:6 follow-up: Changed 10 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 10 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 10 years ago by pfleck

  • Owner changed from abeham to pfleck
  • Status changed from reviewing to assigned

comment:9 Changed 10 years ago by pfleck

  • Status changed from assigned to accepted

comment:10 Changed 10 years ago by pfleck

r10651:

  • 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 10 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 10 years ago by pfleck

  • Owner changed from pfleck to abeham
  • Status changed from accepted to reviewing

comment:13 Changed 10 years ago by abeham

  • Owner changed from abeham to pfleck
  • Status changed from reviewing to readytorelease

OK

comment:14 Changed 10 years ago by pfleck

  • Resolution set to done
  • Status changed from readytorelease to closed

r10744: merged r10435, r10460, r10475, r10651,r10652 into stable

Note: See TracTickets for help on using tickets.