Hill climbing (algoritma): Perbedaan antara revisi
Dibuat dengan menerjemahkan halaman "Hill climbing" |
|||
Baris 14: | Baris 14: | ||
Dalam ruang vektor diskrit, setiap nilai yang mungkin untuk <math>\mathbf{x}</math> dapat divisualisasikan sebagai sebuah [[Titik (teori graf)|simpul]] pada suatu [[Graf (matematika)|graf]]. ''Hill climbing'' akan mengikuti graf dari simpul ke simpul, selalu meningkatkan (atau menurunkan) nilai <math>f(\mathbf{x})</math> secara lokal, hingga [[Maksimum dan minimum|maksimum lokal]] (atau [[Maksimum dan minimum|minimum lokal]]) <math>x_m</math> tercapai. |
Dalam ruang vektor diskrit, setiap nilai yang mungkin untuk <math>\mathbf{x}</math> dapat divisualisasikan sebagai sebuah [[Titik (teori graf)|simpul]] pada suatu [[Graf (matematika)|graf]]. ''Hill climbing'' akan mengikuti graf dari simpul ke simpul, selalu meningkatkan (atau menurunkan) nilai <math>f(\mathbf{x})</math> secara lokal, hingga [[Maksimum dan minimum|maksimum lokal]] (atau [[Maksimum dan minimum|minimum lokal]]) <math>x_m</math> tercapai. |
||
{{Reflist}}{{cite book|last=Skiena|first=Steven|year=2010|title=The Algorithm Design Manual|publisher=[[Springer Science+Business Media]]|isbn=1-849-96720-2|edition=2nd|author-link=Steven Skiena}} |
|||
== Lihat juga == |
== Lihat juga == |
Revisi per 26 Januari 2024 03.17
![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/05/Hill_climb.png/220px-Hill_climb.png)
Dalam analisis numerik, hill climbing (lit: pendakian bukit) adalah teknik optimasi matematis yang termasuk dalam keluarga pencarian lokal. Ia adalah algoritma iteratif yang dimulai dengan solusi sembarang terhadap suatu masalah, kemudian mencoba untuk menemukan solusi yang lebih baik dengan membuat perubahan bertahap pada solusi tersebut. Jika perubahan tersebut menghasilkan solusi yang lebih baik, maka perubahan tambahan lainnya akan dilakukan pada solusi yang baru, dan seterusnya hingga tidak ada lagi perbaikan yang dapat ditemukan.
Sebagai contoh, hill climbing dapat diterapkan pada masalah penjualan keliling. Sangat mudah untuk menemukan solusi awal yang dapat mengunjungi semua kota, tetapi kemungkinan solusi tersebut akan sangat buruk (tinggi biaya), jika dibandingkan dengan solusi optimal. Algoritma ini dimulai dengan solusi seperti itu dan melakukan perbaikan kecil terhadap solusi tersebut, seperti mengganti urutan dua kota yang dikunjungi. Pada akhirnya, rute yang jauh lebih pendek bisa didapatkan.
Hill climbing menemukan solusi optimal untuk permasalahan optimasi convex, sedangkan untuk permasalahan lain hill climbing hanya akan menemukan optimum lokal (solusi yang tidak dapat diperbaiki dengan konfigurasi tetangga), yang belum tentu merupakan solusi terbaik (optimum global) dari semua solusi yang mungkin dari ruang pencarian. Contoh algoritma yang dapat menyelesaikan masalah cembung dengan hill climbing, antara lain adalah algoritma simpleks untuk pemrograman linier dan pencarian biner. [1] Untuk menghindari terjebak dalam optimum lokal, dapat dengan menggunakan restart, yaitu pencarian lokal berulang, atau dengan skema yang lebih kompleks berdasarkan iterasi, seperti iterasi pencarian lokal, atau berdasarkan memori, seperti reactive search optimizatiom dan pencarian tabu), atau dengan modifikasi stokastik tanpa penggunaan memori (seperti simulated annealing).
Simplisitas relatif algoritma ini menjadikannya pilihan awal yang populer di antara algoritma optimasi. Algoritma ini telah digunakan secara luas dalam kecerdasan buatan, seperti untuk mendapatkan kondisi tujuan (goal state)dari node awal yang mana terdapat beberapa pilihan yang berbeda untuk node berikutnya dan node awal yang digunakan dalam algoritma terkait. Meskipun terdapat algoritma yang lebih canggih seperti simulated annealing atau pencarian tabu yang mungkin memberikan hasil yang lebih baik. Namun, dalam beberapa situasi, hill climbing juga dapat digunakan. Hill climbing sering kali dapat memberikan hasil yang lebih baik, dibandingkan dengan algoritma lain ketika jumlah waktu yang tersedia untuk melakukan pencarian terbatas, seperti pada sistem real-time. Hal tersebut dapat terjadi asalkan sejumlah kecil kenaikan biasanya konvergen pada solusi yang baik (solusi optimal atau pendekatan solusi). Di sisi lain, salah satu algoritma pengurutan, bubble sort dapat dilihat sebagai algoritma hill climbing, sebab setiap pertukaran elemen yang berdekatan akan mengurangi jumlah pasangan elemen yang tidak teratur), tetapi pendekatan ini jauh dari efisien, bahkan untuk N yang kecil sekalipun, karena jumlah pertukaran yang dibutuhkan akan bertambah secara kuadratik.
Hill climbing termasuk dalam anytime algorithm atau algoritma yang dapat digunakan kapan saja, sebab ia dapat mengembalikan solusi yang valid. Bahkan, ketika diinterupsi kapan saja sebelum eksekusi algoritma tersebut berakhir.
Deskripsi matematika
Hill climbing berupaya untuk memaksimalkan (atau meminimalkan) fungsi target , dengan adalah sebuah vektor nilai kontinu dan/atau diskrit. Di setiap iterasi, hill climbing akan menyesuaikan satu elemen dalam dan menentukan apakah perubahan tersebut meningkatkan nilai . (Perhatikan bahwa ini berbeda dengan metode penurunan gradien, yang menyesuaikan semua nilai di dalamnya pada setiap iterasi sesuai dengan gradien bukit). Dengan hill climbing, perubahan apa pun yang meningkatkan akan diterima, dan proses akan terus berlanjut hingga tidak ditemukan perubahan yang meningkatkan nilai . Kemudian dikatakan “optimal secara lokal”.
Dalam ruang vektor diskrit, setiap nilai yang mungkin untuk dapat divisualisasikan sebagai sebuah simpul pada suatu graf. Hill climbing akan mengikuti graf dari simpul ke simpul, selalu meningkatkan (atau menurunkan) nilai secara lokal, hingga maksimum lokal (atau minimum lokal) tercapai.
Lihat juga
Referensi
Bacaan lanjutan
- Lasry, George (2018). A Methodology for the Cryptanalysis of Classical Ciphers with Search Metaheuristics (PDF). Kassel University Press. ISBN 978-3-7376-0459-8.
Pranala eksternal
Hill climbing (algoritma) di Wikibuku
- ^ Skiena, Steven (2010). The Algorithm Design Manual (edisi ke-2nd). Springer Science+Business Media. ISBN 1-849-96720-2.