ЯЗык "Пролог". Понятие базы знаний, определение. Задачи и упражнения, страница 6


Например:

погода(пн,15,760,юж).

Рассмотрим правила и вопросы всех трех логических связок:


Законы де Моргана   нам потребуются, чтобы составить следующие - авила:

По-русски:

На Прологе:

Давление в данный день не нормальное, если оно не равно 760 мм.рт.ст.

ненорм(Х):- погода(Х, ,Р,_), not(P=760).

В какой день ветер был южным, а температура - выше 20°С?

Цель: погода(Х,Т,_,юж), Т>20.

Плохая погода была в те дни, когда температура опускалась ниже 10°С или дул северный ветер.

плохая погода(Х):- пого-Да(Х,Т,_,_), Т<10. р       плохая_погода(Х):-погода(Х,Т,_,сев).

По-русски:

На Прологе:

X l -.     аетер - это не северный и

хороший_ветер(Х)> погода(Х,_._,У),

не восточный.

not(V=cee), not(V=BOCT).

Приятная погода - когда нет одно-

приятная погода(Х):-

временно ненормального давления и

погода(Х, _,_,_),

плохого ветра.

поЦплохой вегер(Х)).

приятная_погода(Х):-

погода(Х, , ,_), по^ненорм(Х)).

плохой ветер(Х):- погода(Х,_, ,V),

У=сев.

плохой ветер(Х):- погода(Х,_, ,V),

V=boct.

Программа, реализующая нашу базу знаний может быть такой:

% База знаиий "Гидрометцентр"

domains

день=пн;вт;ср;чт;пт;сб;вс %"день"-дни недели,

TeMnepaTypa=integer       %"температура" - температура в

%градусах Цельсия (целое число) давление=1п1едег     %"давление" - давление в мм.рт.ст. ветер=юж;ю_в;ю_зап;сев:сев_в;сев_зап;вост;зап

predicates

погода(день,температура,давление,ветер) ненорм(день) плохая погода(день)


хороший_ветер(день)

приятная_погода(день)       .                                                   < ,

clauses

погода(пн, i 5,760,юж)

погода(вт,12,754,сев).

погода(ср,7,766.вост).

погода(чт,0,700,сев_в).

погода(пт,5,780,ю_зап).

погода(сб.10,750,ю_в).

погода(вс,20,760,юж).

л...------- „„«.шт..».»....... ..................*...«------------ «'»»**"»''"«......... "•/

%Давление в данный день ненормальное, если оно не равно 760 мм.рт.ст.

/„.....„------ ..„♦...,..«....«....,.*...««.«..*«...«...««.«......♦«.«.«««.„., ненорм(День):-погода(День,_,Давление,_),Давление<>760.

/...i......».i......li,u..w..iW.u»H.....»..M.i...v»>»""WM'"'4""""'"|

%Плохая погода - когда температура ниже 10 С или дует северный ветер.

плохая_погода(День)>

погода(День,Температура,_,_),Температура<10. плохаяпогода(День):погода(День,___ ,сев).

%Хороший ветер - это не северный и не восточный.

хороший_ветер(День):-погода(День,_,_, Ветер),not(BeTep=cee),not(BeTep=BOCT).

/..*......,.,.........*........».--------------- ..ш........».»...»^!.».».)...».»^""»»/

%Приятная погода - когда нет одновременно ненормального %давления и плохого ветра

приятная_погода(День)>

погода(День,_,_,_),хорсший_ветер(День), по{(ненорм(День)).

4. ПеременныеиконстантывПрологе. Встроенные арифметическиефункции

В Прологе различают переменные и константы. Константами являются все числа, символы, заключенные в одинарные кавычки, и последовательности символов, заключенные в двойные кавычки. В