Jo Devriendt
MIAO research group
Lund University, Sweden
& University of Copenhagen, Denmark
jodevriendt.com
Clause
Cardinality constraint
General PB constraint
Pseudo-Boolean (PB) normal form:
eg
Clause | Cardinality | General constraint | |
---|---|---|---|
coefficients | 1 | 1 | ? |
Clause | Cardinality | General constraint | |
---|---|---|---|
coefficients | 1 | 1 | ? |
# watches | O(1), 2 | O(n), d+1 | O(n), variable |
Clause | Cardinality | General constraint | |
---|---|---|---|
coefficients | 1 | 1 | ? |
# watches | O(1), 2 | O(n), d+1 | O(n), variable |
propagation | single | single | multiple |
Clause | Cardinality | General constraint | |
---|---|---|---|
coefficients | 1 | 1 | ? |
# watches | O(1), 2 | O(n), d+1 | O(n), variable |
propagation | single | single | multiple |
after propagation | satisfied |
satisfied | may still be(come) conflicting |
eg
C is conflicting iff
eg
C propagates iff
eg
C propagates iff
eg
watches(C) is a subset of C's literals
Watch slack invariant:
the algorithm keeps track of the watch slack of a constraint
maxcoef(C) is C's largest coefficient
What happens if
if
then C is neither conflicting nor propagating
since
?
hence
propagation
backjump to root
...
propagations / second
propagations / second
propagations / second
propagations / second