Продукционные модели используются для решения более сложных задач, которые основаны на применении эвристических методов представления знаний, позволяющих настраивать механизм вывода на особенности проблемной области и учитывать неопределенность знаний.
В продукционной модели основной единицей знаний служит правило в виде: "если <�посылка>, то <�заключение>", с помощью которого могут быть выражены пространственно-временные, причинно-следственные, функционально-поведенческие (ситуация - действие) отношения объектов. Правилами могут быть описаны и сами объекты: "объект - свойство" или "набор свойств - объект", хотя чаще описания объектов фигурируют только в качестве переменных ("атрибут - значение") внутри правил. В основном продукционная модель предназначена для описания последовательности различных ситуаций или действий и в меньшей степени для структурированного описания объектов.
Продукционная модель предполагает более гибкую организацию работы механизма вывода по сравнению с логической моделью. Так, в зависимости от направления вывода возможна как прямая аргументация, управляемая данными (от данных к цели), так и обратная, управляемая целями (от целей к данным). Прямой вывод используется в продукционных моделях при решении, например, задач интерпретации, когда по исходным данным нужно определить сущность некоторой ситуации или в задачах прогнозирования, когда из описания некоторой ситуации требуется вывести все следствия. Обратный вывод применяется, когда нужно проверить определенную гипотезу или небольшое множество гипотез на соответствие фактам, например, в задачах диагностики.
Отличительной особенностью продукционной модели является также способность осуществлять выбор правил из множества возможных на данный момент времени (из конфликтного набора) в зависимости от определенных критериев, например, важности, трудоемкости, достоверности получаемого результата и других характеристик проблемной области. Такая стратегия поиска решений называется поиском в ширину. Для ее реализации в описание продукций вводятся предусловия и постусловия в виде:
< A, B, C -> D, E >, где
- импликация С - > D представляет собственно правило;
- А - предусловие выбора класса правил;
- B - предусловие выбора правила в классе;
- Е - постусловие правила, определяющее переход на следующее правило.
В предусловиях и постусловиях могут быть заданы дополнительные процедуры, например, по вводу и контролю данных, математической обработке и т.д. Введение предусловий и постусловий позволяет выбирать наиболее рациональную стратегию работы механизма вывода, существенно сокращая перебор относящихся к решению правил.
Сами правила могут иметь как простой, так и обобщенный характер. Простые правила описывают продукции над единичными объектами, обобщенные правила определяются на классах объектов (аналогично правилам языка ПРОЛОГ).
Для обработки неопределенностей знаний продукционная модель использует, как правило, либо методы обработки условных вероятностей Байеса, либо методы нечеткой логики Заде.
Байесовский подход предполагает начальное априорное задание предполагаемых гипотез (значений достигаемых целей), которые последовательно уточняются с учетом вероятностей свидетельств в пользу или против гипотез, в результате чего формируются апостериорные вероятности:
P(H/E) = P(E/H)*P(H)/P(E) и
P(^H/E) = P(E/^ H)*P(^H)/P(E),
где Р(Н) - априорная вероятность гипотезы Н;
Р(^Н) = 1 - Р(Н) - априорная вероятность отрицания гипотезы Н;
Р(Е) - априорная вероятность свидетельства Е;
Р(Н/Е) - апостериорная (условная) вероятность гипотезы Н при условии, что имеет место свидетельство Е;
Р(^Н/Е) - апостериорная (условная) вероятность отрицания гипотезы Н при условии, что имеет место свидетельство Е;
Р(Е/Н) - вероятность свидетельства гипотезы Е при подтверждении гипотезы Н;
Р(Е/^Н) - вероятность свидетельства гипотезы Е при отрицании гипотезы Н.
Найдем отношения левых и правых частей представленных уравнений:
P(H/E) / P(^H/E) = (P(E/H) / P(E/^ H)) * (Р(H) / P(^H)) или
О(Н/Е) = Ls * О(Н) , где
- О(Н) - априорные шансы гипотезы Н, отражающие отношение числа позитивных проявлений гипотезы к числу негативных;
- О(Н/Е) - апостериорные шансы гипотезы Н при условии наличия свидетельства Е;
- Ls - фактор достаточности, отражающий степень воздействия на шансы гипотезы при наличии свидетельства Е.
Аналогично выводится зависимость:
О(Н/^Е) = Ln * О(Н) , где
- О(Н/Е) - апостериорные шансы гипотезы Н при условии отсутствия свидетельства Е;
- Ln - фактор необходимости, отражающий степень воздействия на шансы гипотезы при отсутствии свидетельства Е.
Шансы и вероятности связаны уравнениями:
О = Р / (1 - Р) и Р = О / (О + 1)
Отсюда апостериорная вероятность гипотезы рассчитывается через апостериорные шансы, которые в свою очередь получаются перемножением априорных шансов на факторы достаточности или необходимости всех относящихся к гипотезе свидетельств в зависимости от их подтверждения или отрицания со стороны пользователя. Свидетельства рассматриваются как независимые аргументы на дереве целей.
Рассмотрим использование байесовского подхода на примере оценки надежности поставщика. Фрагмент подмножества правил представляется следующим образом:
Если Задолженность = "есть" ,
То Финансовое_состояние = "удовл." Ls = 0.01, Ln = 10
Если Рентабельность = "есть" ,
То Финансовое_состояние = "удовл." Ls = 100, Ln = 0.001
Пусть оцениваемое предприятие является рентабельным и без задолженностей. Априорная вероятность удовлетворительного финансового состояния любого поставщика составляет 0.5. Тогда расчет апостериорных шансов и вероятности удовлетворительного финансового состояния осуществляется по формулам:
О(Н/Е1,Е2) = 1 * 10 * 100 = 1000;
Р(Н/Е1,Е2) = 1000 / 1001 = 0.99.
Для байесовского подхода к построению продукционной базы знаний характерна большая трудоемкость статистического оценивания априорных шансов и факторов достаточности и необходимости.
Подход на основе нечеткой логики. Более простым, но менее точным методом оценки достоверности используемых знаний является применение нечеткой логики, в которой вероятности заменяются на экспертные оценки определенности фактов и применения правил (факторы уверенности). Факторы уверенности могут рассматриваться и как весовые коэффициенты, отражающие степень важности аргументов в процессе вывода заключений. Итоговые факторы уверенности получаемых решений главным образом отражают порядок достоверности результата, а не его точность, что вполне приемлемо во многих задачах.
Факторы уверенности измеряются по некоторой относительной шкале, например, от 0 до 100. В отличие от теории вероятностей сумма факторов уверенностей некоторых альтернативных значений необязательно составляет 100. Множество возможных значений некоторой переменной с различными факторами уверенностей для каждого значения составляет нечеткое множество вида: { x1 cf1, x2 cf2, ... , xN cfN }, причем фактор уверенности в общем виде задается функцией принадлежности значений нечеткому множеству, например, как представлено на рис. 2.5. (Например, для рентабельности 6,7% получаем оценку в виде нечеткого множества {"неудовлетворительно" cf 66, "удовлетворительно" cf 33}).
Предполагается, что оценка факторов уверенностей исходных данных задается пользователем при описании конкретной ситуации, а факторы уверенности применения правил определяются инженерами знаний совместно с экспертами при наполнении базы знаний.
При объединении факторов уверенности конъюнктивно или дизъюнктивно связанных аргументов используются следующие формулы:
Конъюнкция (А и В) : min (cfA, cfB) или cfA*cfB/100 Дизъюнкция (А или В): max (cfA, cfB) или cfA + cfB - cfA*cfB/100Объединение факторов уверенности в посылках правил осуществляется чаще всего, как например, в программном средстве GURU, по формулам "min/max", а левых и правых частей правил и одинаковых результатов нескольких правил соответственно по формулам "произведение" и "сумма". Для объединения одинаковых результатов нескольких правил используется оператор "+=", который означает не присваивание значения, а добавление значения. Аналогично используется оператор "- =" для удаления значения. Факторы уверенности в последнем случае объединяются по формуле:
cfA*(100 - cfB)/100
Рассмотрим применение аппарата нечеткой логики на примере оценки надежности поставщика, в котором кроме фактора финансового состояния учитывается и фактор формы собственности. Пусть государственное предприятие не имеет задолженность с уверенностью 60 и предполагается, что его рентабельность удовлетворительна с уверенностью 80. Фрагмент множества правил имеет следующий вид:
Правило 1: Если Задолженность = "нет" и Рентабельность = "удовл."
То Финансовое_состояние = "удовл." cf 100
Правило 2: Если Финансовое_состояние = "удовл."
То Надежность += "есть" cf 90
Правило 3: Если Предприятие = "государств."
То Надежность+ = "есть" cf 50
Результат выполнения первого правила:
cf(посылки) = min(60,80) = 60,
cf(Фин_сост.="удовл.") = 60*100/100 = 60.
Результат выполнения второго правила: cf(Надежность="есть") = 60*90/100 = 54
Результат выполнения третьего правила: cf(Надежность="есть") = 54 + 50 - 54*50/100 = 67
Динамические модели. Моделирование рассуждений человека, как правило, не сводится только к прямой или обратной аргументации. Сложные проблемы решаются путем выдвижения во времени нескольких гипотез с анализом подтверждающих фактов и непротиворечивости следствий. Причем для многоцелевых проблемных областей происходит увязка гипотез по общим ограничениям. При этом возможны задержки в принятии решений, связанные со сбором подтверждающих фактов, доказательством подцелей, входящих в ограничения.
Следовательно, для подобных динамических проблем важна рациональная организация памяти системы для запоминания и обновления получаемых промежуточных результатов, обмен данными между различными источниками знаний для достижения нескольких целей, изменение стратегий вывода с выдвижения гипотез (прямая аргументация) к их проверке (обратная аргументация). Целям построения таких гибких механизмов вывода служит применение технологии "доски объявлений", через которую в результате осуществления событий источники знаний обмениваются сообщениями.
В целях динамического реагирования на события некоторые продукционные модели используют специальные правила-демоны, которые формулируются следующим образом:
"Всякий раз, как происходит некоторое событие, выполнить некоторое действие". Например:
Всякий раз, как становится известным значение переменной "Поставщик",
Выполнить набор правил "Финансовый анализ предприятия"
В программном средстве GURU подобное правило будет записано следующим образом:
IF: KNOWN("Поставщик") = true
THEN: CONSULT FIN_AN
Для динамических экспертных систем характерна также обработка времени как самостоятельного атрибута аргументации логического вывода:
Если в течение дня уровень запаса понизился больше, чем на 50 %
То выполнить набор правил "Выбор поставщика для поставки"
Общим недостатком всех формализмов представления знаний, основанных на правилах, является недостаточно глубокое отражение семантики проблемной области, что может сказываться на гибкости формулирования запросов пользователей к экспертным системам. Этот недостаток снимается в объектно-ориентированных методах представления знаний.