BAB IX
9.1. Mengubah
inferensi order pertama menjadi inferensi proposisi
KETERBATASAN LOGIKA PROPOSISI
- Perhatikan contoh berikut :
All men are mortal
Socrates is a man
__________________________
Therefore, Socrates is mortal
Misal : p = All men are mortal
q = Socrates is a man
r = Socrates is mortal
Skema argumennya menjadi : p, q; r
p
q
_______
r
Bila dibuat tabel kebenaran, hasilnya invalid.
- Argumen invalid sering diinterpretasikan sebagai konklusi
yang salah (walaupun beberapa orang berpendapat argumen itu dapat saja bernilai
benar).
- Argumen yang invalid berarti argumen tersebut tidak dapat
dibuktikan dengan logika proposisi.
- Keterbatasan logika proposisi dapat diatasi melalui logika
predikat sehingga argumen tersebut menjadi valid.
- Kenyataannya, semua logika silogistik adalah subset yang
valid dari logika proposisi urutan pertama.
Contoh :
If Socrates is a man, then Socrates is mortal
Socrates is a man
Therefore, Socrates is mortal
Misal:
p = Socrates is a man
q = Socrates is mortal
Argumennya menjadi :
p →q
p
_______________
q
Argumen di atas adalah silogistik yang valid, yaitu bentuk
modus ponens.
· Generalized
Modus ponens
Banyak teknik AI didasarkan pada logika predikat,
diperpanjang dengan cara tertentu, menggunakan modus umum ponens sebagai aturan
inferensi. Hal ini sederhana untuk program dan cukup kuat. Bahasa pemrograman
Prolog didasarkan pada semacam logika ini.
9.4. Rangkaian Forward Chaining dan Backward Chaining
Metode forward Chaining
Kadang disebut:data-driven karena inference engine
menggunakan informasi yang ditentukan oleh user untuk memindahkan ke seluruh
jaringan dari logika ‘AND’ dan ‘OR’ sampai sebuah terminal ditentukan sebagai
objek. Bila inference engine tidak dapat menentukan objek maka akan meminta
informasi lain. Aturan (Rule) di mana menentukan objek, membentuk path
(lintasan) yang mengarah ke objek. Oleh karena itu, hanya satu cara untuk
mencapai satu objek adalah memenuhi semua aturan.
Forward chaining: Pencocokan fakta atau pernyataan dimulai
dari bagian sebelah kiri dulu (IF dulu). Dengan kata lain penalaran dimulai
dari fakta terlebih dahulu untuk menguji kebenaran hipotesis.
Metode backward Chaining
Merupakan kebalikan dari forward chaining dimana mulai
dengan sebuah hipotesa (sebuah objek) dan meminta informasi untuk meyakinkan
atau mengabaikan. Backward chaining inference engine sering disebut:
‘Object-Driven/Goal-Driven‘.
Catatan: inference engine adalah bagian dari sistem pakar
yang mencoba menggunakan informasi yang diberikan untuk menemukan objek yang
sesuai. Inference engine mempunayi 2 kategori yaitu deterministic dan
probabilistik. Sedangkan dasar untuk membentuk inference engine diantaranya:
forward chaining, backward chaining dan rule value (merupakan pendahulu dari
forward dan backward chaining).
Backward Chaining: Pencocokan fakta atau pernyataan dimulai
dari bagian sebelah kanan (THEN dulu). Dengan
kata lain penalaran dimulai dari hipotesis terlebih dahulu,
dan untuk menguji kebenaran
hipotesis tersebut harus dicari fakta-fakta yang ada dalam
basis pengetahuan.
Contoh forward dan backward chaining dikutip dari Idhawati
Hestiningsih
R1 : IF suku bunga turun THEN harga obligasi naik
R2 : IF suku bunga naik THEN harga obligasi turun
R3 : IF suku bunga tidak berubah THEN harga obligasi tidak
berubah
R4 : IF dolar naik THEN suku bunga turun
R5 : IF dolar turun THEN suku bunga naik
R6 : IF harga obligasi turun THEN beli obligasi
BAB X
10.1. Ketidakpastian
PENALARAN DENGAN KETIDAKPASTIAN (UNCERTAINITY)
KETIDAKPASTIAN (Uncertainity)
- Ketidakpastian dapat dianggap sebagai suatu kekurangan
informasi yang memadai untuk membuat suatu keputusan.
- Ketidakpastian merupakan suatu permasalahan karena mungkin
menghalangi kita membuat suatu keputusan yang terbaik.
- Teori-teori yang berhubungan dengan ketidakpastian :
= Probabilitas Klasik
= Probabilitas Bayes
= Teori Hartley yang berdasarkan pada himpunan klasik
= Teori Shanon yang didasarkan pada peluang
=Teori Dempster-Shafer
= Teori Fuzzy Zadeh
- Contoh aplikasi yang klasik sistem pakar yang sukses
sehubungan dengan ketidakpastian :
= MYCIN untuk diagnosa medis
= PROPECTOR untuk ekplorasi mineral
10.2. Probabilitas dan teorema Bayes
TEORI PROBABILITAS
- Teori formal probabilitas dibuat dengan menggunakan 3
aksioma
- Teori aksiomatik disebut juga objective theory of
probability diperkenalkan oleh Kolmogorov, sedangkan teori aksiomatik
probabiliti kondisional dibuat oleh Renyi.
PROBABILITY KLASIK
- Probability merupakan cara kuantitas yang berhubungan
dengan ketidakpastian
- Teori probability diperkenalkan pada abad 17 oleh penjudi
Perancis dan pertama kali diajukan oleh Pascal dan Fermat (1654)
- Prob. Klasik disebut juga dengan a priori probability
karena berhubungan dg game atau sistem.
- Formula fundamental prob. Klasik
P = W / N
dimana :
W = jumlah kemenangan
N = jumlah kemungkinan kejadian yang sama pada percobaan
TEOREMA BAYES
- Ditemukan oleh Thomas Bayes
- Teorema Bayes kebalikan dari probabilitas kondisional
P(A|B) atau disebut posteriori probability, dimana dalam teorema Bayes : state
probabilitas dari kejadian awal diberikan untuk melihat kejadian yang mungkin
akan terjadi
kemudian.
Dari contoh kerusakan
disket merk X dan bukan merk X :
- (6) 75% kemungkinan
disket merk X akan rusak dlm 1
tahun adalah.
- (7)
probabilitas disket merk bukan X rusak dalam 1
tahun 50%.
-
Pertanyaannya adalah : kita punya disket dan tidak tahu merk apa,
bagaimana probabilitas kerusakannya jika merk X ? Atau merk bukan X ?
- Bentuk umum Teorema Bayes : P(Hi|E) = P(EÇHi)
å j P(EÇHj)
= P(E|Hi) P(Hi)
å j P(E|Hj) P(Hj)
= P(E|Hi) P(Hi)
P(E)
10.3. FAKTOR
KEPASTIAN
Faktor Kepastian (Certainty Factor)
Faktor kepastian merupakan cara dari penggabungan
kepercayaan (belief) dan ketidapercayaan (unbelief) dalam bilangan yang
tunggal. Dalam certainty theory, data-data kualitatif direpresentasikan sebagai
derajat keyakinan (degree of belief).
Tahapan Representasi Data Kualitatif
Tahapan dalam merepresentasikan data-data kualitatif :
- kemampuan
untuk mengekspresikan derajat keyakinan sesuai dengan metode yang sudah dibahas
sebelumnya.
- kemampuan
untuk menempatkan dan mengkombinasikan derajat keyakinan tersebut dalam sistem
pakar.
Dalam mengekspresikan derajat keyakinan digunakan suatu
nilai yang disebut certainy factor (CF) untuk mengasumsikan derajat keyakinan
seorang pakar terhadap suatu data.
Dimana :
- CF =
Certainy Factor (faktor kepastian) dalam hipotesis H yang dipengaruhi oleh
fakta E.
- MB=Measure
of Belief (tingkat keyakinan), adalah ukuran kenaikan dari kepercayaan
hipotesis H dipengaruhi oleh fakta E.
- MD=Measure
of Disbelief (tingkat ketidakyakinan), adalah kenaikan dari ketidakpercayaan
hipotesis H dipengaruhi fakta E.
- E =
Evidence (peristiwa atau fakta).
- H =
Hipotesis (Dugaan).
10.4. TEORI
DEMPSTER – SHAFER
Teori Dempster-Shafer adalah teori matematika untuk
pembuktian berdasarkan belief functions(fungsi kepercayaan) dan plausible
reasonin (penalaran yang masuk akal). Digunakan untuk mengkombinasikan potongan
informasi (fakta) yang terpisah untuk mengkalkulasi kemungkinan dari suatu
peristiwa.Teori Dempster-Shafer adalah suatu teori matematika untuk pembuktian
(Kusumadewi, 2003) berdasarkan belief functions and plausible reasoning (fungsi
kepercayaan dan pemikiran yang masuk akal), yang digunakan untuk mengkombinasikan
potongan informasi yang terpisah (bukti) untuk mengkalkulasi kemungkinan dari
suatu peristiwa. Teori ini dikembangkan oleh Arthur P. Dempster dan Glenn
Shafer.
Ada berbagai macam penalaran dengan model yang lengkap dan
sangat konsisten, tetapi pada kenyataannya banyak permasalahan yang tidak dapat
terselesaikan secara lengkap dan konsisten. Ketidakkonsistenan yang tersebut
adalah akibat adanya penambahan fakta baru. Penalaran yang seperti itu disebut
dengan penalaran non monotonis. Untuk mengatasi ketidakkonsistenan tersebut
maka dapat menggunakan penalaran dengan teori Dempster-Shafer. Secara umum
teori Dempster-Shafer ditulis dalam suatu interval:
Belief,Plausibility
Belief (Bel) adalah ukuran kekuatan evidence dalam mendukung
suatu himpunan proposisi. Jika bernilai 0 maka mengindikasikan bahwa tidak ada
evidence, dan jika bernilai 1 menunjukkan adanya kepastian. Dimana nilai bel
yaitu (0-0.9).
Plausibility (Pl) dinotasikan sebagai : Pl(s) = 1 – Bel (-s)
Plausibility juga bernilai 0 sampai 1. Jika yakin akan-s, maka dapat dikatakan
bahwa Bel(-s)=1, dan Pl(-s)=0.
Contoh :
Diketahui nilai
belief adalah 0,5 dan nilai plausibility
adalah 0,8 untuk proposisi “the cat in the box is dead”
Bel = 0,5
Fakta yang mendukung
proposisi tersebut memiliki nilai kepercayaan sebesar 0,5
Pl = 0,8
Fakta yang melawan
proposisi tersebut hanya memiliki nilai kepercayaan sebesar 0,2
BAB XI
11.1. Fakta dan Relasi
Fakta Adalah
suatu unit yang selalu bernilai benar,fakta ini merupakan kumpulan data-data
objek. Suatu fakta dibedakan dalam 2 jenis, yaitu fakta yang menunjukan relasi
dan fakta yang menunjukan milik/sifat, penulisan suatu fakta selalu di akhir
dengan (.)
Aturan (“Rules”)
Aturan adalah
suatu pernyataan yang menunjukan bagaimana fakta-fakta berinteraksi satu dengan
yang lain untuk membentuk suatu kesimpulan. Sebuah aturan dinyatakan sebagai
suatu kalimat bersyarat. Kata “if” adalah kata yang dikenal Prolog untuk
menyatakan kalimat bersyarat atau disimbolkan dengan “:-“.
Pertanyaan (“Query”)
Setelah memberikan data-data berupa fakta dan aturan,
selanjutnya kita dapat mengajukan pertanyaan berdasarkan fakta dan aturan yang
ada. Penulisannya diawali simbol “?-“ dan diakhiri tanda “.”.
11.2. STRUKTUR PROGRAM PROLOG
Dalam struktur program prolog terdapat 4 macam di antara nya
adalah Domain,Predicate,Variable, dan goal.
Domain
Domain berfungsi untuk menyatakan jenis suatu variabel seperti hal nya
tipe data dalam bahasa prosedural (Pascal,C) . beberapa domain standar dalam
prolog diantara nya char,integer,real,string,symbol. Contoh :
namaBunga = symbol
mataKuliah = string
nilai = integer
- Domains char dipakai pada predikat yang argumennya
memiliki nilai berupa karakter tunggal,
yaitu abjad, angka, pungtuasi (?.!,<,...), dan operasi
(+,‐,...). Penulisan argumen bertipe char dalam prolog diapit tanda ’...’.
contoh : nilai (dita, ’A’).
- Domains string dipakai pada predikat yang argumennya
memiliki nilai berupa karakter jamak yang dapat berupa kata maupun suatu
tulisan (kumpulan kata‐kata termasuk di dalamnya pungtuasi dan tanda operasi
yang dapat dipisahkan spasi). Penulisan argumen bertipe string dalam prolog
diapit tanda ”...”. contoh: hobi(rina,”Memasak”).
-Domains integer dipakai pada predikat yang argumennya
memiliki nilai berupa bilangan bulat.
Contoh : nilai(tini,”Kalkulus”,75).
-Domains real dipakai pada predikat yang argumennya memiliki
nilai berupa bilangan pecahan. Penulisan argumen bertipe real dalam prolog
untuk nilai pecahan ditulis di belakang tanda titik (.). contoh: nilai(ivan,
8.75).
-Domains symbol dipakai pada predikat yang argumennya
memiliki nilai berupa kumpulan karakter yang hanya terdiri dari huruf atau kata
tanpa dipisahkan oleh spasi. Suatu kata
dapat disambungkan dengan kata lain dengan tanda _ (underscore). contoh :
lelaki(toni_setiawan).
Predicate
Dalam bahasa prolog kita perlu mendeklarasikan predikat yang ada pada
bagian Predicates dan mendefinisikannya dalam bagian Clauses. Jika tidak,
Prolog tidak akan mengenalnya. Namun untuk predikat standar seperti cursor,
makewindow, readln, readchar dsb tidak perlu dideklarasikan.
Misalkan untuk domains seperti di atas dapat dibuat
predicates
Predicates
menu(integer)
data(NamaOrang, Alamat, Umur)
Deklarasi predicates dalam bagian predicates, harus disertai
argumen jika memang berargumen. Nama predikat harus diawali dengan huruf, boleh
besar atau kecil, selebihnya bisa huruf, angka, garis bawah, namun dianjurkan
untuk dimulai dengan huruf kecil. Nama predikat tidak boleh mengandung spasi,
tanda minus, asteris atau garis miring.
Variable
Variabel merupakan sebuah interpretasi yang digunakan untuk menemukan
nilai dari sebuah klausa. Variabel harus diawali dengan
huruf besar. Contoh :
- suka(andi,X) .
X = eskrim
- anakperempuan(lila, X).
X = agus
Variabel yang memiliki beberapa value kamu dapat memunculkan
nilai lain dengan
menekan tombol (;)
Deskripsi Rekrusif dari Sebuah Hubungan
Nah ini yang gak kalah penting, Rekursif ini digunakan untuk
mencari seluruh dari
child dari sebuah tree. Intinya, misalkan terdapat sebuah
keluarga terdapat kakek,
ayah, dan anak. Maka untuk mendapatkan seluruh keturunan
dari kakek, yaitu kakek,
ayah, anak, anaknya anak dan seterusnya kita membutuhkan
rekursif.
Representasinya seperti berkut
turunan(X,Y) :- antiturunan(Y,X).
turunan(X,Y) :- antiturunan(Y,Z), turunan(X,Z).
Goal
Goal dalam turbo Prolog ada 2 macam yakni :
a. Goal eksternal
b. Goal internal
Goal
eksternal diketikkan langsung pada bagian ‘goal’ : di jendela dialog pada
kompiler terpadu Turbo Prolog. dengan cara ini kita hanya bisa menjalankan
program dari lingkungan kompiler Turbo Prolog. Untuk dapat dijalankan di
lingkungan DOS kita harus menggunakan goal internal yang di simpan pada bagian
Goal. Sebenarnya goal inilah yang dicari dan dipanggil pada saat program
dijalankan. Jika goal tercapai, program berhenti dengan berhasil, tapi jika
sebaliknya, program berhenti dalam keadaan gagal.
Contoh :
Predicates
tulis(string)
Goal
tulis(X),
write(X).
Clauses
tulis(“Bandung”).
tulis(“Yogya”).
tulis(“Jakarta”).
Program ini pertama akan memanggil goalnya, yang terdiri
dari sub goal tulis dan write. Ini artinya, goal akan memanggil klausa tulis.
Di bagian clauses, terdapat tulis yang berupa fakta. Prolog akan mencarinya
dari paling atas, diperoleh tulis(“Bandung”). Ini berarti sub-goal tulis(X)
berhasil dengan X terikat dengan nilai “Bandung”. Selanjutnya Prolog
membuktikan sub-goal kedua yakni write(X). Ini pasti berhasil dan program
berhenti. Jika goal diajukan dari luar (dari jendela Goal, goal internalnya
dibuang), kemudian kita tuliskan : tulis(X) [enter], akan tertulis pada layar :
X =
Bandung
X = Yogya
X =
Jakarta
BAB XII
12.1. Contoh program prolog
write(“Program Sederhana Prolog”),nl,nl,
write(“Masukkan nama : “), read(Nama),
write(Nama),nl,
write(“Masukkan kelas : “), read(_kelas),
write(_kelas),nl,nl,
write(“Menghitung Luas Persegi Panjang!”),nl,
write(“Masukkan panjang : “), read(P),
write(P),nl,
write(“Masukkan lebar : “), read(L),
write(L),nl,
LUAS is P*L,
write(“Luas Persegi Panjang = “),
write(LUAS).
http://pipittahta.blogspot.co.id/2015/06/teori-dempster-shafer.html
http://ryanstiawanlagi.blogspot.co.id/2016/01/dasar-dasar-prolog-dan-struktur-prolog.html
Tidak ada komentar:
Posting Komentar