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



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

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

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

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

Краткая психологическая характеристика возрастных периодов.Первый критический период развития ребенка — период новорожденности Психоаналитики говорят, что это первая травма, которую переживает ребенок, и она настолько сильна, что вся последую­щая жизнь проходит под знаком этой травмы...

РЕВМАТИЧЕСКИЕ БОЛЕЗНИ Ревматические болезни(или диффузные болезни соединительно ткани(ДБСТ))— это группа заболеваний, характеризующихся первичным системным поражением соединительной ткани в связи с нарушением иммунного гомеостаза...

Решение Постоянные издержки (FC) не зависят от изменения объёма производства, существуют постоянно...

Устройство рабочих органов мясорубки Независимо от марки мясорубки и её технических характеристик, все они имеют принципиально одинаковые устройства...

Ведение учета результатов боевой подготовки в роте и во взводе Содержание журнала учета боевой подготовки во взводе. Учет результатов боевой подготовки - есть отражение количественных и качественных показателей выполнения планов подготовки соединений...

Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...

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