/**
*
*/
package vroom.common.heuristics.alns;
import vroom.common.utilities.IDistance;
import vroom.common.utilities.params.ClassParameterKey;
import vroom.common.utilities.params.GlobalParameters;
import vroom.common.utilities.params.ParameterKey;
import vroom.common.utilities.params.RequiredParameter;
/**
* The Class <code>ALNSGlobalParameters</code> defines global parameters used in the
* {@link AdaptiveLargeNeighborhoodSearch}
* <p>
* Creation date: May 13, 2011 - 10:36:16 AM.
*
* @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 class ALNSGlobalParameters extends GlobalParameters {
/**
* The range for the value for the size of
* {@link IDestroy#destroy(vroom.common.utilities.optimization.ISolution, vroom.common.utilities.optimization.IParameters, int)
* destroy} (by convention in [0,1]).
*/
@RequiredParameter
public static final ParameterKey<double[]> DESTROY_SIZE_RANGE = new ParameterKey<double[]>(
"DESTROY_SIZE_RANGE",
double[].class,
new double[] {
0.1, 0.5 });
/** The type of {@linkplain IPALNSSolutionPool solution pool} */
@SuppressWarnings("rawtypes")
public static final ClassParameterKey<IPALNSSolutionPool> PALNS_POOL = new ClassParameterKey<IPALNSSolutionPool>(
"PALNS_POOL",
IPALNSSolutionPool.class,
SimpleSolutionPool.class);
/** The number of iterations to be performed in parallel */
public static final ParameterKey<Integer> PALNS_POOL_SIZE = new ParameterKey<Integer>(
"PALNS_POOL_SIZE",
Integer.class,
Runtime.getRuntime()
.availableProcessors());
/** The number of Threads to use for parallelization */
public static final ParameterKey<Integer> PALNS_THREAD_COUNT = new ParameterKey<Integer>(
"PALNS_THREAD_COUNT",
Integer.class,
Runtime.getRuntime()
.availableProcessors());
/** The number of iterations to be performed in parallel */
public static final ParameterKey<Integer> PALNS_IT_P = new ParameterKey<Integer>(
"PALNS_IT_P",
Integer.class,
100);
@SuppressWarnings("rawtypes")
public static final ClassParameterKey<IDistance> DIVERSITY_METRIC = new ClassParameterKey<IDistance>(
"DIVERSITY_METRIC",
IDistance.class);
}