Неоднократно находил ошибки в тестах, особенно в экзаменационных вопросах, когда правильно данный ответ на вопрос определялся в итоге как не правильно отвеченный... Из-за этого сильно страдает конечный бал! Да еще в заблуждение студентов вводит! Они-то думают, что это они виноваты!!! Но они тут не причем! Я много раз проверял ответы на некоторые такие "ошибочные" вопросы по нескольким источникам - результат везде одинаковый! Но ИНТУИТ выдавал ошибку... Как это понимать? Из-за подобных недоразумений приходиться часами перерешивать экзамен на отличную оценку...!!! Исправьте, пожалуйста, такие "ошибки"... |
Практическая разработка экспертных систем в среде CLIPS
Функции CLIPS описываются в книгах. Среди логических функций (возвращающих значения true или false ) следует выделить следующие группы:
- функции булевой логики: and, or, not
-
функции сравнения чисел: =,
>,
<,
- предикативные функции для проверки принадлежности проверяемому типу: integerp, floatp, stringp, symbolp, pointerp (относится ли аргумент к xternal-address ), numberp (относится ли аргумент к integer или float ), lexemerp (относится ли аргумент к string или symbol ), evenp (проверка целого на четность), oddp (проверка целого на нечетность), multifildp (является ли аргумент составным полем).
- Функции сравнения по типу и по значению: eq, neq
Среди математических функций следует выделить следующие группы:
- Стандартные: +, -, *, /, max, min, div (целочисленное деление), abs (абсолютное значение), float (преобразование в тип float ), integer (преобразование в тип integer )
- Расширенные: sqrt (извлечение корня), round (округление числа), mod (вычисление остатка от деления)
- Тригонометрические: sin, sinh, cos, cosh, tan, tanh, acos, acosh, acot, acoth, acsc, acsch, asec, asech, asin, asinh, atan, atanh, cot, coth, csc, csch, sec, sech, deg-grad (преобразование из градусов в секторы), deg-rad (преобразование из градусов в радианы), grad-deg (преобразование из секторов в градусы), rad-deg (преобразование из радиан в градусы)
- Логарифмические: log, log10, exp, pi
Среди функций работы со строками следует назвать функции:
Функции работы с составными величинами являются одной из отличительных особенностей языка CLIPS. В их число входят:
Функции ввода-вывода используют следующие логические имена устройств:
stdin | устройство ввода, |
stdout | устройство вывода, |
wclips | устройство, используемое как справочное, |
wdialog | устройство для отправки пользователю сообщений, |
wdisplay | устройство для отображения правил, фактов и т.,п., |
werror | устройство вывода сообщений об ошибках, |
wwarning | устройство для вывода предупреждений, |
wtrase | устройство для вывода отладочной информации, |
Собственно функции ввода-вывода следующие:
Среди двух десятков команд CLIPS следует назвать основные команды при работе со средой CLIPS:
load | загрузка конструкторов из текстового файла, |
load+ | загрузка конструкторов из текстового файла без отображения, |
reset | сброс рабочей памяти системы CLIPS, |
clear | очистка рабочей памяти системы, |
run | выполнение загруженных конструкторов, |
save | сохранение созданных конструкторов в текстовый файл, |
exit | |
выход из CLIPS. |
В рамках нашего краткого описания опустим список функций для работы с методами родовых функций и список функций для работы с классами, объектами, слотами, обработчиками сообщений. С этим можно ознакомиться по документации. Список сообщений об ошибках приведен в [ 7.4 ] .
В завершение следует иметь в виду, что CLIPS может не удовлетворительно работать в реальном времени, когда потребуется время реакции менее 0,1 сек.В этом случае надо исследовать на разработанном прототипе механизмы вывода для всего множества правил предметной области на различных по производительности компьютерах. Как правило, современные мощные компьютеры Intel обеспечивают работу с продукционными системами объемом 1000--2000 правил в реальном времени. Веб-ориентированные средства на базе JAVA (системы Exsys Corvid, JESS) являются более медленными, чем, например, CLIPS 6.0 или OPS-2000. Поэтому CLIPS - лучший на сегодня выбор для работы в реальном времени среди распространяемых свободно оболочек ЭС, разработанных на C++.