- •Оглавление
- •1. Интерфейс clips. Вычисление математических выражений в режиме командной строки
- •2. Факты в clips. Упорядоченные факты.
- •3. Неупорядоченные факты. Сохранение и загрузка фактов.
- •4. Правила. Использование условных элементов в записи правил
- •5. Процедурные функции
- •6. Функции пользователя
- •1. Создайте новый файл и наберите программу:
- •7. Обработка строковых величин
- •Рекомендуемая литература
АрмавирскАЯ государственнАЯ
педагогическАЯ АКАДЕМИЯ
Козырева Г.Ф.
Основы программирования
в среде CLIPS
учебно-методическое пособие
для студентов, обучающихся по специальности
«ПРИКЛАДНАЯ ИНФОРМАТИКА В ЭКОНОМИКЕ»
Армавир 2011
Печатается по решению УМС АГПА
Рецензент: Бельченко В.Е, кандидат технических наук, зав. кафедрой информатики и информационных технологий обучения АГПА
Козырева Г.Ф. Основы программирования в среде CLIPS. Учебно-методическое пособие для студентов, обучающихся по специальности «прикладная информатика в экономике». – Армавир, 2011г.
Рассматриваются основные понятия языка программирования CLIPS, а также типовые задания для лабораторных работ, которые позволят получить практические навыки по разработке программ в среде CLIPS и создать необходимую базу для построения экспертных систем. Пособие может быть использовано при организации самостоятельной работы студентов по курсу «Интеллектуальные информационные системы»
Учебно-методическое пособие предназначено для студентов, обучающихся по специальности «прикладная информатика в экономике», а также может использоваться всеми, кто интересуется вопросами разработки экспертных систем.
Оглавление
Введение……………………………………………………………………4
1. Интерфейс CLIPS. Вычисление математических выражений в режиме командной строки……………………………...………………….5
2. Факты в CLIPS. Упорядоченные факты…………………….………….9
3. Неупорядоченные факты. Сохранение и загрузка фактов…………..15
4. Правила. Использование условных элементов в записи правил…………………………………………………………..………….20
5. Процедурные функции…………………………………………………24
6. Функции пользователя…………………………………………………28
7. Обработка строковых величин………………………………….……..31
Литература…………………………………………………….……..........35
Введение
Предлагаемое методическое пособие представляет собой описание лабораторных работ по курсу «Интеллектуальные информационные системы» и предназначено для студентов, обучающихся по специальности «прикладная информатика в экономике».
Основная цель пособия – помощь студентам в подготовке к выполнению лабораторных работ по изучению языка программирования CLIPS, ориентированного на разработку экспертных систем.
Целью выполнения данных лабораторных работ является приобретение и усвоение студентами навыков работы в среде CLIPS (формальная постановка задачи, преобразование в форму, пригодную для программирования на CLIPS, оценка результатов) а также закрепление теоретических знаний, полученных при прослушивании курса лекций «Интеллектуальные информационные системы».
Среда CLIPS представляет собой современный инструмент, предназначенный для создания экспертных систем. В настоящее время CLIPS находится в открытом доступе. Официальный сайт CLIPS располагается по адресу: http://www.ghg.net/clips/CLIPS.html.
В данном пособии рассматриваются основные понятия и необходимые сведения по программированию на языке искусственного интеллекта CLIPS.
Пособие содержит необходимый теоретический материал, примеры решения задач и задания для самостоятельной работы.
К каждому разделу приводятся несколько типовых задач с решениями, что позволяет студентам самостоятельно подготовиться к выполнению лабораторной работы.
В качестве результата выполнения лабораторной работы студентом должен быть подготовлен отчет о проделанной работе, который включает:
Постановку задачи
Входные/Выходные данные (при необходимости)
Текст программы на языке CLIPS (с необходимыми комментариями)
Результаты тестирования (наборы входных и выходных данных).
В настоящем пособии приводится список литературы, которая может быть использована для организации самостоятельной работы студентов.
1. Интерфейс clips. Вычисление математических выражений в режиме командной строки
Основные сведения
Среда CLIPS (C Language Integrated Production System) предназначена для построения экспертных систем (ЭС). Язык был разработан в Центре космических исследований NASA (NASA's Johnson Space Center) в середине 1980-х годов и во многом сходен с языками, созданными на базе LISP и OPS5. Сейчас CLIPS и документация на этот инструмент свободно распространяется через интернет.
CLIPS поддерживает три основных способа представления знаний:
продукционные правила для представления эвристических, основанных на опыте знаний;
функции для представления процедурных знаний;
объектно-ориентированное программирование.
Среда загружается запуском файла clipswin.exe.
Рис.1. Окно среды CLIPS
В окне отображается стандартная строка приглашения CLIPS, куда и вводятся команды.
Назначение основных пунктов меню оконного интерфейса, используемых при выполнении данного цикла лабораторных работ представлены в табл. 1.
Таблица 1 Основные команды главного меню CLIPS
Пункт |
Подпункт |
“Горячие” клавиши |
Назначение команды |
File
|
New Open Load …
Load Batch |
Ctrl+N Ctrl+O Ctrl+L
|
Создание нового файла Открытие файла Загрузка конструкций из файла. Исполнение пакетного файла |
Edit |
Cut Copy Paste |
Ctrl+X
Ctrl+C Ctrl+V
|
Вырезка фрагмента
Копирование фрагмента Вставка строки из буфера обмена
|
Execution
|
Reset Run Step |
Ctrl+U Ctrl+R Ctrl+T |
Инициализация конструкций Запуск на выполнение Выполнение одного шага вывода |
Browse |
Module Defrule Manager Deffacts Manager |
|
Отображает модуль Менеджер правил Менеджер фактов |
Window |
Facts Window
Agenda Window Clear dialog window |
|
Активизация окна списка фактов Активизация окна агенды Очищает окно с командной строкой |
CLIPS может работать в нескольких режимах:
1. интерактивно, с использованием простого текстового интерфейса командной строки;
2. интерактивно, с использованием GUI-интерфейса;
3. как ЭС, интегрированная в другие приложения.
В режиме интерпретатора пользователь может использовать множество команд. Основным методом взаимодействия пользователя с CLIPS является ввод команд с командной строки CLIPS. После появления на экране подсказки CLIPS> пользователь может ввести команду (рис.1).
Командами могут быть вызовы функций, конструкции, глобальные переменные или константы. Если ввести вызов функции, вычисляется значение этой функции и на экран выводится результат.
Вызовы функций в CLIPS имеют префиксную форму: аргументы функции могут стоять только после ее названия. Вызов функции начинается с открывающейся скобки, за которой следует имя функции, затем идут аргументы, каждый из которых отделен одним или несколькими пробелами. Аргументами функции могут быть данные простых типов, переменные или вызовы других функций. В конце вызова ставится закрывающаяся скобка. Например, выражение 3 + 8*9 + 4 в CLIPS записывается следующим образом:
(+ 3 (* 8 9) 4)
Синтаксис языка CLIPS можно разбить на три основных группы элементов, предназначенных для написания программ:
– типы данных;
– функции, использующиеся для обработки данных;
– конструкторы, предназначенные для создания таких структур языка, как факты, правила, классы и т. д.
В CLIPS поддерживаются восемь простейших типов данных:
integer – целые числа (237, 15, +12, -32);
float – числа с плавающей запятой (237e3, 15.09, +12.0, -32.3e-7);
symbol – символьный тип (любая последовательность символов, начинающаяся с отображаемого ASCII-символа и продолжающаяся до ограничителя. Ограничителем является любой неотображаемый символ);
external-address – внешний адрес (значение этого типа может быть создано только посредством вызова внешней функции.);
fact-address – адрес факта (оперировать с фактом можно, используя его адрес, который представлен значением данного типа.);
instance-name – имя экземпляра (данный тип предназначен для хранения значения имени объекта, который представляет собой экземпляр определенного пользователем класса);
instance-address – адрес экземпляра (данный тип предназначен для хранения значения, представляющего адрес объекта).
Наиболее часто используемыми командами в CLIPS являются:
сlear –очистка рабочей памяти системы. Команда удаляет все определенные в системе на текущий момент конструкторы и ассоциированные с ними данные.
exit –завершение сеанса работы с CLIPS.
reset –перезагрузка рабочей памяти системы. Команда очищает текущий план решения задачи, удаляет все факты из списка фактов и объекты из списка объектов. При этом в систему добавляется предопределенный факт initial-fact, предопределенный объект initial-object и все факты, объекты и глобальные переменные, определенные пользователем с помощью конструкторов deffacts, definstances и defglobals.
В CLIPS предусмотрен ряд стандартных арифметических и математических функций
Таблица 2. Запись математических функций в CLIPS
-
Функция
Обозначение функции в CLIPS
Сложение
+
Вычитание
-
Умножение
*
Деление
/
Возведение в степень
* *
Определение абсолютного значения
abs
Вычисление квадратного корня
sqrt
Целочисленное деление
div
Остаток от деления
mod
Нахождение минимума
min
Нахождение максимума
мах
Синус
sin
Косинус
cos
Тангенс
tan
Натуральный логарифм
log
Экпонента ex
exp
Округление числа
round
Выбор целого случайного числа из интервала [n1, n2]
Random n1 n2
Пример.
В режиме командной строки вычислить значения выражений:
а) (3+5)*2 б) max(32, 23) в)
Решение
1 . Запустите Clips и в командной строке окна Dialog Window запишите выражения:
а)
Рис.2. Вычисление выражения (3+5)*2 в режиме командной строки
б)
Рис.3. Вычисление выражения max(32, 23) в режиме командной строки
в)
Рис.4. Вычисление выражения в режиме командной строки
Контрольные вопросы
Поясните назначение инструментальной среды Clips.
Какие способы представления знаний поддерживает Clips?
Какие режимы работы допустимы в среде Clips?
Каково назначение основных пунктов меню оконного интерфейса Clips?
Какая форма записи используется в CLIPS для выражений?
Перечислите основные типы данных в Clips.
Поясните назначение команд сlear, exit, reset.
Задания для самостоятельной работы
В режиме командной строки вычислить значения выражений:
|
|
|
|
|
|
|
|
|