Главная страница

дб. Четвертое издание джозеф Джарратано Университет Хьюстон клиэрЛэйк Гари Райли People5oft, Издательский дом "Вильямс" Москва СанктПетербург Киев 2007 ббк 32. 973. 26 018 75 Д


Скачать 3.73 Mb.
НазваниеЧетвертое издание джозеф Джарратано Университет Хьюстон клиэрЛэйк Гари Райли People5oft, Издательский дом "Вильямс" Москва СанктПетербург Киев 2007 ббк 32. 973. 26 018 75 Д
Дата19.05.2022
Размер3.73 Mb.
Формат файлаpdf
Имя файла[Dzharratano Dzhozef, Raili Gar - Nieizviestnyi.pdf
ТипДокументы
#538649
страница73 из 74
1   ...   66   67   68   69   70   71   72   73   74

(then пате is ?g-value)) — > (retract ?rule) (modify ?rule (if $?
rest-if))) (defrule MAIN::start-BC > (focus ВС)) Поэтапная трассировка работы программы обратного логического вывода
За тем, как действует машина обратного логического вывода на языке CLIPS, реализованная с помощью правил, можно наблюдать, отслеживания ее работу. Ниже показано начальное состояние системы после выполнения команды reset, при условии, что загружены конструкции def facts с именами wine- rules и initial — goal, а также правила машины обратного логического вывода С помощью правила goal-satisfied удаляются все цели, для которых было определено значение атрибута. С помощью правила rule — satisfied осуществляется поиск всех правил, в которых имеется единственное оставшееся условие. Если существует атрибут, который соответствует этому оставшемуся условию, и имеется цель определения значения этого атрибута, тов список фактов вносится значение атрибута из консеквента данного правила. С помощью правила remove- rule — no — match осуществляется поиск правил, антецеденты которых могут предоставить значение атрибута для атрибута goal и которые содержат одно или несколько таких условий, что первое из них конфликтует со значением, присвоенным атрибуту. Если обнаруживается такая ситуация,
соответствующее правило удаляется из списка фактов,
поскольку является неприменимым. С помощью правила modify
— rule — match осуществляется поиск правил, антецеденты которых могут предоставить значение атрибута для атрибута goal и которые содержат два или несколько таких условий, что первое из них выполняется при наличии некоторого значения,
присвоенного атрибуту. Если обнаруживается такое правило, то первое условие удаляется из этого правила, чтобы в нем присутствовали только оставшиеся условия, подлежащие проверке. Итак, теперь представлены все правила обратного логического вывода, и все, что требуется для запуска процесса обратного логического вывода, состоит в том, чтобы перевести
фокус на модуль BC. Это действие можно выполнить, добавив к модулю MAIN следующее правило. Обратный логический выводи в данном случае некоторые строки вывода обозначена отступами для удобства чтения. CLIPS> (unwatch all)J CLIPS> (reset)J CLIPS> (facts)J f
— 0 (initial-fact) f — 1 (goal (attribute best-color)) f — 2 (rule (if main-course is red-meat) (then best-color is red)) f — 3 (rule (if main-course is fish) (then best-color is white)) (rule (if main-course is poultry and meal-is-turkey is yes) (then best-color is red)) f — 5 (rule
(if main-course is poultry and meal — is — turkey is по) (then best- color is white)) For а total of б facts. CLIPS> (agenda)J 0 start-BC: f-
0 For а total of 1 activation. CLIPS> f — 4 Правило start — ВС
переводит фокус на модуль BC. После запуска этого правила текущий фокус перемещается на модуль BC следующим образом CLIPS> (run 1) 1 CLIPS> (agenda)J 0 attempt-rule: f-l,f-5,,
0 attempt-rule: f -1, f -4,, 0 attempt-rule: f-l,f-3,, 0 attempt-rule: f-l,f-2,,
For а total of 4 activations. CLIPS> Обратите внимание на то, что рабочий список правил содержит четыре активизации правила attempt — rule. Начальная цель состоит в определении значения атрибута best — color, о чем свидетельствует факт f — Значение атрибуту best — color присваивается в каждом из фактов f — 2, f — 3, f — 4 и f — 5, заданных консеквентами правил, поэтому необходимо попытаться проверить каждое из этих правил, чтобы определить значение атрибута best — color.
982 Глава 12. Примеры проектов экспертных систем
Следующим шагом входе выполнения программы становится запуск первой активизации правила attempt — rule. Но, как показано ниже, перед запуском этого правила активизируются отслеживаемые элементы rules и facts. CLIPS> (watch rules)J
CLIPS> (watch facts)J CLIPS> (run 1) J FIRE 1 attempt-rule f -1, f
-5,, > f — б (goal (attribute main-course)) CLIPS> (agenda) J 0 ask- attribute-value: б, For а total of 1 activation. CLIPS> Запуск
правила attempt — rule отчасти обусловлен наличием факта f —
5, который представляет показанное ниже правило обратного логического вывода. IF main-course is poultry and meal-is-turkey is по THEN best-color is white Возможность применить это правило для присваивания значения атрибуту best — color появится только после того, как будут выполнены условные элементы в антецедентах правила. Для проверки первого условия требуется иметь значение атрибута main-course. Поскольку значение этого атрибута неизвестно, создается цель для его определения,
которая представляется с помощью факта f — б. Правила,
присваивающие значение атрибуту main — course, отсутствуют,
поэтому активизируется правило ask — attribute — value. После перехода к дальнейшему выполнению запускается правило ask- attribute — value для определения значения атрибута main —
course: CLIPS> (run 1) J FIRE 1 ask-attribute-value: б, < б (goal
(attribute main-course)) What is the value of main-course? poultryJ >
f — 7 (attribute (name main-course) (value poultry)) CLIPS>
(agenda)J 100 по f-1, f-7, f-3 100 remove-rule- no-match: f-1, f-7, f-2 100 modify-rule-match: f-l,f-7,f-5 100 modify- rule-match: f-l,f-7,f-4 For а total of 4 activations. CLIPS>
12.4. Обратный логический вывод 983 Пользователю был передан запрос, чтобы он ввел значение атрибута main— и это значение было получено, поэтому цель f— - б получения данного атрибута уничтожается. Значение, введенное пользователем, вносится в список фактов в виде факта attribute с индексом f — 7. Вставка этого факта в список фактов приводит к тому, что в рабочий список правил помещаются четыре новые активизации. Для каждого из правил, представленных фактами f
— 4 ив качестве первого условия требуется, чтобы атрибут main — course имел значение poultry. Поскольку значением атрибута main — course является poultry, оба этих факта с определениями правил должны быть модифицированы с учетом того, что их первое условие было выполнено. Таким образом, оба факта приводят к двукратной активизации правила
modify — rule — match. А для обоих правил, представленных фактами f — 2 и f — 3, требуется, чтобы в качестве первого условия был задан атрибут main — course, имеющий некоторое значение, отличное от poultry. Поэтому больше ни один из этих фактов неприменим. Активизируется правило remove — rule по — match, что приводит к удалению обоих этих фактов. После того как будет разрешен запуск двух активизаций правила remove— rule — по — match, формируются следующие выходные результаты CLIPS> (run 2) 1 FIRE 1 по- match: f-l,f-7,f-3 < f-3 (rule (if main-course is fish) (then best-color is white)) FIRE 2 по f-1,f-7,f-2 < f — 2 (rule (if main-course is red-meat) (then best-color is red)) CLIPS> (agenda)J
100 modify-rule-match: f-l,f-7,f-5 100 modify-rule-match: f-l,f-7,f-4 For а total of 2 activations. CLIPS> Факты f — 2 и f — 3 удаляются из списка фактов это говорит о том, что правила, представленные этими фактами, больше неприменимы. После удаления указанных фактов из рабочего списка правил удаляются относящиеся к ним активизации правила attempt — rule. После перехода к выполнению двух активизаций правила modify — rule
— match формируется следующий вывод CLIPS> (run 2)

FIRE
1 modify-rule-match: f-1,f-7,f-5 < f-5 (rule (if main-course is poultry and meal-is — turkey is по)
Глава 12. Примеры проектов экспертных систем 984 (then best- color is white)) (rule (if meal-is-turkey is по) (then best-color is white)) 2 modify-rule-match: f-7,f-4 (rule (if main-course is poultry and meal-is-turkey is yes) (then best-color is red)) (rule (if meal-is- turkey is yes) (then best-color is red)) > f — 8 FIRE < — f-4 — > f —
9 CLIPS> (agenda)J 0 attempt-rule: f -1, f-9,, 0 attempt-rule: f-1, f-8,,
For а total of 2 activations. CLIPS> Первый запуск правила modify
— rule — match отчасти обусловлен наличием факта f — который представляет следующее правило обратного логического вывода IF main-course is poultry and meal-is-turkey is no THEN best-color is white Действия, предусмотренные в правиле modify — match-rule, модифицируют указанное правило
обратного логического вывода таким образом IF meal-is-turkey is по THEN best-color is white IF main-course is poultry and meal-is- turkey is red THEN best-color is red модифицируется и принимает вид следующего правила, для представления которого в список фактов вносится факт с индексом f — 9: Новый факт,
представляющий модифицированное правило, вносится в список фактов под индексом f-8. Этот новый факт представляет условия начального правила, которые остаются после выполнения первого условия, и вызывает еще одну активизацию правила attempt — rule применительно к данному правилу обратного логического вывода. В этой новой активизации в список фактов вносится новая цель для определения значения атрибута "meal-is — turkey", поэтому консеквент данного правила может применяться для присваивания значения атрибута best-color. Второй запуск правила modify — rule —
match осуществляется аналогично первому запуску. Факт,
представляющий правило обратного логического вывода. Обратный логический вывод 985 IF meal — is — turkey is yes THEN best-color is red Аналогичным образом, этот новый факт активизирует правило attempt— rule для замещения активизации, потерянной после извлечения факта, представляющего это правило. После того как будет разрешен запуск первой активизации правила attempt- rrule, формируется следующий вывода activation. CLIPS> В список фактов вносится факт с индексом f — 10, представляющий цель определения значения атрибута meal — is — turkey. Значение этого атрибута не присваивается нив одном из правил,
поэтому активизируется правило ask — at tri- bute — value для определения данного значения. После того как будет разрешен запуск правила ask — attribute-value, вырабатывается следующий вывод CLIPS> (run 1) 1 FIRE 1 ask-attribute-value: f-
10,, < f-10 (goal (attribute meal — is-turkey)) What is the value of
meal-is-turkey? QeSJ > f-11 (attribute (name meal-is-turkey) (value yes)) CLIPS> (agenda)J 100 rule-satisfied: f-l,f-11,f-9 100 remove- по f-l,f-11,f-8 For а total of 2 activations. CLIPS> В
результате запуска этого правила в список фактов вносится факт attribute, представляющий значение атрибута meal — is —
turkey. Кроме того, удаляется факт goal, предназначенный для определения значения этого атрибута. Появление в списке фактов нового факта attribute вызывает две активизации. Первая активизация относится к правилу по. Но первое условие факта f — 8 несовместимо со значением нового атрибута, и правило, представленное этим фактом, больше неприменимо, поэтому данный факт должен быть удален. Вторая активизация относится к правилу rule — satisfied. Остав-
Глава 12. Примеры проектов экспертных систем 986 f — Происходит запуск правила rule — satisfied для присваивания значения атрибуту best — color в составе консеквента правила,
представленного фактом f — 9. Факт attribute, внесенный в список фактов этим правилом, соответствует факту оставшемуся в списке фактов. Активизируется правило goal —
satisfied, после чего осуществляется его запуск для удаления оставшегося факта goal. Результаты выполнения команды agenda показывают, что не осталось больше правил, запуск которых мог бы быть выполнен. А команда facts показывает атрибуты, которым были присвоены значения. Факт f — свидетельствует о том, что исходному целевому атрибуту best —
color было присвоено значение red. 12.5 Задача текущего контроля В этом разделе приведен пример поэтапной разработки программы CLIPS, предназначенный для решения одной несложной задачи. Этапы разработки включают исходное описание задачи, принятие предположений о характере задачи шееся условие факта f — 8 удовлетворяется с помощью нового факта attribute, поэтому может быть применен консеквент факта f — 8. Для завершения этого процесса обратного логического вывода осталось лишь выполнить запуск последних
активизированных правил CLIPS> (run) J FIRE 1 rule-satisfied: f-
1, f-11, f-9 < f-9 (rule (if meal-is-turkey is yes) (then best-color is red))
> f-12 (attribute (name best-color) (value red)) FIRE 2 goal-satisfied:
f-l,f-12 <- f-1 (goal (attribute best-color)) CLIPS> (agenda)J CLIPS>
(facts)J О (initial-fact) f-7 (attribute (name main-course) (value poultry)) (rule (if meal-is-turkey is по) (then best-color is white)) f-11
(attribute (name meal-is-turkey) (value yes)) f-12 (attribute (name best-color) (value red)) For а total of 5 facts. CLIPS>
987 12.5. Задача текущего контроля и составление первоначальных определений для представления знаний о задаче. За этим следует постепенное накопление правил,
позволяющих решить данную задачу. Формулировка задачи В
настоящем разделе рассматривается решение задачи, которая может служить примером создания простой системы текущего контроля. Обычно задачи текущего контроля легко поддаются решению с помощью языков прямого логического вывода,
основанных на правилах, в силу самого характера этих задач,
управляемых данными. При этом, вообще говоря, в каждом цикле работы программы производится чтение входных значений или значений показаний датчиков. Затем формируются логические выводы, до тех пор, пока не достигаются всевозможные заключения, которые могут быть получены на основании этих входных данных. Такой принцип работы совместим с подходом к созданию программ, управляемых данными, в которых цепь рассуждений строится отданных к заключениям, выводимым на основании данных. В
рассматриваемом примере решается такая задача текущего контроля, которая находит очень широкое распространение на практике. Гипотетическая обрабатывающая установка состоит из нескольких устройств, работа которых подлежит непрерывному контролю. Функционирование некоторых устройств зависит от нормальной работы других устройств. На каждом устройстве установлены один или несколько датчиков, вырабатывающих числовые показания, по которым можно судить об общем
состоянии устройства. Каждый датчик вырабатывает показания,
свидетельствующие о том, находится ли контролируемый параметр в пределах рабочего и допустимого диапазонов. Для этого используются значения нижнего предела рабочего диапазона (Low Guard Line — ЫЫ.), нижнего предела допустимого диапазона (Low Red Line — ЕВЛ.), верхнего предела рабочего диапазона (High Guard Line — HGL) и верхнего предела допустимого диапазона (High Red Line —
HRL). Показания, не выходящие за пределы нижнего и верхнего значений рабочего диапазона, рассматриваются как нормальные. Показания, находящиеся выше верхнего предела рабочего диапазона, но ниже верхнего предела допустимого диапазона или ниже нижнего предела рабочего диапазона, но выше нижнего предела допустимого диапазона,
рассматриваются как приемлемые, но свидетельствуют о том,
что устройство может вскоре стать неисправным. А показания выше верхнего предела допустимого диапазона или ниже нижнего предела допустимого диапазона свидетельствуют о том,
что устройство неисправно и его работа должна быть остановлена. При выходе показаний датчика любого устройства за пределы рабочего диапазона (в верхний или нижний допустимый диапазон) должны формироваться предупреждающие сообщения. Кроме того, любое устройство,
для которого показания датчиков остаются водном из допустимых
Глава 12. Примеры проектов экспертных систем 988 Таблица. Действия, выполняемые при обнаружении различных показаний датчика Значение показаний датчика Действие
Остановить устройство Меньше или равно нижнему пределу допустимого диапазона Выдать предупреждающее сообщение или остановить устройство Больше нижнего предела допустимого диапазона и меньше или равно нижнему пределу рабочего диапазона Больше нижнего предела рабочего диапазона и меньше верхнего предела рабочего диапазона Не
предпринимать никаких действий Больше или равно верхнему пределу рабочего диапазона и меньше верхнего предела допустимого диапазона Выдать предупреждающее сообщение или остановить устройство Остановить устройство Больше или равно верхнему пределу допустимого диапазона Программа текущего контроля должна обладать способностью считывать показания датчика, оценивать данные, полученные от датчиков,
а также выдавать предупреждающие сообщения и останавливать работу устройств на основании оценки показаний датчиков и наблюдаемых тенденций. Пример результатов выполнения программы текущего контроля может выглядеть примерно так Cycle 20 — Sensor 4 in high guard line Cycle 25 —
Sensor 4 in high red line Shutting down device 4 Cycle 32 — Sensor
3 in low guard line Cycle 38 — Sensor 1 in high guard line for б cycles Shutting down device 1 На рис. 12.5 показаны соединения между устройствами и датчиками, применяемыми в установке,
которая рассматривается в данном примере, а в табл. перечислены пределы, контролируемые каждым датчиком. На определенном этапе решения задачи общее описание этой задачи используется для уточнения конкретных деталей, для которых также необходимо найти решение, прежде чем реализовать общее решение задачи. Обычно входе этого требуется неоднократно консультироваться с экспертами,
обладающими знаниями в данной предметной области, ноне всегда способными полностью сформулировать задание, для выполнения которого должна быть предназначена экспертная система. Поэтому приходится разрабатывать прототипы решения задачи, позво- диапазонов слишком продолжительное время, должно быть остановлено. Итоговые сведения о том,
какие действия должны быть предприняты при обнаружении конкретных значений датчика, приведены в табл. 12.1.
12.5. Задача текущего контроля 989 Рис. 12.5. Схема соединений устройств и датчиков в контролируемой системе
Таблица 12.2. Пределы, контролируемые каждым датчиком
Датчик Нижний предел Нижний предел Верхний предел Верхний предел допустимого рабочего рабочего допустимого диапазона диапазона диапазона диапазона ляющие выявить детали,
недостающие в исходной постановке задачи. После этого с помощью консультаций с экспертами можно уточнить необходимые детали и разработать еще один прототип, с помощью которого, возможно, удастся выявить какие-то другие недостающие детали в спецификации задачи. В конечном итоге указанный итеративный подход к разработке программного обеспечения позволяет полностью составить спецификацию задачи. Пока еще остались без ответа многие вопросы,

касающиеся деталей спецификации данной задачи "Как должна быть представлена информация о датчиках и устройствах?
1   ...   66   67   68   69   70   71   72   73   74


написать администратору сайта