Программирование на языке Пролог для искусственного интеллекта




Поиск в ширину


В противоположность поиску в глубину стратегия поиска в ширину предусматривает переход в первую очередь к вершинам, ближайший к стартовой вершине. В результате процесс поиска имеет тенденцию развиваться более в ширину, чем в глубину, что иллюстрирует рис. 11.9.

Поиск в ширину программируется не так легко, как поиск в глубину. Причина состоят в том, что

fig11_9.gif (1697 bytes)

Рис. 11. 9. Простое пространство состояний:  а  - стартовая вершина,

f  и  j  - целевые вершины. Применение стратегии поиска в ширину

дает следующий порядок прохода по вершинам: а, b, c, d, e, f. Более

короткое решение [a, c, f] найдено раньше, чем более длинное

[а, b, e, j]

нам приходится сохранять все множество альтернативных вершин-кандидатов, а не только одну вершину, как при поиске в глубину. Более того, если мы желаем получить при помощи процесса поиска решающий путь, то одного множества вершин недостаточно. Поэтому мы будем хранить не множество вершин-кандидатов, а множество путей-кандидатов. Таким образом, цель

        вширину( Пути, Решения)

истинна только тогда, когда существует путь из множества кандидатов Пути, который может быть продолжен вплоть до целевой вершины. Этот продолженный путь и есть Решение.




Содержание  Назад  Вперед