net.sf.cpsolver.ifs.heuristics
Class GeneralVariableSelection<V extends Variable<V,T>,T extends Value<V,T>>

java.lang.Object
  extended by net.sf.cpsolver.ifs.heuristics.GeneralVariableSelection<V,T>
All Implemented Interfaces:
VariableSelection<V,T>

public class GeneralVariableSelection<V extends Variable<V,T>,T extends Value<V,T>>
extends Object
implements VariableSelection<V,T>

General implementation of variable selection criterion.

In case that all variables are assigned, one of the variables is selected randomly. In case of MPP, the random selection is made among the variables which have not assigned initial values.

When there are unassigned variables, a variable is selected randomly among all unassigned variables (when Variable.RandomSelection is true) or the following roulette wheel selection takes place (MPP):


If MacPropagation is used and Variable.UnassignWhenNoGood parameter is true, while there is a variable with an empty domain:
Parameters:
Parameter Type Comment
Variable.RandomSelection Boolean if true, an unassigned variable is picked randomly
Variable.UnassignWhenNoGood Boolean if true and if MacPropagation is used: if there is a variable with empty domain, assigned variable (which is present in some explanation for a vairable with empty domain) is selected (for reassignment)
Variable.UnassignWhenNoGoodRandomWalk Double if Variable.UnassignWhenNoGood is true and if MacPropagation is used: if there is a variable with empty domain, with the given probability an arbitrary assigned variable is selected

Version:
IFS 1.2 (Iterative Forward Search)
Copyright (C) 2006 - 2010 Tomas Muller
muller@unitime.org
http://muller.unitime.org

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not see .
See Also:
VariableSelection, Solver

Constructor Summary
GeneralVariableSelection()
           
GeneralVariableSelection(DataProperties properties)
          Constructor
 
Method Summary
 void init(Solver<V,T> solver)
          Initialization
 V selectVariable(Solution<V,T> solution)
          Variable selection
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GeneralVariableSelection

public GeneralVariableSelection(DataProperties properties)
Constructor

Parameters:
properties - input configuration

GeneralVariableSelection

public GeneralVariableSelection()
Method Detail

init

public void init(Solver<V,T> solver)
Initialization

Specified by:
init in interface VariableSelection<V extends Variable<V,T>,T extends Value<V,T>>

selectVariable

public V selectVariable(Solution<V,T> solution)
Variable selection

Specified by:
selectVariable in interface VariableSelection<V extends Variable<V,T>,T extends Value<V,T>>
Parameters:
solution - current solution


Copyright © 2014 UniTime LLC. All Rights Reserved.