Простая схема учета неопределенности
В приведенном выше описании применялось представление знаний, в котором подразумевалось, что проблемные области описаны с помощью категорических знаний; это означает, что ответами на любой вопрос является либо "истина", либо "ложь", а не что-то среднее между ними. Правила, которые определены как данные (или факты), также являются категорическими: они относятся к типу "категорических импликаций". Но многие экспертные области не могут быть созданы лишь на основе категорических знаний. Обычно эксперт в своей работе опирается на множество предположений (хотя и четко сформулированных), которые чаще всего являются истинными, но могут быть и исключения. Кроме того, не полностью определенными могут быть и данные о конкретной задаче, и общие правила. Для моделирования неопределенности принимаемым предположениям могут присваиваться некоторые оценки, отличные от "истина" или "ложь". Такие оценки могут быть выражены с помощью дескрипторов, таких как истинно, весьма вероятно, вероятно, невероятно, невозможно. Еще один способ состоит в том, что степень доверия может быть выражена с помощью действительного числа из некоторого интервала, например от 0 до 1 или от -5 до +5. Такие числа известны под многими названиями, такими как коэффициент достоверности, мера доверия или субъективная вероятность. Наиболее обоснованный вариант состоит в использовании вероятностей, поскольку такие оценки опираются на солидный математический фундамент. Но для правильного формирования рассуждений с учетом вероятностей (по правилам исчисления вероятностей) обычно требуется гораздо больше усилий, чем при логическом выводе с помощью более простых, произвольных схем учета неопределенности.
Глава 15.Представление знаний иэкспертные системы
Применение вероятностей в связи с использованием байесовских сетей доверия рассматривается в следующем разделе. А в данном разделе описанное выше представление на основе правил дополняется более простой схемой учета неопределенности, в которой вероятности аппроксимируются лишь очень приближенно. Каждому высказыванию (Proposition) присваивается число от 0 до 1, которое служит оценкой его достоверности (CertaintyFactor). В настоящем разделе для представления такой пары применяется следующая форма: Proposition: cartaint уractor
Такая система обозначений применяется и к правилам. Поэтому приведенная ниже форма определяет и правило, и степень уверенности в том, что это правило является действительным. if Condition then Conclusion :Certainty.
При любом представлении данных с учетом неопределенности необходимо предусмотреть способ комбинирования достоверностей высказываний и правил. Например, предположим, что имеются два высказывания, Р1 и Р2, которые имеют достоверности С1 и С2. Какова достоверность логических комбинаций ?l and P2, Pi or P2? Ниже показана простая схема комбинирования достоверностей. Предположим, что Р1 и Р2 — высказывания, а с(Р1) и с(Р2) обозначают их достоверность. В таком случае имеет место следующее:
с(Р1 and Р2) - iuin(c(Pi), c(P2)) с(Р1 or Р2> = max(clPl), c<P2)>
А если имеется правило
if Pithen P2:C
то применяется следующее выражение:
с[Р2) -с(Р1] - С
Для простоты предполагается, что в одном и том же утверждении никогда не используется больше одного правила. А если в некотором утверждении в базе знаний имеются два правила, их можно преобразовать с помощью оператора or в эквивалентные правила, которые соответствуют данному утверждению, В листинге 15.7 приведен интерпретатор правил для рассматриваемой схемы учета неопределенности. В этой программе интерпретатора предполагается, что пользователь задает оценки достоверности для фактов (крайних левых узлов в сети правил) с помощью следующего отношения: given: Proposition, Certainty)
Теперь мы можем "смягчить" (сделать не столь категоричными) некоторые правила в базе знаний (см. рис. 15.2), например, как показано ниже. if
hall wetand bathroom drythen
problem_in_kitchen: 0.9.
Ситуация, в которой в гостиной вода, в ванной сухо, в кухне не сухо, окно не закрыто, и дождя, по-видимому, не было, но в этом нет полной уверенности, может быть представлена следующим образом:
given[ hall wet,1). % В гостиной вола
given( bath7oom_dry, 1]. < 3 ванной сухо
given( kitchen_dry, 0} . % В кухне не сухо
given( no_rain, 0.S). % Вероятно, дождя не было, но полной уверенности нет
given( window_closed, 0) . % Окно не закрыто
Листинг 15.7. Интерпретатор правил с оценками достоверности % Интерпретатор правил с учетом неопределенности
% certainty! Proposition, Certainty)
Часть II. Применение языка Prolog в области искусственного интеллекта
certainty< Pr Cert) : -given( P, Cert).
certainty [ Condi and Cond2, Cert) certainty С Condi, Certl) , certainty; Cond2f Cert2) , mini, Certl, Cert2, Cert).
certainty; Condi or Cond2, Cert) certainty! Condi, Ceftl), certainty! Cond2, Cert2), max( Certl, Cert2, Cert).
certainty ( P, Cert) :-
if Cond then p : el,
certainty ( Condp C2) ,
Cert is Cl * C2 .
Теперь можно задать системе вопрос об утечке в кухне следующим образом:
?- certainty (leak in kitchen, С). С - 0.8
Этот вывод получен следующим образом. Тот факт, что в гостиной вода и в ван
ной сухо, указывает на неисправность в кухне с достоверностью 0,9. Поскольку не
исключена возможность, что был дождь, достоверность факта
no_water_from_outside (вода не поступала снаружи) равна 0,8. Наконец, достоверность факта leak_iri_kit chert (утечка в кухне) равна минимальному из этих двух значений: min(0.B,0.9) = 0.8