Inferensi pada FOL
(First Order Logic)
Kecerdasan Buatan/
Artificial Intelligence
Rekyan Regasari Mardi Putri, ST, MT Lailil Muflikhah, S.Kom, M.Sc
Imam Cholissodin, S.Si., M.Kom
Pokok Bahasan
1. Mengubah FOL inference ke PL inference
2. Unification
3. Inference Rule untuk FOL
4. Forward chaining
5. Backward chaining
6. Resolution (
The Next
)
FOL to PL
Ide tahun 60-an :
o Kita sudah melihat mekanisme inference untuk propositional logic
Inference rule : Modus Ponens
Normal form : Horn clause
Algoritma : Forward chaining, Backward chaining
Inference rule : Resolution
Normal form : Clause Normal Form (CNF)
Algoritma : Proof-by-contradiction
o Pendekatan-pendekatan ini sound dan complete.
o Cara mudah melakukan inference FOL :
Jika KB dan query dalam FOL bisa diterjemahkan ke dalam
FOL to PL
Instantiation :
o Ground term : sebuah term tanpa variable, mis: Ani, Ayah(Anto), 2007
o Instantiation : kalimat di mana sebuah variable diganti dengan sebuah ground term (diperoleh dengan mengaplikasikan sebuah substitution)
o Contoh :
α = ∀ x mahasiswa(x , PTIIKUB) Genius(x )⇒
β = ∃ x mahasiswa(x , Gundar ) pintar (x )∧
σ = {x /Anto}
SUBST(σ, α) menghasilkan instantiation :
• mahasiswa(Anto, PTIIKUB) Genius(Anto)⇒
• SUBST(σ, β) menghasilkan instantiation:
FOL to PL
o untuk sembarang variable v dan ground term g
FOL to PL
Existential Instantiation :
o Untuk sembarang variable v, kalimat α dan constant k yang tidak
muncul di knowledge-base :
FOL to PL
Menghilangkan quantifier dan variable :
o Menghilangkan :∀
Universal instantiation bisa digunakan berkali-kali untuk
menambahkan kalimat baru.
KB yang baru logically equivalent dengan yang lama.
o Menghilangkan :∃
Existential instantiation cukup digunakan sekali untuk
menggantikan kalimat existential.
KB yang baru tidak logically equivalent dengan yang lama,
tetapi satisfiable iff KB yang lama juga satisfiable →
FOL to PL
Contoh :
o Andaikan KB berisi kalimat-kalimat berikut :
∀ x King(x) Greedy (x) Evil (x) y Greedy (y)∧ ⇒ ∀
King(John) Brother (Richard , John)
o Jika kita mengambil semua kemungkinan instantiation dari kalimat universal, kita dapatkan KB sbb :
King(John) Greedy (John) Evil (John)∧ ⇒
King(Richard) Greedy (Richard ) Evil (Richard)∧ ⇒
Greedy (John) Greedy (Richard)
King(John) Brother (Richard , John)
FOL to PL
Inference FOL menggunakan inference PL :
o Ide dasar : ubah KB + query dari FOL menjadi PL, lalu gunakan resolution.
o Masalah : dengan adanya function, jumlah ground term menjadi
infinite.
Greedy (Father (John)), Greedy (Father (Father (John)))
Greedy (Father (Father (Father (John)))), dst.
o Teorema Herbrand (1930) : jika FOL KB |= α, ada sebuah finite subset PL KB |= α.
o Ide dasar : For n = 0 to ∞
• Buat propositional KBn dengan depth-n ground term
• Periksa apakah KBn |= α
o Masalah (lagi!) : kalau α di-entail OK, kalau tidak → infinite loop.
o Teorema Church-Turing (1936) : Entailment untuk FOL bersifat
FOL to PL
Masalah dengan propositionalization :
o Propositionalization menghasilkan banyak kalimat irelevan.
o Contohnya, dari KB berikut :
∀ x King(x) Greedy (x) Evil (x)∧ ⇒
∀ y Greedy (y)
King(John)
Brother (Richard , John)
manusia bisa cepat mengerti kalau Evil (John), namun
propositionalization menghasilkan :
King(Richard) Greedy(Richard) Evil (Richard)∧ ⇒
Greedy (Richard)
yang tidak relevan.
o Dengan p buah predicate k-ary dan n constant, ada p × nk
Unification
(x) bisa “dicocokkan” dengan King(John) dan Greedy (y).Contoh: θ = {x /John, y /John}
Definisi unification
Unification
Contoh unification :
o Standardized apart variable menghilangkan overlap, mis: Sayang(x101, Ani)
P q θ
Sayang(Anto, x ) Sayang(Anto, Ani ) {x /Ani }
Sayang(Anto, x ) Sayang(y , Ani ) {x /Ani , y /Anto}
Sayang(Anto, x ) Sayang(y , Ibu (y )) {y /Anto, x /Ibu (Anto)
Inference Rule untuk FOL
Generalized Modus Ponens (GMP) :
o Inference rule GMP :
o GMP dengan KB yang berisi definite clauses (seperti Horn clause pada PL): p1 p∧ 2 . . . p∧ ∧ n q⇒
o Semua variable diasumsikan universally quantified
o GMP adalah hasil lifting MP : “mengangkat” inference rule PL ke FOL.
Inference Rule untuk FOL
Contoh knowledge base
:
o Kalimat : “The law says that, it is a crime for an American to sell weapons to hostile nations. The country Nono, an enemy of America, has some missiles, and all of its missiles were sold to it by Colonel West, who is American.”
o Kalimat : “Hukum mengatakan bahwa, suatu kejahatan bagi orang Amerika yang menjual senjata ke negara-negara yang bermusuhan. Negara Nono dalah musuh Amerika, yang memiliki beberapa rudal, dan semua rudalnya dari yang dijual oleh Kolonel West, yang merupakan orang Amerika.
Buktikan bahwa Col. West adalah criminal!
o Penyelesaian :
o . . . it is a crime for an American to sell weapons to hostile nations :
Inference Rule untuk FOL
Contoh knowledge base :
o Kalimat : “The law says that, it is a crime for an American to sell weapons to hostile nations. The country Nono, an enemy of America, has some missiles, and all of its missiles were sold to it by Colonel West, who is American.”
Buktikan bahwa Col. West adalah criminal!
o Penyelesaian :
o An enemy of America counts as “hostile” : Enemy (x , America) Hostile(x )⇒
Forward Chaining
Forward chaining pada FOL dengan GMP :
o Mirip dengan forward chaining pada PL.
o Mulai dari fakta yang diketahui (clause tanpa premise), mis :
Owns(Nono, M1), Missile(M1)
o “Aktifkan” (trigger) rule yang premise-nya diketahui (satisfied) → tambahkan kesimpulan rule ke KB, mis :
Missile(x ) Owns(Nono, x ) Sells(West, x , Nono)∧ ⇒
o Ulangi sampai query terbukti, atau tidak ada fakta baru yang bisa ditambahkan ke KB.
Forward Chaining
Forward Chaining
Contoh Forward Chaining FOL :
o. . . it is a crime for an American to sell weapons to hostile nations :
oAn enemy of America counts as “hostile” : Enemy (x , America) Hostile(x )⇒
oWest, who is American . . . :
American(West)
Forward Chaining
Contoh Forward Chaining FOL :
o. . . it is a crime for an American to sell weapons to hostile nations : oAn enemy of America counts as “hostile” :
Enemy (x , America) Hostile(x )⇒
oWest, who is American . . . :
American(West)
Forward Chaining
Forward Chaining
Sifat Forward Chaining :
o Sound dan complete untuk first-order definite clause.
o Datalog= first-order definite clause tanpa function. Time complexity FC pada Datalog → polynomial
o Tapi pada kasus umum, bisa infinite loop kalau α tidak di-entail. (Konsekuensi dari teorema Church-Turing : entailment adalah semidecidable)
o Proses pattern matching pada premise NP-hard.
Pattern matching premise NP-hard(Non-deterministic Polynomial-time hard)?
o Query ASK(KB,Colorable()) jhj CSP-nya menemui solusi!
o Terdapat kasus CSP 3SAT (satisfiability pada CNF dengan clause berukuran 3 literal) yang diketahui NP-hard.
Backward chaining
Backward chaining
Backward chaining
Backward chaining
Backward chaining
Backward chaining
Backward chaining
Backward chaining
Backward chaining
Sifat Backward Chaining :
o Depth-first search :
linear space complexity incomplete (infinite loop) repeated state
Resolution
Resolution pada FOL :
o Resolution inference rule pada FOL (lifting resolution PL) :
di mana
o Contoh :
di mana θ = {x /Anto}
Resolution
Mengubah FOL ke CNF :
“Everyone who loves all animals is loved by someone:”
∀ x [ y Animal (y ) = Loves(x , y )] = [ y Loves(y , x )]∀ ⇒ ⇒ ∃
oStandardize variables: setiap quantifier variable-nya beda
∀ x [ y Animal (y ) ¬Loves(x , y )] [ z Loves(z , x )]∃ ∧ ∨ ∃
oSkolemize: generalisasi existential instantiation. x diganti Skolem function universal ∃
Resolution
Contoh pembuktian dengan resolution :