Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Представление знаний в ИС / Лабораторные работы (1).doc
Скачиваний:
35
Добавлен:
22.05.2015
Размер:
882.18 Кб
Скачать

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Тамбовский государственный технический университет» (ФГБОУ ВПО «ТГТУ»)

Утверждено

На заседании кафедры «Информационные системы и защита информации»

протокол № 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>)