
- •Определение класса эс
- •Виды баз знаний
- •Прямой и обратный порядок вывода в эс
- •Запись данных в пространстве состояний в виде графа
- •Метод равных цен при поиске на графе
- •Использование эвристической информации (оценочные функции)
- •Обсуждение эвристической информации
- •4.6. Использование оценочных функций
- •Эвристики. Ограничение числа дочерних вершин
- •Эвристики. Поочередное построение дочерних вершин
- •Документальные информационные системы
- •Проблемы представления естественного языка в дипс
Запись данных в пространстве состояний в виде графа
Представление задач в пространстве состояний
Чтобы построить корректное описание задач, очень важен выбор некоторой формы описания состояний, для этого могут быть использованы строки символов, векторы, двумерные массивы, деревья состояний и списки. Часто запись задач выполняется в форме, которая имеет некоторое сходство с физическим свойством решаемой задачи. Для описания пространства состояний для поиска решений задач, иногда вводят понятие оператор (преобразует состояние от начального к целевому, тем самым находя решение (некое подобие подпрограммы)).
Запись состояний в виде графов
Граф состоит из конечного множества вершин, соединенных с помощью дуг. Если эти дуги направлены от одной вершины к другой, то такие графы называются направленными. Если дуга от вершины Ni к вершине ni, то считается, что ni является дочерней вершиной Ni, а Ni является родительской вершиной.
Если дуга между вершинами имеет двустороннее направление, то вершины являются дочерними друг к другу. Переход i называется ребром графа.
В случае, когда граф используется для записи состояний, то его вершины записывают состояние, ребра – операторы. Оператор (правило) – это совокупность условий действий для перехода из одного состояния в другое.
Последовательность вершин С1-Сn называется путем длины n. Если в общем графе такой путь существует, то С1 – предок, а Сn – потомок.
Граф состоит из множества (не обязательно конечного) вершин. Некоторые пары вершин соединены с помощью дуг, и эти дуги направлены от одного члена этой пары к другому. Такие графы носят название направленных графов. Если некоторая дуга направлена от вершины ni к вершине nj, то говорят, что вершина nj является дочерней для вершины ni, а вершина ni является родительской вершиной для nj. Может оказаться, что наши две вершины будут дочерними друг для друга; в этом случае пара направленных дуг называется иногда ребром графа. В случае, когда граф используется для представления пространства состояний, с его вершинами связывают описание состояний, а с его дугами- операторы.
Последовательность вершин ni1,ni2,...,nik., в которой каждая вершина nij дочерняя для ni,j-1, j=2,k, называется путем длины k от вершины ni1, к вершине nik. Если существует путь, ведущий от вершины ni к вершине nj, то вершину nj называют достижимой из вершины ni или потомком вершины ni . В этом случае вершина ni называется также предком для вершины nj. Видно, что проблема нахождения последовательности операторов, преобразующих одно состояние в другое, эквивалентна задаче поиска пути на графе
Полный перебор при поиске на графе
Процессы поиска на графе
Пусть исходное состояние мы заносим в начальную вершину графа. Пусть существуют некоторые операторы, которые строят все последующие вершины с указанием связей до целевой вершины. Этот процесс называется раскрытие целевой вершины. Процесс, обратный этому, называется решающая последовательность.
полный перебор
В методе полного перебора вершины раскрываются в том порядке, в котором они строятся. Простой алгоритм полного перебора на дереве состоит из следующей последовательности шагов:
1) Поместить вершину в список, называемый ОТКРЫТ.
2) Если список ОТКРЫТ пуст, то на выход подается сигнал о неудаче поиска, в противном случае переходить к следующему шагу.
3) Взять первую вершину из списка ОТКРЫТ и перенести ее в
список ЗАКРЫТ; назовем эту вершину n.
4) Раскрыть вершину n, образовав все вершины, непосредственно следующие за n. Если непосредственно следующих вершин нет, то переходить сразу же к шагу (2). Поместить имеющиеся непосредственно следующие за n вершины в конец списка ОТКРЫТ и построить указатели, ведущие от них назад к вершине n.
5) Если какие-нибудь из этих непосредственно следующих за n вершин являются целевыми вершинами, то на выход выдать решение, получающееся просмотром вдоль указателей; в противном случае переходить к шагу (2).
В этом алгоритме предполагается, что начальная вершина не удовлетворяет поставленной цели, хотя нетрудно ввести этап проверки такой возможности. Блок- схема алгоритма показана на рис.6. Вершины и указатели, построенные в процессе перебора, образуют поддерево всего неявно определенного дерева пространства состояний. Мы будем называть такое поддерево деревом перебора.
В методе полного перебора непременно будет найден самый короткий путь к целевой вершине при условии, что такой путь вообще существует. (Если такого пути нет, то в указанном методе будет объявлено о неуспехе в случае конечных графов, а в случае бесконечных графов алгоритм никогда не кончит свою работу.)
Рисунок 6 – Блок-схема программы алгоритма полного перебора для дерева.