public class MinWatchPb extends WatchPb
Modifier and Type | Field and Description |
---|---|
protected BigInteger |
watchCumul
sum of the coefficients of the literals satisfied or unvalued
|
protected boolean[] |
watched
is the literal of index i watching the constraint ?
|
protected int[] |
watching
indexes of literals watching the constraint
|
protected int |
watchingCount
number of literals watching the constraint.
|
Modifier | Constructor and Description |
---|---|
protected |
MinWatchPb(ILits voc,
IDataStructurePB mpb)
Basic constructor for pb constraint a0.x0 + a1.x1 + ... + an.xn >= k
This constructor is called for learnt pseudo boolean constraints.
|
protected |
MinWatchPb(ILits voc,
int[] lits,
BigInteger[] coefs,
BigInteger degree,
BigInteger sumCoefs)
Basic constructor for PB constraint a0.x0 + a1.x1 + ... + an.xn >= k
|
Modifier and Type | Method and Description |
---|---|
protected void |
computePropagation(UnitPropagationListener s) |
protected void |
computeWatches() |
protected BigInteger |
maximalCoefficient(int pIndice)
the maximal coefficient for the watched literals
|
protected int |
nbOfWatched()
Number of really watched literals.
|
static MinWatchPb |
normalizedMinWatchPbNew(UnitPropagationListener s,
ILits voc,
int[] lits,
BigInteger[] coefs,
BigInteger degree,
BigInteger sumCoefs)
build a pseudo boolean constraint.
|
static WatchPb |
normalizedWatchPbNew(ILits voc,
IDataStructurePB mpb)
build a pseudo boolean constraint from a specific data structure.
|
boolean |
propagate(UnitPropagationListener s,
int p)
Propagation of a falsified literal
|
void |
remove(UnitPropagationListener upl)
Remove the constraint from the solver
|
void |
undo(int p)
this method is called during backtrack
|
protected BigInteger |
updateWatched(BigInteger mc,
int pIndice)
update arrays watched and watching w.r.t. the propagation of a literal.
|
assertConstraint, assertConstraintIfNeeded, calcReason, calcReasonOnTheFly, canBePropagatedMultipleTimes, coefficientsEqualToOne, computeAnImpliedClause, computeLeftSide, computeLeftSide, equals, forwardActivity, get, getActivity, getCoef, getCoefs, getDegree, getLits, getVocabulary, hashCode, incActivity, isAssertive, isSatisfiable, learnt, locked, ppcm, register, rescaleBy, setActivity, setLearnt, simplify, size, slackConstraint, slackConstraint, sort, sort, toConstraint, toString
protected BigInteger watchCumul
protected boolean[] watched
protected int[] watching
protected int watchingCount
protected MinWatchPb(ILits voc, IDataStructurePB mpb)
voc
- all the possible variables (vocabulary)mpb
- a mutable PB constraintprotected MinWatchPb(ILits voc, int[] lits, BigInteger[] coefs, BigInteger degree, BigInteger sumCoefs)
voc
- all the possible variables (vocabulary)lits
- literals of the constraint (x0,x1, ... xn)coefs
- coefficients of the left side of the constraint (a0, a1, ...
an)degree
- degree of the constraint (k)protected void computeWatches() throws ContradictionException
computeWatches
in class WatchPb
ContradictionException
protected void computePropagation(UnitPropagationListener s) throws ContradictionException
computePropagation
in class WatchPb
ContradictionException
public static MinWatchPb normalizedMinWatchPbNew(UnitPropagationListener s, ILits voc, int[] lits, BigInteger[] coefs, BigInteger degree, BigInteger sumCoefs) throws ContradictionException
s
- a unit propagation listenervoc
- the vocabularylits
- the literalscoefs
- the coefficientsdegree
- the degree of the constraint to normalize.ContradictionException
protected int nbOfWatched()
public boolean propagate(UnitPropagationListener s, int p)
s
- the solverp
- the propagated literal (it must be falsified)public void remove(UnitPropagationListener upl)
public void undo(int p)
p
- un unassigned literalpublic static WatchPb normalizedWatchPbNew(ILits voc, IDataStructurePB mpb)
s
- a unit propagation listener (usually the solver)mpb
- data structure which contains literals of the constraint,
coefficients (a0, a1, ... an), and the degree of the
constraint (k). The constraint is a "more than" constraint.protected BigInteger maximalCoefficient(int pIndice)
pIndice
- propagated literal : its coefficient is excluded from the
search of the maximal coefficientprotected BigInteger updateWatched(BigInteger mc, int pIndice)
mc
- the current maximal coefficient of the watched literalspIndice
- the literal propagated (falsified)Copyright © 2013 Centre de Recherche en Informatique de Lens (CRIL). All Rights Reserved.