Combinatorial Algorithms Unate Covering Binate Covering Graph Coloring Maximum Clique.

Slides:



Advertisements
Similar presentations
Techniques for Combinational Logic Optimization
Advertisements

Three Special Functions
Minimization of Circuits
FUNCTION OPTIMIZATION Switching Function Representations can be Classified in Terms of Levels Number of Levels, k, is Number of Unique Boolean (binary)
CSEE 4823 Advanced Logic Design Handout: Lecture #2 1/22/15
Prof. Sin-Min Lee Department of Computer Science
Chapter 3 Simplification of Switching Functions
NP-Complete Problems Reading Material: Chapter 10 Sections 1, 2, 3, and 4 only.
ENEE 6441 On Quine-McCluskey Method > Goal: find a minimum SOP form > Why We Need to Find all PIs? f(w,x,y,z) = x’y’ +wxy+x’yz’+wy’z = x’y’+x’z’+wxy+wy’z.

Computer Engineering (Logic Circuits) (Karnaugh Map)
Logic gate level Part 3: minimizing circuits. Improving circuit efficiency Efficiency of combinatorial circuit depends on number & arrangement of its.
Lecture 3. Boolean Algebra, Logic Gates
ECE Synthesis & Verification, Lecture 17 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Technology.
Propositional Calculus Math Foundations of Computer Science.
Simplifying Boolean Expressions Using K-Map Method
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Two-Level Minimization I.
Two Level Logic Optimization. Two-Level Logic Minimization PLA Implementation Ex: F 0 = A + B’C’ F 1 = AC’ + AB F 2 = B’C’ + AB product term AB, AC’,
2-Level Minimization Classic Problem in Switching Theory
1 Simplification of Boolean Functions:  An implementation of a Boolean Function requires the use of logic gates.  A smaller number of gates, with each.
Synthesis of Two-Level Circuits
Lecture 22 More NPC problems
1 © 2015 B. Wilkinson Modification date: January 1, 2015 Designing combinational circuits Logic circuits whose outputs are dependent upon the values placed.
Quine-McCluskey (Tabular) Minimization Two step process utilizing tabular listings to: Identify prime implicants (implicant tables) Identify minimal PI.
2-Level Minimization Classic Problem in Switching Theory Tabulation Method Transformed to “Set Covering Problem” “Set Covering Problem” is Intractable.
Combinational Problems: Unate Covering, Binate Covering, Graph Coloring and Maximum Cliques Example of application: Decomposition.
EMIS 8373: Integer Programming NP-Complete Problems updated 21 April 2009.
Two Level Networks. Two-Level Networks Slide 2 SOPs A function has, in general many SOPs Functions can be simplified using Boolean algebra Compare the.
Circuit Minimization. It is often uneconomical to realize a logic directly from the first logic expression that pops into your head. Canonical sum and.
Computer Engineering (Logic Circuits) (Karnaugh Map)
CHAPTER 3: PRINCIPLES OF COMBINATIONAL LOGIC
Lecture 4 Nand, Nor Gates, CS147 Circuit Minimization and
CS1Q Computer Systems Lecture 7
February 2, 2004CS 2311 Karnaugh maps Last time we saw applications of Boolean logic to circuit design. – The basic Boolean operations are AND, OR and.
NP-Complete Problems. Running Time v.s. Input Size Concern with problems whose complexity may be described by exponential functions. Tractable problems.
June 11, 2002© Howard Huang1 Boolean algebra Last time we talked about Boolean functions, Boolean expressions, and truth tables. Today we’ll learn.
Karnaugh Maps (K-Maps)
CS231 Boolean Algebra1 Summary so far So far: – A bunch of Boolean algebra trickery for simplifying expressions and circuits – The algebra guarantees us.
CSE 589 Part V One of the symptoms of an approaching nervous breakdown is the belief that one’s work is terribly important. Bertrand Russell.
June 12, 2002© Howard Huang1 Karnaugh maps Last time we saw applications of Boolean logic to circuit design. – The basic Boolean operations are.
Digital Logic (Karnaugh Map). Karnaugh Maps Karnaugh maps (K-maps) are graphical representations of boolean functions. One map cell corresponds to a row.
Lecture # 5 University of Tehran
©2010 Cengage Learning SLIDES FOR CHAPTER 6 QUINE-McCLUSKEY METHOD Click the mouse to move to the next page. Use the ESC key to exit this chapter. This.
CHAPTER 2 Boolean algebra and Logic gates
CHAPTER 6 Quine-McCluskey Method
Chapter 11 (Part 1): Boolean Algebra
Lecture 4 Nand, Nor Gates, CS147 Circuit Minimization and
DeMorgan’s Theorem DeMorgan’s 2nd Theorem
Computer Organisation
Prof. Sin-Min Lee Department of Computer Science
Richard Anderson Lecture 26 NP-Completeness
QUINE-McCLUSKEY METHOD
CS 352 Introduction to Logic Design
Richard Anderson Lecture 26 NP-Completeness
Circuit analysis summary
Boolean algebra Last time we talked about Boolean functions, Boolean expressions, and truth tables. Today we’ll learn how to how use Boolean algebra to.
Example of application: Decomposition
Propositional Calculus: Boolean Algebra and Simplification
Synthesis of Two Level Circuits
Richard Anderson Lecture 25 NP-Completeness
Functions Computers take inputs and produce outputs, just like functions in math! Mathematical functions can be expressed in two ways: We can represent.
ECB2212-Digital Electronics
Minimization of Switching Functions
Combinational Problems: Unate Covering, Binate Covering, Graph Coloring and Maximum Cliques Unit 6 part B.
From now on: Combinatorial Circuits:
Overview Part 2 – Circuit Optimization
Karnaugh maps Last time we saw applications of Boolean logic to circuit design. The basic Boolean operations are AND, OR and NOT. These operations can.
Basic circuit analysis and design
Circuit Simplification and
Presentation transcript:

Combinatorial Algorithms Unate Covering Binate Covering Graph Coloring Maximum Clique

Example As an Example, let’s consider the formula: F(x,y,z) = xyz + xyz + xyz + xyz + xyz The complete sum of formula: F(x,y,z) = xy + xz + yz + yz Let P 1 = xy P 2 = xz P 3 = yz P 4 = yz  F(x,y,z) = P 1 + P 2 + P 3 + P 4 These are the subset of primes that satisfy the given requirement and are called SOP COVER or COVER. To Solve the equation for the minimum cost that covers all rows, we express the above equations in matrix form and that matrix is called CONSTRAINT MATRIX.

Constraint Matrix OR Covering Matrix The CONSTRAINT MATRIX is: A CONSTRAINT MATRIX is a matrix that describes the conditions or the constraint that a cover must satisfy, and is also sometimes called Covering Matrix.

Constraint Equation Constraint Matrix can be written as Switching function : (P 1 + P 2 )( P 2 + P 3 ) (P 1 + P 4 ) P 3 P 4 The equation is called Constraint Equation of the Covering Problem. From the above Matrix or Equation we find the subset of columns of minimum cost that covers all the rows.”

Unate Covering and Binate Covering

Defining Set Covering Problem Definition: The Set Covering problem consists of finding a minimal cost subset of Y that covers X. Where X is a Set, Y  2 X and Cost is the Cost of function defined on Y. The covering matrix associated with the set covering problem has rows labeled with elements of X and columns labeled with elements of Y, such that the element [x,y] of the matrix is equal to 1 iff y covers x, where x, y are the elements of set X and Y respectively. X Y

Unate Covering and Binate Covering In the constraint equation for example: (P 1 + P 2 )( P 2 + P 3 ) (P 1 + P 4 ) P 3 P 4 = 1 All the variables appear in positive form (Nocomplement)--- –We have a Unate function and the kind of problem is called Unate covering(UCP). In the constraint equation for example: f(x1,x2,x3,x4) = (x1+x3+x4)*(x1+x2+x4)*(x2+x3+x4)*(x2+x3+x4) All the variables appear in positive form and negative form –We have a Binate function and the kind of problem is called Binate covering(BCP).

Methods that simplify the solution of CP For any problems in logic synthesis(2-Level or Multilevel minimization) the general steps required are: (i)Finding a table of all prime implicants. (ii) Form a covering matrix (PI vs Minterm) and solve the covering problem. For solving covering problem various techniques and algorithms are used. The Quine’s theorem helps us in finding a minimum cover that is prime!.

Methods that simplify the solution of CP Petrick’s method can also be applied to find minimum solution In the constraint equation for example: (P1 + P2)*( P2 + P3 ) *(P1 + P4) * P3 * P4 = 1 If solved using Petrick’s method gives us the minimum solution,which is simplified to (P1 + P2) P3 P4 = 1  Each product term is a solution! But this method is not practical for large problems as opening the parenthesis involves an exponential number of operations.

Methods that simplify the solution of CP Branch and Bound algorithm can also be used to choose the best combination of PI’S in case we have a cyclic core. Reduction of covering matrix using branch and bound algorithm: –Step (i) –Step (i) From the constraint matrix find the essential PI’S and Eliminate the rows covered by “Essential columns”. –Step (ii) –Step (ii) Elimination of the rows through “Row dominance”. –Step (iii) –Step (iii) Elimination of the rows through “Column dominance”.

Applications of Covering Problem (Unate or Binate) The Covering problems(CP) (Unate or Binate) has several important applications in logic synthesis such as: (i) 2-level minimization(Logic or Boolean relation). (ii) Three level NAND implementation. (iii)Three level CDEC minimization(Conditional decoder). (iv) Minimum test set generation. (v) Boolean and multiple -valued Decomposition. (vi) Physical and technology mapping. (vii) State minimization. (viii) Exact encoding (ix) DAG covering

Example of Set covering Problem in Testing Problem: Finding the minimum test set to detect all possible stuck-at faults in a circuit that has 3 lines, each line can be stuck-at-0 or stuck -at-1. Assumption : The gate is an EX_OR gate. Logic Diagram of Gate: ABAB a b c C Circuit Under Test

Problem Explanation of the circuit: The circuit has two input lines (A,B) and the output(C ). Truth Table:

Problem Here a 0,a 1,b 0,b 1,c 0,c 1 are the possible Inputs and Outputs to the circuit. If at all there is a fault in the Input or the Output then the fault is represented by x in the below table. T0T0 T2T2 T3T3 T1T1

Problem Here we can say a 0 is detected by T 2,T 3 a 1 is detected by T 0,T 1 b 0 is detected by T 1,T 3 b 1 is detected by T 0,T 2 c 0 is detected by T 2,T 1 c 1 is detected by T 1,T 3  (T 2 +T 3 )(T 0 +T 1 )(T 1 +T 3 )(T 0 +T 2 )(T 1 +T 2 )(T 0 +T 3 )=1 This is the unate covering problem as the formula contains no letters that appears in both phases.

Problem The Best Covering! Many solution are present which has the same cost. Here we take the solution to be T 0 T 1 T 2 which would detect all the stuck at faults in the circuit.

Binate Covering Problem Definition: The Binate Covering Problem(BCP) consists of finding a minimal cost n -tuple that values f to 1. The covering matrix M of the binate covering problem is a matrix made of m rows labeled with the sum s i, and of n columns labeled with the variables x j. An element M[i,j] of the matrix is equal to 1 if (x i  s i ), to 0 if (x j  s i ) and to -- otherwise. Initially the BCP was known as COVERING WITH CLOSURE in which there was a restrictive assumption that one literal at most appeared complemented in the clause of the function.

Binate Covering Problem The binate covering matrix is represented as for function (x 1 +x 3 +x 4 )(x 1 ’+x 2 +x 4 ’)(x 2 +x 3 ’+x 4 )(x 2 ’+x 3 +x 4 ’)

Binate Covering Problem (x 3 ’+x 4 ’)*(x 4 ’+x 5 ’)*(x 3 +x 4 +x 5 ) (x 2 +x 4 +x 6 )*(x 2 +x 5 )*(x 6 )Consider the problem (x 3 ’+x 4 ’)*(x 4 ’+x 5 ’)*(x 3 +x 4 +x 5 ) (x 2 +x 4 +x 6 )*(x 2 +x 5 )*(x 6 ) The Covering Matrix is shown with horizontal rows corresponding to each term of the expression. From the shown matrix we find x 1 =0 and x 6 = 1 removing the said row and columns we get 4 by 4 matrix which is shown in next slide.

Binate Covering Problem In figure shown By the column dominance x 4 =0 and other rows are removed as all the elements are zeros and we are left with x 2,x 3 and x 5. By column dominance we can say that x 2 =x 3 =0 finally which yields x 5 =1. The complete solution x 1 =x 2 =x 3 =x 4 =0 and x 5 =x 6 =1

Binate Covering Problem Unate Covering may or may not have a solutionUnate Covering always has a solution whereas Binate covering may or may not have a solution. For Example: (x1+x2)(x1+x2’)(x1’+x2)(x1’+x2’) identically zerono solution if simplified represents a function that is identically zero. Hence the problem has no solution.

Graph Coloring

A Graph G(V,E) consists of a set of nodes V and a set of edges E. Graph Coloring: Is an assignment of colors to the vertices of G, one color to each vertex, so that adjacent vertices are assigned different colors. Chromatic number : Minimum number of colors needed for coloring. Given a graph G = (V,E) a subgraph H=(U,F) can be constructed by setting U subset of V and F subset of E. A Clique is complete subgraph of G.

Graph Coloring A Clique is maximal size clique or maximal clique if is is not a subgraph of another clique. Maximum Clique is a clique whose size is the largest possible. There are two graph coloring problems: – Exact Program (EXOC) and –approximate program DOM.

Graph Coloring Applications for Graph Coloring: –Two level minimization –Three level minimization –Minimum test Set –Boolean and Multiple valued decomposition. As an Example lets considering graph coloring problem.

Graph Coloring dominationsConcept of dominations to color an non incompatibility graph. Definition 1:Definition 1: Node A in the incompatibility graph covers node B if –(i) A and B have no common edges. –(ii) A has edges with all the nodes that B has edges with. –(iii) A has at least one more edge than B. If any node A in the incompatibility graph covers any other node B in the graph, then node B can be removed from the graph.

Graph Coloring Definition 2: Pseudo- covering.Definition 2: if the above conditions (i) and (ii) are true and A and B have the same number of nodes, then it is called Pseudo- covering. If there is a pseudo covering any one of the nodes A and B can be removed.

Example of Graph Coloring Graph:

Example of Graph Coloring In the given graph 1 dominates 3 and 3 can be removed. We are left with the graph whose nodes are 1,2,4,5,6. 2 and 5 are pseudo covering nodes  2 and 5 of same color. and 4 and 6 are pseudo covering nodes  4 and 6 of same color. the final graph contains nodes 1,2,4. It is a complete graph and can be colored with 3 colors. and since 2 and 5 are pseudo nodes they are given same color 4 and 6 are pseudo nodes  4,6 are of same color

Example of Graph Coloring Final Graph :

Maximum Clique compatibility graphColoring of the incompatability graph  Finding cover with maximum clique  Clique partitioning of compatibility graph. Advantage of using maximum clique is that it helps in finding neighbouring information.

TANT Networks

Conclusions All the four combinatorial algorithms can be used in logic synthesis for minimization of a function, These four methods can also be used to finding the column multiplicity in functional decomposition. Graph coloring can be used for FSM minimization.

What to learn? What to learn? How to see the possibility of using any of these problem formulations as parts of new problems from real life that may be given to you Descartes formulated the method:“Every problem can be converted to a set of equations. Next the set can be converted to one equation and solved.” Boole proposed to use this method to logic problems. The Petrick function, tautology, satisfiability are special problems within the area of Boolean Equations. These methods, based on tree branchings or solving algebraically formulas, can be extended to multiple-valued and other types of logic, they are very general. It is more important to understand how to convert any problems to these combinational problems than to remember efficient algorithms. Efficient algorithms can be found in hundreds of books and software collections, many in public domain. The covering, coloring, maximum clique and Boolean equations are used in hundreds of industrial and academic programs not only in logic synthesis but also in test, communication, computer networking, robotics, industrial applications, image processing and pattern recognition. They are also solved using mathematical programming, Genetic Algorithm and Artificial Intelligence techniques

Sources Seyda Mohsida