1 Pertemuan 7 Using Predicate logic continue…. Matakuliah: T0264/Inteligensia Semu Tahun: Juli 2006 Versi:2/2
2 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : >
3 Outline Materi Materi 1 Materi 2 Materi 3 Materi 4 Materi 5
4 5.4 Resolution PENGERTIAN RESOLUSI merupakan teknik pembuktian yang lebih efisien, karena fakta-fakta akan diubah terlebih dulu kebentuk KLAUSA. Pembuktian kebenaran suatu pernyataan dilakukan dengan cara menegasikan pernyataan tersebut, kemudian dicari kontradiksi dari pernyataan-pernyataan yang sudah ada.
Conversion to Clause Form Algorithm : Convert to Clause Form 1. Eliminate ,using : a b= a b. 2. Reduce the scope of each to a single term, using : ( p) = p de morgan’s laws : (a b) = a b (a b) = a b x : P(x) = x : P(x) x : P(x) = x : P(x) 3. Standardize variables. 4. Move all quantifiers to the left of the formula without changing their relative order.
6 Algorithm : Convert to Clause Form 5.Eliminate existential quantifiers by inserting Skolem functions. 6.Drop the prefix. 7.Convert the matrix into a conjuction of disjuncts, using associativity and distributivity. 8.Create a separate clause for each conjuct. 9.Standardize the variables in the set of clauses generated in step 8, using the fact that ( x ; P(x) Q(x)) = x :P(x) x : Q(x)
7 Contoh 1 : KONVERSI KE BENTUK KLAUSA Pernyataan “ Setiap orang yang mengenal Hitler, maka ia akan menyukainya atau berfikir bahwa orang yang membunuh orang lain itu gila” Bentuk wff kalimat tersebut adalah : x : [orang(x) kenal(x,Hitler)] [suka(x,Hitler) ( y: z: bunuh(y,z) gila(x,y)]
8 PENERAPAN ALGORITMA 1. x : [orang(x) kenal(x,Hitler)] [suka(x,Hitler) ( y: z: bunuh(y,z) gila(x,y)] 2. x : [ orang(x) kenal(x,Hitler)] [suka(x,Hitler) ( y: ( z: bunuh(y,z)) gila(x,y))] 3.Sudah sesuai 4. x : y : z : [ orang(x) kenal(x,Hitler)] [suka(x,Hitler) ( bunuh(y,z)) gila(x,y)] 5.Sudah sesuai 6.[ orang(x) kenal(x,Hitler)] [suka(x,Hitler) ( bunuh(y,z)) gila(x,y)] 7. orang(x) kenal(x,Hitler) suka(x,Hitler) bunuh(y,z) gila(x,y) 8.Sudah sesuai 9.Sudah sesuai
9 Examples 2 : Conversion to Clause Form Suppose we know that all Romans who know Marcus either hate Caesar or think that anyone who hates anyone is crazy. Represent these sentences to wff form : x : [Roman(x) know(x,Marcus)] [hate(x,Caesar) ( y : z : hate(y,z) thinkcrazy(x,y))] Algorithm applications 1. Eliminate x : [Roman(x) know(x,Marcus)] [hate(x,Caesar) ( y : ( z : hate(y,z)) thinkcrazy(x,y))] 2. Reduce scope of x : Roman(x) know(x,Marcus)] [hate(x,Caesar) ( y : z : hate(y,z) thinkcrazy(x,y))]
10 Examples of Conversion to Clause Form 3.Standardize variables. x : P(x) x : Q(x) will be convert to x : P(x) y : Q(y) 4. Move quantifiers. x : y : z :[ Roman(x) know(x,Marcus)] [hate(x,Caesar) ( hate(y,z) thinkcrazy(x,y))] 5. Eliminate existential quantifiers. y : President(y) will be convert to President(S1) while x : y : father-of(y,x) will be converted to x : father-of(S2(x),x)
11 Examples of Conversion to Clause Form 6. Drop the prefix. [ Roman(x) know(x,Marcus)] [hate(x,Caesar) ( hate(y,z) thinkcrazy(x,y))] 7. Convert to a conjuction of disjuncts. Roman(x) know(x,Marcus) hate(x,Caesar) hate(y,z) thinkcrazy(x,y)
12 Formula of Conversion to Clause Form Problem : x:[Roman(x) know(x,Marcus)] [hate(x,Caesar) ( y: z:hate(y,z) thinkcrazy(x,y)] Solution : Flatten Separate out quantifiers Conjunctive Normal Form : Roman(x) know(x,Marcus) hate(x,Caesar) hate(y,z) thinkcrazy(x,z) Clause Form is defined to be a wff in Conjunctive Normal Form but with no instances of conector of
The Basis of Resolution Resolusi adalah proses iterasi yang sederhana. Pada setiap langkah, 2 klausa yang disebut sebagai klausa parent dibandingkan (resolve) dengan dan menghasilkan klausa baru (resolvent). Andaikan ada 2 klausa sbb : winter summer winter cold Antara winter dan winter salah satu pasti bernilai benar, maka klausa baru adalah : summer cold
Resolution in Propositional Logic A Few Facts in Propositional Logic Given AxiomsClause Form PP(1) (P Q) R P Q R (2) (S T) Q S Q (3) T Q (4) TT(5)
15 Resolution in Propositional Logic
The Unification Algorithm Algorithm : Unify(L1,L2) 1.If L1 or L2 are both variables or constant, then : (a) If L1 and L2 is a variable, then return NIL. (b) Else if L1 is a variable, then if L1 occurs in L2 then return {FAIL} else return(L2/L1). (c) Else if L2 is a variable, then if L2 occurs in L1 then return {FAIL} else return(L1/L2). (d) Else return {FAIL}. 2.If the initial predictive symbols in L1 and L2 are not identical, then return {FAIL}. 3.IF L1 and L2 have a different number of arguments, then return {FAIL} 4.Set SUBST to NIL. (At the end of this procedure, SUBST will contain all the substitutions used to unify L1 and L2.
17 The Unification Algorithm 5. For i 1 to number of arguments in L1 : (a) Call Unify with the ith argument of L1 and the ith argument of L2, putting result in S. (b) If S contains FAIL then return {FAIL} (c) If S is not equal to NIL then : i) Apply S to the remainder of both L1 and L2 ii) SUBST := APPEND(S,SUBST). 6. Return SUBST.
18 The Unification Algorithm Q(x) P(x) FAIL P(x) P(y) x/y P(Marcus) P(y)Marcus/y P(Marcus) P(Julius) FAIL P(x,x) P(y,z) (y/x) P(y,y) (z/y)(y/x)
19 Finding General Substitution Given : hate(x,y) hate(Marcus,z) We could produce : (Marcus/x, z/y) (Marcus/x, y/z) (Marcus/x, Caesar/y, Caesar/z) (Marcus/x, Polonius/y, Polonius/z)
Resolution in Predicate Logic Cara yang mudah untuk menentukan bahwa dua pernyataan dikatakan kontradiksi adalah jika salah satu dari pernyataan tersebut dapat dijadikan sebagai negasinya. Dalam hal penggunaan resolusi untuk ekspresi dalam predicate logic, maka digunakan algoritma unifikasi untuk meletakan pasangan dari pernyataan yang dapat ditolak (cancel).
21 Resolution in Predicate Logic Copntoh : 1. man(Marcus) 2. man(x1) mortal(x1) Dengan substitusi : Marcus/x1 Tidak menghasilkan resolvent : mortal(x1) Aplikasi proses unifikasi terhadap resolvent dihasilkan : mortal(Marcus)
22 Algorithm : Resolution 1.Convert all the proposition of F to clause form. 2.Negate P and convert the result to clause form. Add it to the set of clause in step 3.Repeat until either a contradiction is found or no progress can be made,or a predetermined amount of effort has been expended. a.Select two clause. Call these the parent clauses.
23 Algorithm : Resolution b.Resolve them together. The resolvent will be the disjunction of all of the literals of both parent clauses with appropriate substitutions performed and with the following exception: If there is one pairs of literals T1 and T2 suchthat one of the parent clauses contains T1 and the other contains T2 and if T1 and T2 are unifiable,then neither T1 nor T2 should appear in the resolvent.If there is more than one pair of complementary literals,only one pair should be ommitted from the resolvent.
24 Algorithm : Resolution c.If the resolvent is the empty clause, then a contradiction has been found. If it is not, then add it to the set of clause available to the procedure.
25 Contoh Resolusi Pada Predicate Logic Pernyataan-pernyataan dalam bentuk klausa : 1.mahasiswa (Chandra) 2.Informatika (Chandra) 3. informatika(x1) v Fasilkom(x1) 4.sulit(Algoritma) 5. Fasilkom(x2) v suka(x2,Algoritma) v benci(x2,Algoritma) 6.suka(x3,f(x3)) 7. mahasiswa(x4) v sulit(y1) v hadir(x4,y1) v suka(x4,y1) 8. hadir(Chandra,Algoritma)
26 Buktikan apakah Chnadra benci Algoritma dengan Resolusi sulit(Algoritma) v hadir(Chandra,Algoritma) hadir(chandra,Algoritma) null mahasiswa(Chandra) v sulit(Algoritma) v hadir(Chandra,Algoritma) suka(Chandra,Algoritma) Chandra/x4 ; Algoritma/y1 7 Informatika(Chandra) v suka(Chandra,Algoritma) Fasilkom(Chandra) v suka(Chandra,Algoritma) 3 benci(Chandra,Algoritma) 5 Chandra/x2 Chandra/x1
The Need to Try Several Substitutions Resolusi merupakan metoda sangat bagus untuk membuktikan tanpa harus mencoba semua substitusi. Tetapi hal ini tidak selalu dengan melakukan eliminasi terhadap satu atau lebih substitusi. Sebagai contoh : a) benci(Chandra,Joni) b) benci(Chandra,Juli) Jika ingin dibuktikan bahwa Chandra membenci berbagai aturan, maka akan dicoba semua substitusi (a) dan (b) sebelum mendapatkan kontradiksinya.
Question Answering Perhatikan pernyatan-pernyataan dalam bentuk KLAUSA berikut ini : 1. laki-laki(Mangun) 2. Jawa(Mangun) 3. lahir(Mangun,1840) 4. man(x1) v mortal(x1) 5. Jawa(x2) v mati(x2,1879) 6. meletus(Merapi,1879) 7. pastimati(x3) v lahir(x3,t1) v lb(t2 – t1,150) v mati(x3,t2) 8. Sekarang = a. hidup(x4,t3) v mati(x4,t3) 9b. Mati(x5,t4) v hidup(x5,t4) 10. mati(x6,t5) v lb(t6,t5) v mati(x6,t6)
29 Question Answering Bagaimana teknik resolusi dapat digunakan untuk menjawab YA atau TIDAK dari pertanyaan yang diberikan seperti : Apakah Mangun masih hidup ? mati(Mangun, ??) Bisa dibuktikan juga untuk pertanyaan : Kapan Mangun mati ? mati(Mangaun,1879)
30 Ekstraksi Jawaban Menggunakan Resolusi t : mati(Mangun,t) mati(Mangun,t) 1879/t,Mangun/x1 Jawa(Mangun) mati(Mangun,t) Jawa(Mangun) Jawa(x1) V mati(x1,1879)
31 Ekstraksi Jawaban Menggunakan Resolusi Jawa(x1) V mati(x1,1879) Jawa(Mangun) V mati(Mangun,1879) mati(Mangun,t) V mati(Mangun,t) Jawa(Mangun) mati(Mangun,1879) 1879/t,Mangun/x1
Natural Deduction Resolusi dapat diimplementasikan sebagai prosedur pembuktian untuk representasi yang uniform. Contoh : x : judge(x) crooked(x) educated(x) Bentuk KLAUSA : judge(x) v crooked(x) v educated(x) Untuk membuktikan seseorang not judge dengan membuktikan not crooked dan not educated. Pembuktian menggunakan human theorem proving dan didefinisikan sebagai natural deduction.
33 > End of Pertemuan 7 Good Luck