1 / 22

CS1022 Computer Programming & Principles

CS1022 Computer Programming & Principles. Lecture 9.1 Boolean Algebra (1). Plan of lecture. Introduction Boolean operations Boolean algebra vs. logic Boolean expressions Laws of Boolean algebra Boolean functions Disjunctive normal form. Introduction. Boolean algebra

abbott
Télécharger la présentation

CS1022 Computer Programming & Principles

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS1022Computer Programming & Principles Lecture 9.1 Boolean Algebra (1)

  2. Plan of lecture • Introduction • Boolean operations • Boolean algebra vs. logic • Boolean expressions • Laws of Boolean algebra • Boolean functions • Disjunctive normal form CS1022

  3. Introduction Boolean algebra • Is a logical calculus • Structures and rules applied to logical symbols • Just like ordinary algebra is applied to numbers • Uses a two-valued set {0, 1} • Operations: conjunction, disjunction and negation • Is related with • Propositional logic and • Algebra of sets • Underpins logical circuits (electronic components) CS1022

  4. Boolean operations (1) • Boolean algebra uses set B0, 1 of values • Operations: • Disjunction (), • Conjunction () and • Negation () CS1022

  5. Boolean operations (2) • If p and q are Boolean variables • “Variables” because they vary over set B0, 1 • That is, p, q B • We can build the following tables: CS1022

  6. Boolean algebra vs. logic Boolean algebra is similar to propositional logic • Boolean variables p, q,... like propositions P, Q,... • Values B0, 1 like F (false) and T (true) Operators are similar: • pqsimilar to P orQ • pq similar to P and Q • p similar to not P Tables also called “truth tables” (as in logic) CS1022

  7. Boolean expressions • As in logic, we can build more complex constructs from basic variables and operators , and  • Complex constructs are called Boolean expressions • A recursive definition for Boolean expressions: • All Boolean variables (p, q, r, s, etc.) are Boolean exprns. • If αand β are Boolean expressions then • α is a Boolean expression (and so is β) • (α β) is a Boolean expression • (α β) is a Boolean expression • Example: ((p q) (r  s)) CS1022

  8. Equivalence of expressions • Two Boolean expressions are equivalent if they have the same truth table • The final outcome of the expressions are the same, for any value the variables have • We can prove mechanically if any two expressions are equivalent or not • “Mechanic” means “a machine (computer) can do it” • No need to be creative, clever, etc. • An algorithm explains how to prove equivalence CS1022

  9. Laws of Boolean algebra (1) • Some equivalences are very useful • They simplify expressions, making life easier • They allow us to manipulate expressions • Some equivalences are “laws of Boolean algebra” • We have, in addition to truth-tables, means to operate on expressions • Because equivalence is guaranteed we won’t need to worry about changing the meaning CS1022

  10. Laws of Boolean algebra (2) CS1022

  11. Laws of Boolean algebra (3) • Do they look familiar? • Logics, sets & Boolean algebra are all related • Summary of correspondence: CS1022

  12. Laws of Boolean algebra (4) • Very important: • Laws shown with Boolean variables (p, q, r, etc.) • However, each Boolean variable stand for an expression • Wherever you see p, q, r, etc., you should think of “place holders” for any complex expression • A more “correct” way to represent e.g. idempotent law:     CS1022

  13. Laws of Boolean algebra (5) • What do we mean by “place holders”? • The laws are “templates” which can be used in many different situations • For example: ((p  q)  (q  s))  ((p  q)  (q  s)) ((p  q)  (q  s))  ((p  q)  (q  s))     ((p  q)  (q  s)) ((p  q)  (q  s)) CS1022

  14. Laws of Boolean algebra (6) • We should be able to prove all laws • We know how to build truth tables (lectures 2.1 & 2.2) • Could you work out an algorithm to do this? • There is help at hand... CS1022

  15. Laws of Boolean algebra (7) • Using the laws of Boolean algebra, show that • (p  q)  (p  q) is equivalent to p • Solution: (p  q)  (p  q)  (p  q)  (p  q) De Morgan’s  (p  q)  (p q) since p  p  p  (q  q) Distr. Law  p  0 since (qq)  0  p from def. of  CS1022

  16. Boolean functions (1) • A Boolean function of n variables p1, p2, ..., pn is • A function f : Bn  B • Such that f(p1, p2, ..., pn) is a Boolean expression • Any Boolean expression can be represented in an equivalent standard format • The so-called disjunctive normal form • Format to make it easier to “process” expressions • Simpler, fewer operators, etc. CS1022

  17. Boolean functions (2) • Example: function mintermm(p, q, r) • It has precisely one “1” in the final column of truth table • m(p, q, r)  1 if p  0, q  1 and r  1 • We can define m(p, q, r)  p q  r • The expression p q  r is the product representation of the mintermm CS1022

  18. Boolean functions (3) • Any mintermm(p1, p2, ..., pr) can be represented as a conjunction of the variables pi or their negations • Here’s how: • Look at row where m takes value 1 • If pi  1, then pi is in the product representation of m • If pi  0, then pi is in the product representation of m • We thus have m(p, q, r)  p q  r CS1022

  19. Disjunctive normal form (1) • We can express any Boolean function uniquely as a disjunction (a sequence of “”) of minterms • This is the disjunctive normal form • The idea is simple: • Each minterm is a conjunction (sequence of “”) which, if all holds, then we have output (result) “1” • The disjunction of minterms lists all cases which, if at least one holds, then we have output (result) “1” • In other words: we list all cases when it should be “1” and say “at least one of these is 1” CS1022

  20. Disjunctive normal form (2) • Find disjunctive normal form for (p  q)  (q r) • Let f  (p  q)  (q r). Its truth table is as below • The minterms are (rows with f  1) • p  q r • p  q r • p  q  r • p  q  r • Disjunctive normal form is (p  q r)  (p  q r)  (p  q  r)  (p  q  r) CS1022

  21. Minimal set of operators • Any Boolean function can be represented with Boolean operators , ,  • This is a complete set of operators • “Complete” = “we can represent anything we need” • It is not minimal, though: • De Morgan’s (p  q)  p q, so (p  q)  (p q) • We can define “” in terms of ,  • Minimal set of Boolean operators: ,  or ,  • Actually, any two operators suffice • Minimality comes at a price: expressions become very complex and convoluted CS1022

  22. Further reading • R. Haggarty. “Discrete Mathematics for Computing”. Pearson Education Ltd. 2002. (Chapter 9) • Wikipedia’s entry on Boolean algebra • Wikibooks entry on Boolean algebra CS1022

More Related