Студопедия — Potato (weight)
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Potato (weight)






name, name1, name2 = symbol

weight = integer

 

Примеры составных объектов из области определения article можно использовать в утверждениях, определяющих отношение owner:

 

owner(«Боря», friend(«Монморенси»)).

owner(«Боря», dog(«Монморенси»)).

owner(«Боря»,book(«Монморенси»,«Марс», «Мерседесов»)).

owner(«Боря», boat).

owner(«Боря», potato(10)).

 

При введении цели:

owner(«Боря», Have).

Будет получен ответ:

Have = friend(«Монморенси») Have = dog («Монморенси»)

Have = book («Монморенси», «Марс», «Мерседесов»)

Have = boat Have = potato(10)

Таким образом, описание домена в случае использования составного объекта имеет вид:

compDom = f1(d1_1, d1_2,..., d1_n);

F2(d2_1, d2_2,..., d2_m);...;

FM(dM_1, dM_2,..., dM_k),

где fi - функтор i-ой альтернативы,

{di_j} – множество компонентов i-й структуры.

 

Составные объекты могут сравниваться с использованием предиката «равенство» (пример 1.1).

 

/*Пример 1.1.*/

Domains

d = pair(integer, integer); single(integer); none

Predicates

Equal(d, d)

Clauses

Equal(X, X).

 

При вводе следующих целей имеем:

Equal(single(1), pair(1,2)). ложно,

Equal(pair(3,4)), pair(3,4)). истинно,

Equal(none, none). истинно.

 

Однако, equal(5, 4). - дает ошибку, так как имеется несоответствие доменов.

 

Для удовлетворения последней цели необходимо добавить следующее описание предиката equal:

Equal(integer, integer),

Тогда equal(5,4). - ложно,

Equal(5,5) - истинно.

 

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

equal:

equal(X,Y):- X/Y < 1.1, X/Y >0.9.

 

 

Инструменты: компьютер IBM PC с любой операционной системой, в которой реализован язык PDC Prolog.

 

Вопросы для защиты лабораторной работы:

1. Какое назначение предиката random(RandomReal)?

2. Как использовать язык Prolog в режиме калькулятора?

3. Перечислире основные правила установления соответствия между левой и правой частями выражения при выполнении операции «=».

3.

 

Литература:

  1. Петухов О.А. PDC Prolog - язык систем искусственного интеллекта. / Петухов О.А. - Учебн. пособие. - СПб.: СЗПИ, 1999, - с.
  2. Экспертные системы: Инструментальные средства разработки./ Под ред. Ю.В. Юдина.- Учебн. пособие., СПб.: Политехника, 1996. - 220 с.
  3. Бакаев А.А. Экспертные системы и логическое программирование./ Бакаев А.А., Гриценко В.И., Козлов Д.Н.- Киев: Наукова думка, 1992.- 220 с.
  4. Ин Ц. Использование Турбо-Пролога/ Ин Ц., Соломон Д. - Пер. с англ. - М.: Мир, 1993. - 608 с.

 

 


ЛАБОРАТОРНАЯ РАБОТА № 2

 

По дисциплине: СИСТЕМЫ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА

Тема занятия: РЕАЛИЗАЦИЯ АРИФМЕТИЧЕСКИХ И ЛОГИЧЕСКИХ ОПЕРАЦИИ

Цель занятия: Изучение способов реализации арифметических вычислений и логических операций.

Количество часов: 4

Содержание работы: Разработать программы, в которых реализованы арифметические и логические операции

 

Методические указания по выполнению:

 

Язык Prolog обладает всеми арифметическими возможностями, присущими другим языкам программирования (Pascal, С). Для этого используется мощный набор математических функций и стандартных предикатов.

 

Реализация арифметических операций

 

Выполнение четырех основных арифметических операций с указанием соответствия типов операндов и результатов выполнения приведены в табл. 2.1.

Таблица 2.1.

Операнд 1 Оператор Операнд 2 Результат

integer +,-,* integer Integer

integer +,-,* real Real

real +,-,* integer Real

real +,-* real Real

integer integer

или / или Real

real real

 

Необходимо отметить, что числа можно представлять в различных системах счисления: десятичной или шестнадцатиричной. Последние начинаются со знака доллара ($), например:

$2ЕА = 2*16*16+14*16+10 =746.

 

В простом примере 3.1 осуществляется сложение двух чисел, представленных в различных системах счисления.

 

/* Пример 2.1.*/

Goal

write("AA="),readint(AA),nl,

A=-$2EA+AA, write("A=",A).

 

Математические функции языка приведены в табл. 2.2. Причем аргумент X этих функций является арифметическим

выражением.

 

АРИФМЕТИЧЕСКИЕ ВЫРАЖЕНИЯ, такие, например, как 4, W или X = (cos(Y) - 1.5) / 3 + 2.5, это константа, или переменная, или конструкция, построенная из них путем использования операторов, функций, или скобок и предиката равенства (=).

Таблица 2.2.

Предикат Описание

abs(X) Абсолютное значение числа Х

X

exp(X) Вычисляется число е в степени Х (е)

ln(X) Натуральный логарифм Х

lg(X) Десятичный логарифм (X)

sqrt(X) Квадратный корень из Х

sin(X)

cos(X) Тригонометрические функции

tan(X) (Х – число, выражающее угол в радианах)

arctan(X) Арктангенс действительного числа Х

random(X) Устанавливает Х, как псевдослучайное вещественное число с равномерным распределением: 0<=X<1

random(Y,X) Cлучайное целое число Х с равномерным распределением 0<=X<Y

round(X) Округляет значение Х

trunc(X) Усекает Х (отбрасывает младшие разряды)

X mod Y Выдает остаток от деления X на Y

X div Y Выдает частное от деления X на Y

 

Использование функции random(RandomReal) позволяет получать последовательность величин RandomReal, равномерно распределенных в интервале 0<= RandomReal <1. А для установления правого граничного значения для случайных величин используется функция randominit(Y). Функция же random(MaxValue,Randomint) выдает последовательность псевдослучайных величин равномерно распределенных в интервале 0<=Randomint<MaxValue.

 

При необходимости получить случайные вещественные числа Z в диапазоне от А до В включительно, нужно воспользоваться следующей целью:

random(X), Z = A + X * (B-A+1).

 

Для получения случайных целых чисел Z в диапазоне от А до В включительно можно воспользоваться целью:

random(Y,X), Z = A + Y +1.

 

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

- вычисляются выражения в скобках,

- во всем выражении реализуются слева направо операции

умножения и/или деления,

- выполняются слева направо операции сложения и/или

вычитания.

 

В примере 2.2. реализуется вычисление значений арифметического выражения. При A=2 и B=0,3 X будет равен - 2,1815545036. Это пример, демонстрирующий программу на языке Prolog, содержащую лишь один раздел (раздел goal). Использование предикатов ввода-вывода будет пояснено ниже.

 

/*Пример 2.2.*/

Goal

write(«A=»), readint(A), nl,

write(«B=»), readreal(B),nl,

X = -A + ((cos(B) - 1.5) / 3),

write("X=",X).

 

Примеры 2.1 и 2.2 показывают, что язык Prolog может использоваться просто в режиме калькулятора. Для этого, не вводя никакой программы, необходимо войти в окно диалога и набрать то арифметическое выражение, значение которого необходимо вычислить.

 

Пусть необходимо написать программу (пример 2.3), реализующую арифметические операции сложения, вычитания, умножения и деления. Величины, над которыми производятся операции имеют тип real, т.е. они могут быть представлены в любой форме записи целой или вещественной. Запись самой операции имеет тип symbol. Тогда предикат ОПЕРАЦИЯ (operation) имеет, например, следующий вид:







Дата добавления: 2015-10-19; просмотров: 324. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Условия приобретения статуса индивидуального предпринимателя. В соответствии с п. 1 ст. 23 ГК РФ гражданин вправе заниматься предпринимательской деятельностью без образования юридического лица с момента государственной регистрации в качестве индивидуального предпринимателя. Каковы же условия такой регистрации и...

Седалищно-прямокишечная ямка Седалищно-прямокишечная (анальная) ямка, fossa ischiorectalis (ischioanalis) – это парное углубление в области промежности, находящееся по бокам от конечного отдела прямой кишки и седалищных бугров, заполненное жировой клетчаткой, сосудами, нервами и...

Основные структурные физиотерапевтические подразделения Физиотерапевтическое подразделение является одним из структурных подразделений лечебно-профилактического учреждения, которое предназначено для оказания физиотерапевтической помощи...

Травматическая окклюзия и ее клинические признаки При пародонтите и парадонтозе резистентность тканей пародонта падает...

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

Принципы и методы управления в таможенных органах Под принципами управления понимаются идеи, правила, основные положения и нормы поведения, которыми руководствуются общие, частные и организационно-технологические принципы...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия