Kapan harus memilih Stochastic Hill Climbing daripada Steepest Hill Climbing?

Jawaban:

3

Algoritma pendakian bukit terjal bekerja dengan baik untuk optimasi cembung. Namun, masalah dunia nyata biasanya dari jenis optimasi non-cembung: ada beberapa puncak. Dalam kasus seperti itu, ketika algoritma ini dimulai pada solusi acak, kemungkinan mencapai puncak lokal, bukannya puncak global, tinggi. Perbaikan seperti Simulasi Annealing memperbaiki masalah ini dengan memungkinkan algoritme bergerak dari puncak lokal, dan dengan demikian meningkatkan kemungkinan bahwa ia akan menemukan puncak global.

Jelas, untuk masalah sederhana dengan hanya satu puncak, mendaki bukit paling curam selalu lebih baik. Itu juga dapat menggunakan penghentian awal jika puncak global ditemukan. Sebagai perbandingan, algoritma anil simulasi akan benar-benar melompat jauh dari puncak global, kembali dan melompat lagi. Ini akan diulang sampai cukup dingin atau sejumlah iterasi yang telah ditentukan telah selesai.

Masalah dunia nyata berurusan dengan data yang berisik dan hilang. Pendekatan pendakian bukit stokastik, walaupun lebih lambat, lebih kuat untuk masalah ini, dan rutinisasi optimasi memiliki kemungkinan lebih tinggi untuk mencapai puncak global dibandingkan dengan algoritma pendakian bukit paling curam.

Epilog: Ini adalah pertanyaan bagus yang menimbulkan pertanyaan terus-menerus ketika merancang solusi atau memilih antara berbagai algoritme: trade-off biaya kinerja-komputasi. Seperti yang Anda duga, jawabannya selalu: itu tergantung pada prioritas algoritma Anda. Jika itu adalah bagian dari beberapa sistem pembelajaran online yang beroperasi pada kumpulan data, maka ada batasan waktu yang kuat, tetapi kendala kinerja yang lemah (kumpulan data berikutnya akan mengoreksi bias yang keliru yang diperkenalkan oleh kumpulan data pertama). Di sisi lain, jika itu adalah tugas pembelajaran offline dengan seluruh data yang tersedia di tangan, maka kinerja adalah kendala utama, dan pendekatan stokastik disarankan.

Stardust dinamis
sumber
2

Mari kita mulai dengan beberapa definisi terlebih dahulu.
Mendaki bukit adalah algoritma pencarian yang hanya menjalankan satu putaran dan terus bergerak ke arah peningkatan nilai-yaitu, menanjak. Loop berakhir ketika mencapai puncak dan tidak ada tetangga yang memiliki nilai lebih tinggi.

Mendaki bukit Stochastic , varian pendakian bukit, memilih secara acak dari antara gerakan menanjak. Probabilitas seleksi dapat bervariasi dengan kecuraman gerakan menanjak. Dua metode terkenal adalah:
Panjat bukit pilihan pertama: menghasilkan penerus secara acak sampai dihasilkan satu yang lebih baik daripada keadaan saat ini. * Dianggap baik jika negara memiliki banyak penerus (seperti ribuan, atau jutaan).
Acak-restart mendaki bukit:Berfungsi pada filosofi "Jika Anda tidak berhasil, coba, coba lagi".

Sekarang untuk jawaban Anda. Panjat bukit stokastik benar-benar dapat melakukan lebih baik dalam banyak kasus . Pertimbangkan kasus berikut. Gambar menunjukkan lanskap ruang-negara. Contoh yang ada dalam gambar diambil dari buku, Artificial Intelligence: A Modern Approach .

masukkan deskripsi gambar di sini

Misalkan Anda berada pada titik yang ditunjukkan oleh keadaan saat ini. Jika Anda menerapkan algoritma panjat bukit sederhana, Anda akan mencapai batas maksimum lokal dan algoritme berakhir. Meskipun ada keadaan dengan nilai fungsi obyektif yang lebih optimal tetapi, algoritma gagal mencapai sana karena macet pada maksimum lokal. Algoritma juga dapat terjebak pada maxima lokal datar .
Restart bukit acak melakukan serangkaian pencarian mendaki bukit dari keadaan awal yang dihasilkan secara acak sampai keadaan tujuan ditemukan.

Keberhasilan mendaki bukit tergantung pada bentuk lanskap ruang-negara. Dalam hal hanya ada beberapa maxima lokal, plateaux datar; mendaki bukit secara acak-restart akan menemukan solusi yang baik dengan sangat cepat. Sebagian besar masalah kehidupan nyata memiliki lansekap ruang-negara yang sangat kasar, membuatnya tidak cocok untuk menggunakan algoritma pendakian bukit, atau variannya.

CATATAN: Algoritma Hill Climb juga dapat digunakan untuk menemukan nilai minimum , dan bukan hanya nilai maksimum. Saya telah menggunakan istilah maksimum dalam jawaban saya. Jika Anda mencari nilai minimum, semua hal akan terbalik, termasuk grafik.

Ugnes
sumber
Maukah Anda memberi kami rincian lebih lanjut tentang bagaimana algoritma mendaki bukit stokastik benar-benar bekerja?
Mostafa Ghadimi
1

Saya juga baru dalam konsep-konsep ini, tetapi cara saya memahaminya, mendaki bukit Stochastic akan tampil lebih baik dalam kasus-kasus di mana waktu komputasi sangat berharga (termasuk perhitungan fungsi kebugaran) tetapi tidak benar-benar diperlukan untuk mencapai yang terbaik solusi yang mungkin. Mencapai bahkan optimal lokal akan baik-baik saja. Robot yang beroperasi dalam gerombolan akan menjadi salah satu contoh di mana ini dapat digunakan.

Satu-satunya perbedaan yang saya lihat di panjat bukit yang paling curam adalah fakta bahwa ia mencari tidak hanya node tetangga tetapi juga penerus tetangga, cukup mirip dengan bagaimana algoritma catur mencari lebih banyak lagi pergerakan ke depan sebelum memilih langkah terbaik.

Nav
sumber
0

TLDR : Jika Anda mencoba menemukan optimum global , di mana adalah fungsi skor dengan beberapa optima lokal, sehingga tidak semua optima lokal memiliki nilai yang sama.SS

Abdul Rahman Dabbour
sumber