Monday, December 4, 2017

BLIND AND HEURISTIK SEARCH

Teknik Pencarian / Perancangan


Teknik Pencarian / Pelacakan
Teknik pencarian adalah suatu teknik atau cara yang dilakukan untuk mencari solusi dari suatu permasalahan dengan sekumpulan kemungkinan yang ada. Empat kriteria yang dapat  digunakan untuk mengukur perfomansi teknik pencarian :
1.    Completeness artinya apakah teknik yang digunakan akanmenjamin penemuan solusi jika solusinya memang ada
2.    Time complexity artinya berapa lama waktu yang diperlukan
3.    Space complexity artinya berapa banyak memori yang diperlukan
4.    Optimality artinya apakah teknik yang digunakan akan menjamin menemukan solusi yang terbaik jika terdapat beberapa solusi berbeda
Teknik pencarian ada dua jenis, yaitu :
A.    Pencarian buta (blind search) yaitu tidak terdapatnya informasi awal yang digunakan dalam proses pencarian. Ada dua jenis pencarian buta (blind search) :
1.   Pencarian melebar pertama (Breadth – First Search)
Pada Breadth – First Search semua node pada level akan dikunjungi terlebih dahulu sebelum mengunjungi node-node pada level n+1. Pencarian dimulai dari node akar terus ke level 1 dari kiri ke kanan, kemudian berpindah ke level berikutnya dari kiri ke kanan hingga solusi ditemukan. Keuntungannya :
§  Tidak akan menemui jalan buntu, menjamin ditemukannya solusi (jika solusinya memang ada) dan solusi yang ditemukan pasti solusi yang paling baik
§  Jika ada 1 solusi, maka breadth – first search akan menemukannya
§   Jika ada lebih dari 1 solusi, maka solusi minimum akan ditemukan
Kerugiannya :
§   Membutuhkan memori yang banyak, karena harus menyimpan semua simpul yang pernah dibangkitkan dan hal ini harus dilakukan agar BFS dapat melakukan penelusuran simpul-simpul sampai di level bawah
§   Membutuhkan waktu yang cukup lama
Kesimpulan :
Teknik pencarian Breadth – First Search  ini :
Completeness : dimana teknik yang digunakan adanya solusi
Optimality : dimana teknik yang digunakan menemukan solusi yang terbaik saat adanya beberapa solusi berbeda Time complexity : waktu yang dibutuhkan cukup lama Space complexity : memori yang dibutuhkan juga banyak.
Implementasi Breadth First Search pada Java

untuk mengimplementasikan java pada BFS, saya menukil kodingannya Mark Watson dalam buku beliau Programming AI with Java. Beliau memberikan dua contoh penerapan BFS untuk pencarian jalur terpendek. 
1. Pencarian jalur terpendek pada game Maze 
2. Pencarian jalur terpendek pada simpul Graph

Pencarian Jalur terpendek pada game Maze




Game maze adalah game yang mengharuskan user untuk menemukan jalan keluar dan melewati banyak halangan (obstacle) dari sebuah ruang yang mirip labirin. Titik awalnya dimulai dari huruf S (Start) dan diakhiri pada kotak bertuliskan G (Goal). Ketika program dijalankan, sistem akan otomatis mencari rute terpendek dari kotak S menuju kotak G menggunakan metode BFS. Panjang rute hasil pencarian dituliskan dalam bentuk angka disetiap kotak.

2.   Pencarian mendalam pertama (Depth – First Search)
Pada pencarian Depth – First Search dilakukan pada suatu simpul dalam setiap level dari yang paling kiri. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada simpul sebelah kanan dan simpul yang kiri dapat dihapus dari memori. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai ditemukan solusi.
Keuntungannnya :
§   Membutuhkan memori relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan
§   Dan secara kebetulan, akan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan, jadi jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka DFS akan menemukannya dengan cepat (waktunya cepat)
Kerugiannya :
§   Memungkinkan tidak ditemukannya atau tidak adanya tujuan yang diharapkan, karena jika pohon yang dibangkitkan mempunyai level yang sangat dalam (tak terhingga) à tidak complete karena tidak ada jaminan akan menemukan solusi
§   Hanya mendapat 1 solusi pada setiap pencarian, karena jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang berbeda, maka DFS tidak menjamin untuk menemukan solusi yang paling baik à tidak optimal
Pencarian terbimbing (heuristic search) yaitu terdapatnya informasi awal yang digunakan dalam proses pencarian. Pencarian buta (blind search) tidak selalu dapat diterapkan dengan baik, disebabkan karena waktu aksesnya yang cukup lama & besarnya memori yang diperlukan. Untuk masalah dengan ruang masalah yang besar, teknik pencarian buta (blind search) bukan teknik yang baik untuk digunakan karena keterbatasan kecepatan komputer dan memori.
Dengan adanya teknik heuristic search diharapkan bisa menyelesaikan permasalahan yang lebih besar. Fungsi dari teknik heuristic search menggunakan suatu fungsi yang menghitung biaya perkiraan (estimasi) dari suatu simpul tertentu menuju ke simpul tujuan. Contoh aplikasi yang menggunakan fungsi heuristic : Google, Deep Blue Chess Machine. Ada empat jenis pencarian terbimbing (heuristic search) :
1.   Pembangkitan dan pengujian (Generate and Test)
Teknik ini merupakan gabungan dari DFS dan pelacakan mundur (backtracking), yaitu bergerak ke belakang menuju pada suatu keadaan awal. Dimana nilai pengujian berupa jawaban “ya” atau “tidak”. Algoritmanya :
§   Bangkitkan suatu kemungkinan solusi (membangkitkan suatu titik tertentu atau lintasan tertentu dari keadaan awal)
§   Uji untuk melihat apakah node tersebut benar-benar merupakan solusinya dengan cara membandingkan node tersebut atau node akhir dari suatu lintasan yang dipilih dengan kumpulan tujuan yang diharapkan
§   Jika solusi ditemukan, keluar dan jika tidak, ulangi lagi langkah pertama
Salah satu kelemahan teknik Generate and Test adalah perlu membangkitkan semua kemungkinan sebelum dilakukan pengujian, sehingga membutuhkan waktu yang cukup besar dalam pencariannya.
Contoh :
Kasus 4 puzzle (kotak permainan)
b. Kasus 8 puzzle (kotak permainan)
c. Kasus Travelling Salesman Problem (TSP)

2.   Pendakian Bukit (Hill Climbing)
Hampir sama dengan teknik Generate and Test dimana roses pengujian dilakukan dengan menggunakan fungsiheuristic. Pembangkitan keadaan berikutnya sangat tergantung pada feedback dari prosedur pengetesan. Tes yang berupa fungsi heuristic ini akan menunjukkan seberapa baik nilai terkaan yang diambil terhadap kesalahan-kesalahan lainnya yang mungkin. Teknik-teknik pada Hill Climbing :
1.     Teknik simple hill climbing
Algoritma akan berhenti kalau mencapai nilai optimum lokal. Urutan penggunaan operator akan sangat berpengaruh pada penemuan solusi. Tidak diijinkan untuk melihat satupun langkah selanjutnya.
2.     Teknik steepest – ascent hill climbing
Hampir sama dengan simple hill climbing, hanya saja gerakan pencarian tidak dimulai dari paling kiri. Gerakan selanjutnya dicari berdasarkan nilaiheuristic terbaik.


  • 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 :


sumber:
 http://yoosinhay.blogspot.co.id/2011/03/teknik-pencarian-perancangan.html
http://hanz-kampus.blogspot.co.id/2010/02/heuristic-search-kecerdasan-buatan.html

Sunday, October 29, 2017

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

PROGRAM GARIS VERTIKAL, HORIZONTAL DAN DIAGONAL

Pada semester 5 (lima ) ini, kami mendapatkan tugas mata Kuliah Grafik Komputer dan Pengolahan Citra tentang membuat program untuk  Garis Vertical, Horizontal dan Diagonal dengan menggunakan Bahasa Pemrograman Java dengan menggunakan salah satu library openGL yaitu LWJGL

PENGERTIAN JAVA


Java adalah bahasa pemrograman yang dapat membuat seluruh bentuk aplikasi, desktop, web, mobile dan lainnya, sebagaimana dibuat dengan menggunakan bahasa pemrograman konvensional yang lain. Bahasa Pemrograman Java ini berorientasi objek (OOP-Object Oriented Programming), dan dapat dijalankan pada berbagai platform sistem operasi. Perkembangan Java tidak hanya terfokus pada satu sistem operasi, tetapi dikembangkan untuk berbagai sistem operasi dan bersifat open source. Dengan slogannya “Write once, run anywhere”.

Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose).

Berikut link, untuk penjelasan dalam membuat garis vertikal,horizontal dan diagonal pada Java dengan library openGL : 

https://drive.google.com/file/d/0B05d9iriSBN6a0huRDE3X3JnWUE/view


Thursday, October 19, 2017

DEFINISI AGENT PADA ARTIFICIAL INTELLIGENCE


DEFINISI AGENT

Pengertian sebuah AGENT adalah segala sesuatu yang dipandang sebagaimana mengamati lingkungannya melalui sensor dan bertindak atas lingkungan yang melalui efektor. Agen manusia memiliki mata, telinga, dan organ lain untuk sensor, dan tangan, kaki, mulut, dan bagian tubuh lainnya untuk efektor. Sebuah pengganti agen robot kamera dan berbagai pencari inframerah untuk sensor dan berbagai motor untuk efektor


 KONSEP INTELLEGENT AGENT
Konsep Rational Agent
  • Rational → melakukan hal yang terbaik.
  • Kita harus mendefinisikan tujuan dari si agent (goal).
  • Goal bisa dinyatakan sebagai performance measure: ukuran kinerja si agent
  • Contoh:
    GoalPerformance Measure
    Lulus kuliahIPK
    Cepet kayaGaji bulanan
    Juara liga sepakbolaPosisi klasemen
    BahagiaTingkat kebahagiaan

Rational Agent
  • Definisi:
    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.

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
Contoh: Agent taksi otomatis
Bayangkan sebuah agent taksi otomatis yang menerima penumpang dan mengantarkannya ke tujuan.
  • Performance measure: keamanan, kecepatan, legalitas, kenyamanan perjalanan, keuntungan
  • Environment: jalanan, lampu merah, lalulintas, pejalan kaki, cuaca
  • Actuators: stir arah, gas, rem, klakson, sinyal kiri/kanan
  • Sensors: kamera, sonar, speedometer, GPS, odometer, accelerometer, mesin sensor, keyboard



KOKI CERDAS
Koki Cerdas ini merupakan suatu robot yang dapat memasak makanan secara otomatis. Cara kerja alat ini adalah manusia dapat memilih menu serta porsi makanan yang disediakan robot tersebut, kemudian memasukkan bahan – bahan yang diperlukan.  Robot kemudian akan menerjemahkannya dan mengambil peralatan serta bahan-bahan dari tempat yang telah disediakan sebelumnya. Peralatan memasak berupa kompor bertenaga baterai (tanpa api), panci, wajan, dsb.  Jika bahan-bahan tidak mencukupi atau terdapat peralatan yang tidak layak pakai maupun rusak, maka robot akan mengirimkan peringatan kepada user.
Alat ini sangat efektif untuk memudahkan pekerjaan manusia.Jika sedang lapar tapi malas memasak, robot ini dapat digunakan. Ibu-ibu yang sibuk dan tidak punya banyak waktu dapat menggunakan alat ini untuk menyiapkan masakan keluarganya. Yang diperlukan user adalah menempatkan peralatan serta bahan-bahan untuk memasak dengan benar.




source : http://sarahamanda12.blogspot.co.id/2016/10/pengenalan-intelligent-agents.html

              https://layangantw.wordpress.com/2014/10/26/konsep-intellegent-agents/
             

Monday, October 16, 2017

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

PEAS (Performance measure, Environment, Actuators, Sensors)


Ketika merancang sebuah agent, harus mendefinisikan lingkungan masalah (task environment), yakni:
• Performance measure : apa saja komponen pengukur keberhasilan si agent?
• Environment : kondisi apa saja yang ada disekitar si agent? 
• Actuators : apa saja yang bisa dilakukan si agent?
• Sensors : apa saja yang menjadi input si agent?

1. Contoh: Taksi Otomatis
• Sebuah agent taksi otomatis yang menerima penumpang dan mengantarkannya ke tujuan :
• Performance measure: sampai tujuan, tidak melanggar aturan lalu lintas, perjalanan nyaman,hemat bensin

• Environment: jalan, lalu lintas, pejalan kaki, pelanggan
• Actuators: 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 otomatis:
• Performance measure: pasien sembuh, biya murah, tidak menyalahi hukum
• Environment: pasien, rumah sakit, suster, dokter
• Actuators: layar monitor (pertanyaan, tes, diagnosa, treatment, petunjuk)
• Sensors: keyboard (masukan gejala penyakit, jawaban pasien)         


3.  Contoh: Robot pabrik penjamin mutu
• Sebuah robot yang melakukan pemisahan komponen yang bermutu tinggi pada ban berjalan ke dalam kotak berbeda
• Performance measure: prosentase jumlah komponen yg diletakkan pada kotak yang benar
 • Environment: ban berjalan, komponen yang diuji, kotak
• Actuators: gerak lengan dan tangan robot
• Sensors: kamera, sensor fisik 


4. Contoh: Interactive English tutor
• Sebuah agent tutor yang memberikan latihan english secara interaktif
• Performance measure: nilai skor maksimal
• Environment: para siswa
• Actuators: layar monitor (latihan, saran koreksi)
• Sensors: keyboard