x - Choopan Rattanapoka
Download
Report
Transcript x - Choopan Rattanapoka
PREDICATE CALCULUS
FIRST ORDER LOGIC
030513122 - Discrete Mathematics
Asst. Prof. Dr. Choopan Rattanapoka
ข้อจำกัดของ Propositional Logic
ทบทวน
Propositional
Logic เป็ นการแทนประโยคด้วยสัญลักษณ์ เช่น
สมชายเป็ นคน (P)
สมปองเป็ นคน (Q)
สมหญิงเป็ นคน (R)
1 ตัวเพื่อแทนประโยค 1 ประโยคไม่สามารถ
จะเข้าถึงค่าที่มีคุณลักษณะเหมือนกันเฉพาะตัวได้
จะเห็นได้วา่ จะต้องใช้สญ
ั ลักษณ์
Predicate (1)
พิจารณา statements:
x>3, x=y+3, x+y=z
สัญลักษณ์ >, +, = ย่อมาจากความสัมพันธ์ระหว่าง x และ 3, ระหว่าง x y
และ 4, ระหว่าง x y และ z ตามลาดับ
ความสัมพันธ์นี้จะเป็ นจริง หรือ ไม่ ขึ้ นอยูก่ บั ค่าของตัวแปร x, y และ z
Predicate คือคุณสมบัติที่ยืนยันหรือปฏิเสธค่าความจริง จากตัวแปร
(variable) ของ statement
ตัวอย่ำง statement : ‘x มากกว่า 3’
‘x’ คือตัวแปร
‘มากกว่า 3’ คือ predicate
Predicate (2)
การที่จะเขียน Predicate Logic ‘x มากกว่า 3’
ขั้นตอนที่ 1 : สร้างสัญลักษณ์สาหรับ Predicate
ขั้นตอนที่ 2 : นาตัวแปรนั้นๆ ใส่เป็ น argument ให้กบั Predicate
P( ) แทน Predicate มากกว่า 3
P(x)
คาเรียกใช้
P(x)
เป็ น statement
P คือ predicate
x คือ argument
P(5) เป็ น proposition
Predicate Logic
บางครั้งเรียกว่า Predicate Calculus
เป็ นกระบวนการตรรกะที่มีความซับซ้อนกว่า Propositional Logic
แต่มีการอนุ มานเพื่อให้ได้ค่าความจริงใหม่จากค่าความจริงที่มีอยูแ่ ล้ว
องค์ประกอบพื้ นฐานของ Predicate Logic จะประกอบด้วย
(Alphabet)
ส่วนแสดงความสัมพันธ์ (Predicate)
ตัวเชื่อม (Connective)
ตัวบ่งปริมาณ (Quantifier)
ตัวอักษร
Predicate Logic : ตัวอักษร
ตัวอักษร เป็ นองค์ประกอบที่เป็ นส่วนของตัวอักษรที่ใช้ในกระบวนการของ
Predicate Logic ประกอบด้วย
ค่ำคงที่
(Constant) เป็ นค่าที่ใช้บอกถึงความหมายที่ชดั เจนแน่ นอน เช่น
GARFIELD
แทนความหมายของแมว
SURASAK แทนความหมายของคน เพศชาย
ตัวแปร
(Variable) คือ การระบุถึงความหมายในภาพรวม ไม่เฉพาะเจาะจง
cat
หมายถึงสัตว์ที่เป็ นแมว แต่ไม่ได้ระบุถึงพันธุ์
father หมายถึงพ่อคน แต่ไม่ได้ระบุวา่ พ่อใคร
ฟั งก์ชน
ั
(Function) คือส่วนที่ใช้ในการบ่งบอกโดเมนขององค์ประกอบ
cat(GARFIELD)
เป็ นฟั งก์ชนั สาหรับหาว่า GARFIELD เป็ นแมวพันธุอ์ ะไร
father(SURASAK) เป็ นฟั งก์ชน
ั สาหรับหาว่าพ่อของ SURASAK คือใคร
Predicate Logic : ส่วนแสดงควำมสัมพันธ์
เป็ นส่วนที่ใช้แสดงความสัมพันธ์ระหว่างองค์ประกอบ ซึ่งจะช่วยขยายความ
เข้าใจในค่าที่แสดงว่ามีความสัมพันธ์กนั อย่างไร เช่น
MAN(SURASAK) SURASAK เป็ นผูช้ าย
LIKES(BOB, PUI) BOB ชอบ PUI
OLDER(SURASAK, father(CHAI)) SURASAK แก่กว่าพ่อของ CHAI
ตัวอย่างชื่อเรียกประเภทของ Predicate
Father(x):
Brother(x,y):
Sum(x,y,z):
P(x,y,z,t):
unary predicate
binary predicate
ternary predicate
n-ary predicate
Propositional Functions
นิยำม: statement ที่อยูใ่ นรูปแบบ P(x1,x2,…, xn) คือค่าของ
propositional symbol P.
จากตัวอย่าง (x1,x2,…, xn) คือ n-tuple และ P คือ predicate
เราสามารถเปรียบเทียบ propositional function (Predicate) คือ
ฟั งก์ชนั ที่
สามารถประเมินค่า true หรือ false ได้
รับ arguments ตั้งแต่ 1 ค่าขึ้ นไป
กลายเป็ น proposition เมื่อมีค่ากาหนดให้กบ
ั ตัวแปร
ตัวอย่าง: Propositional Functions
กาหนด Q(x,y,z) ย่อมาจาก statement ‘x2+y2=z2’
ค่าความเป็ นจริงของ
Q(3,4,5) คือ ?
ค่าความเป็ นจริงของ
Q(2,2,3) คือ ?
มีคา่ ของ
(x,y,z) กี่ค่าที่ทาให้ predicate นี้ มีคา่ เป็ น true?
Universe of Discourse
พิจารณา statement ‘x>3’, ถ้ามีการกาหนดค่า “สีน้ าเงิน” ให้กบั x
จะสื่อความหมายไหม ?
Universe of discourse คือ set ของค่าที่ตอ
้ งการพูดถึง หรือคือ
ขอบเขตของค่าที่จะกาหนดให้กบั ตัวแปรของ Predicate ได้
ตัวอย่ำง : จะกาหนด Universe of discourse อะไรให้กบ
ั x ใน
statement:
EnrolledDiscrete(x)=‘x ลงเรียนวิชา Discrete Mathematics
Universe of Discourse: Multivariate functions
แต่ละตัวแปรใน n-tuple อาจมี universe of discourse ที่แตกต่างกัน
พิจารณา n-ary ของ predicate P:
P(r,g,b,c)= ‘The rgb-values of the color c is (r,g,b)’
ตัวอย่ำง : จงหาค่าความจริงของ statement ต่อไปนี้
P(255,0,0, red)
P(0,0,255, green)
จงหา universes of discourse of (r,g,b,c)
Predicate Logic : ตัวเชื่อม
ตัวเชื่อมใช้ในการเชื่อมระหว่างส่วนแสดงความสัมพันธ์ (Predicate) เข้า
ด้วยกัน มีเครื่องหมายต่างๆ ดังนี้
() ทาให้กลับค่าความจริง
และ () เช่น บ๊อบหล่อและนิ สย
ั ดี เขียนได้เป็ น
นิเสธ
HANDSOME(BOB)
หรือ
() เช่น กรแก่กว่าบ๊อบหรือส้ม
OLDER(KORN,
ถ้ำ
NICE(BOB)
BOB) OLDER(KORN, SOM)
... แล้ว () เช่น ถ้าบ๊อบดาแล้วบ๊อบจะหล่อ
BLACK(BOB)
ก็ตอ
่ เมื่อ
HANDSOME(BOB)
() เช่น บ๊อบจะบวชก็ต่อเมื่ออายุ 25 ปี
MONK(BOB)
AGE25(BOB)
Predicate Logic : ตัวบ่งปริมำณ
เป็ น ค่าที่ใช้ชี้วัดปริมาณของประโยค เพื่อใช้ในการบ่งชี้ ถึงจานวนหรือขนาด ใน
Predicate Logic ทาให้เกิด First Order Logic มีอยู่ 2 ประเภทคือ
ตัวบ่งปริมำณสำกล(Universal Quantifier) บางครั้งเรียก “For All”
จะใช้เครื่องหมาย จะเป็ นจริงเมื่อทุกค่าเป็ นจริง
คนไทยจะเลือกตั้งได้ตอนอายุ 18 ปี
x(THAI18(x) VOTE(x))
ตัวบ่งปริมำณบำงส่วน(Existential Quantifier) บางครั้งเรียก “For Some”
จะใช้เครื่องหมาย จะเป็ นจริงถ้าค่าบางค่าเป็ นจริง
คนบางคนเล่น facebook และ twitter
x(FACEBOOK(x) TWITTER(x))
Universal Quantifier: คานิ ยาม
นิยำม: Universal quantification ของ predicate P(x) คือ
proposition ‘P(x) ที่มีคา่ true สาหรับทุกๆ ค่าของ x ในขอบเขตที่
กาหนด’
จะใช้สญ
ั ลักษณ์: x P(x) อ่านว่า ‘for all x’
ถ้าขอบเขตที่กาหนดคือของค่า x คือ {n1,n2,…,nk} แล้วค่าความเป็ นจริง
ของ x P(x) คือ
x P(x) P(n1) P(n2) … P(nk)
Universal Quantifier: ตัวอย่างที่ 1
กาหนด
P(x): ‘x จะต้องเรียนวิชา discrete mathematics’
Q(x): ‘x คือ นักศึกษาหลักสูตร Enet-C’
ขอบเขตของ x คือ ใน P(x) และ Q(x) คือนักศึกษา มจพ.
การเขียน statements:
จงหาค่าความเป็ นจริง
ของ Statement
“นักศึกษาหลักสูตร Enet-C ทุกคน จะต้องเรียนวิชา discrete mathematics”
x Q(x) P(x)
“นักศึกษาทุกคนใน มจพ จะต้องเรียนวิชา discrete mathematics หรือเป็ นนักศึกษาหลักสูตร Enet-C”
x ( P(x) Q(x) )
“นักศึกษาทุกคนใน มจพ จะต้องเรียนวิชา discrete mathematics และเป็ นนักศึกษาหลักสูตร Enet-C”
x ( P(x) Q(x) )
Universal Quantifier: ตัวอย่างที่ 2
จาก statement
‘for every x and every y, x+y>10’
การเขียน Universal Quiantifier:
1.
2.
3.
กาหนด P(x,y) แทน statement x+y>10
กาหนดขอบเขตของ x, y อยูใ่ น set ของจานวนเต็ม
จะเขียน statement ได้วา่ : x y P(x,y)
เขียนแบบย่อ คือ x,y P(x,y)
Existential Quantifier: คานิ ยาม
คำนิยำม: Existential quantification ของ predicate P(x) คือ
proposition ‘มีคา่ อย่างน้อยหนึ่ งค่าของ x ในขอบเขตที่กาหนด ที่ทาให้
P(x) is true’
สัญลักษณ์: x P(x)
การอ่าน: ‘there exists x’
ถ้า universe of discourse คือ {n1,n2,…,nk}, แล้วค่าความเป็ นจริง
ของ x P(x) คือ
x P(x) P(n1) P(n2) … P(nk)
Existential Quantifier: ตัวอย่าง
กาหนดให้ P(x,y) ย่อมาจาก statement ‘x+y=5’
What does the expression x y P(x,y) mean?
Which universe(s) of discourse make it true?
สรุปค่าความเป็ นจริงของ Quantifiers
ตารางสรุปค่าความเป็ นจริงของ Quantifier
Statement True when…
False when...
x P(x)
P(x) เป็ นจริงสาหรับทุกค่าของ x
มีอย่างน้อย 1 ค่าใน x ที่ทาให้P(x)
เป็ นเท็จ
x P(x)
มีอย่างน้อย 1 ค่าใน x ที่ทาให้P(x)
เป็ นจริง
P(x) เป็ นเท็จสาหรับทุกค่าของ x
ค่ำควรระวังในกำรใช้ Quantifier
ปกติการใช้ ประโยคหลักจะเชื่อมกันด้วย ไม่ใช่
ตัวอย่าง
x(
At(x, ECT) smart(x) )
ผิดเพราะจะหมายความว่า “ทุกคนที่เรียน ECT และ ทุกคนเก่ง”
x(
: นักศึกษาทุกคนที่เรียน ECT จะเก่ง
At(x, ECT) smart(x) ) ถูก
ปกติการใช้ ประโยคหลักจะเชื่อมกันด้วย ไม่ใช่
ตัวอย่าง
x(
: นักศึกษาบางคนที่เรียน ECT จะเก่ง
At(x, ECT) smart(x) )
ผิดเพราะประโยคสามารถเป็ นจริงได้ ถึงคนที่เก่งจะไม่เรียน ECT
x( At(x,
ECT) smart(x) ) ถูก
Nested Quantifier
บางครั้งความต้องการที่จะแสดงประโยคที่ซบั ซ้อนมากขึ้ น จะมีการใช้ตวั บ่ง
ปริมาณหลายตัว เช่น
พี่น้องคือญาติ
x y Brother(x,y) Sibling(x,y)
x y y x สามารถเขียน x,y ได้เพื่อให้ดงู า่ ยขึ้ น
x y y x สามารถเขียน x,y ได้เพื่อให้ดงู า่ ยขึ้ น
x y ไม่เหมือนกับ y x
x
y Loves(x,y)
มีบางคนที่รก
ั ทุกๆคนในโลก
y
x Loves(x,y)
ทุกๆคนในโลกนี้ ถูกใครบางคนรัก
Nested Quantifier: ค่ำควำมจริง
Statement
True when...
False when...
xy P(x,y)
P(x,y) เป็ นจริงเมื่อทุกคู่ของ x,y
เป็ นจริง
เมื่อมีคู่ x,y อย่างน้อย 1 คูท่ ี่ทาให้
P(x,y) เป็ นเท็จ
สาหรับทุกค่า x, จะมีคา่ y อย่าง
น้อย 1 ค่าที่ทาให้ P(x,y) เป็ นจริง
เมื่อมีคา่ x อย่างน้อย 1 ค่าที่ทาให้
P(x,y) เป็ นจริงสาหรับทุกค่าของ y
เมื่อมีคา่ x อย่างน้อย 1 ค่าที่ทาให้
P(x,y) เป็ นเท็จสาหรับทุกค่าของ y
สาหรับทุกค่า x, จะมีคา่ y อย่างน้อย
1 ค่าที่ทาให้ P(x,y) เป็ นเท็จ
เมื่อมีคู่ x,y อย่างน้อย 1 คูท่ ี่ทาให้
P(x,y) เป็ นจริง
P(x,y) เป็ นเท็จสาหรับทุกคู่ของ x,y
xy P(x,y)
xy P(x,y)
xyP(x,y)
Nested Quantifier: ตัวอย่ำงที่ 1
จงแสดงในรูปแบบของ predicate logic สาหรับ statement ที่วา่
เลขจานวนเต็มมีจานวนไม่จากัด
(there is an infinite number of integers)
วิธีทา:
1.
กาหนด P(x,y) เป็ น Predicate สาหรับ x<y
2.
กาหนดให้ universe of discourse เป็ นจานวนเต็ม, Z
3.
เพราะฉะนั้นสามารถเขียน statement ได้วา่
x y P(x,y)
Nested Quantifier: ตัวอย่ำงที่ 2
จงแสดง commutative law of addition for R
จะต้องแสดงให้ได้วา่ ในทุกคู่ของจานวนจริง x,y สมการ x+y=y+x
จะต้องเป็ นจริงเสมอ
วิธีทำ :
1.
กาหนดให้ P(x,y) เป็ น Predicate สาหรับ x+y
2.
กาหนดให้ universe of discourse เป็ นจานวนจริง , R
3.
เพราะฉะนั้นสามารถเขียน statement ได้วา่
x y (P(x,y) P(y,x))
เขียนอีกแบบโดยไม่ตอ้ งใช้ Predicate คือ x y (x+y = y+x)
Nested Quantifier: ตัวอย่ำงที่ 3
จงแสดง multiplicative law สาหรับตัวเลขที่ไม่ใช่ 0
ขอบเขตในรูปแบบคณิตศาสตร์เขียนได้วา่ R \ {0}
ต้องการแสดงว่า ในทุกๆ จานวนจริง x จะมีคา่ y อย่างน้อย 1 ค่าที่ทาให้ผล
คูณออกมาเป็ น 1 (xy=1)
เขียนได้เป็ น ?
Nested Quantifier: ตัวอย่ำงที่ 4
x y (x-y = y-x)
กาหนดให้ Universe of discourse เป็ นจานวนจริง R
commutativity สาหรับการลบ ตาม Predicate ข้างต้น ให้ค่าจริง
หรือเท็จ ?
Nested Quantifier: ตัวอย่ำงที่ 5
จงแสดง statement ต่อไปนี้ ในรูปแบบของ Predicate
Logic:
“There
is a number x such that
when it is added to any number, the result is that
number and
if it is multiplied by any number, the result is x”
กาหนด universe of discourse คือ Z (จานวนเต็ม)
ควำมสัมพันธ์ของ และ
x P(x) x P(x)
x P(x)
x P(x)
x P(x) x P(x)
x P(x) x P(x)
ตัวอย่ำง :
ทุกคนชอบไอศครีม
x Loves(x, ICE-CREAM)
สามารถเขียนได้อีกอย่าง
x Loves(x, ICE-CREAM)
Negation: ตัวอย่ำงที่ 1
จงนานิ เสธเข้าไปใน Statement
1. ในโลกนี้ ดอกกุหลาบไม่ได้มีสีแดงทุกดอก
Rose(x)
คือ x เป็ นดอกกุหลาบ, Red(x) คือ x มีสีแดง
Universe of discourse คือ ดอกไม้
x (Rose(x) Red(x))
2. ในโลกนี้ ไม่มีคนที่เพียบพร้อมทุกอย่าง
Person(x)
คือ x เป็ นคน, Perfect(x) คือ x เป็ นคนเพืยบพร้อมทุกอย่าง
Universe of discourse คือ สิ่งมีชีวต
ิ บนโลก
x (Person(x) Perfect(x))
Negation: แบบฝึ กหัด
จงเขียน statement ด้านล่างใหม่โดยการนานเสธเข้าไปข้างใน:
x ( y z P(x,y,z) z y P(x,y,z))
x y ( x2 y )
แบบฝึ กหัดทำส่ง
1.
2.
จงเขียนเป็ นประโยคสัญลักษณ์โดยใช้ตวั บ่งปริมาณ เมื่อ universe of discourse
เป็ นเซตของจานวนจริง
มีจานวนจริง x ซึ่ง x + 0 = 2x
มี x และ y บางตัวบวกกันได้ 5
มี x บางตัว เมื่อคูณกับ y ทุกตัวจะได้ y เสมอ
กาหนดให้ universe of discourse = {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)
แบบฝึ กหัดทำส่ง
3.
4.
จงเขียน predicate ของ “มีคนไทยซึ่งเป็ นผูห้ ญิง แต่ไม่มีผมยาว” และ
predicate ที่เป็ นนิ เสธ
กาหนด universe of discourse คือ คนในประเทศไทย
W(x) แทน “x เป็ นผูห
้ ญิง”
L(x) แทน “x ผมยาว”
จงหานิ เสธของ
xy(xy=1)
x(x>0) x(x2<0)
x(x0) x(x0)