Contoh Breadth First Search dan Depth First Search

·  STUDI KASUS :
Pada suatu hari ada seorang petani yang mempunyai seekor kambing dan srigala.Pada saat itu ia baru saja panen sayuran. Karena membutuhkan uang, petani tersebut hendak menjual kambing, serigala, dan sayurannya ke pasar Johar. Untuk sampai di pasar Johar, ia harus menyeberangi sebuah sungai.
Permasalahannya adalah di sungai itu hanya tersedia satu perahu saja yang bisa memuat petani dan satu penumpang lainnya (kambing, srigala, atau sayuran). Jika ditinggalkan oleh petani tersebut, maka sayuran akan dimakan oleh kambing dan kambing akan dimakan oleh serigala
·  DESKRIPSI:
P = Petani
Sy = Sayuran
K = Kambing
Sg = Serigala
·   RUANG KEADAAN
Untuk daerah asal dan daerah seberang
digambarkan.
(P, Sy, K, Sg)

·  KEADAAN AWAL
Daerah Asal = (P, Sy, K, Sg)
Daerah seberang = (0, 0, 0, 0)

·  TUJUAN
Daerah Asal = (0, 0, 0, 0)
Daerah seberang = (P, Sy, K, Sg)

·  METODE PENYELESAIAN :
Terdapat dua metode penyelesaian yang akan dibahas pada postingan kali ini. Metode pertama adalah metode breadth first search (BFS), dan metode kedua adalah metode Depth First Search (DFS). Berikut ini akan dijelaskan penyelesaian studi kasus diatas dengan kedua metode tersebut.

·   BFS (Breadth First Search)
adalah sebuah algoritma pencarian solusi yang digambarkan dengan struktur pohon. Dimana penyelesaiannya dilakukan dimulai dari simpul akar kemudian melebar sesuai dengan tingkatan yang ada di dalam pohon. Berikut ini adalah algoritma BFS :
1.  Masukkan simpul akar ke dalam antrian Q. Jika simpul akar = simpul solusi (goal node), maka stop.
2.   Jika Q kosong, tidak ada solusi. Stop.
3.   Ambil simpul v dari kepala (head) antrian, bangkitkan semua anak-anaknya. Jika v tidak mempunyai anak lagi, kembali ke langkah 2. Tempatkan semua anak dari v di belakang antrian.

4.   Jika suatu simpul anak dari v adalah simpul solusi, maka solusi telah ditemukan, kalau tidak kembali lagi ke langkah 2.

·   GAMBAR BFS :




·     DFS (Depth First Search)
adalah sebuah algoritma pencarian yang digambarkan dengan struktur pohon seperti pada BFS. Penyelesaiannya dilakukan dengan mendalam. Pencarian solusi dilakukan secara menurun sesuai urutan yang ditentukan.
1.     Masukkan simpul akar ke dalam antrian Q. Jika simpul akar = simpul solusi, maka stop.
2.    Jika Q kosong, tidak ada solusi. Stop.
3. Ambil simpul v dari kepala (head) antrian. Jika kedalaman simpul v sama dengan batas kedalaman maksimum, kembali ke langkah 2
4 .Bangkitkan semua anak dari simpul v. Jika v tidak mempunyai anak lagi, kembali ke langkah 2. Tempatkan semua anak dari v di awal antrian Q. Jika anak dari simpul v adalah simpul tujuan, berarti solusi telah ditemukan, kalau tidak, kembali lagi ke langkah 2.


·                     GAMBAR DFS :



Representasi Pengetahuan:Logika Predikat

Logika Predikat adalah perluasan dari logika proposisi dimana objek yang di bicarakan dapat berupa anggota kelompok. Misalkan P(x) merupakan sebuah pernyataan yang mengandung variabel x dan D adalah sebuah himpunan. Kita sebut P sebuah fungsi proposisi (dalam D) jika untuk setiap x di D, P(x) adalah proposisi. Kita sebut D daerah asal pembicaraan (domain of discourse) dari P.

8.1. FUNGSI FUNGSI LOGIKA PREDIKAT
Berikut ini beberapa contoh fungsi proposisi:
n² + 2n adalah bilangan ganjil, dengan daerah asal himpunan bilangan bulat.
x² – x – 6 = 0, dengan daerah asal himpunan bilangan real.
Seorang pemain bisbol memukul bola melampaui 300 pada tahun 1974, dengan daerah asal himpunan pemain bisbol.
Sebuah predikat seringkali menyatakan sebuah hubungan relasional antara: konstanta, variabel dan fungsi.

8.2. LOGIKA DAN SET ORDER PERTAMA
Logika Predikat Order Pertama disebut juga kalkulus predikat, merupakan logika yang digunakan untuk merepresentasikan masalah yang tidak dapat direpresentasikan dengan menggunakan proposisi. Logika predikat dapat memberikan representasi fakat-fakta sebagai suatu pernyataan yang mapan (well form).
Logika orde pertama adalah sistem resmi yang digunakan dalam matematika , filsafat,linguistik , dan ilmu komputer . Hal ini juga dikenal sebagai orde pertama predikat kalkulus, semakin rendah kalkulus predikat, teori kuantifikasi, dan logika predikat. Logika orde pertama dibedakan dari logika proposisional oleh penggunaan variabel terukur.
Syarat-syarat symbol dalam logika predikat :
himpunan huruf, baik huruf kecil maupun huruf besar dalam abjad.
Himpunan digit (angka) 0,1,2,…9
Garis bawah “_”
Symbol-simbol dalam logika predikat dimulai dengan sebuah huruf dan diikuti oleh sembarang rangkaian karakter-karakter yang diijinkan.
Symbol-simbol logika predikat dapat merepresentasikan variable, konstanta, fungsi atau predikat


 Logika Predikat Order Pertama terdiri dari :

Konstanta: objek atau sifat dari semesta pembicaraan. Penulisannya diawali dengan huruf kecil, seperti : pohon, tinggi. Konstanta true(benar) dan false(salah) adalah symbol kebenaran (truth symbol).

Variable : digunakan untuk merancang kelas objek atau sifat-sifat secara umum dalam semesta pembicaraan. Penulisannya diawali dengan huruf besar, seperti : Bill, Kate.

Fungsi : pemetaan (mapping) dari satu atau lebih elemen dalam suatu himpunan yang disebut domainfungsi ke dalam sebuah elemen unik pada himpunan lain yang disebut rangefungsi. Penulisannya dimulai dengan huruf kecil. Suatu ekspresi fungsi merupakan symbol fungsi yang diikuti argument.

Argument adalah elemen-elemen dari fungsi, ditulis diapit tanda kurung dan dipisahkan dengan tanda koma.

Predikat: menamai hubungan antara nol atau lebih objek dalam semesta pembicaraan. Penulisannya dimulai dengan huruf kecil, seperti : equals, sama dengan, likes, near.

Contoh kalimat dasar :
teman(george,allen)
teman(ayah_dari(david),ayah_dari(andrew))
dimana:
argument : ayah_dari(david) adalah george
argument : ayah_dari(andrew) adalah allen
predikat : teman

8.3. QUANTIFIER UNIVERSAL
Dalam logika predikat , quantifieri universal merupakan jenis quantifier , sebuah konstanta logis yang ditafsirkan sebagai “diberi” atau “untuk semua”. Ini mengungkapkan bahwa fungsi proposisi dapat dipenuhi oleh setiap anggota dari domain wacana. Dalam istilah lain, itu adalah predikasi dari properti atau hubungan dengan setiap anggota domain. Ini menegaskan bahwa predikat dalam lingkup dari quantifier universal benar dari setiap nilai dari variabel predikat .
Hal ini biasanya dilambangkan dengan berbalik A () operator logika simbol, yang bila digunakan bersama-sama dengan variabel predikat, disebut quantifier universal  (“x”, “ (x)”, atau kadang-kadang dengan “(x) “saja). Kuantifikasi Universal berbeda dari kuantifikasi eksistensial (“ada ada”), yang menegaskan bahwa properti atau relasi hanya berlaku untuk setidaknya satu anggota dari domain.
Contoh 1 :
(x) (x + x = 2x)
“untuk setiap x (dimana x adalah suatu bilangan), kalimat x + x = 2x adalah benar.”
Contoh 2 :
(x) (p) (Jika x adalah seekor kelinci -> x adalah binatang).
Kebalikan kalimat “bukan kelinci adalah binatang” ditulis :
(x) (p) (Jika x adalah seekor kelinci -> ~x adalah binatang)
dan dibaca :
– “setiap kelinci adalah bukan binatang”
“semua kelinci adalah bukan binantang”

8.4. QUANTIFIER EXISTENSIAL
Dalam logika predikat , suatu quantifier eksistensial adalah jenis quantifier , sebuah konstanta logis yang ditafsirkan sebagai “ada ada,” “ada setidaknya satu,” atau “untuk beberapa.” Ini mengungkapkan bahwa fungsi proposisi dapat dipenuhi oleh setidaknya satu anggota dari domain wacana. Dalam istilah lain, itu adalah predikasi dari properti atau hubungan dengan setidaknya satu anggota dari domain. Ini menegaskan bahwa predikat dalam lingkup dari quantifier eksistensial adalah benar dari setidaknya satu nilai dari variabel predikat .
Hal ini biasanya dilambangkan dengan E berubah () operator logika simbol, yang bila digunakan bersama-sama dengan variabel predikat, disebut quantifier eksistensial (“x” atau “ (x)”) Kuantifikasi eksistensial.
Contoh 1 :
(x) (x . x = 1)
Dibaca : “terdapat x yang bila dikalikan dengan dirinya sendiri hasilnya sama dengan 1.”
Contoh 2 :
(x) (panda(x)  nama(Clyde))
Dibaca : “beberapa panda bernama Clyde”.
Contoh 3 :
(x) (jerapah(x) -> berkaki empat(x))
Dibaca : “semua jerapah berkaki empat”.
Universal quantifier dapat diekspresikan sebagai konjungsi.
(x) (jerapahh(x)  berkaki tiga(x))
Dibaca : “ada jerapah yang berkaki tiga”
Existensial quantifier dapat diekspresikan sebagai disjungsi dari
urutan ai. P(a1)  P(a2)  P(a3) … P(aN)


8.5. RESOLUSI LOGIKA PREDIKAT

Resolusi pada logika predikat pada dasarnya sama dengan resolusi pada logika proposisi, hanya saja ditambah dengan unifikasi.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   kehimpunan klausa yang telah ada pada langkah
3.  Kerjakan hingga terjadi kontradiksi atau proses tidak mengalami kemajuan :
·         Seleksi 2 klausa sebagai klausa parent
·         Bandingkan (resolve) secara bersama-sama. Klausa hasil resolve tersebut  resolvent. Jika ada pasangan literal T dan ¬T2 sedemikian hingga keduanya dapat dilakukan unifikasi, maka salah satu T1 dan T2 disebut sebagai complementary literal. Jika ada lebih dari 1 complementary literal, maka hanya sepasang yang dapat meninggalkan resolvent
·         Jika resolvent berupa klausa kosong, maka ditemukan kontradiksi. Jika tidak, tambahkan ke himpunan klausa yang telah ada

Contoh kasus :
Misalkan terdapat pernyataan-pernyataan sebagai berikut :
1.      Fajar adalah seorang mahasiswa
2.      Fajar 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.      Fajar tidak pernah hadir kuliah matakuliah kalkulus
Maka harus terlebih dahulu diubah ke dalam bentuk klausa sebagai berikut :
1. Mahasiswa (Fajar)
2. Elektro (Fajar)
3.¬ Elektro (x1) v Teknik (v1)
4. Sulit (Kalkulus)
5.¬ Teknik (x2) v suka (x2, Kalkulus) v benci (x2, Kalkulus)
6. Suka (x3, f1 (x3))
7.¬ Mahasiswa (x4) v ¬ sulit (y1) v hadir (x4, y1) v ¬ suka (x4, y1)
8.¬ Hadir (Fajar, Kalkulus)



Daftar Pustaka :


Representasi Pengetahuan

Pengetahuan dibedakan menjadi 3 klasifikasi yaitu:       

·                     Prodecural Knowledge adalah pengetahuan yang berkaitan dengan prosedur atau
              cara untuk melakukan sesuatu. Contohnya, bagaimana cara mendidihkan air
              dalam panci.
·                     Declarative Knowledge adalah pengetahuan untuk dapat menentukan nilai benar
              dan salah suatu hal. Contohnya, jangan celupkan tangan anda dalam air yang
              mendidih.
·                     Tacid Knowledge kadang disebut juga sebagai "unconscious knowledge", karena
              pengetahuan tidak dapat diekspresikan atau didefinisikan dengan bahasa.
              Contohnya, bagaimana menggerakkan tangan.

Pengetahuan adalah hal yang utama dalam sistem pakar.

Representasi Pengetahuan adalah metode yang digunakan untuk mengodekan pengetahuan dalam suatu sistem pakar. Yang dimaksudkan untuk menangkap sifat-sifat penting problema dan membuat informasi itu dapat diakses oleh prosedur pemecahan problema.

Model Representasi Pengetahuan
Pengetahuan dapat dipresentasikan dalam bentuk yang sederhana atau kompleks, tergantung dari masalahnya. (Schnupp, 1989)

Terdapat beberapa model atau bentuk representasi pengetahuan yang telah dikembangkan, yaitu :

·                     Logika
·                     Jaringan Semantik (Semantic nets)
·                     Object-Attribute-Value (OAV)
·                     Bingkai (Frame)
·                     Aturan Produksi (production rule)


1.    Representasi Logika
Logika didefinisikan sebagai ilmu untuk berpikir dan menalar dengan benar sehingga didapatkan kesimpulan yang absah.

Tujuan dari logika: memberikan aturan-aturan penalaran sehingga orang dapat menentukan apakah suatu kalimat bernilai benar atau salah.

Representasi Logika dibagi menjadi dua:

A. Propositional Logic (Logika Proposisi)

Suatu Proposisi merupakan suatu statemen atau pernyataan yang menyatakan benar (TRUE) atau salah (FALSE). Dalam PropositionalLogic fakta dilambangkan dengan simbol misalnya P, Q dan R.Lambang-lambang tersebut dihubungkan dengan relasi-relasi logika

Dengan menggunakan operator logika:



Tabel kebenaran logika



B. Predicate Logic (Logika Predikat)


Pada logika predikat proposisi dibedakan menjadi argumen (obyek) dan predikat (keterangan). Secara umum penulisan proposisi dalam logika predikat dapat dinyatakan sebagai berikut:
Predikat (argumen-1, argumen-2,..., argumen-3)
Contoh:
Proposisi: “Bu Atika mencintai Pak Agus Setiawan”
Dalam logika predikat disajikan dalam bentuk:
Mencintai (Bu Atika, Pak Agus Setiawan)
      P         Argumen-1            Argumen-2

Contoh Silsilah Keluarga yang dipresentasikan dalam Prolog


Jika silsilah di atas dibentuk dalam Representasi Logika, sebagai berikut:
Orangtua (Komarudin, Andika)
Orangtua (Komarudin, Atika)
Orangtua (Komarudin, Agus)
Orangtua (Andika, Rika)
Orangtua (Atika, Anjar)

2.  Jaringan Semantik

Pengetahuan disusun dalam sebuah jaringan yang memiliki komponen utama:
-  Node: menyatakan obyek, konsep, atau situasi. Dinyatakan dengan kotak atau lingkaran
-  Arcs/Link: Menyatakan hubungan antar node. Dinyatakan dengan tanda panah.


3. Bingkai (Frame)
   

Salah satu tipe skema yang digunakan dalam beberapa aplikasi AI adalah frame. Frame merupakan struktur yang baik untuk mempresentasikan objek yang tipikal dalam situasi tertentu. Karakteristik dasar frame adalah frame mempresentasikan pengetahuan yang terkait mengenai sebuah subjek yang sempit dan memiliki default. Sistem frame adalah pilihan yang baik untuk mendeskripsikan peralatan mekanik seperti mobil.
Frame mencoba memodelkan obyek yang ada di dunia nyata menggunakan pengetahuan generik untuk atribut yang banyak dimiliki oleh obyek dan pengetahuan spesifik untuk kasus khusus.


4. Script (Naskah)

Conceptual Dependency (ketergantungan konseptual) adalah teori tentang bagaimana mempresentasikan pengetahuan tentang event (kejadian) yang biasanya terkandung dalam kalimat bahasa natural.
Contoh: representasi Conceptual Dependency

“Budi memberi Atika sebuah buku”


Script adalah skema representasi pengetahuan yang menggambarkan urutan-urutan kejadian (sequence of events). Script dilengkapi dengan elemen-elemen agar lebih memudahkan dalam memahami urutan kejadian.
a.  Track/Jalur: variasi yang mungkin terjadi dalam script
b.  Kondisi Input: situasi yang harus dipenuhi sebelum sesuatu kejadian terjadi
c.   Prop/Pendukung: objek pendukung yang digunakan dalam urutan peristiwa yang  terjadi
d.   Role/Peran: orang-orang yang terlibat dalam suatu peran
e.   Scene/Adegan: urutan peristiwa aktual

f.    Hasil: kondisi akhir yang terjadi setelah urutan peristiwa dalam script terjadi


5.    Aturan Produksi (Kaidah Produksi)


Pengetahuan dalam kaidah produksi direpresentasikan dalam bentuk
       JIKA [kondisi] MAKA [Aksi]
       JIKA [premis] MAKA [Konklusi]

Aturan Produksi (kaidah produksi) adalah salah satu representasi pengetahuan yang menghubungkan premis dengan konklusi.
Bentuknya: If Premis Then Konklusi
Konklusi pada bagian then bernilai benar jika premis pada bagian if bernilai benar.
Contoh:

If  hari ini hujan then saya tidak kuliah.



Daftar Pustaka :
http://lutfiatulm.blogspot.co.id/2013/03/representasi-pengetahuan.html
http://bagusnunu.blogspot.co.id/2014/09/representasi-pengetahuan.html
http://spukswkelasbkelompok3.blogspot.co.id/2009/02/pengetahuan-dibedakan-menjadi-3.html

Representasi Pengetahuan : Logika Proposisi

Logika dan Set Jaringan
Representasi pengetahuan dengan symbol logika merupakan bagian dari penalaran eksak. Bagian yang paling penting dalam penalaran adalah mengambil kesimpulan dari premis. Logika dikembangkan oleh filusuf Yunani, Aristoteles (abad ke 4 SM) didasarkan pada silogisme, dengan dua premis dan satu konklusi.
Contoh :
– Premis : Semua laki-laki adalah makhluk hidup
– Premis : Socrates adalah laki-laki
– Konklusi : Socrates adalah makhluk hidup
Cara lain merepresentasikan pengetahuan adalah dengan Diagram Venn.
Diagram Venn merepresentasikan sebuah himpunan yang merupakan kumpulan objek. Objek dalam himpunan disebut elemen.
A ={1,3,5,7} ,  B = {….,-4,-2,0,2,4,…..} ,  C = {pesawat, balon}
Symbol epsilon ε menunjukkan bahwa suatu elemen merupakan anggota dari suatu himpunan, contoh : 1 ε A . Jika suatu elemen bukan anggota dari suatu himpunan maka symbol yang digunakan , contoh : 2 A. Jika suatu himpunan sembarang, misal X dan Y didefinisikan bahwa setiap elemen X merupakan elemen Y, maka X adalah subset dari Y, dituliskan : X Y atau Y X.
Operasi-operasi Dasar dalam Diagram Venn:
– Interseksi (Irisan)
C = A ∩ B C = {x U | (x A) (x B)}
Dimana : ∩ menyatakan irisan himpunan | dibaca “sedemikian hingga” operator logika AND
– Union (Gabungan)
C = A B C = {x U | (x A) (x B)}
Dimana : menyatakan gabungan himpunan operator logika OR
 – Komplemen
A’ = {x U | ~(x A) }

Dimana : ’ menyatakan komplemen himpunan ~ operator logika NOT
Operator Logika 
Operator Logika adalah operator yang digunakan untuk membandingkan 2 kondisi logika, yaitu logika benar (TRUE) dan logika salah (FALSE). Operator logika sering digunakan untuk kodisi IF, atau untuk keluar dari proses perulangan (looping).
Jenis operand dalam operator logika ini adalah variabel dengan tipe boolean.



Logika Proposisi
Logika Proposisi disebut juga kalkulus proposisi yang merupakan logika simbolik untuk memanipulasi proposisi. Proposisi merupakan pernytaan yang dapat bernilai benar atau salah.
 
Operator logika yang digunakan :
Operator
Fungsi
Konjungsi (AND/DAN)
Disjungsi (OR/ATAU)
~
Negasi (NOT/TIDAK)
->
Implikasi/Kondisional (IF..THEN../JIKA.. MAKA….)
Equivalensi/Bikondisional
(IF AND ONLY IF / JIKA DAN HANYA JIKA)
p ↔q≡(p -> q) (q -> p)
 Kondisional merupakan operator yang analog dengan production rule.
 Contoh 1 :
 “ Jika hujan turun sekarang maka saya tidak pergi ke pasar”
Kalimat di atas dapat ditulis : p -> q
Dimana : p = hujan turun
q = saya tidak pergi ke pasar
 Contoh 2 :
p = “Anda berusia 21 atau sudah tua”
q = “Anda mempunyai hak pilih”
Kondisional p -> q dapat ditulis/berarti :
Kondisional
Berarti
p implies q
Anda berusia 21 tahun atau sudah tua implies Anda mempunyai hak pilih.
Jika p maka q
Jika Anda berusia 21 tahun atau sudah tua, maka Anda mempunyai hak pilih.
p hanya jika q
Anda berusia 21 tahun atau sudah tua, hanya jika Anda mempunyai hak pilih.
p adalah (syarat
cukup untuk q)Anda berusia 21 tahun atau sudah tua adalah syarat cukup Anda mempunyai hak pilih.q jika pAnda mempunyai hak pilih, jika Anda berusia 21 tahun atau sudah tua.q adalah (syarat
perlu untuk p)Anda mempunyai hak pilih adalah syarat perlu Anda berusia 21 tahun atau sudah tua.

Logika Proposisi juga menjelaskan tentang :
Tautologi: pernyataan gabungan yang selalu bernilai benar.
Kontradiksi: pernyataan gabungan yang selalu bernilai salah.
Contingent: pernyataan yang bukan tautology ataupun kontradiksi.
Tabel Kebenaran untuk logika konektif :
p
q
p ^ q
p v q
p -> q
p ↔ q
T
T
T
T
T
T
T
F
F
T
F
F
F
T
F
T
T
F
F
F
F
F
T
T

Tabel kebenaran untuk negasi konektif :
p
~p
T
F
F
T



Daftar Pustaka :

Total Tayangan Halaman

Diberdayakan oleh Blogger.

Pages - Menu