Inferensi pada logika proposisi dapat dilakukan dengan menggunakan resolusi. RESOLUSI adalah suatu aturan untuk melakukan inferensi yg dapat berjalan secara efisien dalam suatu bentuk khusus yg disebut Conjunctive Normal Form (CNF).
• CNF ini memiliki ciri-ciri sebagai berikut :
– Setiap kalimat merupakan disjungsi literal
– Semua kalimat terkonjungsi secara implisit
• Dua atau lebih proposisi dapat digabungkan dengan menggunakan operator logika :
a. Negasi : Ø (NOT)
b. Konjungsi : Ù (AND)
c. Disjungsi : Ú (OR)
d. Implikasi : ® (IF-THEN)
e. Ekuivalen : Û
• Operator NOT : digunakan untuk memberikan nilai negasi (lawan) dari pernyataan yang telah ada.
• Langkah-langkah mengubah kalimat ke dalam bentuk CNF, sebagai berikut :
> hilangkan implikasi dan ekuivalensi
mis. X ® Y menjadi ØX Ú Y (hukum implikasi)
X Û Y menjadi (X=>Y) Ù (Y=>X) (hukum bi-implikasi)
(ØX Ú Y)Ù(ØY Ú X) (hukum implikasi)
> kurangi lingkup semua negasi menjadi satu negasi saja
mis. Ø(Ø X) menjadi X (hukum negasi ganda)
Ø(X Ú Y) menjadi (ØX Ù ØY) (hukum de’Morgan)
Ø(X Ù Y) menjadi (ØX Ú ØY) (hukum de’Morgan)
> gunakan aturan assosiatif dan distributif untuk mengkonversi menjadi conjunction of disjunction
mis. Assosiatif : (A Ú B) Ú C = A Ú (B Ú C)
Distributif : (A Ù B) Ú C = (A Ú C) Ù (B Ú C)
• Algoritma Resolusi
Input : serangkaian clauses yang disebut axioma dan tujuannya.
Output :uji apakah tujuan diturunkan dari axioma
Begin
1. Kembangkan serangkaian pernyataan axioma termasuk tujuan yang dinegasikan
2. Representasikan tiap elemen statemen ke dalam Conjunctive Normal Form (CNF)
berdasarkan langkah-langkah berikut :
Ø Hilangkan operator “if-then” dengan operasi NEGATION dan OR berdasarkan hukum logika
• Algoritma Resolusi
Input : serangkaian clauses yang disebut axioma dan tujuannya.
Output :uji apakah tujuan diturunkan dari axioma
3. Repeat
a. Pilih dua clauses mana
saja dari S, sehingga satu clause berisi literal yang dinegasikan dan
clause yang lainnya berisi literal positif yang berhubungan (literal
yang tidak dinegasikan)
b. Pisahkan dua clauses ini dan panggil clause yang dihasilkan (resolvent). Hapus parent clause dari S.
Until sebuah clause null dihasilkan atau tidak ada progress lebih lanjut yang bisa dibuat
4. Jika sebuah clause null dihasilkan, maka “tujuan terbukti” atau Pernyataan “valid”
9.2. Unifikasi
Unifikasi
adalah usaha untuk mencoba membuat dua ekspresi menjadi identik
(mempersatukan keduanya) dengan mencari substitusi-substitusi tertentu
untuk mengikuti peubah-peubah dalam ekspresi mereka tersebut. Unifikasi
merupakan suatu prosedur sistematik untuk memperoleh peubah-peubah
instan dalam wffs. Ketika nilai kebenaran predikat adalah sebuah fungsi
dari nilai-nilai yang diasumsikan dengan argumen mereka, keinstanan
terkontrol dari nilai-nilai selanjutnya yang menyediakan cara
memvalidasi nilai-nilai kebenaran pernyataan yang berisi predikat.
Unifikasi merupakan dasar atas kebanyakan strategi inferensi dalam
Kecerdasan Buatan. Sedangkan dasar dari unifikasi adalah substitusi.
Suatu
substitusi (substitution) adalah suatu himpunan penetapan
istilah-istilah kepada peubah, tanpa ada peubah yang ditetapkan lebih
dari satu istilah. Sebagai pengetahuan jantung dari eksekusi Prolog,
adalah mekanisme unifikasi.
Aturan-aturan unifikasi :
1. Dua atom (konstanta atau peubah) adalah identik.
2. Dua daftar identik, atau ekspresi dikonversi ke dalam satu buah daftar.
3. Sebuah konstanta dan satu peubah terikat dipersatukan, sehingga peubah menjadi terikat kepada konstanta.
4. Sebuah peubah tak terikat diperssatukan dengan sebuah peubah terikat.
5. Sebuah
peubah terikat dipersatukan dengan sebuah konstanta jika pengikatan
pada peubah terikat dengan konstanta tidak ada konflik.
6. Dua
peubah tidak terikat disatukan. Jika peubah yang satu lainnya menjadi
terikat dalam upa-urutan langkah unifikasi, yang lainnya juga menjadi
terikat ke atom yang sama (peubah atau konstanta).
7. Dua
peubah terikat disatukan jika keduanya terikat (mungkin melalui
pengikatan tengah) ke atom yang sama (peubah atau konstanta).
9.3. Generalized Modus Ponens (GMP)
Kaidah dasar dalam menarik kesimpulan dari dua nilai logika tradisional adalah modus ponens, yaitu kesimpulan tentang nilai kebenaran pada Bdiambil berdasarkan kebenaran pada A. Sebagai contoh, jika A diidentifikasi dengan “tomat itu merah” dan B dengan
“tomat itu masak”, kemudian jika benar kalau “tomat itu merah” maka
“tomat itu masak”, juga benar. Konsep ini digambarkan sebagai berikut:
premise 1 (kenyataan)
|
:
|
x adalah A,
|
premise 2 (kaidah)
|
:
|
jika x adalah A maka y adalah B.
|
Consequence (kesimpulan)
|
:
|
y adalah B.
|
Secara umum dalam melakukan penalaran, modus ponens digunakan
dengan cara pendekatan. Sebagai contoh, jika ditemukan suatu kaidah
implikasi yang sama dengan “jika tomat itu merah maka tomat itu masak”,
misalnya “tomat itu kurang lebih merah,” maka dapat disimpulkan “tomat
itu kurang lebih masak”, hal ini dapat dituliskan seperti berikut:
premise 1 (kenyataan)
|
:
|
x adalah A’,
|
premise 2 (kaidah)
|
:
|
jika x adalah A maka y adalah B.
|
Consequence (kesimpulan)
|
:
|
y adalah B’.
|
Dengan A’adalah dekat ke A dan B’adalah dekat ke B. Ketika A, B, A’ dan B’adalah
himpunan fuzzy dari semesta yang berhubungan, maka penarikan kesimpulan
seperti tersebut dinamakan penalaran dengan pendekatan (approximate reasoning) yang disebut juga dengan generalized modus ponens (GMP).
9.4. Rangkaian Forward dan backward
Forward
chaining merupakan metode inferensi yang melakukan penalaran dari suatu
masalah kepada solusinya. Jika klausa premis sesuai dengan situasi
(bernilai TRUE), maka proses akan menyatakan konklusi. Forward chaining
adalah data-driven karena inferensi dimulai dengan informasi yang
tersedia dan baru konklusi diperoleh. Jika suatu aplikasi menghasilkan
tree yang lebar dan tidak dalam, maka gunakan forward chaining.
Contoh :
Terdapat 10 aturan yang tersimpan dalam basis pengetahuan yaitu :
R1 : if A and B then C
R2 : if C then D
R3 : if A and E then F
R4 : if A then G
R5 : if F and G then D
R6 : if G and E then H
R7 : if C and H then I
R8 : if I and A then J
R9 : if G then J
R10 : if J then K
Fakta
awal yang diberikan hanya A dan E, ingin membuktikan apakah K bernilai
benar. Proses penalaran forward chaining terlihat pada gambar dibawah :
Backward Chaining
Menggunakan
pendekatan goal-driven, dimulai dari harapan apa yang akan terjadi
(hipotesis) dan kemudian mencari bukti yang mendukung (atau berlawanan)
dengan harapan kita. Sering hal ini memerlukan perumusan dan pengujian
hipotesis sementara. Jika suatu aplikasi menghasilkan tree yang sempit
dan cukup dalam, maka gunakan backward chaining.
Contoh :
Seperti
pada contoh forward chining, terdapat 10 aturan yang sama pada basis
pengetahuan dan fakta awal yang diberikan hanya A dan E. ingin
membuktikan apakah K bernilai benar.
Tidak ada komentar:
Posting Komentar