net.sf.cpsolver.ifs.heuristics
Class GeneralVariableSelection

java.lang.Object
  extended by net.sf.cpsolver.ifs.heuristics.GeneralVariableSelection
All Implemented Interfaces:
VariableSelection

public class GeneralVariableSelection
extends Object
implements VariableSelection

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:
ParameterTypeComment
Variable.RandomSelectionBooleanif true, an unassigned variable is picked randomly
Variable.UnassignWhenNoGoodBooleanif 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.UnassignWhenNoGoodRandomWalkDoubleif 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.1 (Iterative Forward Search)
Copyright (C) 2006 Tomáš Müller
muller@unitime.org
Lazenska 391, 76314 Zlin, Czech Republic

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 2.1 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
See Also:
VariableSelection, Solver

Constructor Summary
GeneralVariableSelection()
           
GeneralVariableSelection(DataProperties properties)
          Constructor
 
Method Summary
 void init(Solver solver)
          Initialization
 Variable selectVariable(Solution 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 solver)
Initialization

Specified by:
init in interface VariableSelection

selectVariable

public Variable selectVariable(Solution solution)
Variable selection

Specified by:
selectVariable in interface VariableSelection
Parameters:
solution - current solution