Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CLIPS.docx
Скачиваний:
3
Добавлен:
25.12.2018
Размер:
79.82 Кб
Скачать

28

Введение

Система CLIPS (C Language Integrated Production System) — это инструментальное средство для разработки экспертных систем. Система CLIPS использует одноименный язык программирования.

Основными компонентами CLIPS, как и большинства экспертных систем являются:

  • список фактов (он же рабочая память) — данные, описывающие решаемую задачу. Вообще говоря, факты могут выражать не только специфические особенности конкретной решаемой в данный момент задачи, но и общие закономерности, характерные для некоторого класса задач;

  • база знаний — набор правил, служащих для получения на основе одних (исходных) фактов других (результатных) фактов;

  • машина логического вывода — обеспечивает общее управление процессом применения правил.

В простейшем случае работа с системой CLIPS происходит в интерактивном режиме. После запуска на экране появляется окно консоли (называемое Dialog Window), в котором отображается приглашение для ввода команд в виде CLIPS>. Команды выполняются системой по мере их ввода.

Каждая команда представляет собой список. В языке CLIPS списки заключаются в круглые скобки, а элементы списка отделяются друг от друга пробелами. Элементами списков могут быть:

  • атомы:

    • целые и вещественные числа (состоят из цифр и, возможно, десятичной точки и знака экспоненты);

    • строки (произвольный текст, заключенный в двойные кавычки);

    • символы — все остальное, что не является ни числом, ни строкой и не содержит разделителей (т. е. пробелов, круглых скобок). Отметим, что вместе символы и строки называются лексемами;

  • вложенные списки.

Вообще говоря, списки могут быть пустыми.

Если список представляет собой команды (т. е., если он сам не является элементом другого списка), то первый элемент списка задает название команды, а остальные — ее параметры. Т. е. в общем случае команда имеет формат:

(имя-команды аргумент-1 аргумент-2 …)

Имя команды должно быть символом. Одна команда может занимать несколько строк.

Арифметика

Простейшими командами являются математические функции. Например:

(+ 1 2)

(+ 1 2 3 4)

(* 2 3)

(- 5 2)

(- 5 2 2)

(/ 8 3)

(/ 8 2)

(div 18 7)

(mod 18 7)

(** 3 2)

(min 2 1 4 5 3)

(round 6.7)

Параметры математических функций также в свою очередь могут быть заданы математическими функциями. Например:

(* (+ 1 2) 3 (* 4 5))

(sin (/ (pi) 6))

В командах CLIPS могут использоваться переменные. Для присваивания значения переменной используется команда bind. Например:

(bind ?x 10)

?x

(** ?x 2)

Заметим, что команда bind не только устанавливает значение переменной, но и возвращает установленное значение. При попытке использовать переменную, которой не было присвоено никакого значения, выводится предупреждение, при этом значением такой переменной считается символ FALSE.

Ввод-вывод при работе с консолью

Для вывода в консоль или в файл можно использовать команду printout. Первый параметр этой команды задает логическое имя файла, а остальные — выводимые значения. Для вывода в консоль первым параметром надо задать символ t. Для перевода строки используется символ crlf. Пример:

(printout t "Hello" crlf)

(printout t "2 * 3 = " (* 2 3) crlf)

Для ввода можно использовать команды read и readline. Будучи вызваны без параметров обе команды производят ввод с консоли. Команда read считывает данные до разделителя и может возвратить символ, строку или число; команда readline считывает данные до конца строки и всегда возвращает строку. В случае достижения конца файла обе команды возвращают символ EOF. Пример:

(bind ?x (read))

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]