В информатике локальный поиск — это эвристический метод решения вычислительно сложных задач оптимизации . Локальный поиск может использоваться в задачах, которые можно сформулировать как поиск решения, максимизирующего критерий среди ряда возможных решений . Алгоритмы локального поиска переходят от решения к решению в пространстве возможных решений ( пространстве поиска ) путем применения локальных изменений до тех пор, пока не будет найдено решение, считающееся оптимальным, или не истечет ограниченное время.
Алгоритмы локального поиска широко применяются к многочисленным сложным вычислительным задачам, включая задачи из области компьютерных наук (в частности, искусственного интеллекта ), математики , исследования операций , инженерии и биоинформатики . Примерами алгоритмов локального поиска являются WalkSAT, алгоритм 2-opt для задачи коммивояжера и алгоритм Метрополиса–Гастингса . [1]
Хотя иногда можно заменить градиентный спуск алгоритмом локального поиска, градиентный спуск не относится к тому же семейству: хотя это итеративный метод локальной оптимизации , он опирается на градиент целевой функции , а не на явное исследование пространства решений.
Вот некоторые проблемы, при которых применялся локальный поиск:
Большинство задач можно сформулировать в терминах пространства поиска и цели несколькими различными способами. Например, для задачи коммивояжера решением может быть маршрут, проходящий через все города, а цель — найти кратчайший путь. Но решением может быть и путь, а быть циклом — часть цели.
Алгоритм локального поиска начинается с решения-кандидата, а затем итеративно переходит к соседнему решению; окрестность — это множество всех потенциальных решений, которые отличаются от текущего решения минимально возможной степенью. Для этого требуется, чтобы отношение соседства было определено в пространстве поиска. Например, окрестность вершинного покрытия — это другое вершинное покрытие, отличающееся только одним узлом. Для булевой выполнимости соседями булевого назначения являются те, у которых есть одна переменная в противоположном состоянии. Для одной и той же задачи может быть определено несколько различных окрестностей; локальная оптимизация с окрестностями, которые включают изменение до k компонентов решения, часто называется k-opt .
Обычно каждое решение-кандидат имеет более одного решения-соседа; выбор того, какое из них выбрать, осуществляется с использованием только информации о решениях в окрестности текущего назначения, отсюда и название « локальный поиск». Когда выбор решения-соседа осуществляется путем выбора решения, локально максимизирующего критерий, т. е. жадного поиска, метаэвристика носит название « подъем на холм» . Когда нет улучшающих соседей, локальный поиск застревает в локально оптимальной точке . Эту проблему локального оптимума можно решить с помощью перезапусков (повторного локального поиска с различными начальными условиями), рандомизации или более сложных схем, основанных на итерациях, таких как итерированный локальный поиск , на памяти, такой как оптимизация реактивного поиска, на стохастических модификациях без памяти, таких как имитация отжига .
Локальный поиск не дает гарантии, что любое данное решение является оптимальным. Поиск может прекратиться по истечении заданного временного интервала или когда лучшее решение, найденное на данный момент, не улучшится за заданное количество шагов. Локальный поиск — это алгоритм, работающий в любое время ; он может вернуть допустимое решение, даже если он будет прерван в любой момент после нахождения первого допустимого решения. Локальный поиск обычно является приближенным или неполным алгоритмом, поскольку поиск может прекратиться, даже если текущее лучшее решение не является оптимальным. Это может произойти, даже если прекращение произойдет из-за того, что текущее лучшее решение не может быть улучшено, поскольку оптимальное решение может находиться далеко от окрестности решений, пересекаемых алгоритмом.
Шурман и Саути предлагают три показателя эффективности локального поиска (глубина, мобильность и охват): [2]
Они выдвигают гипотезу, что алгоритмы локального поиска работают хорошо не потому, что у них есть некоторое понимание пространства поиска, а потому, что они быстро перемещаются в перспективные регионы и исследуют пространство поиска на малых глубинах настолько быстро, широко и систематически, насколько это возможно.
Локальный поиск является подобластью:
Поля локального поиска включают:
Существует несколько методов выполнения локального поиска в пространствах поиска с действительными значениями :