Фсо пгу 18. 2/07 Қазақстан Республикасының Білім және ғылым министрлігі


Интеграциалау дәрежесі бойынша жіктеу



бет2/3
Дата28.06.2016
өлшемі407.31 Kb.
#162837
1   2   3

Интеграциалау дәрежесі бойынша жіктеу


  • Афтономды Э.Ж. қолданушымен консультация режімінде жұмыс істейді .

  • Гибридті Э.Ж. программалық комплекс. (Мысалы: математикалық статистика, сызықтық программалау не МҚБЖ).

Уақытпен байланыс бойынша жіктеу


  • Тұрақты Э.Ж. білім базасы уақыт бойынша өзгермейтін облыстарда жасалады. (Автомобильді ақауларды анықтау).

  • Квазидинамикалық Э.Ж. белгіленген уақыт интервалы өткен сайын өзгеретін ситуацияларды таңдайды.

  • Динамикалық Э.Ж. мәліметтер өздіксіз өзгеріп отыратын объектілер датчиктермен жұмыс істейді. (Мысалы: реанимациялық палата мониторингі)

Шешілетін есеп б/ша жіктеу

  • Мєліметтерді интерпретациялау. Бұл э.ж./дің кәдімгі есебі.Интерпретация мәліметтердің мағынасын анықтау ұғымын береді. Оның нәтижесі келісімді және дұрыс болу қажет. (психологияда қолданады)

  • Диагностика кейбір жүйелерде ақауларды анықтау ұғымын береді. Ақаулық – бұл нормадан ауытқу. Бұл жерде техникалық жүйелердегі жабдық ақауын және тірі организмдердің ауруын және басқа табиғат аномалиларын қарауға болады. (Медицинада ақпаратта)

  • Мониторинг. Оның негізгі есебі – қазір болып жатқан уақытта мәліметтерді үздіксіз интерпретациялау және параметрлер шектен шығып бара жатса ол туралы сигнал береді. Басты проблемалары – дабыл ситуацияларын жіберу және жалған сигнал беру.

  • ( Мысалы: электростанция жұмысын бақылауға, атомдық реактордың диспетчерлеріне көмек көрсетуге, химиялық заводтарда авариядық датчиктерді бақылауға қолданылады.)

  • Жобалау – бұрыннан қасиеттері анықталған объектілерді құруға спецификацияларды дайындау. Бұл жерде спецификация - керекті құжаттардың жиыны – сызба, жазба, т.б.

Осындай Э.Ж. ЭЕМ конфигурациясын жобалау, электр тізбек синткезі жұмыстарында қолданылады.

  • Болжау жүйелері-берілген ситуациядан ықтимал салдары (следствия) логикалық түрде шығарады. Бұл жүйені ауа райын болжағанда,келесі жылғы егін бағасын,экономикадағы болжауда қолданылады.

  • Оқыту-ЭЕМ көмегімен бір пәнді оқу кезінде қателерді анықтайды және дұрыс жауапты айтады.



Жасанды интеллект – бұл информатиканың бір бағыты. Оның мақсаты қолданушыға өзінің интеллектуалдыесптерін шешуге арналған аппараттық- программалық құралдарды жасау.




  1. Білімге негізделген жүйелерді жасау және білімді ұсыну.

Бұл жасанды интеллекттің негізгі бағыты. Ол білімді ұсыну модельдерін жасаумен, білім базасын жасаумен байланысты.




  1. Ойын және шығармашылық.

Дәстүрлі жасанды интеллект өзіне инеллектуалды ойын есептерін – шахмат, Го, қосады. Оның негізінде жатқан бұрынғы әдіс – лабиринттік модель. Қазір бұл коммерциялық бағытта жүреді. Себебі бұл идеялар ғылымға нәтиже әкелмейді.




  1. Адамның тілінде интерфейсті ұйымдастыру және машиналық аудару жүйесін жасау.

50 жылдары жасанды интеллекті зерттеудің әйгілі тақырыбы машиналық аудару облысы болатын. Бұл облыстағы ең бірінші программа – ағылшын тілінен орыс тіліне аудармашы болатын. Бірақ ол сөзбе сөз аударатындықтан нәтижеге әкелмейтін. Қазіргі кезде күрделендірілген модель қолданылады. Ол бірнеше блоктан тұратын кәдімгі тілдің сөздерін талдауды және синтездеуді өзіне қосады.

Талдау үшін бұл:


  • морфологиялық талдау – мәтінлдегі сөздерді талдау.

  • Синтаксистік талдау – сөйлемдерді, грамматикагы және сөз арасындағы байланысты талдау.

  • Семантикалық талдау – бір пәннің білім базасы негізінде әр сөйлемнің мағынасын талдау.

  • Прагматикалық талдау - өзіндік білім базасы негізінде мәтіндегі сөйлемдердің мағынасын талдау.

Синтез осыған ұқсас этаптарды қосады.




  1. Объектіні, бейнені ажырату (распознание). Әр объектіге өзіне сәйкес белгілер матрицасы қойылады. Осы белгілер бойынша объект ажыратылады.

  2. Оқыту және өзін өзі оқыту.


Тақырып «Пролог тіліне кіріспе»
Бұл тақырыптарға арналған материалды әдебиеттер тізімінде көрсетілген көптеген оқулықтардың алғы сөздерінде және де журналдар мақалаларында табуға болады. Егер оқушылар Прологқа қарапайым кіріспені базалық курста оқыған болса, онда бұл тақырыпта негізгі принципті позицияларды еске түсіруге және Прологта жазылған бірнеше программаларды көрсетуге болады. Егер оқымаса, онда олардың құрылуы туралы ешқандай формалды ережелер еске түсірілмейді және жалпы дәрісті берген соң Прологта қарапайым программалар көрсетіледі. Осындай программаларда екі – үш факт және бір сұрақ болады. Осы сұрақтың жауабы оқушылар үшін айқын болу қажет. Жауаптың айқындылығы адам үшін оның миы бір (жеңіл болса да) программаны орындағанын білдіреді. Егер бұл есепті Паскальда шығаратын болса, онда программаны адам жазады, ал егер оны Прологта шығарса, онда Прологтың жүйелік программасы бұл қолданбалы программаны өзі жазады. Ол оны қалай істейді бұл басқа сұрақ.

Тағы бір осы тақырыпта айтылатын маңызды ой осындай: жүйе өзі логикалық қорытынды жасау үшін берілетін ақпарат тек мәліметтер жиыны ретінде берілмеу керек. Берілетін ақпараттың ішінде оған кіретін элементтер арасында байланыс болады. Осындай ақпарат –тек мәліметтер емес, қарапайым білім болады. Осыған орай қарапайым білім базасының ұғымын енгізу қажет. Бұл ұғымды оқушылар жақсы білетін мәліметтер қоры ұғымымен салыстырып түсіндіруге болады. Білім базасындағы объектілер арасында байланыс туралы ақпарат сақталады және ол фактілерден және ережелерден құралған, ал мәліметтер қорында тек фактілер сақталады. Қарапайым білім базасының мысалдарын әдебиеттер тізімінде көрсетілген оқулықтарда табуға болады.

Пролог-Д жүйесі жұмысының логикалық негіздері.

Математикалық логика логикалық бағдарламалаудың теорилық негізі болып саналады. Бұл бөлімнің мақсаты Пролог-Д жүйесімен жұмыс принциптерін мазмұндау үшін керек, математикалық логиканың алғашқы түсініктерін анықтау.

Пролог-Д-ның көмегімен есептерді шығару үшін, бұл есеп туралы білімдерді көрсету жеткілікті, ал шешімнің құру үрдісі бұл жағдайда кейбір рутиналық үрдіске әкеледі.

Білімді көрсету дискретті объектілер жиынтығының көмегімен жүзеге асыруға болады. Егер объектілерді шешілетін есеппен қатынастырсақ, оның пәндік аймағын қалыптастырады. Мысалы, егер есеп туыстық қатынастардың бейнеленуінен құралатын болса, онда пәндік аймақ - адам көпшілігі, ал егер есеп есептеуіш, онда пәндік аймақ - бүтін сандар жиынтығы. Объектілері математикалық логика тұрғыдан атаулары болу керек. Есеп шешімінің құрылуы логикалық нәтижелердің негізін де жүргізілуі керек.

Есептің жазылуында қолданылатын объектілер, кездейсоқ болуы мүмкін. Мысалы, сандық немесе литералды тұрақтылар, айнымалылар, функциялар.

1.Тұрақтылар мысалдары мындай бола алады:

1, 2, 33, 14565 - сандық тұрақтылар;

ав, АНТ25, ПРОЛОГ - литералды тұрақтылар.

2.Айнымалылар мысалдар:

x, y, z, X, ы, Й.

3.Функцияға мысал:

автор(Толстой, Казаки), Сомма(2,3).

Математикалық логикада тұрақтылар, айнымалылар және функциялар жалпы алғанда терм атауымен біріктірілген. Терм ұғымын келесідей қарастыруға болады.

Терм - бұл f(t 1,t 2,...,t n), (t 1,t 2,...,t n ) түрдегі айнымалылар, тұрақтылар және функциялар.

Мұндағы әр ti - терм, ал а f - n-арлы функционалды символ немесе функтор(арлы - бұл аргументтер саны).

Объектілермен анықталған қатынас, функциядан ерекшеленеді. Қатынас пәндік аймақтан элементтер жиынтығын анықтайды және {АҚИҚАТ, ЖАЛҒАН}жиынтығында D n-нен кескін болып келеді. Мысалы, ана(x, y) қатынасы (x, y) жұптың жиынтығын анықтайды. (x, y) жиынтығы бұл аналар мен балалар жиынтығ. Математикалық логикада қатынастарға атау беріледі. Олар предикаттық символдар деп аталады, ал қатынастардың өзі предикат деп аталынады, ақырғы мысалда предикаттық символ - ана.

Предикат ұғымын қатаң түрде былайша келтіруге болады:

Предикат - бұл P(t1,t2,...,tm) мына түрдегі өрнек,

мұндағы әр ti - терм, ал P - m-арлы предикатты символ.

Логикада мынадай түйіндер жиынтығы бар: &, Ъ, , <- , <->, олар сәйкесінше "және", "немесе", "емес", "сонда және тек қана сонда" деп есептеледі. Предикаттарды және басқа формулаларды қоса отырып, түйіндерді логикалық формулалар құрастыруға қолданылады. Мыналарды белгілеп кету керек, логикалық түйіндер бұл:, &, Ъ, , <- , <-> қысқарту формулалары деп аталынатын, келесі қатынастардың көмегімен бірін бірі арқылы өрнектеледі:

( A & B ) дегеніміз ( A <- B ),

( A \/ B ) дегеніміз ( A) <- B,

( A <-> B ) дегеніміз ( A <- B )&( B <- A ),

мұндағы А және В - Формула негізі.

Түйіндер мен қатарлас жалпылама кванторлары (") және болу кванторлары ($) бар. Кванторлар айнымалылардың өзгеру шектігін анықтайды. Квантордан кейін тұрған формула, әрекет аймағы деп талынады. Кванторлар үшін де қысқарту формулалары бар:

$x А дегеніміз (("x (А))).


Формуланың мысалдары мына өрнектер болып келеді:

ана(x, y)&ана(y, z);

F1&F2ЪF3&F4, егер F1,F2,F3,F4 - формулалары.

Q(F1,F2), егер F1 и F2 - формулалары, ал Q – пайда болу кванторы ($).

Осылайша, формула ұғымын былайша түсіндіруге болады:

Формула – бұл логикалық түйіндерден және кванторлар көмегімен жасалған формулалардан тұратын, не өрнектер, не придиаттар.

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

Сөйлем – бұл әр айнымалы квантордың әрекет аймағында орналасқан формула.

Сөйлемнің мысалы ретінде мына өрнекті келтіруге:

әже(x, y)<-ана(x, z)&ана(z, y).

Бұл сөйлем, әже бұл ананың анасы деген мағынаны білдіреді. Бұл сөйлемнің алдында x, y, z айнымалылар бойынша квантор жалпылауының белгілері тұр. Олардың бар болуы, формуланың барлық x, y, z үшін орындалғанын білдіреді.Жоғарыда айтылған ережелер бойынша құралған сөйлемдер, бірінші қатарлы логика тілін жасайды. Бұл тілде термдер объект, ал предикаттар объектілер арасындағы қатынас болып табылады. Бұл тіл арқылы ЭЕМ-де шығарылатын барлық есептерді суретттеуге болады. Бірінші қатарлы логика тілінің негізінде логикалық бағдарламалаудың әр түрлі тілдерін құрастыруға болады. Көптеген мүмкін болатын сөйлемдер арасында «және» ( & ) және «егер» ( <- ) түйіндері бар сөйлем ерекше орын алады. Бұндай сөйлемдер дизъюнк-тар деп аталады. Нақты анықтамасы: Дизъюнкт – бұл мына түрдегі сөйлем:

A1&A2&...&Ak<-B1&B2&...&Bn, (1)


мұнда A1,A2,...,Ak,B1,B2,...,Bn - предикаттар немесе литерлар.

Пролога-Д үшін маңызды ұғым болып Хорн дизъюнкты табылады.

Хорн дизъюнкті деп k = 0 немесе k = 1болатын дизъюнкті атаймыз. k = n = 0 болғанда Л символымен белгіленетін бос дизъюнкт пайда болады.

Егер k = 0, онда (1) формуласынан мындай түрдегі дизъюнкт пайда болады:


B1&B2&...&Bn,
Бұл дизъюнкт сұрақ деп аталынады.

Көптеген барлық дизъюнкт арасында k=1 болатындар ерекше рөл атқарады. Және де егер n=0, онда мұндай дизъюнкт факт деп аталынады:

A1.

Егер де n>0, дизъюнкт ереже деп аталынады:



A1<- B1&B2&...&Bn, мұндағы A - басы, ал B1&B2&...&Bn, - ереже денесін құрайтын, мақсаттар. (1)формуласының қасиетін беклгілеп кету керек. Логикалық түйіндерді байланыстыратын, жоғарыда берілген қысқарту формулаларын қолдансақ, онда жазуларында Ъ(немесе) түйіндері қолданылатын, әрбір дизъюнкті осындай формулаға келтіруге болады.

Кірістірілген анықтамалар келесі иерархияны құруға мүмкіндік береді:

формула

сөйлем


дизъюнкт

Хорн дизъюнкті

факт ереже сұрақ бос дизъюнкт

Білімдер қоры деп әр алуан факт және ереже қатары аталуы мүмкін.

Білімдер қорында жазылған ақпарат формальды-логикалық жүйеде көрсетілген. Ол логикалық шығаруда жүріп жатқан, анықталған үрдіс пайдаланып, ақпаратты оқу үшін негізделген. Бұл болжамдар логикалық іс-жүргізу ұғымына негізделген. Берілген жіберулер немесе мүмкін жағдайлар жиынтығындағы логикалық іс-жүргізу ақиқат, егер мүмкін болатын жағжайлар ақиқат болса. Бірақ сол бір формула мазмұндық мағынасына қарай ақиқат немесе жалған болуы мүмкін. Мысалы, логикалық формула:

(x>y)<-(|x|>|y|), мұндағы x>y белгісі - означает отношение "x y-тен үлкен" деген қатынасты білдіреді, ал |x| белгісі - x абсолюттік өлшемі, ақиқат болады, егер x және y оң сандар жиынына тиесілі болса, және жалған, егер x және y теріс сандар жиынына тиесілі болса. Математикалық логикада интерпретация ұғымы бар, ал әр түрлі интерпретацияларда бір формула әр түрлі мағынада болуы мүмкін.

Көптеген S сөйлемді интерпретациялар үшін, интерпретация аймағы деп аталынатын, D объекттердің жиыны таңдалады. D үстіндегі S сөйлемді жиын интерпретациясы келесі үш сәйкестіктен тұрады:

1. Әрбір тұрақтыға (сандық немесе литералды) D-дан бір элемент сәйкесінше қойылады.

2. S-дағы әрбір n-арлы функторға Dn-нен D-ға n-ді кесіндер қойылады.

3. S-дағы әрбір n-арлы предикатты символға {АҚИҚАТ, ЖАЛҒАН}жиынына Dn-нен n-ді кескіндер сәйкесінше қойылады.

Көптеген сөйлем үшін интерпретация мысалы:

{ана(Саша, Оля), ана(Петя, Маша), ұлы(x, y)<-ана(y, x)}

келесі ережелер келеді.
1. Интерпретация аймағы D={Саша, Оля, Петя, Маша};

2. Функторлары жоқ.

3. Жазыдуы а). ана(x, y)->{АҚИҚАТ, ЖАЛҒАН},

б). ҰЛЫ(x, y)->{АҚИҚАТ, ЖАЛҒАН}.

Логикалық орындалудың нақты анықтамасы, формуланың орындалу ұғымына негізделген(сөйлем). Формула (сөйлем), интерпретацияда D жиынтығынан сонда және сонда ғана, қашан бұл сөйлем берілген интерпретацияда АҚИҚАТ мәніне ие болса ғана, орындалады. Сәйкесінше берілген интерпретацияда көптеген S сөйлемдері сонда және тек қана сонда, қашан S. S-тегі әр сөйлем кейбір s сөйлемді өзіне тартады. Егер ақырғы мысалға келсек, онда сөйлемдер жиынтығы:

S={ана(Саша, Оля), ана(Петя, Маша), ұлы(x, y)<-ана(y, x)}

өзіне тартады s =ұлы(Маша, Петя). Белгіленуі S ъ= s. 30

ъ= Қатынас мағынасы бұл - егер S ъ= s, онда ол S сөйлем жиынтығының ішкі құрылымынан пайда болады. Интерпретацияны қолдану - бұл логикалық орындалу ұғымын алу тәсілі. Логикалық бағдарламалау мен логикалық орындалудың байланысы тапсырмалар жасалынатын және шығарылатын тәсілдермен анықталады. Қолданушының негізгі тапсырмасы логикалық бағдарламалауда, есептердің шарттарын және критерийлерін жазу. Осылайша, есептің логикалық тұрғысы бұл жағдайда анық болып келеді. Интерпретацияға тәуелсіз, логикалық орындалудың құру әдістері бар. Ондай әдістердің бірі - резолюция. Ол келесі қорытындыға негізделген.

S - дизъюнкт жиынтығы болсын, және U - дизъюнкт. U, S ішіндегі логикалық орындалу бола ала ма, соны анықтау. Ол үшін S жиынтығы U терістеуімен толықтырылады. Егер S және {U}жиынтықтарының қосылуы керісінше болса, онда U логикалық тұрғыдан S-тен жүреді. S-тен C1 және C2 екі дизъюнкт берілсін, ал L1 және L2 - комплементарлы литерлар, сәйкесінше C1 және C2-ден (U және U литерлары комплементарлы деп аталады). Алдын ала L1 және L2 өшірілген, C1 және C2 (C1ЪC2) дизъюнкциясы резольвент деп аталынады. Резолюция принципі, C1 және C2 резольвент дизъюнктілері C1 және C2-нің логикалық орындалуы болып табылуына негізделген. Егер резольвент үрдісінің құрылу кезіндегі қайта қолдану нәтижесінде бос дизъюнкт пайда болса, онда S дизъюнкт жиынтығы кері болып табылады. Резолюция әдісі бойынша дәлелдеу процедурасында комплементарлы жұптарды әрекеттеу үшін өрнектерді унифицирлеу қажет. v1,...,vn айнымалысы бар, Е1 және Е2 екі өрнектің унификациясы дегеніміз Е1 және Е2 өрнектері сәйкес келетін алмастыруды табу. Бұндай алмастыру унификатор деп аталады.


    1. Программа бойынша мысал: туыстық байланыс

Пролог- бұл программалау тілі, символды сандық емес акпаратты өңдеу үшін қажет. Әсіресе ол есептерді шығару үшін лайықты, онда объектілер және олардың арасындағы байланыстар қатысады. 1.1-суретте туыстық байланысқа мысал келтірілген. Мұндай факт, Том Бобтың ата-анасы болатнын, Пролог түрінде осылай жазуға болады:


родитель(том, боб).
Мұнда біз родитель атын байланыс ретінде алдық, том және боб- бұл байланыстын аргументі түрінде берілген. Себебі, содан кейін түсінікті болады, біз мұндай аттарды жазамыз, том сияқты, мәтін жолының әріптерінен бастап. 1.1-суретте жалпы туыстық байланыс ағашы, келесі пролог- программасы бойынша көрсетіледі:
родитель(пам, боб).

родитель(том, боб).

родитель(том, лиз).

родитель(боб, энн).

родитель(боб,пат).

родитель(пам, джим).



1.1. – сурет. Туыстық байланыс ағашы.
Бұл программа алты ұсыныстардан тұрады. Әр бір ұсыныс бір ғана факт барының байланысы родитель екенін жариялайды. Пролог- жүйеге соңғы мұндай программаны енгізгеннен кейін сұрақтарды қоюға болады, родитель байланысқа қатысты мысал, Боб Пат-тың родитель болады ма? Пролог- жүйеге бұл сұрақты тапсыруға болады, клавиатура- терминалында оылй жазып:
?- родитель(боб, пат).
Бұл факті програмада тауып алғаннан кейін,жүйе жауап береді
yes (да)
Басқа сұрақ мұндай болуы мүмкін еді:
?- родитель(лиз, пат).

no (нет),

сондықтан программада бұл туралы айтылмаса, Лиз Пат-қа родитель болады ма туралы. Программа бұл сұраққа «нет» деп жауап береді


?- родитель(том, бен).
өйткені Бен деген ат прграммада айтылмаған. Одан да қызықты сұрақтар оюға болады. Мысалы: «Кто является родителем Лиз?»
?- родитель(Х, лиз).
Бұл жолы жүйе «да» немесе «нет» деп жай ғана жауап бермейді. Ол бізге Х мәні қандай болу керек айтады,жоғаыда көрсетілген бекітілім шынайы болу үшін. Сондықтан біз жауап аламыз:
Х= том
Сұрақ «Кто дети Боба?» пролог-жүйеге мұндай түрде көрсетуге болады:
?- родитель(боб, Х).
Мұндай жағдайда бірнеше жауап болуы мүмкін. Алдымен жүйе біріші жауапты көрсетеді:

Х= энн
Мүмкін, біз басқа да жауаптарды көргіміз келеді: Біз өз тілегімізді жүйеге айта аламыз(көптеген орындауларда бұл үшін нүктелі үтір қолдану қажет) сонда ол басқа жауапты табады:
Х= пат
Егер де біз арғы шешімдерді талап етсек, жүйе «нет» деп жауап береді, өйткені барлық шешімдер таусылған.

Біздің программаға одан да жалпы сұрақтарды қоюға болады: «Кто чей родитель?» Бұл сұрақты басқаша қалыптастырайық:


Х және Y табу, х- родитель Y.
Пролог түрінде быай жазылады:
?- родитель(Х, Y).
Жүйе барлық «родитель- ребенок» екілік түрді кезекпен табады. Себебі оғн біз жүйедегі жаңа шешімдерді қалай талап етсек, олар экранға бірінен соң бірі береді соған дейін, әзірше олар барлығы табылмағанға дейін. Жауаптар келесі түрде беріледі:
Х= пам

Y= боб;


Х= том

Y= боб;


Х= том

Y= лиз;


. . .
Біз шешімдерді тоқтата аламыз, мысалы, нүктені нүктелі үтірдің орнына тереміз(орындаулада қажет символды таңдау тәуелді болады).

Біздің программаға одан да қиын сұрақтарды қоюға болады, айтайық, Джим-нің ата- анасының ата- анасы кім болады? Біздің программада тура айтылмаған, родительродителя байланысы не екенін, мұндай сұрақты екі кезеңде қоюға керек, бұл 1.2- суретте көрсетілген:




  1. Джим-нің ата- анасы кім? Болжаймыз, ол қайсібір Y.




  1. Y-тің ата- анасы кім? Болжаймыз, ол қайсібір Х.

Мұндай құрама сөйлем Прологта екі жай сұрақтың жүйелілік түрінде жазылады:


?- родитель(Y, джим), родитель(Х, Y).
Жауап болады:
Х= боб

Y= пат





1.2. Суретте. Родительродителя байланысы, байланысты ек3 родитель
Біздің құрама сұрақты түсіндіріп беруге болады: «Х және Y табу, келесі екі талапты қанағаттандырса»:
родитель (Y, джим) и родитель(Х, Y)
Егер де біз осы екі талаптарды ретін өзгертсек, онда логикалық түсінік сол қалпында қалады:
родитель (Х, Y) и родитель (Y, джим)
Біздің пролог- жүйеде бұл сұрақты мұндай түрде қоюға болады:
?- родитель(Х, Y), родитель(Y, джим).
Мұндай жағдайда нәтиже солай қалады. Тағы да осылай сұрауға болады: «Том-ның немерелері кім?»
?- родитель(том, Х), родитель(Х, Y).
Жүйе былай жауап береді:
Х= боб

Y= энн;


Х= боб

Y= пат


Келесі сұрақ осындай болуы мүмкін:Энн н Пат-тың жалпы бірдей ата- анасы бар ма? Оны декі кезеңде айтуға болады:


  1. Қандай Х Энн- нің ата- анасы болып келеді?




  1. Сол Х Пат-тың ата- анасы болады ма:

Пролог- жүйеде лайықты сұраныс мұндай түрде көрсетіледі:


?- родитель(Х, энн), родитель(Х, пат).
Жауап:
Х= боб
Біздің программа- мысал кейбір маңызды кезеңдерді нақтылы мысал келтіруге көмектесті:

  • Прологта байланысты оңай аңықтауға, родитель ұқсас байланысқа, n объектілерді көрсету, бұл байланыстарға орындалады.

  • Пролог- жүйеге қолданушы оңай сұрақтар қоя алады, байланыстрға атысты, программада анықталған.

  • Пролог- прогрмма сөйемдерден құралған.әр бір сөйлем нүктемен аяқталады.

  • Аргумент байлаыстары болуы мумкін (қалғадардың арасында) : нақтылы объектілер, немесе тұрақтылар(том мен энн сияқтылар), нмее абстракты бъектілер, Х және Y сияқты. Бірінші үлгідегі объектілер атомдар (атомами) деп аталады. Екіншіүлгідегі объектілер- өзгергіштер (переменными).

  • Жүйеге сұрақтар бір немесе бірнеше мақсаттық бекітуден тұрад(немесе қысқаша мақсат). Мақсаттық жүйелігі, мұндай


родитель(Х, энн), родитель(Х, пат)
бұл мақсаттық бекітулердің конъюнкциясын білдіреді:
Х – родитель Энн и

Х – родитель Пат.


Пролог- жүйе мақсат сұрақтарын қарастырады, оған жету үшін ұмтылу қажет.

  • Сұрақтың жауабы жағымды немесе жағымсыз болу мүмкіндігі тәуелді, лайықты мақсатқа жету мүмкін немесе жоқ. Жағымды жауап болса біз айтамыз, лайықты мақсатқа жеттік (достижима) және табысты (успешна). Керісінше жағдайда мақсат жету мүмкін емес (недостижима), табыссыз (имеет неуспех) немесе сәтсіз (терпит неудачу).

  • Егер де сұраққа бірнеше жауап бар болса, пролог- жүйе олардың арасынан табады сонша, қанша қолданушы тілейді.

Жаттығу



    1. Есептесек, тағы да солай родитель байланысы белгілі, бұрынғыдай бұл бөлімбейді.(1.1. сурет), тауып алындар, пролог- жүйеде келесі сұрақтардың жауаптары қандай болады:

(а) ? - родитель(джим, Х).




  1. ? - родитель(Х, джим).

(с) ? - родитель(пам, Х), родитель(Х, пат).




  1. ? - родитель(пам, Х), родитель(Х, Y), родитель(Y, джим).

Жауапты қарау


Прологта родитель байланыс бойынша келесі сұрақтарды келтіріңіздер:
(а) Кто родитель Пат?


  1. Есть ли у Лиз ребенок?

(с) Кто является родителем родителя Пат?


1.2. Ереже көмегімен мысал бағдарламалардың кеңейтілуі.
Біздің-мысал бағдарламасын көптеген қолайлы түрлермен кеңейтуге болады. Біріншден родитель қатынасындағы адамдардың жынысы жайлы ақпаратты көрсетейік. Келесідегідей факторларды еңгізе отырып, көрсетейік:
Женщина(пам).

Мужчина(том).

Женщина(лиз).

Женщина(пат).

Женщина(энн).

Мужчина(джим).

Біз мужчина және женщина қатынасын еңгіздік.Бұл қатынастар- бірорынды. Родитель қатынасы бинарлы қатынас,екі объект арасындағы өатынасты анықтайды;объектідегі жай қасиеттердің бірорынды жоғарыда келтірілген сөйлемдердің біріншісі былай оқылады: Пам -женщина.Осы екі унарлық қатынастарымен(мужчина женщина) көрсетілген ақпаратты басқаша-жалғыз бинарлы жыныс қатынасымен беруге болады. Онда біздің бағдарламаның жаңа фрагменті былай көрінер еді:



Пол(пам,женский).

Пол (пол,мужской).

Пол(боб,мужской).

...
Біздің бағдарламаның келесідегі кеңейтілуі ретінде родитель қатынасына кері отпрск қатынасын мысал ретінде еңгізейік. Отпрск қатынасын родитель сияқты тәсілімен анықтауға болар еді, яғни осы қатынастың жай фактілердің тізімі деп санап,бірі екіншісінің отпрск болатындай нақты объектілер үшін.Мысал



Отпрск(лиз, том).
Бірақ бұл қатынасты оданда көркемдірек, анықталынған родитель қатынасының кері қатынасы болатының қолданып, анықтауға болады. Осындай альтернативті тәсіл келесі логикалық тұжырымдамаға негізделеді:

Барлыұ Х және У үшін



У Х тің отрпскі болады,егер

Х У тің родителі болса.
Бұл құрылым Прологта еңгізілген құрылымға жақын. Мұнда сол мағынадағы сәйкестендірілген прологтық сөйлем:
Отпрск(У,Х):- родитель (Х,У).
Бұл сөйлемді төмендегідей оқуға болады:
Барлық Х және У.

Егер Х У тің родителі онда

У Х тің отпр
Прологтың төмендегідей сөйлемі
Отпрск(У,Х):-родитель(Х,У) ереже деп аталады.

Фактілер мен ережелер арасында айырмашылық бар.Факт фактіге ұқсас


Родитель(том,лиз).
Ол әрқашан сөзсіз ақиқат болатын зат. Ал ереже кейбір шарттар орындалғанда ғана ақиқат болатын тұжырымдаманы сипаттайды. Сондықтан ереже осыларға ие:



  • Шартты бөлім (ереженің оң жартысы) және

  • Тұжырымдама бөлігі (ереженің сол жартысы)

Тұжырымдаманы сөйлемнің басы деп, ал шартты бөлікті оның денесі деп те атайды.


Отпрск(У,Х):-родитель(Х,У)

Басы денесі
Егер родитель(Х,У) шарты орындалса, (ол ақиқат),онда логикалық нәтиже отпрск(У,Х) тұжырымдамасы болады. Төменде көрсетілген мысалда прологта қалай жұмыс істейтінің қарастырайық. Біздің бағдарламадан лиз томның отпрскісі болатының сұрайық:
?-отпрск(лиз,том).
Бағдарламада отпрск жайлы фактілер жоқ,сондықтан бұл сұраққа жауап берудің жалғыз тәсілі – бұл олар туралы ереже қабылдау. Ереже егер Х және У объектілері кез келгенге қолдануы жанжақты, сәйкесінше оны нақты лиз және том сияқты нақты объектілерге қолдануға болады.Бұны орындау үшін У орнына лизді,ал Х орнына томды қою керек. Бұл жағдайды біз Х пен У ті қолдануды нақтыландырады дейміз:
Х=том У=лиз.
Нақтыландыралғаннан кейін біз жалпы ереженің жекжағдакйларын аламыз.

Ол :
Отпрск(лиз,том):-родители(том,лиз).


Шартты бөлік мынадай түрді алды.
Отпрск(лиз,том)
Енді пролог жүйесі бұл шарт орындалатындығын анықтауға тырысады. Бұл шығыс мақсат:
Отпрск(лиз,том).
Мақсат бойынша ауыстырылады:
Отпрск(лиз,том).
Бұл жаңа мақсат біздің бағдарламада осындай факт таба алатындықтан үштікке жетеді. Бұл дегеніміз ереженің қортындысындағы тұжырымдамада ақиқат және жүйе да депжауап береді. Енді біздің бағдарламаға тағы да туыстық қатынастар мысалын еңгізейік. Мать атынасының анықтамасы келесі логикалық тұжырымдамаларға негізделген болуы мүмкін
Барлық Х және У үшін

Х У анасы болып келеді

Егер

Х У тің родителі және

Х женщина
Прологта бұл ереже былайша аударылады:

Мать(Х,У):-родитель (Х,У), женщина (Х).
Екі шарттың арасындағы конъюнкция шартын көрсетеді. Бұл дегеніміз олар бір мезетте орындалу керек.
















родитель отпрыск родитель мать родитель родитель

родителя


родитель

Родитель, отпрск,мать сияқты қатынастарды суреттегідей диаграмма түрінде бейнелеуге болады, жоғарыда берілгендей. Олар келесі шарттар бойынша салынған. Графтың шындары объектіге,аргументке сәйкес келеді. Төбелер арасындағы доғалар бинарлы(екіорынды) қатынасқа сәйкес келеді. Доғалар бірінші аргументтен екіншіге нұсқалынған. Диаграммада унарлы қатынас қатынас белгісімен ғана көрсетіліп өткен. Қатынас, басқа қатынастарды көрсету белгілері штрихты доғалармен көрсетілген. Сондықтан әрбір диаграмманы былайша түсінуге болады: егер қатынас орындалса, тегіс доғалармен суреттелсе, штрихты белгімен берілген қатынаста орындалды. Осыны Прологда орындап көрейік:



родительродителя(X,Z):-родитель(Х,У),

Родитель(У,Х).
Бағдарламаның жазылу түрін қарастырып өтсек. Прологта мәтіннің бетте орналасуы еркін береді. Сондықтан бос орын тастап, қалаған жерге өтуіне болады. Бізге керегі бағдарламаның көркем түрі болып, жеңіл оқылуы. Сол себептен біз бос орын қалдырып жазамыз,сонда басы мен мүшесінің арасы айырмашылығы көрініп тұрады. Мысалы родительродителя осы ережелерге сай келесідей жазылады:
родительродителя(X,Z):-

родитель(Х,У),

родитель(У,Х).

Барлық Х болып және У үшін

Х У тің сестрасы болып келеді,егер

(1) Х пен У родителі бір болып келеді және

(2)Х-женщина.





ролитеь родитель

женщина
сестра

Прологта жазып көрейік:


Сестра(Х,У):-

Родитель(Z,X),

Родители(Z,Y),

Женщина(Х).

Мұнда Х және У ортақ родителі бар екені көрсетілген. Логикалық құрылым қолданылған, мұнда Z Х тің родителі, дәл сол секілді У тің родителі де Z болып келеді.


Енді сұрауға болады:
?-сестра(энн,пат).
Күткеніміздей жауабы «да» болады. Осымен тоқталсақта болады бізбен анықталғандай сесеира дұрыс жұмыс істейді. Бірақ паттың сестрасы кім деген сұрақ туады?
?-сестра(Х, пат).

Х=энн

Х=пат.

Деген бірі түсініксіз екі жауап аламыз. Пат өз өзіне сестра болама деген сұрақ туады . сонда да Пролгтың жауабы логикалы болады,егер Х У тің сестрасы болса,онда Х пен У сәйкес болу керек. Сонда Пролог Х пен у ті бір объект ретінде қарастырады. Осыны қортындылай келгенде әрбір родителі бар женщина өз өзіне сестра болып келеді.

Ережені дұрыстау үшін, Х пен У тің айырмашылығы туралы шарт қою керек. Различны қатынасымен орындауға болады
Различны(Х,У)
Х пен У тен болмағанда ғана орындалады. Келесі мысалды қарастырайық:

Сестра(Х,У):-

Родитель(Z,X),

Родители(Z,Y),

Женщина(Х),

Различны(Х,У).

Осы тақырып бойынша керек мәліметтер:




  • Плологта бағдарламаны жаңа сөйлемдер қосу арқылы кеңейтуге болады.

  • Пролотың сөйлемдері үш түрі болады: факт,ереже,сұрақ.

  • Факті дұрыс болатын тұжырымдаманы қамтидыы.

  • Ереже кейбір шарттарға байланысты дұрыс болатын тұжырымдамалар болады.

  • Сұратың көмегімен қандай тұжырымдама дұрыс екенің анықтайды.

  • Прологта сөйлем бас пен денеден тұрады

  • Факт бос дене болатын сөйлем,сұрақтарда тек дене болады,ереже басы болады және денесі болады.

  • Есептей келе кезектелген орнына басқа объект қойылып отырған, бұл жағдайда ауысым нақтыландырған.

  • Кезектелгенге бәріне отақ оқылатын квантор қойылған.


Пролог - жүйесі сұрақтарға қалай жауап береді

Бұл бөлімде пролог-жүйесі сұрақтарға қалай жауап беретініне формальді емес түсінік келтіріледі.


Жүйеге сұрақ бұл - әрқашан да бір немесе бірнеше мақсаттардан тұратын жүйелілік. Сұраққа жауап беру үшін, жүйе барлық мақсаттарға жетуге тырысады. Мақсаттқа жету деген не? Мақсатқа жету дегеніміз – сұрақта бар бекітулер жорамалда бағдарламаның барлық қатынастары жынайы екенін көрсету. Басқаша айтқанда, мақсатқа жету дегеніміз – ол бағдарламаның ережелері мен фактілерінен логикалық еретіндігін көрсету. Егер сұрақтың айнымалылары болса, жүйе (айнымалылардың орнына қойылса) мақсаттың орындалуын қамтамасыздандыратын нақты объектілерді табу қажет. Табылған айқындау жайлы пайдаланушыға хабар беріледі. Егер кейбір айқындаулар үшін жұйе қалған сөйлемдер ішінен мақсатқа жете алмаса, онда оның сұраққа жауабы «ЖОК» болады.
Пролог-жүйесіннің математикалық терминдардағы лайықты түсіндірілуі келесі болады: пролог-жұйесі фактілер мен ережелерді аксиомалар жиыны, ал пайдаланушының сұрағын – теорема ретінде қарастырады; бұдан кейін ол сол теореманы дәлелдеуге тырысады, яғни оны аксиомалардан логикалық шығаруға мүмкін екендігін көрсетеді.
Бұлны классикалық мысалда көрсетейік. Келесі аксиомалар болсын дейік:
Барлық адамдар мәнгілік емес

Сократ – адам.


Осы екі аксиомалардан логикалық ағып шығатын теорема:
Сократ мәнгілік емес.
Жоғарыда келтірілген аксиомалардың біріншісін былай көшіріп жазуға болады:
Барлық (Х), егер (Х) – адам болса, онда Х мәнгідік емес.
Сәйкесінше біздің мысалымызды Пролог-қа келесі түрде аударуға болады:
Мәнгілік емес(Х):-адам(Х). %Барлық адамдар мәнгілік емес

адам(сократ). %Сократ - адам

?-мәнгілік емес(сократ). %Сократ мәнгілік?

yes (да)
Бағдарламадан 1.8 суретінде келтірілген туысқандар қатынастары жайлы күрделі мысал:
?-атасы(том,пат)
Біз ата-анасы(боб,пат) екенін білеміз – бұл факт. Бұл фактіні және пр1 ережесін қолданып, біз атасы(боб,пат) бекітуі ақиқат екеніне көз жеткізе аламыз. Бұл факт шығару нәтижесінде алынды, оны тікелей бағдарламада табуға болмайды, бірақ ондағы фактілер мен ережелерді қолданып шығаруға болады. Бұндай шығарудың қадамын қысқаша жазуға болады:
ата-анасы (боб,пат)==> атасы (боб,пат)
Бұл жазуды былай оқуға болады: пр1 ережесі негізінде родитель(боб,пат)-тан предок(боб,пат) шығады. Әрі қарай, бізге родитель(том,боб) фактісі белгілі. Бұл факт және шығарылған предок(боб,пат) фактісі негізінде біздің мақсаттық бекітуіміз предок(том,пат) пр2 ережесінің негізінде ақиқат екендігіне қорытынды жасаумызға болады. Екі қадамнан тұратын барлық шығару процесін былай жазуға болады:
ата-анасы (боб,пат)==> атасы (боб,пат)
ата-анасы (том,боб) және атасы (боб,пат) ==>

атасы (том,пат)
Сөйтіп, біз мақсатқа жету үшін орындалатын қадамдардың ретін көрсеттік, яғни мақсаттың ақиқат бекітілуі үшін. Бұндай тізбекті дәлелдеулер тізбегі деп атайық. Бірақ біз әлі пролог-жүйесінің ондай тізбектің шын мәнінде қалай құратындығын көрсеткен жоқпыз.
Пролог-жүйесі дәлелдеулер тізбегін жаңа ғана қолданған қатынасқа кері ретпен құрады. Бағдарламада келтірілген қарапайым фактілерден бастаудың орнына жүйе мақсаттардан бастап, ережелерді қолданып, ағымды мақсаттарды жаңа мақсаттармен ауыстырып, бұл жаңа мақсаттар қарапайым фактілер болғанға дейін ауыстырады. Егер мынадай сұрақ қойылса:
?- атасы (том,пат).
Жүйе бұл мақсатқа жетуге тырысады. Оған жету үшін, ол бағдарламада айтылған мақсат лезде шығатын сөйлемді іздейді. Бұл сөйлемге жалғыз сәйкес келетін пр1 және пр2 екені айқын.


атасы (том,пат)

ата-анасы(том,пат)
по правилу пр1

1.9 Сурет. Есептеулердің бірінші қадамы. Егер астыңғы мақсат ақиқат болса, онда үстіңгісі де ақиқат болады.
Ол предок қатынасына кіретін ереже. Бұл ережелердің бастарын мақсатыткімен салыстырмалы дейік.
пр1 және пр2 екі сөйлемі пролог-жүйесі үшін ой жүгіртудің екі нұсқасын байнелейді. Біріншіден, жүйе бағдарламада бірінші тұрған сөйлемді қарастырады:
атасы (X, Z):- ата-анасы (X, Z).

атасы (том,пат)мақсат болғандықтан, айнымалылардың мәндері келесі түрде көшірілуі қажет:
Х = том, Z = пат
Бұнда бастапқы мақсат атасы (том,пат) жаңа мақсатпен ауыстырылады:
ата-анасы (том,пат)
Бір мақсаттың кейбір ережелер негізінде басқа мақсатқа ауыстырылу әрекеті 1.9 суретінде көрсетілген. Бағдарламада родитель(том,пат) мақсатымен салыстырмалы ереже жоқ, сондықтан бұндай мақсат сәтсіз болады. Енді бағдарлама предок(том,пат) мақсатын шығарудың екінші нұсқасын қойып көру үшін бастапқы мақсатқа қайтып келеді. Яғни пр2 ережесін көреді:
атасы (X, Z):-

ата-анасы (X, Y),

атасы (Y, Z).
Бұрыңғыдай X және Z айнымалыларына мәндер жазылады:
Х = том, Z = пат
Бұл сәтте Y айнымалыға ешқандай мән жазылмаған. предок(том,пат) үстіңгі мақсаты екі мақсатпен ауыстырылады:
ата-анасы (том,Y),

атасы (Y,пат)
Бұл есептеудің қадамы 1.10 суретінде көрсетілген (1.9 суретінде көрсетілген жағдайдың дамуын ұсынады).



1.10 Суреті. 1.9 суретінде көрсетілген есептеулер процесінің дамуы.
Өзінің алдында екі мақсат болғанмен жүйе оларға жазылған тәртіппен жетуге тырысады.олардың біріншісіне қол жеткізу өте оңай, себебі ол бағдарламадағы фактіге сәйкес. Сәйкестікті орнату процесі – Y айнымалысына боб мәнін жазуды орындайды. Сөйтіп бірінші мақсат орындалады, ал қалғаны келесіге айналады:
атасы (боб,пат)
Бұл мақсатқа жету үшін қайтадан пр1 ережесі қолданады. Екінші қолдануымыз бірінші қолданумен байланысты еместігіне назар аударып кетейік. Сондықтан жүйе әрқашан жаңа айнымалылар жиынын пайдаланады. Бұны көрсету үшін пр1 ережесінің айнымалыларын келесі түрдегідей аттарын ауыстырамыз:
атасы (X,Z):-

ата-анасы (X’,Z’).
Еженің басы біздің ағымдағы мақсатымызға предок(боб,пат) сәйкес болуы қажет. Сондықтан:
X’ = боб, Z’=пат
Ағымдағы мақсат келесіге ауыстырылады:
ата-анасы (боб,пат)
Бұндай мақсат тез орындалады, себебі бағдарламада факт ретінде кездеседі. Бұл қадам есептеуді аяқтайды, ол 1.11 суретінде графикалық көрсетілген:


1.11 Суреті. предок(том,пат) мақсатына жетудің барлық қадамдары. Бірінші бұтақ мақсаттың орындалуын көрсетеді.
1.11 суретіндегі есептеулердің қадамдарының графикалық бейнеленуі ағаш пішініне ие. Ағаштың ұтраты қол жеткізетін мақсаттар мен мақсаттар тізіміне сәйкес. Ұштар арасындағы доғалар бір үшына сәйкес келетін мақсатты екінші ұшына сәйкес келетін мақсатқа түрлендіріп, бағдарламаның (альтернативті) сөйлемдерді қолдануға сәйкес. Түбірлі (үстіңгі) мақсат ағаштың түбірінен (үстіңгі ұшынан) оның «да» белгісімен балгіленген жапырағына дейін жол табылса орындалады. Жапырақ «да» делгішесімен белгіленеді, егер ол өзі қарапайым факт болса. Пролог-бағдарламасының орындалуы осындай жолдарды іздеуде жатыр. Бұндай іздеу процесінде жүйе сәтсіздікке әкелетік бұтақтарға да кіруі мүмкін. Ол бұтақ сәтсіздікке әкелетінің анықтаған кезде, алдыңғы ұшқа автоматты түрде қайта оралып, оған альтернитивті сөйлем қолданудың әрекеті орындалады.
Тақырып “Фактілер. Фактілерді ұсынудың предикаттык формасы. Прологтың деректер базасы. Қарапайыйм сұраныстар”.
Бұл тақырыпта логика негіздерін оқытудан бастаған дұрыс болады. Мысалдар арқылы тұжырымдама деген не және әр тұжырымдама жалған және ақиқат болуы мүмкін екендігін көрсету қажет. Және де «бекітпе» (утверждение) ұғымын беру қажет. Бекітпе – бұл ақиқаттылығын не жалғандығын дәлелдеуді қажет ететін тұжырымдама. Басқа математикалық логиканың сұрақтары тақырыпта қарастырылмайды.

«Факт» ұғымымен жұмыс істегенде мынаған назар аудару қажет: Прологтағы программаларда факт ұғымын ақиқатты бекітпелер деп түсінеді. Тілде қабылданған жазбаның предикатты формасын тура және кері мысалмен түсіндіруге болады. Алдымен Прологтан табиғи тілге аударуды бастаса болады. Мысал ретінде белгілі сюжетке (қысқа әңгімеге, тақпаққа) мәліметтер қорын құрып, сәйкес сұрақтарды (сұраныстарды) құру ұсынылады. Қойылған сұраққа байланысты, сюжеттегі фактілердің аттарын, санын және оның аргументтерінің қолданылуын анықтауды үйрену қажет. Мәліметтер қорындағы фактілерде предикаттардың аттары әр – түрлі болса, онда осындай мәліметтер қорын материалды оқытудың алғаш кезеңінде қолданған жақсы болады. Мысалы бәріне белгілі тақпақ «Дом, который построил Джек» [3, т.2, 227 б.] бойынша мәліметтер қорын құрса, онда керекті фактілерді анықтауға болады. Бірақ осындай үлгідегі ақпарат тез арада ескіріп, қызықсыз болады. Сол үшін әр – түрлі ақпаратты сақтау үшін айнымалы ұғымы енгізіледі.

Фактілердің ішінде аттары бірдей предикаттар бар болса ондай білім базаларын соңында қолданған дұрыс болады. Мысалы, сұраныс жасап, іздеуді ұйымдастырумен байланысты сұрақтарды қарастыру барысында қолданса. Бұл іздеу сәтті аяқталғаннан кейін ақиқат кестесін еске түсіріп, НЕМЕСЕ логикалық операторының жұмыс істеу түсінігін беруге болады.

Тілді үйренумен бірге программалық жүйемен танысу жүргізіледі. Оның ерекшеліктері, программа мәтінін жазу ережелері, оны өңдеу тәсілдері, сыртқы жинақтауышта сұраныс ұйымдарын жазу және оқу тәсілдері қарастырылады.


Тақырып «Құралған сұраныстар. Ережелер. Пролог білім базасы.»
Тақырыпты оқытуды, оқулықта [34] бірнеше тұжырымдамалардың біруақтылық ақиқаттылығы ретінде берілген ЖӘНЕ логикалық операторына сәйкес кестесін еске түсіргеннен және көрсеткеннен бастауға болады. Прологта мәліметтер қорына сұраныстарды ұйымдастыру барысында. Нақты мәліметтер қорымен жұмыс істегенде құралған сұраныстан ереже секілді өте маңызды ұғымға көшуге болады. Мысалы осындай мәліметтер қоры болсын:

Ұшады (ұшақ).

Ұшады (аққу).

Ұшады (торғай).

Қанаты_бар (аққу).

Қанаты_бар (торғай).

Айнымалыны қолданып, мынадай сұрақ қоюға болады: «Не ұшады және ненің қанаты бар?» Прологта бұл құралған сұраныс болады:



? – ұшады(х), қанаты_бар(х).

Басқа жағынан қарағанда осындай қасиеттері бар объект құс деп аталады. Сондықтан мынадай бекітпені, атап айтқанда ережені жасауға болады:



Құс(х): - ұшады(х), қанаты_бар(х).

Бұл ережені мәліметтер қорына қосқаннан кейін «Ұшақ құс па?» немесе «Қайсысы құс?» секілді қарапайым сұрақтарды қоюға болады.

Прологта ережелерді жазуды білу өте маңзды. Ережені өңдеу барысында Прологта жазылған ережені алдымен табиғи тілге аударып, содан кейін табиғи тілден Прологқа аудару қажет болады. Жаттықтыру барысында табиғи тілден ережелерді жазғанда предикат атын, оның аргументтерінің санын және қолданылуын анықтауды үйрену қажет.

Фактілерден және ережелрден тұратын білім базасы есптердің үлкен классын қарастыруға мүмкіндік береді. Оларды есептеу барысында оның қалыптасуына назар аудару қажет. Көбінде ереже анықтамаларында және сөздің орнына бірақ секілді синонимдер кездеседі. Кейбір жағдайларда ережелерді құру барысында ЕМЕС (теріске шығару) логикалық операцияны қолдану қажет болады. Сондықтан қосасалынған (встроенный) сәйкес предикаттың жұмысын сипаттау және мысалмен көрсету қажет.


Тақырып «Пролог термалары (мәліметтер): константалар, айнымалылар, құралған термалар (құрылымдар). Пролог жұмысы: салыстыру, білім базасында ізде салу, қайтару механизмі. Пролог жұмысымен басқару. Қосасалынған предикаттар».
Егер алдыңғы тақырыптарда мазмұндық сұақтар қарастырылған болса, онда осы тақырыпта формальді сұрақтар қарастырылады. Онда сұранысқа жауап іздеу механизмдері және оның басқаруы толық қарастырылады.


Осы материал көбінде практикалық емес, теориялық болып саналады. Прологтың жұмыс істейтін мәліметтерін 15.13 суретінде көрсетілген схемаға сәйкес қарастыруға болады.

Пролог – көпұлтты тілдердің бірі. Термалар құрайтын литерлер орнына алфавиттің, соның ішінде ұлттық алфавиттің кез – келген символы қолданылуы мүмкін. Ұлттық алфавиттерді қолдануға қойылатын шектеулер жиі тілдің нақты орындалуынан (программалау жүйелеріне) байланысты болады.

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

Осы тақырыпта тілдегі көптеген қосасалынған предикаттардың ішінен тек іздеуді ұйымдастыру (сәкестендіру, жоққа шығару теріс алып тастау) жұмысымен басқаруға арналған предикаттар қарастырылады. Сәйкестендіру предикатында мынаны атап кету қажет: (=) теңдік символы кейбір программалау жүйелерінде (Турбо Пролог) салыстыру және арифметикалық оператор ретінде қолданылады, бірақ оны пайдаланудың айырмашылықтары бар екендігін көру қажет.



Достарыңызбен бөлісу:
1   2   3




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет