1 / 50

461191 Discrete Math Lecture 12: Boolean Algebra

461191 Discrete Math Lecture 12: Boolean Algebra. San Ratanasanya CS, KMUTNB. Today’s topics. Review of Trees Boolean Algebra Quizzes Final Exam is in 3 weeks! Please be prepared!. 2. Trees. No circuit No multiple edges No loops

linda-hicks
Download Presentation

461191 Discrete Math Lecture 12: Boolean Algebra

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. 461191 Discrete MathLecture 12: Boolean Algebra San Ratanasanya CS, KMUTNB

  2. Today’s topics • Review of Trees • Boolean Algebra • Quizzes • Final Exam is in 3 weeks! Please be prepared! 2

  3. Trees • No circuit • No multiple edges • No loops • Tree คือ Connected Undirected Graph ที่ไม่มี Simple Circuit • สำหรับ Undirected Graph ที่ไม่มี Simple Circuit แต่ไม่ Connect กัน เราสามารถเรียกว่าเป็น Tree หลายอัน และในกรณีนี้ เราเรียก Tree เหล่านั้นว่า Forest Simple Graph

  4. Rooted Tree • เป็น Tree ที่มีหนึ่ง Vertex กำหนดให้เป็น Root และทุกๆ Edge จะมีทิศทางออกมาจาก Root นั้น • Root • Ancestor, Descendant • Parent, Child, Sibling • Internal Vertex, Leaf • Subtree • Level, Height

  5. More Trees • M-ary Tree คือ Tree ที่ทุกๆ Internal Vertex มี Childrenไม่เกิน m children และจะเรียกว่าเป็น Full M-aryTree ก็ต่อเมื่อ ทุกๆ Internal Vertex มี mchildren • Ordered Root Tree คือ Rooted Tree ที่ Children ในแต่ละ Internal Vertex มีการจัดลำดับ ซึ่งปกติเราจะจัดเรียงจากซ้ายไปขวา • Balanced Tree คือ Tree ที่มี Leaf อยู่ที่ Level h หรือ h-1 เท่านั้น

  6. Examples

  7. Tree Properties • Tree ที่มี nvertex จะมี n-1 edges • Full m-ary Tree ที่มี i Internal Vertices จะมี vertex ทั้งหมด n = mi + 1 vertex • ถ้า Full m-ary Tree มี n vertices, จะมี i = (n - 1)/m internal vertices และ l = ((m - 1)n + 1)/m leaves • ถ้า Full m-ary Tree มี i internal vertices, จะมี n = mi + 1 vertices และ l = (m - 1)i + 1 leaves • ถ้า Full m-ary Tree มี l leaves, จะมี n = (ml – 1)/(m – 1) vertices และ i = (l - 1)/(m - 1) internal vertices • M-ary Tree ที่มีความสูง h จะมี leaf ได้มากที่สุดเท่ากับ mh • M-ary Tree ที่มีความสูง h และมี l leaves, จะได้ว่า h  logml ถ้าเป็น Full M-ary Balanced Tree, h = logml

  8. Tree Modeling and Applications • Binary Search Tree • Decision Tree • Prefix Code: Huffman Coding • GameTrees

  9. Tree Traversal • Preorder • Inorder • Postorder 723*-4^93/+ = ?

  10. Spanning Tree (ต้นไม้ทอดข้าม) • ถ้าให้ G เป็น Simple Graph แล้ว เราจะเรียก Tree ที่ประกอบไปด้วย vertex ทุก vertex ใน G ว่า Spanning Tree ซึ่งก็คือ Subgraph ของ G นั่นเอง จะเห็นได้ว่าเราสามารถหา Spanning Tree ของ G ได้หลายอัน • เราสามารถหา Spanning Tree ได้จาก Depth-First Search หรือ Breadth-First Search

  11. Minimum Spanning Tree • ถ้าหากว่า Graph มีน้ำหนักแล้ว Spanning Tree ก็จะมีน้ำหนักด้วย ดังนั้น Minimum Spanning Tree คือ Spanning Tree ที่มีน้ำหนักน้อยที่สุด ซึ่งคำนวณจากผลรวมของน้ำหนักของเส้นเชื่อมทั้งหมด โดยทั่วไปเราจะหา Minimum Spanning Tree จาก • Prim’s Algorithm หรือ • Kruskal’s Algorithm • หลักการของทั้ง 2 วิธีการดังกล่าวคล้ายกัน ต่างกันตรงที่ Kruskal’s จะเลือก edge ที่มีน้ำหนักน้อยที่สุดโดยไม่สนใจว่าจะสามารถเชื่อมต่อกับ edge ที่มีอยู่แล้วได้หรือไม่ก่อน • Kruskal’s จะมีประสิทธิภาพดีกว่า Prim’s เมื่อมีจำนวน edge น้อยๆ หรือกราฟมีลักษณะแผ่กว้าง (Sprase)

  12. Examples Prim’s Algorithm Kruskal’s Algorithm

  13. Boolean Algebra

  14. Boolean Algebra เป็นกฎที่ใช้ในการทำงานกับ set { 0, 1 } หรือ { F, T } Boolean Literal= Boolean Variable เช่น x, y การดำเนินการที่ใช้บ่อยที่สุด 3 อย่าง ได้แก่ Complement and Boolean product (AND) 1·1 = 1, 1·0 = 0, 0·1 = 0, 0·0 = 0 Boolean sum (OR) 1+1 = 1, 1+0 = 1, 0+1 = 1, 0+0 = 0 ลำดับของตัวดำเนินการ (Precedence): complement, AND, OR 14

  15. Example: 15

  16. Boolean Algebra v.s. Compound Proposition 16

  17. Boolean Identities 17

  18. Boolean Identities 18

  19. Exercise จงหาค่าของนิพจน์ต่อไปนี้ 1 คำตอบ: A) 1 , B) 1, C) 0, D) 0 2 จงหาค่าของ x ที่ทำให้นิพจน์เหล่านี้เป็นจริง คำตอบ: • X = 0 • X= 0 • X = 0,1 • None 19

  20. Exercise จงเปลี่ยนสมการในข้อ a) ให้เป็นประพจน์ที่มีความหมายเดียวกัน โดยให้ 0 = False, 1 = True, Boolean sum = disjunction, Boolean product =conjunction, Boolean complementation = negation, และ Equal sign = Equivalence sign 3 คำตอบ: 0·1 + 1·1 0+1 = 1 คำตอบ: (~TΛ~F) V (T·~F) = T 20

  21. Exercise 4 คำตอบ: 21

  22. 22

  23. Exercise 5 4 Answer: 23

  24. Exercise Answer: Discrete Mathematics for Computer Science 24

  25. Exercise 6 Answer: 1. X=0, Y=0 2. X=1, Y=1 7 Answer: 25

  26. Exercise 8 Answer: a) x b) c) 0 d) 1 26

  27. Miscelleneous • Functional Completeness คือ set ของ Boolean Operator ที่สามารถแสดง Boolean Function ได้ครบทุกรูปแบบ เช่น {+, , ¯}, {+, ¯}, {, ¯} แต่ {+, ¯} ไม่ใช่ Functionally Complete • จำนวนของ Boolean Function=subset ของ power set ของจำนวน literal (degree) • ภาวะคู่กัน (Duality)edของ Boolean expression e สร้างได้จาก e โดยการ • เปลี่ยน + เป็น  • เปลี่ยน 0 เป็น 1 • ถ้า e1 = e2 แล้ว e1d = e2d • Examples • ถ้า x(x+y) = x แล้ว x + xy = x • Boolean Functions ของ degree 6 จะมีจำนวน =226= 264 = 18,446,744,073,709,551,616 • { | } (NAND) และ {  } (NOR) เป็น functionally complete หรือไม่

  28. Logical Gates Not Gate 28

  29. Logic Gates

  30. Combinational Circuits

  31. Exercises

  32. Adders Half Adder Full Adder

  33. Adders

  34. Example จงหา minterm ที่มีค่าเป็น 1 เมื่อ Representing Boolean Functions • Definitions • Literal (สัญพจน์) หมายถึง ตัวแปร Boolean ใดๆ หรือ ส่วนเติมเต็มของตัวแปรนั้นๆ • Minterm ของตัวแปร Booleanx1, x2, x3, …, xnคือผลคูณ Booleany1, y2, y3, …, ynเมื่อ yi = xiหรือ yi = • ดังนั้น minterm ก็คือผลคูณของ n literals เมื่อแต่ละ literal แทนแต่ละตัวแปร • minterm จะมีทั้งหมด 2n สำหรับ n ตัวแปร • Maxtermของตัวแปร Booleanx1, x2, x3, …, xnคือผลบวก Boolean y1, y2, y3, …, ynเมื่อ yi = xiหรือ yi = • ดังนั้น maxterm ก็คือผลบวกของ n literals เมื่อแต่ละ literal แทนแต่ละตัวแปร • Sum-of-Products Expansion (Disjunctive Normal Form) • Product-of-Sums Expansion (Conjunctive Normal Form) Answer:

  35. Sum-of-Products expansion ผลรวมของ minterm ที่แสดงถึง Boolean Function เรียกว่าการขยายผลรวมของผลคูณ (Sum-of-Products expansion)หรือ Disjunctive Normal Form Solution 1 35

  36. Sum-of-Products expansion Solution 2 36

  37. Product-of-sums expansion ผลคูณของ maxterm ที่แสดงถึง Boolean Function เรียกว่าการขยายผลคูณของผลรวม (Product-of-Sums expansion) หรือ Conjunctive Normal Form 37

  38. Minimizing Circuits • เป้าหมายของการลดรูปวงจร (Minimizing Circuits) ก็เพื่อลดจำนวนของ Logic Gate เพื่อให้เหลือแต่ที่จำเป็นกับวงจรเท่านั้น โดยที่ไม่ทำให้ Boolean Function เปลี่ยนแปลง ซึ่งการลดรูปวงจรนี้จะทำให้จำนวน transistor ที่ใช้ลดลง ขนาดของ chip เล็กลง และ ราคาก็ถูกลงด้วย • เราสามารถใช้ DNF ในการลดรูปวงจรได้ • แต่ในบทนี้เราจะศึกษาการใช้ แผนผังคาร์โนห์ (Karnaugh Map or K-Map) และ Quine-McCluskey Method ในการลดรูปวงจร

  39. K-Map • K-Map เป็นการใช้แผนภาพที่แสดง minterm ของ boolean function และใช้ในการจับกลุ่มของ minterm เพื่อที่จะทำการลดรูปของ minterm โดยมีหลักสำคัญดังนี้ • การจับกลุ่มจะต้องจับระหว่าง cell ที่อยู่ติดกันเท่านั้น นั่นคือ cell ที่มี literal ต่างกันเพียง 1 ตัว • ให้จับกลุ่มที่ใหญ่ที่สุดก่อน โดยสมาชิกของกลุ่มจะมีจำนวนได้ตาม 2iเมื่อ i> 0 • จากนั้นทำการกำจัด literal ที่มีการเปลี่ยนแปลงในแต่ละกลุ่มออก เหลือไว้แต่ literal ที่ไม่มีการเปลี่ยนแปลง • ในการจับกลุ่มควรคำนึงถึง glitch(สัญญาณหลอก) ที่จะเกิดขึ้นเมื่อทำการลดรูปวงจรแล้วด้วย โดยพยายามจับกลุ่มให้ไม่เกิด glitch หรือเกิดน้อยที่สุด (รายละเอียดใน Digital Circuit) นั่นคือการจับกลุ่มโดยไม่ให้มี minterm ตัวเดียวกันเป็นสมาชิกของหลายกลุ่มมากเกินไป หรือจับกลุ่มให้ได้จำนวนกลุ่มน้อยที่สุด

  40. Implicant Essential Prime Implicant Prime Implicant

  41. K-Map : Don’t Care Conditions

  42. Quine-McCluskey • เนื่องจาก K-Map ไม่สามารถนำมาใช้กับการลดรูปวงจรที่มี literal จำนวนมาก (degree  4) ได้อย่างมีประสิทธิภาพเท่าที่ควรเนื่องจากต้องเสียเวลาในการวาดแผนภาพ ในช่วง 1950s Quine และ McCluskey ได้คิดวิธีการแก้ไขปัญหานี้ โดยไม่ต้องใช้แผนภาพ • วิธีการนี้แบ่งออกเป็น 2 ส่วน • หา minterm ทั้งหมดที่น่าจะนำมาใช้ในการลดรูปวงจรได้ โดยจะต้องมี literal ต่างกันเพียง 1 ตัวเท่านั้น และทำการจับกลุ่มพร้อมลดรูปให้เหลือ n-2literal • ทดสอบว่า minterm ใดที่สมควรนำมาใช้ในการลดรูปวงจร โดยทำการตรวจสอบจากกลุ่มที่จับกันแล้วในข้างต้นว่าต้องใช้กลุ่มใดบ้างเพื่อให้ครอบคลุม minterm ทั้งหมดและไม่ทำให้ booleanfunction เปลี่ยนไป • ขั้นตอนโดยละเอียดของวิธีการนี้สามารถศึกษาได้จาก Sec. 11.4 page 779

  43. Example • จงทำการลดรูปของ Boolean Function ด้วยวิธี Quine-McCluskey pair up pair up pair up

  44. Example • จงใช้ Quine-McCluskey เพื่อทำการลดรูป DNF ต่อไปนี้

  45. = หรือ

  46. Homework 11 11.1.11, 11.2.12, 11.1.24-27,11.2.7-11, 11.2.15-16, 11.3.10-11, 11.3.15-18, 11.4.12, 11.4.25, 11.4.30-32 49

  47. Programming Assignment 4 • จงเขียนโปรแกรมเพื่อหา Shortest path ด้วย Dijkstra’s Algorithm • จงเขียนโปรแกรมเพื่อหา Minimum SpanningTree ด้วย Prim’s และ Kruskal’s Algorithm • จงเขียนโปรแกรมเพื่อถอดรหัส Huffman โดยใช้ตารางในแบบฝึกหัด 10.2.27 • จงเขียนโปรแกรมเพื่อแสดง Boolean Function ที่เป็นไปได้ทั้งหมดสำหรับ Boolean Function ที่มี degree ไม่เกิน 3 • จงเขียนโปรแกรมเพื่อตรวจสอบความถูกต้องของข้อความตามหลักภาษาในแบบฝึกหัด 12.3.22 • จงเขียนโปรแกรมเพื่อตรวจสอบความถูกต้องของข้อความตามหลักภาษาในแบบฝึกหัด 12.3.48 • วิธีการส่งงาน: • - ส่งทาง e-mail ใช้ชื่อ Subject ว่า 461191 Programming Assignment 3 • ให้ทำการบีบอัดไฟล์ต่างๆเป็นไฟล์เดียว โดยใช้ format เป็น zip หรือ rar • ไฟล์ที่ทำการบีบอัดให้ใช้ชื่อไฟล์เป็นรหัสนศ. Each program should be submitted with a report showing its code and how it works (some screen shorts plus descriptions).

More Related