Применение продукционных правил
При этом подходе данные в рабочей памяти представляются в виде изолированных троек: “объект – атрибут – значение”. С каждой тройкой связан коэффициент определенности. Иерархия объектов задается с помощью дерева контекстов. Это дерево может рассматриваться как фрейм, который обеспечивает механизм наследования. В дереве контекстов каждому объекту приписаны соответствующие ему атрибуты. Впервые этот подход был использован в ЭС MYCIN.
Ниже приведен способ представления продукционных правил в типичной экспертной системе.
< правило > ::= (ЕСЛИ < условие> ТО < действие > ИНАЧЕ <действие>)
< условие > ::= (И {< предложение >}*)
< предложение > ::=(ИЛИ {< предложения >}*) | (< предикат> <тройка >)
< тройка > ::= (< объект > < атрибут > < значение >)
< действие > ::= {< заключение >} * | < процедура >
< заключение > ::= (< тройка > < коэффициент определенности >)
Здесь при истинности условия выполняется действие, стоящее за указателем ТО, а при ложности – действие, стоящее за указателем ИНАЧЕ. Сущности, помеченные звездочкой, могут появиться в правиле один или более раз. Например, условие есть конъюнкция одного или более предложений, а предложение есть либо дизъюнкция одного или более предложений, либо предикат, примененный к тройке: “объект – атрибут – значение”.
Использование семантических сетей
При этом подходе (например, ЭС PROSPECTOR) данные в рабочей памяти и БЗ представлены не в виде изолированных троек: “объект – атрибут – значение”, а в виде семантической сети. Отметим, что семантическая сеть может рассматриваться как обобщение представления в виде троек, допускающее представление любого парного отношения над произвольным числом объектов.
|
|
Один из возможных способов представления правил в семантической сети:
< правило >::= (ЕСЛИ < условие> ТО < мера И > <мера Л> < действие>)
< условие >::= < утверждение >
<утверждение>::=<логическое утверждение> | <описательное утверждение>
<логическое утверждение>::=(И{< утверждение >}*) | (ИЛИ {< утверждение >}*) | (НЕТ < утверждение >)
< действие>::= < описательное утверждение >
Правила связывают условие и действие, являющиеся утверждениями о проблемной области. Утверждения могут быть истинными и ложными, логическими и описательными. Логическое утверждение – это булевская комбинация других утверждений. Действие и терминальная компонента логического утверждения всегда являются описательными утверждениями, которые в общем случае представляют собой фрагмент семантической сети.
Для учета неопределенности во многих ЭС вводится коэффициент определенности утверждений. Коэффициент определенности логического утверждения вычисляется по правилам логики размытых множеств. Коэффициент определенности описательных утверждений либо указывается пользователем (для исходных данных), либо (для выведенных утверждений) вычисляется по правилу Байеса. В случае неопределенности каждое правило содержит две меры, используемые для модификации коэффициента определенности утверждения, выведенного этим правилом. Первая мера используется в случае, если условие определено как истинное, а вторая – если условие ложно.
|
|
Условие оценивается как истинное, если его коэффициент определенности лежит в диапазоне от 0 до +1. При изменении коэффициента определенности некоторого условия применяется правило, и на основе процедуры Байеса подсчитывается коэффициент определенности действия (описательного утверждения) соответствующего правила.
Использование фреймов
При этом подходе (например, ЭС RLL) в виде фреймов обычно представляются все виды данных и знаний, более сложных, чем список значений объекты, правила, слоты фреймов, механизмы выводов и т.п. Фреймы организуются в сеть.
|
|
Рассмотрим пример представления правила в виде фрейма:
Представление правила в виде фрейма имеет следующие отличия:
1) наличие не одного, а нескольких условий и действий для разных уровней анализа правила;
2) наличие большого количества описательных (невыполняемых) слотов, которые могут быть использованы метаправилами для управления. Необходимо обратить внимание на то, что информация о правиле хранится в нескольких слотах. Это позволяет использовать различные интерпретаторы правил в зависимости от целей разработчика. Например, один дешевый интерпретатор, предназначенный для быстрой обработки, может на основе анализа слота “ЕСЛИ потенциально релевантен” определять число подходящих правил, а затем принимать решение в зависимости от полученного результата. Второй, более традиционный интерпретатор оценивает все слоты “ЕСЛИ” всех правил и затем, если число подходящих правил больше одного, будет разрешать конфликт, выбирая единственное правило. Третий интерпретатор, оценив сначала, сколько времени имеется на решение задачи, может устранить из рассмотрения все правила, имеющие высокое значение слота “Среднее время выполнения”, проанализировать далее слоты “Если потенциально релевантен” и, если правил все еще много, устранить те из них, которые определяют новые фреймы, а для оставшихся правил оценить все слоты “ЕСЛИ” и выбрать единственное правило.
Дата добавления: 2019-07-15; просмотров: 138; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!