Эвристический поиск
Материал из MachineLearning.
| | Статья написана с использованием LLM GPT-5.5 и проверена участником Arsenii Kolesnikov 11:53, 16 июля 2026 (MSD) |
Эвристический поиск — класс методов поиска, использующих дополнительную информацию о задаче для выбора наиболее перспективных состояний или вершин. В отличие от слепого поиска, который не различает направления до цели, эвристический поиск применяет функцию оценки, приближённо измеряющую стоимость или расстояние до решения.
Эвристический поиск используется в планировании, маршрутизации, решении головоломок, синтезе программ, игровых агентах и комбинаторной оптимизации. Его эффективность зависит не только от алгоритма, но и от качества эвристики.
Содержание |
Задача поиска на графе
Пусть задан ориентированный граф состояний , начальная вершина
, множество целевых вершин
и стоимость ребра
. Требуется найти путь из
в одну из вершин
, часто минимальной стоимости.
Стоимость уже пройденного пути до вершины обозначается
. Эвристическая функция
оценивает оставшуюся стоимость от
до цели. Общая оценка в A* задаётся формулой:
Эвристическая функция
Эвристика — правило, использующее структуру задачи для ускорения поиска. Эвристика не обязана быть точной. Хорошая эвристика дешёвая в вычислении и достаточно информативная: она различает перспективные и бесперспективные направления.
Примеры:
- манхэттенское расстояние в задачах на решётке;
- число неверно расположенных плиток в пятнашках;
- нижняя оценка длины маршрута в задаче коммивояжёра;
- расстояние до цели в релаксированной задаче планирования.
Допустимость и монотонность
Эвристика называется допустимой, если она никогда не завышает истинную минимальную стоимость до цели:
где — истинная оптимальная стоимость от
до цели.
Эвристика называется монотонной, или согласованной, если для каждого ребра выполняется
Монотонность является аналогом неравенства треугольника и гарантирует, что значения вдоль пути не убывают.
Алгоритм A*
A* хранит множество открытых вершин и на каждом шаге раскрывает вершину с минимальным значением . При допустимой эвристике A* находит оптимальный путь, если все стоимости рёбер положительны и пространство поиска конечно или удовлетворяет стандартным условиям полноты[1].
Схема алгоритма:
- поместить начальную вершину в открытое множество;
- выбрать вершину с минимальным
;
- если вершина целевая, вернуть путь;
- иначе раскрыть её наследников;
- обновить оценки
,
и родителей вершин;
- повторять до нахождения цели или исчерпания поиска.
Главный недостаток A* — потребление памяти: алгоритм хранит большое число открытых и закрытых вершин.
Варианты
Жадный поиск по первому наилучшему
Жадный поиск выбирает вершину с минимальным , игнорируя уже накопленную стоимость. Он может быть быстрым, но не гарантирует оптимальность и может уходить в тупики.
IDA*
IDA* сочетает идею A* с итеративным углублением по порогу . Он требует меньше памяти, но может повторно проходить одни и те же участки пространства состояний.
Beam search
Beam search хранит только ограниченное число лучших кандидатов на каждом уровне. Это делает метод полезным в задачах с огромным пространством вариантов, например в декодировании последовательностей, но лишает гарантий полноты и оптимальности.
Weighted A*
Взвешенный A* использует оценку
Увеличение веса ускоряет поиск за счёт склонности двигаться к цели, но может нарушать оптимальность.
Применение
Эвристический поиск применяется там, где полный перебор невозможен:
- построение планов действий;
- поиск маршрутов;
- доказательство теорем;
- оптимизация расписаний;
- игровые агенты;
- синтез программ и автоматическое исправление ошибок.
В машинном обучении эвристический поиск появляется в выборе архитектур, дискретном выводе, декодировании, поиске гиперпараметров и постобработке структурных предсказаний.
Ограничения
- Качество метода зависит от эвристики.
- Информативная эвристика может быть слишком дорогой.
- В больших пространствах даже A* может исчерпать память.
- Приближённые варианты часто теряют гарантии оптимальности.

