|
||||
|
Назад | Содержание| Вперёд Глава 12 ПОИСК С ПРЕДПОЧ...Назад | Содержание| Вперёд Глава 12 ПОИСК С ПРЕДПОЧТЕНИЕМ: ЭВРИСТИЧЕСКИЙПОИСК Поиск в графах при решении задач, как правило,невозможен без решения проблемы комбинаторнойсложности, возникающей из-за быстрого роста числа альтернатив. Эффективным средствомборьбы с этим служит эвристическийпоиск. Один из путей использованияэвристической информации о задаче - этополучение численных эвристическихоценок для вершин пространства состояний.Оценка вершины указывает нам, насколько даннаявершина перспективна с точки зрения достиженияцели. Идея состоит в том, чтобы всегда продолжатьпоиск, начиная с наиболее перспективной вершины,выбранной из всего множества кандидатов. Именнона этом принципе основана программа поиска спредпочтением, описанная в данной главе. 12. 1. Поиск с предпочтением Программу поиска с предпочтением можнополучить как результат усовершенствованияпрограммы поиска в ширину (рис. 11.13). Подобнопоиску в ширину, поиск с предпочтениемначинается со стартовой вершины и используетмножество путей-кандидатов. В то время, как поискв ширину всегда выбирает для продолжения самыйкороткий путь (т.е. переходит в вершинынаименьшей глубины), поиск с предпочтениемвносит в этот принцип следующееусовершенствование: для каждого кандидатавычисляется оценка и для продолжения выбираетсякандидат с наилучшей оценкой. Рис. 12. 5. Связь между g-оценкойвершины В и f- и g-оценками ее "детей" в пространстве состояний. Алгоритм поиска пути называют допустимым,если он всегда отыскивает оптимальное решение(т.е. путь минимальной стоимости) при условии, чтотакой путь существует. Наша реализация алгоритмапоиска, пользуясь механизмом возвратов, выдаетвсе существующие решения, поэтому, в нашемслучае, условием допустимости следует считатьоптимальность первого из найденных решений.Обозначим через h*(n) стоимостьоптимального пути из произвольной вершины n в целевую вершину. Верна следующая теорема одопустимости А*-алгоритма: А*-алгоритм,использующий эвристическую функцию h, является допустимым, если h( n) <= h*( n) для всех вершин n пространствасостояний. Этот результат имеет огромное практическоезначение. Даже если нам не известно точноезначение h*, нам достаточно найтикакую-либо нижнюю грань h* ииспользовать ее в качестве h вА*-алгоритме - оптимальность решения будетгарантирована. Существует тривиальная нижняя грань, а именно: h( n) = 0, для всех вершин n пространствасостояний. И при таком значении h допустимостьгарантирована. Однако такая оценка не имеетникакой эвристической силы и ничем не помогаетпоиску. А*-алгоритм при h=0 ведет себяаналогично поиску в ширину. Он, действительно,превращается в поиск в ширину, если, кроме того,положить с(n, n' )=1 для всех дуг (n,n') пространства состояний. Отсутствиеэвристической силы оценки приводит к большойкомбинаторной сложности алгоритма. Поэтомухотелось бы иметь такую оценку h, которая была бы нижней гранью h* (чтобы обеспечить допустимость) и, кроме того,была бы как можно ближе к h* (чтобыобеспечить эффективность). В идеальном случае,если бы нам была известна сама точная оценка h*, мы бы ее и использовали: А*-алгоритм,пользующийся h*, находитоптимальное решение сразу, без единого возврата. Упражнение 12. 1. Определите отношения после,цель и h для задачипоиска маршрута рис. 12.2. Посмотрите, как нашалгоритм поиска с предпочтением будет вести себяпри решении этой задачи. Назад | Содержание| Вперёд |
|
||
Главная | В избранное | Наш E-MAIL | Добавить материал | Нашёл ошибку | Наверх |
||||
|