Pages

Rabu, 18 Mei 2011

Beam Search

Beam Search  adalah algoritma pencarian heuristik yang merupakan optimasi dari pencarian best-first search yang mengurangi kebutuhan memorinya. Dalam Beam Search, hanya jumlah solusi parsial terbaik yang telah ditetapkan yang disimpan sebagai kandidat.
Beam Search membutuhkan tiga komponen sebagai inputnya, yaitu :
             a.      Masalah yang akan di selesaikan
Biasanya di tampilkan dalam bentuk grafik dan berisi kumpulan node yang tiap satu atau lebih node mengarah ke goal/hasil.
            b.      Kumpulan aturan-aturan heuristik untuk pemangkasan
Adalah aturan-aturan spesifik yang mengarah ke ruang masalah dan memangkas node yang tidak menguntungkan dari memori yang berhubungan dengan ruang masalah.
             c.      Memori dengan kapasitas yang terbatas
         Adalah memori tempat menyimpan beam, dimana ketika memori dalam keadaan penuh dan node akan di tambahkan ke beam, maka node yang nilainya paling besar yang dihapus, jadi  tidak  akan melebihi memori yang tersedia.
Beam Search memiliki keuntungan yang berpotensi mengurangi perhitungan dan waktu pencarian. Selain itu, pemakaian memori dari pencarian ini jauh lebih sedikit daripada metode yang mendasari mtode pencarian ini.  Kelemahan utama Beam Search adalah metode pencarian ini mungkin  tidak dapat mencapai tujuan/hasil yang optimal dan bahkan mungkin tidak mencapai tujuan sama sekali. Pada kenyataannya, algoritma beam search berakhir untuk dua kasusnode tujuan yang diperlukan tercapai, atau node tujuan tidak tercapai dan tidak ada node tersisa untuk dieksplorasi.

Beam A*
Algoritma ini memberikan sedikit variasi pada A*, yaitu dengan membatasi simpul yang bisa disimpan di dalam OPEN. Ketika jumlah simpul di OPEN sudah melebihi batas tertentu, maka simpul dengan nilai f terbesar akan dihapus. Sedangkan jumlah simpul yang di dalam CLOSED tetap dibiarkan tanpa batasan karena simpul yang di dalam CLOSED memang tidak mungkin dihapus. Dengan membatasi jumlah simpul di OPEN, maka pencarian menjadi lebih terfokus seperti sinar (beam). Sehingga variasi ini dinamakan Beam A*.
Implementasi algoritma BA* sama dengan A* tetapi ada sedikit fungsi tambahan untuk pengecekan dan penghapusan simpul terburuk di OPEN.
Algoritma Beam A* menggunakan dua senarai : OPEN dan CLOSED. OPEN adalah adalah senarai (list) yang digunakan untuk menyimpan simpul-simpul yang pernah dibangkitkan dan nilai heuristiknya telah dihitung tetapi belum terpilih sebagai simpul terbaik (best node). Dengan kata lain, OPEN berisi simpul-simpul yang masih memiliki peluang (peluangnya masih terbuka) untuk terpilih sebagai simpul terbaik. Sedangkan CLOSED adalah senarai untuk menyimpan simpul-simpul yang sudah pernah dibangkitkan dan sudah pernah terpilih sebagai simpul terbaik. Artinya, CLOSED berisi simpul-simpul yang tidak mungkin terpilih sebagai simpul terbaik (peluang untuk terpilih sudah tertutup).
Terdapat tiga kondisi bagi setiap sukseror yang dibangkitkan, yaitu : sudah berada di OPEN, sudah berada di CLOSED, dan tidak berada di OPEN maupun CLOSED. Pada ketiga kondisi tersebut diberikan penanganan yang berbeda-beda.
Jika suksesor sudah pernah berada di OPEN, maka dilakukan pengecekan apakah perlu pengubahan parent atau tidak tergantung pada nilai g-nya melalui parent lama atau parent baru. Jika melalui parent baru memberikan nilai g yang lebih kecil, maka dilakukan pengubahan parent. Jika pengubahan parent dilakukan, maka dilakukan pula perbaruan (update) nilai g dan f  pada suksesor tersebut. Dengan perbaruan ini, suksesor tersebut memiliki kesempatan yang lebih besar untuk terpilih sebagai simpul terbaik (best node).
Jika suksesor sudah pernah berada di CLOSED, maka dilakukan pengecekan apakah perlu pengubahan parent atau tidak. Jika ya, maka dilakukan perbaruan nilai g dan pada suksesor tersebut serta pada semua “anak cucunya” yang sudah pernah berada di OPEN. Dengan perbaruan ini, maka semua anak cucunya tersebut memiliki kesempatan lebih besar untuk terpilih sebagai simpul terbaik (best node).
Jika suksesor tidak berada di OPEN maupun CLOSED, maka suksesor tersebut dimasukkan ke dalam OPEN. Tambahkan suksesor tersebut sebagai suksesornya best node. Hitung biaya suksesor tersebut dengan rumus f = g + h.

Referensi :
http://en.wikibooks.org/wiki/Artificial_Intelligence/Search/Heuristic_search/Beam_search
Suryanto ST. 2007. Artificial Intelligence. Bandung : Penerbit Informatika

Sabtu, 14 Mei 2011

Web Semantik

Website merupakan suatu kebutuhan bagi masyarakat modern sekarang ini, baik itu digunakan untuk melakukan transaksi, penyebaran informasi, maupun pencarian informasi. Website yang memiliki mesin pencari informasi seperti google atau yahoo kini telah menjadi alternatif utama bagi masyarakat modern dalam mencari berita atau informasi.
Namun demikian, walaupun mesin-mesin pencari ini sanggup memberikan berbagai informasi yang dibutuhkan, seringkali ketepatan dalam mencari informasi tersebut dipertanyakan. Sebagai contoh, saat kita mencari informasi mengenai “Bangau”, mesin pencari akan menampilkan berbagai informasi mengenai “Bangau”, tanpa mempedulikan apakah yang dicari adalah nama burung, nama sekolah, atau bahkan merek suatu produk. Hal ini sebenarnya merupakan fenomena yang wajar mengingat teknologi informasi di dunia Internet yang belum memiliki mekanisme pengorganisasian data secara terstruktur.
Untuk itulah, para ahli dan peneliti Internet bersepakat untuk mengatasi permasalahan ini. Internet membutuhkan suatu mekanisme yang memampukan komputer mengerti arti kata yang kita cari. Dengan kata lain, kita membutuhkan suatu cara agar kata-kata yang tertera di dalam suatu dokumen Web dapat dibaca dan dimengerti oleh mesin (machine-readable data). Website yang memiliki kemampuan seperti ini seolah-olah memiliki kecerdasan buatan yang sanggup memberikan jawaban yang tepat terhadap pertanyaan atau kebutuhan para penggunanya.
Para peniliti setuju bahwa Semantic Web merupakan suatu cara untuk melakukan revolusi di dunia Internet yang akan menyatukan interaktifitas pengguna, kolaborasi informasi, dan kecerdasan buatan pada sebuah Website [Joh07].

WEB SEMANTIK
Web semantik adalah teknologi web yang berkembang saat ini. Teknologi ini dikembangkan berbasis RDF format. Basis data dapat dijadikan acuan untuk pembuatan metadata, namun BibTex file dapat juga dijadikan acuan untuk pembuatan web semantik. Dengan menggunakan format XML yang merupakan dasar pembentukan metadata (RDF), maka berdasarkan format tersebut metadata dapat didistribusikan atau di simpan dalam domain yang beragam, data yang tersimpan berupa BibTex file di konversi ke format RDF, selanjutnya dengan menggunakan sesame metadata di load pada file index, SeRQL selanjutnya melakukan query terhadap metadata yang telah di load untuk ditampilkan di browser.
Kata semantik dalam bahasa Indonesia (Inggris : semantics) berasal dari bahasa Yunani sema (kata benda yang berarti “tanda” atau lambang). Kata kerjanya adalah semaino yang berarti “menandai” atau “melambangkan”. Yang dimaksud dengan tanda atau lambang disini adalah sebagai kesatuan kata benda (sema) itu sendiri yang dinamakan tanda linguistic (Perancis : signe linguistique) seperti dikemukakan oleh Ferdinand de Saussure (1996) yaitu :
·         Komponen yang mengartikan, yang berwujud bentuk-bentuk bunyi bahasa.
·         Komponen yang diartikan atau makna dari komponen yang pertama itu.
Kedua komponen itu adalah merupakan tanda atau lambang, sedangkan yang ditandai atau dilambanginya adalah sesuatu yang berada di luar bahasa yang lazim disebut referen atau hal yang ditunjuk.
Komponen-komponen Semantic Web
Pembuatan Semantic Web dimungkinkan dengan adanya sekumpulan standar yang dikoordinasi oleh World Wide Web Consortium (W3C). Standar yang paling penting dalam membangun Semantic Web adalah XML, XML Schema, RDF, OWL, dan SPARQL. Berikut ini adalah layer dari Semantic Web sebagaimana direkomendasikan oleh W3C :



1.      XML dan XML Schema
Untuk menjadi sarana yang mudah dalam mengirimkan dokumen melalui Web. Berbeda dengan Hypertext Markup Language (HTML), XML memungkinkan penggunanya untuk mendefinisikan custom tag. Namun, standard XML tidak memiliki constraint semantik pada arti dari dokumen tersebut.
XML Schema merupakan bahasa yang digunakan untuk mendefinisikan sekumpulan aturan (schema) yang harus dipatuhi oleh dokumen XML. Struktur dari dokumen XML yang dibuat harus sesuai dengan schema yang telah didefinisikan tersebut.
2.      RDF dan RDF Schema
Resource Description Framework (RDF) adalah spesifikasi yang dibuat oleh W3C sebagai metode umum untuk memodelkan informasi dengan menggunakan sekumpulan format sintaks. Ide dasar dari RDF adalah bagaimana kita dapat membuat pernyataan mengenai sebuah resource Web dalam bentuk ekpresi “Subjet-Predikat-Objek”. Dalam terminology RDF, SPO ini seringkali disebut dengan istilah N-triple.
Subjek mengacu pada resource yang ingin dideksripsikan. Predikat menggambarkan kelakuan atau karakteristik dari resource tersebut dan mengekspresikan hubungan antara subjek dan objek.
3.      OWL
Web Ontology Language (OWL) adalah suatu bahasa yang dapat digunakan oleh aplikasi-aplikasi yang bukan sekedar menampilkan informasi tersebut pada manusia, melainkan juga yang perlu memproses isi informasi isi. Ontology sendiri dapat didefinisikan sebagai suatu cara untuk mendeskripsikan arti dan relasi dari istilah-istilah. Deskripsi tersebut berisi classes, properties, dan instances.
Deskripsi ini dapat membantu sistem computer dalam menggunakan istilah-istilah tersebut cengan cara yang lebih mudah [Lee06].
Dengan menggunakan OWL, kita dapat menambah vocabulary tambahan disamping semantiks formal yang telah dibuat sebelumnya menggunakan XML, RDF, dan RDF Schema. Hal ini sangat membantu penginterpretasian mesin yang lebih baik terhadap isi Web. Untuk mendeskripsikan properties dan classes, OWL menambahkan vocabulary seperti:
·         “among others”
·         Relasi antar classes (misalnya: “disjointness”)
·         Kardinalitas (misalnya: “exactly one”)
·         Kesamaan (equality)
·         Karakteristik property (misalnya: “symmetry”)
·         Enumerated classes
OWL menyediakan tiga buah subbahasa yang dirancang untuk digunakan oleh para pengguna tertentu, yaitu:
·    OWL Lite, digunakan oleh pengguna yang membutuhkan suatu hirarki pengklasifikasian dan berbagai constraints sederhana.
·    OWL DL, digunakan oleh pengguna yang menginginkan tingkat ekpresi maksimal dan semua konklusi yang dihasilkan dapat dihitung dalam waktu yang terbatas (finite)
·   OWL Full, digunakan oleh pengguna yang menginginkan tingkat ekpresi maksimal dan kebebasan sintaks dari RDF tanpa mempertimbangkan komputasi yang dibutuhkan.
4.      SPARQL
SPARQL Protocol and RDF Query Language (SPARQL) adalah sebuah protocol dan bahasa query untuk Semantic Web’s resources. Sebuah query yang menggunakan SPARQL dapat terdiri atas triple patterns, konjungsi (or), dan disjungsi (and). Untuk menjalankan SPARQL kita dapat menggunakan beberapa tools dan APIs seperti: ARQ, Rasqal, RDF::Query, twingql, Pellet, dan KAON2 [Lei05].
5.   Jena: Framework Pengembangan Aplikasi Semantic Web Berbasis Java
Jena Java RDF API and toolkit merupakan framework berbasis bahasa Java untuk mengkonstruksi aplikasi Semantic Web. Framework ini menyediakan lingkungan pemrograman untuk RDF, RDF Schema, OWL, dan SPARQL serta memiliki mesin inferensi berbasis aturan (rule-based inference engine). Jena juga memiliki kemampuan untuk digunakan sebagai basis data RDF melalui layer yang dikenal dengan nama Joseki [Jer07].


Referensi :
http://ewawan.com/pengertian-semantic-web-definisi-semantic-web.html
http://informatika.lipi.go.id/fasilitas-penelitian/semantik-web.html
http://itmaranatha.org/jurnal/jurnal.informatika/Jurnal/Juni2007/artikel/artikelpdf/juni07_3.pdf