Presentation is loading. Please wait.

Presentation is loading. Please wait.

Efficient MUS Extraction with Resolution

Similar presentations


Presentation on theme: "Efficient MUS Extraction with Resolution"— Presentation transcript:

1 Efficient MUS Extraction with Resolution
Minimal Unsatisfiable Set Efficient MUS Extraction with Resolution Alexander Nadel Intel, Haifa Vadim Ryvchin Intel + Technion, Haifa Ofer Strichman Technion, Haifa

2 Minimal Unsatisfiable Set (MUS)
Given an unsatisfiable CNF , find a minimal (irreducible) set of clauses à µ  such that à is unsatisfiable. Two main ‘schools’ of finding cores: Assumptions-based (Een & Sorensson, [2003]) Resolution-based (Zhang et al. [2003]) Assumptions-based: all clauses are guarded by clause selectors which are given as assumptions. Removing a clause = assuming the selector is true. Resolution-based: analyzing the proof

3 Deletion-based minimization
Initially Roots are unmarked  = Roots Return Roots All marked Choose unmarked clause c 2 Roots Remove(, c); SAT() ? yes no Incremental setting. Remove(\phi, c) means we remove it incrementally. We will focus from hereon on resolution-based. We want the core to use as little as possible ‘unmarked clauses’ mark c Roots := core Works for both ‘assumptions-based’ and ‘resolution-based’

4 Derived clauses are also marked
Optimization 1 ? m Maintain partial resolution proofs Only part of proof emanating from unmarked clauses

5 Derived clauses are also marked
Optimization 2 ? m m m m m m Postpone propagation of unmarked clauses These pull unmarked clauses into the proof

6 Derived clauses are also marked
Optimizations 3,4 ? m m m m m m … and two other optimizations we used for group MUS [RS’12]

7 Choose unmarked clause c 2 Roots
Model Rotation* * Belov, A., Marques-Silva, J.: Accelerating MUS extraction with recursive model rotation. In: FMCAD’11. (2011)  = Roots Return Roots All marked Choose unmarked clause c 2 Roots Remove(, c); Rotation: mark more clauses SAT() ? yes no mark c Roots := core

8 Searching for other clauses that can be marked
Model Rotation  is unsat, but ® ² /c ®’ = ®[l à :l] for some l 2 c if (UnsatSet(, ®’) = {c’} Æ c’ is unmarked) then Mark c’; Apply recursively with (, c’, ®’); } Note that \varphi \ c’ is SAT The difference is: we are starting with a different assignment; hence we w \begin{tabular}{|lll|}\hline & E-rotation & Rotation \\ %Run-time & & \\ MUS size & & \\ Added clauses & & \\ Initial calls & & \\ Iterations & & \\ Iterations/calls & 1.19 & 1.09 \\ Clauses/iterations & 7.27 & 3.63 \\ Clauses/calls & 8.72 & 3.98 \\ \hline \end{tabular} \caption{Statistics comparing E-rotation and Rotation. Since the corresponding functions \alg{ERMR} and \alg{RMR} are recursive, we make the distinction between Initial calls (calls from line~\ref{step-call} in \alg{MUS}) and Iterations, which is the total number of calls to these functions.}\label{fig:erot}ant to keep developing that clause. Searching for other clauses that can be marked

9 New assignment ) new starting point for the search
Model Rotation, eager Optimization 5  is unsat, but ® ² /c ®’ = ®[l à :l] for some l 2 c if (UnsatSet(, ®’) = {c’} Æ c’ is unmarked) then Mark c’; Apply recursively with (, c’, ®’); } in the current call Note that \varphi \ c’ is SAT The difference is: we are starting with a different assignment; hence we w \begin{tabular}{|lll|}\hline & E-rotation & Rotation \\ %Run-time & & \\ MUS size & & \\ Added clauses & & \\ Initial calls & & \\ Iterations & & \\ Iterations/calls & 1.19 & 1.09 \\ Clauses/iterations & 7.27 & 3.63 \\ Clauses/calls & 8.72 & 3.98 \\ \hline \end{tabular} \caption{Statistics comparing E-rotation and Rotation. Since the corresponding functions \alg{ERMR} and \alg{RMR} are recursive, we make the distinction between Initial calls (calls from line~\ref{step-call} in \alg{MUS}) and Iterations, which is the total number of calls to these functions.}\label{fig:erot}ant to keep developing that clause. New assignment ) new starting point for the search

10 The impact of E-rotation
Optimization 5

11 Redundancy removal [BS’11]
Optimization 6 S is unsat ) (SAT(S / c) , SAT((S / c) Æ :c) Hence, add :c literals as assumptions. This is implemented already in MUSer-2 [BS’11]. Our improvement (“path falsification”): Add :c, :c1…, :cn literals as assumptions. c = (1 2 3) c1 = (-1 4) c2 = (-4)

12 Path falsification Vertex cut: separates ? from the roots
Optimization 6 Vertex cut: separates ? from the roots Implies what’s on its left ) must be unsat ? c

13 Path falsification Consider ®, ® ² Roots / c ® cannot satisfy a cut )
SAT(C/c) Optimization 6 Consider ®, ® ² Roots / c ® cannot satisfy a cut ) ® ² (:c Æ :c1 Æ :c2) Ç (:c Æ :c1 Æ :c3) ) ® ² :c Æ :c1 ? c2 c1 c c3

14 Results 295 benchmarks of the 2011 MUS competition
Base – HaifaMUC with deletion-based + clause-set refinement. MUSer 2 – Belov & Marques-Silva, which includes rotation Minisatbb – Lagniez & Biere – “Factoring-out assumptions to speed-up MUS extraction” HaifaMUC (erot_AB…) – this article 295 benchmarks of the 2011 MUS competition

15 HaifaMUC vs. Minisatbb*
* Lagniez, Biere, SAT’13


Download ppt "Efficient MUS Extraction with Resolution"

Similar presentations


Ads by Google