Рис. 12.4. Отношение расширить
: расширение дерева Дер
до тех пор, пока Предел
, приводит к дереву Дер1
.
Предложение, относящееся к случаю
Дер = л( В, F/G)
порождает всех преемников вершины В
вместе со стоимостями дуг, ведущих в них из В
. Процедура преемспис
формирует список поддеревьев, соответствующих вершинам-преемникам, а также вычисляет их Предел
. Если преемников нет, то переменной ЕстьРеш
придается значение "никогда" и в результате лист В
покидается навсегда.
Другие отношения:
после( В, В1, С) | В1 — преемник вершины В ; С — стоимость дуги, ведущей из В в В1 . |
h( В, H) | H — эвристическая оценка стоимости оптимального пути из вершины В в целевую вершину. |
макс_f( Fмакс) | Fмакс — некоторое значение, задаваемое пользователем, про которое известно, что оно больше любой возможной |
Рис. 12.5. Связь между
В следующих разделах мы покажем на примерах, как можно применить нашу программу поиска с предпочтением к конкретным задачам. А сейчас сделаем несколько заключительных замечаний общего характера относительно этой программы. Мы реализовали один из вариантов эвристического алгоритма, известного в литературе как А*-алгоритм (ссылки на литературу см. в конце главы). А*-алгоритм привлек внимание многих исследователей. Здесь мы приведем один важный результат, полученный в результате математического анализа А*-алгоритма:
Алгоритм поиска пути называют
для всех вершин
Этот результат имеет огромное практическое значение. Даже если нам не известно точное значение
Существует тривиальная нижняя грань, а именно:
И при таком значении
12.1. Определите отношения после
, цель
и h
для задачи поиска маршрута рис. 12.2. Посмотрите, как наш алгоритм поиска с предпочтением будет вести себя при решении этой задачи.
12.2. Поиск c предпочтением применительно к головоломке "игра в восемь"