А. А. Короткин
Экспертные системы
в среде CLIPS
Методические указания
Рекомендовано
Научно-методическим советом университета для студентов,
обучающихся по направлению
Прикладная математика и информатика
Ярославль
ЯрГУ
2013
УДК 004.65(072)
ББК З973.2-018.2я73
К 68
Рекомендовано
Редакционно-издательским советом университета
в качестве учебного издания. <...> База фактов (БФ) – область памяти компьютера, в которой
хранятся исходные данные (факты) задачи и куда помещаются
новые факты, полученные в ходе логического вывода. <...> Модуль логического вывода – программа, моделирующая ход
рассуждений эксперта на основании знаний, имеющийся в БЗ. <...> Представление знаний правилами продукции
и логический вывод
Еще в 60-е гг. прошлого столетия американские исследователи в
области искусственного интеллекта А. <...> При описании знаний в виде правил продукции часто используется следующий формат записи правил:
<метка правила>: <условие> => <действия>,
6
который будет использоваться в дальнейшем. <...> Логический вывод в продукционных системах может выполняться в соответствии с двумя разными стратегиями, которые называются прямой и обратной цепочками вывода. <...> Прямая цепочка вывода
Пусть вначале база фактов содержит факты A a1 и C c1 . <...> Логический вывод в соответствии с прямой цепочкой рассуждений
происходит по следующей схеме. <...> На первом шаге система просматривает все правила в базе знаний и находит первое правило,
для которого условие, т. е. левая часть правила, является истинным
при наличии фактов, выставленных на доске объявлений. <...> 7
На втором шаге выполняется действие, записанное в правой части
правила П4, и новый факт D d1 помещается базу фактов. <...> Далее система снова сканирует все правила, кроме исполненного П4, и находит первое правило, для которого левая часть
правила истинна при наличии всех фактов в уже обновленной
БФ. <...> Понятно, почему такой вывод называется прямой цепочкой вывода: поиск новой информации происходит в направлении стрелок,
разделяющих <...>
Экспертные_системы_в_среде_CLIPSметодические_указания.pdf
Министерство образования и науки Российской Федерации
Ярославский государственный университет им. П. Г. Демидова
Кафедра компьютерных сетей
А. А. Короткин
Экспертные системы
в среде CLIPS
Методические указания
Рекомендовано
Научно-методическим советом университета для студентов,
обучающихся по направлению
Прикладная математика и информатика
Ярославль
ЯрГУ
2013
Стр.1
УДК 004.65(072)
ББК З973.2-018.2я73
К 68
Рекомендовано
Редакционно-издательским советом университета
в качестве учебного издания. План 2013 года
Рецензент
кафедра компьютерных сетей ЯрГУ
К 68
Короткин, А. А. Экспертные системы в среде CLIPS :
методические указания / А. А. Короткин ; Яросл. гос. ун-т
им. П. Г. Демидова. – Ярославль : ЯрГУ, 2013. – 52 с.
Изложены основные сведения о программной среде
CLIPS, которые позволяют написать несложную экспертную
систему. Все конструкции языка CLIPS поясняются
на примерах. Особое внимание уделяется ситуациям, в которых
начинающие работать с этой средой делают типичные
ошибки. Кроме элементов самого языка, автор счел
нужным кратко изложить основную концепцию экспертных
систем, база знаний которых построена на продукционных
правилах.
Предназначены для магистров, обучающихся по направлению
010400.62 Прикладная математика и информатика
(дисциплина «Базы данных и экспертные системы»,
цикл Б3), очной формы обучения.
УДК 004.65(072)
ББК З973.2-018.2я73
© ЯрГУ, 2013
2
Стр.2
Оглавление
1. ЭКСПЕРТНЫЕ СИСТЕМЫ ....................................................... 3
1.1. Архитектура экспертной системы..........................................3
1.2. Представление знаний правилами продукции и логический
вывод....................................................................................................6
2. ЭЛЕМЕНТЫ ПРОГРАММИРОВАНИЯ В CLIPS ............... 10
2.1. Общие сведения о CLIPS.......................................................10
2.2. Основные элементы программирования..............................11
2.2.1. Простые типы данных..................................................12
2.2.2. Функции.........................................................................13
2.2.3. Конструкторы................................................................15
2.3. Факты......................................................................................15
2.3.1. Форматы представления фактов..................................16
2.3.2. Добавление, удаление и модификация фактов...........18
2.4. Правила....................................................................................21
2.4.1. Компоненты правила....................................................21
2.4.2. Алгоритм исполнения правил (логический вывод
в CLIPS)...........................................................................................23
2.4.3. Локальные и глобальные переменные........................25
2.4.4. Функция bind.................................................................27
2.4.5. Многозначные переменные.........................................27
2.4.6. Ввод фактов в режиме диалога с пользователем.
Пример простой ЭС.......................................................................29
2.4.7. Адреса образцов. Еще раз о командах
modify и retract................................................................................31
3. УСЛОВНЫЕ ЭЛЕМЕНТЫ И ФУНКЦИИ
В ПРАВИЛАХ ................................................................................... 34
3.1. Условный элемент test............................................................34
3.2. Условный элемент or.............................................................35
49
Стр.49
3.3. Функция if...............................................................................37
3.4. Условный элемент and...........................................................38
3.5. Функции eq и neq...................................................................38
3.6. Условный элемент not............................................................39
3.7. Условный элемент exists.......................................................39
3.8. Условный элемент forall........................................................40
3.9. Пользовательские функции...................................................41
3.9.1. Формат определения функции.....................................41
3.9.2. Пример: функции для сбора информации..................42
ПРИЛОЖЕНИЕ ............................................................................... 44
Конструкторы, функции и команды CLIPS................................44
РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА .......................................... 48
50
Стр.50