Вообще говоря, если вы хотите разработать серьезную экспертную систему для некоторой выбранной вами предметной области, вы должны провести консультации с экспертами в этой области и многое узнать о ней сами. Достигнуть определенного понимания предметной области после общения с экспертами и чтения литературы, а затем облечь это понимание в форму представления знаний в рамках выбранного формального языка - это искусство, называемое инженерией знаний. Как правило, это сложная задача, требующая больших усилий, чего мы не можем себе позволить в данной книге. Но какая-нибудь предметная область и какая-нибудь база данных нам необходимы в качестве материала для экспериментов. С практической точки зрения нам для этой цели вполне подойдет "игрушечная" база знаний. На рис. 14.5 показана часть такой базы знаний. Она состоит из простых правил, помогающих идентифицировать животных по их основным признаками в предположении, что задача идентификации ограничена только небольшим числом разных животных.

Правила, содержащиеся в базе знаний, имеют вид

        ИмяПравила  :   если  Условие  то  Заключение

где    Заключение    -     это простое утверждение, а

если

        давление в 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        существует гипотеза  H,  что план  Р   ведет к

              успеху, и

    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:        если

                        Животное имеет перья

                        или

                        Животное летает и

                        Животное откладывает яйца

                   то

                        Животное это птица.

прав3:        если

                        Животное это млекопитающее и

                        ( Животное ест мясо

                        или

                        Животное имеет 'острые зубы' и

                        Животное имеет когти и

                        Животное имеет

                            'глаза, направленные вперед' )

                   то

                        Животное это хищник.

прав4:        если

                        Животное это хищник и

                        Животное имеет

                                'рыжевато-коричневый цвет' и

                        Животное имеет 'темные пятна'

                   то

                        Животное это гепард.

прав5:        если

                        Животное это хищник и

                        Животное имеет

                                'рыжевато-коричневый цвет' и

                        Животное имеет 'черные полосы'

                   то

                        Животное это тигр,

прав6:        если

                        Животное это птица и

                        Животное 'не может' летать и

                        Животное плавает

                   то

                        Животное это пингвин,

прав7:        если

                        Животное это птица и

                        Животное летает хорошо

                   то

                        Животное это альбатрос.

факт:  X это животное :-

Перейти на страницу:

Похожие книги