IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
IKI 30320: Sistem Cerdas
Kuliah 13: Inference in FOL
Ruli Manurung
Fakultas Ilmu Komputer Universitas Indonesia
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Outline
1Mengubah FOL ke PL
2Unification
3
Inference Rule untuk FOL
4
Forward chaining
5
Backward chaining
6
Logic programming
7
Resolution
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Outline
1Mengubah FOL ke PL
2Unification
3
Inference Rule untuk FOL
4Forward chaining
5
Backward chaining
6Logic programming
7Resolution
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Ide tahun 60-an
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:CNF
Algoritma: Proof-by-contradiction
Pendekatan-pendekatan ini sound dan complete.
Cara mudah melakukan inference FOL:
Jika KB dan query dalam FOL bisa diterjemahkan ke dalam
PL, beres!
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Ide tahun 60-an
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:CNF
Algoritma: Proof-by-contradiction
Pendekatan-pendekatan ini sound dan complete.
Cara mudah melakukan inference FOL:
Jika KB dan query dalam FOL bisa diterjemahkan ke dalam
PL, beres!
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Instantiation
Ground term
: sebuah term tanpa variable, mis: Ani,
Ayah(Anto), 2007
Instantiation
: kalimat di mana sebuah variable diganti
dengan sebuah ground term (diperoleh dengan
mengaplikasikan sebuah substitution)
Contoh
α = ∀
x mahasiswa(x , FasilkomUI) ⇒ pintar (x )
β = ∃
x mahasiswa(x , Gundar ) ∧ pintar (x )
σ = {x /Anto}
SUBST(σ, α) menghasilkan instantiation:
mahasiswa(Anto, FasilkomUI) ⇒ pintar (Anto)
SUBST(σ, β) menghasilkan instantiation:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Instantiation
Ground term
: sebuah term tanpa variable, mis: Ani,
Ayah(Anto), 2007
Instantiation
: kalimat di mana sebuah variable diganti
dengan sebuah ground term (diperoleh dengan
mengaplikasikan sebuah substitution)
Contoh
α = ∀
x mahasiswa(x , FasilkomUI) ⇒ pintar (x )
β = ∃
x mahasiswa(x , Gundar ) ∧ pintar (x )
σ = {x /Anto}
SUBST(σ, α) menghasilkan instantiation:
mahasiswa(Anto, FasilkomUI) ⇒ pintar (Anto)
SUBST(σ, β) menghasilkan instantiation:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Instantiation
Ground term
: sebuah term tanpa variable, mis: Ani,
Ayah(Anto), 2007
Instantiation
: kalimat di mana sebuah variable diganti
dengan sebuah ground term (diperoleh dengan
mengaplikasikan sebuah substitution)
Contoh
α = ∀
x mahasiswa(x , FasilkomUI) ⇒ pintar (x )
β = ∃
x mahasiswa(x , Gundar ) ∧ pintar (x )
σ = {x /Anto}
SUBST(σ, α) menghasilkan instantiation:
mahasiswa(Anto, FasilkomUI) ⇒ pintar (Anto)
SUBST(σ, β) menghasilkan instantiation:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Universal Instantiation
Sebuah kalimat dengan universal quantifier (
∀
) meng-entail
semua
instantiation-nya:
∀ v α SUBST ({v /g},α)
untuk sembarang variable v dan ground term g
Contoh
∀ x King(x) ∧ Greedy (x) ⇒ Evil(x) meng-entail: King(John) ∧ Greedy (John) ⇒ Evil(John)
King(Richard ) ∧ Greedy (Richard ) ⇒ Evil(Richard )
King(Father (John)) ∧ Greedy (Father (John)) ⇒ Evil(Father (John)) ..
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Existential Instantiation
Untuk sembarang variable v , kalimat α dan constant k yang
tidak muncul di knowledge-base
:
∃ v α SUBST ({v /k },α)
Contoh
∃ x Crown(x) ∧ OnHead (x, John) meng-entail:
Crown(C1) ∧OnHead (C1,John)
dengan syarat C1adalah constant symbol yangbaru, disebut Skolem
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Menghilangkan quantifier dan variable
Menghilangkan ∀
Universal instantiation bisa digunakan
berkali-kali
untuk
menambahkan kalimat baru.
KB yang baru logically equivalent dengan yang lama.
Menghilangkan ∃
Existential instantiation cukup digunakan
sekali
untuk
menggantikan kalimat existential.
KB yang baru
tidak
logically equivalent dengan yang
lama, tetapi satisfiable jhj KB yang lama juga
satisfiable →
inferentially equivalent
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contoh
Andaikan KB berisi kalimat-kalimat berikut:
∀ x King(x) ∧ Greedy (x) ⇒ Evil(x) ∀ y Greedy (y )
King(John)
Brother (Richard , John)
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)
KB yang baru dikatakanpropositionalized: proposition symbol-nya:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Inference FOL menggunakan inference PL
Ide dasar: ubah KB + query dari FOL menjadi PL, lalu gunakan resolution.
Masalah: dengan adanyafunction, jumlahground termmenjadiinfinite Greedy (Father (John))
Greedy (Father (Father (John)))
Greedy (Father (Father (Father (John)))), dst.
Teorema Herbrand (1930): jika FOL KB |= α, ada sebuahfinite
subsetPL KB |= α.
Ide dasar: For n = 0 to ∞
Buat propositional KBndengan depth-n ground term
Periksa apakah KBn|= α
Masalah (lagi!)
kalau α di-entail OK, kalau tidak → infinite loop.
Teorema Church-Turing (1936): Entailment untuk FOL bersifat semidecidable.
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Inference FOL menggunakan inference PL
Ide dasar: ubah KB + query dari FOL menjadi PL, lalu gunakan resolution.
Masalah: dengan adanyafunction, jumlahground termmenjadiinfinite Greedy (Father (John))
Greedy (Father (Father (John)))
Greedy (Father (Father (Father (John)))), dst.
Teorema Herbrand (1930): jika FOL KB |= α, ada sebuahfinite
subsetPL KB |= α.
Ide dasar: For n = 0 to ∞
Buat propositional KBndengan depth-n ground term
Periksa apakah KBn|= α
Masalah (lagi!)
kalau α di-entail OK, kalau tidak → infinite loop.
Teorema Church-Turing (1936): Entailment untuk FOL bersifat semidecidable.
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Inference FOL menggunakan inference PL
Ide dasar: ubah KB + query dari FOL menjadi PL, lalu gunakan resolution.
Masalah: dengan adanyafunction, jumlahground termmenjadiinfinite Greedy (Father (John))
Greedy (Father (Father (John)))
Greedy (Father (Father (Father (John)))), dst.
Teorema Herbrand (1930): jika FOL KB |= α, ada sebuahfinite
subsetPL KB |= α.
Ide dasar: For n = 0 to ∞
Buat propositional KBndengan depth-n ground term
Periksa apakah KBn|= α
Masalah (lagi!)
kalau α di-entail OK, kalau tidak → infinite loop.
Teorema Church-Turing (1936): Entailment untuk FOL bersifat semidecidable.
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Inference FOL menggunakan inference PL
Ide dasar: ubah KB + query dari FOL menjadi PL, lalu gunakan resolution.
Masalah: dengan adanyafunction, jumlahground termmenjadiinfinite Greedy (Father (John))
Greedy (Father (Father (John)))
Greedy (Father (Father (Father (John)))), dst.
Teorema Herbrand (1930): jika FOL KB |= α, ada sebuahfinite
subsetPL KB |= α.
Ide dasar: For n = 0 to ∞
Buat propositional KBndengan depth-n ground term
Periksa apakah KBn|= α
Masalah (lagi!)
kalau α di-entail OK, kalau tidak → infinite loop.
Teorema Church-Turing (1936): Entailment untuk FOL bersifat semidecidable.
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Inference FOL menggunakan inference PL
Ide dasar: ubah KB + query dari FOL menjadi PL, lalu gunakan resolution.
Masalah: dengan adanyafunction, jumlahground termmenjadiinfinite Greedy (Father (John))
Greedy (Father (Father (John)))
Greedy (Father (Father (Father (John)))), dst.
Teorema Herbrand (1930): jika FOL KB |= α, ada sebuahfinite
subsetPL KB |= α.
Ide dasar: For n = 0 to ∞
Buat propositional KBndengan depth-n ground term
Periksa apakah KBn|= α
Masalah (lagi!)
kalau α di-entail OK, kalau tidak → infinite loop.
Teorema Church-Turing (1936): Entailment untuk FOL bersifat semidecidable.
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Masalah dengan propositionalization
Propositionalizationmenghasilkan banyak kalimat irelevan.
Contohnya, dari KB berikut:
∀ x King(x) ∧ Greedy (x) ⇒ Evil(x) ∀ y Greedy (y )
King(John)
Brother (Richard , John)
manusia bisa cepat mengerti kalauEvil(John), namun
propositionalization menghasilkan:
King(Richard ) ∧ Greedy (Richard ) ⇒ Evil(Richard ) Greedy (Richard )
yang tidak relevan
Dengan p buah predicate k -ary dan n constant, ada p × nk
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Outline
1Mengubah FOL ke PL
2Unification
3
Inference Rule untuk FOL
4Forward chaining
5
Backward chaining
6Logic programming
7Resolution
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Unification
Isi KB∀ x King(x) ∧ Greedy (x) ⇒ Evil(x) ∀ y Greedy (y )
King(John)
Brother (Richard , John)
Inference bahwaKB |= Evil(John)bisa langsung disimpulkan jika kita
bisa mencarisubstitution θsehinggaKing(x )danGreedy (x )bisa
“dicocokkan”denganKing(John)danGreedy (y ).
Contoh:θ = {x /John, y /John}
Definisi unification
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contah unification
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)}
Sayang(Anto, x )
Sayang(x , Ani)
fail
Standardized apart
variable menghilangkan overlap,
mis: Sayang(x
101,
Ani)
Lihat Figure 9.1 R&N2e untuk implementasi algoritma
Unification
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contah unification
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)}
Sayang(Anto, x )
Sayang(x , Ani)
fail
Standardized apart
variable menghilangkan overlap,
mis: Sayang(x
101,
Ani)
Lihat Figure 9.1 R&N2e untuk implementasi algoritma
Unification
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contah unification
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)}
Sayang(Anto, x )
Sayang(x , Ani)
fail
Standardized apart
variable menghilangkan overlap,
mis: Sayang(x
101,
Ani)
Lihat Figure 9.1 R&N2e untuk implementasi algoritma
Unification
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contah unification
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)}
Sayang(Anto, x )
Sayang(x , Ani)
fail
Standardized apart
variable menghilangkan overlap,
mis: Sayang(x
101,
Ani)
Lihat Figure 9.1 R&N2e untuk implementasi algoritma
Unification
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contah unification
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)}
Sayang(Anto, x )
Sayang(x , Ani)
fail
Standardized apart
variable menghilangkan overlap,
mis: Sayang(x
101,
Ani)
Lihat Figure 9.1 R&N2e untuk implementasi algoritma
Unification
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Outline
1Mengubah FOL ke PL
2Unification
3
Inference Rule untuk FOL
4
Forward chaining
5Backward chaining
6Logic programming
7Resolution
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Generalized Modus Ponens
Inference rule GMP
p10, p20, . . . , pn0, (p1∧ p2∧ . . . ∧ pn⇒ q)
qθ di mana pi0θ =piθuntuk semua i
p10= King(John) p1= King(x )
p20= Greedy (y ) p2= Greedy (x )
θ= {x /John, y /John} q = Evil(x )
qθ = Evil(John)
GMP dengan KB yang berisidefinite clauses(seperti Horn clause
pada PL):p1∧ p2∧ . . . ∧ pn⇒ q
Semua variable diasumsikanuniversally quantified
GMP adalah hasilliftingMP: “mengangkat” inference rule PL ke
FOL. Ada versi lifted untuk forward & backward chaining, resolution Kelebihan dibanding propositionalization: hanya melakukan substitution yang dibutuhkan oleh inference
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contoh knowledge base
Versi bahasa Inggris
“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.”
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Penerjemahan Bhs Inggris ke FOL
. . .it is a crime for an American to sell weapons to hostile nations:
American(x )∧Weapon(y )∧Sells(x , y , z)∧Hostile(z) ⇒ Criminal(x ) Nono . . . has some missiles:
∃ x Owns(Nono, x) ∧ Missile(x)
Owns(Nono, M1)and Missile(M1)(Skolemization)
. . .all of its missiles were sold to it by Colonel West Missile(x ) ∧ Owns(Nono, x ) ⇒ Sells(West, x , Nono) Missiles are weapons:
Missile(x ) ⇒ Weapon(x )
An enemy of America counts as “hostile”: Enemy (x , America) ⇒ Hostile(x ) West, who is American . . . American(West)
The country Nono, an enemy of America . . . Enemy (Nono, America)
Perhatikan:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Penerjemahan Bhs Inggris ke FOL
. . .it is a crime for an American to sell weapons to hostile nations:
American(x )∧Weapon(y )∧Sells(x , y , z)∧Hostile(z) ⇒ Criminal(x )
Nono . . . has some missiles: ∃ x Owns(Nono, x) ∧ Missile(x)
Owns(Nono, M1)and Missile(M1)(Skolemization)
. . .all of its missiles were sold to it by Colonel West Missile(x ) ∧ Owns(Nono, x ) ⇒ Sells(West, x , Nono) Missiles are weapons:
Missile(x ) ⇒ Weapon(x )
An enemy of America counts as “hostile”: Enemy (x , America) ⇒ Hostile(x ) West, who is American . . . American(West)
The country Nono, an enemy of America . . . Enemy (Nono, America)
Perhatikan:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Penerjemahan Bhs Inggris ke FOL
. . .it is a crime for an American to sell weapons to hostile nations:
American(x )∧Weapon(y )∧Sells(x , y , z)∧Hostile(z) ⇒ Criminal(x ) Nono . . . has some missiles:
∃ x Owns(Nono, x) ∧ Missile(x)
Owns(Nono, M1)and Missile(M1)(Skolemization)
. . .all of its missiles were sold to it by Colonel West Missile(x ) ∧ Owns(Nono, x ) ⇒ Sells(West, x , Nono) Missiles are weapons:
Missile(x ) ⇒ Weapon(x )
An enemy of America counts as “hostile”: Enemy (x , America) ⇒ Hostile(x ) West, who is American . . . American(West)
The country Nono, an enemy of America . . . Enemy (Nono, America)
Perhatikan:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Penerjemahan Bhs Inggris ke FOL
. . .it is a crime for an American to sell weapons to hostile nations:
American(x )∧Weapon(y )∧Sells(x , y , z)∧Hostile(z) ⇒ Criminal(x ) Nono . . . has some missiles:
∃ x Owns(Nono, x) ∧ Missile(x)
Owns(Nono, M1)and Missile(M1)(Skolemization)
. . .all of its missiles were sold to it by Colonel West Missile(x ) ∧ Owns(Nono, x ) ⇒ Sells(West, x , Nono) Missiles are weapons:
Missile(x ) ⇒ Weapon(x )
An enemy of America counts as “hostile”: Enemy (x , America) ⇒ Hostile(x ) West, who is American . . . American(West)
The country Nono, an enemy of America . . . Enemy (Nono, America)
Perhatikan:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Penerjemahan Bhs Inggris ke FOL
. . .it is a crime for an American to sell weapons to hostile nations:
American(x )∧Weapon(y )∧Sells(x , y , z)∧Hostile(z) ⇒ Criminal(x ) Nono . . . has some missiles:
∃ x Owns(Nono, x) ∧ Missile(x)
Owns(Nono, M1)and Missile(M1)(Skolemization)
. . .all of its missiles were sold to it by Colonel West Missile(x ) ∧ Owns(Nono, x ) ⇒ Sells(West, x , Nono) Missiles are weapons:
Missile(x ) ⇒ Weapon(x )
An enemy of America counts as “hostile”: Enemy (x , America) ⇒ Hostile(x ) West, who is American . . . American(West)
The country Nono, an enemy of America . . . Enemy (Nono, America)
Perhatikan:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Penerjemahan Bhs Inggris ke FOL
. . .it is a crime for an American to sell weapons to hostile nations:
American(x )∧Weapon(y )∧Sells(x , y , z)∧Hostile(z) ⇒ Criminal(x ) Nono . . . has some missiles:
∃ x Owns(Nono, x) ∧ Missile(x)
Owns(Nono, M1)and Missile(M1)(Skolemization)
. . .all of its missiles were sold to it by Colonel West
Missile(x ) ∧ Owns(Nono, x ) ⇒ Sells(West, x , Nono) Missiles are weapons:
Missile(x ) ⇒ Weapon(x )
An enemy of America counts as “hostile”: Enemy (x , America) ⇒ Hostile(x ) West, who is American . . . American(West)
The country Nono, an enemy of America . . . Enemy (Nono, America)
Perhatikan:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Penerjemahan Bhs Inggris ke FOL
. . .it is a crime for an American to sell weapons to hostile nations:
American(x )∧Weapon(y )∧Sells(x , y , z)∧Hostile(z) ⇒ Criminal(x ) Nono . . . has some missiles:
∃ x Owns(Nono, x) ∧ Missile(x)
Owns(Nono, M1)and Missile(M1)(Skolemization)
. . .all of its missiles were sold to it by Colonel West Missile(x ) ∧ Owns(Nono, x ) ⇒ Sells(West, x , Nono)
Missiles are weapons: Missile(x ) ⇒ Weapon(x )
An enemy of America counts as “hostile”: Enemy (x , America) ⇒ Hostile(x ) West, who is American . . . American(West)
The country Nono, an enemy of America . . . Enemy (Nono, America)
Perhatikan:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Penerjemahan Bhs Inggris ke FOL
. . .it is a crime for an American to sell weapons to hostile nations:
American(x )∧Weapon(y )∧Sells(x , y , z)∧Hostile(z) ⇒ Criminal(x ) Nono . . . has some missiles:
∃ x Owns(Nono, x) ∧ Missile(x)
Owns(Nono, M1)and Missile(M1)(Skolemization)
. . .all of its missiles were sold to it by Colonel West Missile(x ) ∧ Owns(Nono, x ) ⇒ Sells(West, x , Nono) Missiles are weapons:
Missile(x ) ⇒ Weapon(x )
An enemy of America counts as “hostile”: Enemy (x , America) ⇒ Hostile(x ) West, who is American . . . American(West)
The country Nono, an enemy of America . . . Enemy (Nono, America)
Perhatikan:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Penerjemahan Bhs Inggris ke FOL
. . .it is a crime for an American to sell weapons to hostile nations:
American(x )∧Weapon(y )∧Sells(x , y , z)∧Hostile(z) ⇒ Criminal(x ) Nono . . . has some missiles:
∃ x Owns(Nono, x) ∧ Missile(x)
Owns(Nono, M1)and Missile(M1)(Skolemization)
. . .all of its missiles were sold to it by Colonel West Missile(x ) ∧ Owns(Nono, x ) ⇒ Sells(West, x , Nono) Missiles are weapons:
Missile(x ) ⇒ Weapon(x )
An enemy of America counts as “hostile”: Enemy (x , America) ⇒ Hostile(x ) West, who is American . . . American(West)
The country Nono, an enemy of America . . . Enemy (Nono, America)
Perhatikan:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Penerjemahan Bhs Inggris ke FOL
. . .it is a crime for an American to sell weapons to hostile nations:
American(x )∧Weapon(y )∧Sells(x , y , z)∧Hostile(z) ⇒ Criminal(x ) Nono . . . has some missiles:
∃ x Owns(Nono, x) ∧ Missile(x)
Owns(Nono, M1)and Missile(M1)(Skolemization)
. . .all of its missiles were sold to it by Colonel West Missile(x ) ∧ Owns(Nono, x ) ⇒ Sells(West, x , Nono) Missiles are weapons:
Missile(x ) ⇒ Weapon(x )
An enemy of America counts as “hostile”:
Enemy (x , America) ⇒ Hostile(x ) West, who is American . . . American(West)
The country Nono, an enemy of America . . . Enemy (Nono, America)
Perhatikan:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Penerjemahan Bhs Inggris ke FOL
. . .it is a crime for an American to sell weapons to hostile nations:
American(x )∧Weapon(y )∧Sells(x , y , z)∧Hostile(z) ⇒ Criminal(x ) Nono . . . has some missiles:
∃ x Owns(Nono, x) ∧ Missile(x)
Owns(Nono, M1)and Missile(M1)(Skolemization)
. . .all of its missiles were sold to it by Colonel West Missile(x ) ∧ Owns(Nono, x ) ⇒ Sells(West, x , Nono) Missiles are weapons:
Missile(x ) ⇒ Weapon(x )
An enemy of America counts as “hostile”: Enemy (x , America) ⇒ Hostile(x )
West, who is American . . . American(West)
The country Nono, an enemy of America . . . Enemy (Nono, America)
Perhatikan:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Penerjemahan Bhs Inggris ke FOL
. . .it is a crime for an American to sell weapons to hostile nations:
American(x )∧Weapon(y )∧Sells(x , y , z)∧Hostile(z) ⇒ Criminal(x ) Nono . . . has some missiles:
∃ x Owns(Nono, x) ∧ Missile(x)
Owns(Nono, M1)and Missile(M1)(Skolemization)
. . .all of its missiles were sold to it by Colonel West Missile(x ) ∧ Owns(Nono, x ) ⇒ Sells(West, x , Nono) Missiles are weapons:
Missile(x ) ⇒ Weapon(x )
An enemy of America counts as “hostile”: Enemy (x , America) ⇒ Hostile(x ) West, who is American . . .
American(West)
The country Nono, an enemy of America . . . Enemy (Nono, America)
Perhatikan:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Penerjemahan Bhs Inggris ke FOL
. . .it is a crime for an American to sell weapons to hostile nations:
American(x )∧Weapon(y )∧Sells(x , y , z)∧Hostile(z) ⇒ Criminal(x ) Nono . . . has some missiles:
∃ x Owns(Nono, x) ∧ Missile(x)
Owns(Nono, M1)and Missile(M1)(Skolemization)
. . .all of its missiles were sold to it by Colonel West Missile(x ) ∧ Owns(Nono, x ) ⇒ Sells(West, x , Nono) Missiles are weapons:
Missile(x ) ⇒ Weapon(x )
An enemy of America counts as “hostile”: Enemy (x , America) ⇒ Hostile(x ) West, who is American . . . American(West)
The country Nono, an enemy of America . . . Enemy (Nono, America)
Perhatikan:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Penerjemahan Bhs Inggris ke FOL
. . .it is a crime for an American to sell weapons to hostile nations:
American(x )∧Weapon(y )∧Sells(x , y , z)∧Hostile(z) ⇒ Criminal(x ) Nono . . . has some missiles:
∃ x Owns(Nono, x) ∧ Missile(x)
Owns(Nono, M1)and Missile(M1)(Skolemization)
. . .all of its missiles were sold to it by Colonel West Missile(x ) ∧ Owns(Nono, x ) ⇒ Sells(West, x , Nono) Missiles are weapons:
Missile(x ) ⇒ Weapon(x )
An enemy of America counts as “hostile”: Enemy (x , America) ⇒ Hostile(x ) West, who is American . . . American(West)
The country Nono, an enemy of America . . .
Enemy (Nono, America)
Perhatikan:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Penerjemahan Bhs Inggris ke FOL
. . .it is a crime for an American to sell weapons to hostile nations:
American(x )∧Weapon(y )∧Sells(x , y , z)∧Hostile(z) ⇒ Criminal(x ) Nono . . . has some missiles:
∃ x Owns(Nono, x) ∧ Missile(x)
Owns(Nono, M1)and Missile(M1)(Skolemization)
. . .all of its missiles were sold to it by Colonel West Missile(x ) ∧ Owns(Nono, x ) ⇒ Sells(West, x , Nono) Missiles are weapons:
Missile(x ) ⇒ Weapon(x )
An enemy of America counts as “hostile”: Enemy (x , America) ⇒ Hostile(x ) West, who is American . . . American(West)
The country Nono, an enemy of America . . . Enemy (Nono, America)
Perhatikan:
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Outline
1Mengubah FOL ke PL
2Unification
3
Inference Rule untuk FOL
4
Forward chaining
5
Backward chaining
6Logic programming
7Resolution
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Forward chaining pada FOL dengan GMP
Mirip dengan forward chaining pada PL
Mulai dari fakta yang diketahui (clause tanpa premise),
mis:
Owns(Nono, M
1),
Missile(M
1)
“Aktifkan” (trigger ) rule yang premise-nya diketahui
(satisfied) → tambahkan kesimpulan rule ke KB, mis:
Missile(x ) ∧ Owns(Nono, x ) ⇒ Sells(West, x , Nono)
Ulangi sampai query terbukti, atau tidak ada fakta baru
yang bisa ditambahkan ke KB.
“Cocokkan” premise-premise setiap rule dengan fakta
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Forward chaining pada FOL dengan GMP
Algoritma forward chaining
function FOL-FC-ASK(KB, α)returns a substitution or false repeat until new is empty
new ← { }
for each sentence r in KB do
(p1∧ . . . ∧ pn =⇒ q) ← STANDARDIZE-APART(r)
for each θ such that (p1 ∧ . . . ∧ pn)θ = (p10 ∧ . . . ∧ p0n)θ
for some p0 1, . . . ,p
0 nin KB
q0← SUBST(θ, q)
if q0isn’t a renaming of sentence in KB or newthen do
add q0to new
φ ←UNIFY(q0, α)
if φ is not fail then return φ
add new to KB
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contoh Forward Chaining FOL
Enemy(Nono,America) Owns(Nono,M1)
Missile(M1) American(West)
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contoh Forward Chaining FOL
Hostile(Nono) Enemy(Nono,America) Owns(Nono,M1) Missile(M1) American(West) Weapon(M1) Sells(West,M1,Nono)
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contoh Forward Chaining FOL
Hostile(Nono) Enemy(Nono,America) Owns(Nono,M1) Missile(M1) American(West) Weapon(M1) Criminal(West) Sells(West,M1,Nono)
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Sifat Forward Chaining
Sound dan complete untuk first-order definite clause.
Datalog
= first-order definite clause
tanpa function
.
Time complexity FC pada Datalog → polynomial
Tapi pada kasus umum, bisa infinite loop kalau α tidak
di-entail. (Konsekuensi dari teorema Church-Turing:
entailment adalah semidecidable)
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Pattern matching premise NP-hard?
Victoria WA NT SA Q NSW V T
Diff(wa, nt) ∧ Diff(wa, sa)∧
Diff(nt, q) ∧ Diff(nt, sa)∧
Diff(q, nsw ) ∧ Diff(q, sa)∧
Diff(nsw , v ) ∧ Diff(nsw , sa)∧
Diff(v , sa) ⇒ Colorable()
Diff(Red , Blue)
Diff(Red , Green)
Diff(Green, Red )
Diff(Green, Blue)
Diff(Blue, Red )
Diff(Blue, Green)
Query ASK(KB,Colorable()) jhj CSP-nya menemui
solusi!
Terdapat kasus CSP 3SAT (satisfiability pada CNF
dengan clause berukuran 3 literal) yang diketahui
NP-hard.
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Outline
1Mengubah FOL ke PL
2Unification
3
Inference Rule untuk FOL
4Forward chaining
5
Backward chaining
6
Logic programming
7Resolution
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Backward chaining pada FOL dengan GMP
Algoritma backward chaining
function FOL-BC-ASK(KB, goals, θ)returns a set of substitutions inputs: KB, a knowledge base
goals, a list of conjuncts forming a query
θ, the current substitution, initially the empty substitution { }
local variables: ans, a set of substitutions, initially empty if goals is empty then return {θ}
q0← SUBST(θ, FIRST(goals))
for each r in KB where STANDARDIZE-APART(r) = ( p1∧ . . . ∧ pn ⇒ q)
and θ0← UNIFY(q, q0) succeeds
ans ← FOL-BC-ASK(KB, [p1, . . . ,pn|REST(goals)], COMPOSE(θ0,
θ)) ∪ ans
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contoh Backward Chaining FOL
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contoh Backward Chaining FOL
Criminal(West)
Weapon(y)
American(x) Sells(x,y,z) Hostile(z)
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contoh Backward Chaining FOL
Criminal(West)
Weapon(y) Sells(x,y,z) Hostile(z)
{x/West}
{ } American(West)
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contoh Backward Chaining FOL
Hostile(Nono) Criminal(West) Missile(y) Weapon(y) Sells(West,M1,z) American(West) { } Sells(x,y,z) Hostile(z) {x/West}
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contoh Backward Chaining FOL
Hostile(Nono) Criminal(West) Missile(y) Weapon(y) Sells(West,M1,z) American(West) { } Sells(x,y,z) Hostile(z) y/M1 { } {x/West, y/M1}
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contoh Backward Chaining FOL
Owns(Nono,M1) Missile(M1) Criminal(West) Missile(y) Weapon(y) Sells(West,M1,z) American(West) y/M1 { } { z/Nono} { } Hostile(z) {x/West, y/M1, z/Nono}
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contoh Backward Chaining FOL
Hostile(Nono) Enemy(Nono,America) Owns(Nono,M1) Missile(M1) Criminal(West) Missile(y) Weapon(y) Sells(West,M1,z) American(West) y/M1 { } { } { } { } { z/Nono} { }
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Sifat Backward Chaining
Depth-first search:
linear space complexity^¨ incomplete (infinite loop)_¨ repeated state_¨
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Outline
1Mengubah FOL ke PL
2Unification
3
Inference Rule untuk FOL
4Forward chaining
5
Backward chaining
6
Logic programming
7
Resolution
8Ringkasan
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Apakah Logic Programming?
Pemrograman dengan logika
Program = deklarasi fakta yang bernilai true Execution = proses inference (backward chaining)
Logic programming Programming biasa
1. Identifikasi masalah Identifikasi masalah
2. Kumpulkan informasi Kumpulkan informasi
3. Istirahat Pikirkan solusinya
4. Repr. informasi dalam KB Tulis program (source code)
5. Repr. masalah sebagai query Repr. masalah sebagai data
6. ASK(KB,query ) Jalankan program terhadap data
7. Cari fakta salah Debugging
(Harusnya) lebih mudah men-debug Ibukota(Bukittinggi, Indonesia) daripada x = x + 2 !
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Prolog
Dasar: backward chaining pada Horn clause Banyak dipakai (EU,JAP “5th gen”)
Program berupa himpunan clause:
head :- literal1, . . . literaln.
Contoh
American(x ) ∧ Weapon(y ) ∧ Sells(x , y , z) ∧ Hostile(z) ⇒ Criminal(x )
criminal(X):-american(X),weapon(Y),sells(X,Y,Z),hostile(Z).
Aspek “non-logic” dari Prolog:
BC berjalan atas-ke-bawah (rule) dan kiri-ke-kanan (clause) Ada predikat untuk aritmetika:: X is Y*Z+3
Ada clause dengan “efek samping”: I/O Closed-world assumption: “negation as failure”: hidup(X) :- not mati(X).
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contoh Prolog
Implementasi DFS pada state X
leluhur(X,Y) :- orangtua(X,Y).
leluhur(X,Z) :- leluhur(X,Y),orangtua(Y,Z).
Meng-append dua list
append([],Y,Y). append([X|L],Y,[X|Z]) :- append(L,Y,Z). query: append([1,2],[3,4],X) ? answers: X=[1,2,3,4] query: append(A,B,[1,2]) ? answers: A=[] B=[1,2] A=[1] B=[2] A=[1,2] B=[]
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Outline
1Mengubah FOL ke PL
2Unification
3
Inference Rule untuk FOL
4Forward chaining
5
Backward chaining
6Logic programming
7
Resolution
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Resolution pada FOL
Resolution inference rule pada FOL (lifting resolution PL): `1∨ · · · ∨ `k, m1∨ · · · ∨ mn (`1∨ · · · ∨ `i−1∨ `i+1∨ · · · ∨ `k∨ m1∨ · · · ∨ mj−1∨ mj+1∨ · · · ∨ mn)θ di mana UNIFY(`i, ¬mj) = θ. Contoh: ¬Kaya(x) ∨ Sedih(x) Kaya(Anto) Sedih(Anto) di mana θ = {x /Anto}
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Mengubah FOL ke CNF
“Everyone who loves all animals is loved by someone:” ∀ x [∀ y Animal(y ) =⇒ Loves(x, y )] =⇒ [∃ y Loves(y , x)]
1 Eliminasi implikasi dan biimplikasi
∀ x [¬∀ y ¬Animal(y ) ∨ Loves(x, y )] ∨ [∃ y Loves(y , x)]
2 Pindahkan ¬ ke “dalam”: ¬∀ x , p ≡ ∃ x ¬p, ¬∃ x, p ≡ ∀ x ¬p:
∀ x [∃ y ¬(¬Animal(y ) ∨ Loves(x, y ))] ∨ [∃ y Loves(y , x)] ∀ x [∃ y ¬¬Animal(y ) ∧ ¬Loves(x, y )] ∨ [∃ y Loves(y , x)] ∀ x [∃ y Animal(y ) ∧ ¬Loves(x, y )] ∨ [∃ y Loves(y , x)]
3 Standardizevariables: setiap quantifier variable-nya beda
∀ x [∃ y Animal(y ) ∧ ¬Loves(x, y )] ∨ [∃ z Loves(z, x)]
4 Skolemize: generalisasi existential instantiation. ∃ x diganti
Skolem functionuniversal quantified variable di “luar”:
∀ x [Animal(F (x)) ∧ ¬Loves(x, F (x))] ∨ Loves(G(x), x)
5 Buang universal quantifiers:
[Animal(F (x )) ∧ ¬Loves(x , F (x ))] ∨ Loves(G(x ), x )
6 Distribusi ∧ over ∨:
[Animal(F (x )) ∨ Loves(G(x ), x )] ∧ [¬Loves(x , F (x )) ∨ Loves(G(x ), x )]
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Contoh pembuktian dengan resolution
American(West) Missile(M1) Missile(M1) Owns(Nono,M1) Enemy(Nono,America) Enemy(Nono,America) Criminal(x) Hostile(z) L Sells(x,y,z) L Weapon(y) L American(x) L > > > > Weapon(x) Missile(x) L > Sells(West,x,Nono) Missile(x) L Owns(Nono,x) L > > Hostile(x) Enemy(x,America) L > Sells(West,y,z) L Weapon(y) L American(West) L > > > LHostile(z) Sells(West,y,z) L Weapon(y) L > Hostile(z) L > Sells(West,y,z) L > > LHostile(z) L Missile(y) Hostile(z) L > L Sells(West,M1,z) > > L Hostile(Nono) L Owns(Nono,M1) L Missile(M1) > LHostile(Nono) LOwns(Nono,M1) L Hostile(Nono) Criminal(West) L
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan
Outline
1Mengubah FOL ke PL
2Unification
3
Inference Rule untuk FOL
4Forward chaining
5
Backward chaining
6Logic programming
7Resolution
IKI30320 Kuliah 13 5 Nov 2007 Ruli Manurung Mengubah FOL ke PL Unification Inference Rule untuk FOL Forward chaining Backward chaining Logic programming Resolution Ringkasan