Conflict-Directed Backjumping (CBJ)
More sophisticated backjumping behavior
Each variable has conflict set CS
- Set of vars that failed consistency checks w/ current val
- Update this set on every failed c-check
When no more values to try for xi
- Backtrack to deepest var, xh, in CS(xi)
- And update CS(xh) := CS(xh) ? CS(xi)-{xh}
(2, 5, 3) inconsistent with {x5, x6 }