KECERDASAN BUATAN (METODE HEURISTIC)
DISUSUN OLEH: DODY DHARMA NURI ( 2013-31-065 ) GLORY EFRAT SANDY S ( 2013-31-073 ) DORY FAJRYAL IMRAT ( 2013-31-088 ) OKI DWI KURNIAWAN ( 2013-31-98 ) ELSON HAYADI ( 2013-31-128 ) INDRA MULYADI ( 2013-31-231 )
TEKNIK INFORMATIKA SEKOLAH TINGGI TEKNIK PLN 2015
BAB I PENDAHULUAN
1.1 Latar Belakang Dalam ilmu komputer, sebuah algoritma pencarian dijelaskan secara luas adalah sebuah algoritma yang menerima masukan berupa sebuah masalah dan menghasilkan sebuah solusi untuk masalah tersebut, yang biasanya didapat dari evaluasi beberapa kemungkinan solusi. Sebagian besar algoritma yang dipelajari oleh ilmuwan komputer adalah algoritma pencarian. Himpunan semua kemungkinan solusi dari sebuah masalah disebut ruang pencarian. Algortima pencarian brute-force atau pencarian naif/uninformed menggunakan metode yang sederhana dan sangat intuitif pada ruang pencarian, sedangkan algoritma pencarian informed menggunakan heuristik untuk menerapkan pengetahuan tentang struktur dari ruang pencarian untuk berusaha mengurangi banyaknya waktu yang dipakai dalam pencarian. Heuristik adalah aturan untuk memilih cabang-cabang yang paling mungkin menyebabkan penyelesaian permasalahan dapat diterima.
1.2 Batasan Masalah Makalah ini membahas tentang heuristik yaitu aturan untuk memilih cabang-cabang yang paling mungkin menyebabkan penyelesaian permasalahan dapat diterima.
1.3 Tujuan Tujuan dari Pembuatan Makalah ini, antara lain agar : 1. Mahasiswa mampu memahami apa itu Heuristik, Pembangkit dan pengujian (generate & test), Pendakian bukit (hill climbing), Pencarian terbaik pertama (best first search), Simualated annealing. 2. Mahasiswa mampu membedakan Heuristik, Pembangkit dan pengujian (generate & test), Pendakian bukit (hill climbing), Pencarian terbaik pertama (best first search), Simualated annealing.
1.4 Metode Metode yang digunakan penulis dalam pembuatan Makalah ini adalah dengan mencari referensi di internet.
BAB II PEMBAHASAN 2.1 Pencarian Heuristik Heuristic search adalah suatu istilah yang berasal dari bahasa Yunani yang berarti menemukan/menyingkap. Heuristik adalah suatu perbuatan yang membantu kita menemukan jalan dalam pohon pelacakan yang menuntut kita kepada suatu solusi masalah. Heuristik dapat diartikan juga sebagai suatu kaidah yang merupakan metoda/prosedur yang didasarkan kepada pengalaman dan praktek, syarat, trik atau bantuan lainnya yang membantu mempersempit dan memfokuskan proses pelacakan kepada suatu tujuan tertentu. George Poyla (dalam Kristanto. A, 2003) mendefinisikan heuristik sebagai ”studi tentang sebuah metode dan aturan discovery serta invention” dalam pencarian state space, heuristik didefinisikan sebagai aturan untuk memilih cabang-cabang dalam ruang keadaan yang paling tepat untuk mencapai solusi permasalahan yang dapat diterima . Pemecahan masalah AI menggunakan heuristik dalam dua situasi dasar (Setiawan. S, 1993), yaitu : 1. Permasalahan yang mungkin tidak mempunyai solusi yang pasti disebabkan oleh ambiguitas (keraguan/ketidakpastian) mendasar dalam pernyataan permasalahan atau data yang tersedia, contohnya diagnosa kedokteran. 2. Permasalahan yang boleh jadi memiliki solusi pasti, tetapi biaya komputasinya untuk mendapatkan solusi tersebut mungkin sangat tinggi. Dalam banyak problema (misalnya saja catur), pertumbuhan state space adalah secara kombinatorial eksplosif dengan bayak state yang mungkin meningkat secara eksponensial atau faktorial dengan kedalaman pencarian. Dalam hal ini, exhaustive, yakni teknik pencarian brute force seperti pencarian mendalam pertama dan pencarian meluas pertama mungkin gagal menemukan solusi sehingga heuristik akan menangani kerumitan permasalahan ini dengan panduan pencarian pada sepanjang lintasan yang memeberi harapan melewati state. Dengan mengeliminasi state yang tidak memberi harapan dan turunannya dari ruang tersebut maka algoritma heuristik dapat mengalahkan ledakan kombinatorial dan menemukan penyelesaian yang dapat diterima.
Pencarian terbimbing (heuristic search) dibutuhkan karena pencarian buta (blind search) tidak selalu dapat diterapkan dengan baik, hal ini disebabkan waktu aksesnya yang cukup lama serta besarnya memori yang diperlukan. Dalam pencarian ruang keadaan, heuristik
dinyatakan sebagai aturan untuk melakukan pemilihan cabang-cabang dalam ruang keadaan yang paling tepat untuk mencapai solusi permasalahan yang dapat diterima. Heuristik dapat digunakan pada beberapa kondisi berikut ini (Siswanto, 2010): 1. Mengatasi combinatorial explosion. Ada masalah yang kemungkinan arah penyelesaiannya berkembang pesat (bersifat faktorial) sehingga menimbulkan combinatorial explosion. Heuristik merupakan cara untuk menentukan kemungkinan arah penyelesaian masalah secara efisien. 2. Solusi paling optimal mungkin tidak diperlukan. Dalam suatu keadaan, mungkin lebih baik mendapatkan solusi yang mendekati optimal dalam waktu yang singkat daripada solusi yang paling optimal dalam waktu yang lama. 3. Pada umumnya hasilnya cukup baik. Sekalipun tidak optimal, tetapi biasanya mendekati optimal. Membantu pemahaman bagi orang yang menyelesaikan persoalan. 4. Banyak alternatif heuristik yang dapat diterapkan dalam suatu percobaan. Orang yang menyelesaikan persoalan tersebut akan lebih mengerti persoalannya jika mencoba heuristik yang diterapkannya. Salah satu contoh dari heuristik yang baik untuk tujuan umum yang berguna untuk beragam kombinasi permasalahan adalah the nearest neighbour heuristic, yang bekerja dengan cara menyeleksi alternatif yang paling tinggi secara lokal pada setiap langkahnya. Untuk permasalahan perjalanan salesman, prosedur-prosedur yang harus dilakukan adalah sebagai berikut : 1. Memilih sebuah kota awal (starting cities) 2. Melihat kota berikutnya, kemudian melihat semua kota yang belum dikunjungi dan memilih salah satu kota yang paling dekat dengan kota yang dipilih pada saat itu. 3. Ulangi langkah 2 sampai semua kota dikunjungi. Sebuah fungsi heuristik mengevaluasi keadaan permasalahan tersendiri dan menentukan bagaimana diperlukan fungsi ini dalam memecahkan suatu permasalahan. Sebuah fungsi heuristik adalah sebuah fungsi yang memetakan keadaan permasalahan, yang mendeskripsikan daya tarik dan digambarkan dalam sebuah angka (Pearl, 1984).
Fungsi heuristik yang dirancang dengan baik dapat berperan dalam sebuah bagian yang penting untuk memandu secara efisien proses pencarian menuju ke sebuah solusi. Tabel 2.1 menunjukkan beberapa fungsi heuristik sederhana untuk beberapa permasalahan.
Kadang kala sebuah nilai tinggi dari fungsi heuristik mengindikasikan sebuah posisi yang baik secara relatif (terlihat pada catur dan tic tac toe), di lain waktu sebuah nilai rendah mengindikasikan sebuah situasi yang menguntungkan (terlihat pada perjalanan salesman). Program yang menggunakan nilai (value) dari fungsi dapat mengusahakan minimal atau maksimal secara tepat. Tujuan dari sebuah fungsi heuristik adalah untuk memandu proses pencarian tujuan yang menguntungkan dengan menganjurkan jalur yang mana yang diikuti pertama kali ketika tersedia lebih dari satu tujuan. Setelah proses berlangsung, akan bisa dihitung sebuah fungsi heuristik yang sempurna dengan cara melakukan sebuah pencarian yang lengkap dari simpul dalam pertanyaan dan menentukan apakah fungsi ini menuju ke sebuah solusi yang baik. Sayangnya, seperti semua kaidah penemuan lainnya, heuristik juga dapat salah. Heuristik hanyalah panduan informasi untuk menebak langkah berikutnya yang harus diambil dalam menyelesaikan suatu permasalahan, dan sering dilakukan berdasarkan eksperimen/percobaan atau secara intuisi. Oleh karena menggunakan informasi yang terbatas, heuristik jarang dapat memprediksi tingkah laku yang eksak dari ruang keadaan saat dilakukan pencarian. Heuristik dapat membimbing algoritma pencarian untuk mendapatkan solusi suboptimal atau gagal menemukan solusi apapun, karena tidak ada solusi yang dapat menuju keadaan akhir. Heuristik dan perancangan algoritma untuk mengimplementasikan pencarian heuristik telah menjadi inti permasalahan penelitian AI. Game playing dan pemecahan teorema (theorem solving) adalah dua aplikasi paling tua dari AI, kedua-duanya memerlukan heuristik untuk memangkas ruang dari solusi yang mungkin.
2.2 Metode Pencarian Heuristik Ada 4 metode pencarian heuristic: 1. 2. 3. 4.
Pembangkit dan pengujian (generate & test) Pendakian bukit (hill climbing) Pencarian terbaik pertama (best first search) Simualated annealing
1. Pembangkit dan Pengujian (generate & test) Metode ini merupakan penggabungan antara depth-first search dengan pelacakan mundur (backtracking), yaitu bergerak kebelakang menuju pada suatu keadaan awal. Algoritma: a. Bangkitkan suatu kemungkinan solusi(membangkitkan suatu tititk tertentu atau lintasan tertentu dari keadaan awal). b. 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. c. Jika solusi ditemukan, keluar. Jika tidak, ulangi kembali langkah pertama. Contoh Kasus : Seorang salesman ingin mengunjungi n kota. Jarak tiap kota sdh diket.Kita ingin mengetahui rute terpendek dimana setiap kota hanya boleh dikunjungi 1 kali. Misal ada 4 kota dg jarak sbb:
8
A 6
8
4
D
Penyelesaian
B
6
3
C
2. 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 lainnyayang mungkin. a. Simple Hill Climbing Cari operator yang belum pernah digunakan; gunakan operator ini untuk mendapatkan keadaan yang baru. a. Kerjakan langkah-langkah berikut sampai solusinya ditemukan atau sampai tidak ada operator baru yang akan diaplikasikan pada keadaan sekarang : Cari operator yang belum digunakan; gunakan operator ini untuk mendapatkan keadaan yang baru. b. Evaluasi keadaan baru tersebut : – Jika keadaan baru merupakan tujuan, keluar – Jika bukan tujuan, namun nilainya lebih baik daripada keadaan sekarang, maka jadikan keadaan baru tersebut menjadi keadaan sekarang. – Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka lanjutkan iterasi. b. Steepest – Ascent HC 1. Tentukan SUCC sebagai nilai heuristik terbaik dari successor-successor 2. Kerjakan tiap operator yang digunakan oleh keadaan sekarang. a. Gunakan operator tersebut dan bentuk keadan baru b. Evaluasi keadaan baru. Jika tujuan keluar, jika bukan bandingkan nilai heuristiknya dengan SUCC. Jika lebih baik jadikan nilai heuristik keadaan baru ter sebut sebagai SUCC. Jika tidak, nilai SUCC tidak berubah. 3. Jika SUCC lebih baik dari nilai heuristik keadaan sekarang, ubah SUCC menjadi keadaan sekarang. Algoritma Steepet-Ascent HC
3. Best-First Search Terdapat dua jenis algoritma Best-First Search, yaitu: 1. Greedy Best_-First Search yang hanya memperhitungkan biaya perkiraan saja f(n)=h(n) 2. Algoritma A* yang memperhitungkan gabuangan dua biaya, biaya sebenarnya dan biaya perkiraan. A*=f(n)=g(n)+h(n) Ket : • g(n) = biaya sebenarnya untuk mencapai simpul n • h(n) = perkiraan biaya dari simpul n ke goal. • f(n) = perkiraan total biaya jalur yang melalui simpul n ke goal. Algoritma Best-First Search 1. OPEN berisi initial state dan CLOSED masih kosong. 2. Ulang sampai goal ditemukan atau sampai tidak ada nodes di dalam OPEN : a. Ambil simpul terbaik yang ada di OPEN b. Jika simpul tersebut sama dengan goal, maka sukses c. Jika tidak, masukkan simpul tersebut ke dalam CLOSED d. Bangkitkan semua suksesor dari simpul tersebut e. Untuk setiap suksesor kerjakan : - Jika suksesor tersebut belum pernah dibangkitkan, evaluasi suksesor tersebut, tambahkan ke OPEN, dan catat parent atau orang tuanya. - Jika suksesor tersebut sudah pernah dibangkitkan, ubah parentnya jika jalur melalui parent ini lebih baik daripada jalur melalui parent yang sebelumnya. Selanjutnya, perbarui biaya untuk suksesor tersebut dan nodes lain yang berada di level bawahnya. 4. Simulated Annealing (SA) Simulated annealing adalah salah satu algoritma untuk untuk optimisasi yang bersifat generik. Berbasiskan probabilitas dan mekanika statistik, algoritma ini dapat digunakan untuk mencari pendekatan terhadap solusi optimum global dari suatu permasalahan. SA memanfaatkan analogi antara cara pendinginan dan pembekuan metal menjadi sebuah struktur crystal dengan energi yang minimal (proses penguatan) dan proses pencarian untuk state tujuan minimal. SA lebih banyak menjadi jebakan pada local minimal. SA berusaha keluar dari jebakan minimum local. Algoritma: Simulated Annealing 1. Evaluasi keadaan awal. Jika tujuan maka KELUAR. Jika tidak lanjutkan dengan keadaan awal sebagai keadaan sekarang 2. Inisialisasi BEST_SO_FAR untuk keadaan sekarang 3. Inisialisasi T sesuai dengan annealing shedule
4. Kerjakan hingga solusi ditemukan atau sudah tidak ada operator baru lagi akan diaplikasikan kekondisi sekarang a.
Gunakan operator yang belum pernah digunakan untuk menghasilkan keadaan baru
b.
Evaluasi kondisi baru dengan menghitung: ∆E = nilai sekarang – nilaia keadaan baru i. Jika kondisi baru tujuan maka KELUAR ii. Jika bukan tujuan, namun nilainya lebih baik dari sekarang, maka jadikan keadaan tersebut sebagai keadaaan sekarang
iii. Jika nilai kondisi baru tidak lebih baik daripada keadaan sekarang, maka tetapkan kondisi baru sebagai keadaan sekarang dengan probabilitas: p’ = e ∆E /T c.
Perbaiki T sesuai dengan annealing scheduling
5. BEST_SO_FAR adalah jawaban yang dimaksud
BAB 3 PENUTUP Kesimpulan Dari pembahasan diatas dapat ditarik kesimpulan yaitu :
1. Heuristic search adalah suatu istilah yang berasal dari bahasa Yunani yang berarti menemukan/menyingkap. Heuristik adalah suatu perbuatan yang membantu kita menemukan jalan dalam pohon pelacakan yang menuntut kita kepada suatu solusi masalah. Heuristik dapat diartikan juga sebagai suatu kaidah yang merupakan metoda/prosedur yang didasarkan kepada pengalaman dan praktek, syarat, trik atau bantuan lainnya yang membantu mempersempit dan memfokuskan proses pelacakan kepada suatu tujuan tertentu. 2. Pembangkit dan Pengujian (generate & test) Metode ini merupakan penggabungan antara depth-first search dengan pelacakan mundur (backtracking), yaitu bergerak kebelakang menuju pada suatu keadaan awal.
3. PENDAKIAN BUKIT (Hill Climbing) ialah 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. 4. Best-First Search terdapat dua jenis algoritma Best-First Search adalah Greedy Best_First Search dan Algoritma A* 5. Simulated annealing adalah salah satu algoritma untuk untuk optimisasi yang bersifat generik. Berbasiskan probabilitas dan mekanika statistik, algoritma ini dapat digunakan untuk mencari pendekatan terhadap solusi optimum global dari suatu permasalahan.
DAFTAR PUSTAKA •
http://www.authorstream.com/Presentation/si_dego-1462510-metode-pencarianheuristik/
•
http://aqdestri.blogspot.co.id/2010/12/pencarian-heuristik-heuristic-search.html
•
http://id.wikipedia.com