Назад | Содержание| Вперёд 11. 4. Замечания относительно поиска вграфах, оп...

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

11. 4.    Замечания относительно поиска вграфах, оптимальности к сложности

Сейчас уместно сделать ряд замечанийотносительно программ поиска, разработанных кнастоящему моменту: во-первых, о поиске в графах,во-вторых, об оптимальности полученных решений и,в-третьих, о сложности поиска.

Приведенные примеры могли создать ложноевпечатление, что наши программы поиска в ширинуспособны работать только в пространствахсостояний, являющихся деревьями, а не графамиобщего вида. На самом деле, тот факт, что в однойиз версий множество путей-кандидатовпредставлялось деревом, совсем не означает, что исамо пространство состояний должно было бытьдеревом. Когда поиск проводится в графе, граффактически разворачивается в дерево, причемнекоторые пути, возможно, дублируются в разныхчастях этого дерева (см. рис. 11.14).

Наши программы поиска в ширину порождаютрешающие пути один за другим в порядкеувеличения их

Рис. 11. 14.    (а)    Пространство состояний;  а -  стартовая вершина.

(b)     Дерево всех возможныхациклических путей, ведущих из  а,

порожденное программой поиска в ширину.

длин - самые короткие решения идут первыми. Этоявляется важным обстоятельством, если намнеобходима оптимальность (в отношении длинырешения). Стратегия поиска в ширину гарантируетполучение кратчайшего решения первым.Разумеется, это неверно для поиска в глубину.

Наши программы, однако, не учитывают стоимости,приписанные дугам в пространстве состояний. Есликритерием оптимальности является минимумстоимости решающего пути (а не его длина), то вэтом случае поиска в ширину недостаточно. Поиск спредпочтением из гл. 12 будет направлен наоптимизацию стоимости.

Еще одна типичная проблема, связаннаяс задачей поиска, - это проблема комбинаторнойсложности. Для нетривиальных предметныхобластей число альтернатив столь велико, чтопроблема сложности часто принимает критическийхарактер. Легко понять, почему это происходит:если каждая вершина имеет  b  преемников, точисло путей длины  l,  ведущих из стартовойвершины, равно  bl  ( в предположении,что циклов нет). Таким образом, вместе сувеличением длин путей наблюдается экспоненциальныйрост объема множествапутей-кандидатов, что приводит к ситуации,называемой комбинаторным взрывом.Стратегии поиска в глубину и ширину недостаточно"умны" для борьбы с такой степеньюкомбинаторной сложности: отсутствиеселективности приводит к тому, что все путирассматриваются как одинаково перспективные.

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

Резюме

Пространство состояний есть формализм для представления задач.

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

Оптимизационные задачи моделируются приписыванием каждой дуге пространства состояний некоторой стоимости.

Имеются две основных стратегии поиска в пространстве состояний - поиск в глубину и поиск в ширину.

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

Реализация поиска в ширину более сложна, поскольку требуется сохранять множество кандидатов. Это множество может быть с легкостью представлено списком списков, но более экономное представление - в виде дерева.

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

В случае обширных пространств состояний существует опасность комбинаторного взрыва. Обе стратегии плохо приспособлены для борьбы с этой трудностью. В таких случаях необходимо руководствоваться эвристиками.

В этой главе были введены следующие понятия:

        пространство состояний

        стартовая вершина, целевое условие,

        решающий путь

        стратегия поиска

        поиск в глубину, поиск в ширину

        эвристический поиск.

Литература

Поиск в глубину и поиск в ширину - базовыестратегии поиска, они описаны в любом учебнике поискусственному интеллекту, см., например, Nilsson (1971,1980) или Winston (1984). Р. Ковальский в своей книге Kowalski(1980) показывает, как можно использовать аппаратматематической логики для реализации этихпринципов.

Kowalski R. (1980). Logic for Problem Solving. North-Holland.

Nilsson N. J. (1971). Problem Solving Methods in Artificial Intelligence.McGraw-Hill.

Nilsson N. J. (1980). Principles of Artificial Intelligence. Tioga; alsoSpringer- Verlag, 1981.

Winston P. H. (1984). Artificial Intelligence (second edition).Addison-Wesley. [Имеется перевод первого издания:Уинстон П. Искусственный интеллект. - М.: Мир, 1980.]

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









Главная | В избранное | Наш E-MAIL | Добавить материал | Нашёл ошибку | Наверх