Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

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






Рылымдар






 

Қ ұ рылым – бұ л қ ұ рылым атынан жә не жақ шағ а алынғ ан, ү тірмен бө лінген аргументтер тізімдерінен тұ ратын конструкция. Қ ұ рылым элементтері ретінде атомдар, сандар жә не тізімдер болуы мү мкін. Компоненттерді қ ұ рылымғ а біріктіру ү шін функтур таң дау қ ажет. Мысал:

 

мерзім(1, мамыр, 1983)

 

мұ нда функтур – мерзім. Бұ л мысалда барлық компоненттер тұ рақ ты болып табылады (екі компонент – бү тін сандар жә не біреуі – атом). Мамырдың кез келген кү нін келесі сурет 1-де кө рсетілген қ ұ рылыммен анық тауғ а болады:

мерзім(кү н, мамыр, 1983).

 
 

 
 

 

 


 

 

Сурет 2-дегі кө рсетілген нысандарды келесі прологтық термдермен кө рсетуге болады:

 

Р1=нү кте(2, 4).

Р2=нү кте(5, 2).

S=кесінді(Р1, Р2)=кесінді(нү кте(2, 4), нү кте(5, 2)).

Т=ү шбұ рыш(нү кте(2, 4), нү кте(5, 2), нү кте(7, 6)).

2.3. Салыстыру

 

Пролог тілінде орындалатын негізгі операция – салыстыру операциясы (басқ аша унификация немесе келісу деп те атайды). Бұ л операция табысты немесе табыссыз болады. Айнымалылар ережелер жә не фактілерді тұ рақ тылармен салыстыру нә тижесінде ө з мә ндерін алады. Айнымалы ө з мә нін алмағ анша, ол бос айнымалы деп аталады. Ал айнымалы ө з мә нін алғ анда, ол байламды болады. Бірақ ол сауалғ а жауап алғ анғ а дейінгі уақ ыт барысында ғ ана байламды болып қ ала береді. Сонан кейін, Пролог айнымалыны босатып, қ айтарылады жә не баламалы шешім іздейді. Айнымалылар салыстыру процесінің бір бө лігі ретінде қ ызмет атқ арады. Салыстыру операциясы келесідей анық талады:

1. Тұ рақ ты тек тұ рақ тымен салыстырылады.

2. Ұ қ сас қ ұ рылымдар бір-бірімен салыстырылады.

3. Айнымалы тұ рақ тымен немесе алдын ала белгілі айнымалымен салыстырылады.

4. Екі бос айнымалылар бір-бірімен байланысуы жә не салыстырылуы мү мкін.

 

Салыстыру мысалдары:

 

5 саны салыстырылады 5-пен.

«бар» фактісі «бар» фактісімен салыстырылады.

Мұ рат тұ рақ тысы Қ айрат тұ рақ тысымен салыстырылмайды.

 

 

2.4. Сұ рақ тар

 

Сұ рақ -бұ л бағ дарлама орындалу барысында болатын логикалық шешімнің бастапқ ы нү ктесі. Барлық сұ рақ тарғ а жү йе Иә немесе Жоқ деп жауап қ айтарады.

 
 

Вертикальды жә не горизонтальды кесінділерді анық тайтын бағ дарлама фрагментін жазайық. Кесінді вертикальды деп аталады, егер олардың соң ғ ы нү кте координаттары сә йкес келеді; кесіндіге басқ а шектеулер қ ойылмайды. «Горизонтальдылық» қ асиетіде вертикальдылық сияқ ты қ алыптасады, тек Х жә не У мә ндерін орындарын ауыстыру керек. Осы фактілерден тұ ратын келесі бағ дарлама айтылғ ан анық тауларды жү зеге асырады:

 

верт(кес(нү кте(Х, У), нү кте(Х, У1))).

гор(кес(нү кте(Х, У), нү кте(Х1, У))).

 

Бұ л бағ дараламамен келесідей диалог болуы мү мкін:

 

? -верт(кес(нү кте(4, 2), нү кте(4, 6))).

иә

? -верт(кес(нү кте(1, 1), нү кте(2, У))).

жоқ

? -гор(кес(нү кте(1, 1), нү кте(7, У))).

У=1

 

Бағ дарламағ а жалпылама қ иындау сұ рақ қ алыптастырайық: «Басы (2, 3) нү ктесінде жатқ ан қ андай да бір вертикальды кесінді бар ма?»

 

? -верт(кес(нү кте(4, 2), Р)).

Р=нү кте(4, У)

 

Келесі сұ рақ қ оялық: Бір уақ ытта горизонтальды да жә не вертикальды болатын кесінді бар ма?

 

? -верт(S), гор(S).

S=кес(нү кте(Х, У), нү кте(Х, У)).

 

2.5. Фактілер жә не ережелер

 

Фактілер – бұ л нысандар немесе нысан қ асиеттері арасындағ ы байланысты анық тайтын аргументтері, тұ рақ тылары бар предикаттар. Фактілер ә рқ ашанда ақ иқ ат болып табылады жә не олар бағ дарлама орындалу барысында орындалу негізінің дә лелі ретінде қ ызмет атқ арады. Фактілер мысалы:

 

Иванов(телефон, т123456).

Петров(телефон, т789012).

 

Ережелер бар фактілер негізінде нысандар арасындағ ы жаң а қ атынастарды анық тауғ а мү мкіндік береді. Аргументтері ретінде тұ рақ тылар, айнымалылар қ олданылуы мү мкін. Ереже қ ұ рылымы:

 

< ереже басы>: -< ішкімақ сат1>, < ішкімақ сат2>,..< ішкімақ сатN>.

 

мұ ндағ ы “: -“ - ЕГЕР; “, ” – ЖӘ НЕ дегенді білдіреді. Фактілер мен ережелер соң ында нү кте қ ойылады ереже мысалы:

 

Жігіт(Х): -ұ натады(Х, рэп), киеді(Х, блейзер).

 

Былай тү сінуге болады: Қ андайда бір Х- жігіт, егер Х рэп ұ натады жә не блейзер киеді.

 

2.6. Бағ дарлама орындалу алгоритмі

 

Прологта фактілер мен ережелер белгілі бір облыстағ ы нысандар арасындағ ы қ атынас пен байланыстардың суреттелуі болып табылады. Фактіні толығ ымен анық талғ ан процедура ретінде қ арастыруғ а болады. Ереже:

 

А: -В1, В2, …, Вn

 

Мұ ны А процедурасының анық тамасы ретінде қ арастыруғ а болады, оны анық тау ү шін В1, В2, …, Вn білу қ ажет. В1, В2, …, Вn процедуралары сол жақ тан оң ғ а қ арай орындалады. Егер кезекті процедура табысты орындалса, онда келесі процедурағ а кө шу орындалады, ал егер табыссыз орындалса, онда сол процедураның келесі нұ сқ асына кө шу орындалады. Ол кө шу жоғ арыдан тө мен принципі бойынша орындалады. Білім қ орында фактілер мен ережелерді салыстыру ү шін іздеу жоғ арыдан тө мен қ арай тізім бойынша орындалады жә не егер сә йкес факті табылмаса, онда жауап қ анағ аттандырарлық сыз болады. Мысалы:

 

Ұ натады(лаззат, оқ уды).

Ұ натады(сауле, бадминтон).

Ұ натады(айгү л, жү зуді).

Ұ натады(айгү л, оқ уды).

? -Ұ натады(Х, оқ уды), ұ натады(Х, жү зуді).

 

Берілген сұ рақ, оқ уды жә не жү зуді ұ нататын адамдар бар ма дегенді білдіреді. Алдымен Пролог сауалдың бірінші бө ліміне сә йкес фактіні іздейді - Ұ натады(Х, оқ уды). Х айнымалысы лаззат мә німен байланысады, сонымен бірге Пролог фактілер тізімінде іздеу процедурасының жағ дайын кө рсететін сілтеуішті бекітеді. Одан ә рі Пролог сауалдың екінші бө лігін салыстырады, Х=лаззат мә ніне сә йкес. Яғ ни, Ұ натады(лаззат, жү зуді) фактісін іздейді. Мұ ндай факт жоқ болғ андық тан, іздеу табыссыз аяқ талады. Содан Пролог сауалдың бірінші бө лігіне қ айта оралады - Ұ натады(Х, оқ уды), Х айнымалысын ажыратады жә не орнатылғ ан сілтеуіштен бастап іздеуді жалғ астырады. Ұ натады(айгү л, оқ уды) фактісі сә йкес келеді. Х айнымалысы айгү л мә німен салыстырылады да ә рі қ арай сауалдың екінші бө лігі сә йкесінше фактімен табысты салыстырылады Ұ натады (айгү л, жү зуді). Қ айтарылымы бар іздеу орындалынды.

 

2.7. Пролог – бағ дарламаның декларативтік мағ ынасы

 

Келесі сө йлемді қ арастырайық:

 

Р: -Q, R.

 

Декларативтік интерпретация:

 

1) Р- ақ иқ ат, егер Q, R ақ иқ ат болса.

2) Q жә не R-ден P шығ ады

 

Процедуралық интерпретация:

 

1) Р есебін шешу ү шін, алдымен Q ішкі есебін шеш, сосын – R ішкі есебін шеш.

2) Р-ге жету ү шін, алдымен Q-ге, одан кейін R-ге жету керек.

 

Мақ саттар арасындағ ы ү тір конъюнкцияны білдіреді: олардың барлығ ы ақ иқ ат болуы керек. Бірақ Прологта мақ саттар дизъюнкциясы да болуы мү мкін: кем дегенде бір мақ сат ақ иқ ат болуы қ ажет. Дизъюнкция нү ктелі ү тірмен белгіленеді. Мысалы:

 

1) Р: -Q; R. немесе:

2) Р: -Q.

Р: -R.

1)< => 2)

 

Ү тір мақ саттарды нү ктелі ү тірге қ арағ анда, кү штірек байланыстырады. Осымен бірге, сө йлем келесідей болады:

 

Р: -Q, R; S, T, U.

 

Келесідей тү сіндіріледі: 1)Р: -(Q, R); (S, T, U). немесе: 2) Р: -Q, R.

P: -S, T, U.

 

2.8. Пролог-бағ дарламаның қ ұ рылымы

 

Бағ дарламаның қ ұ рылымы келесідей болады:

/* бірнеше қ атардағ ы комментарийлер */

% бір қ атардағ ы комментарий

CONSTANTS

%Бұ л бө лімде тұ рақ тылар анық талады

DOMAINS

%Бұ л бө лімде айнымалылар анық талады

PREDICATES

%Бұ л бө лімде предикаттар анық талады

CLAUSES

%Бұ л бө лімде фактілер жә не ережелер анық талады

DATABASES

%Бұ л бө лімде берілгендер қ орының динамикалық предикаттары анық талады

GOAL

%Бұ л бө лімде сауалдар(ішкі) анық талады

 

Домендер қ арапайым, қ ұ рылымды жә не стандартты емес болып бө лінеді. Стандартты домендерге: symbol, char, integer, real, string, file жатады.

symbol – берілгендердің символдық тү рі, екі тү рлі жазылу формасы бар: 1. кіші ә ріптен басталатын ә ріп, сан жә не астын сызу белгілерінің тізімі; 2. екілік тырнақ шағ а алынғ ан символдар тізімі.

char -бір символ.

integer – -32768…32768 диапазонындағ ы бү тін сандар

real - нақ ты сандар, кә дімгі жә не экспоненциалды тү рде жазу қ абылданады.

string -символдар қ атары, екілік тырнақ шағ а алынғ ан кез келген символдар тізімі.

file- файлдық айнымалы, MS DOS файлдарын атау ережелері бойынша мә ні анық талады. Домендерді хабарлау мысалдары:

 

DOMAINS

a=integer

b=symbol

 

Стандартты домендерден басқ а қ арапайым жә не кү рделі нысандардан тұ ратын домен қ ұ рылымдарын пайдалануғ а болады. Бір хабарламада or немесе нү ктелі ү тір арқ ылы бө лінген бірнеше қ ұ рылымды анық тауғ а болады.:

 

DOMAINS

d1, d2, d3=symbol

f=fruits(d1, d2, d3); p(d3)

 

Предикаттар бө лімінде ереженің сол бө лігі немесе CLAUSES бө лімінің ережесінің тақ ырыбы кө рсетіледі. CLAUSES бө лімінде бекітулер анық талады. Нақ ты бір предикаты бар ережелер мен фактілер бір блок аясында жазылады, яғ ни, бірінен кейін бірі орындалады. Ереже денесінде предикаттарды анық таудан басқ а стандартты предикаттар жә не салыстыру операциялары қ олданылуы мү мкін. Стандартты предикаттар тү рлі файлдармен жұ мыс жасауда, енгізу жә не шығ ару, DOS операциялық жү йесімен жұ мыс, қ атарларды ө ң деу, графикалық режимді қ олдау, басқ а бағ дарламалау жү йелерімен байланысты қ амтамасыз ету функцияларын атқ арады.

GOAL бө лімі бағ дарламағ а сауал беруден тұ рады. Ішкі сауал ү шін Пролог бірінші сә йкес келетін жауапты табады, бірақ жү йе табылғ ан нә тиже туралы хабарламайды. Бұ л ә рекеттер бағ дарламалануы қ ажет. GOAL сауалдар бө лімі бағ дарламада болмауы мү мкін, бұ л жағ дайда бағ дарламаны іске қ осқ анда сұ рақ ты енгізуге болады. Сыртқ ы сауалды қ олдану ү шін жү йе шешімнің барлық варианттарын іздеп, сол терезеде табысты немесе табыссыз хабарламаны шығ арады.

 

№2 Зертханалық жұ мысқ а мысалдар:

Мысал 1. Вертикальды кесінді қ атынасына Пролог тілінде бағ дарлама қ ұ ру
Мысал 2. Егер координаталары берілген болса, тең кесінділер қ атынасын анық тау
Мысал 3. Егер кесінді координаталары берілсе, кесіндінің ортасы қ атынасын анық тау
Мысал 4. Егер ү шбұ рыштың тө белері белгілі болса, оның медианасының координаталарын анық тау

Мысал 1. Вертикальды кесінді қ атынасына Пролог тілінде бағ дарлама қ ұ ру.

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.017 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал