Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## ifs.heuristics
Class GeneralVariableSelection

    java.lang.Object
      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):

- one point for a variable with no initial assignment
- 3 * ( 1 + number of conflicts with the initial assignment) for a variable with an initial assignment

If `MacPropagation` is used and Variable.UnassignWhenNoGood parameter is true, while there is a variable with an empty domain:

- with Variable.UnassignWhenNoGoodRandomWalk probabilty an arbitrary assigned variable is selected
- otherwise, one variable with empty domain is picked, one of its original values is picked and one of the variables from the explanation of that value is then returned. If the explanation is empty, another variable and value is tried (up to ten times).

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:
  1.0
Author:
  Tomáš Müller
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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2005 Tomáš Müller