- 183 Views
- Uploaded on

Download Presentation
## Logic Synthesis

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

### Logic Synthesis

CNF Satisfiability

CNF Formula’s

- Product of Sum (POS) representation of Boolean function
- Describes solution using a set of constraints
- very handy in many applications because new constraints can just be added to the list of existing constraints
- very common in AI community
- Example:
- j =

( a+^b+ c)

(^a+ b+ c)

( a+^b+^c)

( a+ b+ c)

- SAT on CNF (POS) Û Tautology on DNF (SOP)

Circuit versus CNF

- Naive conversion of circuit to CNF:
- multiply out expressions of circuit until two level structure
- Example: y = x1Å x2Å x2Å ... Å xn(Parity function)
- circuit size is linear in the number of variables

Å

- generated chess-board Karnaugh map
- CNF (or DNF) formula has 2n-1 terms (exponential in the # vars)
- Better approach:
- introduce one variable per circuit vertex
- formulate the circuit as a conjunction of constraints imposed on the vertex values by the gates
- uses more variables but size of formula is linear in the size of the circuit

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

1

(a + b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a + b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + c)

(a+ b + c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

2

(a + b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a + b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + c)

(a + b + ¬c)

(a+ b + c)

(a+ b + ¬c)

(a+ b + c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

3

(¬a + b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a + b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(a+ b + ¬c)

(¬a + b + ¬c)

(a+ b + ¬c)

(¬a+ b + ¬c)

(a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(¬a+ b + ¬c)

(¬a + b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

4

(a + c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a + c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(a + c + d)

(a+ c + d)

(¬a+ b + ¬c)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(a+ c + d)

(a+ c + d)

(a + c + d)

(a + c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

5

(¬a + c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a + c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a + c + d)

(a+ c + d)

(a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a + c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(a+ c + d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a + c + d)

(¬a + c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

6

(¬a + c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a + c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + d)

(¬a+ c + d)

(¬a + c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a + c + ¬d)

(¬a+ c + ¬d)

(¬a + c + ¬d)

(¬a+ c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬a + c + ¬d)

(¬a + c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

7

(¬b + ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b + ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b + ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b + ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬a+ c + ¬d)

(¬b + ¬c + ¬d)

(¬a+ c + ¬d)

(¬b+ ¬c + ¬d)

(¬a+ c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b + ¬c + ¬d)

(¬b + ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b + ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

8

(¬b + ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b + ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b + ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b + ¬c + d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b + ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + d)

(¬b + ¬c + d)

(¬b + ¬c + d)

(¬b + ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b + ¬c + d)

(¬b + ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b + ¬c + d)

(¬b+ ¬c + d)

(¬b + ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

Basic Case Splitting Algorithma

b

b

c

c

c

d

d

d

d

d

Source: Karem A. Sakallah, Univ. of Michigan

1

x

1

x

x

1

0

0

1

x

x

0

x

0

0

0

0

x

x

0

0

1

0

1

1

x

a

c

b

Implications in CNF- Implications in a CNF formula are caused by unit clauses
- unit clause is a CNF term for which all variables except one are assigned
- the value of that clause can be implied immediately

Example: (a+^b+c) (a=0)(b=1)Þ(c=1)

- No implications in circuit:
- All clauses satisfied:
- Not all satisfies (How do we avoid exploring that part of the circuit?)

(^a+^b+c)(a+^c)(b+^c)

(a + b + c)

(a + b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

2

(a + b + ¬c)

(a + b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

3

(¬a + b + ¬c)

(¬a + b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

4

(a + c + d)

(a + c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

5

(¬a + c + d)

(¬a + c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

6

(¬a + c + ¬d)

(¬a + c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

7

(¬b + ¬c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

6

(¬b + ¬c + ¬d)

(¬b + ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

8

6

5

8

4

5

7

3

(¬b + ¬c + d)

(¬b + ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b + ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

a

b

a

a

(¬b + ¬c + d)

(¬b + ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

8

6

6

5

d

d

d

c

d

7

3

5

4

b

c

c

c

8

6

6

Case Splitting with Implicationsa

b

b

c

c

Source: Karem A. Sakallah, Univ. of Michigan

Implementation

- Clauses are stores in array
- Track sensitivity of clauses for changes:
- all literals but one assigned -> implication
- all literals but two assigned -> clause is sensitive to a change of either literal
- all other clauses are insensitive and do not need to be observed
- Learning:
- learned implications are added to the CNF formula as additional clauses
- limit the size of the clause
- limit the “lifetime” of a clause, will be removed after some time
- Non-chronological back-tracking
- similar to circuit case

9

9

9

9

9

9

9

9

9

9

9

9

9

9

(a + b + c)

(a + b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(¬b+ ¬c)

(¬b+ ¬c)

(¬b+ ¬c)

(¬b+ ¬c)

(¬b+ ¬c)

(¬b+ ¬c)

(¬b+ ¬c)

(¬b + ¬c)

(¬b+ ¬c)

(¬b+ ¬c)

(¬b+ ¬c)

(¬b + ¬c)

(¬b+ ¬c)

(¬b+ ¬c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

(a+ b + c)

2

10

10

10

10

10

10

10

10

10

10

(a + b + ¬c)

(a + b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(¬a+ ¬b)

(¬a+ ¬b)

(¬a+ ¬b)

(¬a+ ¬b)

(¬a+ ¬b)

(¬a+ ¬b)

(¬a + ¬b)

(¬a+ ¬b)

(¬a+ ¬b)

(¬a+ ¬b)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

(a+ b + ¬c)

3

11

11

11

11

11

11

(¬a + b + ¬c)

(¬a + b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a)

(¬a)

(¬a)

(¬a)

(¬a)

(¬a)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

(¬a+ b + ¬c)

4

(a + c + d)

(a + c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

(a+ c + d)

6

(a+ c + d)

(a+ c + d)

6

4

11

5

5

5

a

(¬a + c + d)

(¬a + c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

a

a

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

(¬a+ c + d)

3

6

9

6

(¬a + c + ¬d)

(¬a + c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

(¬a+ c + ¬d)

c

b

5

(¬a+ c + ¬d)

(¬a+ c + ¬d)

d

(¬a+ c + ¬d)

(¬a+ c + ¬d)

6

9

4

3

5

10

b

c

d

d

c

b

6

7

(¬b + ¬c + ¬d)

(¬b + ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b + ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + ¬d)

(¬b+ ¬c + ¬d)

(¬b+ ¬c + ¬d)

6

8

8

7

(¬b + ¬c + d)

(¬b + ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

(¬b + ¬c + d)

b

(¬b + ¬c + d)

(¬b + ¬c + d)

(¬b+ ¬c + d)

(¬b+ ¬c + d)

9

10

8

(¬b + ¬c)

(¬a+ ¬b)

d

7

c

8

Conflict-based Learninga

a® ¬j

ß

j ® (¬a)

ab® ¬j

ß

j ® (¬a + ¬b)

bc® ¬j

ß

j ® (¬b + ¬c)

b

b

c

Source: Karem A. Sakallah, Univ. of Michigan

Conflict-based Learning

- Important detail for cut selection:
- During implication processing, record decision level for each implication
- At conflict, select earliest cut such that exactly one node of the implication graph lies on current decision level
- Either decision variable itself
- Or UIP (“unique implication point”) that represents a dominator node in conflict graph
- By selecting such cut, implication processing will automatically flip decision variable (or UIP variable) to its complementary value

Further Improvements

- Random restarts:
- stop after a given number of backtracks
- start search again with modified ordering heuristic
- keep learned structures !!!
- very effective for satisfiable formulas but often also effective for unsat formulas
- Learning of equivalence relations:
- (a Þ b) Ù (b Þ a) Þ (a = b)
- very powerful for formal equivalence checking

Download Presentation

Connecting to Server..