Студопедия — 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; просмотров: 331. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

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

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Типовые ситуационные задачи. Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической   Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической нагрузке. Из медицинской книжки установлено, что он страдает врожденным пороком сердца....

Типовые ситуационные задачи. Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт. ст. Влияние психоэмоциональных факторов отсутствует. Колебаний АД практически нет. Головной боли нет. Нормализовать...

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

БИОХИМИЯ ТКАНЕЙ ЗУБА В составе зуба выделяют минерализованные и неминерализованные ткани...

Типология суицида. Феномен суицида (самоубийство или попытка самоубийства) чаще всего связывается с представлением о психологическом кризисе личности...

ОСНОВНЫЕ ТИПЫ МОЗГА ПОЗВОНОЧНЫХ Ихтиопсидный тип мозга характерен для низших позвоночных - рыб и амфибий...

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