Jawaban:
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:
Untuk mengatasi masalah ini banyak varian algoritma pendakian bukit telah dikembangkan. Ini paling sering digunakan:
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:
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).