AI ตรรกะเพรดิเคต

Download Report

Transcript AI ตรรกะเพรดิเคต

การแทนความรู้ทางปัญญาประดิษฐ์ โดยตรรกะเพรดิเคต
• ไวยากรณ์ และความหมาย (Syntax and Semantic)
• การอนุมาน (Inference)
• การทาให้ เท่ ากัน (Unification)
• รีโซลูชัน (Resolution)
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
1
ตรรกะเพตดิเคต (Predicate Logic)
• การแทนความรู้ (Knowledge
ปัญญาประดิษฐ์มีหลายวิธี เช่น
Representation)
ทาง
 Rules
 Frames
 Bayesian Networks
 Predicate Logic
 อื่นๆ
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
2
Syntax และ Semantic
• เพรดิเคตลอจิก มีองค์ประกอบดังนี้
 สัญลักษณ์เพรดิเคต (Predicate Symbol) ใช้ตวั อักษร 1 ตัวขึ้นไป ขึ้นต้นด้วย
ตัวอักษรตัวใหญ่ เช่น P, Q, R, Father หรื อ FATHER เป็ นต้น
 สัญลักษณ์ตวั แปร (Variable Symbol) ใช้ตวั อักษร 1 ขึ้นไป เป็ นตัวอักษรตัว
เล็ก เช่น x, y และ z เป็ นต้น
 สัญลักษณ์ฟังก์ชนั (Function Symbol) ใช้ตวั อักษร 1 ขึ้นไป เป็ นตัวอักษรตัว
เล็ก เช่น f, g และ h เป็ นต้น
 สัญลักษณ์ค่าคงที่ (Constant Symbol) ใช้ตวั อักษร 1 ตัวขึ้นไป ขึ้นต้นด้วย
ตัวอักษรตัวใหญ่ เช่น A, B, C, Somchai หรื อ SOMCHAI เป็ นต้น
 เครื่ องหมายวงเล็บ เช่น { }, ( ) และ [ ] เป็ นต้น
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
3
Syntax และ Semantic (ต่ อ)
• สู ตรที่ ถูกต้องตามหลักไวยากรณ์ ของตรรกะเพรดิ เคต เรี ยกว่า
สูตรรู ปดี (well form formula; wff)
• สู ตรอะตอม (Atomic Formula) คือสู ตรที่เล็กที่สุดที่ถูกต้องตาม
หลักไวยากรณ์ เช่น FATHER(SOMCHAI, SOMSRI)
SOMCHAI และ SOMSRI คือค่ าคงที่ (Constant)
Predicate Symbol ใช้ แสดงความสั มพันธ์
ของสิ่ งต่ างๆใน domain นั้น เช่ น
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
4
ตัวอย่ างการเขียนเพรดิเคตตรรกะตามหลักไวยากรณ์
• FATHER(x,y)
x และ y คือตัวแปร (Variable Symbol)
• Daughter(SOMSRI,x)
 SOMSRI เป็ นค่าคงที่ ส่ วน x เป็ นตัวแปร
• HAS-MONEY(SOMCHAI,salary(SOMCHAI))
 salary เป็ นฟังก์ชนั ที่ใช้หาค่าเงินเดือน
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
5
การแปลความหมาย (Interpretation)
• การแปลความหมาย คือ การกาหนดค่าให้กบั เพรดิเคต ตัวแปร
และฟังก์ชนั ใน domain นั้นๆของสูตรอะตอม
• เมื่อมีการนิ ยามการแปลความหมายให้กบั สู ตรอะตอมแล้ว เรา
สามารถหาค่าทางตรรกะให้กบั สู ตรอะตอมนั้นๆได้ ว่าเป็ น จริ ง
(True) หรื อ เท็จ (False) เช่น FATHER(x,y)
 กาหนดให้ FATHER คือความสัมพันธ์เป็ นพ่อ โดย x เป็ นพ่อของ y
และกาหนดให้ x คือนาย ก. และ y คือนาย ข.
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
6
ตัวเชื่อม (Connective)
• ตัวเชื่อมใช้เชื่อมสูตรอะตอมหลายสูตรเข้าด้วยกันเพื่อเป็ นสูตรใหม่
• ตัวเชื่อมในเพรดิเคตตรรกะมีดงั นี้
 และ (and) ใช้สัญลักษณ์ 
 หรือ (or) ใช้สัญลักษณ์ 
 นิเสธ (not) ใช้สัญลักษณ์ ~
 ถ้ า-แล้ว (If-then) (Implication) ใช้สัญลักษณ์
• การใช้ตวั เชื่อมและ
 John lives in a yellow house.
LIVE(JOHN,HOUSE-1)^COLOR(HOUSE-1,YELLOW)
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
7
ตัวเชื่อม (Connective) (ต่ อ)
• การใช้ตวั เชื่อมนิเสธ
 John don’t write computer-chess
~WRITE(JHON,COMPUTER-CHESS)
• การใช้ตวั เชื่อมถ้า-แล้ว
 If the car belongs to John then it is green
OWNS(JHON,CAR-1)
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
COLOR(CAR-1,GREEN)
8
ตัวบ่ งปริมาณ (Quantifier)
• ตัวบ่งปริ มาณเอกภพ (Universal Quantifier) ใช้สัญลักษณ์ 
• ตัวบ่งปริ มาณมีอยู่ (Existential Quantifier) ใช้สัญลักษณ์ 
• ตัวอย่างการใช้ตวั บ่งปริ มาณ
 All Elephants are gray.
 x ( E L E P H A N T ( x )  C O L O R ( x , G R A Y ))
 There is a person who wrote computer-chess.
 x (W R IT E ( x , C O M P U T E R  C H E SS ))
• เนื้อหาที่จะสอนในเรื่ องนี้จะกล่าวถึง First-order predicate logic
านัญญาประดิ
้ น ษฐ์ : ตรรกะเพรดิเคต
หลักเท่
การปั
9
ตัวอย่ างการเขียนตรรกะเพรดิเคต
สูตรรู ปดีที่ถูกต้อง เช่น
สูตรรู ปดีที่ไม่ถูกต้อง เช่น
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
10
การแทนความรู้ทางปัญญาประดิษฐ์ โดยตรรกะเพรดิเคต
• ไวยากรณ์ และความหมาย (Syntax and Semantic)
• การอนุมาน (Inference)
• การทาให้ เท่ ากัน (Unification)
• รีโซลูชัน (Resolution)
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
11
การอนุมาน (Inference)
• กฎโมดัสโพเน็นส์ (Modus Ponens)
W1
W2
W1
W2
• กฎเจาะจงตัวแปรเอกภาพ (Universal Specialization)
 x (W ( x ))
W ( A)
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
12
ตัวอย่ างการอนุมาน
 x (W 1( x )  W 2( x ))
W 1( A )  W 2( A )
Universal Specialization
W 1( A )
Modus Ponens
W 2( A )
สูตรใหม่ที่ได้จากการอนุมาน เรี ยกว่า Theorem
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
13
การแทนความรู้ทางปัญญาประดิษฐ์ โดยตรรกะเพรดิเคต
• ไวยากรณ์ และความหมาย (Syntax and Semantic)
• การอนุมาน (Inference)
• การทาให้ เท่ ากัน (Unification)
• รีโซลูชัน (Resolution)
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
14
การแทนค่ า (Substitution)
• การแทนค่า คือการแทนพจน์ (term) ให้กบั ตัวแปรในสู ตร โดย
สู ตรที่ได้จากการแทนค่าเรี ยกว่า ตัวอย่ างการแทน (Substitution
Instance)
• ตัวอย่าง Substitution Instance ของ P(x,f(y),B) เช่น P(z,f(w),B)
หรื อ P(C,f(A),B)
• การแทนค่าสามารถเขียนให้อยูใ่ นรู ปของเซ็ตคู่ลาดับ
s = {t1/v1, t2/v2,…, tn/vn} โดย tn คือ term ที่ n นามาแทนค่า
ใน variable ที่ n (vn)
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
15
การแทนค่ า (Substitution) (ต่ อ)
• ตัวอย่างเซ็ตคู่ลาดับของการแทนค่า
 ถ้า Substitution Instance ของ P(x,f(y),B) คือ P(z,f(w),B) สามารถ
เขียนคู่ลาดับของการแทนค่าได้คือ s1 = {z/x, w/y}
 ถ้า Substitution Instance ของ P(x,f(y),B) คือ P(C,f(A),B) สามารถ
เขียนคู่ลาดับของการแทนค่าได้คือ s2 = {C/x, A/y}
• เราสามารถเขียนสู ตรใหม่ที่ได้จากการแทนค่า s ในสู ตร E (ตัวอย่าง
ข้างบน)ดังนี้
 P(z,f(w),B) = P(x,f(y),B)s1
 P(C,f(A),B) = P(x,f(y),B)s2
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
16
การทาให้ เท่ ากัน (Unification)
• สู ตร 2 สู ตรใดๆ (สู ตร E1 และ สู ตร E2) สามารถทาให้เท่ากันได้ ถ้ามี
ตัวแทนค่า (s) ที่ทาให้ (E1)s = (E2)s โดยเราจะเรี ยก s ว่า ตัวทาให้ เท่ ากัน
(Unifier) ของ E1 และ E2 เช่น
 E1 = P(x,f(y),B) และ E2 = P(x,f(B),B)
 Unifier ของ E1 และ E2 คือ s = {A/x,B/y}
 (E1)s = P(A,f(B),B) และ (E2)s = P(A,f(B),B)
• ตัวทาให้เท่ากันกว้างสุ ด (Most General Unifier; mgu) คือตัวทาให้
เท่ากันที่ใช้การแทนค่าที่นอ้ ยที่สุด
• mgu ของ E1 = P(x,f(y),B) และ E2 = P(x,f(B),B) คือ s = {B/y} ซึ่งจะได้
(E1)s = (E2)s = P(x,f(B),B)
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
17
อัลกอริทมึ ในการหา mgu
Algorithm Unify(L1,L2)
1. If L1 หรื อ L2 เป็ นตัวแปรหรื อค่าคงที่ Then
If L1 = L2 Then คืนค่า NIL
Else If L1 เป็ นตัวแปร Then
If L1 ปรากฏใน L2 Then คืนค่า {Fail} Else คืนค่า {L2/L1}
Else If L2 เป็ นตัวแปร Then
If L2 ปรากฏใน L1 Then คืนค่า {Fail} Else คืนค่า {L1/L2}
Else คืนค่า {Fail}
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
18
อัลกอริทมึ ในการหา mgu (ต่ อ)
2. If สัญลักษณ์เพรดิเคต หรื อ สัญลักษณ์ฟังก์ชนั ของ L1 ไม่เท่ากับ L2 Then คืนค่า {Fail}
3. If L1 มีจานวน argument ไม่เท่ากับ L2 Then คืนค่า {Fail}
4. SUBST = NIL
5. For i =1 to จานวน argument ของ L1 Do
5.1 เรี ยก algorithm unify ด้วย argument ตัวที่ i ของ L1 และ L2 เก็บผลลัพธ์ที่ S
5.2 If S = Fail Then คืนค่า {Fail}
5.3 If S ไม่เท่ากับ NIL Then
5.3.1 แทนค่าพจน์ (term) ให้กบั ตัวแปรใน L1 และ L2 ตาม S
5.3.2 SUBST = append(S,SUBST)
6. คืนค่า SUBST
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
19
การแทนความรู้ทางปัญญาประดิษฐ์ โดยตรรกะเพรดิเคต
• ไวยากรณ์ และความหมาย (Syntax and Semantic)
• การอนุมาน (Inference)
• การทาให้ เท่ ากัน (Unification)
• รีโซลูชัน (Resolution)
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
20
รีโซลูชัน (Resolution)
• รี โ ซ ลู ชั น เ ป็ น ก า ร อ นุ ม า น ที่ ใ ช้ กั บ สู ต ร ที่ เ ป็ น อ นุ ป ร ะ
โยค (Clause)
• อนุประโยค (Clause) คือสู ตรที่อยูใ่ นรู ป disjunction ของ literals (การ or กัน
ของ atomic formulas) เช่น P(x) v Q(x,y) v ~R(A)
• การแปลงตรรกะเพรดิเคตไปเป็ นอนุประโยค
(  x ){ P ( x )  {(  y )[ P ( y )  P ( f ( x , y ))]  ~ (  y )[ Q ( x , y )  P ( y )]}}
1. Eliminate implication symbols : เปลี่ยนรู ป
X Y
ไปเป็ น
~ X Y
(  x ){~ P ( x )  {(  y )[~ P ( y )  P ( f ( x , y ))]  ~ (  y )[~ Q ( x , y )  P ( y )]}}
2. Reduce scope of negation symbols
(  x ){~ P ( x )  {(  y )[~ P ( y )  P ( f ( x , y ))]  (  y )[ Q ( x , y )  ~ P ( y )]}}
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
21
การแปลงตรรกะเพรดิเคตไปเป็ นอนุประโยค
3. Standardize variables : เปลี่ยนชื่อตัวแปรตามขอบเขตของตัวบ่งปริ มาณ
(  x ){~ P ( x )  {(  y )[~ P ( y )  P ( f ( x , y ))]  (  w )[ Q ( x , w )  ~ P ( w )]}}
4. Eliminate existential quantifiers : แทนค่าตัวแปรด้วย skolem function
(  x ){~ P ( x )  {(  y )[~ P ( y )  P ( f ( x , y ))]  [ Q ( x , g ( x ))  ~ P ( g ( x ))]}}
5. Convert to prenex form ย้ายตัวบ่งปริ มาณเอกภพมาอยูห่ น้าสุ ด โดย
รู ปแบบที่ได้ใหม่น้ ีเรี ยกว่า prenex form
(  x )(  y ){~ P ( x )  {[~ P ( y )  P ( f ( x , y ))]  [ Q ( x , g ( x ))  ~ P ( g ( x ))]}}
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
22
การแปลงตรรกะเพรดิเคตไปเป็ นอนุประโยค (ต่ อ)
6. Put prenex form in conjunctive normal form : ทาให้สูตรทุกตัวเชื่อมกันด้วย
And (^)
(  x )(  y ){[~ P ( x )  ~ P ( y )  P ( f ( x , y ))]  [~ P ( x )  Q ( x , g ( x ))]  [~ P ( x )  ~ P ( g ( x ))]}
7. Eliminate universal quantifier : ตัดตัวปริ มาณเอกภพทิ้งได้เลย เนื่องจากตัว
แปรทุกตัวมีตวั บ่งปริ มาณเป็ น ตัวบ่งปริ มาณเอกภพทั้งสิ้ น
[~ P ( x )  ~ P ( y )  P ( f ( x , y ))]  [~ P ( x )  Q ( x , g ( x ))]  [~ P ( x )  ~ P ( g ( x ))]
8. Eliminate ^ symbol : แทน ( X 1  X 2  ...  X n ) ด้วยเซต {X1,X2,…,Xn}
โดยที่ Xi เป็ น disjunction of literals หรื อ อนุประโยค ซึ่งจะได้ 3 อนุประโยค
1) ~ P ( x )  ~ P ( y )  P ( f ( x , y )) 2) ~ P ( x )  Q ( x , g ( x )) 3) ~ P ( x )  ~ P ( g ( x ))
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
23
การแปลงตรรกะเพรดิเคตไปเป็ นอนุประโยค (ต่ อ)
9. Rename variables : เปลี่ยนชื่อตัวแปร เพื่อให้แต่ละอนุประโยคมี
ตัวแปรไม่ซ้ ากัน
1) ~ P ( x1 )  ~ P ( y )  P ( f ( x1 , y ))
2) ~ P ( x 2 )  Q ( x 2 , g ( x 2 ))
3) ~ P ( x 3 )  ~ P ( g ( x 3 ))
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
24
รีโซลูชันของอนุประโยคพืน้ ฐาน
• อนุประโยคพื้นฐาน (Ground Clause) คืออนุประโยคที่ไม่มีตวั แปร
• ในการทารี โซลูชนั ของอนุประโยคพื้นฐานจะรับอนุประโยคพ่อแม่
(Parent Clause) 2 อนุประโยค ส่ วนอนุประโยคผลลัพธ์ที่ได้เรี ยกว่า
รี โซเวนท์ (Resolvent)
P 1  P 2  ...  P n
~ P 1  Q 2  ...  Q m
P 2  ...  P n  Q 2  ...  Q m
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
25
รีโซลูชันของอนุประโยคพืน้ ฐาน (ต่ อ)
Parent Clauses
Resolvent
P and ~P  Q
Q
P  Q and ~P  Q
Q
P  Q and ~P  ~Q
~Q  Q or ~P  P
~P  P
~P  Q and ~Q  R
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
NIL
~P  R
26
รีโซลูชันทัว่ ไป (General Resolution)
• ในการทารี โซลูชนั กับอนุประโยคที่มีตวั แปรนั้น ต้องใช้การทา
ให้เท่ากัน เพื่อทาให้อนุประโยคพ่อแม่ประกอบด้วยสัจพจน์เติม
เต็ม (Complimentary Literals)
• สั จ พจน์ เ ติ ม เต็ม คื อ สั จ พจน์ (Literals)
ที่ ต่ า งกัน เฉพาะ
เครื่ องหมายนิเสธ (~) เช่น
 P(x) และ ~P(x)
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
27
รีโซลูชันทัว่ ไป (General Resolution) (ต่ อ)
การทารีโซลูชันทั่วไปประกอบด้ วยขั้นตอนดังนี้
1. กาหนดให้ Parent Clause คือ {Li} และ {Mi}
2. {li} และ {mi} เป็ นเซ็ตย่อยของ {Li} และ {Mi} ตามลาดับ โดยมี s ซึ่ ง
เป็ น mgu ของ {li} และ {~mi}
3. Resolvent ของอนุประโยค {Li} และ {Mi}คือ
{{Li} - {li}}s  {{Mi} - {mi}}s
4. สาหรับ 2 อนุประโยคใดๆ อาจมีการทา Resolvent มากกว่า 1 ครั้ง ขึ้นอยู่
กับการเลือก {li} และ {mi}
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
28
ตัวอย่ างการทารีโซลูชันทัว่ ไป
กาหนดให้ {Li} = {P[x,f(A)],P[x,f(y)],Q(y)} {Mi} = {~P[z,f(A)],~Q(z)}
{li} = {[P(x,f(A)]}
{mi} = {~P[z,f(A)}
จาก {li} และ {mi} จะได้ s = {z/x}
• จะได้ Resolvent เป็ น {P[z,f(y)], Q(y), ~Q(z)}
• แต่ถา้ ให้ {li} = {P[x,f(A)],P[x,f(y)]} และ {mi} = {~P[z,f(A)} s = {z/x,A/y}
• จะได้ Resolvent เป็ น {Q(A),~Q(z)}
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
29
การปฏิเสธแบบรีโซลูชัน (Resolution Refutation)
• สัจพจน์ (Literals) 2 ตัวใดๆจะขัดแย้งกันหรื อไม่ จะดูวา่ สัจพจน์
ตัวหนึ่งสามารถทาให้เท่ากัน (unify) กับนิเสธของสัจพจน์อีกตัว
หนึ่งได้หรื อไม่ เช่น
 MAN(x) กับ ~MAN(Spot) ขัดแย้งกัน
เนื่องจากเราสามารถทาให้ MAN(x) เท่ ากันกับ MAN(Spot)
 วิธีการปฏิเสธแบบรี โซลูชนั คือการพิสูจน์ว่าสู ตร (wff) W เป็ น
ผลสรุ ปของเซ็ตของสูตร K ทาได้โดยการพิสูจน์วา่ K  {~ W }
ขัดแย้งกัน
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
30
การปฏิเสธแบบรีโซลูชัน (Resolution Refutation) (ต่ อ)
K = {MAN(Marcus),~MAN(x) V MORTAL(x)}
W = MORTAL(Marcus)
K  {~ W }
= {MAN(Marcus),~MAN(x) V MORTAL(x),~MORTAL(Marcus)}
~MORTAL(Marcus)
ขั ด แย้ ง กั บ MAN(Marcus) และ
~MAN(x) V MORTAL(x) แสดงว่ า MORTAL(Marcus) เป็ น
ผลสรุปของ K
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
31
การปฏิเสธแบบรีโซลูชัน (Resolution Refutation) (ต่ อ)
K = {MAN(Marcus),~MAN(x) V MORTAL(x)}
W = MORTAL(Marcus)
K  {~ W }
= {MAN(Marcus),~MAN(x) V MORTAL(x),~MORTAL(Marcus)}
จากการทารีโซลูชันระหว่ าง ~MAN(x) V MORTAL(x) และ
~MORTAL(Marcus) จะได้ ~MAN(Marcus) ซึ่งขัดแย้ งกับอนุประโยค
แรก (MAN(Marcus)) แสดงว่ า MORTAL(Marcus) เป็ นผลสรุปของ K
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
32
ตัวอย่ างการปฏิเสธแบบรีโซลูชัน
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
33
ตัวอย่ างการปฏิเสธแบบรีโซลูชัน
หลักการปัญญาประดิษฐ์ : ตรรกะเพรดิเคต
34