R. Johnsonbaugh Discrete Mathematics 5th edition, 2001

Download Report

Transcript R. Johnsonbaugh Discrete Mathematics 5th edition, 2001

888204
Discrete
Structure for Software
Engineering
Chapter 1
Introduction and logic
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
1
คำอธิบำยรำยวิชำ
• ทฤษฎีเซต ลำดับ ฟังก์ชัน ตรรกศำสตร์ กำรเติบโตของฟังก์ชัน
วิธีกำรพิสูจน์ และอุปนัยวิธีทำงคณิตศำสตร์ นิยำมและขั้นตอนวิธี
แบบเรียกซ้ำ วิธีกำรนับและควำมสั มพันธ์ แบบซ้ำ ควำมสั มพันธ์
ควำมรู้เบือ้ งต้ นเกีย่ วกับทฤษฎีกรำฟ และต้ นไม้
• สไลด์ที่ใช้ในรายวิชานี้ท้งั หมด อ้างอิงจากหนังสือของ Kenneth
H. Rosen, Discrete Mathematics & Its
Applications, 5th ed.
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
2
What is discrete mathematics?



Discrete หมายถึง ประกอบด้วยสมาชิกที่ไม่ต่อเนื่อง
Discrete mathematics : วิยตุ คณิต ภินทนคณิตศำสตร์ หรื อ
คณิตศำสตร์ ไม่ ต่อเนื่อง หรื อบางครั้งเรี ยกว่า คณิตศำสตร์ จำกัด เป็ นการศึกษา
โครงสร้างทางคณิ ตศาสตร์ ซ่ ึ งมีลกั ษณะเป็ นค่าเฉพาะเจาะจง และไม่ต่อเนื่อง ซึ่ ง
ไม่ตอ้ งใช้แนวคิดเกี่ยวกับความต่อเนื่อง วัตถุที่ศึกษาส่ วนมากในสาขานี้มกั เป็ น
เซตนับได้ เช่น เซตของจานวนเต็ม(th.wikipedia.org)
Operations:
• Combinatorics: การนับวัตถุที่ไม่ต่อเนื่อง
• Logical operators, relations: การกาหนดความสัมพันธ์ระหว่าง
วัตถุที่ไม่ต่อเนื่อง
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
3
Why Study Discrete Math?




พื้นฐานของการประมวลผลข้อมูลดิจิตอลทุกประเภทคือ:
การดาเนินการแบบไม่ต่อเนื่องของโครงสร้างที่ใช้แทนหน่วยความจา
คอมพิวเตอร์
เป็ นแนวคิดพื้นฐานสาหรับสาขาวิทยาการคอมพิวเตอร์
ใช้เป็ นเครื่ องมือและเทคนิคในการออกแบบและทาความเข้าใจใน
ระบบคอมพิวเตอร์
แนวคิดของคณิ ตศาสตร์ไม่ต่อเนื่อง ถูกนาไปใช้อย่างกว้างขวางใน
สาขาคณิ ตศาสตร์, วิทยาศาสตร์, วิศวกรรมศาสตร์, เศรษฐศาสตร์,
ชีววิทยา, ฯลฯ …
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
4
Uses for Discrete Math in Computer
Science






Advanced algorithms
& data structures
Programming
language compilers
& interpreters.
Computer networks
Operating systems
Computer
architecture
Artificial Intelligence




Database
management
systems
Cryptography
Error correction
codes
Graphics &
animation
algorithms, game
engines, etc.…
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
5
ตรรกศาสตร์(Logic)





เป็ นศาสตร์ที่สาคัญในการให้เหตุผลเชิงคณิ ตศาสตร์
ตรรกศาสตร์ถูกนาไปประยุกต์ใช้ในสาขาวิทยาการคอมพิวเตอร์ :
• ออกแบบวงจรอิเล็กทรอนิกส์แบบดิจิตอล
• แสดงเงื่อนไขในโปรแกรม
• สอบถามข้อมูลในฐานข้อมูล และโปรแกรมค้นหา(search engines)
ตรรกศาสตร์เป็ นระบบที่มีพ้นื ฐานอยูบ่ นประพจน์(propositions)
ประพจน์ (แทนด้วย p, q, r, …) หมายถึงประโยคบอกเล่าหรื อปฏิเสธที่มี
ค่าความจริ งเป็ นจริง(T) หรื อเท็จ(F) เพียงอย่างใดอย่างหนึ่งเท่านั้น
ในวงจรดิจิตอลแทนค่า จริ ง(T) ด้วย 1 และ แทนค่า เท็จ(F) ด้วย 0
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
6
The Statement/Proposition Game
“ช้ ำงตัวใหญ่ กว่ ำหนู”
เป็ นประพจน์ใช่หรื อไม่?
yes
ค่าความจริ งของประพจน์คือ?
true
“520 < 111”
เป็ นประพจน์ใช่หรื อไม่?
yes
ค่าความจริ งของประพจน์น้ ีคืออะไร?
false
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
7
The Statement/Proposition Game
“y > 5”
เป็ นประพจน์ใช่หรื อไม่?
no
ค่าความจริ งของประโยคนี้ข้ ึนกับค่าของตัวแปร y ซึ่งขณะนี้เราไม่ทราบว่ามี
ค่าเท่าไร เราเรี ยกประโยคแบบนี้วา่ ฟังก์ชนั่ ของประพจน์(propositional
function) หรื อ ประโยคเปิ ด (open sentence)
“วันนีเ้ ป็ นวันที่ 27 มกรำคม และ 99 < 5”
เป็ นประพจน์ใช่หรื อไม่?
yes
ค่าความจริ งของประพจน์น้ ีคืออะไร?
false
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
8
The Statement/Proposition Game
“กรุณำอย่ ำนอนกรนในห้ องเรียน”
เป็ นประพจน์ใช่หรื อไม่?
จัดเป็ นประโยคขอร้องแต่ไม่ เป็ นประพจน์
no
“x < y ก็ต่อเมื่อ y > x”
เป็ นประพจน์ใช่หรื อไม่?
yes
… เพราะค่าความจริ งของประพจน์ไม่ได้ข้ ึนอยูก่ บั ค่าของตัวแปร x
และตัวแปร y
true
ค่าความจริ งของประพจน์น้ ีคืออะไร?
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
9
ตัวดำเนินกำร/ตัวเชื่อม(Operators / Connectives)

ตัวดำเนินกำร(Operator) ทาหน้าที่รวมนิพจน์(expression)
มากกว่าหนึ่งนิพจน์เข้าด้วยกัน
• Unary operators ใช้กบั ตัวถูกดาเนินการ(Operand) ตัวเดียว
•

(เช่น −3)
Binary operators ใช้กบั ตัวถูกดาเนินการ 2 ตัว (เช่น 3  4)
ตัวดาเนินการบูลีน(Boolean operator) จะทาให้เกิดประพจน์
ประกอบ(Compound proposition)เพียงประพจน์เดียว จากการ
ดาเนินการบนประพจน์ยอ่ ยต่างๆ(หรื อบนค่าความจริ งของประพจน์
เหล่านั้น)
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
10
ตัวดาเนินการบูลีน (Boolean Operators)
Formal Name
Nickname Arity
Negation operator
NOT
Unary
¬, ~
Conjunction operator
AND
Binary

Disjunction operator
OR
Binary

Exclusive-OR operator XOR
Binary

Implication operator
IMPLIES
Binary

Biconditional operator
IFF
Binary
↔
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
Symbol
11
The Negation Operator
Negation operator “¬” (NOT) แปลงประพจน์ใดๆ
ให้เป็ นนิเสธของประพจน์น้ นั
เช่น ให้ p = “ฉันมีผมสี น้ าตาล”
ดังนั้น ¬p = “ฉันไม่มีผมสี น้ าตาล”
ตารางค่าความจริ ง(truth table) ของ NOT:
p p
T F
F T
T :≡ True; F :≡ False
“:≡” หมายถึง “ถูกนิยามแทน”
คอลัมน์ตวั ถูกดาเนินการ
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
คอลัมน์ผลลัพธ์
12
The Conjunction Operator
Conjunction operator “” (AND) เชื่อมประพจน์ 2
ประพจน์เข้าด้วยกันด้วย “และ”
เช่ น ถ้า p=“ฉันจะกินส้มเป็ นอาหารกลางวัน” และ
q=“ฉันจะกินทุเรี ยนเป็ นอาหารเย็น”
ดังนั้น pq=“ฉันจะกินส้มเป็ นอาหารกลางวัน และ ฉันจะกินทุเรี ยน
เป็ นอาหารเย็น”
ประพจน์ pq มีค่ำเป็ นจริ ง เมื่อประพจน์ “ฉันจะกินส้มเป็ นอาหาร
กลางวัน” เป็ นจริง และประพจน์ “ฉันจะกินทุเรี ยนเป็ นอาหารเย็น”
เป็ นจริงทั้งคู่ กรณี อื่นนอกเหนือจากนี้ประพจน์ pq มีค่าเป็ นเท็จ
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
13
Conjunction Truth Table
สังเกตว่าการเชื่อมประพจน์
n ประพจน์เข้าด้วยกัน
(p1  p2  …  pn)
ตารางค่าความจริ งจะมีจานวนแถว
เท่ากับ 2n แถว

คอลัมน์ตวั ถูกดาเนินการ
p
F
F
T
T
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
q
F
T
F
T
คอลัมน์ผลลัพธ์
pq
F
F
F
T
14
The Disjunction Operator
Disjunction operator “” (OR) เชื่อมประพจน์ 2
ประพจน์เข้าด้วยกันด้วย “หรือ”
เช่ น ถ้า p=“รถจักรยานของฉันมีลอ้ สี แดง” หรื อ
q=“รถจักรยานของฉันมีตะกร้าสี ขาว”
pq=“รถจักรยานของฉันมีลอ้ สี แดง หรื อ รถจักรยานของฉันมี
ตะกร้าสี ขาว”
ประพจน์ pq มีค่ำเป็ นเท็จ เมื่อประพจน์ “รถจักรยานของฉันมีลอ้ สี
แดง” เป็ นเท็จ และประพจน์ “รถจักรยานของฉันมีตะกร้าสี ขาว”
เป็ นเท็จทั้งคู่ กรณี อื่นนอกเหนือจากนี้ประพจน์ pq มีค่าเป็ นจริง
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
15
Disjunction Truth Table


สังเกตว่า pq หมายถึง
p เป็ นจริ ง หรื อ q เป็ นจริ ง,
หรื อทั้ง p และ q เป็ นจริ ง
Disjunction operator “”
อาจเรี ยกอีกอย่างว่า inclusive or
เพราะประพจน์จะมีค่าเป็ นจริง
ในกรณี ที่ท้ งั p และ q เป็ นจริ งทั้งคู่
p
F
F
T
T
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
q
F
T
F
T
pq
F
สังเกตส่ วนที่
T แตกต่างจาก
T AND
T
16
Nested Propositional Expressions

สามารถใช้วงเล็บเพื่อจัดกลุ่มนิพจน์ยอ่ ย:
“ฉันเพิ่งได้พบกับเพื่อนเก่า(f) และเขาตัวโตขึ้นมาก(g) หรื อฉันตัว
เล็กลง(s)”
= f  (g  s)
•
•

ความหมายจะเปลี่ยนไป
ควำมหมำยกำกวม
หากไม่ใช้วงเล็บ “¬” มีลาดับความสาคัญมากกว่า “” และ “”
•

(f  g)  s
fgs
¬s  f หมายถึง (¬s)  f ไม่ ใช่ ¬ (s  f)
ลาดับความสาคัญของตัวดาเนินการ: , , , , 
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
17
A Simple Exercise
ให้ p = “เมื่อคืนนี้ฝนตก”
q = “มีหมอกลงเมื่อเช้าวันนี้”
r = “เช้าวันนี้สนามหญ้าเปี ยก”
จงแปลนิพจน์ต่อไปนี้:
¬p
= “เมื่อคืนฝนไม่ตก”
r  ¬p
= “เช้าวันนี้สนามหญ้าเปี ยก และเมื่อคืนนี้ฝนไม่ตก”
¬ r  p  q = “เมื่อเช้าวันนี้สนามหญ้าไม่เปี ยก หรื อ เมื่อคืนนี้ฝนตก
หรื อ มีหมอกลงเมื่อเช้านี้”
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
18
The Exclusive Or Operator
Exclusive-or operator “” (XOR) รวมประพจน์ 2
ประพจน์เข้าด้วยกันแบบ “exclusive or”
p = “ฉันจะได้เกรด A วิชานี้”
q = “ฉันจะได้เกรด B วิชานี้”
p  q = “ฉันจะได้เกรด A วิชานี้ หรื อ ฉันจะได้เกรด B วิชานี้
(แต่ไม่สามารถได้เกรดทั้งสองพร้อมกัน)”
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
19
Exclusive-Or Truth Table

สังเกตว่า pq หมำยถึง
p เป็ นจริ ง หรื อ q เป็ นจริ ง
แต่ตอ้ งไม่เป็ นจริ งทั้งคู่
จึงอาจเขียนได้วา่
(p  q)  ¬(p  q)

p
F
F
T
T
q pq
F F
T T
F T
งเกตส่วนที่
T F สัแตกต่
างจาก
OR
การดาเนินการนี้เรี ยกว่า exclusive or
เพราะประพจน์จะมีค่าเป็ นเท็จ ในกรณี ที่ท้ งั p และ q เป็ นจริ งทั้งคู่
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
20
The Implication Operator
เหตุ
ผล
(antecedent)
(consequent)
Implication p  q หมายความว่า “ถ้า p แล้ว q”
คื อ ถ้า p เป็ นจริ ง แล้ว q เป็ นจริ ง แต่ ถ้า p ไม่เป็ นจริ ง แล้ว q อาจเป็ น
จริ งหรื อเป็ นเท็จก็ได้
เช่ น ให้ p = “คุณขยันเรียน”
q = “คุณจะได้ เกรดทีด่ ”ี
p  q = “ถ้า คุณขยันเรี ยน แล้ว คุณจะได้เกรดที่ดี” (แต่ถา้ ไม่ขยันเรี ยน ก็อาจได้
เกรดที่ดีหรื อเกรดที่ไม่ดีกไ็ ด้)
ประพจน์ pq มีค่ำเป็ นเท็จ เมื่อประพจน์ “คุณขยันเรี ยน” เป็ นจริง และประพจน์
“คุณจะได้เกรดที่ดี” เป็ นเท็จ
กรณี อื่นๆนอกเหนือจากนี้ ประพจน์ pq มีค่าเป็ นจริง
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
21
The Implication Operator

รู ปแบบของ implication ที่สมนัยกัน(Equivalent) :

Terminology:
• If P, then Q
• P implies Q
• If P, Q
• P is a sufficient condition for Q
• Q if P
• Q whenever P
• Q is a necessary condition for P
• P = premise, hypothesis, antecedent
• Q = conclusion, consequence
22
Implication Truth Table
p  q เป็ นเท็จ เฉพาะเมื่อ
p เป็ นจริ ง แต่ q เป็ นเท็จ
 ประพจน์ p  q เป็ นจริ ง
โดยไม่จาเป็ นว่า p หรื อ q
จะต้องเป็ นจริ งทั้งคู่
เช่ น
 “(1=0)  หมูบินได้” เป็ นจริ ง

p
F
F
T
T
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
q pq
F
T
T T เป็ น
F
F False
เพียง
T T กรณีเดียว
23
Examples of Implications





“ถ้าแพนด้ามีขนรอบตาสี ดา แล้วพรุ่ งนี้พระอาทิตย์จะขึ้น”
True หรื อ False?
“ถ้าวันอังคารเป็ นวันหนึ่งวันในสัปดาห์ แล้วฉันเป็ นแมวน้ า”
True หรื อ False?
“ถ้า 1+1=6 แล้วโก๊ะตี๋เป็ นชาวฝรั่งเศส”
True หรื อ False?
“ถ้า 3>8 แล้วกรุ งเทพเป็ นเมืองหลวงของประเทศไทย”
True หรื อ False?
“ถ้าฉันเป็ นคนไทยแล้วปลาฉลามวิ่งได้”
True หรื อ False?
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
24
Converse, Inverse, Contrapositive
คาศัพท์บางคาที่อาจเจอในเรื่ องการ implication p  q ได้ แกก่ :
 บทกลับ(converse) :
qp
 ข้อความผกผัน(inverse) :
¬p  ¬q
 ข้อความแย้งสลับที่(contrapositive) : ¬q  ¬ p
 จากประพจน์ท้ งั สามข้างต้นมีประพจน์ประเภทหนึ่ งที่มีความหมาย
เดียวกันกับ p  q คือ?
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
25
How do we know for sure?
การพิสูจน์การสมมูลของ p  q กับข้อความแย้งสลับที่
(contrapositive) โดยใช้ตารางค่าความจริ ง :
p
F
F
T
T
q
F
T
F
T
q
T
F
T
F
p
T
T
F
F
pq q p
T
T
T
T
F
F
T
T
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
26
The biconditional operator
Biconditional p  q แสดงว่ า p เป็ นจริง ก็ต่อเมื่อ (if and
only if --IFF) q เป็ นจริง
p = “Bush ชนะการเลือกตั้งปี 2004”
q = “Bush จะเป็ นประธานาธิบดีในปี 2005”
p  q = “Bush ชนะการเลือกตั้งปี 2004 ก็ต่อเมื่อ Bush จะ
เป็ นประธานาธิบดีในปี 2005 ”
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
27
Biconditional Truth Table
p  q มีค่ำควำมจริ งเป็ นจริ ง
เมื่อ p และ q มีค่ำควำมจริ ง
เหมือนกัน(เท็จทั้งคู่ หรื อ จริ งทั้งคู่)
 สังเกตว่าตารางค่าความจริ งนี้
ตรงข้ ำมกับตารางค่าความจริ งของ 

p
F
F
T
T
q pq
F T
T F
F F
T T
ดังนั้น p  q สมมูลกับ ¬(p  q)
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
28
Boolean Operations Summary
p
F
F
T
T
q
F
T
F
T
p pq pq pq pq pq
T F
F
F
T
T
T F
T
T
T
F
F F
T
T
F
F
F T
T
F
T
T
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
29
Some Alternative Notations
Name:
Propositional logic:
Boolean algebra:
C/C++/Java (wordwise):
C/C++/Java (bitwise):
not and or
  
p pq +
! && ||
~ & |
xor implies



!=
^
iff

==
Logic gates:
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
30
Topic #2 – Bits
Bits and Bit Operations
 บิต(bit) คือ binary (base 2) digit: 0 หรื อ 1

บิตสามารถใช้แทนค่าความจริ งได้ โดย: 0 แทน “เท็จ”; 1 แทน “จริ ง”

Boolean algebra ตัวแปรแทนบิต, +

หมายถึง “and”
ตัวดาเนินการบูลีน สามารถนาไปใช้ดาเนินการกับบิตสตริ งในลักษณะ
บิตต่อบิตได้
หมายถึง “or”, และการคูณ
ตัวอย่ ำง เช่ น:
01 1011 0110
11 0001 1101
11 1011 1111
Bit-wise OR, Bit-wise AND , Bit-wise XOR
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
31
แบบฝึ กหัด
จงเขียนประโยคต่อไปนี้ในรู ปของตัวแปรและตัวดาเนินการทางตรรกะ
จะเป็ นนิสิตที่ผา่ นการเรี ยน
วิชาแคลคูลสั หรื อวิชาคอมพิวเตอร์เบื้องต้นมาแล้ว
 นิ สิตที่ลงทะเบียนเรี ยนวิชาเครื อข่ายคอมพิวเตอร์
ั บริ ษทั ประกันคุม้ ดี ท่านสามารถเลือกรับเงิน
 หากท่านซื้ อประกันภัยรถยนต์กบ
สดคืน 2,000 บาท หรื อเลือกขอสิ นเชื่อเงินกูไ้ ด้ในอัตราดอกเบี้ย 2%
 ฉันเคยไปดูละครเวทีเรื่ องบัลลังก์เมฆ หรื อ เรื่ องบ้านทรายทอง แต่ไม่เคย
ร้องไห้
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
32
แบบฝึ กหัด
• นิสิตที่ลงทะเบียนเรี ยนวิชาเครื อข่ายคอมพิวเตอร์ จะเป็ นนิสิตที่ผา่ นการ
เรี ยนวิชาแคลคูลสั หรื อวิชาคอมพิวเตอร์เบื้องต้นมาแล้ว
• P: นิสิตลงทะเบียนเรี ยนวิชาเครื อข่ายคอมพิวเตอร์
• Q: นิสิตผ่านการเรี ยนวิชาแคลคูลสั
• R: นิสิตผ่านการเรี ยนวิชาคอมพิวเตอร์เบื้องต้น
P
QR
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
33
แบบฝึ กหัด
• หากท่านซื้อประกันภัยรถยนต์กบั บริ ษทั ประกันคุม้ ดี ท่านสามารถเลือกรับ
เงินสดคืน 2,000 บาท หรื อเลือกขอสิ นเชื่อเงินกูไ้ ด้ในอัตราดอกเบี้ย 2%

•
ั บริ ษทั ประกันคุม้ ดี
P: ท่านซื้ อประกันภัยรถยนต์กบ
•
Q: ท่านสามารถเลือกรับเงินสดคืน 2,000 บาท
•
R: ท่านสามารถขอสิ นเชื่อเงินกูไ้ ด้ในอัตราดอกเบี้ย 2%
PQR
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
34
แบบฝึ กหัด
• ฉันเคยไปดูละครเวทีเรื่ องบัลลังก์เมฆ หรื อ เรื่ องบ้านทรายทอง แต่ไม่เคย
ร้องไห้

•
P: ฉันเคยไปดูละครเวทีเรื่ องบัลลังก์เมฆ
•
Q: ฉันเคยไปดูละครเวทีเรื่ องบ้านทรายทอง
•
R: ฉันเคยร้องไห้
(P  Q)  ¬R
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
35
Equivalence, Tautologies and Contradictions
กำรสมมูล(Equivalence)ประพจน์ประกอบที่เขียนต่างกัน แต่มีความหมายเหมือนกัน
จะกล่าวได้วา่ ประพจน์ท้ งั สองนั้น “สมมูล” กัน
สั จนิรันดร์ (Tautology) เป็ นประพจน์ประกอบที่มีค่าความจริ งเป็ นจริงเสมอ ไม่วา่ ค่า
ความจริ งของประพจน์ยอ่ ยจะเป็ นอะไรก็ตาม เช่น
•
•
p  p
(PQ)  (P)( Q)
ขัดแย้ ง(Contradiction) เป็ นประพจน์ประกอบที่มีค่าความจริ งเป็ นเท็จเสมอ ไม่วา่ ค่า
ความจริ งของประพจน์ยอ่ ยจะเป็ นอะไรก็ตาม เช่น
•
•
p  p
((P  Q)  (P)  (Q))
Contingency เป็ นประพจน์ประกอบที่ไม่เป็ นสัจนิ รันดร์ และไม่เป็ นขัดแย้ง
•
(PQ)R
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
36
Tautology example
การแสดงว่า
[¬p (p q )]q
เป็ นสัจนิรันดร์แสดงได้ 2 วิธี:
1. ใช้ตารางค่าความจริ ง โดยแสดงว่าทุกแถวของประพจน์
[¬p (p q )]q มีค่าความจริ งเป็ นจริ งทั้งหมด
2. ใช้กฏในการพิสูจน์
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
37
Tautology by truth table
p q ¬p p q
¬p (p q )
[¬p (p q )]q
T T
T F
F T
F F
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
38
Tautology by truth table
p q ¬p p q
T T
F
T F
F
F T
T
F F
T
¬p (p q )
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
[¬p (p q )]q
39
Tautology by truth table
p q ¬p p q
T T
F
T
T F
F
T
F T
T
T
F F
T
F
¬p (p q )
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
[¬p (p q )]q
40
Tautology by truth table
p q ¬p p q
¬p (p q )
T T
F
T
F
T F
F
T
F
F T
T
T
T
F F
T
F
F
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
[¬p (p q )]q
41
Tautology by truth table
p q ¬p p q
¬p (p q )
[¬p (p q )]q
T T
F
T
F
T
T F
F
T
F
T
F T
T
T
T
T
F F
T
F
F
T
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
42
Tautologies, contradictions and
programming
สัจนิรันดร์และขัดแย้งสามารถเกิดขึ้นได้ในการเขียนโปรแกรม หาก
ออกแบบไม่ดี เช่น:
•while(x
<= 3 || x > 3)
x++;
•if(x > y)
if(x == y)
return “never got here”;
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
43
การสมมูลเชิงตรรก(Logical Equivalence)

ประพจน์ประกอบ p สมมูลเชิงตรรก กับประพจน์ประกอบ q ก็ต่อเมือ่
(IFF) ประพจน์ ประกอบ pq เป็ นสั จนิรันดร์ เขียนเป็ นสัญลักษณ์
ได้วา่ pq (หรื อหนังสื อบำงเล่ มใช้ p  q)

ประพจน์ประกอบ p และประพจน์ประกอบ q สมมูลเชิงตรรก ซึ่ งกัน
และกัน ก็ต่อเมือ่ (IFF) p และ q มีค่ำควำมจริ งเหมือนกันในทุกๆแกถว
ของตำรำงค่ ำควำมจริ ง
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
44
กำรพิสูจน์ กำรสมมูลโดยใช้ ตำรำงค่ ำควำมจริง(Truth Tables)
ตัวอย่ ำง จงพิสูจน์วา่ pq  (p  q)
p
F
F
T
T
q
F
T
F
T
pq
F
T
T
T
p
T
T
F
F
q p  q (p  q)
T
T
F
F
F
T
T
F
T
F
F
T
pq มีค่ำควำมจริ งเหมือนกันในทุกๆแกถวกับ (p  q)
ดังนั้น pq สมมูลกับ (p  q)
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
45
วิธีการพิสูจน์โดยการใช้กฏ
เมื่อประพจน์ประกอบเกิดจากประพจน์ยอ่ ยหลายๆประพจน์ จานวนแถว
ในตารางค่าความจริ งก็จะเพิ่มมากขึ้นด้วย
Q1: จานวนแถวของตารางค่าความจริ งของประพจน์ประกอบนี้
32 rows
เท่ากับเท่าไร?:
( (pp)  ((sr)t) ) (qr )
Q2: จานวนแถวของตารางค่าความจริ งของประพจน์ประกอบที่มี
ประพจน์ยอ่ ย n ประพจน์เท่ากับเท่าไร?
2n
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
46
วิธีการพิสูจน์โดยการใช้กฏ
จงพิสูจน์วา่ ประพจน์ต่อไปนี้เป็ นสัจนิรันดร์:
( (p p )  ((sr)t) )  (qr )


T  ((sr)t ))  (qr )
T
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
47
Equivalence Laws - Examples









เอกลักษณ์ (Identity):
pT  p
pF  p
ครอบคลุม(Domination): pT  T
pF  F
สะท้ อน(Idempotent):
pp  p
pp  p
นิเสธซ้ อน(Double Negation): p  p
สลับที่ (Commutative): pq  qp
pq  qp
เปลี่ยนกลุ่ม(Associative): (pq)r  p(qr)
(pq)r  p(qr)
กระจำย(Distributive): p(qr)  (pq)(pr)
p(qr)  (pq)(pr)
ซึมซับ(Absorption):
p(pq)  p แกละ p (pq)  p
T : สัจนิรันดร์ F : ขัดแย้ง
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
48
More Equivalence Laws
เดอมอร์ แกน(De Morgan’s):
(pq)  p  q
(pq)  p  q
 สั จนิรันดร์ /ขัดแย้ ง:
p  p  T
p  p  F
จากคุณสมบัติการสมมูล สามารถนิยามตัวดาเนินการหนึ่งด้วยตัวดาเนินการอื่นได้ดงั นี้




Exclusive or: pq  (pq)(pq)
pq  (pq)(qp)
Implies:
pq  p  q
Biconditional: pq  (pq)  (qp)
pq  (pq)
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
49
Tautology example
จงแสดงว่า
[¬p (p q )]q
เป็ นสัจนิรันดร์ ทาได้ 2 วิธี:
1.
ใช้ตารางค่าความจริ ง
2.
ใช้กฏการสมมูลเพื่อให้ได้ค่าผลลัพธ์สุดท้ายออกมาเป็ นจริ ง(True)
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
50
Tautology by proof
[¬p (p q )]q
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
51
Tautology by proof
[¬p (p q )]q
 [(¬p p)(¬p q)]q
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
กระจาย
52
Tautology by proof
[¬p (p q )]q
 [(¬p p)(¬p q)]q
กระจาย
 [ F  (¬p q)]q
ข้อขัดแย้ง
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
53
Tautology by proof
[¬p (p q )]q
 [(¬p p)(¬p q)]q
กระจาย
 [ F  (¬p q)]q
 [¬p q ]q
ข้อขัดแย้ง
เอกลักษณ์
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
54
Tautology by proof
[¬p (p q )]q
 [(¬p p)(¬p q)]q
กระจาย
 [ F  (¬p q)]q
 [¬p q ]q
ข้อขัดแย้ง
เอกลักษณ์
 ¬ [¬p q ]  q
implication
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
55
Tautology by proof
[¬p (p q )]q
 [(¬p p)(¬p q)]q
กระจาย
 [ F  (¬p q)]q
 [¬p q ]q
ข้อขัดแย้ง
เอกลักษณ์
 ¬ [¬p q ]  q
implication
 [¬(¬p) ¬q ]  q
เดอมอร์แกน
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
56
Tautology by proof
[¬p (p q )]q
 [(¬p p)(¬p q)]q
กระจาย
 [ F  (¬p q)]q
 [¬p q ]q
ข้อขัดแย้ง
เอกลักษณ์
 ¬ [¬p q ]  q
implication
 [¬(¬p) ¬q ]  q
เดอมอร์แกน
 [p  ¬q ]  q
นิเสธซ้อน
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
57
Tautology by proof
[¬p (p q )]q
 [(¬p p)(¬p q)]q
กระจาย
 [ F  (¬p q)]q
 [¬p q ]q
ข้อขัดแย้ง
เอกลักษณ์
 ¬ [¬p q ]  q
implication
 [¬(¬p) ¬q ]  q
เดอมอร์แกน
 [p  ¬q ]  q
นิเสธซ้อน
 p  [¬q q ]
เปลี่ยนกลุ่ม
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
58
Tautology by proof
[¬p (p q )]q
 [(¬p p)(¬p q)]q
กระจาย
 [ F  (¬p q)]q
 [¬p q ]q
ข้อขัดแย้ง
เอกลักษณ์
 ¬ [¬p q ]  q
implication
 [¬(¬p) ¬q ]  q
เดอมอร์แกน
 [p  ¬q ]  q
นิเสธซ้อน
 p  [¬q q ]
เปลี่ยนกลุ่ม
 p  [q ¬q ]
สลับที่
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
59
Tautology by proof
[¬p (p q )]q
 [(¬p p)(¬p q)]q
กระจาย
 [ F  (¬p q)]q
 [¬p q ]q
ข้อขัดแย้ง
เอกลักษณ์
 ¬ [¬p q ]  q
implication
 [¬(¬p) ¬q ]  q
เดอมอร์แกน
 [p  ¬q ]  q
นิเสธซ้อน
 p  [¬q q ]
เปลี่ยนกลุ่ม
 p  [q ¬q ]
pT
สลับที่
สัจนิรันดร์
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
60
Tautology by proof
[¬p (p q )]q
 [(¬p p)(¬p q)]q
กระจาย
 [ F  (¬p q)]q
 [¬p q ]q
ข้อขัดแย้ง
เอกลักษณ์
 ¬ [¬p q ]  q
implication
 [¬(¬p) ¬q ]  q
เดอมอร์แกน
 [p  ¬q ]  q
นิเสธซ้อน
 p  [¬q q ]
เปลี่ยนกลุ่ม
 p  [q ¬q ]
pT
T
สลับที่
สัจนิรันดร์
ครอบคลุม
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
61
Propositional Equivalences
(P(PQ)) สามารถทาให้ดูง่ายขึ้นโดยการใช้กฏของ logical equivalence
ต่อไปนี้:
(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)
เนื่องจาก PPF
 PQ
Identity law for F
 (PQ)
De Morgan’s law
62





แบบฝึ กหัด
จงตรวจสอบว่า (p  (p  q))  p q โดยใช้ตาราง
ค่าความจริ ง(Truth table)
จงแสดงว่า p  q   p  q โดยใช้ตารางค่าความจริ ง
จงตรวจสอบว่า (p  q)  (p  r)  p  q  r
โดยใช้ กฎการสมมูล(Equivalence laws)
จงแสดงว่า (p  q)  (p  r)  p  (q  r) โดยใช้ กฎ
การสมมูล(Equivalence laws)
จงแสดงว่า (p  q)  (p  q) เป็ นสัจนิรันดร์ (Tautology)
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
63
Review: Propositional Logic





ประพจน์เดี่ยวหรื อประพจน์ยอ่ ย: p, q, r, …
ตัวดาเนินการบูลีน:      
ประพจน์ประกอบ: s : (p  q)  r
การสมมูล: pq  (p  q)
การพิสูจน์การสมมูลโดยใช้:
• ตารางค่าความจริ ง
• การใช้กฎการสมมูล p  q  r …
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
64
Propositional Functions & Predicates
ประโยคเปิ ด หรื อฟั งก์ชน
ั่ ของประพจน์:
ได้แก่ประโยคที่มีตวั แปรตั้งแต่
หนึ่งตัวขึ้นไป เช่น : x-3 > 5 หากแทนค่าตัวแปร x ลงไปด้วยค่าใดๆประโยค
เปิ ดนี้จะกลายเป็ นประพจน์
กาหนดฟั งก์ชน
ั่ ของประพจน์ดว้ ย
P(x) โดยที่ P เป็ น predicate
และ x เป็ นตัวแปร(variable)
ค่าความจริ งของ P(2) ?
ค่าความจริ งของ P(8) ?
ค่าความจริ งของ P(9) ?
false
false
true
จะเห็นว่ ำค่ ำควำมจริงขึน้ อยู่กบั ค่ ำของตัวแปร
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
65
Propositional Functions
จงพิจารณาฟั งก์ชน
ั่ ของประพจน์
ในที่น้ ี
Q(x, y, z) ซึ่ งนิยามโดย : x + y = z
Q เป็ น predicate และ x, y, และ z เป็ น ตัวแปร(variables)
ค่าความจริ งของ Q(2, 3, 5) ?
ค่าความจริ งของ Q(0, 1, 2) ?
ค่าความจริ งของ Q(9, -9, 0) ?
true
false
true
ฟังก์ชนั่ ของประพจน์ จะกลายเป็ นประพจน์ เมื่อตัวแปรทุกตัวถูกแทนด้วยค่าเริ่ มต้น
ค่าใดค่าหนึ่ง
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
66
Propositional Functions
Person(x) เป็ นจริ ง ถ้า x เป็ นคน

Person(แม่ประยูร) = T

Person(มิคกี้เมาส์) = F
CSCourse(x) เป็ นจริ ง ถ้า x เป็ นรหัสวิชาเรี ยนในม.บูรพา

CSCourse(310205) = T

CSCourse(222155) = F
ถ้าต้องการเขียนฟังก์ชนั่ ของประพจน์ที่มีความหมายต่อไปนี้ จะเขียนอย่างไร?

มนุษย์ทุกคนในโลกต้องตาย

ในโลกนี้มีดอกกุหลาบที่มีสีชมพู
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
67
Quantifier Expressions



ตัวบ่ งปริ มำณ(Quantifiers) ทำให้ ทรำบว่ ำมีสมำชิ กจำนวนเท่ ำไร
ในเอกภพสั มพัทธ์ (U.D.) ที่ เป็ นไปตำมเงื่อนไขของ predicate ที่
กาหนด
“” คือ FORLL หรื อ universal quantifier
x P(x) หมายถึง สาหรับ x ทุกตัวในเอกภพสัมพัทธ์ ทาให้ P(x)
เป็ นจริ ง
“” คือ XISTS หรื อ existential quantifier
x P(x) หมายความว่า มี x ในเอกภพสัมพัทธ์(อย่างน้อย1 ตัว) ที่
ทาให้ P(x) เป็ นจริ ง
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
68
The Universal Quantifier 



ตัวอย่าง:
ให้เอกภพสัมพัทธ์(U.D.)ของ x เป็ นที่จอดรถในม.บูรพา
ให้ P(x) เป็ น predicate “x เต็มแกล้ ว”
xP(x), คือประพจน์: “ที่จอดรถทุกที่ในม.บูรพาเต็มแล้ว”
“x P (x)” มีค่าเป็ นจริง เมื่อแทนทุกค่าของ x เข้าไปใน
P(x) แล้ว ทาให้ P(x) มีค่าเป็ นจริ ง
เปรี ยบได้กบั การเชื่อมประพจน์ยอ่ ยทั้งหมดเข้าด้วยกันด้วย AND
x P (x )  P (x1) P (x2)  P (x3)  …
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
69
Universal Quantifier. Example
กำหนดให้ เอกภพสั มพัทธ์ ประกอบด้ วย
• Leo: สิงโต
• Bill: อีกำสีขำว
• Jan: อีกำสีดำ
กำหนดฟังก์ชั่นของประพจน์ ดังนี้
• P (x) = “x เป็ นอีกำ”
• Q (x) = “x มีสีดำ”
 x ( P (x) Q (x ) )
“ถ้า x เป็ นอีกาแล้ว x มีสีดา” หรื อ “อีกาทุกตัวมีสีดา”
Q: ประพจน์ ข้ำงต้ นมีค่ำควำมจริงเป็ นจริงหรือเท็จ?
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
70
Universal Quantifier. Example
A: เป็ นเท็จ เนื่องจำกประพจน์ ดงั กล่ ำวสมมูลกับ
(P (Leo)Q (Leo))(P (Jan)Q (Jan))(P (Bill)Q (Bill))
Bill เป็ น ตัวอย่ำงค้ ำน(counter-example), หมายถึงค่าที่ทาให้ประพจน์
ประกอบทั้งประโยคมีค่าความจริ งเป็ นเท็จ
P (Bill) เป็ นจริ ง เพราะ Bill เป็ นอีกา แต่ Q (Bill) เป็ นเท็จ เพราะ Bill มีสี
ขาวไม่ใช่สีดา ดังนั้นประพจน์ P (Bill)Q (Bill) เป็ นเท็จ เนื่องจาก
TF ให้ค่าความจริ งเป็ น F เป็ นผลให้การเชื่อมประพจน์ยอ่ ยทั้งหมดด้วย
AND ให้ค่าความจริ งออกมาเป็ นเท็จ
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
71
The Existential Quantifier 




ตัวอย่าง:
ให้เอกภพสัมพัทธ์ของ x เป็ นที่จอดรถในม.บูรพา
ให้ P(x) เป็ น predicate “x เต็มแกล้ ว”
xP(x), คือประพจน์ : “ที่จอดรถบางที่ในม.บูรพาเต็มแล้ว” หรื อ
“ที่จอดรถอย่างน้อยหนึ่งที่ในม.บูรพาเต็มแล้ว”
“x P (x)” มีค่าเป็ นจริ ง เมื่อสามารถหาค่า x ได้อย่างน้อยหนึ่งค่า
แทนเข้าไปใน P(x) แล้ว ทาให้ P(x) มีค่าเป็ นจริ ง
เปรี ยบได้กบั การเชื่อมประพจน์ยอ่ ยทั้งหมดเข้าด้วยกันด้วย OR
x P (x )  P (x1) P (x2) P (x3)  …
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
72
Existential Quantifier. Example
กำหนดให้ เอกภพสั มพัทธ์ ประกอบด้ วย
• Leo: สิงโต
• Bill: อีกำสีขำว
• Jan: อีกำสีดำ
กำหนดฟังก์ชั่นของประพจน์ ดังนี้
• P (x) = “x เป็ นอีกำ”
• Q (x) = “x มีสีดำ”
x ( P (x) Q (x))
Q: ประพจน์ขา้ งต้นมีค่าความจริ งเป็ นจริ งหรื อเท็จ?
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
73
Existential Quantifier. Example
A: เป็ นจริง เนื่องจำกประพจน์ ดงั กล่ำวสมมูลกับ
(P (Leo)Q (Leo) )(P (Jan) Q (Jan) )(P(Bill)Q (Bill) )
P (Leo) เป็ นเท็จ เพราะ Leo เป็ นสิ งโต ไม่ใช่อีกา ดังนั้น
ประพจน์ P (Leo) Q (Leo) เป็ นจริ ง เป็ นผลให้การ
เชื่อมประพจน์ยอ่ ยทั้งหมดด้วย OR ให้ค่าความจริ งออกมาเป็ นจริ ง
Leo เรี ยกว่า ตัวอย่ำงบวก(Positive example)
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
74
Existential Quantification
ตัวอย่าง เช่น:
• P(x): x เป็ นนิสิตของม.บูรพา
• G(x): x เป็ นนกเพนกวิน
ประพจน์ x (P(x)  G(x)) หมายถึง ?
“มี x อย่างน้อยหนึ่ ง ที่ x นั้นเป็ นนิ สิตของม.บูรพา และ x นั้นเป็ นนก
เพนกวิน” หรื อ
 “มีนิสิตม.บูรพาอย่างน้อยหนึ่ งคนที่เป็ นนกเพนกวิน”
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
75
Dangerous situations:
Commutativity of quantifiers
xy P(x, y)  yx P(x, y)? YES!
xy P(x, y)  yx P(x, y)? NO!
ควำมหมำยต่ ำงกัน!
76
Order matters
กาหนดให้เอกภพสัมพัทธ์คือ เซตของจานวนนับ {0, 1, 2, 3, … }
ให้ R (x,y ) = “x < y”
Q1: x y R (x,y ) หมายถึง?
Ans1: “จานวน x ทุกตัวมีค่ำน้ อยกว่ ำ จำนวน y บำงตัว”
Q2: y x R (x,y ) หมายถึง?
Ans2: “จานวน y บำงตัวมีค่ำมำกกว่ ำจำนวน x ทุกตัว”

Q: ค่าความจริ งของประพจน์ xyR(x,y) และ yxR(x,y)
คืออะไร?
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
77
Order matters
Ans: xy R(x,y) เป็ นจริง และ yx R(x,y) เป็ นเท็จ
x y R (x,y): “จานวน x ทุกตัวมีค่ำน้ อยกว่ ำ จำนวน y บำงตัว”
เป็ นจริง โดยกาหนดให้ y = x + 1
y x R (x,y): “จานวน y บำงตัวมีค่ำมำกกว่ ำจำนวน x ทุกตัว”
เป็ นเท็จ เพราะจานวน y ไม่ สำมำรถมีค่ำมำกกว่ ำตัวของมันเองได้ ดังนั้น
จึ งให้ กรณี ที่ x = y ของประพจน์น้ ีเป็ นตัวอย่างค้าน
(counterexample)
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
78
Converting from English : ตัวอย่างที่ 1

จงแสดงประโยค“If somebody is female and is a
parent, then this person is someone’s
mother” เป็ น logical expression.
• กาหนดให้
F(x): x is female.
P(x): x is a parent.
M(x, y): x is the mother of y.
• ข้อความนี้ประยุกต์ใช้กบั ทุกคน
x ((F(x)  (P(x))  y M(x, y))
79
Converting from English : ตัวอย่างที่ 2

จงแสดงประโยค “Everyone has exactly one best
friend” เป็ น logical expression.
• กาหนดให้
B(x, y): y is the best friend of x.
• ประโยคกล่าวว่า “exactly one best friend” หมายความถ้า y เป็ นเพื่อน
•
ที่ดีที่สุดของ x แล้วคนอื่น ๆ(แทนด้วย z) นอกจาก y ไม่อาจเป็ นเพื่อนที่ดีที่สุดของ
x
If y is the best friend of x, then all other people z
other than y can not be the best friend of x.
xyz (B(x, y)  ((z  y)  B(x, z)))
80
ตัวอย่าง
จงเขียนประโยคสัญลักษณ์ของข้อความที่กาหนด พร้อมทั้งหาค่าความจริ งของ
ประโยค

“ผลรวมของจานวนเต็มบวกสองจานวน เป็ นจานวนบวก”

เอกภพสัมพัทธ์(U.D.) ของ x และ y คือ เซตของจานวนเต็ม
xy((x0)(y0)(x+y0))
T

“จานวนจริ งทุกจานวน ยกเว้นศูนย์ มีจานวนที่คูณกับมันแล้วเท่ากับหนึ่ง”

เอกภพสัมพัทธ์(U.D.) ของ x และ y คือ เซตของจานวนจริ ง
x((x0)y(xy=1)) หรือ xy ((x0)(xy=1))
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
81
T
Quantifier Equivalence Laws





x y Q (x,y ) สมมูลกับ y x Q (y,x )
แต่ x y Q (x,y ) ไม่สมมูลกับ y x Q (x,y )
จากนิยามของตัวบ่งปริ มาณ: ถ้า u.d.=a,b,c,…
x P(x)  P(a)  P(b)  P(c)  …
x P(x)  P(a)  P(b)  P(c)  …
สามารถพิสูจน์ได้วา่ :
x P(x)  x P(x)
x P(x)  x P(x)
โดยใช้กฎใด?
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
82
More Equivalence Laws



x y P(x,y)  y x P(x,y)
x y P(x,y)  y x P(x,y)
x (P(x)  Q(x))  (x P(x))  (x Q(x))
x (P(x)  Q(x))  (x P(x))  (x Q(x))
แบบฝึ กหัด:
จงพิสูจน์กฎข้างต้น แสดงด้วยว่าใช้กฎใด??
กฎกำรสลับที่ และ กำรเปลีย่ นกลุ่ม
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
83
DeMorgan Revisited
จากกฎของเดอมอร์แกน จะได้วา่ :


Conjunctional negation:
(p1p2…pn)  (p1p2…pn)
Disjunctional negation:
(p1p2…pn)  (p1p2…pn)
เนื่องจากตัวบ่งปริ มาณสมมูลกับการ AND() หรื อการ OR() จึงได้วา่ :

Universal negation:  x P(x )  x P(x )

Existential negation:  x P(x )  x P(x )
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
84
Negation Examples
ในโลกนี้ดอกกุหลาบไม่ได้มีสีแดงทุกดอก
(U.D. คือ ดอกไม้ในโลกนี้)


x (Rose(x)  Red(x))
x (Rose(x)  Red(x))
ในโลกนี้ไม่มีคนที่เพียบพร้อมไปหมดทุกอย่าง
(U.D. คือ สิ่งมีชีวิตในโลกนี้)
• x (Person(x)  Perfect(x))
• x (Person(x)  Perfect(x))
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
85
Negation Example
จงหา:
 x y x2  y
นัน่ คือเราต้องการหาประพจน์ที่ตรงข้ามกับ “ค่าของ x ทุกตัว ที่เมื่อ
นาไปยกกาลังสองแล้วมีค่าน้อยกว่าหรื อเท่ากับ y บางตัว” ประพจน์
ตรงข้ามคือ “มี x บำงตัว ที่เมื่อนาไปยกกาลังสองแล้วมีค่าไม่นอ้ ยกว่า
หรื อเท่ากับ y ทุกตัว”
สามารถหานิเสธของประพจน์ได้โดย เปลี่ยนตัวบ่งปริ มาณจาก  เป็ น
 หรื อ เปลี่ยนตัวบ่งปริ มาณจาก  เป็ น  และหานิเสธของฟังก์ชนั่
ของประพจน์ที่ตามมา จากตัวอย่างจะได้วา่ :
x y ( x 2  y )  x y x 2 > y
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
86
แบบฝึ กหัด
1.



2.
จงเขียนเป็ นประโยคสั ญลักษณ์ โดยใช้ ตวั บ่ งปริมำณ เมือ่ เอกภพสัมพัทธ์ เป็ นเซตของ
จำนวนจริง
มีจานวนจริ ง x ซึ่ ง x+0 = 2x
มี x และ y บางตัวบวกกันได้ 5
มี x บางตัว เมื่อคูณกับ y ทุกตัวจะได้ y เสมอ
กำหนดให้ เอกภพสั มพัทธ์ U.D. = {1, 2, 3} และ P(x,y)= (x/y=1)
จงหำค่ ำควำมจริงของ
•
•
•
•
x y P(x,y)
x y P(x,y)
y x P(x,y)
y x P(x,y)
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
87
แบบฝึ กหัด
3.





กำรหำนิเสธ
จงหานิเสธของ “มีจานวนจริ งบางจานวนเป็ นจานวนคู”่
ให้เอกภพสัมพัทธ์คือ คนในประเทศไทย
W(x) แทน “x เป็ นผูห้ ญิง” และ L(x) แทน “x ผมยาว”
จงหานิเสธของ “มีคนไทยซึ่งเป็ นผูห้ ญิง แต่ไม่มีผมยาว”
จงหานิเสธของ xy(xy=1)
จงหานิเสธของ x(x>0)  x(x2<0)
จงหานิเสธของ x(x0)  x(x0)
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
88