Skip to main content

Contoh Proses Inferensi Menggunakan Algoritma Forward Chaining Dalam First Order Logic


Contoh proses inferensi (penarikan kesimpulan) menggunakan forward chaining dalam knowledge base yang menggunakan first order logic (FOL). 

Misalkan ada knowledge base yang awalnya tersusun dari bahasa alami (dalam contoh ini menggunakan bahasa inggris) seperti berikut di bawah ini. Kemudian, bagaimana menyajikan knowledge base tersebut dalam bentuk first order logic (FOL) dan bagaimana proses membuktikan bahwa Col. West is criminal (Kolonel West adalah penjahat) dengan menggunakan algoritma forward chaining?

Knowledege base dalam bahasa alami:

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.
Prove that Col. West is a criminal

Konversi knowledge base dalam bentuk kumpulan rule menggunakan FOL

Isi knowledge base menjadi sbb:

Rule 1:
“. . . 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)

Rule 2 & 3
“Nono . . . has some missiles.” The sentence x Owns(Nono, x)Missile(x) di konversi menjadi dua definite clauses dengan cara Existential Instantiation, sehingga memunculkan suatu konstanta baru M1:
Rule 2: (Fakta --> bernilai true)
Owns(Nono,M1)
Rule 3: (Fakta --> bernilai true)
Missile(M1)

Rule 4:
“All of its missiles were sold to it by Colonel West”:
Missile(x) Owns(Nono, x) Sells(West, x, Nono)

Rule 5:
Kita perlu tahu bahwa missiles adalah weapons:
Missile(x) Weapon(x)

Rule 6:
dan kita pasti tahu bahwa enemy of America dianggap sebagai “hostile”:
Enemy(x,America) Hostile(x)

Rule 7: (Fakta --> bernilai true)
“West, who is American . . .”:
American(West)

Rule 8: (Fakta --> bernilai true)
“The country Nono, an enemy of America . . .”:
Enemy(Nono,America)

Forward chaining: Berangkat dari fakta. Urutan chaining (fakta)
  • Rule 7: adalah fakta (bernilai true)
  • Rule 3: adalah fakta (bernilai true) - kemudian fakta ini memicu rule 5 sehingga bernilai true dan kemudian menjadi fakta baru.
  • Rule 2: adalah fakta (bernilai true) - kemudian rule 2 & 3 memicu rule 4 sehingga bernilai true dan kemudian menjadi fakta baru.
  • Rule 8: adalah fakta (bernilai true) - kemudian memicu rule 6 sehingga bernilai true dan kemudian menjadi fakta baru.
  • Rule 7, 5, 4, 6 karena sudah bernilai true (fakta baru) - kemudian memicu rule 1 sehingga bernilai true dan kemudian menjadi fakta baru (yang membuktikan query yang ditanyakan).


Ilustrasi dalam gambar berdasarkan tahapannya kurang lebih adalah sebagai berikut di bawah ini
Rangkaian fakta pada langkah awal

Fakta baru yang ditambahkan pada langkah berikutnya

Fakta baru yang ditambahkan dan terbukti bahwa West adalah Criminal 


--o0o--

Artikel terkait:

Comments

Popular posts from this blog

Pengertian Binding dalam Bahasa Pemrograman dan Kapan Terjadinya

Binding dimaksudkan sebagai pengikatan (association) antara suatu entity dengan atributnya, misalnya binding/pengikatan antara suatu variable dengan tipe datanya atau dengan nilainya, atau dapat juga antara suatu operasi dengan simbol, misalnya simbol + dikenali sebagai operasi penjumlahan atau simbol ^ dikenali sebagai operasi pangkat, dll.  Peristiwa binding dan kapan terjadinya binding (biasanya disebut dengan binding time ) berperan penting dalam membicarakan semantics suatu bahasa pemrograman. Beberapa kemungkinan binding time adalah:

Latihan Soal Jawab Matematika Diskrit

Berikut di bawah ini adalah latihan soal jawab untuk matematika diskrit dengan topik-topik: Pernyataan Logika Circuits dan Ekspresi Boolean Argumen (valid/tidak valid) Teori Himpunan Permutasi Fungsi --o0o-- Pernyataan Logika 1. Buatlah tabel kebenaran untuk menentukan yang mana tautology dan yang mana contradiction dalam pernyataan logika (a) dan (b) di bawah ini: a. (p ∧ q) ∨ (∼p ∨ (p ∧ ∼q)) b.  (p ∧ ∼q) ∧ (∼p ∨ q)

Contoh proses normalisasi relasi dari UNF – 1NF – 2NF – dan 3NF

Dalam posting tulisan tentang: “Tujuan dan Manfaat Normalisasi dalam Perancangan Database” , kita sudah mempelajari tentang: “Apa itu normalisasi” dan “Mengapa kita perlu melakukan normalisasi”. Kedua pertanyaan itu sudah terjawab dalam tulisan tersebut.  Kemudian dalam posting tulisan tentang: “Konsep Ketergantungan Fungsional, Normalisasi, dan Identifikasi Primary Key dalam Perancangan Sistem Database” , kita sudah mempelajari suatu konsep penting yang digunakan untuk melakukan normalisasi, yaitu konsep ketergantungan fungsional yang terdiri dari ketergantungan penuh, ketergantungan parsial atau sebagian, dan ketergantungan transitif. Proses normalisasi pertama-tama dilakukan dengan mengidentifikasi adanya ketergantungan-ketergantungan tersebut dalam relasi-relasi dan kemudian menghilangkannya. Cara melakukan normalisasi, mengidentifikasi berbagai macam ketergantungan, dan menghilangkan ketergantungan pada relasi-relasi bisa dipelajari ulang dalam postingan tulisan d...