MATERI 3 TUGAS PENGANTAR TEKNOLOGI SISTEM CERDAS
PENCARIAN HEURISTIK
Pengenalan
Heuristik adalah sebuah teknik yangmengembangkan efisiensi dalam proses pencarian, namum dengan kemungkinan mengorbankan kelengkapan (completeness). Fungsi heuristik digunakan untuk mengevaluasi keadaan-keadaan problema individual dan menentukan seberapa jauh hal tersebut dapat digunakan untuk mendapatkan solusi yang diinginkan.
Jenis-jenis Heuristic Searching:
Generate and Test
Metode ini merupakan penggabungan antara depth-first search dengan pelacakan mundur (backtracking), yaitu bergerak ke belakang menuju pada suatu keadaan awal.
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.
HillClimbing
· 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.
Algoritma:
1. 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.
Best First Search
· Metode ini merupakan kombinasi dari metode depthfirst search dan breadth-first search. Pada metode best-first search, pencarian diperbolehkan mengunjungi node yang ada di level yang lebih rendah, jika ternyata node pada level yang lebih tinggi ternyata memiliki nilai heuristic yang lebih buruk.
· Fungsi Heuristik yang digunakan merupakan prakiraan (estimasi) cost dari initial state ke goal state, yang dinyatakan dengan :
f’(n) = g(n) + h’(n)
- f’ = Fungsi evaluasi
- g = cost dari initial state ke current state
- h’ = prakiraan cost dari current state ke goal state
Alpha Beta Prunning,Means-End-Anlysis,Constraint Satisfaction, Simulated Anealing, dll
SMA * Search (Simplified Memory-Bounded) A*
Simplified Memory-Bounded A* atau biasa disebut SMA* merupakan algoritma pencarian yang dapat menggunakan semua memori yang tersedia untuk melakukan pencarian. Menggunakan lebih banyak memori hanya dapat meningkatkan efisiensi pencarian, salah satunya bisa selalu mengabaikan ruang tambahan, tetapi biasanya lebih baik untuk mengingat node daripada harus membuatnya kembali bila diperlukan.
SMA* memiliki gambaran berikut :
· Dia akan memanfaatkan memori apa pun yang tersedia untuk nya.
· Dia menghindari pernyataan berulang sejauh memori memungkinkan.
· Dia selesai jika memori yang tersedia cukup untuk menyimpan jalur solusi dangkal.
· Dia optimal jika tersedia cukup memori untuk menyimpan jalur solusi dangkal optimal. Jika tidak, dia mengembalikan solusi terbaik yang dapat dicapai, dengan memori yang tersedia.
Algoritma SMA* ini merupakan sebuah algoritma yang dikembangkan dari algoritma A* (A Star). Algoritma A* sendiri adalah variasi dari algoritma Branch and Bound. Jadi secara tidak langsung, algoritma SMA* itu sendiri merupakan salah satu variasi pengembangan dari algoritma Branch and Bound. Menggunakan algoritma SMA* berarti kita memperhitungkan biaya sebenarnya ditambah dengan biaya perkiraan. Biaya sebenarnya dinotasikan dengan g(n). Sedangkan biaya perkiraan dinotasikan dengan h(n). Jadi kita memperhitungkan g(n) + h(n).
Algoritma A*
Algoritma A* adalah algoritma pencarian yang merupakan pengembangan dari kelas algoritma Greedy. Seperti halnya pada Greedy, untuk menemukan solusi, A* juga dilakukan oleh fungsi heuristik, yang menentukan urutan titik mana yang akan dikunjungi terlebih dahulu. Heuristik merupakan penilai yang memberi harga pada tiap verteks yang memandu A* mendapatkan solusi yang diinginkan. Algoritma A* menyelesaikan masalah yang menggunakan graph
untuk perluasan ruang statusnya.
Dengan kata lain digunakan untuk menyelesaikan permasalah yang bisa direpresentasikan dengan graph. Algoritma A* adalah sebuah algoritma yang telah dikembangkan. Dengan menerapkan fungsi heuristik, algoritma ini membuang langkah-langkah yang tidak perlu dengan pertimbangan bahwa langkah-langkah yang dibuang sudah pasti merupakan langkah yang tidak akan mencapai solusi yang diinginkan. Secara informal, algoritma bekerja dalam banyak cara yang sama seperti pada algoritma Dijkstra. Daripada selalu mempertimbangkan verteks terbuka dengan nilai terendah, lebih baik memilih verteks yang paling mungkin untuk mengarahkan pencarian ke arah tujuan dengan nilai terkecil. Semuanya dikendalikan oleh sebuah fungsi heuristik. Jika fungsi tersebut akurat, maka algoritma akan efisien dan rute terpendek akan segera ditemukan jika memang ada.
Fungsi Heuristik
Heuristic digunakan untuk mengevaluasi keadaan-keadaan problema individual dan menentukan seberapa jauh hal tersebut dapat digunakan untuk mendapatkan solusi yang diinginkan.
Simulated annealing
Simulated annealing (SA) 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. Masalah yang membutuhkan pendekatan SA adalah masalah-masalah optimisasi kombinatorial, di mana ruang pencarian solusi yang ada terlalu besar, sehingga hampir tidak mungkin ditemukan solusi eksak terhadap permasalahan itu. Publikasi tentang pendekatan ini pertama kali dilakukan oleh S. Kirkpatrick, C. D. Gelatt dan M. P. Vecchi, diaplikasikan pada desain optimal hardware komputer, dan juga pada salah satu masalah klasik ilmu komputer yaitu Traveling Salesman Problem.
Annealing adalah satu teknik yang dikenal dalam bidang metalurgi, digunakan dalam mempelajari proses pembentukan kristal dalam suatu materi. Agar dapat terbentuk susunan kristal yang sempurna, diperlukan pemanasan sampai suatu tingkat tertentu, kemudian dilanjutkan dengan pendinginan yang perlahan-lahan dan terkendali dari materi tersebut. Pemanasan materi di awal proses annealing, memberikan kesempatan pada atom-atom dalam materi itu untuk bergerak secara bebas, mengingat tingkat energi dalam kondisi panas ini cukup tinggi. Proses pendinginan yang perlahan-lahan memungkinkan atom-atom yang tadinya bergerak bebas itu, pada akhirnya menemukan tempat yang optimum, di mana energi internal yang dibutuhkan atom itu untuk mempertahankan posisinya adalah minimum.
Simulated Annealing berjalan berdasarkan analogi dengan proses annealing yang telah dijelaskan di atas. Pada awal proses SA, dipilih suatu solusi awal, yang merepresentasikan kondisi materi sebelum proses dimulai. Gerakan bebas dari atom-atom pada materi, direpresentasikan dalam bentuk modifikasi terhadap solusi awal/solusi sementara. Pada awal proses SA, saat parameter suhu (T) diatur tinggi, solusi sementara yang sudah ada diperbolehkan untuk mengalami modifikasi secara bebas.
Kebebasan ini secara relatif diukur berdasarkan nilai fungsi tertentu yang mengevaluasi seberapa optimal solusi sementara yang telah diperoleh. Bila nilai fungsi evaluasi hasil modifikasi ini membaik (dalam masalah optimisasi yang berusaha mencari minimum berarti nilainya lebih kecil/downhill) solusi hasil modifikasi ini akan digunakan sebagai solusi selanjutnya. Bila nilai fungsi evaluasi hasil modifikasi ini memburuk, pada saat temperatur annealing masih tinggi, solusi yang lebih buruk (uphill) ini masih mungkin diterima, sedangkan pada saat temperatur annealing sudah relatif rendah, solusi hasil modifikasi yang lebih buruk ini mungkin tidak dapat diterima. Dalam tahapan selanjutnya saat temperatur sedikit demi sedikit dikurangi, maka kemungkinan untuk menerima langkah modifikasi yang tidak memperbaiki nilai fungsi evaluasi semakin berkurang. Sehingga kebebasan untuk memodifikasi solusi semakin menyempit, sampai akhirnya diharapkan dapat diperoleh solusi yang mendekati solusi optimal. Pada temperatur rendah ini, SA biasanya menggunakan konsep Hill-Climbing.
Genetic Algorithm
Genetic Algorithm(atau GA) adalah teknik pencarian dalam bidang komputasi untuk menemukan solusi benar atau pendekatan untuk masalah optimasi dan pencarian. Teknik dalam GA didasarkan pada biologi evolusioner seperti pewarisan, mutasi, seleksi dan crossover.
GA diimplementasikan sebagai proses simulasi yang dijabarkan sebagai berikut: Populasi dari representasi abstrak (disebut kromosom, genotip, atau genom) dari candidate solution (disebut individual, atau fenotip) dari optimasi yang berevolusi ke solusi yang lebih baik. Biasanya solusi direpresentasikan ke dalam string biner. Evolusi dimulai dari populasi dari individu yang dihasulkan secara random dan terjadi dalam generasi. Di setiap generasi, fitness dari setiap individu dalam populasi dievaluasi, beberapa individu dipilih secara stokastik(berdasarkan fitness) dan dimodifikasi(crossover dan kemungkinan mutasi) untuk membentuk populasi baru. Populasi baru lalu dimanfaatkan untuk iterasi selanjutnya. Secara umum, algoritma selesai jika telah menghasilkan generasi maksimum atau hasil dalam populasi dirasa memuaskan (berdasarkan berbagai parameter).
Dalam GA biasanya ada 2 hal yang harus didefinisikan:
1. Representasi genetis dari domain solusi
2. Fungsi fitness untuk mengevaluasi solusi domain.
Representasi standar dari solusi adalah array of bits, karena memudahkan operasi crossover. Fungsi fitness didefinisikan dari representasi genetis dan kualitas dari representasi solusi. Setelah keduanya didefinisikan, GA berlanjut ke inisialisasi populasi dari solusi secara acak, lalu berkembang lewat perulangan aplikasi mutasi, crossover dan seleksi.
Inisialisasi
Awalnya, beberapa solusi individual dihasilkan secara acak untuk membentuk populasi awal yang ukurannya tergantung sifat dari masalah.
Seleksi
Dalam setiap generasi baru, proporsi dari populasi yang ada dipilih untuk menghasilkan generasi selanjutnya. Solusi individual dipilih lewat proses fitness, dimana solusi yang lebih baik (diukur dari fungsi fitness) lebih mungkin dipilih. Metode seleksi yang umum dipakai adalah roulette wheel dan tournament.
Reproduksi
Langkah selanjutnya adalah menghasilkan generasi selanjutnya dari populasi solusi dari hasil seleksi lewat operasi genetik crossover (atau rekombinasi) dan/atau mutasi
Terminasi
Proses ini diulang sampai tercapai kondisi akhir. Kondisi akhir yang umum antara lain:
· Solusi yang ditemukan memenuhi kriteria minimum
· Jumlah generasi tertentu telah tercapai
· Telah mencapai waktu komputasi tertentu
· Tidak dapat dihasilkan hasil yang lebih baik
· Inspeksi manual
· Kombinasi dari kondisi di atas.
Pseudo-code
1. Pilih populasi awal
2. Evaluasi fitness dari tiap individu dalam populasi
3. Iterasi:
· Pilih individu terbaik untuk reproduksi
· Hasilkan generasi baru lewat crossover dan mutasi dan menghasilkan anak
· Evaluasi fitness dari setiap individu anak
· Ganti bagian populasi terburuk dengan anak
4. Sampai kondisi akhir tercapai
Tidak ada komentar:
Posting Komentar