Document

advertisement
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
pq
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”.
pq
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
pq
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.”
pq
31
Truth Table for Conditional
p
q
pq
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.
pq
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
pq



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
pqr
( p  q)  r
pq 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
pq
63
การตรวจสอบความสมมูลของประพจน์

ใช้ Truth table
( p  q)
p  q
64
Example: Logical Equivalence
65
Example: Logical Equivalence
p  q
pq
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
pF  p

Domination Laws
p T  T
pF  F
72
Important Logical Equivalences

Idempotent Laws
p p  p
p p  p

Double Negation Law
(p)  p
73
Important Logical Equivalences

Commutative Laws
pq  q p
pq  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

จงหาค่าความจริ งของ xPx
เมื่อกาหนดให้ 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

จงหาค่าความจริ งของ xPx 
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
xPx  Qx  xP( x)  xQ( x)
100
Negating Quantified Expressions
xP( x)  xP( x)
xP( x)  xP( x)
101
De Morgan’s Laws for Quantifiers
xP(x)  P( x1 )  P( x2 )  ...  P( xn )
 P( x1 )  P( x2 )  ... P( xn )
 xP( x)
102
De Morgan’s Laws for Quantifiers
xP(x)  P( x1 )  P( x2 )  ... P( xn )
 P( x1 )  P( x2 )  ...  P( xn )
 xP( x)
103
De Morgan’s Laws for Quantifiers
104
1.4 Nested Quantifiers
105
Nested Quantifiers
xy( 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
xyP( x, y)  yxP( x, y)
xyP( x, y)  yxP( x, y)
107
Order of Quantifiers
xyP( x, y )
Not equivalent to
yxP( x, y )
108
Example

กาหนดให้ Q(x,y) หมายถึง “x+y=0”
จงบอกค่าความจริ งของ statement ต่อไปนี้
xyP( x, y )
yxP( 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
Download