Разработка интеллектуальных информационных систем с использованием CLIPS. Дякин В.Н. - 13 стр.

UptoLike

Составители: 

f-1 (foo (x 3) )
f-2 (bar (y 4) )
For a total of 2 facts.
CLIPS> (facts B)
f-1 (foo (x 3) )
For a total of 1 fact.
CLIPS>
Таким образом, имя объекта можно указать тремя способами.
<имя-объекта> ::= [<имя>] |
[::<имя>] |
[<модуль> :: <имя>]
Скобки являются обязательным синтаксисом CLIPS.
Каждый модуль имеет свой собственный процесс сопоставления образцов для своих правил и свой план решения зада-
чи. По команде run начинает выполняться план решения задачи модуля, на который в данный момент установлен фокус. Ко-
манды reset и clear автоматически устанавливают фокус на модуль MAIN. Выполнение правил продолжается до тех пор, по-
ка в плане решения задачи не останется применимых правил, и другой модуль не получит фокус, либо правая часть одного
из выполняемых правил не вызовет функцию return. После того как в плане решения задачи модуля, имеющего фокус, за-
канчиваются правила, текущей модуль удаляется из стека фокусов (focus stack) и находящийся в стеке следующий модуль
получает фокус. Перед выполнением правила текущим становится модуль, в котором данное правило определено. Управлять
стеком фокусов можно с помощью команды focus.
В завершение следует иметь в виду, что CLIPS может неудовлетворительно работать в реальном времени, когда потре-
буется время реакции менее 0,1 с. В этом случае надо исследовать на разработанном прототипе механизмы вывода для всего
множества правил предметной области на различных по производительности компьютерах. Как правило, современные пер-
сональные компьютеры обеспечивают работу с продукционными системами объемом 1000 – 2000 правил в реальном време-
ни. Web-ориентированные средства на базе JAVA (системы Exsys Corvid, JESS) являются более медленными, чем, например,
CLIPS 6 или OPS-2000. Поэтому CLIPS – лучший на сегодня выбор для работы в реальном времени среди распространяемых
свободно оболочек ЭС, разработанных на C++.
РАЗРАБОТКА ПРОТОТИПА ЭКСПЕРТНОЙ СИСТЕМЫ AUTO
Рассмотрим пример создания диагностической экспертной системы, которая позволяет установить причину неисправ-
ности автомобиля и выдать соответствующую рекомендацию.
Разработку любой экспертной системы следует начинать с выявления основных сущностей, имеющих значение при ре-
шении конкретной задачи и законов, скорее всего эмпирических, действующих над этими сущностями.
В результате работы с экспертом были установлены следующие эмпирические правила:
1. Двигатель обычно находится в одном из 3 состояний: он может работать нормально, работать неудовлетворительно
или не заводиться.
2. Если двигатель работает нормально, то это означает, что он нормально вращается, система зажигания и аккумулятор
находятся в норме и никакого ремонта не требуется.
3. Если двигатель запускается, но работает ненормально, то это говорит, по крайней мере, о том, что аккумулятор в по-
рядке.
4. Если двигатель не запускается, то нужно узнать, пытается ли он вращаться. Если двигатель вращается, но при этом
не заводится, то это может говорить о наличии плохой искры в системе зажигания. Если двигатель даже не пытается заво-
диться, то это говорит о том, что искры нет в принципе.
5. Если двигатель не заводится, но вращается, нужно проверить наличие топлива. Если топлива нетто, скорей всего,
для ремонта машины нужно просто заправиться.
6. Если двигатель не заводится, нужно также проверить, заряжен ли аккумулятор, если нет, то его следует зарядить.
7. Если двигатель не заводится и существует вероятность плохой искры в системе зажигания, то необходимо прове-
рить контакты. Контакты могут быть в одном из трех состоянийчистые, опаленные и грязные, в случае опаленных контак-
тов их необходимо заменить, в случае если контакты грязные, их достаточно просто почистить.
8. Если двигатель не заводится, искры нет и аккумулятор заряжен, то нужно проверить катушку зажигания на электри-
ческую проводимость. В случае, если ток не проходит через катушку, то ее необходимо заменить. Если катушка зажигания в
порядке, значит необходимо заменить распределительные провода.
9. Если двигатель запускается, но при этом ведет себя инертно, не сразу реагирует на подачу топлива, то необходимо
прочистить топливную систему.
10. Если двигатель запускается, но происходят перебои с зажиганием, то это говорит о наличии плохой искры в системе
зажигания, для устранения данной неисправности необходимо отрегулировать зазоры между контактами.
11. Если двигатель запускается и стучит, то необходимо отрегулировать зажигание.
12. Если двигатель запускается, но не развивает нормальной мощности, то это может говорить об опаленных или за-
грязненных контактах (см. правило 7).
13. Возможны ситуации, когда состояние двигателя нельзя описать приведенными выше факторами и машине может
потребоваться более детальный анализ состояния.
Из приведенных выше правил
можно выделить следующие сущности, имеющие значение при решении задачи.