Resolusi pada logika predikat pada dasarnya sama dengan resolusi pada logika
proposisi, hanya saja ditambah dengan unufikasi. Pada logika predikat, prosedur untuk membuktikan
pernyataan P dengan beberapa pernyataan F yang telah diketahui, dengan menggunakan resolusi,
dapat dilakukan melalui algoritma sebagai berikut:
1. Konversikan semua proposisi F ke bentuk klausa.
2. Negasikan P, dan konversikan hasil negasi tersebut ke bentuk klausa. Tambahkan ke
himpunan klausa yang telah ada pada langkah 1.
3. Kerjakan hingga terjadi kontradiksi atau proses tidak mengalami kemajuan:
a. Seleksi 2 klausa sebagai klausa parent.
b. Bandingkan (resolve) secara bersama-sama. Klausa hasil resolve tersebut dinamakan resolvent.
Jika ada pasangan literal T1 dan T2 sedemikian hingga keduanya dapat dilakukan unifikasi, maka salah satu T1 atau T2 tidak muncul lagi dalam
resolvent. T1 dan T2 disebut sebagai complementary literal. Jika ada lebih dari 1
complementary literal, maka hanya sepasang yang dapat meninggalkan resolvent.
c. Jika resolvent berupa klausa kosong, maka ditemukan kontradiksi. Jika
tidak, tambahkan ke himpunan klausa yang telah ada.
Contoh :
Misalkan terdapat pernyataan-pernyataan sebagai berikut :
1. Andi adalah seorang mahasiswa.
2. Andi masuk Jurusan Elektro.
3. Setiap mahasiswa elektro pasti mahasiswa teknik.
4. Kalkulus adalah matakuliah yang sulit.
5. Setiap mahasiswa teknik pasti akan suka kalkulus atau akan membencinya.
6. Setiap mahasiswa pasti akan suka terhadap suatu matakuliah.
7. Mahasiswa yang tidak pernah hadir pada kuliah matakuliah sulit, maka mereka pasti tidak
suka terhadap matakuliah tersebut.
8. Andi tidak pernah hadir kuliah matakuliah kalkulus.
Kedelapan pernyataan di atas dapat dibawa ke bentuk logika predikat, dengan
menggunakan operator-operator logika predikat, sebagai berikut :
mahasiswa(Andi).
Elektro(Andi).
∀x:Elektro(x)→Teknik(x).
sulit(Kalkulus).
∀x:Teknik(x) →
suka(x,Kalkulus) ∨ benci(x,Kalkulus).
∀x:∃y:suka(x,y).
∀x:∀y:mahasiswa(x)∧sulit(y) ∧ ¬hadir(x,y)→ ¬suka(x,y).
¬hadir(Andi,Kalkulus).
Kita dapat membawa pernyataan-pernyataan yang ada menjadi bentuk klausa (CNF)
sebagai berikut:
mahasiswa(Andi).
Elektro(Andi).
¬Elektro(x1) ∨ Teknik(x1).
sulit(Kalkulus).
¬Teknik(x2) ∨ suka(x2,Kalkulus) ∨ benci(x2,Kalkulus).
suka(x3,fl(x3)).
¬mahasiswa(x4) ∨ ¬sulit(y1) ∨ hadir(x4,y1) ∨ ¬suka(x4,y1).
hadir(Andi,Kalkulus).
Apabila ingin dibuktikan apakah Andi benci kalkulus, maka kita bisa lakukan dengan
membuktikan: (dibuktikan dalam gambar)
Tidak ada komentar:
Posting Komentar