Opened 3 years ago

Last modified 6 days ago

#2707 assigned enhancement

New VRP Operators

Reported by: jzenisek Owned by: jzenisek
Priority: medium Milestone: HeuristicLab 3.3.16
Component: Problems.VehicleRouting Version: branch
Keywords: Cc:

Description

Adding new VRP operators stemming from the master's thesis of jan zenisek and ideas of philipp fleck

Change History (15)

comment:1 Changed 3 years ago by jzenisek

  • Status changed from new to accepted

comment:2 Changed 3 years ago by jzenisek

r14415 Added folder for new VRP branch

r14416 branch for several vrp enhancements

r14417 added some new vrp operators (1 creator, 1 crossover, 1 manipulator)

comment:3 Changed 2 years ago by pfleck

r14559 Simplified k-means clustering for ClusterCreators.

comment:4 Changed 2 years ago by pfleck

r14643 Branches VRP Views.

comment:5 Changed 2 years ago by pfleck

r14644 Adapted paths and references for branches view plugin.

comment:6 Changed 2 years ago by pfleck

r14645

  • Fixed a bug in cluster creators.
  • Added the vehicle nr to the each tour in the solution view.

comment:7 Changed 2 years ago by mkommend

  • Milestone changed from HeuristicLab 3.3.15 to HeuristicLab 3.3.16

comment:8 Changed 17 months ago by gkronber

Please release with 3.3.16

comment:9 Changed 16 months ago by jzenisek

r15762: renamed branch according to guidelines

comment:10 Changed 7 weeks ago by abeham

If this ticket is going to be released it should go into review phase soon. It's still waiting for completion, so please finish the implementation or move it to the next milestone.

comment:11 Changed 6 weeks ago by pfleck

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

comment:12 Changed 6 days ago by pfleck

r17010 Merged trunk into branch
r17011 Adapted to HEAL.Attic changes

comment:13 Changed 6 days ago by pfleck

r17012 adapted paths

comment:14 Changed 6 days ago by pfleck

Functionality

  • Tested the new crossovers and creators - worked fine and yielded nice results.
  • I think we could merge both ClusterCreators into a single one where a parameter specifies on which attribute the clustering is based. This would also simplify the code since both cluster implementations are very similar.
  • I also suggest renaming the clusters into something like "Coordinate-based" and "Time-based".
  • The TourCreationProbabilities (greedy vs shuffled) are a bit unintuitive to use. Maybe we can come up with something else how to specify this.

Code

  • I suggest to make the KMeansAlgorithm into a static class only offering a single Run method.
  • Concept of shuffle vs greedy should be generalized so that additional options could be easily implemented.
  • Abstract classes (ClusterCreator) should have protected constructors
  • Remove unused methods and usings.
  • Check required parameters and throw exceptions at the beginning of a method to avoid unnecessary calculations.
  • Avoid causing NullReferenceExceptions after casting. Use (TargetType) instead of as TargetType.
Last edited 6 days ago by pfleck (previous) (diff)

comment:15 Changed 6 days ago by pfleck

  • Owner changed from pfleck to jzenisek
  • Status changed from reviewing to assigned
Note: See TracTickets for help on using tickets.