ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions On the Interpolation of Product-Based Message Passing Heuristics for SAT Oliver Gableske 1 1 Institute of Theoretical Computer Science Ulm University Germany oliver@gableske.net https://www.gableske.net SAT 2013, 11.07.2013 1 / 40
ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions Outline Goals 1 Message Passing 2 Message Passing on a conceptual level Product-based MP heuristics Interpolation and ISI 3 Interpolation Indirect Structural Interpolation (ISI) The product-based MP Hierarchy ρσ PMP i 4 Conclusions 5 2 / 40
ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions Goals 1 Provide better access to MP for the SAT community. Provide a consistent notational frame to explain all currently available MP heuristics. Explain the functioning of all these heuristics. Explain their respective strengths and weaknesses. Explain where they differ. 2 Extend our knowledge about MP. Provide more general/flexible MP heuristics. Integrate MP into a CDCL solver (used to initialize VSIDS and phase-saving). 3 / 40
ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions Message Passing on a conceptual level (1) Message Passing (MP) is a class of algorithms H ∈ MP can be understood as variable and value ordering heuristics in the context of SAT The main goal of H is to provide biases for all variables of a CNF F ∀ v ∈ V : β H ( v ) ∈ [ − 1 . 0 , 1 . 0] The biases can be used to guide search (CDCL or SLS) 4 / 40
ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions Message Passing on a conceptual level (1) Message Passing (MP) is a class of algorithms H ∈ MP can be understood as variable and value ordering heuristics in the context of SAT The main goal of H is to provide biases for all variables of a CNF F ∀ v ∈ V : β H ( v ) ∈ [ − 1 . 0 , 1 . 0] The biases can be used to guide search (CDCL or SLS) Given the formula F , what does H do to compute the biases? 4 / 40
ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions Message Passing on a conceptual level (2) Example F = ( v 1 ∨ v 2 ∨ v 3 ) ∧ ( v 1 ∨ ¯ v 2 ∨ v 3 ) ∧ ( ¯ v 1 ∨ ¯ v 2 ∨ ¯ v 3 ) It is helpful to understand F as a factor graph . v c 1 1 c 2 v 2 v c 3 3 Undirected, bipartite graph Two types of nodes (variable nodes (circles), clause nodes (squares)) Two types of edges (positive edges (solid), negative edges (dashed)) Edges constitute literal occurrences 5 / 40
ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions Message Passing on a conceptual level (3) Example F = ( v 1 ∨ v 2 ∨ v 3 ) ∧ ( v 1 ∨ ¯ v 2 ∨ v 3 ) ∧ ( ¯ v 1 ∨ ¯ v 2 ∨ ¯ v 3 ) c 1 v 1 c 2 v 2 v c 3 3 H sends around messages along the edges. Assume variable v is contained in clause c as literal l Two types of messages. 6 / 40
ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions Message Passing on a conceptual level (4) Example F = ( v 1 ∨ v 2 ∨ v 3 ) ∧ ( v 1 ∨ ¯ v 2 ∨ v 3 ) ∧ ( ¯ v 1 ∨ ¯ v 2 ∨ ¯ v 3 ) d v c 1 1 1 d 2 c 2 d 3 c 3 1. Disrespect Messages (from variable nodes towards clause nodes): δ H ( l, c ) ∈ [0 . 0 , 1 . 0] The chance that l will not satisfy c Intuitive meaning of δ H ( l, c ) ≈ 1 . 0 : Variable v tells clause c that it cannot satisfy it. 7 / 40
ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions Message Passing on a conceptual level (5) Example F = ( v 1 ∨ v 2 ∨ v 3 ) ∧ ( v 1 ∨ ¯ v 2 ∨ v 3 ) ∧ ( ¯ v 1 ∨ ¯ v 2 ∨ ¯ v 3 ) w v c 1 1 1 w 2 c 2 w 3 c 3 2. Warning Messages (from clause nodes towards variable nodes): ω H ( c, v ) ∈ [0 . 0 , 1 . 0] The chance that no other literal in c can satisfy c Intuitive meaning of ω H ( c, v ) ≈ 1 . 0 : Clause c is telling variable v , that it needs it to be satisfied. 8 / 40
ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions Message Passing on a conceptual level (6) Example F = ( v 1 ∨ v 2 ∨ v 3 ) ∧ ( v 1 ∨ ¯ v 2 ∨ v 3 ) ∧ ( ¯ v 1 ∨ ¯ v 2 ∨ ¯ v 3 ) For all product-based MP heuristics, the waring message is computed by � ω H ( c, v ) = δ H ( l, c ) l ∈ c \{ v, ¯ v } . v c 1 = w d 1 d 3 1 2 d 1 v 2 d 3 v 3 9 / 40
ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions Message Passing on a conceptual level (7) For all product-based MP heuristics, the cavity freedom values are computed by � [1 − ω H ( d, v )] , l = v d ∈ C − [0 . 0 , 1 . 0] ∋ S H ( l, c ) = v � [1 − ω H ( d, v )] , l = ¯ v d ∈ C + v Intuitive meaning: How happy are the other clauses if l satisfies c ? � [1 − ω H ( d, v )] , l = v d ∈ C + v \{ c } [0 . 0 , 1 . 0] ∋ U H ( l, c ) = � [1 − ω H ( d, v )] , l = ¯ v d ∈ C − v \{ c } Intuitive meaning: How happy are the other clauses if l does not satisfy c ? 10 / 40
ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions Message Passing on a conceptual level (8) In summary: Computed δ H values allow us to compute the ω H values Computed ω H values allow us to compute the S H , U H values However: H will not send around messages arbitrarily H performs clause updates ∀ c ∈ F The ordering of the clauses in which they receive updates is determined by a random clause permutation π ∈ S m 11 / 40
ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions Message Passing on a conceptual level (9) Following π ∈ S m , each clause is updated exactly once. Basically, a clause update for clause c consists of three steps. 1 Compute ∀ l ∈ c : δ H ( l, c ) 2 Using the δ , compute ∀ v ∈ c : ω H ( c, v ) 3 Using the ω , compute ∀ l ∈ c : S H ( l, c ) , U H ( l, c ) Where do the δ values come from in order to compute a clause update? 12 / 40
ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions Message Passing on a conceptual level (10) We need the terms of iteration and cycle to explain that. Doing the clause updates for all clauses exactly once is called an iteration . A cycle is a finite tuple of iterations. Iterations and cycles capture the notion of passing time while H performs its computations. An iteration is a single point in time, a cycle is a time-frame. We denote the specific values computed in iteration z of cycle y with y z δ H ( l, c ) y z ω H ( c, v ) y z S H ( l, c ) y z U H ( l, c ) 13 / 40
ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions Message Passing on a conceptual level (11) Again, in order to compute the clause update for iteration z in cycle y 1 Compute ∀ l ∈ c : y z δ H ( l, c ) z δ H ( l, c ) , compute ∀ v ∈ c : y 2 Using the y z ω H ( c, v ) 3 Using the y z ω H ( c, v ) , compute ∀ l ∈ c : y z S H ( l, c ) , y z U H ( l, c ) Again, where do the y z δ H ( l, c ) values come from in order to compute a clause update? 14 / 40
ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions Message Passing on a conceptual level (12) The initialization for cycle y happens in iteration z = 0 . ∀ c ∈ F : ∀ l ∈ c : initialize randomly with y 0 δ H ( l, c ) ∈ R (0 . 0 , 1 . 0) The values for y 0 ω H ( c, v ) , y 0 S H ( l, c ) , y 0 U H ( l, c ) then directly follow with the definitions. The clause updates for cycle y and iteration z > 0 are defined recursive. y y z − 1 U H ( l, c ) in order to compute y Rely on z − 1 S H ( l, c ) , z δ H ( l, c ) . How exactly is y z δ H ( l, c ) computed using these values? 15 / 40
ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions Message Passing on a conceptual level (12) The initialization for cycle y happens in iteration z = 0 . ∀ c ∈ F : ∀ l ∈ c : initialize randomly with y 0 δ H ( l, c ) ∈ R (0 . 0 , 1 . 0) The values for y 0 ω H ( c, v ) , y 0 S H ( l, c ) , y 0 U H ( l, c ) then directly follow with the definitions. The clause updates for cycle y and iteration z > 0 are defined recursive. y y z − 1 U H ( l, c ) in order to compute y Rely on z − 1 S H ( l, c ) , z δ H ( l, c ) . How exactly is y z δ H ( l, c ) computed using these values? This must be defined by H! 15 / 40
ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions Message Passing on a conceptual level (13) For Belief Propagation (BP) this is defined as y z − 1 U BP ( l, c ) � � U y z δ BP ( l, c ) = = y y z − 1 U BP ( l, c ) + z − 1 S BP ( l, c ) U + S 16 / 40
ρσ PMP i Goals Message Passing Interpolation and ISI Conclusions Message Passing on a conceptual level (14) We now know . . . how cycles start. . . . how the iterations are done. give give y y y y y A i {1,...,m}: cls. updt. c init all d w S U for c p (i) p (i) 0 0 0 0 0 give give y y y y y A give S U for c i {1,...,m}: cls. updt. c w 1 d p (i) p (i) 1 1 1 1 ... y give give y y y y A i {1,...,m}: cls. updt. c give w S U for c * d p (i) p (i) * * * * We do not know 17 / 40
Recommend
More recommend