Prolog
Шрифт:
если условие А то заключение В с уверенностью F
Рис. 14.2, 14.3 и 14.4 дают представление о разнообразии способов, которыми знания могут быть выражены при помощи "если-то"-правил. На этих рисунках приведены примеры правил из трех различных систем, основанных на знаниях: медицинской консультативной системы MYCIN, системы AL/X для диагностики неисправностей в оборудовании и системы AL3 для решения шахматных задач.
Вообще говоря, если вы хотите разработать серьезную экспертную систему для
Правила, содержащиеся в базе знаний, имеют вид
ИмяПравила : если Условие то Заключение
где Заключение– это простое утверждение, а
если
давление в v-01 достигло уровня открытия
выпускного клапана
то
выпускной клапан в v-01 открылся
[N=0.005, S=400]
если
давление в v-01 не достигло уровня открытия
выпускного клапана и выпускной клапан в v-01
открылся
то
преждевременное открытие выпускного клапана
(сместилась установка порогового давления)
[N=0.001, S=2000]
Рис. 14. 3. Два правила из демонстрационной базы знаний системы
AL/X для диагностики неисправностей (Reiter 1980). N и S -
величины "необходимости" и "достаточности", детально описанные
в разд. 14.7. Величина S указывает степень, с которой условие
влечет за собой заключение (вывод). Величина N указывает, до
какой степени истинность условия необходима для того, чтобы
заключение было истинным.
если
1
успеху, и
2 существуют две гипотезы
H1, что план Р1 опровергает план Р, и
Н2, что план Р2 опровергает план Р, и
3 имеют место факты: гипотеза H1 ложна и
гипотеза Н2 ложна
то
1 породить гипотезу Н3, что составной план "Р1
или Р2" опровергает план Р, и
2 породить факт: из Н3 следует не( Н)
Рис. 14. 4. Правило уточнения плана из системы AL3
для решения шахматных задач (Bratko 1982).
Условие– это набор простых утверждений, соединенных между собой операторами и и или. Мы также разрешим в части условия использовать оператор не, хотя и с некоторыми оговорками. При надлежащем прологовском определении этих операторов (как это сделано на рис. 14.5) правила станут синтаксически верными предложениями Пролога. Заметим, что оператор и связывает операнды сильнее, чем или, что соответствует обычным соглашениям.
% Небольшая база знаний для идентификации животных
:- ор( 100, xfx, [имеет, 'кормит детенышей',
'не может', ест, откладывает, это]).
:- ор( 100, xf, [плавает, летает, хорошо]).
прав1: если
Животное имеет шерсть
или
Животное 'кормит детенышей' молоком
то
Животное это млекопитающее.
прав2: если
Животное имеет перья
или
Животное летает и
Животное откладывает яйца