Как функционирует машина вывода
Машина вывода является интерпретатором правил, который использует факты базы знаний для решения проблем. На входе машина вывода получает цель консультации.
На каждом шаге вывода машина вывода строит (наращивает) контекст (трассу вывода) и пытается подобрать правило, применимое к этому контексту. Контекст - это математическая структура, соответствующая образцу (см. предыдущий параграф), которому дополнительно придана цель вывода. При этом цель вывода может также задаваться в виде образца-цели.
Изменение контекста реализуется либо вследствие применения правил вывода, либо путем ввода фактов, запрашиваемых у пользователя. Например, пусть цель консультации - установить физические кондиции пациента. В этом случае, задавая вопросы типа
"Каков возраст пациента?"
"Каков вес пациента?"
"Потребляет ли пациент жиры?" и т.д.
Система создает контекст, представляющий множество переменных и их значений, например:
Возраст = 35
Вес = 85
Потребление жиров = 50 и т.д.
С другой стороны, контекст может быть наращен и с помощью правил. Например, если есть следующее правило:
ЕСЛИ(ВЕС = X) & (ВОЗРАСТ < 40), ТО
(ИДЕАЛЬНЫЙ_РОСТ = 100 + X),
то контекст будет расширен путем вычисления и добавления факта
ИДЕАЛЬНЫЙ_РОСТ = 185
Простейший алгоритм, осуществляющий построение трассы вывода, заключается в следующем:
e) определить исходный контекст;
f) занести все переменные исходного контекста в очередь переменных логического вывода, а их значения (если заданы) - в список переменных;
g) просмотреть список переменных и найти ту переменную, имя которой стоит в начале очереди переменных логического вывода. Если переменная найдена, записать в указатель переменных условия, номер правила и число 1. Если переменная не найдена, перейти к шагу f;
h) присвоить значения непроинициализированным переменным условной части найденного правила (если такие есть). Имена переменных содержатся в списке переменных условия правила. Проверить все условия правила и в случае их истинности обратиться к части "ТО" правила;
i) присвоить значение переменной, входящей в часть "ТО" правила, и поместить ее в конец очереди переменных логического вывода;
j) удалить переменную, стоящую в начале очереди переменных логического вывода, если она больше не встречается в условной части какого-либо правила;
k) закончить процесс рассуждений, как только опустеет очередь переменных, логического вывода. Если в очереди есть еще переменные, вернуться к шагу 3.
На машину вывода возлагаются следующие основные задачи:
1. Построение трассы вывода.
2. Интерпретация правил вывода и их применение к текущему контексту.
3. Повышение эффективности поиска.
Формальное понятие трассы вывода дается ниже. Задача построения трассы вывода заключается в отображении в памяти ЭВМ последовательности шагов вывода, применяемых правил и получаемых значений переменных. Множество значений переменных, известных на данном шаге вывода образует контекст. Цель построения трассы - возможность ее переопределения с некоторого ранее порожденного контекста. Создание текущего контекста связано с выбором правила вывода из множества альтернативных правил - вторая задача. От такого выбора в конечном итоге зависит эффективность системы (быстродействие ЭС), поэтому необходимы меры по обеспечению достаточной эффективности машины вывода.
Существует два базовых подхода к построению трассы вывода. Первый основан на логике решения в направлении "от того, что известно - к тому, что надо найти"; второй подход, наоборот, использует движение в обратном направлении: "от того, что надо найти - к тому, что известно" Первый подход характеризует системы с прямым выводом, второй - системы с обратным выводом. Обратный вывод применяется в тех случаях, когда цели известны и их сравнительно немного.
В системах диагностики чаще применяется прямой вывод, в то время как в планирующих системах более эффективен обратный. Кроме того, используется и комбинированный вывод, основанный на сочетании прямого и обратного поиска. Комбинированный вывод называется также циклическим.
Проблема организации трассы вывода напрямую связана с повышением эффективности поиска. Мы подробно исследуем эти вопросы в последующих разделах. Сейчас формализуем задачу организации трассы вывода. Для этого введем понятие дерева решения. Рассмотрим пятерку
<S0, SF, A, RA, RS>, (1.34)
где S0 - исходное состояние системы (объекта, модели);
SF - конечное (искомое) состояние системы (объекта, модели);
А - алгоритм отображения ;
RA - список ограничений на реализацию алгоритма А;
RS - список ограничений на SF (критерий).
Состояние исследуемой системы (объекта) Sj, непосредственно достигаемое из Sk , назовем преемником Sk, а состояние Sk - предшественником Sj. Граф Г(S, p) с множеством вершин состояний Sj Î S и дуг p, связывающих предшественников и преемников, образует дерево решения с корнем S1 и листом SF если:
1) m-й ярус в Г образуют те преемники (m - 1)-го яруса (m = 1,2,...), которые не входят в ярусы (m - 2), (m - 3) и т.д.;
2) листьями в Г являются состояния, все преемники которых содержатся в верхних ярусах (исключение, возможно, составляет SF).
Возможными вариантами постановки задачи относительно (1.34) являются (1.5) - (1.8).
Все эти задачи так или иначе упираются в проблему отыскания маршрута М в Г(S, p), связывающего S0 и SF. Некоторая (любая) законченная часть этого маршрута называется трассой вывода. Очевидно, что эффективность стратегии вывода определяется в первую очередь тем, насколько "близко" она держится М и, во-вторых, насколько велики затраты (памяти и процессорного времени) для реализации этой стратегии вывода. В качестве одной из оценок эффективности стратегии поиска определена оценка меры близости трассы вывода и М в виде
(1.35)
где L - длина найденного пути к цели (длина М),
Т - общее число вершин, пройденных при поиске цели в Г(S, p).
Очевидно, что детерминированная оптимальная стратегия обеспечивает максимальную меру близости Р, равную 1. Повышение эффективности поиска по-разному достигается в существующих системах вывода:
(1) использование эвристических функций оценки;
(2) использование приоритетов для правил;
(3) использование метаправил (правил для правил).
Эти вопросы будут обсуждены в третьей главе данного курса.
Дата добавления: 2016-03-05; просмотров: 1135;