public class LexOrder extends Constraint implements UsesQueueVariable, Stateful, SatisfiedPresent, RemoveLevelLate
The algorithm is based on paper
"Propagation algorithms for lexicographic ordering constraints" by Alan M. Frisch, Brahim Hnich, Zeynep Kiziltan, Ian Miguel, and Toby Walsh , Artificial Intelligence 170 (2006) 803-834.
Modifier and Type | Field and Description |
---|---|
boolean |
lexLT
Lex enforcing "<" relationship (true).
|
boolean |
originalLexLT |
IntVar[] |
x
Two vectors that have to be lexicographically ordered.
|
IntVar[] |
y |
atomicExecution, consistencyPruningEvents, constraintScope, earlyTerminationOK, increaseWeight, numberId, scope, trace
queueIndex
Constructor and Description |
---|
LexOrder(IntVar[] x,
IntVar[] y)
It creates a lexicographical order for vectors x and y,
|
LexOrder(IntVar[] x,
IntVar[] y,
boolean lt) |
Modifier and Type | Method and Description |
---|---|
void |
consistency(Store store)
It is a (most probably incomplete) consistency function which removes the
values from variables domains.
|
protected void |
establishGACInit() |
int |
getDefaultConsistencyPruningEvent() |
void |
impose(Store store)
It imposes the constraint in a given store.
|
void |
queueVariable(int level,
Var var)
This is a function called to indicate which variable in a scope of
constraint has changed.
|
void |
removeLevel(int level)
This function is called in case of the backtrack, so a constraint can
clear the queue of changed variables which is no longer valid.
|
void |
removeLevelLate(int level)
This function is called in case of the backtrack.
|
boolean |
satisfied()
It checks if the constraint is satisfied.
|
String |
toString()
It produces a string representation of a constraint state.
|
void |
updateAlpha() |
void |
updateBeta(int i) |
afc, arguments, cleanAfterFailure, decompose, getConsistencyPruningEvent, getGuideConstraint, getGuideValue, getGuideVariable, grounded, grounded, id, impose, imposeDecomposition, increaseWeight, intArrayToString, long2int, numberArgs, removeConstraint, requiresMonotonicity, setConsistencyPruningEvent, setConstraintScope, setScope, setScope, setScope, setScope, setScope, setWatchedVariableGrounded, supplyGuideFeedback, updateAFC, watchedVariableGrounded
auxiliaryVariables, checkInput, checkInput, checkInputForDuplication, checkInputForDuplicationSkipSingletons, checkInputForNullness, checkInputForNullness, checkInputForNullness, derivative, getDubletonsSkipSingletons, imposeDecomposition
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
isStateful
public IntVar[] x
public IntVar[] y
public boolean lexLT
public boolean originalLexLT
public LexOrder(IntVar[] x, IntVar[] y)
vectors x and y does not need to be of the same size. boolean lt defines if we require strict order, Lex_{<} (lt = true) or Lex_{=<} (lt = false).
x
- first vector constrained by LexOrder constraint.y
- second vector constrained by LexOrder constraint.public void impose(Store store)
Constraint
impose
in class Constraint
store
- the constraint store to which the constraint is imposed to.public int getDefaultConsistencyPruningEvent()
getDefaultConsistencyPruningEvent
in class Constraint
public void consistency(Store store)
Constraint
consistency
in class Constraint
store
- constraint store within which the constraint consistency is being checked.public boolean satisfied()
SatisfiedPresent
Implementations of this interface for constraints that are not PrimitiveConstraint may require constraint imposition and consistency check as a requirement to work correctly.
satisfied
in interface SatisfiedPresent
public void queueVariable(int level, Var var)
Constraint
queueVariable
in class Constraint
level
- the level of the store at which the change has occurred.var
- variable which has changed.public void removeLevel(int level)
Stateful
removeLevel
in interface Stateful
level
- the level which is being removed.public void removeLevelLate(int level)
RemoveLevelLate
removeLevelLate
in interface RemoveLevelLate
level
- the level which is being removed.public String toString()
Constraint
toString
in class Constraint
protected void establishGACInit()
public void updateAlpha()
public void updateBeta(int i)
Copyright © 2022. All rights reserved.