Binary Decision Diagrams (BDDs) Pingqiang Zhou ShanghaiTech University
|
|
- Hubert Hall
- 6 years ago
- Views:
Transcription
1 Binary Decision Diagrams (BDDs) Pingqiang Zhou ShanghaiTech University
2 Computational Boolean Algera Representations Applying unate recursive paradigm (URP) in solving tautology is a great warm up example. Shows ig idea: Boolean functions as things we manipulate with software. Data structure + operators But URP is not the real way we do it. Let s look at a real, important, elegant way to do this Binary Decision Diagrams: BDDs 2
3 Binary Decision Diagrams (BDD) Originally studied y several people got practically useful in 1986 Randal Bryant of CMU made reakthrough on Reduced Ordered BDD (ROBDD). 3
4 Binary Decision Diagrams for Truth Tales Big Idea #1: Binary Decision Diagram Turn a truth tale for the Boolean function into a Decision Diagram. In simplest case, graph is just a tree. By convention, don t draw arrows on the edges, we know where they go. Decision Tree x1 x3 x3 x3 x3 x1 x3 f
5 Binary Decision Diagrams Vertex represents a variale. Edge out of a vertex is a decision (0 or 1) on that variale. Follow green dashed line for 0. Follow red solid line for 1. Function value determined y leaf value. x1 x3 x3 x3 x3 x1 x3 f
6 Binary Decision Diagrams Some Terminology The lo pointer to lo child of vertex x1 A variale vertex The hi pointer to hi child of vertex A constant vertex at the leaf of the tree x3 x3 x3 x The variale ordering, which is the order in which decisions aout variales are made. Here, it is x1 < < x3.
7 Ordering Different variale orders are possile. x1 x3 x3 x3 x Order for this sutree is < x3 x1 Order for this sutree is x3 < x3 x3 x
8 Binary Decision Diagrams Oservations Each path from root to leaf traverses variales in some order. Each such path constitutes a row of the truth tale, i.e., a decision aout what output is when variales take particular values. However, we have not yet specified anything aout the order of decisions. The decision diagram is NOT unique for this function. 8
9 Terminology: Canonical form Canonical: Representation that does not depend on gate implementation of a Boolean function. Same function of same variales always produces this exact same representation. Example: a truth tale is canonical (up to variale order). We want a canonical form data structure. 9
10 Binary Decision Diagrams What s wrong with this diagram representation? It is not canonical, and it is way too ig to e useful (it is as ig as truth tale!) x1 x3 x3 x3 x x1 x3 x3 x
11 Binary Decision Diagrams Big idea #2: ordering Restrict gloal ordering of variales. It means: every path from root to a leaf visit variales in the SAME order. Note: it is OK to omit a variale if you don t need to check it to decide which leaf node to reach for final value of function. x x
12 Ordering BDD Variales Assign (an aritrary) gloal ordering to vars: x1 < < x3 Variales must appear in this specific order along all paths; ok to skip vars x1 x1 x3 x1 x3 x3 x1 x1 12 Property: No conflicting assignments along path (see each var at most once on path).
13 Binary Decision Diagrams OK, now what s wrong with it? Variale ordering simplifies things, ut still too ig, and not canonical. Original Decision Diagram x1 x3 x3 x3 x Equivalent, ut Different Decision Diagram x1 x3 x3 x
14 Binary Decision Diagrams Big Idea #3: Reduction Identify redundancies in the graph that can remove unnecessary nodes and edges. Removal of node and its children, replace with x3 node is an example of this. x1 x3 x3 x3 x x1 x3 x3 x
15 Binary Decision Diagrams Reduction Why are we doing this? Graph size: Want result as small as possile. Canonical form: For same function, given same variale order, want there to e exactly one graph that represents this function. 15
16 Reduction Rules Reduction Rule 1: Merge equivalent leaves Just keep one copy of each constant leaf anything else is totally wasteful. Redirect all edges that went into the redundant leaves into this one kept node. Apply Rule 1 to our example... x1 x1 16 x3 x3 x3 x x3 x3 x3 x3 0 1
17 Reduction Rules Reduction Rule 2: Merge isomorphic nodes Isomorphic = 2 nodes with same variale and identical children Cannot tell these nodes apart from how they contriute to decisions in graph. Note: means exact same physical child nodes, not just children with same lael. NOT isomorphic x x y z isomorphic x x y z y
18 Steps of Merging Isomorphic Nodes 1. Remove redundant node. 2. Redirect all edges that went into the redundant node into the one copy that you kept. For the example elow, edges into right x node now into left as well. x x x y z y z 18
19 Reduction Rules Apply Rule 2, merging redundant nodes, to our example. x1 x1 x3 x3 x3 x3 0 1 isomorphic x3 0 1 x3 19
20 Reduction Rules Reduction Rule 3: Eliminate Redundant Tests Redundant test: oth children of a node (x) go to the same node (y) so we don t care what value x node takes. Steps 1. Remove redundant node. 2. Redirect all edges into redundant node (x) into child (y) of the removed node. x y y 20
21 Reduction Rules Apply Rule 3, eliminating redundant tests, to our example. x1 x1 x3 x3 x3 We are done!
22 Reduction Rules The aove is a simple example. The reduction process terminates y applying each rule once. But in real case, you may need to iteratively apply Rule 2 and 3. It is only done when you cannot find any match of rule 2 or 3. Is this how programs really do it? No!! We will talk aout that later 22
23 Binary Decision Diagrams (BDDs) Big Results Recap: What did we do? Start with a decision diagram in the form of a tree, order the variales, and reduce the diagram Name: Reduced Ordered BDD (ROBDD) 23 Big result: ROBDD is a canonical form data structure for any Boolean function. Same function always generates exactly same graph... for same variale ordering. Two functions identical if and only if ROBDD graphs are isomorphic (i.e., same). Nice property: Simplest form of graph is canonical.
24 BDDs: Representing Simple Things NOTE: In a ROBDD, a Boolean function is really just a pointer to the root node of the graph. ROBDD for f a,,, z = 0 f ROBDD for f a,,, z = 1 f 0 ROBDD for f a,,, z = a f 1 a
25 ROBDD for AND f a, = a f f f a a a Same graph for f a,,, z = a 25
26 ROBDD for OR f a, = a + f f f a a a Same graph for f a,,, z = a + 26
27 ROBDD for AND/OR on Multiple Inputs f a,, c, d = acd f f a,, c, d = a + + c + d f a c d a c d
28 ROBDD for XOR f a, = a f f a a Same graph for f a,,, z = a 28
29 ROBDD for XOR on Multiple Inputs f a,, c, d = a c d f a c d c d
30 Sharing in BDDs Very important technical point: Every BDD node (not just root) represents some Boolean function in a canonical way. BDDs good at extracting & representing sharing of sufunctions in sugraphs. c d f a,, c, d = a c d f c d a c c d d d
31 BDD Sharing: Multi-Rooted BDD If we are uilding BDDs for multiple functions, then there may e same sugraphs among different BDDs. Don t represent same things multiple times; share them! As a result of sharing, the BDD can have multiple entry points, or roots. Called a multi-rooted BDD. 31
32 Multi-Rooted BDD: Example Build BDDs for two functions f 1 x 1, x 2, x 3 = x 1 x 2 x 3 f 2 x 1, x 2, x 3 = x 1 + x 2 x 3 f 1 f 2 f 1 f 2 x1 x1 Shaded parts are same Can e shared! x1 x1 x3 x3 x
33 Review Binary decision diagram (BDD) Big idea #1: Decision diagrams Big idea #2: Assign gloal ordering to variales. Big idea #3: Reduction Merge equivalent leaves Merge isomorphic nodes Eliminate redundant tests Result: Reduced Ordered Binary Decision Diagram (ROBDD) 33
34 Review ROBDD is a canonical form data structure for any Boolean function. Same function always generates exactly same graph... for same variale ordering. Nice property: Simplest form of graph is canonical. Sharing in BDDs Every BDD node (not just root) represents some Boolean function in a canonical way. We can uild a multi-rooted BDD for multiple functions. 34
35 Multi-Rooted BDD: Example Look at sum S3 and carry out Cout [Ro Ruentar] 35
36 Multi-Rooted BDD: Example Don t represent it twice! BDD can have multiple entry points, or roots Called a multi-rooted BDD Recall Every node in a BDD represents some Boolean function Multi-rooting idea just explicitly exploits this to etter share stuff 36 [Ro Ruentar]
37 Multi-Rooted BDD: Example Why stop at 2 roots? Sharing among sets of functions (several separate BDDs) reduces the size of BDD! Real example: Adders Separately 4-it adder: 51 nodes 64-it adder: 12,481 nodes Shared 4-it adder: 31 nodes 64-it adder: 571 nodes 37
38 BDD for OP of Functions g a h f = OR(g, h) Order: a < < c c?
39 BDD and Cofactors f f x x f x What are these two functions? 39
40 How to Implement OP? Example: op = AND f = g h BDD and cofactors: g h x x g h x Therefore, we only need to otain BDDs for g h x and 40 g h x Property of cofactors: g h x = g x h x g h x = g x h x Since we are given BDDs for g and h, it is easy to get BDDs for g x, g x, h x, and h x. We recursively apply op on (g x, h x ) and (g x, h x ) first.
41 How Are BDDs Really Implemented? Recursively! Cofactor and divide-and-conquer are two keys. Note: Boolean function can e decomposed: f = op(g, h) op can e either AND, OR, XOR, NOT, Idea: uild ROBDD for g and ROBDD for h, then uild ROBDD for f from the previous two ROBDDs. op looks like: BDD op(bdd g, BDD h); BDDs for g, h, and f can share. Start from the ase cases: ROBDDs for constants 0 and 1 and a single variale. f g h 41
42 Algorithm for Implementing OP BDD op(bdd g, BDD h) { if (g is a leaf or h is a leaf) // termination condition: // either g = 0 or 1, or h = 0 or 1 return proper BDD; var x = min(root(g), root(h)) // get the lowest order var BDD flo = op( negcofbdd(g, x), negcofbdd(h, x) ); BDD fhi = op( poscofbdd(g, x), poscofbdd(h, x) ); return cominebdd(x, flo, fhi); } 42 negcofbdd g, x = g x = poscofbdd g, x = g x = g if x < root(g) lo(g) if x = root(g) g if x < root(g) hi(g) if x = root(g)
43 Example of OP g a Otain f = OR(g, h). Order: a < < c Cofactor on variale a h c 0 1 h a 0 1 h a g a g a 0 c c
44 Example of OP (cont.) Recursively compute OR(g a, h a) g a h a c We otain: OR(g a, h a) c Termination condition
45 Example of OP (cont.) Recursively compute OR(g a, h a ) h a g a Cofactor on variale c h a g a g a h a c
46 Example of OP (cont.) Recursively compute OR(g a, h a ) Recursively compute OR(g a, h a ) h a g a h a g a c Termination condition OR(g a, h a ) Termination condition OR(g a, h a )
47 Example of OP (cont.) OR(g a, h a ) OR(g a, h a ) 0 1 Based on the recursion results, otain OR g a, h a Note: we cofactor on. OR(g a, h a )
48 Example of OP (cont.) Based on the recursion results, otain OR g, h Note: we cofactor on a. OR(g a, h a) 0 c 1 OR(g a, h a ) 0 1 OR(g, h) 0 a c 1 48 Done!
49 BDDs: Build Up Incrementally 49 For a gate-level network, uild the BDD for the output incrementally. a c A B C AND AND OR Each input is a BDD, each gate ecomes an operator op that produces a new output BDD. Build BDD for F as a script of calls to asic BDD operators. Stick to a gloal ordering. D E F BDD operator script 1. A = CreateVar( a ) 2. B = CreateVar( ) 3. C = CreateVar( c ) 4. D = AND(A, B) 5. E = AND(B, C) 6. F = OR(D, E)
50 Example: Build BDD Incrementally a c A B C AND AND D OR Gloal ordering: a < < c E BDD operator script 1. A = CreateVar( A ) 2. B = CreateVar( B ) 3. C = CreateVar( C ) 4. D = AND(A, B) 5. E = AND(B, C) 6. F = OR(D, E) 1. A 2. B 3. C 4. D 5. F E a c a c
51 Example: Build BDD Incrementally a c A B C AND AND D E OR Gloal ordering: a < < c 6. F F BDD operator script 1. A = CreateVar( A ) 2. B = CreateVar( B ) 3. C = CreateVar( C ) 4. D = AND(A, B) 5. E = AND(B, C) 6. F = OR(D, E) a c
52 Application of BDD Tautology checking Solution: Build BDD for f. Check if the BDD is just the BDD for f = 1. f 1 52
53 Application of BDD Satisfiaility (SAT) Satisfiaility (SAT): Does there exist an input pattern for variales that lets F = 1? If yes, return one pattern. Recall: In network repair prolem, we want to find (d 0, d 1, d 2, d 3 ) so that a z d 0, d 1, d 2, d 3 = 1 Solution: If the BDD for F is not the BDD for f = 0. Then, SAT answer is yes. If yes, any path from root to 1 leaf is a solution. x1 x4 0 1 SAT? Yes. SAT pattern: x 1, x 2, x 3, x 4 = 0,1,, 1 (1,,, 1) 53
54 Application of BDD Comparing Logic Implementations Are two given Boolean functions F and G the same? Solution #1: Build BDD for F. Build BDD for G Compare pointers to roots of F and G If and only if pointers are same, F = G. 54 Solution #2: Build BDD for function F G Check if the BDD is just the BDD for f = 1. f 1
55 Application of BDD Comparing Logic Implementations What inputs make functions F and G give different answers? Solution: Build BDD for H = F G. Ask SAT question for H. 55
56 BDDs: Seem Too Good To Be True?! Prolem : Variale ordering matters. Example: a1 1 + a2 2 + a3 3 Good ordering:a1 < 1 < a2 < 2 < a3 < 3 Bad ordering: a1 < a2 < a3 < 1 < 2 < 3 56
57 Variale Ordering: How to Handle? Variale ordering heuristics: make nice BDDs for reasonale prolems. Characterization: know which prolems never make simple BDDs (e.g., multipliers) Dynamic ordering: let the BDD software package pick the order on the fly. 57
58 Variale Ordering: Intuition Rules of thum for BDD ordering Related inputs should e near each other in order. Groups of inputs that can determine function y themselves should e (i) close together, and (ii) near top of BDD. Example: a1 1 + a2 2 + a3 3 Good ordering: a1 < 1 < a2 < 2 < a3 < 3 Why? a i and i together can determine the function value 58
59 Variale Ordering: Intuition Rules of thum for BDD ordering Related inputs should e near each other in order. Groups of inputs that can determine function y themselves should e (i) close together, and (ii) near top of BDD. Example: a1 1 + a2 2 + a3 3 Bad ordering: a1 < a2 < a3 < 1 < 2 < 3 Why? We need to rememer a1, a2, a3 efore we see any s. 59
60 Variale Ordering: Practice 60 Arithmetic circuits are important logic; how are their BDDs? Many carry chain circuits have easy linear sized ROBDD orderings: Adders, Sutractors, Comparators. Rule is alternate variales in the BDD order: a0, 0, a1, 1, a2, 2,, an, n. Are all arithmetic circuits easy? No! Multiplication is exponential in numer of nodes for any order. General experience with BDDs Many tasks have reasonale ROBDD sizes; algorithms are practical to aout 100M nodes. People spend a lot of effort to find orderings that work
61 BDD Summary Reduced, Ordered, Binary Decision Diagrams, ROBDDs Canonical form a data structure for Boolean functions. Two Boolean functions the same if and only if they have identical BDD. A Boolean function is just a pointer to the root node of the BDD graph. Every node in a (shared) BDD represents some function. Basis for much of today s general manipulation or Boolean stuff. 61 Prolems Variale ordering matters; sometimes BDD is just too ig. Often, we just want to know SAT don t need to uild the whole function.
L4: Binary Decision Diagrams. Reading material
L4: Binary Decision Diagrams de Micheli pp. 75-85 Reading material R. Bryant, Graph-ased algorithms for Boolean function manipulation, IEEE Transactions on computers, C-35, No 8, August 1986; can e downloaded
More informationMotivation. CS389L: Automated Logical Reasoning. Lecture 5: Binary Decision Diagrams. Historical Context. Binary Decision Trees
Motivation CS389L: Automated Logical Reasoning Lecture 5: Binary Decision Diagrams Işıl Dillig Previous lectures: How to determine satisfiability of propositional formulas Sometimes need to efficiently
More informationVLSI Logic Test, Validation and Verification Lecture 7 Properties & Applications of Binary Decision Diagrams
VLSI Logic Test, Validation and Verification Lecture 7 Properties & Applications of Binary Decision Diagrams 1 Instructor: Priyank Kalla Department of Electrical and Computer Engineering University of
More informationBinary Decision Diagrams (BDD)
Binary Decision Diagrams (BDD) Contents Motivation for Decision diagrams Binary Decision Diagrams ROBDD Effect of Variable Ordering on BDD size BDD operations Encoding state machines Reachability Analysis
More informationLecture Notes on Binary Decision Diagrams
Lecture Notes on Binary Decision Diagrams 15-122: Principles of Imperative Computation William Lovas Notes by Frank Pfenning Lecture 25 April 21, 2011 1 Introduction In this lecture we revisit the important
More informationBoolean Representations and Combinatorial Equivalence
Chapter 2 Boolean Representations and Combinatorial Equivalence This chapter introduces different representations of Boolean functions. It then discusses the applications of these representations for proving
More informationUnit 4: Formal Verification
Course contents Unit 4: Formal Verification Logic synthesis basics Binary-decision diagram (BDD) Verification Logic optimization Technology mapping Readings Chapter 11 Unit 4 1 Logic Synthesis & Verification
More information1 Model checking and equivalence checking
978--52-85972- - Practical Design Verification Model checking and equivalence checking Masahiro Fujita. Introduction Owing to the advances in semiconductor technology, a large and complex system that has
More informationEECS 219C: Formal Methods Binary Decision Diagrams (BDDs) Sanjit A. Seshia EECS, UC Berkeley
EECS 219C: Formal Methods Binary Decision Diagrams (BDDs) Sanjit A. Seshia EECS, UC Berkeley Boolean Function Representations Syntactic: e.g.: CNF, DNF (SOP), Circuit Semantic: e.g.: Truth table, Binary
More informationFormal Verification. Lecture 7: Introduction to Binary Decision Diagrams (BDDs)
Formal Verification Lecture 7: Introduction to Binary Decision Diagrams (BDDs) Jacques Fleuriot jdf@inf.ac.uk Diagrams from Huth & Ryan, 2nd Ed. Recap Previously: CTL and LTL Model Checking algorithms
More informationHot X: Algebra Exposed
Hot X: Algera Exposed Solution Guide for Chapter 5 Here are the solutions for the Doing the Math exercises in Hot X: Algera Exposed! (assume that all denominators 0) DTM from p.59 2. Since they have the
More informationSEARCHING, SORTING, AND ASYMPTOTIC COMPLEXITY
1 A3 and Prelim 2 SEARCHING, SORTING, AND ASYMPTOTIC COMPLEXITY Lecture 11 CS2110 Fall 2016 Deadline for A3: tonight. Only two late days allowed (Wed-Thur) Prelim: Thursday evening. 74 conflicts! If you
More informationECE 5775 (Fall 17) High-Level Digital Design Automation. Binary Decision Diagrams Static Timing Analysis
ECE 5775 (Fall 17) High-Level Digital Design Automation Binary Decision Diagrams Static Timing Analysis Announcements Start early on Lab 1 (CORDIC design) Fixed-point design should not have usage of DSP48s
More informationSynthesis 1. 1 Figures in this chapter taken from S. H. Gerez, Algorithms for VLSI Design Automation, Wiley, Typeset by FoilTEX 1
Synthesis 1 1 Figures in this chapter taken from S. H. Gerez, Algorithms for VLSI Design Automation, Wiley, 1998. Typeset by FoilTEX 1 Introduction Logic synthesis is automatic generation of circuitry
More information1/28/2013. Synthesis. The Y-diagram Revisited. Structural Behavioral. More abstract designs Physical. CAD for VLSI 2
Synthesis The Y-diagram Revisited Structural Behavioral More abstract designs Physical CAD for VLSI 2 1 Structural Synthesis Behavioral Physical CAD for VLSI 3 Structural Processor Memory Bus Behavioral
More informationBinary Decision Diagrams
Logic and roof Hilary 2016 James Worrell Binary Decision Diagrams A propositional formula is determined up to logical equivalence by its truth table. If the formula has n variables then its truth table
More informationMenu. X + /X=1 and XY+X /Y = X(Y + /Y) = X
Menu K-Maps and Boolean Algera >Don t ares >5 Variale Look into my... 1 Karnaugh Maps - Boolean Algera We have disovered that simplifiation/minimization is an art. If you see it, GREAT! Else, work at it,
More informationArray Dependence Analysis as Integer Constraints. Array Dependence Analysis Example. Array Dependence Analysis as Integer Constraints, cont
Theory of Integers CS389L: Automated Logical Reasoning Omega Test Işıl Dillig Earlier, we talked aout the theory of integers T Z Signature of T Z : Σ Z : {..., 2, 1, 0, 1, 2,..., 3, 2, 2, 3,..., +,, =,
More informationCS357 Lecture: BDD basics. David Dill
CS357 Lecture: BDD basics David Dill BDDs (Boolean/binary decision diagrams) BDDs are a very successful representation for Boolean functions. A BDD represents a Boolean function on variables x, x 2,...
More informationData Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi.
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 18 Tries Today we are going to be talking about another data
More information(Refer Slide Time 6:48)
Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 8 Karnaugh Map Minimization using Maxterms We have been taking about
More informationTheory of Integers. CS389L: Automated Logical Reasoning. Lecture 13: The Omega Test. Overview of Techniques. Geometric Description
Theory of ntegers This lecture: Decision procedure for qff theory of integers CS389L: Automated Logical Reasoning Lecture 13: The Omega Test şıl Dillig As in previous two lectures, we ll consider T Z formulas
More informationRecent Results from Analyzing the Performance of Heuristic Search
Recent Results from Analyzing the Performance of Heuristic Search Teresa M. Breyer and Richard E. Korf Computer Science Department University of California, Los Angeles Los Angeles, CA 90095 {treyer,korf}@cs.ucla.edu
More informationName Class Date. Quadratic Functions and Transformations
4-1 Reteaching Parent Quadratic Function The parent quadratic function is y = x. Sustitute 0 for x in the function to get y = 0. The vertex of the parent quadratic function is (0, 0). A few points near
More information(Refer Slide Time 3:31)
Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 5 Logic Simplification In the last lecture we talked about logic functions
More informationIntroduction to Machine Learning Spring 2018 Note Sparsity and LASSO. 1.1 Sparsity for SVMs
CS 189 Introduction to Machine Learning Spring 2018 Note 21 1 Sparsity and LASSO 1.1 Sparsity for SVMs Recall the oective function of the soft-margin SVM prolem: w,ξ 1 2 w 2 + C Note that if a point x
More informationFigure 4.1: The evolution of a rooted tree.
106 CHAPTER 4. INDUCTION, RECURSION AND RECURRENCES 4.6 Rooted Trees 4.6.1 The idea of a rooted tree We talked about how a tree diagram helps us visualize merge sort or other divide and conquer algorithms.
More informationBinary Trees
Binary Trees 4-7-2005 Opening Discussion What did we talk about last class? Do you have any code to show? Do you have any questions about the assignment? What is a Tree? You are all familiar with what
More informationAdvanced Digital Logic Design EECS 303
Advanced Digital Logic Design EECS 303 http://ziyang.eecs.northwestern.edu/eecs303/ Teacher: Robert Dick Office: L477 Tech Email: dickrp@northwestern.edu Phone: 847 467 2298 Outline 1. 2. 2 Robert Dick
More informationAdvanced VLSI Design Prof. Virendra K. Singh Department of Electrical Engineering Indian Institute of Technology Bombay
Advanced VLSI Design Prof. Virendra K. Singh Department of Electrical Engineering Indian Institute of Technology Bombay Lecture 40 VLSI Design Verification: An Introduction Hello. Welcome to the advance
More information(Refer Slide Time: 06:01)
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 28 Applications of DFS Today we are going to be talking about
More informationCS 188: Artificial Intelligence Fall Search Gone Wrong?
CS 188: Artificial Intelligence Fall 2009 Lecture 3: A* Search 9/3/2009 Pieter Aeel UC Berkeley Many slides from Dan Klein Search Gone Wrong? 1 Announcements Assignments: Project 0 (Python tutorial): due
More informationBinary Decision Diagrams
5-44 Bug Catching: Automated Program Verification and Testing based on slides by SagarChaki 2 Carnegie Mellon University BDDs in a nutshell Typically mean Reduced Ordered (ROBDDs) Canonical representation
More informationChapter 8: Data Abstractions
Chapter 8: Data Abstractions Computer Science: An Overview Tenth Edition by J. Glenn Brookshear Presentation files modified by Farn Wang Copyright 28 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
More informationSynthesis of 2-level Logic Heuristic Method. Two Approaches
Synthesis of 2-level Logic Heuristic Method Lecture 8 Exact Two Approaches Find all primes Find a complete sum Find a minimum cover (covering problem) Heuristic Take an initial cover of cubes Repeat Expand
More informationDesign and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute. Week 02 Module 06 Lecture - 14 Merge Sort: Analysis
Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute Week 02 Module 06 Lecture - 14 Merge Sort: Analysis So, we have seen how to use a divide and conquer strategy, we
More informationModel Checking I Binary Decision Diagrams
/42 Model Checking I Binary Decision Diagrams Edmund M. Clarke, Jr. School of Computer Science Carnegie Mellon University Pittsburgh, PA 523 2/42 Binary Decision Diagrams Ordered binary decision diagrams
More informationBinary Decision Diagrams and Symbolic Model Checking
Binary Decision Diagrams and Symbolic Model Checking Randy Bryant Ed Clarke Ken McMillan Allen Emerson CMU CMU Cadence U Texas http://www.cs.cmu.edu/~bryant Binary Decision Diagrams Restricted Form of
More informationBehavior models and verification Lecture 6
Behavior models and verification Lecture 6 http://d3s.mff.cuni.cz Jan Kofroň, František Plášil Model checking For a Kripke structure M = (S, I, R, L) over AP and a (state based) temporal logic formula
More informationLogic Synthesis & Optimization Lectures 4, 5 Boolean Algebra - Basics
Logic Synthesis & Optimization Lectures 4, 5 Boolean Algebra - Basics 1 Instructor: Priyank Kalla Department of Electrical and Computer Engineering University of Utah, Salt Lake City, UT 84112 Email: kalla@ece.utah.edu
More informationABC basics (compilation from different articles)
1. AIG construction 2. AIG optimization 3. Technology mapping ABC basics (compilation from different articles) 1. BACKGROUND An And-Inverter Graph (AIG) is a directed acyclic graph (DAG), in which a node
More informationCSE 2123 Recursion. Jeremy Morris
CSE 2123 Recursion Jeremy Morris 1 Past Few Weeks For the past few weeks we have been focusing on data structures Classes & Object-oriented programming Collections Lists, Sets, Maps, etc. Now we turn our
More information2009 Haskell January Test Binary Decision Diagrams
009 Haskell January est Binary Decision Diagrams his test comprises four parts and the maximum mark is 5. Parts I, II and III are worth of the 5 marks available. he 009 Haskell Programming Prize will be
More informationJan Rabaey Homework # 7 Solutions EECS141
UNIVERSITY OF CALIFORNIA College of Engineering Department of Electrical Engineering and Computer Sciences Last modified on March 30, 2004 by Gang Zhou (zgang@eecs.berkeley.edu) Jan Rabaey Homework # 7
More informationL3: Representations of functions
L3: Representations of functions Representations of Boolean functions Boolean expression Two level sum of product form, factorized form Truth tables Karnaugh maps Cubes (MIN,MAX) notation positional cube
More informationVLSI System Design Part II : Logic Synthesis (1) Oct Feb.2007
VLSI System Design Part II : Logic Synthesis (1) Oct.2006 - Feb.2007 Lecturer : Tsuyoshi Isshiki Dept. Communications and Integrated Systems, Tokyo Institute of Technology isshiki@vlsi.ss.titech.ac.jp
More informationAlgorithms. Deleting from Red-Black Trees B-Trees
Algorithms Deleting from Red-Black Trees B-Trees Recall the rules for BST deletion 1. If vertex to be deleted is a leaf, just delete it. 2. If vertex to be deleted has just one child, replace it with that
More informationComputer Science 210 Data Structures Siena College Fall Topic Notes: Priority Queues and Heaps
Computer Science 0 Data Structures Siena College Fall 08 Topic Notes: Priority Queues and Heaps Heaps and Priority Queues From here, we will look at some ways that trees are used in other structures. First,
More information1 Definition of Reduction
1 Definition of Reduction Problem A is reducible, or more technically Turing reducible, to problem B, denoted A B if there a main program M to solve problem A that lacks only a procedure to solve problem
More informationEfficient filtering of XML documents with XPath expressions
The VLDB Journal (22) 11: 354 379 / Digital Oject Identifier (DOI) 1.17/s778-2-77-6 Efficient filtering of XML documents with XPath expressions Chee-Yong Chan, Pascal Feler, Minos Garofalakis, Rajeev Rastogi
More informationHorn Formulae. CS124 Course Notes 8 Spring 2018
CS124 Course Notes 8 Spring 2018 In today s lecture we will be looking a bit more closely at the Greedy approach to designing algorithms. As we will see, sometimes it works, and sometimes even when it
More informationT Parallel and Distributed Systems (4 ECTS)
T 79.4301 Parallel and Distriuted Systems (4 ECTS) T 79.4301 Rinnakkaiset ja hajautetut järjestelmät (4 op) Lecture 4 11th of Feruary 2008 Keijo Heljanko Keijo.Heljanko@tkk.fi T 79.4301 Parallel and Distriuted
More informationSymbolic Model Checking
Bug Catching 5-398 Symbolic Model Checking Hao Zheng Dept. of Computer Science & Eng. Univ. of South Florida Overview CTL model checking operates on sets. Calculates the fix points over finite state sets.
More informationLogic Synthesis and Verification
Logic Synthesis and Verification Jie-Hong Roland Jiang 江介宏 Department of Electrical Engineering National Taiwan University Fall 2012 1 SOPs and Incompletely Specified Functions Reading: Logic Synthesis
More informationCSC 220: Computer Organization Unit 10 Arithmetic-logic units
College of Computer and Information Sciences Department of Computer Science CSC 220: Computer Organization Unit 10 Arithmetic-logic units 1 Remember: 2 Arithmetic-logic units An arithmetic-logic unit,
More informationArithmetic-logic units
Arithmetic-logic units An arithmetic-logic unit, or ALU, performs many different arithmetic and logic operations. The ALU is the heart of a processor you could say that everything else in the CPU is there
More informationChap5 The Theory of the Simplex Method
College of Management, NCTU Operation Research I Fall, Chap The Theory of the Simplex Method Terminology Constraint oundary equation For any constraint (functional and nonnegativity), replace its,, sign
More informationParse Trees. John Kennedy Mathematics Department Santa Monica College 1900 Pico Blvd. Santa Monica, CA
Parse Trees by John Kennedy Mathematics Department Santa Monica College 1900 Pico lvd. Santa Monica, CA 90405 rkennedy@ix.netcom.com Except for this comment explaining that it is blank for some deliberate
More informationHeadset Research Report:
Headset Research Report: The Advantages of Moving to Wireless Research Suject: Brother International Technical Support Centers y Headset Research Report: The Advantages of Moving to Wireless Research Suject:
More informationPostfix (and prefix) notation
Postfix (and prefix) notation Also called reverse Polish reversed form of notation devised by mathematician named Jan Łukasiewicz (so really lü-kä-sha-vech notation) Infix notation is: operand operator
More informationAdvanced Database Systems
Lecture IV Query Processing Kyumars Sheykh Esmaili Basic Steps in Query Processing 2 Query Optimization Many equivalent execution plans Choosing the best one Based on Heuristics, Cost Will be discussed
More information4.1 Review - the DPLL procedure
Applied Logic Lecture 4: Efficient SAT solving CS 4860 Spring 2009 Thursday, January 29, 2009 The main purpose of these notes is to help me organize the material that I used to teach today s lecture. They
More informationSteven Skiena. skiena
Lecture 22: Introduction to NP-completeness (1997) Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794 4400 http://www.cs.sunysb.edu/ skiena Among n people,
More informationParallel Computation: Many computations at once, we measure parallel time and amount of hardware. (time measure, hardware measure)
CMPSCI 601: Recall From Last Time Lecture 24 Parallel Computation: Many computations at once, we measure parallel time and amount of hardware. Models: (time measure, hardware measure) Parallel RAM: number
More information6.001 Notes: Section 15.1
6.001 Notes: Section 15.1 Slide 15.1.1 Our goal over the next few lectures is to build an interpreter, which in a very basic sense is the ultimate in programming, since doing so will allow us to define
More information- Introduction P. Danziger. Linear Algebra. Algebra Manipulation, Solution or Transformation
Linear Algera Linear of line or line like Algera Manipulation, Solution or Transformation Thus Linear Algera is aout the Manipulation, Solution and Transformation of line like ojects. We will also investigate
More informationIntro. Scheme Basics. scm> 5 5. scm>
Intro Let s take some time to talk about LISP. It stands for LISt Processing a way of coding using only lists! It sounds pretty radical, and it is. There are lots of cool things to know about LISP; if
More informationHi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we
Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we have to talk about the way in which we represent the
More informationCARLETON UNIVERSITY. Laboratory 2.0
CARLETON UNIVERSITY Department of Electronics ELEC 267 Switching Circuits Jan 3, 28 Overview Laboratory 2. A 3-Bit Binary Sign-Extended Adder/Subtracter A binary adder sums two binary numbers for example
More informationFriday Four Square! 4:15PM, Outside Gates
Binary Search Trees Friday Four Square! 4:15PM, Outside Gates Implementing Set On Monday and Wednesday, we saw how to implement the Map and Lexicon, respectively. Let's now turn our attention to the Set.
More information(Refer Slide Time: 01.26)
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture # 22 Why Sorting? Today we are going to be looking at sorting.
More informationMULTIPLE OPERAND ADDITION. Multioperand Addition
MULTIPLE OPERAND ADDITION Chapter 3 Multioperand Addition Add up a bunch of numbers Used in several algorithms Multiplication, recurrences, transforms, and filters Signed (two s comp) and unsigned Don
More informationTopics Introduction to Microprocessors
Topics 22440 Introduction to Microprocessors C-Language Review (I) Important: : You will not learn how to code in C in this one lecture! You ll still need some sort of C reference. C Syntax Important Tidits
More informationTutorial: Pattern Wizard
University of Pennsylvania Department of Electrical and Systems Engineering Digital Design Laboratory Tutorial: Pattern Wizard When assigning values to a bus in Xilinx during the behavioral simulation,
More informationCOMP 410 Lecture 1. Kyle Dewey
COMP 410 Lecture 1 Kyle Dewey About Me I research automated testing techniques and their intersection with CS education My dissertation used logic programming extensively This is my second semester at
More informationTreaps. 1 Binary Search Trees (BSTs) CSE341T/CSE549T 11/05/2014. Lecture 19
CSE34T/CSE549T /05/04 Lecture 9 Treaps Binary Search Trees (BSTs) Search trees are tree-based data structures that can be used to store and search for items that satisfy a total order. There are many types
More informationRecitation 9. Prelim Review
Recitation 9 Prelim Review 1 Heaps 2 Review: Binary heap min heap 1 2 99 4 3 PriorityQueue Maintains max or min of collection (no duplicates) Follows heap order invariant at every level Always balanced!
More informationNormal Forms for Boolean Expressions
Normal Forms for Boolean Expressions A NORMAL FORM defines a class expressions s.t. a. Satisfy certain structural properties b. Are usually universal: able to express every boolean function 1. Disjunctive
More informationCS 31: Intro to Systems Digital Logic. Kevin Webb Swarthmore College February 2, 2016
CS 31: Intro to Systems Digital Logic Kevin Webb Swarthmore College February 2, 2016 Reading Quiz Today Hardware basics Machine memory models Digital signals Logic gates Circuits: Borrow some paper if
More informationTrees and Tree Traversals. Binary Trees. COMP 210: Object-Oriented Programming Lecture Notes 8. Based on notes by Logan Mayfield
OMP 210: Object-Oriented Programming Lecture Notes 8 Trees and Tree Traversals ased on notes by Logan Mayfield In these notes we look at inary Trees and how to traverse them. inary Trees Imagine a list.
More informationSection 3.2 Quadratic Functions
3. Quadratic Functions 163 Section 3. Quadratic Functions In this section, we will explore the family of nd degree polynomials, the quadratic functions. While they share many characteristics of polynomials
More informationy ax bx c y a x h 2 Math 11 Pre-Cal Quadratics Review
Math 11 Pre-Cal Quadratics Review A quadratic function can e descried as y ax x c (or equivalent forms, see elow). There are an infinite numer of solutions (x,y pairs) to a quadratic function. If we plot
More informationCSC 373 Lecture # 3 Instructor: Milad Eftekhar
Huffman encoding: Assume a context is available (a document, a signal, etc.). These contexts are formed by some symbols (words in a document, discrete samples from a signal, etc). Each symbols s i is occurred
More informationLecture 6. Binary Search Trees and Red-Black Trees
Lecture Binary Search Trees and Red-Black Trees Sorting out the past couple of weeks: We ve seen a bunch of sorting algorithms InsertionSort - Θ n 2 MergeSort - Θ n log n QuickSort - Θ n log n expected;
More informationCSCI S-Q Lecture #12 7/29/98 Data Structures and I/O
CSCI S-Q Lecture #12 7/29/98 Data Structures and I/O Introduction The WRITE and READ ADT Operations Case Studies: Arrays Strings Binary Trees Binary Search Trees Unordered Search Trees Page 1 Introduction
More informationPoints Addressed in this Lecture. Standard form of Boolean Expressions. Lecture 4: Logic Simplication & Karnaugh Map
Points Addressed in this Lecture Lecture 4: Logic Simplication & Karnaugh Map Professor Peter Cheung Department of EEE, Imperial College London Standard form of Boolean Expressions Sum-of-Products (SOP),
More information1. What is cos(20 ) csc(70 )? This is a review of the complementary angle theorem that you learned about last time.
Math 121 (Lesieutre); 8.1, cont.; Novemer 10, 2017 1. What is cos(20 ) csc(70 )? This is a review of the complementary angle theorem that you learned aout last time. cos(20 ) csc(70 ) = cos(20 ) sec(90
More informationCS 31: Intro to Systems Caching. Martin Gagne Swarthmore College March 23, 2017
CS 1: Intro to Systems Caching Martin Gagne Swarthmore College March 2, 2017 Recall A cache is a smaller, faster memory, that holds a subset of a larger (slower) memory We take advantage of locality to
More informationCMSC424: Database Design. Instructor: Amol Deshpande
CMSC424: Database Design Instructor: Amol Deshpande amol@cs.umd.edu Databases Data Models Conceptual representa1on of the data Data Retrieval How to ask ques1ons of the database How to answer those ques1ons
More informationIntro. Speed V Growth
Intro Good code is two things. It's elegant, and it's fast. In other words, we got a need for speed. We want to find out what's fast, what's slow, and what we can optimize. First, we'll take a tour of
More informationWe use L i to stand for LL L (i times). It is logical to define L 0 to be { }. The union of languages L and M is given by
The term languages to mean any set of string formed from some specific alphaet. The notation of concatenation can also e applied to languages. If L and M are languages, then L.M is the language consisting
More informationECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017
ECE 550D Fundamentals of Computer Systems and Engineering Fall 2017 Combinational Logic Prof. John Board Duke University Slides are derived from work by Profs. Tyler Bletsch and Andrew Hilton (Duke) Last
More informationTree Based Symmetric Key Broadcast Encryption
Tree Based Symmetric Key Broadcast Encryption Sanjay Bhattacherjee and Palash Sarkar Applied Statistics Unit Indian Statistical Institute 203, B.T.Road, Kolkata, India - 700108. {sanjay r,palash}@isical.ac.in
More informationMarch 20/2003 Jayakanth Srinivasan,
Definition : A simple graph G = (V, E) consists of V, a nonempty set of vertices, and E, a set of unordered pairs of distinct elements of V called edges. Definition : In a multigraph G = (V, E) two or
More informationTaking Stock. IE170: Algorithms in Systems Engineering: Lecture 7. (A subset of) the Collections Interface. The Java Collections Interfaces
Taking Stock IE170: Algorithms in Systems Engineering: Lecture 7 Jeff Linderoth Department of Industrial and Systems Engineering Lehigh University January 29, 2007 Last Time Practice Some Sorting Algs
More informationSolving Linear Recurrence Relations (8.2)
EECS 203 Spring 2016 Lecture 18 Page 1 of 10 Review: Recurrence relations (Chapter 8) Last time we started in on recurrence relations. In computer science, one of the primary reasons we look at solving
More informationCSE 417 Branch & Bound (pt 4) Branch & Bound
CSE 417 Branch & Bound (pt 4) Branch & Bound Reminders > HW8 due today > HW9 will be posted tomorrow start early program will be slow, so debugging will be slow... Review of previous lectures > Complexity
More informationChapter 20: Binary Trees
Chapter 20: Binary Trees 20.1 Definition and Application of Binary Trees Definition and Application of Binary Trees Binary tree: a nonlinear linked list in which each node may point to 0, 1, or two other
More informationB+ Tree Review. CSE332: Data Abstractions Lecture 10: More B Trees; Hashing. Can do a little better with insert. Adoption for insert
B+ Tree Review CSE2: Data Abstractions Lecture 10: More B Trees; Hashing Dan Grossman Spring 2010 M-ary tree with room for L data items at each leaf Order property: Subtree between keys x and y contains
More informationCMSC 754 Computational Geometry 1
CMSC 754 Computational Geometry 1 David M. Mount Department of Computer Science University of Maryland Fall 2005 1 Copyright, David M. Mount, 2005, Dept. of Computer Science, University of Maryland, College
More information