- •Оглавление
- •Предисловие
- •1. Общие сведения о языке и среде разработки CLIPS
- •1.1. Системы продукций и CLIPS
- •1.2. Основы работы в консоли CLIPSJNI
- •1.3. Основы работы в среде CLIPSWin
- •1.4. Механизмы представления знаний в CLIPS
- •1.5. Пример разработки БЗ и работы с ней в среде CLIPS
- •1.6. Пример использования эвристического механизма представления знаний совместно с процедурным
- •2. Основные конструкции языка CLIPS
- •2.1. Примитивные типы данных языка CLIPS
- •2.2. Особенности вызова функций в языке CLIPS
- •2.3. Факты в языке CLIPS
- •2.3.1. Позиционные факты
- •2.3.2. Непозиционные факты
- •2.4. Операции над фактами
- •2.5. Правила в языке CLIPS
- •2.5.1. Объявление и добавление новых правил
- •2.5.2. Один из подходов к разрешению конфликтов
- •2.6. Групповые символы для простых и составных полей
- •2.7. Переменные в CLIPS
- •2.8. Глобальные переменные
- •2.9. Пользовательские функции
- •3. Примеры построения простых интеллектуальных систем
- •3.1. Разработка простейшей экспертной системы
- •3.2. Пример решения задач на планирование
- •3.2.1. Программа ”Робот и ящик”
- •3.2.2. Запуск и трассировка программы ”Робот и ящик”
- •3.3. Пример использования ООП в CLIPS.
- •Приложение 2. Использование образцов в правилах.
- •Приложение 3. Стратегии разрешения конфликтов
- •Приложение 4. Работа с модулями в CLIPS
- •Литература и Интернет-ресурсы
ХАБАРОВ С. П.
CLIPS – ЯЗЫК ПОСТРОЕНИЯ ЭКСПЕРТНЫХ СИСТЕМ
Санкт-Петербург
2013
УДК
ББК
Хабаров С. П. CLIPS – язык построения экспертных систем // С. П. Хабаров. ― СПб.: ………………, 2013. ― 80 с.
Рассмотрен подход к построению систем основных на знаниях и разработке экспертных систем продукционного типа. В качестве базовой выбрана оболочка CLIPS, располающая тремя механизмами представления знаний: процедурным, эвристическим и объектно-ориентированным. Подробно, с большим количеством примеров излагаются основы программирования на языке CLIPS и подходы к построению на его основе интеллектуальных информационных систем и систем принятия решений..
Книга предназначена для специалистов в области информационных систем и технологий, для студентов и аспирантов, а также для специалистов в других областях.
Рецензенты :
УТКИН Л. В., д. т. н., профессор, проректор по научной работе, заведующий кафедрой управления, автоматизации и системного анализа Санкт-Петербургского государственного лесотехнического университета
. . . . . . . . . . . . . . . . . . . .
© С. П. Хабаров
2
ОГЛАВЛЕНИЕ
Оглавление ……………………..…………………………………….….……… |
3 |
Предисловие ………………………………………………………..…………... |
4 |
1. Общие сведения о языке и среде разработки CLIPS ………….…............... |
5 |
1.1. Системы продукций и CLIPS …………………………………........... |
5 |
1.2. Основы работы в консоли CLIPSJNI ……...…......….………………. |
7 |
1.3. Основы работы в среде CLIPSWin ..………..…………..……………. |
13 |
1.4. Механизмы представления знаний в CLIPS ...........…...……………. |
15 |
1.5. Пример разработки БЗ и работы с ней в среде CLIPS ………..……. |
19 |
1.6.Пример использования эвристического механизма представления знаний совместно с процедурным...………………………...……….. 23
2.Основные конструкции языка CLIPS ….………………………….…….….. 27
2.1. Примитивные типы данных языка CLIPS …………………………... |
27 |
2.2. Особенности вызова функций в языке CLIPS …...…………………. |
27 |
2.3. Факты в языке CLIPS …………………...………………..…............... |
28 |
2.3.1. Позиционные факты …………...……………………………… |
29 |
2.3.2.Непозиционные факты ……………....………………………... 30
2.4.Операции над фактами ……..……………...……………..…............... 32
2.5. Правила в языке CLIPS ….……………...………………..…............... |
35 |
2.5.1. Объявление и добавление новых правил ………….………… |
35 |
2.5.2. Один из подходов к разрешению конфликтов ……….……... |
38 |
2.6. Групповые символы для простых и составных полей ...………...…. |
39 |
2.7.Переменные в CLIPS ……………………..………..……...………….. 40
2.8.Глобальные переменные ….………………………………………….. 41
2.9. Пользовательские функции ……………………………..…………… |
43 |
3. Примеры построения простых интеллектуальных систем ……...…….….. |
46 |
3.1. Разработка простейшей экспертной системы …………..…............... |
46 |
3.2. Пример решения задач на планирование ……...………..…............... |
50 |
3.2.1. Программа ”Робот и ящик” ……………..………….………… |
50 |
3.2.2. Запуск и трассировка программы ”Робот и ящик” …...……... |
53 |
3.3. Пример использования ООП в CLIPS ………....………..…............... |
55 |
3.4. Вызов CLIPS программ из командной строки и из VBScript ..…...... |
64 |
Приложение ………………………………………………………….….……… |
69 |
Приложение 1. Основные конструкторы и функции языка CLIPS ….……… |
70 |
Приложение 2. Использование образцов в правилах ….…..………………… |
73 |
Приложение 3. Стратегии разрешения конфликтов …...…..………………… |
75 |
Приложение 4. Работа с модулями в CLIPS …………....…..………………… |
78 |
Литература и Интернет-ресурсы ………………………..…………………….. |
80 |
3
ПРЕДИСЛОВИЕ
Термин интеллект (лат. intellectus) означает ум, рассудок, способность мышления и рационального познания. Эти способности реализуются путем приобретения, запоминания и целенаправленного применения знаний для решения различного рода задач. Благодаря этим качествам интеллекта мозг может решать разнообразные задачи и легко перестраиваться с решения одной задачи на другую.
Термин искусственный интеллект (англ. artificial intelligence) был предложен в 1956г. на семинаре с аналогичным названием в Дартмутском колледже (США). Существует много определений этого понятия. Одно из них определяет искусственный интеллект как область компьютерной науки, которая занимается автоматизацией разумного поведения. Такой подход ярче всего проявляется в задачах, решение которых связано с тонкими и сложными рассуждениями, требующими изобретательности и высокой квалификации. К этим задачам относят и экспертные системы, которые явились первым шагом в разработке интеллектуальных систем.
Для знакомства с практикой разработки экспертных систем будем использовать систему CLIPS, достоинства которой в том, что ее язык и среда позволяют быстро создавать эффективные, компактные и легко управляемые экспертные системы. При этом доступно много уже готовых инструментов (встроенный механизм управления базой знаний, механизм логического вывода, менеджеры различных объектов CLIPS и т. д.) и конструкций (упорядоченные факты, шаблоны, правила, функции, родовые функции, классы, модули, ограничения, встроенный язык COOL и т. д.).
CLIPS поддерживает три различных механизма представления знаний: процедурный, эвристический и объектно-ориентированный. Подробно и с большим числом примеров будут изложены основы программирования на языке CLIPS, реализующие эти подходы к представлению знаний, что позволит получить сведения о подходах к построению интеллектуальных информационных систем и систем принятия решений.
Стиль изложения ближе всего к лабораторному практикуму, чему способствует большое число предлагаемых заданий и упражнений. При этом теоретические сведения также не остаются в стороне. Часть вопросов рассматривается лишь поверхностно, чтобы дать общие представление по рассматриваемым вопросам и привить элементарные навыки, которые можно совершенствовать в дальнейшем, используя другие источники информации, научную и техническую литературу.
4
