Download presentation
Presentation is loading. Please wait.
Published byMarian McDonald Modified over 9 years ago
1
Preprocessing in Incremental SAT Alexander Nadel 1, Vadim Ryvchin 1,2, and Ofer Strichman 2 1 – Intel, Haifa, Israel 2 – Technion, Haifa, Israel SAT’12, Trento, Italy
2
Introduction Incremental SAT is at the core of a variety of applications Preprocessing is essential for SAT’s performance … but is not compatible with incremental SAT We propose a way to make them compatible thus increasing the capacity of SAT-based tools and algorithms
3
Incremental SAT
4
SatELite Preprocessing
5
The Problem
6
Previous Approaches 1. No preprocessing at all 2. Full preprocessing After each invocation return the eliminated clauses Redo preprocessing 3. Look Ahead: Do not eliminate “problematic” variables Preprocessing is essential for performance In many cases look ahead is not possible
7
Usages Interactive communication with the user Calculation of the next portion of the problem depends on previous invocation In Intel, the conversion of BMC problems to CNF is done after applying some optimizations at the circuit level. Those optimizations cannot predict which variables might reappear in future calls
8
Definitions
9
Incremental Preprocessing Preprocess Solve // might run in-process
10
Incremental Preprocessing For each eliminated variable in elimination order: if (*) // decide heuristically Re-Eliminate else Re-Introduce Preprocess Solve // might run in-process
11
Incremental Preprocessing Remove subsumptions. For each eliminated variable in elimination order: if (*) // decide heuristically Re-Eliminate else Re-Introduce Preprocess Solve // might run in-process
12
Incremental Preprocess
13
Data structure for Eliminated Variables v1v1 v2v2 v3v3 v4v4 v5v5 … S1S1 S2S2 S3S3 S4S4 S5S5 Clauses containing v 3 but not v 1 nor v 2 may contain v 4, v 5, …
14
Start v1v1 v2v2 v3v3 v4v4 v5v5 … S1S1 S2S2 S3S3 S4S4 S5S5
15
Step 1 – Examine v 1 v1v1 v2v2 v3v3 v4v4 v5v5 … S1S1 S2S2 S3S3 S4S4 S5S5
16
Step 1 – Re-Eliminate v 1 v1v1 v2v2 v3v3 v4v4 v5v5 … S2S2 S3S3 S4S4 S5S5
17
Step 2 v1v1 v2v2 v3v3 v4v4 v5v5 … S2S2 S3S3 S4S4 S5S5
18
Step 2 – Examine v 2 v1v1 v2v2 v3v3 v4v4 v5v5 … S2S2 S3S3 S4S4 S5S5
19
Step 2 – Re-Eliminate v 2 v1v1 v2v2 v3v3 v4v4 v5v5 … S3S3 S4S4 S5S5
20
Step 3 v1v1 v2v2 v3v3 v4v4 v5v5 … S3S3 S4S4 S5S5
21
Step 3 – Examine v 3 v1v1 v2v2 v3v3 v4v4 v5v5 … S3S3 S4S4 S5S5
22
Step 3 – Re-Introduce v 3 v1v1 v2v2 v3v3 v4v4 v5v5 … S3S3 S4S4 S5S5 S3S3 S3S3
23
v1v1 v2v2 v4v4 v5v5 … S4S4 S5S5 S3S3 S3S3 May contain v 4 and/or v 5
24
Our Example
25
Our Example – Re-Elimination
29
Our Example
30
Our Example – Re-Introduction
31
c 1 c 2
32
Our Example – Re-Introduction
34
Additional Improvements
35
Removal of Resolvents
36
Example
37
Assumptions How to deal with assumption variables? Regular preprocessing: Freeze them (do not eliminate these variables). Incremental preprocessing: Freeze them (the same). But what if variable was eliminated before? o Must Re-Introduce. What if there are a lot of assumptions Our previous talk
38
Experimental Results Benchmark Set: Implementation on top of Fiver (a new SAT solver under development at Intel). Large Bounded Model-checking instances from Intel divided into 4 different families. 206 different instances Timeout: 4000sec Machines: Intel ® Xeon ® 4Ghz 32Gb of memory
39
Experimental Results
40
MethodTime-outsAvg. Total run-time Full-preprocessing682465.5 No-preprocessing421784.7 Incremental-preprocessing21221.3 Look-ahead01064.9
41
Incremental vs. No preprocessing
42
Incremental vs. Full preprocessing
43
Incremental vs. Look-ahead
44
Thank You!
45
Our Example ϕ 0 = c 1 c 2 : c 1 = (a v b) c 2 = (¬a v c) After preprocess ϕ 0 = c 3 = (b v c) Incremental call: ∆ 1 = c 4 c 5 c 4 = (¬b) c 5 =(¬a) ------------------------------------------------------------------------------- Incremental Preprocess: -Re-Eliminate: a Addition of: c 6 = (b) because of (c 1 x c 5 ) Solve UNSAT
46
Our Example ϕ 0 = c 1 c 2 : c 1 = (a v b) c 2 = (¬a v c) After preprocess ϕ 0 = c 3 = (b v c) Incremental call: ∆ 1 = c 4 c 5 c 4 = (¬b) c 5 =(¬a) ------------------------------------------------------------------------------- Incremental Preprocess: -Re-Introduce: a Return c 1 and c 2 to formula Solve UNSAT
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.