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=“ฉันจะกินทุเรี ยนเป็ นอาหารเย็น”
ดังนั้น pq=“ฉันจะกินส้มเป็ นอาหารกลางวัน และ ฉันจะกินทุเรี ยน
เป็ นอาหารเย็น”
ประพจน์ pq มีค่ำเป็ นจริ ง เมื่อประพจน์ “ฉันจะกินส้มเป็ นอาหาร
กลางวัน” เป็ นจริง และประพจน์ “ฉันจะกินทุเรี ยนเป็ นอาหารเย็น”
เป็ นจริงทั้งคู่ กรณี อื่นนอกเหนือจากนี้ประพจน์ pq มีค่าเป็ นเท็จ
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
13
Conjunction Truth Table
สังเกตว่าการเชื่อมประพจน์
n ประพจน์เข้าด้วยกัน
(p1 p2 … pn)
ตารางค่าความจริ งจะมีจานวนแถว
เท่ากับ 2n แถว
คอลัมน์ตวั ถูกดาเนินการ
p
F
F
T
T
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
q
F
T
F
T
คอลัมน์ผลลัพธ์
pq
F
F
F
T
14
The Disjunction Operator
Disjunction operator “” (OR) เชื่อมประพจน์ 2
ประพจน์เข้าด้วยกันด้วย “หรือ”
เช่ น ถ้า p=“รถจักรยานของฉันมีลอ้ สี แดง” หรื อ
q=“รถจักรยานของฉันมีตะกร้าสี ขาว”
pq=“รถจักรยานของฉันมีลอ้ สี แดง หรื อ รถจักรยานของฉันมี
ตะกร้าสี ขาว”
ประพจน์ pq มีค่ำเป็ นเท็จ เมื่อประพจน์ “รถจักรยานของฉันมีลอ้ สี
แดง” เป็ นเท็จ และประพจน์ “รถจักรยานของฉันมีตะกร้าสี ขาว”
เป็ นเท็จทั้งคู่ กรณี อื่นนอกเหนือจากนี้ประพจน์ pq มีค่าเป็ นจริง
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
15
Disjunction Truth Table
สังเกตว่า pq หมายถึง
p เป็ นจริ ง หรื อ q เป็ นจริ ง,
หรื อทั้ง p และ q เป็ นจริ ง
Disjunction operator “”
อาจเรี ยกอีกอย่างว่า inclusive or
เพราะประพจน์จะมีค่าเป็ นจริง
ในกรณี ที่ท้ งั p และ q เป็ นจริ งทั้งคู่
p
F
F
T
T
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
q
F
T
F
T
pq
F
สังเกตส่ วนที่
T แตกต่างจาก
T AND
T
16
Nested Propositional Expressions
สามารถใช้วงเล็บเพื่อจัดกลุ่มนิพจน์ยอ่ ย:
“ฉันเพิ่งได้พบกับเพื่อนเก่า(f) และเขาตัวโตขึ้นมาก(g) หรื อฉันตัว
เล็กลง(s)”
= f (g s)
•
•
ความหมายจะเปลี่ยนไป
ควำมหมำยกำกวม
หากไม่ใช้วงเล็บ “¬” มีลาดับความสาคัญมากกว่า “” และ “”
•
(f g) s
fgs
¬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
สังเกตว่า pq หมำยถึง
p เป็ นจริ ง หรื อ q เป็ นจริ ง
แต่ตอ้ งไม่เป็ นจริ งทั้งคู่
จึงอาจเขียนได้วา่
(p q) ¬(p q)
p
F
F
T
T
q pq
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 = “ถ้า คุณขยันเรี ยน แล้ว คุณจะได้เกรดที่ดี” (แต่ถา้ ไม่ขยันเรี ยน ก็อาจได้
เกรดที่ดีหรื อเกรดที่ไม่ดีกไ็ ด้)
ประพจน์ pq มีค่ำเป็ นเท็จ เมื่อประพจน์ “คุณขยันเรี ยน” เป็ นจริง และประพจน์
“คุณจะได้เกรดที่ดี” เป็ นเท็จ
กรณี อื่นๆนอกเหนือจากนี้ ประพจน์ pq มีค่าเป็ นจริง
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
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 pq
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) :
qp
ข้อความผกผัน(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
pq 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 pq
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 pq pq pq pq pq
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
QR
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
33
แบบฝึ กหัด
• หากท่านซื้อประกันภัยรถยนต์กบั บริ ษทั ประกันคุม้ ดี ท่านสามารถเลือกรับ
เงินสดคืน 2,000 บาท หรื อเลือกขอสิ นเชื่อเงินกูไ้ ด้ในอัตราดอกเบี้ย 2%
•
ั บริ ษทั ประกันคุม้ ดี
P: ท่านซื้ อประกันภัยรถยนต์กบ
•
Q: ท่านสามารถเลือกรับเงินสดคืน 2,000 บาท
•
R: ท่านสามารถขอสิ นเชื่อเงินกูไ้ ด้ในอัตราดอกเบี้ย 2%
PQR
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
34
แบบฝึ กหัด
• ฉันเคยไปดูละครเวทีเรื่ องบัลลังก์เมฆ หรื อ เรื่ องบ้านทรายทอง แต่ไม่เคย
ร้องไห้
•
P: ฉันเคยไปดูละครเวทีเรื่ องบัลลังก์เมฆ
•
Q: ฉันเคยไปดูละครเวทีเรื่ องบ้านทรายทอง
•
R: ฉันเคยร้องไห้
(P Q) ¬R
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
35
Equivalence, Tautologies and Contradictions
กำรสมมูล(Equivalence)ประพจน์ประกอบที่เขียนต่างกัน แต่มีความหมายเหมือนกัน
จะกล่าวได้วา่ ประพจน์ท้ งั สองนั้น “สมมูล” กัน
สั จนิรันดร์ (Tautology) เป็ นประพจน์ประกอบที่มีค่าความจริ งเป็ นจริงเสมอ ไม่วา่ ค่า
ความจริ งของประพจน์ยอ่ ยจะเป็ นอะไรก็ตาม เช่น
•
•
p p
(PQ) (P)( Q)
ขัดแย้ ง(Contradiction) เป็ นประพจน์ประกอบที่มีค่าความจริ งเป็ นเท็จเสมอ ไม่วา่ ค่า
ความจริ งของประพจน์ยอ่ ยจะเป็ นอะไรก็ตาม เช่น
•
•
p p
((P Q) (P) (Q))
Contingency เป็ นประพจน์ประกอบที่ไม่เป็ นสัจนิ รันดร์ และไม่เป็ นขัดแย้ง
•
(PQ)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) ประพจน์ ประกอบ pq เป็ นสั จนิรันดร์ เขียนเป็ นสัญลักษณ์
ได้วา่ pq (หรื อหนังสื อบำงเล่ มใช้ p q)
ประพจน์ประกอบ p และประพจน์ประกอบ q สมมูลเชิงตรรก ซึ่ งกัน
และกัน ก็ต่อเมือ่ (IFF) p และ q มีค่ำควำมจริ งเหมือนกันในทุกๆแกถว
ของตำรำงค่ ำควำมจริ ง
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
44
กำรพิสูจน์ กำรสมมูลโดยใช้ ตำรำงค่ ำควำมจริง(Truth Tables)
ตัวอย่ ำง จงพิสูจน์วา่ pq (p q)
p
F
F
T
T
q
F
T
F
T
pq
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
pq มีค่ำควำมจริ งเหมือนกันในทุกๆแกถวกับ (p q)
ดังนั้น pq สมมูลกับ (p q)
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
45
วิธีการพิสูจน์โดยการใช้กฏ
เมื่อประพจน์ประกอบเกิดจากประพจน์ยอ่ ยหลายๆประพจน์ จานวนแถว
ในตารางค่าความจริ งก็จะเพิ่มมากขึ้นด้วย
Q1: จานวนแถวของตารางค่าความจริ งของประพจน์ประกอบนี้
32 rows
เท่ากับเท่าไร?:
( (pp) ((sr)t) ) (qr )
Q2: จานวนแถวของตารางค่าความจริ งของประพจน์ประกอบที่มี
ประพจน์ยอ่ ย n ประพจน์เท่ากับเท่าไร?
2n
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
46
วิธีการพิสูจน์โดยการใช้กฏ
จงพิสูจน์วา่ ประพจน์ต่อไปนี้เป็ นสัจนิรันดร์:
( (p p ) ((sr)t) ) (qr )
T ((sr)t )) (qr )
T
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
47
Equivalence Laws - Examples
เอกลักษณ์ (Identity):
pT p
pF p
ครอบคลุม(Domination): pT T
pF F
สะท้ อน(Idempotent):
pp p
pp p
นิเสธซ้ อน(Double Negation): p p
สลับที่ (Commutative): pq qp
pq qp
เปลี่ยนกลุ่ม(Associative): (pq)r p(qr)
(pq)r p(qr)
กระจำย(Distributive): p(qr) (pq)(pr)
p(qr) (pq)(pr)
ซึมซับ(Absorption):
p(pq) p แกละ p (pq) p
T : สัจนิรันดร์ F : ขัดแย้ง
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
48
More Equivalence Laws
เดอมอร์ แกน(De Morgan’s):
(pq) p q
(pq) p q
สั จนิรันดร์ /ขัดแย้ ง:
p p T
p p F
จากคุณสมบัติการสมมูล สามารถนิยามตัวดาเนินการหนึ่งด้วยตัวดาเนินการอื่นได้ดงั นี้
Exclusive or: pq (pq)(pq)
pq (pq)(qp)
Implies:
pq p q
Biconditional: pq (pq) (qp)
pq (pq)
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
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 ]
pT
สลับที่
สัจนิรันดร์
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
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 ]
pT
T
สลับที่
สัจนิรันดร์
ครอบคลุม
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
61
Propositional Equivalences
(P(PQ)) สามารถทาให้ดูง่ายขึ้นโดยการใช้กฏของ logical equivalence
ต่อไปนี้:
(P(PQ))
P(PQ))
De Morgan’s law
P[(P)Q]
De Morgan’s law
P(PQ)
Double negation law
(PP)(PQ]
Distributive law
F(PQ)
เนื่องจาก PPF
PQ
Identity law for F
(PQ)
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
การสมมูล: pq (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 ที่
กาหนด
“” คือ FORLL หรื อ 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) เป็ นเท็จ เนื่องจาก
TF ให้ค่าความจริ งเป็ น 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
xy P(x, y) yx P(x, y)? YES!
xy P(x, y) yx 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: ค่าความจริ งของประพจน์ xyR(x,y) และ yxR(x,y)
คืออะไร?
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
77
Order matters
Ans: xy R(x,y) เป็ นจริง และ yx 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.
xyz (B(x, y) ((z y) B(x, z)))
80
ตัวอย่าง
จงเขียนประโยคสัญลักษณ์ของข้อความที่กาหนด พร้อมทั้งหาค่าความจริ งของ
ประโยค
“ผลรวมของจานวนเต็มบวกสองจานวน เป็ นจานวนบวก”
เอกภพสัมพัทธ์(U.D.) ของ x และ y คือ เซตของจานวนเต็ม
xy((x0)(y0)(x+y0))
T
“จานวนจริ งทุกจานวน ยกเว้นศูนย์ มีจานวนที่คูณกับมันแล้วเท่ากับหนึ่ง”
เอกภพสัมพัทธ์(U.D.) ของ x และ y คือ เซตของจานวนจริ ง
x((x0)y(xy=1)) หรือ xy ((x0)(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:
(p1p2…pn) (p1p2…pn)
Disjunctional negation:
(p1p2…pn) (p1p2…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 ผมยาว”
จงหานิเสธของ “มีคนไทยซึ่งเป็ นผูห้ ญิง แต่ไม่มีผมยาว”
จงหานิเสธของ xy(xy=1)
จงหานิเสธของ x(x>0) x(x2<0)
จงหานิเสธของ x(x0) x(x0)
โครงสร้างคณิ ตศาสตร์เต็มหน่วยสาหรับวิศวกรรมซอฟต์แวร์
88