Pengantar Intelijensia Buatan · Forward chaining Contoh Kita mulai dengan KB yang mengandung...

Post on 17-Dec-2020

4 views 0 download

Transcript of Pengantar Intelijensia Buatan · Forward chaining Contoh Kita mulai dengan KB yang mengandung...

Pengantar Intelijensia Buatan

Pertemuan 14

FOL Reasoning & PROLOG

Previously on AI

Pengenalan FOL

Metode inferensi FOL

Masalah dengan inferensi ??

Topic for Today

Generalized Modus Ponens

Forward & backward Chaining

Resolution & Refutation

Introduction to PROLOG

Generalized modus ponens

Generalized modus ponens menggabungkan and

introduction, universal elimination, dan modus ponens

menjadi satu aksi.

Untuk setiap atomic sentence p1’,p2’, dan q ,

dimana terdapat subtitution Ө sehingga SUBST(Ө,p1’)=SUBST(Ө,p1), untuk semua i :

),(

)..(,',....',' 2121

qSUBST

qpppppp nn

Generalized modus ponens

Contoh :

◦ P1’ is Missile(M1) P1 is Missile(x)

◦ P2’ is Owns(y,M1) P2 is Owns(nono,x)

◦ Ө is {x/M1,y/nono} q is Sells(west,nono,x)

◦ Then SUBST(Ө,q) is Sells (west,nono,M1)

Generalized modus ponens

Generalized modus ponens adalah metode inferensi yang efisien karena 3 alasan :

1. GMP mereduksi 3 langkah inferensi yang kecil menjadi

satu langkah yang besar.

2. Daripada menggunakan universal elimination GMP

mengambil langkah yang masuk akal dengan

menggunakan subtitusi yang dijamin menguntungkan

3. Agar lebih efisien GMP menggunakan langkah pre-

compilation dengan menggubah semua kalimat di KB

dalam bentuk canonical form agar mudah untuk

diproses

Canonical form

Dalam GMP semua kalimat dalam KB harus berupa

atomic sentence atau sebuah implikasi dengan

konjungsi di sebelah kiri dan sebuah kalimat atomic

di sebelah kanan

Bentuk seperti ini disebut juga horn sentences atau

canonical form.

Kita harus menggubah semua kalimat yang masuk

ke dalam KB ke dalam bentuk canonical.

Unification

Unification adalah bagian yang penting dalam GMP,

unification mengambil dua kalimat dan

mengembalikan sebuah subtitusi yang membuat

dua kalimat itu sama apabila subtitusi seperti itu

memungkinkan.

Example : UNIFY(Knows(John, x), Knows(John, Jane) = {x/Jane}

),(),(,),( qSUBSTpwhereSUBSTqpUNIFY

Unification Algorithm

Sample proof revisited

erica)Country(Am

America),Enemy(Nono

no)Country(No

est)American(W

Hostile(x)America)Enemy(x,

Weapon(x)Missile(x)

x)Nono,,Sells(WestMissile(x)x)Owns(Nono,

)Missile(M1

M1)Owns(Nono,

)Criminal(xy)z,Sells(x, Country(z)Weapon(y))American(x

Constructing a reasoning program

Ada dua cara untuk menggunakan generalized modus ponens untuk membentuk reasoning program:

◦ Forward Chaining

◦ Backward Chaining

Forward Chaining.

Forward Chaining dilakukan ketika sebuah fakta baru (anggap saja p1) dimasukan ke dalam KB

Idenya adalah mencari semua implikasi yang mungkin terjadi dengan p1 sebagai premis, ketika suatu implikasi sudah ditemukan, implikasi itu mentrigger kembali forward chaining, sampai akhirnya semua fakta yang bisa ditemukan dikeluarkan

Forward chaining

Contoh

◦ Kita mulai dengan KB yang mengandung implikasi dalam

bentuk horn clause.

◦ Cari kemudian fakta yang dapat diunifikasikan ke

dalamnya.

Hostile(x)America)Enemy(x,

Weapon(x)Missile(x)

x)Nono,,Sells(WestMissile(x)x)Owns(Nono,

)Criminal(xy)z,Sells(x,Hostile(z) Country(z)Weapon(y))American(x

Forward chaining

Forward chaining secara bertahap membentuk gambaran baru akan dunia bersamaan dengan penerimaan data, forward chaining tidak diarahkan untuk menyelesaikan suatu permasalahan tertentu, karenanya metoda ini disebut juga data-driven atau data-directed procedure.

Forward chaining dapat menghasilkan banyak kesimpulan yang pada akhirnya tidak digunakan (sia-sia)

Forward chaining Criminal(West)

Weapon(M1) Sells(West,Nono,M1)

Missile(M1) American(West)

Hostile(Nono)

Owns(Nono,M1) Enemy(Nono, America)

FOL-FC-ASK(KB, American(West))

FOL-FC-ASK(KB, Country(Nono))

FOL-FC-ASK(KB, Enemy(Nono, America))

FOL-FC-ASK(KB, Hostile(Nono))

FOL-FC-ASK(KB, Owns(Nono,M1))

FOL-FC-ASK(KB, Missile(M1))

FOL-FC-ASK(KB, Sells(West,Nono,M1))

FOL-FC-ASK(KB, Weapon(M1))

FOL-FC-ASK(KB, Criminal(West))

Country(Nono)

Forward Chaining

Backward Chaining

Backward chaining di desain untuk menemukan semua jawaban atas pertanyaan yang diajukan kepada knowledge base.

Cara kerjanya adalah dengan memeriksa apakah jawaban dapat dihasilkan secara langsung dari knowledge base, lalu ia mencari semua implikasi yang kesimpulannya adalah jawaban dari pertanyaan dan kemudian berusaha untuk memenuhi semua premis yang membentuk implikasi tersebut

Backward Chaining

Criminal(x)

American(x) Weapon(y) Country(z) Sells(x,z,y) Hostile(z)

Yes{x/West}

Missile(y)

Yes{y/M1t}

Enemy(z,America)

Yes{z/nono}

Yes{z/Nono}

Owns(Nono,M1) Missile(M1)

Yes{} Yes{}

Backward Chaining

Backward Chaining

Criminal(x)

Weapon(y) Country(z) Sells(x,z,y) Hostile(America)

Yes {x/West}

Missile(y)

Yes {y/M1t}

Yes {z/America} failed

American(x)

Resolution

Generalized modus ponens tidak complete,

masih ada beberapa kalimat benar yang tidak

bisa diinferensi oleh prosedur ini.

Untuk mengatasi masalah ini kita

menggunakan metode resolusi, prosedure

inferensi yang lebih complete.

Inference resolution rule ?

,

,

Resolution inference

Untuk mencari solusi menggunakan

resolusi kita harus mengubah KB menjadi

bentuk Conjunctive Normal Form (CNF)

atau Implicative Normal Form (INF).

Generalized resolution (disjunction)

nk

mj

qqq

ppp

.......

.......

1

1

)..............,( 111111 nkkmjj qqqqppppSUBST

Generalized resolution

(implication)

4nk13n1

2n11nj1

q....q...qs....s

r...rp....p...p

)..........

..........,(

11121

31111

nkkn

nmjj

qqqqrr

ssppppSUBST

Example of resolution

Anggaplah kita memiliki KB berikut :

Kita ingin membuktikan S(A) adalah true

S(x)R(x)x,

S(x)Q(x)x,

R(x)P(x)x,

Q(x)P(x)x,

Example of resolution

S(y)P(y)

S(y)P(y)

)()( xRxP

)()(

)()(

zSzR

zSzR

Q(w)P(w)

Q(w)P(w)

)()(

)()(

ySyQ

ySyQ

)()( xRxS

)(zStrue

Apply:

-elemination

Apply: elem

Apply: elem, resolution

Apply: Resolution

Refutation

Chaining dengan resolusi lebih baik dari GMP

namun tetap tidak complete

Cobalah menyelesaikan masalah ini dengan

resolution dalam sebuah KB kosong :

Prosedur inferensi yang totally complete adalah

refutation

)()( xPxP

Refutation

Refutation adalah pembuktian berdasarkan

kontradiksi atau reductio ad absurdum

Idenya adalah untuk membuktikan P itu benar,

maka kita asumsikan bahwa P itu salah

(tambahkan ~P ke KB) dan buktikan bahwa suatu

kontradiksi terjadi (true => false, false => true).

Jika suatu kontradiksi terjadi maka P dikatakan

terbukti benar

PKBfalsePKB )(

Refutation example

falsezS )(

)()( ySyP )()( xRxPtrue

)()( zSzR

)()( wQwP )()( ySyQ

)()( xRxStrue

)(zStrue

falsetrue

Rules Facts

Conversion to Normal Form

Conversion to Normal Form

Example proof of refutation

Jack owns a dog

Every dog owner is an animal lover

No animal lover kills animal

Either jack or curiosity killed the cat, who is

named tuna

Did “curiosity” kill the cat ? / Who kills the cat ?

FOL

Animal(x)Cat(x)x,

Cat(Tuna)

Tuna)osity,Kills(CuriTuna),Kills(Jack

falsey)Kills(x,Animal(y)r(x)AnimalLovex,

r(y)AnimalLoveDog(x))x)Owns(y,x,(y,

Dog(x)x)Owns(Jack,x,

Implicative Normal Form

Animal(x)Cat(x)

Cat(Tuna)

Tuna)osity,Kills(CuriTuna),Kills(Jack

falsey)Kills(x,Animal(y)r(x)AnimalLove

r(x)AnimalLovey)Owns(x,Dog(y)

D)Owns(Jack,

Dog(D)

Refutation ?

Dog (D) Dog (y) Owns(x,y) AnimalLover(x)

Owns(x,D) AnimalLover(x) Owns(Jack,D)

AnimalLover(Jack)

Refutation

)(TunaCat )()( xAnimalxCat

falsexyKillsxAnimalyrAnimalLove ),()()(

)(TunaAnimal

falseTunaxKillsyrAnimalLove ),()(

Refutation

falseTunaxKillsyrAnimalLove ),()( )(JackrAnimalLove

falseTunaJackKills ),(

Refutation

False

falseTunaCuriosityKills ),(),(

),(

TunaCuriosityKills

TunaJackKills

falseTunaJackKills ),( ),( TunaJackKills

Another resolution example

Introduction to prolog

PROLOG = “Programmation en logique” (Marseille, 1972)

Declarative programming language with procedural elements

Used for problems of AI / knowledge-based (expert) systems

Motivation:

reconcile use of logic as declarative knowledge representation with

procedural representation of knowledge

Strengths:

Logical descriptions of problems, instead of HOW to solve them let

computer work out the solution

Well-suited for problems involving search

Simple programs can be understood by reading the code

Limitations

Flow of control / procedural semantics

Facts

Prolog-program = collection of clauses

Facts

Rules

Goals (queries), shaped liked facts

Facts describe properties of objects and relations between objects; comparable to

tables in a relational database

student Name

Hans Tina Lars Frida

Prolog notation:

student(hans).

student(tina).

student(lars).

student(frida).

interest Name

Hans Tina Lars Frida

Prolog notation:

interest(hans,math).

interest(tina,datalogi).

interest(lars,physics).

interest(frida,math).

Math

Physics

Subject

Datalogi

Math

Prolog notation:

<predicate_name>(arg1, arg2…).

Rules

Simple IF-THEN statements

“Every reasonable student is interested in math.”

interest(X,math) :- student(X).

head body

All specified conditions in the body (all clauses) must be true to

make the predicate in the head true.

Conjunctions (AND connected):

mother(X,Person) :- parent(X,Person),sex(X,female).

Disjunctions (OR connected):

interest(X,prolog) :- interest(X,artificial_intelligence).

interest(X,prolog) :- interest(X,logic).

Goals

Goals are queries

One ore more subgoals

?- student(thomas).

=> no

Pattern matching: a fact matches a goal if

Same predicate

Same corresponding arguments.

Goals can contain variables:

?- student(X).

=> X = hans ;

=> X = tina ;

=> X = lars ;

=> X = frida ;

=> no.

Variables are instantiated, but cannot be declared!

Prolog’s Inference mechanism

Leftmost-depth-first search for solutions

Matching: either two terms are identical, or they become identical by variable

substitution (resolution based on pred.logic)

Processing of subgoals from left to right

Backtracking

1: s(a).

2: s(b).

3: q(a).

4: p(X) :- s(X).

5: p(Y) :- q(Y).

?- p(Z).

p(Z)

s(Z) 4 5

1 2

Z=a Z=b Z=a

q(Z) 3

Backward Chaining

the Prolog interpreter uses backward chaining:

starting from a goal (theorem)

prove the goal by searching for rules whose ”head” (action part)

matches the goal

Given are the following rules:

HX

BC

EBH

CFH

CAE

facts

prove

BA,

X

X

H

F&C B&E

F C

B

B E

A C

B

OR

AND AND

AND

1

2

3

4

5

Latihan Inferensi dan Refutasi FOL (1)

Buktikan bahwa “Marcus membenci Caesar”

Facts ◦ Marcus adalah seorang manusia

◦ Marcus orang Pompei

◦ Marcus mencoba membunuh Caesar

◦ Caesar adalah seorang penguasa

Rules ◦ Semua orang Pompei adalah orang Romawi

◦ Semua orang Romawi setia pada Caesar atau membenci Caesar

◦ Setiap orang setia pada minimal 1 orang

◦ Orang hanya mencoba membunuh penguasa yang kepadanya mereka tidak setia

Latihan FOL (2)

Gunakan FOL ini menjadi bentuk CNF

Buktikan : Rich(Me) dengan refutation.

)()(,

)()(,

)()(,

)()(,

xRichxngEarlyEarnix

xRichxifiedHighlyQualx

xngEarlyEarnixPHDx

xQualifiedxPHDx