Sabtu, 09 Desember 2017

Metode Pencarian Buta dan Heuristik

Standard
1. Metode Pencarian buta ( Blind Search )

Breadth First Search (BFS) 

Pencarian dengan Breadth First Search menggunakan teknik dimana langkah pertamanya adalah root node diekspansi, setelah itu dilanjutkan semua successor dari root node juga di-expand. Hal ini terus dilakukan berulang-ulang hingga leaf (node pada level paling bawah yang sudah tidak mempunyai successor lagi). 


Pencarian dengan Breadth First Search akan menjadi optimal ketika nilai pada semua path adalah sama. Dengan sedikit perluasan, dapat ditemukan sebuah algoritma yang optimal dengan melihat kepada nilai tiap path di antara node-node yang ada. Selain menjalankan fungsi algoritma BFS, Uniform Cost Search melakukan ekspansi node dengan nilai path yang paling kecil. Hal ini bisa dilakukan dengan membuat antrian pada successor yang ada berdasar kepada nilai path-nya (node disimpan dalam bentuk priority queue).

Keuntungannya :

  • Tidak menemui jalan buntu.
  • Jika ada suatu solusi, maka Breadth-first search akan menemukannya. Dan jika didapat lebih dari satu solusi, maka solusi minimum akan ditemukan.

Kelemahannya :

  • TABLE I. Membutuhkan memori yang cukup banyak, karena menyimpan semua node dalam suatu pohon.
  • TABLE II. Membutuhkan waktu yang cukup lama, karena akan menguji n level untuk mendapatkan solusi pada level ke-(n + 1).


Depth First Search (DFS)

Teknik pencarian dengan Depth First Search adalah dengan melakukan ekspansi menuju node yang paling dalam pada tree. Node paling dalam dicirikan dengan tidak adanya successor dari node itu. Setelah node itu selesai diekspansi, maka node tersebut akan ditinggalkan, dan dilakukan ke node paling dalam lainnya yang masih memiliki successor yang belum diekspansi.


Pencarian menggunakan DFS akan berlanjut terus sampai kedalaman paling terakhir dari tree. Permasalahan yang muncul pada DFS adalah ketika proses pencarian tersebut menemui infinite state space. Hal ini bisa diatasi dengan menginisiasikan batas depth pada level tertentu semenjak awal pencarian. Sehingga node pada level depth tersebut akan diperlakukan seolah-olah mereka tidak memiliki successor.

Keuntungannya :

  • Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan yang aktif yang di simpan.
  • Secara kebetulan, metode Depth First Search akan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan.

Kelemahannya :

  • Memungkinkan tidak ditemukannya tujuan yang diharapkan.
  • Hanya akan mendapatkan satu solusi pada setiap pencarian.


Contoh Penerapan BFS & DFS

Studi Kasus : Pada suatu hari ada seorang petani yang mempunyai seekor kambing dan serigala.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 :
a. 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.



b. Menggunakan algoritma DFS :

  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.





2. Metode Pencarian Heuristik 

Generate and Test 

Metode ini merupakan pemggabungan antara depth-first search dengan pelacakan mundur (backtracking), yaitu bergerak kebelakang menuju pada suatu keadaan awal. Algoritma;
  1. Bangkitkan suatu kemungkinan solusi (membangkitkan suatu titik tertentu atau lintasan tertentu dari keadaan awal)
  2. Uji untuk melihat apakah node tersebut benar-benar merupak solusinya dengan cara membandingkan node tersebut atau node akhir dari suatu lintasan yang dipilih dengan kumpulan tujuan yang diaharapkan
  3. Jika solusi ditemukan, keluar. Jika tidak, ulangi kembali langkah pertama

Contoh:
“Travelling Salesman Problem (TSP)” Seorang salesman ingin mengunjungi n kota. Jarak antara tiap-tiap kota sudah diketahui. Kita ingin mengetahui rute terpendek dimana setiap kota hanya boleh dikunjungin tepat 1 kali. Misalkan ada 4 kota dengan jarak antara tiap-tiap kota seperti gambar dibawah ini:


Penyelesaian dengan metode Generate and Test

 

PENDAKIAN BUKIT (Hill Climbing)

Metode ini hampir sama dengan metode pembangkitan dan pengujian, hanya saja proses pengujian dilakukan dengan menggunakan fungsi heuristic. Pembangkitan keadaan berikutnya tergantung pada feedback dari prosedur pengetesan. Tes yang berupa fungsi heuristic ini akan menunjukkan seberapa baiknya nilai terkaan yang diambil terhadap keadaan-keadaan lainnya yang mungkin. 

Algoritma Simple HillClimbing 

Kerjakan langkah-langkah berikut sampai solusinya ditemukan atau sampai  tidak ada operator baru yang akan diaplikasikan pada keadaan sekarang: 
  • Cari operator yang belum pernah digunakan; gunakan operator ini untuk mendapatkan keadaan yang baru.
  • Evaluasi keadaan baru tersebut : 
  • Jika keadaan baru merupakan tujuan, keluar 
  • Jika bukan tujuan, namun nilainya lebih baik dari pada keadaan sekarang, maka jadikan keadaan baru tersebut menjadi keadaan sekarang. 
  • Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka lanjutkan iterasi. 

Pada simple hill climbing, ada 3 masalah yang mungkin: 

  • Algoritma akan berhenti kalau mencapai nilai optimum local 
  • Urutan penggunaan operator akan sangat berpengaruh pada penemuan solusi 
  • Tidak diijinkan untuk melihat satupun langkah sebelumnya.

Contoh: TSP dengan Simple Hill Climbing 
Disini ruang keadaan berisi semua kemungkinan lintasan yang mungkin. Operator digunakan untuk menukar posisi kota-kota yang bersebelahan. Apabila ada n kota, dan kita ingin mencari kombinasi l intasan dengan menukar posisi urutan 2 kota, maka kita akan mendapatkan sebanyak: 


atau sebanyak 6 kombinasi (lihat gambar dibawah). Fungsi heuristic yang digunakan adalah panjang lintasan yang terjadi 



Sumber : https://amandainhere.blogspot.co.id/2016/11/contoh-pencarian-generate-and-test.html
                http://fryunfirst.blogspot.co.id/2015/06/pencarian-heuristik-heuristic-search.html
                http://azizmusyaffaa.blogspot.co.id/2016/10/breadth-first-search-depth-first-search.html



Senin, 30 Oktober 2017

MEMBUAT GARIS DIAGONAL,HORIZONTAL, DAN VERTIKAL MENGGUNAKAN LIBRARY OPENGL PADA JAVA

Standard
Pada Semester ini, kami mendapatkan tugas mata Kuliah Grafik Komputer dan Pengolahan Citra tentang membuat program Garis Vertical, Horizontal dan Diagonal dengan menggunakan Library OpenGL, Pada kali ini saya menggunakan Bahasa Pemrogramman Java untuk menyelesaikan tugas ini

OpenGL

Hasil gambar untuk opengl


OpenGL atau Open Graphics Library, merupakan spesifikasi standar yang mendefinisikan sebuah lintas-bahasa, lintas platform API (Application Programming Interface) untuk mengembangkan aplikasi yang menghasilkan grafis komputer 2D maupun 3D.
Dalam program pembuatan garis ini, OpenGL digunakan untuk menggambarkan sebuah garis 2D, baik yang vertikal, horizontal maupun diagonal, sesuai dengan koordinat sumbu X dan sumbu Y yang nantinya akan di deklarasikan oleh user.
Fungsi dasar dari OpenGL adalah untuk mengeluarkan koleksi perintah khusus atau executable ke sistem operasi. Dengan demikian, program ini bekerja dengan perangkat keras grafis yang ada yang berada pada hard drive atau sumber tertentu lainnya. Setiap perintah dalam dirancang untuk melakukan tindakan tertentu, atau memulai efek khusus tertentu yang terkait dengan grafis.
Membuat perintah dalam OpenGL dapat terjadi dalam dua cara yang berbeda. Pertama, adalah mungkin bagi programmer untuk membuat dan menyimpan daftar perintah yang dapat dieksekusi secara berulang. Ini adalah salah satu cara yang lebih rutin untuk program interface yang digunakan. Seiring dengan berkembangnya kelompok perintah yang kurang lebih permanen, maka memungkinkan untuk membuat dan menjalankan salah satu perintah dalam batas-batas waktu dari komputer grafis.
Seiring dengan kemampuan interface dari sistem operasi, OpenGL juga menyediakan beberapa built-in protokol yang mungkin berguna bagi pengguna akhir. Di antaranya fitur alat seperti alpha blending, pemetaan tekstur, dan efek atmosfer. Alat ini dapat berinteraksi dengan sistem operasi yang sedang digunakan.
Awalnya dikembangkan oleh Silicon Graphics, OpenGL kini dianggap standar industri. Interface program aplikasi yang aktif didukung oleh Microsoft ini, menawarkan download gratis daftar OpenGL untuk digunakan pada sistem Windows. OpenGL juga bekerja sangat baik dengan Inventor Open, sebuah pemrograman berorientasi obyek alat juga diciptakan oleh Silicon Graphics.
Beberapa alat bantu yang dibutuhkan dalam perancangan program ini adalah sebagai berikut :

1.      Java Development Kit (JDK 1.8.0)

Perangkat lunak yang digunakan untuk melakukan proses kompilasi dari kode Java.

2.      Java IDE (NetBeans 8.2)

Perangkat lunak berbasis Java yang digunakan untuk membangun perangkat lunak lainnya.

3.      Library LWJGL (Lightweight Java Game Library 2.9.1)

Library yang berfungsi untuk menghubungkan antara NetBeans dengan OpenGL.

4. Penjelasan Program 
    
    Download = Link


Jumat, 20 Oktober 2017

Pengertian PEAS (Performance measure, Environment, Actuators, Sensors)

Standard
Performance Measurement/Pengukuran Kinerja

Hasil gambar untuk performance measure

adalah suatu proses penilaian kemajuan pekerjaan terhadap tujuan dan sasaran yang telah ditentukansebelumnya, termasuk informasi atas efisiensi penggunaan sumber daya dalammenghasilkan barang dan jasa, kualitas barang dan jasa, hasil kegiatandibandingkan dengan maksud yang diinginkan dan efektivitas tindakan dalammencapai tujuan.


Environment (Lingkungan)

Hasil gambar untuk environment

Lingkungan sangat lah penting dalam proses perancangan sebuah agent. Hal ini dikarenakan setiap tindakan yang akan dilakukan oleh agent harus mempertimbangkan kondisi lingkungan.

Aktuator

Hasil gambar untuk pengertian Aktuator

Aktuator adalah sebuah peralatan mekanis untuk menggerakkan atau mengontrol sebuah mekanisme atau sistem. Aktuator diaktifkan dengan menggunakan lengan mekanis yang biasanya digerakkan oleh motor listrik, yang dikendalikan oleh media pengontrol otomatis yang terprogram di antaranya mikrokontroler.

Sensor

Hasil gambar untuk pengertian Sensors


Sensor adalah komponen elektronika yang berfungsi untuk mengubah besaran mekanis, magnetis, panas, sinar, dan kimia menjadi besarn listrik berupa tegangan, resistansi dan arus listrik. Sensor sering digunakan untuk pendeteksian pada saat melakukan pengukuran atau pengendalian.
Sumber
https://ibneaqiqi.wordpress.com/2010/12/10/agent-dalam-kecerdasan-buatan/
http://zonaelektro.net/sensor/
http://insauin.blogspot.co.id/2014/12/pengertian-aktuator.html


DEFINISI AGEN PADA ARTIFICIAL INTELLIGENT

Standard

Pengertian sebuah AGENT 

Hasil gambar untuk agent pada ai


Agent adalah segala sesuatu yang dapat dipandang sebagaimana mengamati lingkungannya melalui sensor dan bertindak atas lingkungan yang melalui efektor. Agen manusia memiliki mata, telinga, dan organ lain untuk sensor, dantangan, kaki, mulut, dan bagian tubuh lainnya untuk efektor.Sebuah pengganti agen robot kamera dan berbagai pencariinframerah untuk sensor dan berbagai motor untuk efektor.


Dalam kecerdasan buatan, intelligent agent (IA) adalah sebuah entitas otonom yang mengamati dan bertindak atas lingkungan (yaitu membutuhkan agen) dan mengarahkan aktivitasnya untuk mencapai tujuan yaitu rasional. Intelligent agen juga dapat belajar atau menggunakan pengetahuan untuk mencapai tujuan mereka. Russell & Norvig (2003) mengartikan Rational Agent yang mengerjakan segala sesuatu hal dengan benar.

KONSEP AGENT

Hasil gambar untuk konsep agent pada ai

1) Rational Agent

  • Rational agent: suatu agent yang selalu bertindak memaksimalkan ukuran kinerja, mengingat apa yang ia amati tentang lingkungan (sejarah input) dan pengetahuan lain yang dimilikinya.
  • Rational tidak berarti sempurna: ada aspek lingkungan yang tidak diketahui, di luar kendali.
  • Terkadang agent bermulai tanpa pengetahuan lingkungan → exploration, learning, autonomy.

2) Task Environment

Ketika merancang sebuah agent, kita harus mendefinisikan lingkungan masalah (task environment), yakni:

  • Performance measure: apa saja yang menjadi ukuran kinerja agent?
  • Environment: di manakah agent berperan?
  • Actuators: apa saja yang bisa dilakukan si agent?
  • Sensors: apa saja yang menjadi perantara input untuk agent?
  • PEAS
3) Struktur sebuah agent
  • Agent function adalah Sebuah fungsi yang memetakan sejarah input (percept sequence) terhadap tindakan yang dilakukan (action) f : P* → A 
  • Agent program adalah Sebuah program yang mengimplementasikan fungsi f di atas arsitektur
  • Agent = Arsitektur + Program
  • Agent program menerima input percept terakhir (*mungkin* ia menyimpan percept sequence di dalam memory-nya)
Contoh Agents

Hasil gambar untuk contoh agen cerdas

1) Contoh: Taksi Otomatis
Sebuah agent taksi otomatis yang menerima penumpang dan mengantarkannya ke tujuan
  • Performance measure: sampai tujuan, tidak melanggar lalu lintas, perjalanan nyaman, hemat bensin.
  • Environment: jalan, lalu lintas, pejalan kaki, pelanggan.
  • Actoators: arah stir, gas, rem, klakson, sinyal kiri atau kanan.
  • Sensors: video, speedometer, GPS, keyboard.

2) Contoh: Medical Diagnosis System
Sebuah agent Medical Diagnosis System yang mendiagnosa pasien secara otoatis:

  • Performance measure: pasien sembuh, biaya murah, tidak menyalahi hukum.
  • Environment: pasien, rumah sakit, suster, dokter.
  • Actoators: layar monitor (pertanyaan, test, diagnosa, treatment, petunjuk).
  • Sensors: keyboard (masukkan gejala penyakit, jawaban pasien).

Sumber : 
http://yohanes-satria0.blogspot.co.id/2017/10/definisi-konsep-serta-contoh-agents.html
http://artikel-teknologi-informasi.blogspot.co.id/2012/11/pengertian-agent-pada-ai-artificial.html