Predicate logic
Download
1 / 34

ตรรกะ เพรดิเคต (Predicate Logic) - PowerPoint PPT Presentation


  • 238 Views
  • Uploaded on

การแทนความรู้ทางปัญญาประดิษฐ์ โดยตรรกะ เพรดิเคต. ตรรกะ เพรดิเคต (Predicate Logic). ไวยากรณ์และความหมาย (Syntax and Semantic) การอนุมาน ( Inference ) การทำให้เท่ากัน ( Unification ) รี โซลู ชัน ( Resolution ). ตรรกะ เพตดิเคต (Predicate Logic).

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' ตรรกะ เพรดิเคต (Predicate Logic)' - erin-rosales


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Predicate logic

ตรรกะเพรดิเคต(Predicate Logic)

ไวยากรณ์และความหมาย (Syntax and Semantic)

การอนุมาน (Inference)

การทำให้เท่ากัน (Unification)

รีโซลูชัน (Resolution)


Predicate logic1
ตรรกะ โดยตรรกะเพตดิเคต(Predicate Logic)

  • การแทนความรู้ (Knowledge Representation)ทางปัญญาประดิษฐ์มีหลายวิธีเช่น

    • Rules

    • Frames

    • Bayesian Networks

    • Predicate Logic

    • อื่นๆ


Syntax semantic
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 เป็นต้น

    • เครื่องหมายวงเล็บ เช่น { }, ( ) และ [ ] เป็นต้น


Syntax semantic1
Syntax โดยตรรกะและ Semantic (ต่อ)

  • สูตรที่ถูกต้องตามหลักไวยากรณ์ของตรรกะเพรดิเคต เรียกว่า สูตรรูปดี (well form formula; wff)

    • สูตรอะตอม (Atomic Formula) คือสูตรที่เล็กที่สุดที่ถูกต้องตามหลักไวยากรณ์เช่น FATHER(SOMCHAI, SOMSRI)

SOMCHAI และ SOMSRI คือค่าคงที่ (Constant)

Predicate Symbol ใช้แสดงความสัมพันธ์ของสิ่งต่างๆใน domain นั้น เช่น


ตัวอย่างการเขียน โดยตรรกะเพรดิเคตตรรกะตามหลักไวยากรณ์

  • FATHER(x,y)

  • Daughter(SOMSRI,x)

    • SOMSRI เป็นค่าคงที่ ส่วน x เป็นตัวแปร

  • HAS-MONEY(SOMCHAI,salary(SOMCHAI))

    • salary เป็นฟังก์ชันที่ใช้หาค่าเงินเดือน

xและ y คือตัวแปร (VariableSymbol)


Interpretation
การแปลความหมาย โดยตรรกะ(Interpretation)

  • การแปลความหมาย คือ การกำหนดค่าให้กับเพรดิเคต ตัวแปร และฟังก์ชัน ใน domain นั้นๆของสูตรอะตอม

  • เมื่อมีการนิยามการแปลความหมายให้กับสูตรอะตอมแล้ว เราสามารถหาค่าทางตรรกะให้กับสูตรอะตอมนั้นๆได้ ว่าเป็น จริง (True) หรือ เท็จ (False) เช่น FATHER(x,y)

    • กำหนดให้ FATHER คือความสัมพันธ์เป็นพ่อ โดย x เป็นพ่อของ y และกำหนดให้ x คือนาย ก. และ y คือนาย ข.


Connective
ตัวเชื่อม ( โดยตรรกะConnective)

  • ตัวเชื่อมใช้เชื่อมสูตรอะตอมหลายสูตรเข้าด้วยกันเพื่อเป็นสูตรใหม่

  • ตัวเชื่อมในเพรดิเคตตรรกะมีดังนี้

    • และ (and) ใช้สัญลักษณ์

    • หรือ(or)ใช้สัญลักษณ์

    • นิเสธ (not) ใช้สัญลักษณ์ ~

    • ถ้า-แล้ว (If-then)(Implication)ใช้สัญลักษณ์

  • การใช้ตัวเชื่อมและ

    • John lives in a yellow house.

      LIVE(JOHN,HOUSE-1)^COLOR(HOUSE-1,YELLOW)


Connective1
ตัวเชื่อม ( โดยตรรกะ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)


Quantifier
ตัวบ่งปริมาณ โดยตรรกะ(Quantifier)

  • ตัวบ่งปริมาณเอกภพ (Universal Quantifier) ใช้สัญลักษณ์

  • ตัวบ่งปริมาณมีอยู่ (Existential Quantifier) ใช้สัญลักษณ์

  • ตัวอย่างการใช้ตัวบ่งปริมาณ

    • All Elephants are gray.

    • There is a person who wrote computer-chess.

  • เนื้อหาที่จะสอนในเรื่องนี้จะกล่าวถึง First-order predicate logic เท่านั้น


ตัวอย่างการเขียนตรรกะตัวอย่างการเขียนตรรกะเพรดิเคต

สูตรรูปดีที่ถูกต้อง เช่น

สูตรรูปดีที่ไม่ถูกต้อง เช่น


Predicate logic2

ตรรกะเพรดิเคต(Predicate Logic)

ไวยากรณ์และความหมาย (Syntax and Semantic)

การอนุมาน (Inference)

การทำให้เท่ากัน (Unification)

รีโซลูชัน (Resolution)


Inference
การอนุมาน โดยตรรกะ(Inference)

  • กฎโมดัสโพเน็นส์(Modus Ponens)

    W1 W2

  • กฎเจาะจงตัวแปรเอกภาพ (Universal Specialization)

W1

W2


ตัวอย่างการอนุมาน โดยตรรกะ

Universal Specialization

Modus Ponens

สูตรใหม่ที่ได้จากการอนุมาน เรียกว่า Theorem


Predicate logic3

ตรรกะเพรดิเคต(Predicate Logic)

ไวยากรณ์และความหมาย (Syntax and Semantic)

การอนุมาน (Inference)

การทำให้เท่ากัน (Unification)

รีโซลูชัน (Resolution)


Substitution
การแทนค่า โดยตรรกะ(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)


Substitution1
การแทนค่า โดยตรรกะ(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


Unification
การทำให้เท่ากัน โดยตรรกะ(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)


อัลกอริทึมในการหา โดยตรรกะmgu

Algorithm Unify(L1,L2)

1. IfL1หรือ L2 เป็นตัวแปรหรือค่าคงที่ Then

IfL1= L2 Thenคืนค่า NIL

Else If L1เป็นตัวแปร Then

IfL1ปรากฏใน L2 Thenคืนค่า {Fail} Else คืนค่า {L2/L1}

Else IfL2เป็นตัวแปร Then

IfL2ปรากฏใน L1 Thenคืนค่า {Fail} Else คืนค่า {L1/L2}

Elseคืนค่า {Fail}


อัลกอริทึมในการหา โดยตรรกะmgu(ต่อ)

2. Ifสัญลักษณ์เพรดิเคต หรือ สัญลักษณ์ฟังก์ชัน ของ L1 ไม่เท่ากับ L2 Thenคืนค่า {Fail}

3. IfL1 มีจำนวน argument ไม่เท่ากับ L2 Thenคืนค่า {Fail}

4. SUBST = NIL

5. Fori =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


Predicate logic4

ตรรกะเพรดิเคต(Predicate Logic)

ไวยากรณ์และความหมาย (Syntax and Semantic)

การอนุมาน (Inference)

การทำให้เท่ากัน (Unification)

รีโซลูชัน (Resolution)


Resolution
รี โดยตรรกะโซลูชัน (Resolution)

  • รีโซลูชัน เป็นการอนุมานที่ใช้กับสูตรที่เป็นอนุประโยค(Clause)

  • อนุประโยค (Clause) คือสูตรที่อยู่ในรูป disjunction ของ literals (การ or กันของ atomic formulas) เช่น P(x) v Q(x,y) v ~R(A)

  • การแปลงตรรกะเพรดิเคตไปเป็นอนุประโยค

    1. Eliminate implication symbols : เปลี่ยนรูป ไปเป็น

    2.Reduce scope of negation symbols


การแปลงตรรกะ โดยตรรกะเพรดิเคตไปเป็นอนุประโยค

3. Standardize variables : เปลี่ยนชื่อตัวแปรตามขอบเขตของตัวบ่งปริมาณ

4. Eliminate existential quantifiers : แทนค่าตัวแปรด้วย skolem function

5. Convert to prenex form ย้ายตัวบ่งปริมาณเอกภพมาอยู่หน้าสุด โดยรูปแบบที่ได้ใหม่นี้เรียกว่า prenex form


การแปลงตรรกะ โดยตรรกะเพรดิเคตไปเป็นอนุประโยค (ต่อ)

6. Put prenex form in conjunctive normal form : ทำให้สูตรทุกตัวเชื่อมกันด้วย And (^)

7. Eliminate universal quantifier : ตัดตัวปริมาณเอกภพทิ้งได้เลย เนื่องจากตัวแปรทุกตัวมีตัวบ่งปริมาณเป็น ตัวบ่งปริมาณเอกภพทั้งสิ้น

8. Eliminate ^ symbol : แทนด้วยเซต {X1,X2,…,Xn} โดยที่ Xi เป็น disjunction of literals หรือ อนุประโยคซึ่งจะได้ 3 อนุประโยค


การแปลงตรรกะ โดยตรรกะเพรดิเคตไปเป็นอนุประโยค (ต่อ)

9. Rename variables : เปลี่ยนชื่อตัวแปร เพื่อให้แต่ละอนุประโยคมีตัวแปรไม่ซ้ำกัน


รี โดยตรรกะโซลูชันของอนุประโยคพื้นฐาน

  • อนุประโยคพื้นฐาน (Ground Clause) คืออนุประโยคที่ไม่มีตัวแปร

  • ในการทำรีโซลูชันของอนุประโยคพื้นฐานจะรับอนุประโยคพ่อแม่ (Parent Clause) 2 อนุประโยค ส่วนอนุประโยคผลลัพธ์ที่ได้เรียกว่า รีโซเวนท์(Resolvent)


รี โดยตรรกะโซลูชันของอนุประโยคพื้นฐาน (ต่อ)


General resolution
รี โดยตรรกะโซลูชันทั่วไป (General Resolution)

  • ในการทำรีโซลูชันกับอนุประโยคที่มีตัวแปรนั้น ต้องใช้การทำให้เท่ากัน เพื่อทำให้อนุประโยคพ่อแม่ประกอบด้วยสัจพจน์เติมเต็ม (Complimentary Literals)

  • สัจพจน์เติมเต็ม คือสัจพจน์ (Literals) ที่ต่างกันเฉพาะเครื่องหมายนิเสธ (~) เช่น

    • P(x) และ ~P(x)


General resolution1
รี โดยตรรกะโซลูชันทั่วไป (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}


ตัวอย่างการทำรี โดยตรรกะโซลูชันทั่วไป

กำหนดให้ {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} จะได้

  • จะได้ Resolventเป็น {P[z,f(y)], Q(y), ~Q(z)}

  • แต่ถ้าให้ {li} = {P[x,f(A)],P[x,f(y)]} และ {mi} = {~P[z,f(A)}

  • จะได้ Resolventเป็น {Q(A),~Q(z)}

s = {z/x}

s = {z/x,A/y}


Resolution refutation
การปฏิเสธแบบรี โดยตรรกะโซลูชัน (Resolution Refutation)

  • สัจพจน์ (Literals) 2 ตัวใดๆจะขัดแย้งกันหรือไม่ จะดูว่าสัจพจน์ตัวหนึ่งสามารถทำให้เท่ากัน (unify) กับนิเสธของสัจพจน์อีกตัวหนึ่งได้หรือไม่ เช่น

    • MAN(x) กับ ~MAN(Spot) ขัดแย้งกัน

    • วิธีการปฏิเสธแบบรีโซลูชัน คือการพิสูจน์ว่าสูตร (wff) W เป็นผลสรุปของเซ็ตของสูตร K ทำได้โดยการพิสูจน์ว่า

      ขัดแย้งกัน

เนื่องจากเราสามารถทำให้ MAN(x) เท่ากันกับ MAN(Spot)


Resolution refutation1
การปฏิเสธแบบรี โดยตรรกะโซลูชัน (Resolution Refutation) (ต่อ)

K = {MAN(Marcus),~MAN(x) V MORTAL(x)}

W = MORTAL(Marcus)

= {MAN(Marcus),~MAN(x) V MORTAL(x),~MORTAL(Marcus)}

~MORTAL(Marcus) ขัดแย้งกับ MAN(Marcus) และ ~MAN(x) V MORTAL(x) แสดงว่า MORTAL(Marcus) เป็นผลสรุปของ K


Resolution refutation2
การปฏิเสธแบบรี โดยตรรกะโซลูชัน (Resolution Refutation) (ต่อ)

K = {MAN(Marcus),~MAN(x) V MORTAL(x)}

W = MORTAL(Marcus)

= {MAN(Marcus),~MAN(x) V MORTAL(x),~MORTAL(Marcus)}

จากการทำรีโซลูชันระหว่าง ~MAN(x) V MORTAL(x) และ ~MORTAL(Marcus) จะได้ ~MAN(Marcus) ซึ่งขัดแย้งกับอนุประโยคแรก (MAN(Marcus))แสดงว่า MORTAL(Marcus) เป็นผลสรุปของ K


ตัวอย่าง โดยตรรกะการปฏิเสธแบบรีโซลูชัน


ตัวอย่างการปฏิเสธแบบรีตัวอย่างการปฏิเสธแบบรีโซลูชัน


ad