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

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

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




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


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


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


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

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

Тема: Составление цепи питания Цель: расширить знания о биотических факторах среды. Оборудование:гербарные растения...

Потенциометрия. Потенциометрическое определение рН растворов Потенциометрия - это электрохимический метод иссле­дования и анализа веществ, основанный на зависимости равновесного электродного потенциала Е от активности (концентрации) определяемого вещества в исследуемом рас­творе...

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

Сущность, виды и функции маркетинга персонала Перснал-маркетинг является новым понятием. В мировой практике маркетинга и управления персоналом он выделился в отдельное направление лишь в начале 90-х гг.XX века...

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