Class IndependentRuinAndRecreateModule

java.lang.Object
com.graphhopper.jsprit.core.algorithm.module.IndependentRuinAndRecreateModule
All Implemented Interfaces:
DynamicStrategyIdProvider, SearchStrategyModule

public class IndependentRuinAndRecreateModule extends Object implements SearchStrategyModule, DynamicStrategyIdProvider
A ruin-and-recreate module that selects ruin and insertion operators independently.

Unlike the standard RuinAndRecreateModule which has fixed operators, this module maintains weighted selectors for both ruin and insertion operators and selects them independently at each iteration.

This enables more flexible search strategies where the ruin and insertion choices are decoupled, allowing more combinations to be explored.

See Also:
  • Constructor Details

    • IndependentRuinAndRecreateModule

      public IndependentRuinAndRecreateModule(String moduleName, WeightedOperatorSelector<InsertionStrategy> insertionSelector, WeightedOperatorSelector<RuinStrategy> ruinSelector)
      Creates a new independent ruin-and-recreate module.
      Parameters:
      moduleName - the name of this module
      insertionSelector - the weighted selector for insertion strategies
      ruinSelector - the weighted selector for ruin strategies
  • Method Details

    • setRandom

      public void setRandom(Random random)
      Sets the random number generator for reproducibility.
      Parameters:
      random - the random number generator
    • setMinUnassignedJobsToBeReinserted

      public void setMinUnassignedJobsToBeReinserted(int minUnassignedJobsToBeReinserted)
      Sets the minimum number of unassigned jobs to be reinserted in each iteration.
      Parameters:
      minUnassignedJobsToBeReinserted - minimum jobs to reinsert
    • setProportionOfUnassignedJobsToBeReinserted

      public void setProportionOfUnassignedJobsToBeReinserted(double proportionOfUnassignedJobsToBeReinserted)
      Sets the proportion of unassigned jobs to be reinserted in each iteration.
      Parameters:
      proportionOfUnassignedJobsToBeReinserted - proportion (0.0-1.0)
    • runAndGetSolution

      public VehicleRoutingProblemSolution runAndGetSolution(VehicleRoutingProblemSolution previousVrpSolution)
      Specified by:
      runAndGetSolution in interface SearchStrategyModule
    • getName

      public String getName()
      Specified by:
      getName in interface SearchStrategyModule
    • addModuleListener

      public void addModuleListener(SearchStrategyModuleListener moduleListener)
      Specified by:
      addModuleListener in interface SearchStrategyModule
    • getInsertionSelector

      public WeightedOperatorSelector<InsertionStrategy> getInsertionSelector()
      Returns the insertion selector.
    • getRuinSelector

      public WeightedOperatorSelector<RuinStrategy> getRuinSelector()
      Returns the ruin selector.
    • getLastExecutionStrategyId

      public String getLastExecutionStrategyId()
      Returns the strategy ID for the last execution, reflecting which operators were selected.

      Format: "{ruinName}+{insertionName}"

      Specified by:
      getLastExecutionStrategyId in interface DynamicStrategyIdProvider
      Returns:
      the dynamic strategy ID, e.g., "radial+regretFast"
    • toString

      public String toString()
      Overrides:
      toString in class Object