Pengantar Intelijensia Buatan
Pertemuan 14
Previously on AI
Pengenalan FOL
Metode inferensi FOL
Topic for Today
Generalized Modus Ponens
Forward & backward Chaining
Resolution & Refutation
Generalized modus ponens
Generalized modus ponens menggabungkan and
introduction, universal elimination, dan modus ponens
menjadi satu aksi.
Untuk setiap atomic sentence p
1’,p
2’, dan q ,
dimana terdapat subtitution Ө sehingga
SUBST(Ө,p
1’)=SUBST(Ө,p
1),
untuk semua i :
)
,
(
)
..
(
,
'
,....
'
,
'
2
1
2
1
q
SUBST
q
p
p
p
p
p
p
n
n
Generalized modus ponens
Contoh :
◦
P
1’ is Missile(M1) P
1is Missile(x)
◦
P
2’ is Owns(y,M1) P
2is Owns(nono,x)
◦
Ө is {x/M1,y/nono} q is Sells(west,nono,x)
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}
)
,
(
)
,
(
,
)
,
(
p
q
whereSUBST
p
SUBST
q
UNIFY
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(West
Missile(x)
x)
Owns(Nono,
)
Missile(M1
M1)
Owns(Nono,
)
Criminal(x
y)
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
Forward Chaining.
Forward Chaining dilakukan ketika sebuah
fakta baru
(anggap saja p
1
) dimasukan ke
dalam KB
Idenya adalah mencari
semua implikasi
yang
mungkin terjadi dengan p
1
sebagai premis,
ketika suatu implikasi sudah ditemukan,
implikasi itu mentrigger kembali forward
chaining, sampai akhirnya semua fakta yang
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(West
Missile(x)
x)
Owns(Nono,
)
Criminal(x
y)
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)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
Backward Chaining
Criminal(x)
American(x) Weapon(y) Country(z) Hostile(z) Sells(x,z,y) 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
Criminal(x)
Weapon(y) Country(z) Hostile(America) Sells(x,z,y) 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
Inference resolution rule ?
,
,
Resolution inference
Untuk mencari solusi menggunakan
resolusi kita harus mengubah KB menjadi
bentuk
Conjunctive Normal Form
(CNF)
Generalized resolution (disjunction)
n k m jq
q
q
p
p
p
....
...
....
...
1 1)
....
...
....
...
,
(
p
1p
j 1p
j 1p
mq
1q
k 1q
k 1q
nSUBST
Generalized resolution
(implication)
4 n k 1 3 n 1 2 n 1 1 n j 1q
....
q
...
q
s
....
s
r
...
r
p
....
p
...
p
)
....
...
...
...
....
...
,
(
1 1 1 2 1 3 1 1 1 1 n k k n n m j jq
q
q
q
r
r
s
s
p
p
p
p
SUBST
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)
)
(
)
(
x
R
x
P
)
(
)
(
)
(
)
(
z
S
z
R
z
S
z
R
Q(w)
P(w)
Q(w)
P(w)
)
(
)
(
)
(
)
(
y
S
y
Q
y
S
y
Q
)
(
)
(
x
R
x
S
)
(z
S
true
Apply:
-elemination
Apply: elem
Apply: elem, 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
)
(
)
(
x
P
x
P
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
P
KB
false
P
KB
)
(
Refutation example
false
z
S
(
)
)
(
)
(
y
S
y
P
true
P
(
x
)
R
(
x
)
)
(
)
(
z
S
z
R
)
(
)
(
w
Q
w
P
Q
(
y
)
S
(
y
)
)
(
)
(
x
R
x
S
true
)
(z
S
true
false
true
Rules FactsExample 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
FOL
Animal(x)
Cat(x)
x,
Cat(Tuna)
Tuna)
osity,
Kills(Curi
Tuna)
,
Kills(Jack
false
y)
Kills(x,
Animal(y)
r(x)
AnimalLove
x,
r(y)
AnimalLove
Dog(x))
x)
Owns(y,
x,
(
y,
Dog(x)
x)
Owns(Jack,
x,
Implicative Normal Form
Animal(x)
Cat(x)
Cat(Tuna)
Tuna)
osity,
Kills(Curi
Tuna)
,
Kills(Jack
false
y)
Kills(x,
Animal(y)
r(x)
AnimalLove
r(x)
AnimalLove
y)
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
)
(Tuna
Cat
Cat
(
x
)
Animal
(
x
)
false
x
y
Kills
x
Animal
y
r
AnimalLove
(
)
(
)
(
,
)
)
(Tuna
Animal
false
Tuna
x
Kills
y
r
AnimalLove
(
)
(
,
)
Refutation
false
Tuna
x
Kills
y
r
AnimalLove
(
)
(
,
)
AnimalLove
r
(Jack
)
false
Tuna
Jack
Refutation
False
false
Tuna
Curiosity
Kills
(
,
)
)
,
(
)
,
(
Tuna
Curiosity
Kills
Tuna
Jack
Kills
false
Tuna
Jack
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
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.
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:
H X B C E B H C F H C A E facts prove