Knuth V4: BDD + BW Equality: Satisfiability: Tautolog : () () ( ) () ( ) ) y ( : n n n x x f g x f x gx SAT f f x TAUT f f x ∈ ∈ = ⇔∀ ∈ = = = Used in: • Hardware/Software Verification/Certification/Synthesis/Optimization • Mathematical Enumeration/Optimization/Analysis • Fault Analysis/Detection/Tolerance • Protection against side-channel attacks Techniques: • Critical assertions: “All doors are closed when train moves”! • Computing NP complete functions: may & will blow up! • Strong Normal Forms: MDA, BDD, BMD, IDD … • Partial Normal Form: SAT 1 Boolean Normal Forms Jean Vuillemin École Normale Supérieure, Paris
36
Embed
Jean Vuillemin - WebHomepouzet/cours/mpri/cours-jv-2/IntegerDecisionDiagram.pdf · Jean Vuillemin . École Normale Supérieure, Paris. Efficient Algorithms on Sparse Structures ...
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Knuth V4: BDD + BW
Equality: Satisfiability:
Tautolog
: ( ) ( )( ) ( )
( ) )y (:
n
n
n
x
x
f g x f x g xSAT f f x
TAUT f f x∈
∈
= ⇔ ∀ ∈ =
=
=
Used in: • Hardware/Software Verification/Certification/Synthesis/Optimization • Mathematical Enumeration/Optimization/Analysis • Fault Analysis/Detection/Tolerance • Protection against side-channel attacks
Techniques: • Critical assertions: “All doors are closed when train moves”! • Computing NP complete functions: may & will blow up! • Strong Normal Forms: MDA, BDD, BMD, IDD … • Partial Normal Form: SAT
Twice This version of doubling may require up to l(n) operations.
2 0 02 1 22 ( , , ) (2 , , 2 )T Cg p d g p d
× =× =× = × ×
For sparse Trees, time can be exponential in size!
Implement 2x as a memo function: computed values are always stored. They get retrieved whenever possible; otherwise, the computation is performed exactly once.
Time & space for twice 2x with memo is linear in s(2n). Hence s(2n)<2s(n).
Over 106 numbers in the expression-neighborhood of F1024 are very sparse: s(n)<p(n).
Dictionary 1. Code set s={n1 … nk } by number Ns=Σ 2 nk . 2. Map dictionary operations to Boolean algebra over integers.
Supports Search/Insert/Delete/Min/Max/Complement in p(Ns)<l(k)+p(nk) operations.
Supports Merge/Intersect/XOR/Shift & more. • Linear time/space with respect to un-shared size for dense numbers. • Quadratic time/space with respect to shared size for sparse numbers.
Can be used to efficiently implement the hash-table required to maintain unique numbers nh.
DAG size << binary length. DAG time at worst quadratic in size.
Research: Achieve small c. Hash-table bootstrap. Tie in efficient storage de/allocation. Polynomials, Matrices & Quad Trees. Entropy Compression. Quantify sparseness.
Dense Numbers (high entropy) DAG size < binary length. DAG time < c x bit-array.