Apa keterbatasan algoritma pendakian bukit dan bagaimana cara mengatasinya?

Jawaban:

6

Seperti @nbro telah mengatakan bahwa Hill Climbing adalah keluarga algoritma pencarian lokal . Jadi, ketika Anda mengatakan Pendakian Bukit dalam pertanyaan saya berasumsi Anda berbicara tentang pendakian bukit standar. Versi standar pendakian bukit memiliki beberapa keterbatasan dan sering terjebak dalam skenario berikut:

  • Maxima Lokal: Algoritma panjat tebing mencapai di sekitar nilai maksimum lokal, akan ditarik ke puncak dan terjebak di sana, tidak memiliki tempat lain untuk pergi .
  • Ridges: Ini adalah urutan maxima lokal , sehingga menyulitkan algoritma untuk bernavigasi.
  • Plateaux: Ini adalah wilayah ruang-negara yang datar . Karena tidak ada kesulitan untuk pergi, algoritma sering hilang di dataran tinggi.

Untuk mengatasi masalah ini banyak varian algoritma pendakian bukit telah dikembangkan. Ini paling sering digunakan:

  • Stochastic Hill Climbing memilih secara acak dari gerakan menanjak. Probabilitas seleksi bervariasi dengan kecuraman gerakan menanjak.
  • Pendakian Pilihan Pertama mengimplementasikan yang di atas dengan menghasilkan penerus secara acak sampai yang lebih baik ditemukan.
  • Restart bukit secara acak mulai pencarian dari gerakan awal yang dihasilkan secara acak sampai keadaan tujuan tercapai.

Keberhasilan algoritma pendakian bukit tergantung pada arsitektur lanskap ruang-negara. Setiap kali ada beberapa maxima dan plateaux varian algoritma pencarian mendaki bukit bekerja dengan sangat baik. Tetapi dalam masalah dunia nyata memiliki lanskap yang lebih mirip keluarga landak botak yang tersebar luas di lantai datar, dengan landak mini yang hidup di ujung setiap jarum landak (seperti yang dijelaskan dalam Bab 4 buku Buatan Inteligensi: A Pendekatan Modern). Masalah NP-Hard biasanya memiliki jumlah maksima lokal eksponensial untuk terjebak.
Algoritma yang diberikan telah dikembangkan untuk mengatasi masalah seperti ini:

  • Annealing Dirangsang
  • Pencarian Balok Lokal
  • Algoritma Genetika

Buku Referensi - Kecerdasan Buatan: Suatu Pendekatan Modern

Ugnes
sumber
Ada lebih banyak alternatif yang tersedia untuk mengatasi masalah pendakian bukit; yaitu kelompok permutasi, basis data pola dan pencarian berdasarkan tata bahasa. Mereka menggunakan pengetahuan khusus domain untuk mencari lebih cepat di ruang-negara.
Manuel Rodriguez
Ya @ManuelRodriguez. Algoritma yang bergantung pada pengetahuan khusus Domain memberikan hasil yang sangat baik. Tetapi saya mencoba untuk menjaga jawaban untuk masalah umum, menyebutkan beberapa cara yang dapat mengatasi keterbatasan Pencarian Hill Climb.
Ugnes
5

Mendaki bukit bukanlah algoritma, tetapi keluarga algoritma "pencarian lokal". Algoritma khusus yang masuk dalam kategori algoritma "mendaki bukit" adalah 2-opt, 3-opt, 2,5-opt, 4-opt, atau, pada umumnya, N-opt apa saja. Lihat bab 3 dari makalah " Masalah Salesman Perjalanan: Sebuah Studi Kasus dalam Optimalisasi Lokal " (oleh David S. Johnson dan Lyle A. McGeoch) untuk rincian lebih lanjut mengenai beberapa algoritma pencarian lokal ini (diterapkan pada TSP).

Apa yang membedakan satu algoritma dalam kategori ini dari yang lain adalah "fungsi lingkungan" yang mereka gunakan (dengan kata sederhana, cara mereka menemukan solusi tetangga untuk solusi yang diberikan). Perhatikan bahwa, dalam praktiknya, ini tidak selalu terjadi: seringkali algoritme ini memiliki beberapa implementasi yang berbeda.

Keterbatasan paling jelas dari algoritma mendaki bukit adalah karena sifat mereka, yaitu, mereka adalah algoritma pencarian lokal. Karenanya mereka biasanya hanya menemukan maxima lokal (atau minimum). Jadi, jika salah satu dari algoritma ini telah konvergen ke minimum lokal (atau maksimum) dan, dalam solusi atau ruang pencarian, ada, dekat dengan solusi yang ditemukan ini, solusi yang lebih baik, tidak satupun dari algoritma ini akan dapat menemukan ini solusi yang lebih baik. Mereka pada dasarnya akan terjebak.

Algoritma pencarian lokal biasanya tidak digunakan sendirian. Mereka digunakan sebagai sub-rutin dari algoritma meta-heuristik lainnya, seperti simulasi annealing, iterated-local search atau dalam algoritma ant-colony. Jadi, untuk mengatasi keterbatasan mereka, kami biasanya tidak menggunakannya sendirian, tetapi kami menggunakannya bersama dengan algoritma lain, yang memiliki sifat probabilistik dan dapat menemukan minimum global atau maksimum (misalnya, salah satu algoritma ant-colony).

nbro
sumber
Jawaban yang bagus (+1)! Bisakah Anda merekomendasikan sumber daya (YouTube, posting blog, kertas arxive, buku) untuk belajar tentang algoritma ant-colony? Saya belum pernah mendengarnya dan ingin mendapat gambaran kasar tentang mereka.
Martin Thoma
1
@ MartinThoma Saya takut saya benar-benar tidak tahu tutorial yang sangat bagus tentang ACS. Mungkin Anda bisa mulai dengan tutorial singkat berikut dan implementasi yang sesuai: cleveralgorithms.com/nature-inspired/swarm/… . Jika Anda juga tertarik pada implementasi yang lebih serius, diterapkan pada TSP, maka lihat yang ini: aco-metaheuristic.org/aco-code , diimplementasikan oleh Stützle (dan lainnya), salah satu kontributor untuk pengembangan teknik ini.
nbro
Penanya tahu, apa definisi formal mendaki bukit adalah karena dia telah membaca artikel Wikipedia. Pertanyaannya lebih ke arah bagaimana menggunakannya untuk Kecerdasan Buatan. Diketahui, bahwa pendakian Hill hanya dapat mencari di ruang lokal, yang membuatnya sulit untuk masalah terkait AI. Biasanya pencarian macet di optima lokal yang berarti bahwa rute terpendek dalam masalah salesman keliling tidak dapat ditemukan.
Manuel Rodriguez
1
@MartinThoma Lagi pula, Anda juga dapat melihat makalah penelitian. Saya hanya dapat memberi tahu Anda beberapa peneliti penting: Dorigo (yang pertama yang memperkenalkan teknik ini, AFAIK), Gambardella dan Stützle. Lihatlah surat-surat mereka. Saya tidak yakin yang mana yang disarankan. Juga, ada sebuah buku yang didedikasikan untuk segerombolan intelijen (oleh Bonabeau), jika Anda benar-benar ingin membahas detailnya.
nbro