/
SAT  tutorial 1 Boolean Satisfiability in Electronic Design Automation SAT  tutorial 1 Boolean Satisfiability in Electronic Design Automation

SAT tutorial 1 Boolean Satisfiability in Electronic Design Automation - PowerPoint Presentation

giovanna-bartolotta
giovanna-bartolotta . @giovanna-bartolotta
Follow
354 views
Uploaded On 2018-10-21

SAT tutorial 1 Boolean Satisfiability in Electronic Design Automation - PPT Presentation

Karem A Sakallah EECS Department University of Michigan João Marques Silva Informatics Department Technical University of Lisbon ISTINESC CEL SAT tutorial 2 Context SAT is the quintessential NPcomplete problem ID: 691544

tutorial sat clause search sat tutorial search clause backtrack consensus clauses satisfiability algorithms assignment eda learning techniques recursive boolean

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "SAT tutorial 1 Boolean Satisfiability i..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

SAT tutorial

1

Boolean Satisfiability in Electronic Design Automation

Karem A. SakallahEECS DepartmentUniversity of Michigan

João Marques Silva

Informatics Department

Technical University of Lisbon

IST/INESC, CELSlide2

SAT tutorial

2

Context

SAT is the quintessential NP-complete problemTheoretically well-studiedPractical algorithms for large problem instances started emerging in the last five years

Has many applications in EDA and other fields

Can potentially have similar impact on EDA as BDDs

EDA professionals should have good working knowledge of SAT formulations and algorithmsSlide3

SAT tutorial

3

Outline

Boolean Satisfiability (SAT)Basic AlgorithmsRepresentative EDA ApplicationsTaxonomy of Modern SAT Algorithms

Advanced Backtrack Search Techniques

Experimental Evidence

ConclusionsSlide4

SAT tutorial

4

Boolean Satisfiability

Given a suitable representation for a Boolean function f(X

):

Find an assignment

X*

such that

f

(

X*

) = 1

Or prove that such an assignment does not exist

(i.e.

f

(

X

) = 0 for all possible assignments)

In the “classical” SAT problem,

f

(

X

) is represented in product-of-sums (POS) or conjunctive normal form (CNF)

Many decision (yes/no) problems can be formulated either directly or indirectly in terms of Boolean Satisfiability Slide5

SAT tutorial

5

Conjunctive Normal Form (CNF)

Clause

Positive Literal

Negative Literal

j =

(

a

+

c

) (

b

+

c

) (¬

a

+

¬

b

+ ¬

c

)Slide6

SAT tutorial

6

Basics

Implicationx

®

y

=

¬

x + y

=

¬(¬y) + (¬

x

)

= ¬y

®

¬

x

(contra positive)

Assignments: {

a

= 0,

b

= 1} = ¬a b

Partial (some variables still unassigned)Complete (all variables assigned)Conflicting (imply ¬j) j = (a

+ c

)(b + c)(¬a

+ ¬b + ¬c) j ®

(

a

+

c

)

¬(

a

+

c

)

®

¬

j

¬

a

¬

c

®

¬

jSlide7

SAT tutorial

7

General technique for deriving new clauses

Example:

1

=

a

+

b

+

c

),

2

=

(

a

+

b

+

d

)

Consensus:

con(

1, 2

, a) = (b + c + d)

Complete procedure for satisfiability [Davis, JACM’60]

Impractical for real-world problem instances

Application of restricted forms has been successful!

E.g., always apply

restricted consensus

con((¬

a

+ ), (a + ), a) = ()  is a disjunction of literals

ConsensusSlide8

SAT tutorial

8

Literal & Clause Classification

j =

(

a

+

¬

b

)(

¬

a

+

b

+

¬

c

)(

a

+ c + d )(

¬a

+ ¬b +

¬c )

a assigned

0

b assigned

1

c and d unassigned

violated

unresolved

satisfied

satisfiedSlide9

SAT tutorial

9

Outline

Boolean Satisfiability (SAT)Basic AlgorithmsRepresentative EDA ApplicationsTaxonomy of Modern SAT Algorithms

Advanced Backtrack Search Techniques

Experimental Evidence

ConclusionsSlide10

SAT tutorial

10

Basic Backtracking Search

(

a

+

b

+

c

)

(

a

+

b

+

¬

c

)

(

¬

a

+

b

+

¬

c

)

(

a

+

c

+

d

)

(

¬

a + c + d)

(

¬

a

+

c

+

¬

d

)

(

¬

b

+

¬

c

+

¬

d

)

(

¬

b

+

¬c

+ d)

1

2

3

4

5

6

7

8

a

(

a

+

b

+

c

)

(

a

+

b

+

¬

c

)

(

¬

a

+

b

+

¬

c

)

(

a

+

c

+

d

)

(

¬

a

+

c

+

d

)

(

¬

a

+

c

+

¬

d

)

(

¬

b

+

¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

b

c

d

d

b

c

d

d

c

d

(

¬

b

+

¬

c

+

¬

d

)

(

a

+

b

+

c

)

(

a

+

b

+

¬

c

)

(

¬

a

+

b

+

¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)

(

¬

b + ¬c + ¬d)

(a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬

b + ¬c + d)Slide11

SAT tutorial

11

An unresolved clause is

unit

if it has exactly one unassigned literal

j

= (

a

+

c

)(

b

+

c

)(

¬a

+

¬b

+

¬

c)

A unit clause has exactly one option for being satisfied

a b ® ¬c

i.e.

c

must be set to 0.

Unit Clause Rule - ImplicationsSlide12

SAT tutorial

12

Basic Search with Implications

1

2

3

4

5

6

7

8

(

a

+

b

+

c

)

(

a

+

b

+

¬

c

)

(

¬

a

+

b

+

¬

c

)

(

a

+

c

+

d

)

(

¬

a

+

c

+

d

)

(

¬

a

+

c

+

¬

d

)

(

¬

b

+

¬

c

+

¬

d

)

(

¬

b

+ ¬

c + d)

a

(

a

+

b

+

c

)

(

a

+

b

+

¬

c

)

(

¬

a

+

b

+

¬

c

)

(

a

+

c

+

d

)

(

¬

a

+

c

+

d

)

(

¬

a

+ c + ¬

d)

(¬b + ¬c + ¬

d)

(¬b + ¬c +

d)

b

(

a

+ b + c)

(a

+ b + ¬c)

a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬

b + ¬c + d)

c

(

a

+ b + c)

(a +

b + ¬c)

a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

a + c + ¬d)

(

¬b

+ ¬c + ¬d)

(

¬b + ¬c + d)

d

7

7

b

c

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a

+ c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d

)

(¬b + ¬c +

d)

8

8

8

(

a

+

b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+

b + c)

(a

+ b + ¬c)

(¬a

+ b + ¬c)

(

a + c + d)

a + c + d)

(¬a

+ c + ¬d)

(¬b

+ ¬c + ¬d)

(

¬b

+ ¬c + d)

(

a + b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬

b + ¬c + d)

d

5

5

a

c

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬

a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

6

6

6

(

a

+

b + c)

(a

+

b + ¬c)

(¬a

+ b + ¬c)

(a

+ c + d)

(¬a

+ c + d)

(¬a

+ c + ¬d)

b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+ b

+ c

)(a

+ b + ¬

c)(¬a

+ b +

¬c)(a

+ c + d

)(¬a

+ c +

d)(¬a

+ c +

¬d)(¬b

+ ¬c +

¬d)(¬b +

¬c + d

)(a

+ b + c

)

(a + b

+ ¬c)

(¬a +

b + ¬c

)(a + c

+ d)

(¬a +

c + d)

(¬a +

c + ¬d)

(¬b +

¬c + ¬

d)(¬b +

¬c + d)

c

3

3

a

b

(

a

+ b + c)

(a

+ b + ¬c

)(¬a

+ b + ¬

c)(a

+ c + d)

(¬a + c

+ d)

(¬a + c +

¬d)

(

¬b + ¬c

+ ¬d)

(¬b + ¬

c + d)

5

5

d

(

a

+ b + c)

(a + b

+ ¬c)

(¬a + b +

¬c)

(a + c + d

)

(

¬a + c + d)

(

¬a + c + ¬d

)

(¬b + ¬c + ¬

d)

(¬b + ¬

c + d)

6

6

6

(

a

+ b + c)

(

a

+ b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+

b +

c)(a

+ b + ¬

c)(¬a

+ b + ¬

c)(a + c

+ d)

(¬a + c

+ d)

(¬a + c +

¬d)

(¬b + ¬c +

¬d)

(¬b + ¬c + d

)

(a + b + c

)

(

a + b + ¬c)

(

¬a + b + ¬c

)

(a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d

)

(¬b + ¬c + ¬d)

(

¬b + ¬c + d)

b

(

a +

b +

c)(a

+ b +

¬c)(¬

a + b

+ ¬c)(a

+ c +

d)(¬

a + c

+ d)(¬

a + c

+ ¬d)(¬

b + ¬

c + ¬d)(¬

b + ¬

c + d)c

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c + d)

(

¬a + c + d)

(

¬a + c + ¬d)

(

¬b + ¬c + ¬d)

(

¬b + ¬c + d)

(

a

+

b + c)

(a + b

+ ¬c)(¬

a + b

+ ¬c)

(a +

c + d)(

¬a +

c + d)(¬

a + c

+ ¬d)(¬b

+ ¬c

+ ¬d)(¬

b + ¬

c +

d)(a

+ b + c)

(a

+ b + ¬c)

(¬a

+ b + ¬c)

(a

+ c + d)

(¬a

+ c + d)

(¬a

+ c + ¬d)

(¬b

+ ¬c

+ ¬d)(¬

b + ¬

c +

d)

d4

4

ac

(

a

+ b + c)

(

a + b + ¬c)

(

¬a + b + ¬c)

(

a + c +

d)(¬a

+ c + d

)

(¬a + c +

¬d)(

¬b + ¬

c + ¬d)

(¬b

+ ¬c + d)Slide13

SAT tutorial

13

Pure Literal Rule

A variable is pure if its literals are either all positive or all negative

Satisfiability of a formula is unaffected by assigning pure variables the values that satisfy all the clauses containing them

j

=

(

a

+

c

)(

b

+

c

)(

b

+ ¬

d

)(¬a

+ ¬b +

d

)

Set

c

to 1; if

j

becomes unsatisfiable, then it is also unsatisfiable when

c

is set to 0. Slide14

SAT tutorial

14

Circuit Satisfiability

a

b

c

d

e

g

f

h

?

j

=

h

[

d

=¬(

ab

)] [

e

=¬(

b

+

c

)] [

f

d

] [

g

=

d

+

e

] [

h

=

fg

]Slide15

SAT tutorial

15

Gate CNF

a

b

d

j

d

= [

d

= ¬(

a b

)]

= ¬[

d

Å

¬(

a b

)]

= ¬[¬(

a b

d

+

a b d

]

= ¬[¬

a

¬

d

+ ¬

b

¬

d

+

a b d

]

= (

a

+

d

)(

b

+

d

)(¬

a

+

¬

b

+ ¬

d

)

j

d

= [d

= ¬(a b )][¬d = a b]

= [

d = ¬

a + ¬b][¬d = a b

]

= (¬a ®

d)(¬b ® d)(a b ®

¬d

)

= (a +

d)(b + d)(¬a

+ ¬

b + ¬d)Slide16

SAT tutorial

16

Circuit Satisfiability

a

b

c

d

e

g

f

h

?

j

=

h

[

d

=¬(

ab

)] [

e

=¬(

b

+

c

)] [

f

d

] [

g

=

d

+

e

] [

h

=

fg

]

=

h

(

a

+

d

)(

b

+

d

)(¬

a

+

¬

b

+ ¬

d

)

b

+

¬

e

)(¬

c

+

¬

e

)(

b

+

c

+

e

)

d

+

¬

f

)(

d

+

f

)

d

+

g

)(¬

e

+

g

)(

d

+

e

+ ¬

g

)

(

f

+

¬

h

)(

g

+

¬

h

)(¬

f

+

¬

g

+

h

)

=

h

(

a

+

d

)(

b

+ d)(¬

a + ¬b + ¬d)(

¬b +

¬e)(

¬c + ¬e)(b + c +

e)

(¬d + ¬f)(d +

f)

(¬d + g)(¬e + g)(d

+ e +

¬g)(f +

¬h)(g +

¬h)(¬f + ¬g + h)

=

h(a +

d)(b +

d)(¬a + ¬b + ¬d)

(¬b

+ ¬e)(¬c + ¬e)(b

+ c + e)

(

¬d + ¬f)(d +

f)

(¬d + g)(¬e +

g)(d +

e + ¬g)(f + ¬

h)(g +

¬h)(¬f + ¬g + h)

a

b

c

d

e

g

f

h

?

=

h

(

a

+

d

)(

b

+

d

)(

¬

a

+

¬

b

+

¬

d

)

(

¬

b

+

¬

e

)(

¬

c + ¬

e)(b + c + e)(

¬d +

¬f)(d + f)(¬d

+ g)(¬

e + g)(d + e + ¬g

)

(f + ¬h)(g + ¬h)(

¬f +

¬g + h)

a

b

c

d

e

g

f

h

?

=

h

(

a

+

d

)(

b

+

d

)(

¬

a

+

¬

b

+

¬

d

)

(

¬

b

+

¬

e

)(

¬c + ¬e)(b + c + e

)

(¬d + ¬f)(d + f

)

(¬d + g)(¬e + g)(

d + e +

¬g)(f + ¬h)(

g + ¬h

)(¬f + ¬g + h)

a

b

c

d

e

g

f

h

?

a

b

c

d

e

g

f

h

Slide17

SAT tutorial

17

Outline

Boolean Satisfiability (SAT)Basic AlgorithmsRepresentative EDA ApplicationsTaxonomy of Modern SAT Algorithms

Advanced Backtrack Search Techniques

Experimental Evidence

ConclusionsSlide18

SAT tutorial

18

x

4

x

1

x

2

x

3

x

5

x

6

x

7

x

8

x

9

ATPG

x

4

x

1

x

2

x

3

x

5

x

6

x

7

x

8

x

9

= 0

C

G

= 1

C

F

x

4

x

1

x

3

x

5

x

6

x

7

x

8

x

9

x

1

x

2

x

3

x

4

x

5

x

6

x

7

x

8

x

9

s-a-1

z

= 1

?Slide19

SAT tutorial

19

Equivalence Checking

If

z

= 1

is unsatisfiable, the

two circuits are equivalent

!

C

B

C

A

z

= 1

?Slide20

SAT tutorial

20

Outline

Boolean Satisfiability (SAT)Basic AlgorithmsRepresentative EDA Applications

Taxonomy of Modern SAT Algorithms

Advanced Backtrack Search Techniques

Experimental Evidence

ConclusionsSlide21

SAT tutorial

21

A Taxonomy of SAT Algorithms

Backtrack search (DP)

Resolution (original DP)

Stallmarck’s method (SM)

Recursive learning (RL)

BDDs

...

Local search (hill climbing)

Continuous formulations

Genetic algorithms

Simulated annealing

...

Tabu search

SAT Algorithms

Complete

Incomplete

Can

prove unsatisfiability

Cannot

prove unsatisfiabilitySlide22

SAT tutorial

22

Resolution (original DP)

Iteratively apply resolution (consensus) to eliminate one variable each time

i.e., consensus between all pairs of clauses containing

x

and ¬

x

formula satisfiability is

preserved

Stop applying resolution when,

Either empty clause is derived

instance is

unsatisfiable

Or only clauses satisfied or with pure literals are obtained

instance is

satisfiable

j

= (

a

+

c

)(

b

+ c

)(d + c)(¬a + ¬

b + ¬c)Eliminate variable

c

1

= (

a

+ ¬

a

+ ¬b)(b + ¬a + ¬b )(d + ¬a + ¬b ) = (d + ¬a + ¬b )Instance is SAT !Slide23

SAT tutorial

23

Stallmarck’s Method (SM) in CNF

Recursive application of the branch-merge rule

to each variable with the goal of identifying

common conclusions

Try

a

= 0:

(

a

= 0)

(

b

= 1)

(

d

= 1)

Try

a

= 1:

(

a

= 1)

(

c = 1)  (d = 1)

C(

a

= 0)

=

{

a

= 0,

b = 1, d = 1}C(a = 1) = {a = 1, c = 1, d = 1}C(a = 0)  C(a = 1) = {d = 1}Any assignment to variable a implies d = 1.

Hence,

d

= 1 is a

necessary

assignment

!

Recursion can be of arbitrary depth

j

= (

a

+

b

)(

¬

a

+

c

) (¬

b

+ d)(¬c +

d)

j = (a + b)(¬

a + c) (¬

b +

d)(¬c + d)

j = (a

+ b)(¬

a + c) (¬b + d)(¬c

+ d)

j = (

a +

b)(¬a + c

) (¬b + d)(¬c

+

d)Slide24

SAT tutorial

24

Recursion can be of arbitrary depth

Recursive Learning (RL) in CNF

Recursive evaluation of

clause satisfiability

requirements for identifying

common assignments

Try

a

= 1:

=

(

a

+

b

)

a

+

d

) (¬

b

+

d

)

(

a

= 1)

(

d

= 1)

Try

b

= 1:(b = 1)  (d = 1)C(a = 1) = {a = 1, d = 1}C(b

= 1)

=

{

b

= 1,

d

= 1}

C(

a

= 1)

C(

b

= 1)

=

{

d

= 1}

Every way of satisfying (

a + b) implies d

= 1. Hence, d = 1 is a necessary assignment !

= (a + b)(

¬a + d) (¬b + d)

= (a +

b)(¬a + d) (¬b +

d)

 = (a

+ b)(¬a + d) (

¬b + d)Slide25

SAT tutorial

25

SM vs. RL

Both complete procedures for SATStallmarck’s method:

hypothetic reasoning based on

variables

Recursive learning:

hypothetic reasoning based on

clauses

Both can be integrated into backtrack search algorithmsSlide26

SAT tutorial

26

Local Search

Repeat M times:Randomly pick complete assignment

Repeat

K

times (and while exist unsatisfied clauses):

Flip variable that will satisfy largest number of unsat clauses

j

= (

a

+

b

)(¬

a

+

c

) (¬

b

+

d

)(¬

c

+

d

)

Pick random assignment

j

= (a + b)(¬a

+

c

) (

¬

b

+ d)(¬c + d)Flip assignment on dj = (a + b)(¬a + c) (¬b + d)(¬

c

+

d

)

Instance is satisfied

!Slide27

SAT tutorial

27

Comparison

Local search is incomplete

If instances are known to be SAT, local search can be competitive

Resolution is in general

impractical

Stallmarck’s Method (SM) and Recursive Learning (RL) are in general

slow

, though

robust

SM and RL can derive too much

unnecessary

information

For most EDA applications

backtrack search

(DP)

is currently the most promising approach

!

Augmented with techniques for inferring new

clauses/implicates

(i.e.

learning

) !Slide28

SAT tutorial

28

Outline

Boolean Satisfiability (SAT)Basic AlgorithmsRepresentative EDA ApplicationsTaxonomy of Modern SAT Algorithms

Advanced Backtrack Search Techniques

Experimental Evidence

ConclusionsSlide29

SAT tutorial

29

Techniques for Backtrack Search

Conflict analysis

Clause/implicate recording

Non-chronological backtracking

Incorporate and

extend

ideas from:

Resolution

Recursive learning

Stallmarck’s method

Formula simplification & Clause inference [Li,AAAI00]

Randomization & Restarts [Gomes&Selman,AAAI98]Slide30

SAT tutorial

30

 =

(a + b

)(¬

b

+

c + d

) (¬

b

+

e

)(¬

d

+ ¬

e +

f

)

 =

(

a

+

b

)(¬b + c + d) (¬b +

e)(¬d + ¬

e + f)

 = (a

+

b

)(¬

b

+

c

+ d

) (¬b + e)(¬d + ¬e + f) = (a + b)(¬b + c + d) (¬b + e)(¬d + ¬e + f)

 =

(

a

+

b

)(

¬

b

+

c

+

d

) (

¬

b

+ e

)(¬

d + ¬e + f

)

Clause RecordingDuring backtrack search, for each conflict

create clause that explains and prevents recurrence of same conflict

Assume (decisions) c = 0 and f = 0

Assign

a = 0 and imply assignments

A conflict is reached: (¬

d + ¬e + f

) is unsat

(a = 0)

 (c = 0)  (

f = 0)  ( = 0)

( = 1) 

(a = 1)

 (c = 1)  (f = 1)

create new clause:

(

a

+

c

+

f

)Slide31

SAT tutorial

31

Clause Recording

Clauses derived from conflicts can also be viewed as the result of applying selective consensus

 =

(

a

+

b

)(¬

b

+

c

+ d

) (¬

b

+

e

)(¬

d

+ ¬

e +

f

)

(

a + c +

d)consensus

(

a

+

c

+ ¬

e +

f)

(

a

+

c

+

f

)

(

a

+

e

)Slide32

SAT tutorial

32

Non-Chronological Backtracking

During backtrack search, in the presence of conflicts,

backtrack to one of the

causes

of the conflict

 =

(

a

+

b

)(¬

b

+

c + d

) (¬

b

+

e

)(¬

d

+ ¬

e +

f) (a

+ c

+ f)(¬a

+ g)(¬g + b)(¬h + j)(¬i

+

k

)

Assume (decisions)

c

= 0,

f = 0, h = 0 and i = 0 Assignment a = 0 caused conflict  clause (a + c + f) created (a + c + f) implies a = 1

 =

(

a

+

b

)(¬

b

+

c

+ d

) (¬

b

+

e

)(¬

d

+ ¬e + f) (a + c

+ f)(

¬a + g)(¬g +

b)(¬h +

j)(¬i +

k)

 = (a + b)(¬

b + c + d) (¬b +

e)(¬d + ¬

e + f) (a +

c + f)(¬a

+ g)(

¬g + b)(¬

h + j)(¬i

+ k)

 = (

a + b)(¬b

+ c

+ d) (¬b

+

e

)

d

+ ¬

e +

f

)

(

a

+

c

+

f

)(

¬

a

+

g

)(

¬

g

+

b

)(

¬

h

+

j

)(

¬

i

+

k

)

A conflict is again reached: (¬d + ¬e + f) is unsat

(

a = 1)  (c = 0)  (f = 0)  ( = 0)

( = 1)  (a = 0)  (

c = 1)  (f = 1)

create new clause: (¬a + c + f)Slide33

SAT tutorial

33

Non-Chronological Backtracking

C

reated clauses: (

a

+

c

+

f

) and (¬

a

+

c

+

f

)

backtrack to most recent decision:

f

= 0

(

c

+

f

)

created clauses/implicates:

(

a

+

c

+

f

)

, (¬a + c + f),

and

(

c

+

f

)

Apply consensus:

new

unsat

clause

(

c

+

f

)

0

0

c

f

i

h

0

0

a

0

1Slide34

SAT tutorial

34

Ideas from other Approaches

Resolution, Stallmarck’s method and recursive learning can be incorporated into backtrack search (DP)

create additional clauses/implicates

anticipate and prevent conflicting conditions

identify necessary assignments

allow for non-chronological backtracking

(

b

+

c

+

d

)

consensus

(

b

+

c

+

d

) Unit clause

!

a

+

b

+

d

)

(

a

+

b

+

c)Resolution within DP:

Clause provides

explanation

for necessary assignment

b

= 1Slide35

SAT tutorial

35

 =

(

a

+

b +

e

)(¬

a

+

c +

f

)(¬

b

+

d

) (¬

c

+

d +

g

)

Implications:

(

a

= 0)

(

e

= 0)

(

b

= 1)

(d = 1) = (a + b + e)(¬a + c + f)(¬b + d) (¬c + d + g)

(

a

= 1)

(

f

= 0)

(

c

= 1)

(

c

= 1)

(

g

= 0)  (d

= 1)

 = (

a + b + e)(

¬a + c +

f)(¬b + d) (

¬c + d + g)

 =

(

a + b + e)(¬a +

c + f)(¬b + d) (¬c

+ d + g

)

(e = 0)  (

f = 0)

 (

g = 0)  (d

= 1)Stallmarck’s Method within DP

Clausal form:

(

e

+

f

+

g

+

d

)

Unit clause

!

Clause provides

explanation

for necessary assignment

d

= 1

(

d

+

e

+

c

+

f

)

(

b

+

e

+

c

+

f

)

consensus

(

e

+

f

+

g

+

d

)Slide36

SAT tutorial

36

Implications:

 =

(

a

+

b +

c

)(¬

a

+

d +

e

) (¬

b

+

d +

c

)

(

a

= 1)

(

e

= 0)

(d = 1)

 =

(

a

+

b +

c

)(¬a + d + e) (¬b + d + c)(b = 1)  (c = 0)  (d = 1)

 =

(

a

+

b

+

c

)(¬

a

+

d +

e

) (

¬

b

+

d + c)

Recursive Learning within DP

Clause provides explanation

for necessary assignment d = 1

(

c

+

e + d)

consensus

(

b

+ c +

e + d)

consensus

 =

(

a

+

b +

c)(¬a + d + e

) (¬

b

+

d +

c

)

(

c

= 0)

((

e

= 0)

(

c

= 0))

(

d

= 1)

Clausal form:

(

c

+

e

+

d

)

Unit clause

!Slide37

SAT tutorial

37

Formula Simplification

Eliminate clauses and

variables

If

(

x

+

y

)

and

(

x

+

y

)

exist, then

x

and

y

are

equivalent,

(

x

 y)

eliminate y, and replace by x remove satisfied clauses

Utilize

2CNF

sub-formula for identifying equivalent variables

a

+

b

)(¬b + c)(¬c + d)(¬d + b)(¬d + a)a, b, c and d are pairwise equivalentImplication graph:

a

d

b

cSlide38

SAT tutorial

38

Clause Inference Conditions

Given

(

l

1

+ ¬

l

2

)(

l

1

+ ¬

l

3

)(

l

2

+

l

3

+

¬

l

4

)

Infer

(l1 + ¬l4)

Type of Inference

: 2 Binary / 1 Ternary

(2B/1T)

Clauses

Other types

: 1B/1T, 1B/2T, 3B/1T, 2B/1T, 0B/4T

(

l1 + l3 + ¬ l

4

)

consensus

(

l

1

+ ¬

l

4

)

consensus

If we can also infer

l

1

+

l

4

)

,

then we prove

(

l

1

l

4

), and

can replace l4 by l1 !Slide39

SAT tutorial

39

The Power of Consensus

Most search pruning techniques can be explained as particular ways of applying selective consensusConflict-based clause recording

Non-chronological backtracking

Extending Stallmarck’s method to backtrack search

Extending recursive learning to backtrack search

Clause inference conditions

General consensus is computationally too expensive

!

Most techniques indirectly identify which consensus operations to apply

!

To create new clauses/implicates

To identify necessary assignmentsSlide40

SAT tutorial

40

Randomization & Restarts

Run times of backtrack search SAT solvers characterized by heavy-tail distributions

For a fixed problem instance, run times can exhibit

large variations

with different branching heuristics and/or branching randomization

Search strategy:

Rapid Randomized Restarts

Randomize variable selection heuristic

Utilize a small backtrack cutoff value

Repeatedly restart the search each time backtrack cutoff reached

Use randomization to explore different paths in search treeSlide41

SAT tutorial

41

Randomization & Restarts

Can make the search strategy complete

Increase cutoff value after each restart

Can utilize

learning

Useful for proving unsatisfiability

Can utilize

portfolios

of algorithms and/or algorithm configurations

Also useful for proving unsatisfiabilitySlide42

SAT tutorial

42

Outline

Boolean Satisfiability (SAT)Basic AlgorithmsRepresentative EDA ApplicationsTaxonomy of Modern SAT Algorithms

Advanced Backtrack Search Techniques

Experimental Evidence

ConclusionsSlide43

SAT tutorial

43

Conclusions

Many recent SAT algorithms and (EDA) applicationsHard Applications

Bounded Model Checking

Combinational Equivalence Checking

Superscalar processor verification

FPGA routing

“Easy”

Applications

Test Pattern Generation: Stuck-at, Delay faults, etc.

Redundancy Removal

Circuit Delay Computation

Other Applications

Noise analysis, etc.Slide44

SAT tutorial

44

Conclusions

Complete vs. Incomplete algorithmsBacktrack search (DP)

Resolution (original DP)

Stallmarck’s method

Recursive learning

Local search

Techniques for backtrack search (infer

implicates

)

conflict-induced clause recording

non-chronological backtracking

resolution, SM and RL within backtrack search

formula simplification & clause inference conditions

randomization & restartsSlide45

SAT tutorial

45

More Information on SAT in EDA

http://algos.inesc.pt/grasp

http://algos.inesc.pt/sat

http://algos.inesc.pt/~jpms (

jpms@inesc.pt

)

http://andante.eecs.umich.edu/grasp_public

http://nexus6.cs.ucla.edu/GSRC/bookshelf/Slots/SAT/GRASP

http://eecs.umich.edu/~karem (

karem@umich.edu

)