Ответы:
Как уже сказал @nbro, Hill Climbing - это семейство локальных алгоритмов поиска . Итак, когда вы сказали «Скалолазание в вопросе», я предположил, что вы говорите о стандартном восхождении на холм. Стандартная версия набора высоты имеет некоторые ограничения и часто застревает в следующем сценарии:
Для решения этих проблем было разработано много вариантов алгоритмов подъема на гору. Это наиболее часто используемые:
Успех алгоритмов восхождения на холм зависит от архитектуры пространственно-государственного ландшафта. Всякий раз, когда существует несколько максимумов и плато, варианты алгоритмов поиска восхождения на гору работают очень хорошо. Но в реальных проблемах есть пейзаж, который больше похож на рассеянное семейство лысеющих дикобразов на плоском полу, с миниатюрными дикобразами, живущими на кончике каждой иглы дикобраза (как описано в 4-й главе книги «Искусственный интеллект: Современный подход). Проблемы NP-Hard обычно имеют экспоненциальное количество локальных максимумов, на которые можно застрять.
Данные алгоритмы были разработаны для решения следующих проблем:
Скалолазание - это не алгоритм, а семейство алгоритмов «локального поиска». Конкретные алгоритмы, которые попадают в категорию алгоритмов «восхождения на холм», включают 2-вариант, 3-вариант, 2,5-вариант, 4-вариант или, в общем, любой N-вариант. См. Главу 3 статьи « Проблема коммивояжера: тематическое исследование по локальной оптимизации » (Дэвид С. Джонсон и Лайл А. МакГеох) для получения более подробной информации о некоторых из этих алгоритмов локального поиска (применительно к TSP).
То, что отличает один алгоритм в этой категории от другой, это «функция соседства», которую они используют (простыми словами, способ, которым они находят соседние решения для данного решения). Обратите внимание, что на практике это не всегда так: часто эти алгоритмы имеют несколько разных реализаций.
Наиболее очевидное ограничение алгоритмов восхождения на холм связано с их природой, то есть они являются алгоритмами локального поиска. Следовательно, они обычно просто находят локальные максимумы (или минимумы). Таким образом, если какой-либо из этих алгоритмов уже приблизился к локальному минимуму (или максимуму) и в решении или пространстве поиска существует, ближе к этому найденному решению, лучшее решение, ни один из этих алгоритмов не сможет найти это лучшее решение. Они будут в основном в ловушке.
Алгоритмы локального поиска обычно не используются в одиночку. Они используются в качестве подпрограмм других метаэвристических алгоритмов, таких как имитация отжига, итеративно-локальный поиск или в любом из алгоритмов муравьиных колоний. Таким образом, чтобы преодолеть их ограничения, мы обычно не используем их отдельно, но мы используем их в сочетании с другими алгоритмами, которые имеют вероятностный характер и могут находить глобальные минимумы или максимумы (например, любой из алгоритмов муравьиных колоний).