Notes for CS 6100, Lecture 5 DPLL with clause learning and non-chronological backtracking ("backjumping") as explaned by Krstic' and Goel Ex1 from their paper Psi M C Clauses Checkpointed no_cflct or seq of literals a subset of literals I'll use B for \Box (in the paper they use \Box to build M as per levels of assignment) { -1 2 , -3 4 , -5 6 , -2 -5 -6 } , [ ] , no_cflct } -- Decide 1 --> { -1 2 , -3 4 , -5 6 , -2 -5 -6 } , B 1 , no_cflct } -- UnitPropag --> { -1 2 , -3 4 , -5 6 , -2 -5 -6 } , B 12 , no_cflct } -- Decide 3 --> { -1 2 , -3 4 , -5 6 , -2 -5 -6 } , B 12 B 3 , no_cflct } -- UnitPropag --> { -1 2 , -3 4 , -5 6 , -2 -5 -6 } , B 12 B 34 , no_cflct } -- Decide 5 --> { -1 2 , -3 4 , -5 6 , -2 -5 -6 } , B 12 B 34 B 5 , no_cflct } -- UnitPropag --> { -1 2 , -3 4 , -5 6 , -2 -5 -6 } , B 12 B 34 B 56 , no_cflct } -- Conflict --> { -1 2 , -3 4 , -5 6 , -2 -5 -6 } , B 12 B 34 B 56 , {2, 5, 6} } -- Explain --> Take any clause Psi which provides a conjunction of literals that imply l. We can enlarge C using it. Of course we remove l from the resulting C because it's l that "caused the conflict" { -1 2 , -3 4 , -5 6 , -2 -5 -6 } , B 12 B 34 B 56 , {2, 5} } -- Learn --> { -2 -5 , -1 2 , -3 4 , -5 6 , -2 -5 -6 } , B 12 B 34 B 56 , {2, 5} } -- BackJump --> Find such a literal l in C now that has a level "level of l" which strictly exceeds the max level of all other literals in C. In our case, "level of 5" (= 3) exceeds the max level of the other literals, which is now "level of 2" = 1. Reset the search to level 1 ("level of 2") now. Note that the learned clause {-2, -5} now says that "all solutions to this problem are found only in the space of {-2, -5}. Thus, the truth of variables 3 and 4 become immaterial. This is why back-jumping is sound. Also note that -5 is now implied at this level! So we can simply put -5 here (no box) and continue! We will build another example that clarifies this - see Ex2 below. But first let us finish this example: { -2 -5 , -1 2 , -3 4 , -5 6 , -2 -5 -6 } , B 12 -5 , no_cflct } -- Decide 3 --> { -2 -5 , -1 2 , -3 4 , -5 6 , -2 -5 -6 } , B 12 -5 B 3 , no_cflct } -- UnitPropag --> { -2 -5 , -1 2 , -3 4 , -5 6 , -2 -5 -6 } , B 12 -5 B 34 , no_cflct } -- Decide -6 --> [[ I don't see a need to make a decision here. Since we have -5, the last clause ought to be true ]] { -2 -5 , -1 2 , -3 4 , -5 6 , -2 -5 -6 } , B 12 -5 B 34 B -6 , no_cflct } The inference terminates in no_cflct IFF the original formula is SAT. The model can then be read-off from M, which is 1 2 3 4 -5 -6 -- ** -- ** -- ** -- ** -- ** -- ** -- ** -- ** -- ** -- ** -- ** -- ** -- Ex2: We will make up an example. { -7 8 , -1 2 , -3 4 , -5 6 , -2 -5 -6 , -8 5 } , [ ] , no_cflct } -- Decide 7 --> { -7 8 , -1 2 , -3 4 , -5 6 , -2 -5 -6 , -8 5 } , B 7 , no_cflct } -- UnitPropag --> { -7 8 , -1 2 , -3 4 , -5 6 , -2 -5 -6 , -8 5 } , B 78 , no_cflct } -- Decide 1 --> { -7 8 , -1 2 , -3 4 , -5 6 , -2 -5 -6 , -8 5 } , B 78 B 1 , no_cflct } -- UnitPropag --> { -7 8 , -1 2 , -3 4 , -5 6 , -2 -5 -6 , -8 5 } , B 78 B 12 , no_cflct } -- Decide 3 --> { -7 8 , -1 2 , -3 4 , -5 6 , -2 -5 -6 , -8 5 } , B 78 B 12 B 3 , no_cflct } -- UnitPropag --> { - 7 8 , -1 2 , -3 4 , -5 6 , -2 -5 -6 , -8 5 } , B 78 B 12 B 34 , no_cflct } -- Decide 5 --> { -7 8 , -1 2 , -3 4 , -5 6 , -2 -5 -6 , -8 5 } , B 78 B 12 B 34 B 5 , no_cflct } -- UnitPropag --> { -7 8 , -1 2 , -3 4 , -5 6 , -2 -5 -6 , -8 5 } , B 78 B 12 B 34 B 56 , no_cflct } -- Conflict --> { -7 8 , -1 2 , -3 4 , -5 6 , -2 -5 -6 , -8 5 } , B 78 B 12 B 34 B 56 , {2, 5, 6} } -- Explain --> { -7 8 , -1 2 , -3 4 , -5 6 , -2 -5 -6 , -8 5 } , B 78 B 12 B 34 B 56 , {2, 5} } -- Learn --> { -2 -5 , -7 8 , -1 2 , -3 4 , -5 6 , -2 -5 -6 , -8 5 } , B 78 B 12 B 34 B 56 , {2, 5} } -- BackJump --> { -2 -5 , -7 8 , -1 2 , -3 4 , -5 6 , -2 -5 -6 , -8 5 } , B 78 B 12 -5 , no_cflct } -- Conflict --> { -2 -5 , -7 8 , -1 2 , -3 4 , -5 6 , -2 -5 -6 , -8 5 } , B 78 B 12 -5 B 34 B -6 , { 8, -5 } } -- Explain --> { -2 -5 , -7 8 , -1 2 , -3 4 , -5 6 , -2 -5 -6 , -8 5 } , B 78 B 12 -5 B 34 B -6 , { 8 } } -- Learn --> { -8, -2 -5 , -7 8 , -1 2 , -3 4 , -5 6 , -2 -5 -6 , -8 5 } , B 78 B 12 -5 B 34 B -6 , { -8 } } ... should finish ... -- end