package vroom.common.heuristics.alns; import vroom.common.utilities.IDisposable; import vroom.common.utilities.optimization.IInstance; import vroom.common.utilities.optimization.IParameters; import vroom.common.utilities.optimization.ISolution; public interface IALNSComponent<S extends ISolution> extends IDisposable, Cloneable { /** * Initialize this destroy procedure for a new instance. * <p> * This method is called once at the beginning of the * {@link AdaptiveLargeNeighborhoodSearch#localSearch(IInstance, ISolution, IParameters) ALNS} * </p> * * @param instance * the instance that will be considered until the next call to this method */ public void initialize(IInstance instance); /** * Returns a short string describing this component * * @return the name of this component */ public String getName(); }