Discrete Mathematics for Computer Science คณิ ตศาสตร์ไม่ต่อเนื่องสาหรับวิทยาการคอมพิวเตอร์ San Ratanasanya สรร รัตนสัญญา CS, KMUTNB Course Description (คำอธิบำยรำยวิชำ) พื้นฐำนและรำกฐำนต่ำงๆ ทำงคณิตศำสตร์ทเี่ กีย่ วข้องกับทำงด้ำน วิทยำกำรคอมพิวเตอร์ ตรรกะและกำรพิสจู น์ เซต ฟังก์ชน ั ขัน ้ ตอนวิธี กำรให้เหตุผลแบบอุปนัยควำมสัมพันธ์แบบเวียน บังเกิด ทฤษฎีกรำฟ โครงสร้ำงแบบทรี [ ระบบเลขฐำน เมตริกซ์ เครือ ่ งจักรทัวริง ] Course Objectives (จุดมุง่ หมำยรำยวิชำ) เพือ ่ ศึกษำเครือ ่ งมือทำงคณิตศำสตร์ตำ่ งๆ ทีใ่ ช้ในกำรแก้ปญ ั หำ ทำงคอมพิวเตอร์ เพือ ่ เป็ นพื้นฐำนในกำรศึกษำ วิเครำะห์และออกแบบโครงสร้ำง ข้อมูลรวมถึงขัน ้ ตอนวิธีกำรแก้ปญ ั หำทำงคอมพิวเตอร์ เพือ ่ เป็ นพื้นฐำนในกำรออกแบบหน่ วยประมวลผลกลำง และ ชุดคำสั่งของคอมพิวเตอร์ Course Outline (โครงร่ำงรำยวิชำ) Tentative Logics and Proofs Sets, Functions, Sequences, and Sums Algorithm, the Integers, and Matrices Induction and Recursion Counting and Advance Counting Techniques Discrete Probability Relations Graphs and Trees Boolean Algebra Modeling Computation Textbooks Main Text Kenneth H. Rosen, Discrete Mathematics and Its Applications, 6th edition, McGrawHill, 2006 Supplementary Any related textbooks Other Details Office Hours Instructor: TA: TBA TBA Contact Info Class Agreement Assignments Grading Class webpage See Syllabus http://sailom4.cs.kmutnb.ac.th/Members/srs/s2y2008/index_html What and Why Discrete Math? Discrete หมำยควำมว่ำ ไม่ตอ่ เนื่อง (not continuous) สิง่ ทีจ่ บั ต้องได้ นับได้ วัดได้ เป็ นจำนวน เต็มหน่ วย รูป ้ ริมำณแน่ ชดั เช่น 1, 2, 3,… หรือ 2.1, 2.2, 2.3,… True, False Computer มีวธิ ก ี ำรทำงำนแบบ Discrete เรำศึกษำเครือ ่ งมือทำงคณิตศำสตร์ทม ี่ ลี กั ษณะเป็ น Discrete เพือ ่ เป็ นพื้นฐำนในกำรทำควำมเข้ำใจกำร ทำงำน กำรวิเครำะห์และออกแบบวิธก ี ำรเพือ ่ แก้ปญ ั หำ กำรทำงำนของ Computer Discrete Math in Real World Internet Computer Graphics Image Processing and Computer Vision Computer Security Database Compiler Design Computer Networking AI and Robotics Etc. Today’s topics Review of Logics and Proofs (Ch. 1) Propositional Logic Propositional Equivalences Predicates and Quantifiers Nested Quantifiers [Rules of Inference] [Introduction to Proofs] [Proof Methods and Strategy] Propositional Logic : Overview Propositional Logic is the logic of compound statements built from simpler statements using Boolean connectives. Applications: Design of digital electronic circuits. Expressing conditions in programs. Queries to databases & search engines. Logic เป็ นพืน ้ ฐานของการให ้เหตุผลทาง คณิตศาสตร์ ใชส้ าหรับ Design of computing machines/circuits Specification of systems Artificial intelligence Construction of computer program Programming languages Proof Makes up a correct mathematical argument Once we prove a mathematical statement is true, we call it a theorem Knowing the proof of a theorem makes it possible to modify the result to fit new situations Proofs play an essential role in the development of new ideas ควำมสำคัญของ Proof ใน Computer Science Plays essential roles when we verify that computer programs produce the correct output for all possible input values when we show that algorithms always produce correct result when we establish the security of a system when we create artificial intelligence Automated reasoning systems have been constructed that allow computers to construct their own proofs Sentence (ประโยค) Declarative Sentence – ประโยคบอกเล่า Exclamatory Sentence – ประโยคอุทาน โอ ้! พระเจ ้ายอด มันจอร์จมาก Interrogative Sentence – ประโยคคาถาม เรากาลังเรียนวิชา Discrete Math วันนีเ้ ป็ นวันทีเ่ ท่าไหร่ Imperative Sentence – ประโยคยืนยัน, คาสงั่ ื่ สาร กรุณาปิ ดเครือ ่ งมือสอ ห ้ามคุย What is Proposition ? Definition A proposition (p, q, r, …) is simply a statement (i.e., a declarative sentence) with a definite meaning, having a truth value that’s either true (T) or false (F) (never both, neither, or somewhere in between). [In probability theory, we assign degrees of certainty to propositions. For now: True/False only!] สรุปคือ ในตรรกศำสตร์ proposition (ประพจน์) เป็ น ประโยคทีม ่ ีคำ่ ควำมจริงเป็ น จริง หรือ เท็จ เท่ำนัน ้ Examples of Proposition p: วันนีเ้ ป็ นวันอังคาร q: 1+1=4 r: นนทบุรไี ม่ใชเ่ มืองหลวงของประเทศไทย Washington, D.C. is the capital of the United State of America Examples of NOT Proposition ไปกินข ้าวกัน 1+1 หากพวกเรากาลังสบาย จงปรบมือพลัน ไผเน่ a + b = 10 Compound Proposition Compound Proposition คือ ประพจน์ หรือประโยค ทีเ่ กิดจำกกำรเชือ ่ มประพจน์เดีย่ วมำกกว่ำ 1 ประพจน์ เข้ำด้วยกันโดยใช้ตวั เชือ ่ มทำงตรรกวิทยำ Truth Table Has a row for each of the two possible truth values of a proposition Negation Operator (¬) ใช้เป็ นตัวขยำยประโยค not – ไม่ it is not true that… – มันไม่จริงทีว่ ำ่ … Negation of p : ¬p ตัวอย่ำง p: วันนี้เป็ นวันศุกร์ p: มีคนในห้องนี้อย่ำงน้อย 10 คน Truth Table for Negation Logical Connectives/Operators ตัวเชือ ่ มทำงตรรกวิทยำ Conjunction (٨): and และ Disjunction (٧): or หรือ Exclusive Or (): xor Conditional (): if … then ถ้ำ … แล้ว Biconditional (): if and only if ถ้ำและ เพียงแต่ถำ้ , เมือ ่ และต่อเมือ ่ Conjunction Definition: Let p and q be propositions. The conjunction of p and q, denoted by p ٨ q, is the proposition “p and q.” The conjunction p ٨ q is true when both p and q are true and is false otherwise. Truth Table for Conjunction Example: Conjunction p is the proposition “Today is Friday”. q is the proposition “It is 6 PM”. Disjunction Definition: Let p and q be propositions. The disjunction of p and q , denoted by p ٧ q, is the proposition “p or q.” The disjunction p ٧ q is false when both p and q are false and is true otherwise. Truth Table for Disjunction p q pq T T T T F T F T T F F F 26 Example: Disjunction p is the proposition “Today is Friday” q is the proposition “It is 8 PM”. pq 27 Exclusive Or Definition: Let p and q be propositions. The exclusive or of p and q, denoted by p q , is the proposition that is true when exactly one of p and q is true and is false otherwise. 28 Exclusive Or p q pq T T F T F T F T T F F F 29 Example – การเลือกใช้ operator ใน ประโยคภาษาไทย วันนี้ฝนตกและลมแรง ระบายสี ดว้ ยสี แดงหรื อสี เหลือง ห้องนี้สาหรับนักศึกษาภาควิชาคอมพิวเตอร์ และคณิ ตศาสตร์เท่านั้น เสต็กกับ มันอบหรื อขนมปัง 30 Conditional Statement Definition: Let p and q be propositions. The conditional statement p -> q is the proposition “if p, then q.” The condition statement p -> q is false when p is true and q is false, and true otherwise. A conditional statement is also called an “Implication.” pq 31 Truth Table for Conditional p q pq T T T T F F F T T F F T 32 Conditional Statement In the conditional statement p -> q, p is called the hypothesis (or antecedent or premise) and q is called the conclusion (or consequence). 33 Conditional if p then q p only if q p implies q p is sufficient condition for q q is necessary condition for p q, if p q, when p q, whenever p q, provided p 34 Example ถ้าผมได้รับเลือกเป็ นหัวหน้าห้อง, ผมจะเลี้ยงข้าวกลางวันเพื่อน ในห้องทุกคน ถ้าคุณสอบได้คะแนนเต็ม 100, คุณจะได้เกรด A ถ้าวันนี้เป็ นวันเสาร์, พระอาทิตย์จะตกตอนเย็น conclusion is true, truth value of hypothesis does not matters ถ้าวันนี้เป็ นวันเสาร์, พระอาทิตย์จะตกตอนเที่ยง F เฉพาะวันเสาร์ Propositional language is an artificial language. 35 Biconditional Statement Definition: Let p and q be propositions. The biconditional statement p <-> q is the proposition “p if and only if q.” The biconditional statement p <-> q is true when p and q have the same truth values, and is false otherwise. Biconditional statement is also called biimplications. pq 36 Biconditional Statement p <-> q is true when both the conditional statements p -> q and q -> p are true and is false otherwise. ( p q) ( q p) 37 Biconditional Statement p q p« q T T T T F F F T F F F T 38 Biconditional Statement pq p is necessary and sufficient for q if p then q, and conversely p iff q 39 ทบทวน Logical Operators 40 41 Discrete Mathematics for Computer Science 42 Discrete Mathematics for Computer Science 43 Discrete Mathematics for Computer Science 44 Discrete Mathematics for Computer Science 45 Discrete Mathematics for Computer Science 46 Precedence of Logical Operators Operator Precedence 1 2 3 4 5 6 47 Example p q วิธี (คิ pด )q pqr ( p q) r pq r ( p q) r 48 Truth Table for Compound Statement ( p q) ( p q) p q q T T F T T T T F T T F F F T F F F T F F T T F F p q p q ( p q) ( p q) 49 Truth Table for Compound Statement - ลองทาเอง ( p q) (q r ) r p q q r ( p q) (q r ) T F T T F T T F F T F F T F F F T F T F T T T F T F F F T T T p q r T T T F T T T T F F F T F F F F F T T F F T F T F 50 จานวนแถวในตารางค่าความจริ ง (Truth Table) ตารางค่าความจริง สาหรับ compound proposition ที่มีตวั แปร propositional variables จานวน n ตัว จะมีจานวนแถวเป็ น 2n แถว 51 ตัวอย่างการแปลงประโยคให้อยูใ่ นรู ป Compound Statement ถ้าคุณเป็ นนักศึกษาภาควิชาคอมพิวเตอร์และลงทะเบียนเรี ยนวิชา คณิ ตศาสตร์ไม่ต่อเนื่อง คุณจะสามารถพบอาจารย์ผสู ้ อนได้ในวัน อาทิตย์ กาหนดให้ p คือประพจน์ “คุณเป็ นนักศึกษาภาควิชาคอมพิวเตอร์ ” q คือประพจน์ “คุณลงทะเบียนเรี ยนวิชาคณิ ตศาสตร์ ไม่ต่อเนื่อง” r คือประพจน์ “คุณสามารถพบอาจารย์ผสู้ อนได้ในวันอาทิตย์” ( p q) r 52 ตัวอย่างการนาไปใช้ การระบุ system specification/requirement (hardware/software) for system development Logic and Bit Operations Boolean search: web page searching Logic puzzles 53 Example: Logical Puzzle บนเกาะแห่งหนึ่งมีคนสองประเภท คือ knights ที่จะพูดแต่ ความจริ งกับ knaves ที่จะพูดแต่เรื่ องโกหก ถ้าเจอคนสองคนที่ พูดว่า A: B เป็ น knight B: พวกเราทั้งสองคนเป็ นคนคนละประเภทกัน ถามว่า A และ B เป็ นคนประเภทไหน 54 วิธีคิด กาหนดให้ p หมายถึง “A เป็ น knight” q หมายถึง “B เป็ น knight” สมมติวา่ p เป็ นจริ ง (A เป็ น knight) แสดงว่าสิ่ งที่ A พูดเป็ นความจริ งก็คือ B เป็ น knight ซึ่ งหมายถึง q เป็ นจริ ง เมื่อ q เป็ นจริ ง สิ่ งที่ B พูดก็เป็ นความจริ ง (A และ B เป็ นคนละ ประเภทกัน) ซึ่ งเป็ นไปไม่ได้ ดังนั้น สรุ ปได้วา่ p จะต้องเป็ นเท็จเท่านั้น 55 วิธีคิด (ต่อ) หาก p เป็ นเท็จ นัน่ คือ A เป็ น knave ดังนั้นสิ่ งที่ A พูดไม่เป็ นความจริ ง คือ p หรื อ “B เป็ น knight” เป็ นเท็จ แปลได้วา่ “B เป็ น knave” เมื่อ B เป็ น knave สิ่ งที่ B พูดก็เป็ นเท็จ นัน่ คือ q หรื อ “A และ B เป็ นคนละประเภทกัน” เป็ นเท็จ ดังนั้น สรุ ปคาตอบได้วา่ ทั้ง A และ B เป็ น knave เหมือนกัน 56 1.2 Propositional Equivalences 58 ประเภทของ Compound Propositions Definition: A compound proposition that is always true, no matter what the truth values of the propositions that occur in it, is called a tautology. A compound proposition that is always false is called a contradiction. A compound proposition that is neither a tautology nor a contradiction is called a contingency 59 Example: Tautology p p p p T F T F T T 60 Example: Contradiction p p p p T F F F T F 61 ความสมมูล Logically Equivalent Definition: The compound propositions p and q are called logically equivalent if p q is a tautology. The notation p q or p q denotes that p and q are logically equivalent. 62 Logically Equivalent p q เมือ ่ เป็ น tautology pq 63 การตรวจสอบความสมมูลของประพจน์ ใช้ Truth table ( p q) p q 64 Example: Logical Equivalence 65 Example: Logical Equivalence p q pq 66 Example: Logical Equivalence p q Discrete Mathematics for Computer Science 67 Example: Logical Equivalence p q r p q p r 68 Example: Logical Equivalence Discrete Mathematics for Computer Science 69 กฎของการสมมูล 70 De Morgan’s Law ( p q) p q ( p q) p q พิสูจน์วา่ กฏของ De Morgan เป็ นจริ ง (ใช้ Operation “<-->” แสดงให้เห็นว่าเป็ น tautology โดยใช้ truth table) 71 Important Logical Equivalences Identity Laws p T p pF p Domination Laws p T T pF F 72 Important Logical Equivalences Idempotent Laws p p p p p p Double Negation Law (p) p 73 Important Logical Equivalences Commutative Laws pq q p pq q p Associative Law ( p q) r p (q r ) ( p q) r p (q r ) 74 Important Logical Equivalences Distributive Laws p (q r ) ( p q) ( p r ) p (q r ) ( p q) ( p r ) Discrete Mathematics for Computer Science 75 Important Logical Equivalences Absorption Laws p ( p q) p p ( p q) p Negation Laws p p T p p F 76 Example1 จงแสดงว่า compound proposition ต่อไปนี้สมมูลกัน ( p (p q)) p q 77 Example1 (cont.) ( p (p q)) p (p q) De Morgan’s Law p p q De Morgan’s Law p ( p q) Double Negation Law (p p) (p q) Distributive Law F (p q) Negation Law (p q) F Commutative Law for Disjunction p q Identity Law 78 Table 7: Logical Equivalences Involving Conditional Statements code C1 C2 C3 C4 C5 C6 C7 C8 C9 79 Table 8: Logical Equivalences Involving Biconditionals code B1 B2 B3 B4 80 Example2 จงแสดงว่า p q p q เป็ น tautology ( p q) ( p q) ( p q) ( p q) Table 7: C1 (p q) ( p q) De Morgan’s Law p p q q T T T Associative and Commutative Law for disjunction Commutative Law for disjunction and Negation law Domination law 81 Practice: แสดงว่าประโยคต่อไปนี้สมมูลกัน p q q p และ p 82 1.3 Predicate Calculus: Predicates and Quantifiers 84 Predicate Predicate refers to a property that the subject of the statement can have. x is greater than 3 Subject Predicate (Variable) เขียนแทน “x is greater than 3” ว่า P(x) P(x): Propositional function of P at x 85 Example กาหนดให้ P(x) หมายถึง “x>3” กาหนดให้ A(x) หมายถึง “Student x is a man.” จงบอกค่าความจริ งของ P(4) , P(2) ? จงบอกค่าความจริ งของ A(สมชาย) , A(ส้มโอ) กาหนดให้ Q(x,y) หมายถึง “x=y+3.” จงบอกค่าความจริ งของ Q(1,2) , Q(3,0) 86 Quantifiers Express the value of a predicate over a range of elements on a domain. Universal Quantifiers Existential Quantifiers 87 Definition: Universal Quantifiers The universal quantification of P(x) is the statement “P(x) for all values of x in the domain.” The notation xP(x) denotes the universal quantification of P(x). Here is called the xP(x) as “for all x P(x)” or “for every x P(x).” An element for which P(x) universal quantifier. We read is false is called a counterexample of xP(x) 88 Example: Universal Quantifier กาหนดให้ P(x) หมายถึง “x+1>x.” xP(x) จงบอกค่าความจริ งของ โดนเมนเป็ นจานวนจริ งทั้งหมด กาหนดให้ Q(x) หมายถึง “x<2.” จงบอกค่าความจริ งของ xQ(x) T เมื่อกาหนด F เมื่อกาหนดให้โดเมนคือจานวนจริ งทั้งหมด 90 Note Empty Domain: จงหาค่าของ xP(x) xP(x) มีค่าเป็ นจริ ง เนื่องจากไม่มีสมาชิก x ตัวใดในโดเมนที่ ทาให้ค่า P(x) เป็ น false. ในโดเมนที่ประกอบด้วยสมาชิกได้แก่ x1 , x2 ,..., xn : ค่าของ xP(x) หมายถึง P( x1 ) P( x2 ) ... P( xn ) 91 Example: Universal Quantifier จงหาค่าความจริ งของ xPx เมื่อกาหนดให้ P(x) หมายถึง x 10 2 และโดเมนประกอบด้วยจานวนเต็มบวกที่มีค่าไม่เกิน 4 P(1) P(2) P(3) P(4) T T T F F 92 Definition: Existential Quantifiers The existential quantification of P(x) is the statement “There exists an element x in the domain such that P(x).” We use the notation xP(x) for the existential quantification of P(x). Here is called the existential quantifier. 93 Example: Existential Quantifier กาหนดให้ P(x) หมายถึง “x>3” จงบอกค่าความจริ งของ xP(x) T เมื่อกาหนดให้โดเมนเป็ นจานวนจริ ง กาหนดให้ Q(x) หมายถึง “x=x+1” จงบอกค่าความจริ งของ xQ(x) เมื่อกาหนดโดเมนเป็ นจานวนจริ ง F 94 Note Empty Domain: จงหาค่าของ xP(x) xP(x) มีค่าเป็ น false สาหรับ P(x) ใดๆ เพราะไม่มีสมาชิก ใดที่ทาให้ P(x) มีค่าเป็ น true โดเมนที่ประกอบด้วย x1 , x2 ,..., xn : ค่าของ xP(x) สามารถหาได้จาก P( x1 ) P( x2 ) ... P( xn ) 95 Example: Existential Quantifier จงหาค่าความจริ งของ xPx x 10 2 เมื่อกาหนดให้ P(x) หมายถึง และกาหนดโดเมนประกอบด้วยจานวนเต็มบวกที่ไม่เกิน 4 P(1) P(2) P(3) P(4) F F F T T 96 Truth Value Statement When True When False xP(x) P(x) is true for every x. There is an x for which P(x) is false. xP(x) There is an x for which P(x) is false for every x. P(x) is true. 97 Precedence of Quantifiers Quantifiers and have higher precedence than all logical operators from propositional calculus xP( x) Q( x) [xP( x)] Q( x) 98 Logical Equivalences Involving Quantifiers: Definition Statement involving predicates and quantifiers are logically equivalent if and only if they have the same truth value no matter which predicates are substituted into these statements and which domain of discourse is used for the variables in these propositional functions. We use the notation S Ξ T to indicate that two statement S and T involving predicates and quantifiers are logically equivalent. 99 Logical Equivalences Involving Quantifiers: Example xPx Qx xP( x) xQ( x) 100 Negating Quantified Expressions xP( x) xP( x) xP( x) xP( x) 101 De Morgan’s Laws for Quantifiers xP(x) P( x1 ) P( x2 ) ... P( xn ) P( x1 ) P( x2 ) ... P( xn ) xP( x) 102 De Morgan’s Laws for Quantifiers xP(x) P( x1 ) P( x2 ) ... P( xn ) P( x1 ) P( x2 ) ... P( xn ) xP( x) 103 De Morgan’s Laws for Quantifiers 104 1.4 Nested Quantifiers 105 Nested Quantifiers xy( x y 0) x Q(x) 106 Order of Quantifiers The order of the quantifiers is important, unless all the quantifiers are universal quantifiers or all are existential quantifiers xyP( x, y) yxP( x, y) xyP( x, y) yxP( x, y) 107 Order of Quantifiers xyP( x, y ) Not equivalent to yxP( x, y ) 108 Example กาหนดให้ Q(x,y) หมายถึง “x+y=0” จงบอกค่าความจริ งของ statement ต่อไปนี้ xyP( x, y ) yxP( x, y ) T F 109 Note Discrete Mathematics for Computer Science 110 Exercise Write truth table for p q p p p q p q p q p r p q q r Find if the following pairs are logically equivalent p q q Using truth table: and T Using equivalent rules: q p q p and T 111