Saya akan menjelaskan langkah - langkah membuat program menggunakan library OPEN GL, untuk lebiih lengkapnya silahkan di download file di bawah ini.
DOWNLOAD PDF >> DI SINI
DOWNLOAD FILE JAR/EXE >> DI SINI
Senin, 14 November 2016
Kamis, 03 November 2016
1. BLIND SEARCH
Blind Search merupakan pencarian asal ketemu. Jika solusi
sudah ketemu, maka pencarian akan dihentikan. Jika dibuat skemanya, pencarian
buta hanya mengenal tiga bagian, [masalah]-[pencarian]-[solusi]. Misalkan dalam
kotak ada 3 kelereng warna merah, 3 biru, dan 3 kuning. Masalahnya adalah,
ambillah satu kelereng yang berwarna merah. Solusi, setelah melakukan
pencarian, kemudian didapat satu kelereng warna merah, nah, itulah solusinya.
model
pencarian blind search yang tidak memiliki informasi awal, model pencarian ini
memiliki tiga ciri – ciri utama yaitu:
1. Membangkitkan simpul berdasarkan urutan.
2. Kalau ada solusi maka solusi akan ditemukan.
3. Hanya memiliki informasi tentang node yang telah dibuka (node selanjutnya tidak diketahui).
4. Variabel data pada Blind Search tidak mempunyai atribut / informasi tambahan.
1. Membangkitkan simpul berdasarkan urutan.
2. Kalau ada solusi maka solusi akan ditemukan.
3. Hanya memiliki informasi tentang node yang telah dibuka (node selanjutnya tidak diketahui).
4. Variabel data pada Blind Search tidak mempunyai atribut / informasi tambahan.
A.
Breadth First Search.
Breadth First Search yaitu
model pencarian yang memakai metode melebar. Untuk mencari hasilnya, model Breadth First Search ini menggunakan teknik pencarian
persoalannya dengan cara membuka node (titik) pada tiap levelnya. Algoritma yang melakukan pencarian
secara melebar yang mengunjungi simpul secara preorder yaitu mengunjungi suatu
simpul kemudian mengunjungi semua simpul yang bertetangga dengan simpul
tersebut terlebih dahulu. Selanjutnya, simpul yang belum dikunjungi dan
bertetangga dengan simpul-simpul yang tadi dikunjungi, demikian seterusnya.
algoritma BFS menggunakan graf sebagai media representasi persoalan, tidak
sulit untuk mengaplikasikan algoritma ini dalam persoalan-persoalan teori graf.
Contoh Algoritma Breadth First Search :
Dalam
algoritma Breadth First Search,
simpul anak yang telah dikunjungi disimpan dalam suatu antrian. Antrian ini
digunakan untuk mengacu simpul-simpul yan bertetangga dengannya yang akan
dikunjungi kemudian sesuai urutan pengantrian. Untuk memperjelas cara kerja
algoritma Breadth First Search beserta antrian yang digunakannya,
berikut langkah-langkah algoritma Breadth
First Search:
1. Masukkan simpul ujung (akar) ke dalam antrian.
2. Ambil simpul dari awal antrian, lalu cek apakah simpul merupakan solusi.
3. Jika simpul merupakan solusi, pencarian selesai dan hasil dikembalikan.
4. Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan simpul tersebut (simpul anak) ke dalam antrian.
5. Jika antrian kosong dan setiap simpul sudah dicek, pencarian selesai dan mengembalikan hasil solusi tidak ditemukan.
6. Ulangi pencarian dari langkah kedua.
1. Masukkan simpul ujung (akar) ke dalam antrian.
2. Ambil simpul dari awal antrian, lalu cek apakah simpul merupakan solusi.
3. Jika simpul merupakan solusi, pencarian selesai dan hasil dikembalikan.
4. Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan simpul tersebut (simpul anak) ke dalam antrian.
5. Jika antrian kosong dan setiap simpul sudah dicek, pencarian selesai dan mengembalikan hasil solusi tidak ditemukan.
6. Ulangi pencarian dari langkah kedua.
Keuntungan
Breadth First Search :
1. Tidak akan menemui jalan buntu.
2. Jika ada satu solusi, maka breadth-first search akan menemukannya. Dan, jika ada lebih dari satu solusi, maka solusi minimum akan ditemukan.
1. Tidak akan menemui jalan buntu.
2. Jika ada satu solusi, maka breadth-first search akan menemukannya. Dan, jika ada lebih dari satu solusi, maka solusi minimum akan ditemukan.
Kelemahan
Breadth First Search :
1. Membutuhkan memori yang cukup banyak, karena menyimpan semua node dalam satu pohon.
2. Membutuhkan waktu yang cukup lama.
1. Membutuhkan memori yang cukup banyak, karena menyimpan semua node dalam satu pohon.
2. Membutuhkan waktu yang cukup lama.
B.
Depth First Search.
Pencarian dilakukan pada satu node dalam setiap level
dari yang paling kiri. Jika pada level yang paling dalam, solusi belum
ditemukan, maka pencarian dilanjutkan pada node sebelah kanan. Node 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. Jika solusi ditemukan
maka tidak diperlukan proses backtracking (penelusuran balik untuk mendapatkan
jalur yang dinginkan).
Kelebihan Depth
First Search adalah:
1. Pemakain memori hanya sedikit, berbeda jauh dengan BFS yang harus menyimpan semua node yang pernah dibangkitkan.
2. Jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka DFS akan menemukannya secara cepat.
1. Pemakain memori hanya sedikit, berbeda jauh dengan BFS yang harus menyimpan semua node yang pernah dibangkitkan.
2. Jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka DFS akan menemukannya secara cepat.
Kelemahan Depth First Search adalah:
1. Jika pohon yang dibangkitkan mempunyai level yang dalam (tak terhingga), maka tidak ada jaminan untuk menemukan solusi (Tidak Complete).
2. Jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang berbeda, maka pada DFS tidak ada jaminan untuk menemukan solusi yang paling baik (Tidak Optimal).
Sumber
:
http://www.elangsakti.com/2013/03/bahasan-fundamental-tentang-blind.html
http://www.churdhulz.byethost22.com/blogs/pengertian-breadth-first-search-bfs?i=1
http://anthonilockheart.blogspot.co.id/2013/04/depth-first-search-dfs-breath-first.html
2. METODE PENCARIAN HEURISTIK
Heuristic Search adalah pencarian bersyarat (terbimbing).
Artinya, solusi yang diperoleh adalah solusi yang terbaik, bukan solusi sekali
ketemu. Bagian-bagiannya adalah [masalah]-[pencarian]-[syarat]-[solusi]. Misal
contoh masalah pada kasus di atas, Ambillah kelereng merah yang tidak pecah dan
tidak lonjong. Sehingga ketika ketemu kelereng merah dan ada pecahnya, itu
masih bukan solusi karena tidak sesuai dengan syarat (tidak pecah dan tidak
lonjong).
Fungsi heuristik digunakan untuk mengevaluasi keadaan-keadaan
problema individual dan menentukan seberapa jauh hal tersebut dapat digunakan
untuk mendapatkan solusi yang diinginkan.
2.1.
Generate and Test /
Pembangkit & Pengujian
Pembangkit & Pengujian : Pada prinsipnya metode
ini merupakan penggabungan antara depth-first search dengan pelacakan mundur
(backtracking), yaitu bergerak ke belakang menuju pada suatu keadaan awal.
Terdapat kelemahan dalam metode ini :
·
Perlu
membangkitkan semua kemungkinan sebelum dilakukan pengujian.
·
Membutuhkan
waktu yang cukup lama dalam pencariannya
Algoritma :
1. Bangkitkan suatu kemungkinan solusi (membangkitkan suatu tititk tertentu
atau lintasan tertentu dari keadaan awal).
2. Uji untuk melihat apakah node tersebut benar-benar merupakan solusinya
dengan cara membandingkan node terebut atau node akhir dari suatu lintasan yang
dipilih dengan kumpulan tujuan yang diharapkan.
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 ruter terpendek dimana setaip kota hanya
boleh dikkunjungi tepat 1 kal i. Misalkan ada 4 kota dengan jarak antara tiap-tiap
kota seperti gambar di bawah ini:
Penyelesaian dengan metode Generate and Test
2.2.
Hill Climbing
Hill
Climbing adalah proses pengujian yang dilakukan dengan menggunakan fungsi
heuristik. Pembangkitan keadaan berikutnya sangat tergantung pada feedback
dari prosedur pengetesan. Tes yang berupa fungsi heuristik ini akan menunjukkan
seberapa baiknya nilai terkaan yang diambil terhadap keadaan-keadaan lainnya
yang mungkin.
Algoritma Simple Hill Climbing :
1. Mulai dari keadaan awal, lakukan pengujian: jika merupakan tujuan, maka berhenti; dan jika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan awal.
2. Kerjakan langkah-langkah berikut sampai solusinya ditemukan, atau sampai tidak ada operator baru yang akan diaplikasikan pada keadaan sekarang.
3. Cari operator yang belum pernah digunakan; gunakan operator ini untuk mendapatkan keadaan yang baru.
4. Evaluasi keadaan baru tersebut.
5. Jika keadaan baru merupakan tujuan, keluar.
6. Jika bukan tujuan, namun nilainya lebih baik daripada keadaan sekarang, maka jadikan keadaan baru tersebut menjadi keadaan sekarang.
7. Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka lanjutkan iterasi.
1. Mulai dari keadaan awal, lakukan pengujian: jika merupakan tujuan, maka berhenti; dan jika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan awal.
2. Kerjakan langkah-langkah berikut sampai solusinya ditemukan, atau sampai tidak ada operator baru yang akan diaplikasikan pada keadaan sekarang.
3. Cari operator yang belum pernah digunakan; gunakan operator ini untuk mendapatkan keadaan yang baru.
4. Evaluasi keadaan baru tersebut.
5. Jika keadaan baru merupakan tujuan, keluar.
6. Jika bukan tujuan, namun nilainya lebih baik daripada keadaan sekarang, maka jadikan keadaan baru tersebut menjadi keadaan sekarang.
7. Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka lanjutkan iterasi.
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.
Algoritma Steepest Ascent Hill Climbing :
Steepest-ascent hill climbing
sebenarnya hampir sama dengan simple hill climbing, hanya saja gerakan
pencarian tidak dimulai dari posisi paling kiri. Gerakan selanjutnya dicari
berdasarkan nilai heuristik terbaik. Dalam hal ini urutan penggunaan operator
tidak menentukan penemuan solusi.
Sumber :
http://www.elangsakti.com/2013/03/bahasan-fundamental-tentang-blind.html
http://fryunfirst.blogspot.co.id/2015/06/pencarian-heuristik-heuristic-search.html
Langganan:
Postingan (Atom)