JaCoP.search
Class InputOrderSelect<T extends Var>

java.lang.Object
  extended by JaCoP.search.InputOrderSelect<T>
Type Parameters:
T - type of variable being used in the search.
All Implemented Interfaces:
SelectChoicePoint<T>

public class InputOrderSelect<T extends Var>
extends java.lang.Object
implements SelectChoicePoint<T>

It is simple input order selector of variables.

Version:
3.1
Author:
Radoslaw Szymanek and Krzysztof Kuchcinski

Field Summary
 java.util.IdentityHashMap<T,java.lang.Integer> position
          It stores the original positions of variables to be used for input order tie-breaking.
 
Constructor Summary
InputOrderSelect(Store store, T[] variables, Indomain<T> indomain)
          It constructs an input order selection procedure.
 
Method Summary
 PrimitiveConstraint getChoiceConstraint(int index)
          It always returns null as choice point is obtained by getChoiceVariable and getChoiceValue.
 int getChoiceValue()
          It returns a value which is the base of the next choice point.
 T getChoiceVariable(int index)
          It returns the variable which is the base on the next choice point.
 int getIndex()
          It returns the current index.
 java.util.IdentityHashMap<T,java.lang.Integer> getVariablesMapping()
          It returns the variables for which assignment in the solution is given.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

position

public java.util.IdentityHashMap<T extends Var,java.lang.Integer> position
It stores the original positions of variables to be used for input order tie-breaking.

Constructor Detail

InputOrderSelect

public InputOrderSelect(Store store,
                        T[] variables,
                        Indomain<T> indomain)
It constructs an input order selection procedure.

Parameters:
store - a constraint store in which variables resides.
variables - a list of variables which must be assigned a value by search.
indomain - the indomain heuristic for assigning values to variables.
Method Detail

getChoiceVariable

public T getChoiceVariable(int index)
It returns the variable which is the base on the next choice point. Only if choice is of an X = C type. This function returns null if all variables have a value assigned or a choice point based on other type of constraint is being selected. The parameter index is the last variable which have been return by this SelectChoicePoint object which has not been backtracked upon yet.

Specified by:
getChoiceVariable in interface SelectChoicePoint<T extends Var>
Parameters:
index - the position of the last variable in selection choice point heuristic.
Returns:
variable based on which the choice needs to be created.

getChoiceValue

public int getChoiceValue()
It returns a value which is the base of the next choice point. Only if choice is of an X = C type.

Specified by:
getChoiceValue in interface SelectChoicePoint<T extends Var>
Returns:
value used in the choice point (value).

getChoiceConstraint

public PrimitiveConstraint getChoiceConstraint(int index)
It always returns null as choice point is obtained by getChoiceVariable and getChoiceValue.

Specified by:
getChoiceConstraint in interface SelectChoicePoint<T extends Var>
Parameters:
index - the position of the last variable returned by selection choice point heuristic.
Returns:
primitive constraint which is a base of a choice point.

getVariablesMapping

public java.util.IdentityHashMap<T,java.lang.Integer> getVariablesMapping()
It returns the variables for which assignment in the solution is given.

Specified by:
getVariablesMapping in interface SelectChoicePoint<T extends Var>
Returns:
mapping of variables to the positions in the variables array.

getIndex

public int getIndex()
It returns the current index. Supplying this value in the next invocation of select will make search for next variable faster without comprimising efficiency.

Specified by:
getIndex in interface SelectChoicePoint<T extends Var>
Returns:
internal position of the last variable chosen to be the base of the choice point.