logic synthesis l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Logic Synthesis PowerPoint Presentation
Download Presentation
Logic Synthesis

Loading in 2 Seconds...

play fullscreen
1 / 12

Logic Synthesis - PowerPoint PPT Presentation


  • 180 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Logic Synthesis' - bernad


Download Now 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

Logic Synthesis

CNF Satisfiability

cnf formula s
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
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
example

4

1

7

9

2

5

0

8

6

3

Example

Single gate:

a

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

c

b

Circuit of connected gates:

(^1+2+4)(1+^4)(^2+^4)

(^2+^3+5)(2+^5)(3+^5)

(2+^3+6)(^2+^6)(3+^6)

(^4+^5+7)(4+^7)(5+^7)

(5+6+8)(^5+^8)(^6+^8)

(7+8+9)(^7+^9)(^8+^9)

(^9)

Justify to “0”

basic case splitting algorithm

(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)

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 Algorithm

a

b

b

c

c

c

d

d

d

d

d

Source: Karem A. Sakallah, Univ. of Michigan

implications in cnf

0

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)

example7

0

1

1

1

0

x

x

1

0

x

x

1

x

x

x

1

x

x

1

0

0

x

x

0

1

x

1

x

0

x

0

1

1

Example

a

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

c

b

Implications:

case splitting with implications

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)

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 Implications

a

b

b

c

c

Source: Karem A. Sakallah, Univ. of Michigan

implementation
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
conflict based learning

1

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 Learning

a

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 learning11
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
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