Nama:Rendy Noviantono
NPM:15115757
Kelas:3KA10
Dosen: Essy Malays Sari Sakti
Logika Orde Pertama (First-Order Logic)
First-order logic itu salah satu jenis sistem formal, yang
digunakan untuk membuktikan kebenaran dari sebuah pernyataan.
Dalam first-order logic, setiap pernyataan dianggap memiliki
predikat. Predikat itu dapat menghubungkan pernyataan yang satu dengan yang
lain.
Kalimat-kalimat dalam first-order-logic dibuat dengan format
P( X, Y). P adalah predikat dan X adalah
subjek. Y adalah objek, yang merupakan variabel yang opsional.
Contoh kalimatnya adalah sebagai berikut:
Kalimat asli: James makan apel.
Kalimat FOL: makan(James, apel)
Kalimat FOL dapat juga diberikan kuantor dan tanda-tanda
logika lain, seperti berikut:
Kalimat asli: James suka daging dan Daisy suka sayur.
Kalimat FOL: suka(James, daging) ^ suka(Daisy, sayur)
Pembuktian
Ada dua cara untuk melakukan pembuktian menggunakan FOL,
yaitu backward chaining dan proof by resolution.
Untuk lebih jelasnya, langsung saja dijelaskan melalui
contoh soal.
Misalkan ada kalimat-kalimat berikut:
1. Thomas adalah
seorang raja Inggris.
2. Tina tinggal
di kerajaan Inggris.
3. Semua orang
yang tinggal di kerajaan bahagia ketika raja baik.
4. Thomas baik.
Lalu ditanyakan apakah Tina bahagia.
Pertama-tama, dibuat dulu bentuk FOL-nya, yaitu seperti
berikut:
1. Raja(Thomas,
Inggris)
2. Tinggal(Tina,
Inggris)
3. ∀X, ∃Y, ∃Z:
Tinggal(X, Y) ^ Raja(Z, Y) ^ Baik(Z) -> Bahagia(X)
4. Baik(Thomas)
1. Cara backward chaining
Pada backward chaining, kita memulai pengecekan dengan
menggunakan pertanyaan tadi sebagai awal chain. Lalu dilakukan chaining dengan
premis-premis lain hingga menghasilkan nilai null.
Hasilnya adalah sebagai berikut:
2. Cara proof by resolution
Proof by resolution menggunakan teknik kontradiksi, dimana
kita menggunakan premis yang berlawanan nilainya untuk membuktikan sesuatu.
Untuk melakukan proof by resolution, semua premis harus
dibuat menjadi clause normal form (CNF)terlebih dahulu. Dalam CNF, semua premis
tidak boleh menggunakan kuantor,
implikasi (jika X maka Y) dan biimplikasi (X jika dan hanya jika Y).
Lalu, jawaban dari pertanyaan dianggap salah dan dijadikan premis. Premis baru
ini dijadikan awal dari pembuktian.
CNF dari premis-premis tadi adalah sebagai berikut:
1. Raja(Thomas,
Inggris)
2. Tinggal(Tina,
Inggris)
3. ~Tinggal(X1,
Y1) v ~Raja(Z1, Y1) v ~Baik(Z1) v Bahagia(X1)
4. Baik(Thomas)
5. ~Bahagia(Tina)
Selanjutnya cara pengerjaan mirip dengan backward chaining,
tetapi yang dihubungkan adalah premis dengan hasil yang berlawanan. Hasil
kerjanya adalah sebagai berikut:
Propositional logic dalam menyelesaikan permasalahan dengan
menggunakan fakta-fakta yang diproses menggunakan logika-logika sederhana saja.
Sedangkan pada first order logic permasalahan diselesaikan dengan sentence yang
merepresentasikan fakta dan term yang merepresentasikan objek.
Komponen-komponen penting yang ada pada first order logic yaitu :
Objects : merupakan sesuatu yang dikenai logika-logika yang
memiliki identitas untuk masing-masing individual (komputer, rumah, mobil,
...).
a. Properties :
sifat yang dimiliki oleh objek dan merupakan pembeda dengan objek lainnya
(merah, besar, lingkaran, ...).
b. Relations :
aksi atau aktifitas yang menjadi penghubung antar objek dalam berelasi (saudara
dari, lebih tinggi dari, bagian dari).
c. Functions :
merupakan relation yang memiliki satu nilai (ayah dari, teman baik,...).
Komponen-komponen yang sudah dijelaskan diatas disebut
sebagai ontological commitment atau hal-hal apa saja yang diketahui dan
dijelaskan di dalam logic yang digunakan dalam menyelesaikan permasalahan.
Selanjutnya akan ditunjukkan beberapa jenis logic lain yang memiliki
ontological commitment dan epistemological commitment (kebenaran apa yang dapat
dinyatakan tentang sebuah sentence). Contoh beberapa logic lain adalah sebagai
berikut :
Logic
Ontologi
Epistemological
Propositiona l logic
Facts
True/false/unk nown
First-order logic
Facts, objects, relations
True/false/unk nown
Temporal logic
Facts, objects, relations, times
True/false/unk nown
Probability theory
Facts
Degree of believe 0...1
Fuzzy logic
Degree of truth
Degree of believe 0...1
Elemen-elemen dasar terkecil yang dimiliki oleh first order
logic adalah sebagai berikut :
· Constants
Dituliskan dalam huruf besar seperti A, X, NAMA. Pada simbol
konstanta ini, setiap simbol harus menyatakan secara spesifik objek yang
dimaksud. Tetapi, mungkin saja satu simbol mengacu pada beberapa nama berbeda.
Misalnya, MOBIL bisa mengacu pada MOBIL SEDAN, MOBIL JEEP, dan sebagainya. Oleh
karena itu penulisan simbol konstanta harus dilakukan secara hati-hati agar tidak
terjadi kerancuan atau ambiguitas.
· Predicates
Menyatakan relasi khusus dalam suatu model yang
menghubungkan antar objek yang memiliki hubungan. Misalkan Berwarna adalah
suatu predicate yang memiliki beberapa nilai. Contoh : Berwarna(Mobil, Biru),
Berwarna(Mobil, Merah), dan sebagainya.
· Functions
Menyatakan relasi yang hanya membutuhkan satu nilai. Karena
setiap orang hanya memiliki satu ayah, maka Ayah merupakan suatu function.
Misalkan Ayah(Boediono, Zaki).
· Variables
Dituliskan dalam huruf kecil seperti a, x, s dan sebagainya.
Variable ini menyatakan simbol yang dapat digantikan oleh konstanta apapun dan
bersifat dinamis.
· Connectives
Merupakan logika yang menghubungkan di dalam suatu kalimat
kompleks seperti : ∧∨ ¬ ⇒⇔
· Equality
Merupakan logika yang membandingkan kesamaan antara dua atau
lebih kalimat yang memiliki kesamaan nilai logika. Equality disimbolkan dengan
tanda =
· Quantifiers
Terdapat dua quantifier secara umum yaitu Universal
quantifier (∀) yang menyatakan sesuatu yang bersifat
umumdan Existential quantifier (∃) yang
menyatakan sesuatu yang berlaku sebagian saja.
B. Sintaks First
Order Logic
Tata bahasa pada first order logic meliputi :
Ø Terms
Merupakan ekspresi logika yang mengacu pada sebuah objek.
Terms bisa berupa constant, variable, atau function. Penulisan term dapat
dilihat pada contoh di bawah ini :
Text Box: function(term1,....,termn)
atau
constant
atau
variable
Ø Atomic sentences
Merupakan komponen yang dapat terbentuk dari Predicate(Term,
...) atau Term=Term. Atomic sentence merupakan kalimat paling sederhana dan
belum memiliki komponen logika lainnya. Bentuk penulisan atomic sentences
adalah sebagai berikut :
Text Box: predicate(term1,....,termn)
atau
term1 = term2
Contoh penggunaan adalah sebagai berikut :
Sepatu(Budi), Saudara(Ahmad, Anton),
Memberi(Andi,Budi,KueCoklat), Saudara(Andi)=Budi, dan sebagainya.
Ø Complex sentences
Merupakan kalimat kompleks yang tersusun dari beberapa
atomic sentence yang saling terhubung berdasarkan logika dengan menggunakan
connective. Bentuk penulisan dari complex sentences adalah sebagai berikut :
Complex Text Box: predicate1(term1,term2) ⇒ perdicate2(term3)
Contoh penggunaan dari complex sentence adalah sebagai
berikut:
o Belajar(Andi)⇒ Pintar(Andi)
o ¬S,S1∧S2,S1∨S2,S1⇒ S2,S1⇔ S2
o
Saudara(Ahmad,Andi)⇒
Saudara(Andi,Ahmad)
o >(1, 2) ∨ ≤ (1, 2)
o >(1, 2) ∧ ¬ > (1, 2)
o Belajar(x, SC) ⇒ Mengerti(x, AI)
C. Semantik First
Order Logic
Pada first order logic sama halnya dengan propositional
logic sebuah kalimat first order logic dikatakan true terhadap sebuah model,
artinya kalimat first order logic memiliki nilai kebenaran tertentu sehingga
dianggap true atau false. Satu kalimat dalam first order logic dapat
diinterpretasikan banyak cara dalam sebuah model. Model dalam first order logic
terdiri dari :
o Objects :
elemen-elemen yang nyata ada pada permasalahan (domain elements)
o Relations :
hubungan antara elemen-elemen / objek-objek tertentu
Sebuah interpretasi mendefinisikan referent (yang dipetakan)
sebagai berikut :
o Constant
symbols : objects
o Predicate
symbols : relations
o Functions
symbols : functional relations
Kalimat first order logic memiliki maksud kalimat atomik
predicate(term1,...,term2) dikatakan bernilai true dalam model m di bawah
unterpretasi i jika dan hanya jika object yang di-refer (term1, ... , term2) di
bawah i terhubung oleh relation yang di refer oleh predicate dalam m.
Ilustrasi pada gambar diatas menggambarkan komponen-komponen
yang ada pada first order logic. Pada ilustrasi digambarkan bahwa terdapat
orang dan raja. Hubungan keduanya adalah sebagai saudara satu dengan lainnya.
Dari gambar tersebut dapat dilihat masing-masing komponen adalah sebagai
berikut :
· Object
Ilustrasi menggambarkan ada seorang raja dan orang biasa,
dapat kita ambil contoh objek yang ada adalah orang, raja, kaki raja dan kaki
orang. Objek memiliki identitas tertentu yang nantinya akan melalui proses
logika.
· Function
function merupakan hubungan yang hanya membutuhkan satu
nilai untuk satu objek, contoh pada ilustrasi adalah kaki digunakan oleh orang
untuk berjalan.
· Relation
menyatakan hubungan antar objek yang memiliki relasi
tertentu, pada gambar ilustrasi terdapat relasi saudara antara orang dan raja.
2.4 Quantifiers
· Universal
quantifiers
Universal menyatakan logika yang digunakan untuk menunjuk
sesuatu yang bersifat umum. Simbol ∀ yang
memiliki makna "untuk semua atau setiap" atau "for all"
terhadap sebuah variabel x yang disimbolkan dengan ∀x berarti bahwa kalimat tersebut berlaku untuk setiap objek x.
Contoh permasalahan pada first order logic yang menggunakan Universal
Quantifiers adalah sebagai berikut : Misalkan ada kalimat "Ikhsan adalah
anak kecil", kalimat ini akan dinyatakan sebagai AnakKecil(Ikhsan), dan
ada kalimat "Andi suka permen" dinyatakan sebagai Suka(Andi,Permen).
Jika kita ingin membuat kalimat "Untuk setiap objek x, jika x adalah anak
kecil maka x suka permen". Maka kalimat dapat kita tuliskan pada bentuk
first order logic sebagai:
∀x AnakKecil(x)⇒Suka(x,Permen) kalimat tersebut akan bernilai benar jika dan
hanya jika semua kalimat di bawah ini benar.
AnakKecil(Budi) ⇒Suka(Budi,Permen)∧ AnakKecil(Rahmad)⇒Suka(Rahmad,Permen)∧ AnakKecil(Anton) ⇒Suka(Anton,Permen)∧
Hal-hal yang harus dihindari pada penggunaan Quantifier Universal
adalah penggunaan logika ∧ pada
kalimat utama karena akan menimbulkan pengertian yang ambigu.
· Existential
quantifiers
Existential menyatakan logika yang digunakan untuk menunjuk
sesuatu yang bersifat khusus. Artinya hanya beberapa bagian atau sebagian saja
dari keseluruhan himpunan. Logika ini merupakan kebalikan dari logika
Universal. Logika ini disimbolkan dengan ∃ yang
memiliki makna "There Exist" atau (ada satu atau beberapa). Kita
dapat menyatakan kalimat "Ada objek x, jika x adalah anak kecil
maka x suka permen" menjadi first order logic sebagai berikut:
∃x AnakKecil(x) ∧ SukaPermen(x).
Hal-hal yang harus dihindari pada penggunaan Quantifier
Universal adalah penggunaan logika⇒pada
kalimat utama karena akan menimbulkan pengertian yang ambigu.
2.5Equality
Equality merupakan pembandingan terhadap dua kalimat atau
term yang memiliki nilai logika true atau false. Kedua kalimat dianggap sama
jika memiliki nilai logika yang sama. Term1 =Term2 akan diinterpretasikan benar
jika dan hanya jika memiliki nilai yang sama. Contoh bentuk dari equality
adalah sebagai berikut :
Equality
x,ySaudara(x,y) ⇔ [¬ (x = y) ∧ m,f ¬ (m = f) ∧
OrangTua(m,x) ∧
OrangTua(f,x) ∧ OrangTua (m,y) ∧ OrangTua
(f,y)]
2.6 Inferensi pada First Order Logic
Proses Inferensi pada First Order Logic menggunakan 7 aturan
inferensi yang digunakan pada Propositional Logic, dengan ditambah aturan yang
lebih kompleks sehubungan dengan quantifiers, sebagai berikut :
1. Inference Rules Involving Quantifiers
SUBST(Ѳ,α): untuk menotasikan hasil dari pengaplikasian
operasi subsitusi Ѳ terhadap sentence α.
SUBST({x/Andi, y/Budi}, Saudara(x,y)) = Saudara(Andi, Budi).
2. UniversalElimination:
Untuk setiap sentence α,variable v,dan ground erm(term yang
tidak berisi variabel) g :
Dari ∀x Suka(x,
Membaca), dapat digunakan substitusi {x/Andi} dan melakukan inferensi bahwa
Suka(Andi, Membaca)
3. Existential Elimination:
untuk setiap sentence , variabel v, dan simbol konstanta k
yang tidak tampak dimanapun di dalam basis pengetahuan:
Dari x Membunuh(x, Korban), kita dapat menyimpulkan
Membunuh{Penjahat, Korban}, selama Penjahat tidak tidak tampak dimanapun di
dalam basis pengetahuan.
1. Existential
Introduction:
untuk setiap sentence , variabel v yang tidak terjadi pada ,
dan ground term g yang terjadi pada :
Dari Suka(Budi, Membaca) kita dapat menyimpulkan xSuka(x,
Membaca).
6.1
Percobaan/ Review / Contoh Kode Program (Jika memang ada)
terdapat pernyataan-pernyataan sebagai berikut :
- Andi adalah
seorang mahasiswa
- Andi masuk
Jurusan elektro
- Setiap
mahasiswa elektro pasti mahasiswa Teknik
- Kalkulus
adalah matakuliah yang sulit
- Setiap
mahasiswa Teknik pasti akan suka kalkulus atau akan membencinya
- Setiap
mahasiswa pasti akan suka terhadap suatu matakuliah
- Mahasiswa
yang tidak pernah hadir pada kuliah matakuliah sulit, maka mereka pasti tidak
suka terhadap matakuliah tersebut.
- Andi tidak
pernah hadir kuliah matakuliah kalkulus
• Kedelapan pernyataan di atas dapat dibawa ke bentuk logika
predikat :
a. mahasiswa(Andi)
b. Elektro(Andi)
c. ∀x: Elektro(x) ->Teknik(x)
d. sulit(Kalkulus)
e. ∀x: Teknik(x) -> suka(x, Kalkulus) ∨benci(x, Kalkulus)
f. ∀x:∃y : suka(x,y)
g. ∀x: ∀y: mahasiswa(x) ∧sulit(y) ∧~hadir(x,y)
->~suka(x,y)
h. ~hadir(Andi,
Kalkulus)
• Kemudian dibuat dalam bentuk klausa :
1. mahasiswa(Andi)
2. Elektro(Andi)
3. ~Elektro(x1) ∨ Teknik(x1)
4. sulit(Kalkulus)
5. ~Teknik(x2) ∨suka(x2, Kalkulus) ∨benci(x2,
Kalkulus)
6. suka(x3,f1(x3))
7. ~mahasiswa(x4) ∨~sulit(y1) ∨hadir(x4,y1)
∨~suka(x4,y1)
8.
~hadir(Andi,Kalkulus)
• Akan dibuktikan apakah “Andi benci kalkulus” atau dapat
ditulis benci(Andi,Kalkulus)
Penggunaan logika orde pertama
1. Assertions and
queries in first-order logic
2. The kinship
domain
3. Numbers, sets,
and lists
Penggunaan logika orde pertama
1. Assertions and
queries in first-order logic
2. The kinship
domain
3. Numbers, sets,
and lists
Rekayasa pengetahuan pada logika orde pertama
1. Identify the
task.
2. Assemble the
relevant knowledge.
3. Decide on a
vocabulary of predicates, functions, and constants.
4. Encode general
knowledge about the domain
5. Encode a
description of the specific problem instance.
6. Pose queries
to the inference procedure and get answers.
7. Debug the
knowledge base.
Logika proposisi vs. Inferensi Logika Orde Pertama
Bagian ini dan
selanjutnya mengenalkan ide-ide yang mendasari sistem inferensi logis modern.
Kita mulai dengan beberapa aturan inferensi sederhana yang
bisa diterapkan pada kalimat dengan
quantifiers untuk mendapatkan kalimat tanpa tanda pengenal.
Aturan ini secara alami mengarah
pada gagasan bahwa pesanan pertama Kesimpulan dapat
dilakukan dengan mengubah basis
pengetahuan menjadi logika dan penggunaan proposisional
Inferensi proposisional,
yang sudah kita ketahui bagaimana melakukannya.Bagian selanjutnya
menunjukkan sebuah
jalan pintas yang
jelas, mengarah ke metode inferensi yang memanipulasi kalimat orde pertama
secara langsung.
Unifikasi dan Lifting
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 :
Dua atom (konstanta atau peubah) adalah identik.
Dua daftar identik, atau ekspresi dikonversi ke dalam satu
buah daftar.
Sebuah konstanta dan satu peubah terikat dipersatukan,
sehingga peubah menjadi terikat kepada konstanta.
Sebuah peubah tak terikat dipersatukan dengan sebuah peubah
terikat.
Sebuah peubah terikat dipersatukan dengan sebuah konstanta
jika pengikatan pada peubah terikat dengan konstanta tidak ada konflik.
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).
Dua peubah terikat disatukan jika keduanya terikat (mungkin
melalui pengikatan tengah) ke atom yang sama (peubah atau konstanta)
First-order logic itu salah satu jenis sistem formal, yang
digunakan untuk membuktikan kebenaran dari sebuah pernyataan.
Dalam first-order logic, setiap pernyataan dianggap memiliki
predikat. Predikat itu dapat menghubungkan pernyataan yang satu dengan yang
lain.
Kalimat-kalimat dalam first-order-logic dibuat dengan format
P( X, Y). P adalah predikat dan X adalah
subjek. Y adalah objek, yang merupakan variabel yang opsional.
Contoh kalimatnya adalah sebagai berikut:
Kalimat asli: James makan apel.
Kalimat FOL: makan(James, apel)
Kalimat FOL dapat juga diberikan kuantor dan tanda-tanda
logika lain, seperti berikut:
Kalimat asli: James suka daging dan Daisy suka sayur.
Kalimat FOL: suka(James, daging) ^ suka(Daisy, sayur)
Pembuktian
Ada dua cara untuk melakukan pembuktian menggunakan FOL,
yaitu backward chaining dan proof by resolution.
Untuk lebih jelasnya, langsung saja dijelaskan melalui
contoh soal.
Misalkan ada kalimat-kalimat berikut:
1. Thomas adalah
seorang raja Inggris.
2. Tina tinggal
di kerajaan Inggris.
3. Semua orang
yang tinggal di kerajaan bahagia ketika raja baik.
4. Thomas baik.
Lalu ditanyakan apakah Tina bahagia.
Pertama-tama, dibuat dulu bentuk FOL-nya, yaitu seperti
berikut:
1. Raja(Thomas,
Inggris)
2. Tinggal(Tina,
Inggris)
3. ∀X, ∃Y, ∃Z:
Tinggal(X, Y) ^ Raja(Z, Y) ^ Baik(Z) -> Bahagia(X)
4. Baik(Thomas)
1. Cara backward chaining
Pada backward chaining, kita memulai pengecekan dengan
menggunakan pertanyaan tadi sebagai awal chain. Lalu dilakukan chaining dengan
premis-premis lain hingga menghasilkan nilai null.
Hasilnya adalah sebagai berikut:
2. Cara proof by resolution
Proof by resolution menggunakan teknik kontradiksi, dimana
kita menggunakan premis yang berlawanan nilainya untuk membuktikan sesuatu.
Untuk melakukan proof by resolution, semua premis harus
dibuat menjadi clause normal form (CNF)terlebih dahulu. Dalam CNF, semua premis
tidak boleh menggunakan kuantor,
implikasi (jika X maka Y) dan biimplikasi (X jika dan hanya jika Y).
Lalu, jawaban dari pertanyaan dianggap salah dan dijadikan premis. Premis baru
ini dijadikan awal dari pembuktian.
CNF dari premis-premis tadi adalah sebagai berikut:
1. Raja(Thomas,
Inggris)
2. Tinggal(Tina,
Inggris)
3. ~Tinggal(X1,
Y1) v ~Raja(Z1, Y1) v ~Baik(Z1) v Bahagia(X1)
4. Baik(Thomas)
5. ~Bahagia(Tina)
Selanjutnya cara pengerjaan mirip dengan backward chaining,
tetapi yang dihubungkan adalah premis dengan hasil yang berlawanan. Hasil
kerjanya adalah sebagai berikut:
Propositional logic dalam menyelesaikan permasalahan dengan
menggunakan fakta-fakta yang diproses menggunakan logika-logika sederhana saja.
Sedangkan pada first order logic permasalahan diselesaikan dengan sentence yang
merepresentasikan fakta dan term yang merepresentasikan objek.
Komponen-komponen penting yang ada pada first order logic yaitu :
Objects : merupakan sesuatu yang dikenai logika-logika yang
memiliki identitas untuk masing-masing individual (komputer, rumah, mobil,
...).
a. Properties :
sifat yang dimiliki oleh objek dan merupakan pembeda dengan objek lainnya
(merah, besar, lingkaran, ...).
b. Relations :
aksi atau aktifitas yang menjadi penghubung antar objek dalam berelasi (saudara
dari, lebih tinggi dari, bagian dari).
c. Functions :
merupakan relation yang memiliki satu nilai (ayah dari, teman baik,...).
Komponen-komponen yang sudah dijelaskan diatas disebut
sebagai ontological commitment atau hal-hal apa saja yang diketahui dan
dijelaskan di dalam logic yang digunakan dalam menyelesaikan permasalahan.
Selanjutnya akan ditunjukkan beberapa jenis logic lain yang memiliki
ontological commitment dan epistemological commitment (kebenaran apa yang dapat
dinyatakan tentang sebuah sentence). Contoh beberapa logic lain adalah sebagai
berikut :
Logic
Ontologi
Epistemological
Propositiona l logic
Facts
True/false/unk nown
First-order logic
Facts, objects, relations
True/false/unk nown
Temporal logic
Facts, objects, relations, times
True/false/unk nown
Probability theory
Facts
Degree of believe 0...1
Fuzzy logic
Degree of truth
Degree of believe 0...1
Elemen-elemen dasar terkecil yang dimiliki oleh first order
logic adalah sebagai berikut :
· Constants
Dituliskan dalam huruf besar seperti A, X, NAMA. Pada simbol
konstanta ini, setiap simbol harus menyatakan secara spesifik objek yang
dimaksud. Tetapi, mungkin saja satu simbol mengacu pada beberapa nama berbeda.
Misalnya, MOBIL bisa mengacu pada MOBIL SEDAN, MOBIL JEEP, dan sebagainya. Oleh
karena itu penulisan simbol konstanta harus dilakukan secara hati-hati agar tidak
terjadi kerancuan atau ambiguitas.
· Predicates
Menyatakan relasi khusus dalam suatu model yang
menghubungkan antar objek yang memiliki hubungan. Misalkan Berwarna adalah
suatu predicate yang memiliki beberapa nilai. Contoh : Berwarna(Mobil, Biru),
Berwarna(Mobil, Merah), dan sebagainya.
· Functions
Menyatakan relasi yang hanya membutuhkan satu nilai. Karena
setiap orang hanya memiliki satu ayah, maka Ayah merupakan suatu function.
Misalkan Ayah(Boediono, Zaki).
· Variables
Dituliskan dalam huruf kecil seperti a, x, s dan sebagainya.
Variable ini menyatakan simbol yang dapat digantikan oleh konstanta apapun dan
bersifat dinamis.
· Connectives
Merupakan logika yang menghubungkan di dalam suatu kalimat
kompleks seperti : ∧∨ ¬ ⇒⇔
· Equality
Merupakan logika yang membandingkan kesamaan antara dua atau
lebih kalimat yang memiliki kesamaan nilai logika. Equality disimbolkan dengan
tanda =
· Quantifiers
Terdapat dua quantifier secara umum yaitu Universal
quantifier (∀) yang menyatakan sesuatu yang bersifat
umumdan Existential quantifier (∃) yang
menyatakan sesuatu yang berlaku sebagian saja.
B. Sintaks First
Order Logic
Tata bahasa pada first order logic meliputi :
Ø Terms
Merupakan ekspresi logika yang mengacu pada sebuah objek.
Terms bisa berupa constant, variable, atau function. Penulisan term dapat
dilihat pada contoh di bawah ini :
Text Box: function(term1,....,termn)
atau
constant
atau
variable
Ø Atomic sentences
Merupakan komponen yang dapat terbentuk dari Predicate(Term,
...) atau Term=Term. Atomic sentence merupakan kalimat paling sederhana dan
belum memiliki komponen logika lainnya. Bentuk penulisan atomic sentences
adalah sebagai berikut :
Text Box: predicate(term1,....,termn)
atau
term1 = term2
Contoh penggunaan adalah sebagai berikut :
Sepatu(Budi), Saudara(Ahmad, Anton),
Memberi(Andi,Budi,KueCoklat), Saudara(Andi)=Budi, dan sebagainya.
Ø Complex sentences
Merupakan kalimat kompleks yang tersusun dari beberapa
atomic sentence yang saling terhubung berdasarkan logika dengan menggunakan
connective. Bentuk penulisan dari complex sentences adalah sebagai berikut :
Complex Text Box: predicate1(term1,term2) ⇒ perdicate2(term3)
Contoh penggunaan dari complex sentence adalah sebagai
berikut:
o Belajar(Andi)⇒ Pintar(Andi)
o ¬S,S1∧S2,S1∨S2,S1⇒ S2,S1⇔ S2
o
Saudara(Ahmad,Andi)⇒
Saudara(Andi,Ahmad)
o >(1, 2) ∨ ≤ (1, 2)
o >(1, 2) ∧ ¬ > (1, 2)
o Belajar(x, SC) ⇒ Mengerti(x, AI)
C. Semantik First
Order Logic
Pada first order logic sama halnya dengan propositional
logic sebuah kalimat first order logic dikatakan true terhadap sebuah model,
artinya kalimat first order logic memiliki nilai kebenaran tertentu sehingga
dianggap true atau false. Satu kalimat dalam first order logic dapat
diinterpretasikan banyak cara dalam sebuah model. Model dalam first order logic
terdiri dari :
o Objects :
elemen-elemen yang nyata ada pada permasalahan (domain elements)
o Relations :
hubungan antara elemen-elemen / objek-objek tertentu
Sebuah interpretasi mendefinisikan referent (yang dipetakan)
sebagai berikut :
o Constant
symbols : objects
o Predicate
symbols : relations
o Functions
symbols : functional relations
Kalimat first order logic memiliki maksud kalimat atomik
predicate(term1,...,term2) dikatakan bernilai true dalam model m di bawah
unterpretasi i jika dan hanya jika object yang di-refer (term1, ... , term2) di
bawah i terhubung oleh relation yang di refer oleh predicate dalam m.
Ilustrasi pada gambar diatas menggambarkan komponen-komponen
yang ada pada first order logic. Pada ilustrasi digambarkan bahwa terdapat
orang dan raja. Hubungan keduanya adalah sebagai saudara satu dengan lainnya.
Dari gambar tersebut dapat dilihat masing-masing komponen adalah sebagai
berikut :
· Object
Ilustrasi menggambarkan ada seorang raja dan orang biasa,
dapat kita ambil contoh objek yang ada adalah orang, raja, kaki raja dan kaki
orang. Objek memiliki identitas tertentu yang nantinya akan melalui proses
logika.
· Function
function merupakan hubungan yang hanya membutuhkan satu
nilai untuk satu objek, contoh pada ilustrasi adalah kaki digunakan oleh orang
untuk berjalan.
· Relation
menyatakan hubungan antar objek yang memiliki relasi
tertentu, pada gambar ilustrasi terdapat relasi saudara antara orang dan raja.
2.4 Quantifiers
· Universal
quantifiers
Universal menyatakan logika yang digunakan untuk menunjuk
sesuatu yang bersifat umum. Simbol ∀ yang
memiliki makna "untuk semua atau setiap" atau "for all"
terhadap sebuah variabel x yang disimbolkan dengan ∀x berarti bahwa kalimat tersebut berlaku untuk setiap objek x.
Contoh permasalahan pada first order logic yang menggunakan Universal
Quantifiers adalah sebagai berikut : Misalkan ada kalimat "Ikhsan adalah
anak kecil", kalimat ini akan dinyatakan sebagai AnakKecil(Ikhsan), dan
ada kalimat "Andi suka permen" dinyatakan sebagai Suka(Andi,Permen).
Jika kita ingin membuat kalimat "Untuk setiap objek x, jika x adalah anak
kecil maka x suka permen". Maka kalimat dapat kita tuliskan pada bentuk
first order logic sebagai:
∀x AnakKecil(x)⇒Suka(x,Permen) kalimat tersebut akan bernilai benar jika dan
hanya jika semua kalimat di bawah ini benar.
AnakKecil(Budi) ⇒Suka(Budi,Permen)∧ AnakKecil(Rahmad)⇒Suka(Rahmad,Permen)∧ AnakKecil(Anton) ⇒Suka(Anton,Permen)∧
Hal-hal yang harus dihindari pada penggunaan Quantifier Universal
adalah penggunaan logika ∧ pada
kalimat utama karena akan menimbulkan pengertian yang ambigu.
· Existential
quantifiers
Existential menyatakan logika yang digunakan untuk menunjuk
sesuatu yang bersifat khusus. Artinya hanya beberapa bagian atau sebagian saja
dari keseluruhan himpunan. Logika ini merupakan kebalikan dari logika
Universal. Logika ini disimbolkan dengan ∃ yang
memiliki makna "There Exist" atau (ada satu atau beberapa). Kita
dapat menyatakan kalimat "Ada objek x, jika x adalah anak kecil
maka x suka permen" menjadi first order logic sebagai berikut:
∃x AnakKecil(x) ∧ SukaPermen(x).
Hal-hal yang harus dihindari pada penggunaan Quantifier
Universal adalah penggunaan logika⇒pada
kalimat utama karena akan menimbulkan pengertian yang ambigu.
2.5Equality
Equality merupakan pembandingan terhadap dua kalimat atau
term yang memiliki nilai logika true atau false. Kedua kalimat dianggap sama
jika memiliki nilai logika yang sama. Term1 =Term2 akan diinterpretasikan benar
jika dan hanya jika memiliki nilai yang sama. Contoh bentuk dari equality
adalah sebagai berikut :
Equality
x,ySaudara(x,y) ⇔ [¬ (x = y) ∧ m,f ¬ (m = f) ∧
OrangTua(m,x) ∧
OrangTua(f,x) ∧ OrangTua (m,y) ∧ OrangTua
(f,y)]
2.6 Inferensi pada First Order Logic
Proses Inferensi pada First Order Logic menggunakan 7 aturan
inferensi yang digunakan pada Propositional Logic, dengan ditambah aturan yang
lebih kompleks sehubungan dengan quantifiers, sebagai berikut :
1. Inference Rules Involving Quantifiers
SUBST(Ѳ,α): untuk menotasikan hasil dari pengaplikasian
operasi subsitusi Ѳ terhadap sentence α.
SUBST({x/Andi, y/Budi}, Saudara(x,y)) = Saudara(Andi, Budi).
2. UniversalElimination:
Untuk setiap sentence α,variable v,dan ground erm(term yang
tidak berisi variabel) g :
Dari ∀x Suka(x,
Membaca), dapat digunakan substitusi {x/Andi} dan melakukan inferensi bahwa
Suka(Andi, Membaca)
3. Existential Elimination:
untuk setiap sentence , variabel v, dan simbol konstanta k
yang tidak tampak dimanapun di dalam basis pengetahuan:
Dari x Membunuh(x, Korban), kita dapat menyimpulkan
Membunuh{Penjahat, Korban}, selama Penjahat tidak tidak tampak dimanapun di
dalam basis pengetahuan.
1. Existential
Introduction:
untuk setiap sentence , variabel v yang tidak terjadi pada ,
dan ground term g yang terjadi pada :
Dari Suka(Budi, Membaca) kita dapat menyimpulkan xSuka(x,
Membaca).
6.1
Percobaan/ Review / Contoh Kode Program (Jika memang ada)
terdapat pernyataan-pernyataan sebagai berikut :
- Andi adalah
seorang mahasiswa
- Andi masuk
Jurusan elektro
- Setiap
mahasiswa elektro pasti mahasiswa Teknik
- Kalkulus
adalah matakuliah yang sulit
- Setiap
mahasiswa Teknik pasti akan suka kalkulus atau akan membencinya
- Setiap
mahasiswa pasti akan suka terhadap suatu matakuliah
- Mahasiswa
yang tidak pernah hadir pada kuliah matakuliah sulit, maka mereka pasti tidak
suka terhadap matakuliah tersebut.
- Andi tidak
pernah hadir kuliah matakuliah kalkulus
• Kedelapan pernyataan di atas dapat dibawa ke bentuk logika
predikat :
a. mahasiswa(Andi)
b. Elektro(Andi)
c. ∀x: Elektro(x) ->Teknik(x)
d. sulit(Kalkulus)
e. ∀x: Teknik(x) -> suka(x, Kalkulus) ∨benci(x, Kalkulus)
f. ∀x:∃y : suka(x,y)
g. ∀x: ∀y: mahasiswa(x) ∧sulit(y) ∧~hadir(x,y)
->~suka(x,y)
h. ~hadir(Andi,
Kalkulus)
• Kemudian dibuat dalam bentuk klausa :
1. mahasiswa(Andi)
2. Elektro(Andi)
3. ~Elektro(x1) ∨ Teknik(x1)
4. sulit(Kalkulus)
5. ~Teknik(x2) ∨suka(x2, Kalkulus) ∨benci(x2,
Kalkulus)
6. suka(x3,f1(x3))
7. ~mahasiswa(x4) ∨~sulit(y1) ∨hadir(x4,y1)
∨~suka(x4,y1)
8.
~hadir(Andi,Kalkulus)
• Akan dibuktikan apakah “Andi benci kalkulus” atau dapat
ditulis benci(Andi,Kalkulus)
Penggunaan logika orde pertama
1. Assertions and
queries in first-order logic
2. The kinship
domain
3. Numbers, sets,
and lists
Penggunaan logika orde pertama
1. Assertions and
queries in first-order logic
2. The kinship
domain
3. Numbers, sets,
and lists
Rekayasa pengetahuan pada logika orde pertama
1. Identify the
task.
2. Assemble the
relevant knowledge.
3. Decide on a
vocabulary of predicates, functions, and constants.
4. Encode general
knowledge about the domain
5. Encode a
description of the specific problem instance.
6. Pose queries
to the inference procedure and get answers.
7. Debug the
knowledge base.
Logika proposisi vs. Inferensi Logika Orde Pertama
Bagian ini dan
selanjutnya mengenalkan ide-ide yang mendasari sistem inferensi logis modern.
Kita mulai dengan beberapa aturan inferensi sederhana yang
bisa diterapkan pada kalimat dengan
quantifiers untuk mendapatkan kalimat tanpa tanda pengenal.
Aturan ini secara alami mengarah
pada gagasan bahwa pesanan pertama Kesimpulan dapat
dilakukan dengan mengubah basis
pengetahuan menjadi logika dan penggunaan proposisional
Inferensi proposisional,
yang sudah kita ketahui bagaimana melakukannya.Bagian selanjutnya
menunjukkan sebuah
jalan pintas yang
jelas, mengarah ke metode inferensi yang memanipulasi kalimat orde pertama
secara langsung.
Unifikasi dan Lifting
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 :
Dua atom (konstanta atau peubah) adalah identik.
Dua daftar identik, atau ekspresi dikonversi ke dalam satu
buah daftar.
Sebuah konstanta dan satu peubah terikat dipersatukan,
sehingga peubah menjadi terikat kepada konstanta.
Sebuah peubah tak terikat dipersatukan dengan sebuah peubah
terikat.
Sebuah peubah terikat dipersatukan dengan sebuah konstanta
jika pengikatan pada peubah terikat dengan konstanta tidak ada konflik.
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).
Dua peubah terikat disatukan jika keduanya terikat (mungkin
melalui pengikatan tengah) ke atom yang sama (peubah atau konstanta)
Referensi :
Ebook Artifical Intelligence A Modern Approach(3rd Edition)
Download:
http://web.cecs.pdx.edu/~mperkows/CLASS_479/2017_ZZ_00/02__GOOD_Russel=Norvig=Artificial%20Intelligence%20A%20Modern%20Approach%20(3rd%20Edition).pdf
http://imamcs.lecture.ub.ac.id/tag/logika-order-pertama-first-order-logic/
http://dinus.ac.id/repository/docs/ajar/slide_8_log_inf.pptx
https://www.scribd.com/document/356627886/Bab-6-First-Order-Logic
http://www.binus.ac.id
Ebook Artifical Intelligence A Modern Approach(3rd Edition)
Download:
http://web.cecs.pdx.edu/~mperkows/CLASS_479/2017_ZZ_00/02__GOOD_Russel=Norvig=Artificial%20Intelligence%20A%20Modern%20Approach%20(3rd%20Edition).pdf
http://imamcs.lecture.ub.ac.id/tag/logika-order-pertama-first-order-logic/
http://dinus.ac.id/repository/docs/ajar/slide_8_log_inf.pptx
https://www.scribd.com/document/356627886/Bab-6-First-Order-Logic
http://www.binus.ac.id
Komentar
Posting Komentar