Title: Clause Recording
1Clause Recording
- During backtrack search, for each conflict create
clause that explains and prevents recurrence of
same conflict
? (a b)(b c d) (b e)(d e f)?
? (a b)(b c d) (b e)(d e f)?
? (a b)(b c d) (b e)(d e f)?
? (a b)(b c d) (b e)(d e f)?
? (a b)(b c d) (b e)(d e f)?
stands for ?
Assume (decisions) c 0 and f 0
Assign a 0 and imply assignments
A conflict is reached (d e f) is unsat
(? 1) ? (a 1) ? (c 1) ? (f 1)
Thanks Ines Lynce!
2Clause Recording
- Clauses derived from conflicts can also be viewed
as the result of applying selective resolution
? (a b)(b c d) (b e)(d e f)?
Clause (a c f) would have prevented the
conflict !
Unit clause prevents conflict and implies
assignment a 1
3More on Clause Recording
- Clause recording can be made polynomial
- For each conflict 1 clause is recorded
- Keep clauses of size ? K
- Larger clauses get deleted when (become)
unresolved - Growth in the number of clauses is polynomial in
K - Relevance-based learning
- Delete large unresolved clauses with ? M free
literals
4Non-Chronological Backtracking
- During backtrack search, in the presence of
conflicts, backtrack to one of the causes of the
conflict
? (a b)(b c d) (b e)(d e f) (a
c f)(a g)(g b)(h j)(i k)?
? (a b)(b c d) (b e)(d e f) (a
c f)(a g)(g b)(h j)(i k)?
? (a b)(b c d) (b e)(d e f) (a
c f)(a g)(g b)(h j)(i k)?
? (a b)(b c d) (b e)(d e f) (a
c f)(a g)(g b)(h j)(i k)?
Assume (decisions) c 0, f 0, h 0 and i 0
Assignment a 0 caused conflict ? clause (a c
f) created (a c f) implies a 1
A conflict is again reached (d e f) is
unsat
(? 1) ? (a 0) ? (c 1) ? (f 1)
5Non-Chronological Backtracking
Created clauses (a c f) and (a c f)
? backtrack to most recent decision f 0
6Conflict-Induced Assignments
- Exploit structure of conflicting implication
sequences for identifying more necessary
assignments
? (a b)(b c g) (b h)(g h
i) (i d) (i e)(d e f)?
? (a b)(b c g) (b h)(g h
i) (i d) (i e)(d e f)?
? (a b)(b c g) (b h)(g h
i) (i d) (i e)(d e f)?
Assume (decisions) c 0, f 0, and a 0, and
imply assignments