220 likes | 343 Vues
This document explores decision procedures from an algorithmic perspective, focusing on Binary Decision Diagrams (BDDs). It covers essential topics including logic fundamentals, proof techniques, and the intricacies of propositional logic. The advantages and challenges of BDDs compared to standard SAT procedures are discussed, along with variable ordering methods and reduction rules. In-depth examples illustrate BDD construction and application. Understanding BDDs is crucial for efficient decision-making processes in computational problems.
E N D
Decision ProceduresAn Algorithmic Point of View BDDs Modified by Aditya Kanade E0 223 – Indian Institute of Science Daniel Kroening and Ofer Strichman
Part I • Reminders - • What is Logic • Proofs by deduction • Proofs by enumeration • Soundness and Completeness • Deciding Propositional Logic • SAT tools • BDDs Decision Procedures An algorithmic point of view
Next: Binary Decision Diagrams • SAT looked for a satisfying solution to CNF • We will now examine a graph-based data structure called Binary Decision Diagrams. • It has several advantages and disadvantages compared to SAT • Developed by Bryant [1986]. Next few slides are from the source … Decision Procedures An algorithmic point of view
A B C 0 1 A B C 0 1 Alternate Approach • Generate complete representation of function • Canonicity: functions are equal iff representations are identical (A C) (C B) (A B) (C) Decision Procedures An algorithmic point of view
Decision Structures • Vertex represents decision • Follow green (dashed) line for value 0 • Follow red (solid) line for value 1 • Function value determined by leaf value. Truth Table Decision Tree Decision Procedures An algorithmic point of view
Variable Ordering • Assign arbitrary total ordering to variables • e.g., x1 < x2 < x3 • Variables must appear in ascending order along all paths OK Not OK x x 3 1 x 2 x x3 1 Decision Procedures An algorithmic point of view
a a a Reduction Rule #1 Merge equivalent leaves Decision Procedures An algorithmic point of view
x x x x x x y z y z y z Reduction Rule #2 Merge isomorphic nodes Decision Procedures An algorithmic point of view
x y y Reduction Rule #3 Eliminate Redundant Tests Decision Procedures An algorithmic point of view
Example OBDD • Canonical representation of Boolean functions • For a given variable ordering • Two functions are equivalent iff graphs are isomorphic • Can be tested in linear time Initial Graph Reduced Graph (x1 x2) x3 Decision Procedures An algorithmic point of view
Constants Unique unsatisfiable function Unique tautology Satisfiability etc. • Conclusion: given a BDD it takes constant time to check: • Validity • Contradiction • Satisfiability • Is this a free lunch ? … Decision Procedures An algorithmic point of view
Linear Growth Exponential Growth Effect of Variable Ordering Good Ordering Bad Ordering Decision Procedures An algorithmic point of view
Selecting Good Variable Ordering • Intractable Problem • Even when problem represented as OBDD • i.e., to find optimum improvement to current ordering • Application-Based Heuristics • Exploit characteristics of application • e.g., Ordering for functions of combinational circuit • Traverse circuit graph depth-first from outputs to inputs Decision Procedures An algorithmic point of view
Building BDDs ‘from below’ • Starting from a binary decision tree is too hard for formulas with many variables. • Goal: construct the BDD ‘from below’. Decision Procedures An algorithmic point of view
Building BDDs ‘from below’ • For this we will need a function called APPLY: • Given the BDDs for f1 and f2, • and a binary connective o, • Construct the BDD for f1o f2, Decision Procedures An algorithmic point of view
x 1 x 3 0 1 Building BDDs ‘from below’ • Def: a restriction of a function f to x=d, denoted f|x=d where xbelongs to vars(f), d in {0,1}, is equal to f after assigning x=d. • Given the BDD of f, deriving the BDD of f|x=0 is simple: f: (x1 x2) x3 f|x2=1 x 3 0 1 Decision Procedures An algorithmic point of view
Now, APPLY (1/3) • Let v1,v2 denote that root nodes of f1, f2, respectively, with var(v1) = x1 and var(v2)=x2. • If v1 and v2 are leafs, f1 o f2 is a leaf node with value val(v1) o val(v2) 1 = 0 1 1 = 0 0 Decision Procedures An algorithmic point of view
x BDD for f1|x=1 f2|x=1 BDD for f1|x=0 f2|x=0 Now, APPLY (2/3) • If x1 = x2 = x, apply Shanon expansion:f1 o f2 = (xf1|x=0of2|x=0xf1|x=1 o f2|x=1) x x = BDD for f1|x=1 BDD for f2|x=1 BDD for f1|x=0 BDD for f2|x=0 Decision Procedures An algorithmic point of view
Now, APPLY (3/3) • else, suppose x1 < x2 in the variable order.f1 o f2 = (x1f1|x1=0of2x1f1|x1=1of2) x1 x2 x1 = BDD for f1|x=1 f2 BDD for f1|x=0 f2 BDD for f1|x1=1 BDD for f2|x2=1 BDD for f1|x1=0 BDD for f2|x2=0 Decision Procedures An algorithmic point of view
BDD for f1|x1=0 f2 BDD for f1|x1=1 f2 x x 1 1 BDD for f1|x1=0 f2 = x2 x x x x 2 2 2 2 = 0 1 1 1 1 1 0 0 0 0 0 0 = 0 1 1 = 1 BDDs from below: example. x 2 = f2= x2 f1= x1 x2 Decision Procedures An algorithmic point of view
BDD for f1|x=0 f2 BDD for f1|x=1 f2 x x x x 1 1 1 1 x x x x x x 2 2 2 2 2 2 = 1 1 1 1 1 0 0 0 0 BDDs from below: example. x 2 = f2=x2 f1= x1 x2 f1 f2 = x1 (x1x2) = Decision Procedures An algorithmic point of view
Comparing SAT to BDDs • BDD is a canonical data structure that represents the semantic of a function, i.e. all its solutions • Some applications (e.g. symbolic model checking) need canonicity to detect when two sets are equivalent. • Can require exponential space & time (highly sensitive to variable ordering) • SAT searches through CNF for a single solution • CNF is not canonical. • Poly-space algorithms exists. Time can be exponential. Decision Procedures An algorithmic point of view