
- •Министерство образования и науки Российской Федерации
- •Задание на лабораторную работу
- •Задание на лабораторную работу
- •Задание на лабораторную работу
- •Порядок выполнения работы
- •Задание на лабораторную работу
- •Задание на лабораторную работы
- •Дополнительная литература
- •Периодическая литература
- •Интернет-ресурсы
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«Тамбовский государственный технический университет» (ФГБОУ ВПО «ТГТУ»)
Утверждено
На заседании кафедры «Информационные системы и защита информации»
протокол № 1 от 28. 08 . 2012 г.
Заведующий кафедрой
О.Г. Иванова
Вводится в действие с
« 01 » сентября 20 12 г.
МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ ЛАБОРАТОРНЫХ РАБОТ
по учебной дисциплине
Представление знаний в информационных системах
(наименование дисциплины в соответствии с утвержденным учебным планом подготовки)
Для студентов, обучающихся по специальности:
230201 Информационные системы и технологии
(шифр и наименование образовательной программы)
Специализация:
(наименование специализации)
Форма обучения:
Очная
Составитель:
профессор Громов Юрий Юрьевич
(должность, фамилия, имя, отчество составителя программы)
Тамбов 2012
Лабораторная работа №1
Вычисление математических выражений на языке CLIPS
Цель лабораторной работы
Цель: изучить использование префиксной нотации языка CLIPSдля вычисления математических выражений
Вопросы для предварительного изучения
1. Изучить материал лекции 1.
2. Ознакомиться с материалом основной литературы.
3. Ознакомиться с материалами дополнительной литературы.
Краткие теоретические сведения
Богатый набор математических функций, предоставляемый CLIPS, позволяет использовать эту среду не только для решения логических задач, но и для серьезных математических вычислений. Математические функции CLIPS разделены на два пакета: набор стандартных и набор расширенных математических функций. Стандартные математические функции перечислены в табл.
-
Функция
Описание
+
Сложение
-
Вычитание
*
Умножение
/
Деление
div
Целочисленное деление
max
Максимальное числовое значение
min
Минимальное числовое значение
abs
Абсолютное значение
float
Преобразование в тип float
integer
Преобразование в тип integer
Перечисленные функции могут быть использованы только с числовыми аргументами. Если в математическую функцию будет передан аргумент строкового или другого неподходящего типа, функция вернет сообщение об ошибке. Ниже приведен синтаксис и описаны некоторые особенности стандартных математических функций.
Функция + возвращает сумму своих аргументов. Если все аргументы функции принадлежат типу float, возвращаемое функцией значение также будет вещественного типа. Аналогично возвращаемый функцией результат принадлежит типу integer, если все аргументы целые. Сложение невыполнимо, если типы переданных аргументов различаются (integer и float). В этом случае функция возвращает промежуточное значение, полученное при сложении аргументов одинакового типа.
(+ <выражение!> <выражение2>+)
Функция - возвращает значение ее первого аргумента минус все последующие.
(- <выражение!> <выражение2>+)
Функция * возвращает произведение своих аргументов. Все замечания по поводу типов аргументов, сделанные для функции +, в полной мере применимы к аргументам функций - и *.
(* <выражение1> <выражение2>+)
Функция / возвращает частное от деления первого аргумента на каждый из последующих. Как и в случаях функций +, - и *, функция / не допускает смешанного набора аргументов. Однако по умолчанию делимое автоматически преобразуется в число с плавающей точкой. Таким образом, все последующие аргументы и результат выполнения функции должны представлять собой числа с плавающей точкой. Функция set-auto-float-dividend позволяет менять подобное поведение системы. Если, например, режим автоматического преобразования чисел при делении отключен, выражение (/ 4 3 4.0) возвратит значение 0.25, в то время как при конфигурации по умолчанию результатом подобного действия является 0.333333333.
(/ <выражение1> <выражение2>+)
Функция div возвращает частное от деления первого аргумента на каждый из последующих. Все аргументы данной функции автоматически преобразуются в целые для выполнения целочисленного деления. Эта функция возвращает значение типа integer.
(div<выражение1> <выражение2>+)
Функции max и min предназначены для нахождения наибольшего и наименьшего аргумента соответственно. При необходимости, аргументы типа integer временно преобразуются в тип float для выполнения сравнения. Значение, возвращаемое этими функциями, может быть как целого, так и вещественного типа (в зависимости от типа наибольшего или наименьшего аргумента).
(max <выражение>+) (min <выражение>+)
Функция abs возвращает абсолютное значение аргумента. Значение, возвращаемое этой функцией, может быть как целого, так и вещественного типа (в зависимости от типа аргумента).
(abs <выражение>)
Функции float и integer предназначены для преобразования аргумента в тип вещественный и целый тип соответственно.
(float <выражение>+)
(integer <выражение>+)
В дополнение к стандартным математическим функциям, CLIPS также содержит большое число научных и тригонометрических функций для более сложных вычислений. Пакет этих функций, включенный в основную версию CLIPS, может быть отключен с целью экономии памяти, если экспертная система не нуждается в этих возможностях.
Довольно большую подгруппу расширенных математических функций составляют различные тригонометрические функции. Такие функции принимают один числовой аргумент и возвращают число с плавающей точкой. Для проведения вычислений аргументы тригонометрических функций необходимо переводить в радианы. Полный список тригонометрических функций, предоставляемых CLIPS, приведен в табл.
Тригонометрические функции
-
Функция
Описание
acos
Арккосинус
acosh
Гиперболический арккосинус
acot
Арккотангенс
acoth
Гиперболический арккотангенс
acsc
Арккосеканс
acsch
Гиперболический арккосеканс
asec
Арксеканс
asech
Гиперболический арксеканс
asin
Арксинус
asinh
Гиперболический арксинус
atan
Арктангенс
atanh
Гиперболический арктангенс
cos
Косинус
cosh
Гиперболический косинус
cot
Котангенс
coth
Гиперболический котангенс
csc
Косеканс
csch
Гиперболический косеканс
sec
Секанс
sech
Гиперболический секанс
sin
Синус
sinh
Гиперболический синус
tan
Тангенс
tanh
Гиперболический тангенс
Остальные расширенные математические функции, не вошедшие в подгруппу тригонометрических функций, представлены в табл.
Расширенные математические функции
-
Функция
Описание
deg-grad
Преобразование из градусов в секторы
deg-rad
Преобразование из градусов в радианы
grad-deg
Преобразование из секторов в градусы
rad-deg
Преобразование из радиан в градусы
pi
Получение значение числа π
sqrt
Вычисление квадратного корня
**
Вычисление степени числа
exp
Вычисление экспоненты
log
Вычисление логарифма
log10
Вычисление десятичного логарифма
round
Округление числа
mod
Вычисление остатка от деления
CLIPS предоставляет 4 функции, предназначенные для преобразования своего аргумента из градусов в секторы и радианы и обратно (360° равняется сектору, размером 400, и 2 радианам). Значения, возвращаемые этими функциями, принадлежат вещественному типу. Синтаксис функций приведен ниже.
(deg-grad<выражение>)
(deg-rad<выражение>)
(grad-deg<выражение>)
(rad-deg<выражение>)
Функция pi предназначена для получения числа «пи» с точностью до 14-го знака и не имеет параметров.
(pi)
Функция sqrt возвращает значение квадратного корня, извлеченного из ее аргумента, в виде числа с плавающей точкой.
(sqrt <выражение>)
Для возведения числа в заданную степень предназначена функция **. Она возводит первый аргумент в степень (возможно не целую), заданную вторым аргументом, и возвращает результат вещественного типа.
(** <выражение1> <выражение2>)
Функция ехр возводит число е (основу натурального логарифма, имеющую значение, приблизительно равное 2.718281828459045) в степень, равную полученному аргументу, и возвращает полученное значение в виде числа с плавающей точкой.
(ехр <выражение>)
CLIPS предоставляет пару функций, предназначенных для вычисления натурального и десятичного логарифма.
(log <выражение>)
(logl0 <выражение>)
Аргументы и возвращаемый результат обеих функций являются вещественными значениями. Функция log (натуральный логарифм) возвращает такое число х, что следующее уравнение является верным п = е*, где п — аргумент функции. В свою очередь функция log10 (десятичный логарифм) возвращает число х, удовлетворяющее уравнению п = 10х, где п — аргумент функции. В примере 15.3 и на рис. 15.3 приведены варианты использования логарифмических функций.
Функция round округляет свой аргумент до ближайшего целого числа. Если аргумент находится точно между двумя целыми числами, то он округляется к меньшему числу. Тип возвращаемого результата — integer.
(round <выражение>)
Функция mod возвращает остаток от деления первого аргумента на второй, предполагая, что результат деления должен быть целочисленным. Функция возвращает значение типа integer, если оба аргумента целочисленные. В противном случае функция возвращает вещественный результат.
(mod <выражение!> <выражение2>)