Например:
погода(пн,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. ПеременныеиконстантывПрологе. Встроенные арифметическиефункции
В Прологе различают переменные и константы. Константами являются все числа, символы, заключенные в одинарные кавычки, и последовательности символов, заключенные в двойные кавычки. В
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.