Упражнения
1. Что понимается
под прототипом в системе CENTAUR? Какие функции возлагаются на прототипы?
2. В чем преимущества
смешанного способа представления знаний в системе CENTAUR?
3. Что представляет
собой модель заболевания в системе INTERNIST? Объясните смысл концепции доминантности
применительно к модели заболеваний в системе INTERNIST.
4. Какие проблемы
обнаружились при работе над системой INTERNIST и как они соотносятся с проведенным
Кленси анализом различных видов знаний?
5. Выполнение
этого упражнения потребует некоторых познаний в медицине — знаний о физическом
смысле некоторых параметров, измеряемых при лабораторных анализах органов дыхания.
(Лично я узнал о них от д-ра Джереми Уатта (Jeremy Wyatt) и д-ра Патриции Твидейл
(Patricia Tweedale). Любые фактические ошибки в приведенном ниже описании прошу
отнести на мой счет, но думаю, они не повлияют на смысл самого упражнения.)
При диагностике
легочных заболеваний используются следующие параметры, измеряемые при лабораторном
обследовании пациентов.
Ниже в постановке
задачи переменная PRED означает ожидаемое значение любого из перечисленных выше
параметров. (Ожидаемое значение медицинского параметра зависит главным образом
от пола пациента.) Выражения вида
80%
< RATI01 < 100% (PRED-2SD)
означают,
что параметр RATI01 имеет значение между 80 и 100 процентами от ожидаемого значения,
уменьшенного на удвоенное стандартное отклонение в соответствующей популяции.
Аббревиатура
RTB означает Response To Bronchodilation (реакция на прием бронхолитиков).
I) Разработайте
структуру фреймов для каждого из следующих заболеваний дыхательных органов и
связанных с ними медицинских параметров. Организуйте иерархию фреймов и включите
ее в иерархию других аналогичных заболеваний, представленную на рис. 13.1.
AIRWAIS
OBSTRUCTION
существует,
если:
RATI01
< PRED-2SD отсутствует RTB, если:
RATI02
< PRED-2SD хороший показатель RTB, если:
RATI02
> PRED-2SD
SLIGHT
AIRWAIS OBSTRUCTION
существует,
если:
801
< RATI01 < 100% (PRED-2SD) отсутствует RTB, если:
IFV1
< FEV1/10
IFVC
< FVC/10 хороший показатель RTB, если:
FEV1
> (PRED-2SD)/4
FEV1/3
< IFEV1
MODERATE
AIRWAIS OBSTRUCTION
существует,
если:
55%
< RATI01 < 80% (PRED-2SD)
SEVERE
AIRWAIS OBSTRUCTION
существует,
если:
RATI01
<= 55% (PRED-2SD)
RESTRICTIVE
DEFECT
существует,
если: RV < PRED+2SD TLC <= 80% (PRED-2SD)
RATI01 > 80% (PRED-2SD)
EARLY RESTRICTIVE DEFECT существует,
если:
TLC < (PRED-2SD) RATI01 > (PRED-2SD)
MILD
RESTRICTIVE DEFECT
существует,
если:
RATI01
> (.PRED-2SD) 80% < TLC < 100% (PRED-2SD)
MODERATE
RESTRICTIVE DEFECT
существует,
если:
RATI01
> (PRED-2SD)
60%
< TLC < 80 (PRED-2SD)
SEVERE
RESTRICTIVE DEFECT существует, если:
RATI01
> (PRED-2SD) TLC < 60 (PRED-2SD)
Вам понадобятся
процедуры для накопления диагностических знаний, связанных с этими заболеваниями.
В каждом фрейме
нужно предусмотреть слоты для хранения ожидаемых среднестатистических значений
и стандартных отклонений. Так, слот PRED-RATI01 будет хранить ожидаемое значение
параметра RATI01, а слот SD-RATI01 — стандартное отклонение этого параметра.
Конечно, для этого упражнения можно подставить любые значения в эти слоты, поскольку
главное, что от вас требуется, — правильно организовать связи между слотами.
Например,
фрейм-объект SEVERE-RESTRICTIVE-DEFECT может включать метод (процедуру LISP)
PRESENT, который определен следующим образом:
SEVERE-RESTRICTIVE-DEFECT.PRESENT
(and(
> RATI01 (- PRED-RATI01 ( SD-RATI01 2)))
(<
TLC (/ ( 6 (- PRED-TLC (*SD-TLC 2))) 10)))
Эта процедура
возвращает значение Т, если соблюдаются специфицированные в ней условия.
II) Представьте
диагностические знания, связанные с этими фреймами, в виде порождающих правил,
а не в виде процедур. Как и в предыдущем случае, правила должны ссылаться на
значения слотов.
6. Разработайте
и реализуйте простую программу извлечения знаний, которая позволила бы пользователю
передать сведения о неисправностях в некотором устройстве и перечислить их возможные
причины. Например, если вас привлекает предметная область обслуживания автомобиля,
то программа должна принимать сведения о таких видах отказов (в терминологии
TDE), как "двигатель не заводится", уточнять причину отказа, например
"подается ли ток на электродвигатель стартера?", и связывать возможные
причины с каждым таким уточнением.
Естественно
ожидать, что отказ "двигатель не заводится" будет связан с такими
причинами, как "неисправна аккумуляторная батарея" и "неисправен
соленоид стартера", а узлы отказов вроде "неисправна аккумуляторная
батарея" должны требовать дальнейшего уточнения — "разряжена аккумуляторная
батарея" и "недостаточный уровень электролита в аккумуляторной батарее".
Программа должна сохранять всю полученную информацию в древовидной структуре,
которая была описана в разделе 13.4.
7. Протестируйте разработанную в упр. 6 программу либо самостоятельно, либо пригласите коллегу, которого считаете специалистом в соответствующей предметной области. Если не удастся найти никого, кто помог бы вам в этом деле, воспользуйтесь доступной технической литературой. Например, для ввода знаний о возможных неисправностях автомобиля вполне достаточно руководства, которое выдают к каждому автомобилю при покупке.