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() |
int |
getAssertionLevel(IVecInt trail,
int decisionLevel) |
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
|
boolean |
propagatePI(MandatoryLiteralListener l,
int p) |
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, canBeSatisfiedByCountingLiterals, coefficientsEqualToOne, computeAnImpliedClause, computeLeftSide, computeLeftSide, dump, equals, forwardActivity, get, getActivity, getCoef, getCoefs, getDegree, getLits, getSumCoefs, getVocabulary, hashCode, incActivity, isAssertive, isSatisfiable, isSatisfied, learnt, locked, ppcm, register, requiredNumberOfSatisfiedLiterals, rescaleBy, setActivity, setLearnt, simplify, size, slackConstraint, slackConstraint, sort, sort, toConstraint, toString, toStringprotected 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 WatchPbContradictionExceptionprotected void computePropagation(UnitPropagationListener s) throws ContradictionException
computePropagation in class WatchPbContradictionExceptionpublic 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.ContradictionExceptionprotected 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)public boolean propagatePI(MandatoryLiteralListener l, int p)
public int getAssertionLevel(IVecInt trail, int decisionLevel)
Copyright © 2020 Centre de Recherche en Informatique de Lens (CRIL). All rights reserved.