Presentation is loading. Please wait.

Presentation is loading. Please wait.

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,

Similar presentations


Presentation on theme: "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,"— Presentation transcript:

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

26

27

28

29 Our Example

30 Our Example – Re-Introduction

31 c 1 c 2

32 Our Example – Re-Introduction

33

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


Download ppt "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,"

Similar presentations


Ads by Google