Читаем Prolog полностью

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


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

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

C++ Primer Plus
C++ Primer Plus

C++ Primer Plus is a carefully crafted, complete tutorial on one of the most significant and widely used programming languages today. An accessible and easy-to-use self-study guide, this book is appropriate for both serious students of programming as well as developers already proficient in other languages.The sixth edition of C++ Primer Plus has been updated and expanded to cover the latest developments in C++, including a detailed look at the new C++11 standard.Author and educator Stephen Prata has created an introduction to C++ that is instructive, clear, and insightful. Fundamental programming concepts are explained along with details of the C++ language. Many short, practical examples illustrate just one or two concepts at a time, encouraging readers to master new topics by immediately putting them to use.Review questions and programming exercises at the end of each chapter help readers zero in on the most critical information and digest the most difficult concepts.In C++ Primer Plus, you'll find depth, breadth, and a variety of teaching techniques and tools to enhance your learning:• A new detailed chapter on the changes and additional capabilities introduced in the C++11 standard• Complete, integrated discussion of both basic C language and additional C++ features• Clear guidance about when and why to use a feature• Hands-on learning with concise and simple examples that develop your understanding a concept or two at a time• Hundreds of practical sample programs• Review questions and programming exercises at the end of each chapter to test your understanding• Coverage of generic C++ gives you the greatest possible flexibility• Teaches the ISO standard, including discussions of templates, the Standard Template Library, the string class, exceptions, RTTI, and namespaces

Стивен Прата

Программирование, программы, базы данных
1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT