Predicate logic
This presentation is the property of its rightful owner.
Sponsored Links
1 / 34

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


  • 165 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

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

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 นั้น เช่น


Predicate logic

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

  • 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 logic

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

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

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


Predicate logic2

  • การแทนความรู้ทางปัญญาประดิษฐ์ โดยตรรกะเพรดิเคต

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

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

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

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

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


Inference

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

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

    W1 W2

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

W1

W2


Predicate logic

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

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)


Predicate logic

อัลกอริทึมในการหา 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}


Predicate logic

อัลกอริทึมในการหา 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


Predicate logic

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

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

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

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


Predicate logic

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

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

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

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


Predicate logic

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

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


Predicate logic

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

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

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


Predicate logic

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


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}


Predicate logic

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

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


Predicate logic

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


Predicate logic

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


  • Login