Rabu, 27 Januari 2016

Logika Predikat


Logika predikat adalah suatu logika yang lebih canggih yang seluruhnya menggunakan konsep dan kaidah proposional yang sama. Disebut juga sebagai kalkulus predikat, yang memberi tambahan kemampuan untuk merepresentasikan pengetahuan dengan sangat cermat dan rinci.

Kalkulus predikat memungkinkan kita untuk memecahkan statement ke dalam bagian komponen, yang disebut objek, karakteristik objek atau beberapa keterangan objek. Suatu proposisi atau premis dibagi menjadi dua bagian, yaitu Argumen (atau objek) dan Predikat (keterangan). Argumen adalah individu atau objek yang membuat keterangan. Predikat adalah keterangan yang membuat argumen dan predikat.

Dalam suatu kalimat, predikat dapat berupa kata kerja atau bagian kata kerja.






Contoh lain



Pengetahuan diekspresikan dalam kalkulus predikat yang dapat dimanipulasi agar dapat diinferensi/dinalar. Pangkalan pengetahuan dibentuk dengan menggunakan variabel sebagai simbol-simbol untuk merancang obyek, misalnya :




Predikat kalkulus membolehkan penggunaan simbol untuk mewakili fungsi-fungsi, Misalnya:




Fungsi dapat digunakan bersamaan dengan predikat. Misalnya, predikat berikut menjelaskan bahwa Jojon dan Dorce adalah berteman :


Predikat kalkulus menggunakan operator yang sama seperti pada logika proporsional.

Operator Logika Predikat
→ (implikasi), ⌐ (not), ∧ (and), ∨ (or), ∀ (untuk setiap), dan ∃ (terdapat). Sebagai berikut :

Quantifier Universal (∀)
Menyatakan “ untuk setiap” atau “untuk semua”, Contoh : p menunjukkan kalimat seluruh kucing adalah binatang :
(∀x) (p) ≡ (∀x) (if x adalah seekor kucing → ¬x adalah seekor binatang)
atau
(∀x) (x is a cat → x is a animal)
Negasi : (∀x) (p) ≡ (∀x) (if x is a cat → x is a animal)
Contoh:
Bagaimana kalimat matematika untuk “seluruh segitiga adalah poligon” ?
Bagaimana Predicate Funcition ?
(∀x) (x is a triangle → x is a polygon)
(∀x) (triangle (x) → polygon (x))
Fungsi Predikat dituliskan dg notasi yg lebih singkat dengan huruf besar
Misal : T = triangle dan P = Polygon
(∀x) (T(x) → P(x))

Existential Quantifier (∃)
Suatu pernyataan benar untuk minimal satu anggota domain,  Dibaca “there exists”, “at least one”, “for some”, “there is one” , “some”
Contoh :
P=gajah
Q=binatang mamalia
Semua gajah adalah mamalia (∀x) (P(x) → Q(x))
Beberapa gajah bukan mamalia (∃x) (P(x) → ¬Q(x))
Beberapa gajah adalah mamalia (∃x) (P(x) →Q(x))
Beberapa table tentang Existential Quantifier :



Penjelasan lebih lanjut tentang Operator Logika Predikat menggunakan clausa:
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 mata kuliah yang sulit.
5. Setiap mahasiswa teknik pasti akan suka kalkulus atau akan membencinya.
6. Setiap mahasiswa pasti akan suka terhadap suatu mata kuliah.
7. Mahasiswa yang tidak pernah hadir pada kuliah mata kuliah sulit, maka mereka pasti tidak suka terhadap mata kuliah tersebut.
8. Andi tidak pernah hadir kuliah mata kuliah kalkulus.
Kedelapan pernyataan di atas dapat dibawa ke bentuk logika predikat, dengan menggunakan operator-operator logika predikat sebagai berikut:
1. mahasiswa  (Andi).
2. Elektro (Andi).
3. ∀ x: Elektro(x)→Teknik(x).
4. sulit(Kalkulus).
5. ∀ x: Teknik(x) → suka(x,Kalkulus) ∨ benci(x,Kalkulus).
6. ∀ x: ∃y:suka(x,y).
7. ∀ x: ∀y: mahasiswa(x)∧sulit(y) ∧ ¬hadir(x,y)→¬suka(x,y).
8. ¬hadir (Andi,Kalkulus).

Andaikan kita akan menjawab pertanyaan:
“Apakah Andi suka matakuliah kalkulus?”
maka dari pernyataan ke-7 kita akan membuktikan bahwa Andi tidak suka dengan matakuliah kalkulus. Dengan menggunakan penalaran backward bisa dibuktikan bahwa:
¬suka(Andi,Kalkulus)

sebagai berikut:
¬suka(Andi,Kalkulus)
  ↑ (7, substitusi)
mahasiswa(Andi) ∧
sulit(Kalkulus) ∧
¬hadir(Andi,Kalkulus)
↑ (1)
sulit(Kalkulus) ∧
¬hadir(Andi,Kalkulus)
                         ↑ (4)
¬hadir(Andi,Kalkulus)
            ↑ (8)
Dari penalaran tersebut dapat dibuktikan bahwa Andi tidak suka dengan matakuliah kalkulus.
Konversi Logika Predikat Ke Dalam Bentuk Klausa
Algoritma konversi ke bentuk klausa (CNF):
1. Eliminir a → b menjadi ¬ a ∨ b
2. Reduksi skope dari ¬ sebagai berikut:
¬(¬a ∧ b) ≡ ¬a ∨ ¬b
¬(¬a ∨ b) ≡ ¬a ∧ ¬b
¬ ∀x:P(x) ≡ ∃x:¬P(x)
¬ ∃x:P(x) ≡ ∀x:¬P(x)
3. Standarisasi variabel sehingga semua qualifiaer (∀ & ∃) terletak pada satu variabel yang unik.
∀x:P(x) ∨ ∀x:Q(x) menjadi
∀x:P(x) ∨ ∀y:Q(y)
        4. Pindahkan semua qualifier ke depan tanpa mengubah urutan relatifnya.
5. Eliminasi qualifier “ ∃ “.
∀x: ∃y:P(y,x) menjadi ∀x: P(S(x),x)
6. Buang semua prefiks qualifier “∀“.
7. Ubah menjadi conjunction of disjunctiuon:
(a ∧ b) ∨ c ≡ (a ∨ b) ∧ (b ∨ c)
8. Bentuk klausa untuk tiap-tiap bagian konjungsi.
9. Standarisasi variabel di tiap klausa
Contoh :
Andaikan ada pernyataan: “Setiap orang yang mengenal Hitler, maka ia akan menyukainya atau berpikir bahwa orang yang membunuh orang lain itu gila ”. Apabila dibawa ke bentuk wff:
∀x: [orang(x) ∧ kenal(x,Hitler)] → [suka(x,Hitler) ∨ (∀y:∃z: bunuh(y,z) → gila(x,y))]
Konversi ke bentuk klausa:
1. ∀x: ¬ [orang(x) ∧ kenal(x,Hitler)] ∨
[suka(x,Hitler) ∨ (∀y: ¬ (∃z:bunuh(y,z)) ∨ gila(x,y))]
2. ∀x: [¬ orang(x) ∨ ¬ kenal(x,Hitler)] ∨
    [suka(x,Hitler) ∨ (∀y: ( ∀z: ¬ bunuh(y,z)) ∨ gila(x,y))]
3. sesuai
4. ∀x: ∀y:∀z: [¬ orang(x) ∨ ¬ kenal(x,Hitler)] ∨
[suka(x,Hitler) ∨ (¬ bunuh(y,z)) ∨ gila(x,y))]
5. sesuai
6. [¬ orang(x) ∨ ¬ kenal(x,hitler)] ∨
  [suka(x,Hitler) ∨ (¬ bunuh(y,z)) ∨ gila(x,y))]
7. ¬ orang(x) ∨ ¬ kenal(x,Hitler)
    ∨ suka(x,Hitler) ∨ ¬ bunuh(y,z) ∨ gila(x,y)
8. sesuai
9. sesuai




Share:

0 komentar:

Posting Komentar

Diberdayakan oleh Blogger.

Blogger templates