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