Упражнения
1. Что понимается под прототипом в системе CENTAUR? Какие функции возлагаются на прототипы?
2. В чем преимущества смешанного способа представления знаний в системе CENTAUR?
3. Что представляет собой модель заболевания в системе INTERNIST? Объясните смысл концепции доминантности применительно к модели заболеваний в системе INTERNIST.
4. Какие проблемы обнаружились при работе над системой INTERNIST и как они соотносятся с проведенным Кленси анализом различных видов знаний?
5. Выполнение этого упражнения потребует некоторых познаний в медицине — знаний о физическом смысле некоторых параметров, измеряемых при лабораторных анализах органов дыхания. (Лично я узнал о них от д-ра Джереми Уатта (Jeremy Wyatt) и д-ра Патриции Твидейл (Patricia Tweedale). Любые фактические ошибки в приведенном ниже описании прошу отнести на мой счет, но думаю, они не повлияют на смысл самого упражнения.)
При диагностике легочных заболеваний используются следующие параметры, измеряемые при лабораторном обследовании пациентов.
- Index0.htm FEV1 (Forced Expiratory Volume). Объем форсированного выдоха за 1 секунду, измеренный в литрах. Измеряется количество воздуха, выдыхаемого пациентом в течение 1 секунды. Этот параметр является показателем эластичности легочных тканей (а следовательно, и их здоровья).
- Index0.htm IFV1. Показатель изменения FEV1 после курса лечения с применением бронхолитиков.
- Index0.htm FVC (Forced Vital Capacity). Жизненная емкость легких - объем вдыхаемого воздуха при максимальном наполнении легких.
- Index0.htm IFVC. Показатель изменения FVC после курса лечения с применением бронхолитиков.
- Index0.htm TLC (Total Lung Capacity). Общая емкость легких.
- Index0.htm RV (Residual Volume). Остаточный объем легких - объем воздуха, который остается в легких после максимального выдоха.
- Index0.htm RATI01 = FEV1/FVC.
- Index0.htm RATI02 = FEV1/FVC после курса лечения с применением бронхолитиков.
80% < RATI01 < 100% (PRED-2SD)
Аббревиатура 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 программу либо самостоятельно, либо пригласите коллегу, которого считаете специалистом в соответствующей предметной области. Если не удастся найти никого, кто помог бы вам в этом деле, воспользуйтесь доступной технической литературой. Например, для ввода знаний о возможных неисправностях автомобиля вполне достаточно руководства, которое выдают к каждому автомобилю при покупке.