Назад | Содержание| Вперёд 14. 3. Правила типа"если-то" для представления з...

Назад | Содержание| Вперёд

14. 3.    Правила типа"если-то" для представления знаний

В качестве кандидата на использование вэкспертной системе можно рассматривать, впринципе, любой непротиворечивый формализм, врамках которого можно описывать знания о

некоторой проблемной области. Однакосамым популярным формальным языкомпредставления знаний

является

язык правил типа "если-то"

(иликратко: "если-то"-правил), называемых также

продукциями

. Каждое такое правилоесть, вообще говоря, некоторое условноеутверждение, но возможны и различные другиеинтерпретации. Вот примеры:

если  предварительное условие  Р то   заключение (вывод)  С

если  ситуация  S  то   действие  А

если  выполнены условия  С1  и  С2   то не выполнено условие  С

"Если-то"-правила обычно оказываютсявесьма естественным выразительным средствомпредставления знаний. Кроме того, они обладаютследующими привлекательными свойствами:

Модульность:   каждое правило описывает небольшой, относительно независимый фрагмент знаний.

Возможность инкрементного наращивания:    добавление новых правил в базу знаний происходит относительно независимо от других правил.

Удобство модификации (как следствие модульности):   старые правила можно изменять и заменять на новые относительно независимо от других правил.

Применение правил способствует прозрачности системы.

Последнее свойство - это важное,отличительное свойство экспертных систем. Под прозрачностью мы понимаем способностьсистемы к объяснению принятых решений иполученных результатов. Применение"если-то"-правил облегчает получениеответов на следующие основные типывопросов пользователя:

    (1)        Вопросытипа "как":   Как вы пришли к этому выводу?

    (2)        Вопросытипа "почему":   Почему васинтересует эта информация?

Механизмы, основанные на"если-то"-правилах, для формирования ответовна подобные вопросы мы обсудим позже.

если

    1        тип инфекции -это первичная бактериемия и

    2        материал дляпосева был отобран стерильно, и

    3        предполагаемые ворота инфекции - желудочно-кишечный тракт

то

            имеютсявеские аргументы  (0.7)  за то,

            чтоинфекционный агент является бактерией

Рис. 14. 2.  "Если-то"-правило медицинскойконсультативной системы

MYCIN (Shortliffe, 1976). Параметр  0.7  показываетстепень доверия

этому правилу.

"Если-то"-правила часто применяют дляопределения логических отношений междупонятиями предметной области. Прочисто логические отношения можно сказать, чтоони принадлежат к "категорическимзнаниям", "категорическим" - потому,что соответствующие утверждения всегда,абсолютно верны. Однако в некоторых предметных областях, таких, какмедицинская диагностика, преобладают"мягкие" или вероятностные знания.Эти знания являются "мягкими"; втом смысле, что говорить об их применимости клюбым практическим ситуациям можно только донекоторой степени ("часто, но не всегда"). Втаких случаях используют модифицированные"если-то"-правила, дополняя их логическуюинтерпретацию вероятностной оценкой. Например:

        если    условие    А    то    заключение    В    суверенностью    F

Рис.  14.2,  14.3  и  14.4  даютпредставление о разнообразии способов, которымизнания могут быть выражены при помощи"если-то"-правил. На этих рисунках приведеныпримеры правил из трех различных систем,основанных на знаниях: медицинскойконсультативной системы MYCIN, системы AL/X длядиагностики неисправностей в оборудовании исистемы AL3 для решения шахматных задач.

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

        принадлежит( X, [гепард,тигр, пингвин, альбатрос]).

можно_спросить( _ 'кормит детенышей'_,

        'Животное' 'кормитдетенышей' 'Чем').

можно_спросить( _ летает, 'Животное' летает).

можно_спросить( _ откладывает яйца,

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

можно_спросить( _ ест _, 'Животное' ест 'Что').

можно_спросить( _ имеет _,'Животное' имеет'Нечто').

можно_спросить( _ 'не может' _,

        'Животное' 'не может' 'Чтоделать').

можно_спросить( _ плавает, 'Животное'плавает).

можно_спросить( _ летает хорошо,

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

Рис. 14. 5.  Простая база знаний для идентификации животных.

Заимствовано из Winston (1984). Отношение "можно_спросить"

определяет вопросы, которые можно задавать пользователю.

Операторы  еслитои,   или  определены на рис. 14.10.

Рассмотрим еще одну небольшую базу знаний,которая может помочь локализовать неисправностив простой электрической схеме, состоящей изэлектрических приборов и предохранителей.Электрическая схема показана на рис. 14.6. Вот одноиз возможных правил:

        если

               лампа1 включена  и

               лампа1 не работает  и

               предохранитель1 заведомо цел

        то

               лампа1 заведомо неисправна.

Вот другой пример правила:

        если

               радиатор работает

        то

               предохранитель1 заведомо цел.

Эти два правила опираются на некоторые факты(относящиеся к нашей конкретной схеме), аименно что лампа1 соединена с предохранитель1и что лампа1 и радиатор имеют общийпредохранитель. Для другой схемы нам понадобитсяеще один набор правил. Поэтому было бы лучшесформулировать правила в более общем виде(используя прологовские переменные) так, чтобыони были применимы к любой схеме, а затем ужедополнять их информацией о конкретной схеме.Например, вот одно из полезных правил: еслиприбор включен, но не работает, а соответствующийпредохранитель цел, то прибор неисправен. На наш

Рис. 14. 6.  Соединениямежду предохранителями и приборами в

простой электрической схеме.

формальный язык это транслируется так:

правило_поломки:

                       если

                               Прибор включен и

                               не (Прибор работает) и

                               Прибор соединен с Предохранитель и

                               Предохранитель заведомо цел

                       то

                               Прибор заведомо неисправен.

База знаний такого рода показана на рис. 14. 7.

Упражнения

14. 1.    Рассмотрите"если-то"-правила рис. 14.2-14.4 и транслируйтеих в нашу систему обозначений для правил.Предложите расширение нотации, чтобы, принеобходимости, можно было работать с оценкамиуверенности.

% Небольшая база знаний для локализациинеисправностей в

% электрической схеме

% Если прибор включен, но не работает, ипредохранитель цел,

% то прибор неисправен.

        правило_поломки:

                                       если

                                               вкл( Прибор) и

                                               прибор( Прибор) и

                                               не работает( Прибор) и

                                               соед( Прибор, Предохр) и

                                               доказано( цел( Предохр) )

                                       то

                                               доказано( неиспр( Прибор) ).

% Если устройство работает, то егопредохранитель цел

        правило_цел_предохр:

                                       если

                                               соед( Прибор, Предохр)

                                               и работает( Прибор)

                                       то

                                               доказано( цел( Предохр) ).

% Если два различных прибора подключены кодному и тому же

% предохранителю, оба включены и не работают, топредохранитель

% сгорел.

% ЗАМЕЧАНИЕ: предполагается, что из двух приборовнеисправных -

% не более одного!

            правило_предохр:

                                       если

                                               соед( Прибор1, Предохр) и

                                               вкл( Прибор1) и

                                               не работает( Прибор1) и

                                               общ_предохр( Прибор2, Прибор1) и

                                               вкл( Прибор2) и

                                               не работает( Прибор2)

                                       то

                                               доказано( сгорел( Предохр) ).

       правило_общ_предохр:

                                       если

                                               соед( Прибор1, Предохр) и

                                               соед( Прибор2, Предохр) и

                                               различны( Прибор1, Прибор2)

                                       то

                                               общ_предохр( Прибор1, Прибор2).

        факт:  различны( X,Y) :- not (X=Y).

        факт:  прибор(радиатор).

        факт:  прибор( лампа1).

        факт:  прибор( лампа2).

        факт:  прибор( лампа3).

        факт:  прибор( лампа4).

        факт:  соед(лампа1, предохр1).

        факт:  соед( лампа2,предохр1).

        факт:  соед( радиатор,предохр1).

        факт:  соед( лампа3,предохр2).

        факт:  соед( лампа4,предохр2).

        можно_спросить( вкл(П), вкл( 'Прибор') ).

        можно_спросить(работает( П), работает(' Прибор')).

Рис. 14. 7.  База знанийдля локализации неисправностей

в схеме, показанной на рис. 14.6.

14. 2.    Придумайте какую-нибудьзадачу принятия решений и сформулируйтесоответствующие знания в форме"если-то"-правил. Можете рассмотреть,например, планирование отпуска, предсказаниепогоды, простой медицинский диагноз и лечение ит.п.

Назад | Содержание| Вперёд









Главная | В избранное | Наш E-MAIL | Добавить материал | Нашёл ошибку | Наверх