Упражнения
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 программу либо самостоятельно, либо пригласите коллегу, которого считаете специалистом в соответствующей предметной области. Если не удастся найти никого, кто помог бы вам в этом деле, воспользуйтесь доступной технической литературой. Например, для ввода знаний о возможных неисправностях автомобиля вполне достаточно руководства, которое выдают к каждому автомобилю при покупке.
| Maya 3D графика в кино и телевидении Воздействие испытаний ядерного оружия на здоровье населения Объектно-ориентированный язык программирования Java Объектно-ориентированное программирование Delphi Библиотека визуальных компонентов VCL и ее базовые классы Кроссплатформенное программирование для Linux Элементы управления Win32 Элементы управления Windows XP Файлы и устройства ввода/вывода Что такое экспертная система? Объектно-ориентированное программирование Инструментальные средства разработки экспертных систем Программирование на языке CLIPS Критерии и количественные характеристики надежности Расчет характеристик надежности невостанавливаемых резервированных изделий Расчет надежности системы с постоянным резервированием Интегрирование тригонометрических функций ; |