knowledge compilation
play

Knowledge Compilation Guy Van den Broeck and Adnan Darwiche Jan 28, - PowerPoint PPT Presentation

On the Role of Canonicity in Knowledge Compilation Guy Van den Broeck and Adnan Darwiche Jan 28, 2015, AAAI Knowledge Compilation Reasoning with logical knowledge bases A Tractable languages and compilers B Boolean circuits: C


  1. On the Role of Canonicity in Knowledge Compilation Guy Van den Broeck and Adnan Darwiche Jan 28, 2015, AAAI

  2. Knowledge Compilation • Reasoning with logical knowledge bases A • Tractable languages and compilers B • Boolean circuits: C OBDDs, d-DNNFs, SDDs, etc. • Applications: D – Diagnosis 0 1 – Planning – Inference in probabilistic databases, graphical models, probabilistic programs – Learning tractable probabilistic models

  3. Bottom-Up Compilation with Apply • Build Boolean combinations of existing circuits • Compile CNF: (1) circuit for literals (2) disjoin to get circuit for clauses (3) conjoin for CNF. • Compile arbitrary sentence incrementally ( A  ( B  D )) ( C ∨ D ) ( A  ( B  D ))  ( C ∨ D )  = • Avoiding CNF crucial for many applications

  4. Two Properties Under Investigation Polytime Apply Canonicity Complexity is polynomial Equivalent sentences have in size of input circuits. identical circuits. Informally: one Apply cannot blow up size. ≡ A  (C ∨ D) (A  C) ∨ (A  D)  x = O( ) =

  5. What We Knew Before • A practical language for bottom-up compilation requires a polytime Apply . – Explains success of OBDDs – Why do Apply when it blows up? – Guided search for new languages (structured DNNF) • Canonicity is convenient for building compilers – Detect/cache equivalent subcircuits

  6. What We Knew Before • A practical language for bottom-up compilation requires a polytime Apply . – Explains success of OBDDs – Why do Apply when it blows up? – Guided search for new languages (structured DNNF) • Canonicity is convenient for building compilers – Detect/cache equivalent subcircuits

  7. Sentential Decision Diagrams Properties: OBDD  SDD • C  • Treewidth upper bound • Quasipolynomial separation with OBDD • Supports OBDD queries A ¬ A ¬ A A ¬ B B ¬ D ¬ B  B D 

  8. Sentential Decision Diagrams f ( A , B , C , D ) = ( A  ( B  D ))  C C  A ¬ A ¬ A A ¬ B B ¬ D ¬ B  B D 

  9. Sentential Decision Diagrams  f ( A , B , C , D ) = ( A  ( B  D ))  C  C     A  ¬ A ¬ A A      ¬ B  B ¬ D ¬ B  B D    

  10. Basing Decisions on Sentences f ( A , B , C , D ) = ( A  B )  ( C  D ) A = t, B = f , C = t , D = t  A B ¬ A A ¬ B ¬ A C D ¬ C   

  11. Basing Decisions on Sentences f ( A , B , C , D ) = ( A  B )  ( C  D ) A = t, B = f , C = t , D = t  A B ¬ A A ¬ B A ¬ B ¬ A C D C D ¬ C   

  12. Basing Decisions on Sentences f ( A , B , C , D ) = ( A  B )  ( C  D ) A  B A = t, B = f ,  A   B C = t , D = t  A B ¬ A A ¬ B A ¬ B ¬ A C D C D ¬ C   

  13. Basing Decisions on Sentences f ( A , B , C , D ) = ( A  B )  ( C  D ) A  B A = t, B = f ,  A   B C = t , D = t  primes,subs primes,subs A B ¬ A A ¬ B A ¬ B ¬ A C D C D ¬ C   

  14. Basing Decisions on Sentences f ( A , B , C , D ) = ( A  B )  ( C  D ) A  B  A   B  primes,subs primes,subs In an ( X , Y ) - partition: f ( X , Y ) = p 1 ( X ) s 1 ( Y )  …  p n ( X ) s n ( Y ) primes are mutually exclusive , exhaustive and not false

  15. Compression and Canonicity • An ( X , Y ) - partition: f ( X , Y ) = p 1 ( X ) s 1 ( Y )  …  p n ( X ) s n ( Y ) is compressed when the subs are distinct: s i ( Y ) ≠ s i ( Y ) if i≠j • f ( X , Y ) has a unique compressed ( X,Y) -partition • For fixed X , Y throughout the SDD (i.e. a vtree), compressed SDDs* are canonical ! * requires some additional maintenance (pruning/normalization)

  16. Compression

  17. Compression

  18. Compression

  19. Compression

  20. Compression 

  21. Is Apply for SDDs Polytime?

  22. Is Apply for SDDs Polytime? • | α |x| β | recursive calls • Polytime!

  23. Is Apply for SDDs Polytime? • | α |x| β | recursive calls • Polytime! • But what about compression/canonicity?

  24. Is Apply for SDDs Polytime? • Polytime Apply? • Open question answered in this paper

  25. Theoretical Results Theorem: There exists a class of Boolean functions f m (X 1 ,…, X m ) such that f m has an SDD of size O(m 2 ), yet the canonical SDD of f m has size Ω(2 m ).

  26. Two options 1. Enable compression – No polytime Apply – Canonicity 2. Disable compression – Polytime Apply – No Canonicity What should we do? Popular belief: Choose polytime Apply, or circuits blow up!

  27. Empirical Results

  28. Empirical Results

  29. What We Know Now • Canonical SDDs have no polytime Apply ! • Yet they work! Outperform OBDDs and non-canonical SDDs • We argue: Canonicity is more important Facilitates caching and minimization (vtree search) • Questions common wisdom

  30. Thanks

Recommend


More recommend