Модель предметной области выполнения буровых работ
Система MUD [Kahn and McDermott, 1984] предназначена для консультирования инженеров при проведении буровых работ на газонаполненных и текучих пластах. Основываясь на описании свойств пластов, система анализирует проблемы, возникающие при таком бурении, и предлагает способы их преодоления. Изменение свойств пластов, такое как внезапное увеличение вязкости в процессе бурения, может возникать вследствие самых различных факторов, например повышения температуры или давления или неправильной рецептуры смеси химических добавок.
Система MUD реализована с помощью языка описания порождающих правил OPS5 (предшественника CLIPS). Правила связывают изменения свойств пластов (абстрактные категории данных) с возможными причинами этих изменений (абстрактные категории решений). Ниже
приведено одно из таких правил в переводе на "человеческий" язык.
ЕСЛИ: (1) обнаружено уменьшение плотности пласта и
(2) обнаружено повышение вязкости, ТО: есть умеренные (7) основания предполагать, что имеется приток воды.
В формулировке таких правил числа в скобках — коэффициенты уверенности, которые при "сцеплении" правил комбинируются таким же способом, как и в системе MYCIN (подробнее об этом см. в главе 3). Таким образом, для того, чтобы определить достоверность предположения о проникновении воды, нужно принять во внимание все правила, которые "порождают" свидетельства за и против этой гипотезы. Мера доверия (или недоверия), связанная с каждым свидетельством, определяется способом, описанным в главе 9, а коэффициент уверенности в достоверности гипотезы является разностью между мерами доверия и недоверия.
Опыт, приобретенный Каном в процессе работы над этой системой, показал, что эксперты часто затрудняются сформулировать правила, приемлемые для подхода на основе эвристической классификации. Формат правила далеко не всегда соответствует способу мышления, привычному для экспертов, и способу обмена знаниями, принятыми в их среде. Определенные сложности вызывает и назначение коэффициентов уверенности в констатирующей части новых правил. При этом обычно приходится пересматривать сформулированные ранее правила и сравнивать имеющиеся в них значения коэффициентов. Очень часто эксперты используют коэффициенты уверенности для частичного упорядочения в отношении определенного "заключения. Бучанан и Шортлифф [Buchanan and Shortliffe, 1984, Chapter 7] также отмечали, что экспертам иногда для правильной формулировки правил нужно располагать довольно подробной информацией о режиме применения правил и распространении значений коэффициентов уверенности в процессе их "сцепления".
При проектировании программ эвристической классификации, таких как MUD или MYCIN, процесс уточнения правил является, по существу, шестиэтапным.
(1) Эксперт сообщает инженеру по знаниям, какие правила нужно добавить или изменить.
(2) Инженер по знаниям вносит изменения в базу знаний системы.
(3) Инженер по знаниям запускает на выполнение программу, вводит данные, которые ранее уже обрабатывались прежним набором правил, и проверяет таким образом полноту нового набора.
(4) Если при обработке новым набором правил ранее проверенных исходных данных возникают какие-либо проблемы, инженер по знаниям обсуждает способы их преодоления с экспертом и далее повторяется этап 1.
(5) Эксперт запускает систему и вводит новый вариант данных.
(6) Если при обработке нового варианта не возникает никаких проблем, можно считать очередной сеанс внесения изменений в правила завершенным. В противном случае повторяется вся процедура начиная с 1-го этапа.
Как было показано в главе 10, именно такой базовый алгоритм внесения изменений в базу знаний используется в системе MYCIN, а для повышения эффективности выполнения отдельных этапов применяются разнообразные инструментальные средства, в частности язык сокращенного описания правил из состава оболочки EMYCIN, библиотека тестовых наборов данных, средства выполнения тестовых примеров в пакетном режиме и т.п.
Кан и его коллеги пошли по другому пути [Kahn et al, 1985], [Kahn, 1988]. Они применили программу извлечения знаний MORE, которая использует для обновления базы знаний MUD как знания о предметной области, так и знания о стратегии решения проблем. Как и OPAL, программа MORE располагает моделью предметной области, в которой представлены основные отношения между базовыми концепциями. Эти знания используются для организации опроса экспертов, обнаружения ошибок при назначении коэффициентов доверия и для генерации правил, на основании которых выполняется эвристическая классификация.
В программе MORE модель предметной области состоит из следующих компонентов:
- симптомы, т.е.
явления, которые можно наблюдать в процессе проведения диагноза; появление
этих явлений и должна объяснить система;
- атрибуты, которые
являются средством детализации симптомов, например резкое возрастание или
снижение значения какого-либо параметра;
- события, которые являются
возможным следствием симптомов и таким образом могут рассматриваться в качестве
гипотез;
- фоновые условия,
позволяющие судить о большей или меньшей вероятности наличия связи между
обнаруженными симптомами и теми или иными гипотетическими причинами их появления;
- тестовые процедуры,
которые можно использовать для обнаружения наличия или отсутствия упомянутых
выше фоновых условий;
- условия выполнения
тестовых процедур, способные повлиять на точность результатов тестирования.
Загрязнение сланцами и приток воды — это гипотезы, объясняющие появление четырех симптомов: понижение давления внутри пласта, повышение доли твердых включений, повышение уровня содержания неэмульсионной воды и повышение вязкости. Все они являются свойствами вязких и жидких пластов, на которых может сказаться загрязнение теми или иными компонентами при выполнении буровых работ. Обратите внимание, что на этой схеме некоторые линии причинно-следственных связей параметризиро-ваны степенью влияния на симптом. ТСМ— это тест синевы метилена, который проверяет повышение количества твердых включений в вязких пластах, а используется масляная эмульсия — фоновое условие, которое может сказаться на связи между притоком воды и повышением уровня содержания неэмульсионной воды.
Рис. 12.1.
Фрагмент модели предметной области, которая используется в программе MORE
12.1.
Диагностические правила в М U D
;; ШАБЛОНЫ (deftamplate symptom
(field datum (type SYMBOL))
(field change (type SYMBOL))
(field degree (type SYMBOL) (default NIL))
)
(deftamplate hypothesis
(field object (type SYMBOL))
(field event (type SYMBOL))
(field status (type SYMBOL) (default NIL))
(deftemplate testing
(field name (type SYMBOL))
(field for (type SYMBOL))
(field status (type SYMBOL) (default NIL)) )
;; ФАКТЫ
(deffacts mud
a(symptom (datum viscosity) (change increase))
(symptom (datum density) (change decrease) (degree gradual))
(testing (name МВТ) (for low-SG-solids))
(testing (name oil-mud) (for unemulsified-water))
)
;; ПРАВИЛА
;; Правило обратного вывода, принимающее во внимание
;; вязкость (viscosity).
(defrule viscosity (symptom (datum viscosity) (change increase))
=>
(assert (hypothesis (object low-SG-water) (event increase))) (assert (hypothesis (object unemulsified-water) (event increase)))
)
;; Правила обратного вывода, принимающие во внимание ;; плотность (density). (defrule density :
(symptom (datum density) (change decrease) (degree gradual))
=>
(assert (hypothesis (object shale) (event contamination)))
)
(defrule density
(symptom (datum density) (change decrease) (degree rapid)) =>
(assert (hypothesis (object water) (event influx»)
)
;; Свидетельства в пользу загрязнения сланцами (shale contamination) (defrule shale ?effect <- (hypothesis (object low-SG-water) (event increase)
(status yes)) => (assert (hypothesis (object shale) (event contamination)
(status yes)))
(modify ?effect (status done)) )
;; Свидетельства в пользу притока воды (water influx)
(defrule water ?effect <- (hypothesis (object unemulsified-water)
(event increase) (status yes)) => (assert (hypothesis (object water) (event influx)
(status yes))) (modify ?effect (status done))
)
;; Поиск теста гипотезы (defrule peek-test
(hypothesis (object ?obj) (event ? change))
?operator <- (testing (name ?name) (for ?obj) (status NIL)) =>
(printout
t crlf
"Is there " ?obj " " ?change " according to the "
?name " test? "
;; "Существует " ?obj " " ?change " в соответствии с " , ;; " тестом " ?name " ? "
) ;; (modify ?operator (status (read)))
)
;; Применить результат теста к гипотезе. {defrule poke-test
?cause <- (hypothesis (object ?obj) (event ?change))
?operator <- (testing (name ?name) (for ?obj) (status yes))
=>
(modify ?cause (status yes)
(modify ?operator (status done))
)
; ; Вывести активную гипотезу. (defrule show-and-tell
(hypothesis (object ?obj) (event ?ev) (status yes))
=>
(printout
t crlf
?obj " " ?ev "is a possibility. " t crlf ;; ?obj " " ?ev " является вероятной. "
)