/** * */ package vroom.common.heuristics.alns; import vroom.common.utilities.optimization.IParameters; import vroom.common.utilities.optimization.ISolution; /** * <code>IDestroy</code> is an interface for the <em>destroy</em> procedure used in the * {@link AdaptiveLargeNeighborhoodSearch ALNS}. * <p> * Creation date: May 12, 2011 - 1:16:08 PM * * @author Victor Pillac, <a href="http://uniandes.edu.co">Universidad de Los Andes</a>-<a * href="http://copa.uniandes.edu.co">Copa</a> <a href="http://www.emn.fr">Ecole des Mines de Nantes</a>-<a * href="http://www.irccyn.ec-nantes.fr/irccyn/d/en/equipes/Slp">SLP</a> * @version 1.0 */ public interface IDestroy<S extends ISolution> extends IALNSComponent<S> { /** * Destroy a solution * * @param solution * the solution * @param parameters * the parameters * @param size * the size of the <em>destroy</em> neighborhood, by convention in [0,1] * @return the destroy result */ public IDestroyResult<S> destroy(S solution, IParameters parameters, double size); /** * Clone this destroy operator * * @return a copy of this destroy operator */ public IDestroy<S> clone(); /** * The Interface <code>IDestroyResult</code> describes the result of the execution of the * {@link IDestroy#destroy(ISolution, IParameters, int)} procedure on a solution * <p> * Creation date: May 13, 2011 - 11:03:52 AM. * * @param <SS> * the generic type * @author Victor Pillac, <a href="http://uniandes.edu.co">Universidad de Los Andes</a>-<a * href="http://copa.uniandes.edu.co">Copa</a> <a href="http://www.emn.fr">Ecole des Mines de Nantes</a>-<a * href="http://www.irccyn.ec-nantes.fr/irccyn/d/en/equipes/Slp">SLP</a> * @version 1.0 */ public interface IDestroyResult<SS extends ISolution> { /** * Returns <code>true</code> if the result is empty, in other words if the solution was left unchanged by the * {@link IDestroy#destroy(ISolution, IParameters, int)} procedure) * * @return <code>true</code> if the result is empty */ public boolean isNull(); } }