В информатике , особенно в алгоритмах , связанных с поиском пути , эвристическая функция считается допустимой , если она никогда не переоценивает стоимость достижения цели, т. е. оцениваемая ею стоимость достижения цели не превышает минимально возможной стоимости от текущей точка на пути. [1]
Это связано с концепцией непротиворечивой эвристики . Хотя все непротиворечивые эвристики допустимы, не все допустимые эвристики непротиворечивы.
Допустимая эвристика используется для оценки стоимости достижения целевого состояния в алгоритме информированного поиска . Чтобы эвристика была приемлемой для задачи поиска, предполагаемая стоимость всегда должна быть ниже или равна фактической стоимости достижения целевого состояния. Алгоритм поиска использует допустимую эвристику для нахождения предполагаемого оптимального пути к целевому состоянию от текущего узла. Например, в поиске A* функция оценки (где находится текущий узел):
где
рассчитывается с помощью эвристической функции. При недопустимой эвристике алгоритм A* может пропустить оптимальное решение задачи поиска из-за завышения .
Допустимая эвристика может быть получена на основе смягченной версии задачи или на основе информации из баз данных шаблонов, в которых хранятся точные решения подзадач задачи, или с использованием методов индуктивного обучения .
К задаче « Пятнадцать головоломок» применимы два разных примера допустимых эвристик :
Расстояние Хэмминга — это общее количество неправильно размещенных плиток. Ясно, что эта эвристика допустима, поскольку общее количество ходов для правильного упорядочивания плиток не меньше количества неправильно расположенных плиток (каждую не стоящую на месте плитку необходимо переместить хотя бы один раз). Стоимость (количество ходов) достижения цели (упорядоченной головоломки) равна как минимум расстоянию Хэмминга головоломки.
Манхэттенское расстояние головоломки определяется как:
Рассмотрим головоломку ниже, в которой игрок хочет переместить каждую плитку так, чтобы числа были упорядочены. Манхэттенское расстояние в данном случае является допустимой эвристикой, потому что каждую плитку придется переместить как минимум на количество мест между ней и ее правильным положением. [2]
Нижние индексы показывают расстояние Манхэттена для каждой плитки. Общее расстояние Манхэттена для показанной головоломки составляет:
Если допустимая эвристика используется в алгоритме, который на итерации продвигается только по пути с наименьшей оценкой (текущая стоимость + эвристика) из нескольких путей-кандидатов, завершается в тот момент, когда его исследование достигает цели, и, что особенно важно, никогда не закрывает все оптимальные пути раньше завершение (что возможно с алгоритмом поиска A*, если не принять особых мер [3] ), то этот алгоритм может завершиться только на оптимальном пути. Чтобы понять почему, рассмотрим следующее доказательство от противного :
Предположим, что такому алгоритму удалось завершиться на пути T с истинной стоимостью T true, большей, чем оптимальный путь S с истинной стоимостью S true . Это означает, что перед завершением оценочная стоимость T была меньше или равна оценочной стоимости S (в противном случае S был бы выбран). Обозначим эти оцененные затраты T eval и S eval соответственно. Вышеизложенное можно резюмировать следующим образом:
Если наша эвристика допустима, из этого следует, что на этом предпоследнем шаге T eval = T истинно , поскольку любое увеличение истинной стоимости за счет эвристики на T было бы недопустимым, и эвристика не может быть отрицательной. С другой стороны, допустимая эвристика потребует, чтобы S eval ≤ S true , что в сочетании с приведенными выше неравенствами дает нам T eval < T true и, более конкретно, T eval ≠ T true . Поскольку T eval и T true не могут быть одновременно равными и неравными, наше предположение должно быть ложным, и поэтому должно быть невозможно завершить процесс на более затратном, чем оптимальный, пути.
В качестве примера [4] предположим, что у нас есть следующие затраты: (стоимость выше/ниже узла — это эвристика, стоимость на краю — это фактическая стоимость)
0 10 0 100 0СТАРТ ---- O ----- ЦЕЛЬ | |0| |100 | | О ------- О ------ О100 1 100 1 100
Итак, очевидно, что мы начнем с посещения верхнего среднего узла, поскольку ожидаемая общая стоимость, т. е. равна . Тогда целью будет кандидат с равным . Тогда мы явно выбрали бы нижние узлы один за другим, а затем обновленную цель, поскольку все они имеют значение ниже текущей цели, т. е. их значение равно . Таким образом, даже несмотря на то, что цель была кандидатом, мы не могли выбрать ее, потому что существовали пути получше. Таким образом, допустимая эвристика может обеспечить оптимальность.
Однако заметим, что хотя допустимая эвристика и может гарантировать окончательную оптимальность, она не обязательно эффективна.