Главная страница
Контакты

    Басты бет


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

жүктеу 407.22 Kb.



жүктеу 407.22 Kb.
бет3/3
Дата22.03.2017
өлшемі407.22 Kb.

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


1   2   3

Тақырып «Прологта логикалық есептерді шешу»


Бұл тақырып практикалық болып есептеледі. Онда логикалық есептерді шешудің екі белгілі әдістері қарастырылады: бірнеше жиын арасында сәйкестікті және объект арасында реттілік орнату. Практикалық мысалдармен осы әдістердің Прологта қалай қолдануын көрсетіңіз. Әдістер, оларды қолдануың және кейбір есептер тізімдері [3,т2,241-245 бет] әдебиетінде көрсетілген.
Тақырып «Салыстыру операторы. Арифметикалық операторлар. Енгізу – шығару предикаттары. Сұхбат программаларын ұйымдастыру. Салыстыру операторын және арифметикалық операторын қолданып білім базасында іздеу есептерін шешу».

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


Тақырып «Прологтағы рекурсия (төмен бағыттылған стратегия).
Рекурсия (лат.recursioкейін кайту) - дыбыс артикуляциясынын үшінші сонғы фазасы, яғни сөйлеу мүшелерінін дыбыс жасау позициясынан айрылып, бастапқы бейтарап калпына кайта оралуы.. Жалпы мағынасында рекурсия - элементтерін өзіне ұқсас түрде қайталайтын процестер.
Стратегия гр. strategia - әскер кіргізу - қоғамдық, саяси күреске басшылық өнері, оны жүргізудің қоғам (кәсіпорын, партия) дамуының нақты кезеңінің нақты жағдайларынан туындайтын жалпы жоспары, белгілі бір мақсатқа қол жеткізуге бағытталған қаражат пен ресурстарды пайдалану тәсілі.
Рекурсивті бағдарламмалардың қол трассировкасы. Символдық арифметикаға есептерді шығару. Рекурсия (жоғары бағыттылған стратегия)».

Прологта рекурсивті әдіс анықтамалардың минималды санын қажет ететін есептерді шешудің жалғыз тәсілі болып саналады. Анықтамалар бекітпелерді іздеу процессі барысында қайталанады (процедуралық тілдерде қайталану командаларына сәйкес). Оны түсіну қиындығының себебі, әдістеменің жетіспеушілігінде.

Әдістемелік нұсқауларда әдіс түсіндірілмейді, ол жалғыз факториал функциясының мысалымен көрсетіледі (бұл функция мектепте математиканың курсында қолданылмайды).

Факториал (лат. factorіal, factor - көбейткіш) - бірден бастап белгілі бір n натурал санына дейінгі барлық натурал сандардың көбейтіндісі, яғни 1·2·3·...·n. Ол n! деп белгіленеді. n-нің үлкен мәндерінде Факториалдың жуық шамасы Стирлинг формуласы арқылы беріледі.

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

Осы сипатталған әдіс нәтижелі болу үшін, ол (декларативті) - шешілетін есепке әкелу тиіс. Есептің декларативті шешілуі шекаралық шарт деп аталады.

Осыдан есепті рекурсивті шешу үшін не қажет болатынын табамыз:

а) берілген және көмекші есеп арасында байланысты аңықтау;

б) шекаралық шартты анықтау;

Мысал: алғашқы N натурал сандардың қосындысын рекурсивті әдіспен табу.

Дағдылы сандар - заттарды табиғи санау кезінде, немесе реттік санау кезінде пайдаланылатын сандар.

Бұл жерде нәтиже натурал санға байланысты болатын S(N) функциясы болады.



Алғашқы (N-1) қосындылары (N-1) мүшеден тұратын осындай функция нәтижесі болады. Бұл рекурсивті әдістің шартарын қанағаттандыратын көмекші есеп болады. Шекаралық шарт S(1)=1 деп жазылады. Осылайша есептің математикалық формасы мына түрде көрсетіледі:



Енді есеп шешуін Прологта жазу қиын емес:

сумма (1.1):-!. /* шекаралық шарт S(N)=1 */

cумма(N,S): -M is N-1, /* M=N-1 */

cумма(M,S), /* көмекші есеп */

S is C N /* есептер арасында байланыс*/

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

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

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

Тапсырма. Тізім элементтерін циклдік оңға жылжту. Бұл есеп тізім элементтерін солға циклдік жылжытатын қарапайым есепке кері есеп боады және бір жолға жазылады:

оңға_жылжыту (L, R): - солға_жылжыту (R, L).

Тақырыпта көптеген оқулықта жазылған «Ханой мұнарасы», «Сегіз ферзтің есебі», «Орын ауыстыру есебі» секілді классикалық есептерді шешу ұсынылады.
Тақырып «Мәліметтердің құрылымы: бинарлы ағаштар. Негізгі предикаттар. Бинарлық ағаштар көмегмен есептерді шешу»

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

Құрылымдар, конструкциялар (лат. constructіo - құрастыру, жасау), техникада - машина мен ғимараттардың немесе тораптар құрылысы мен жұмысының сұлбасы, сондай-ақ, машинаның, ғимараттың, тораптың өзі және олардың бөлшектері.

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

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

Семантика (көне грекше: σημαντικός - танбалаушы, білдіруші) - тіл және тіл бірліктері (сөз, грамматикалық тұлға, сөз тіркесі, сөйлем) арқылы білдірілетін хабарды, заттар мен құбылыстардың мән-мазмұның зерттейтін тіл білімінің саласы, семиотиканың негізгі бөлімдерінің бірі.
Бұл программа қазіргі заманғы барлық программалық өнімдерде мәтіндік редакторлардан бастап программалау жүйелеріне дейін қолданылады (Паскальда әр конструкция дұрыстылығына тексеріледі).



Тақырыпты КС – грамматикалардың қысқа теориясынан бастауға болады, ары қарай мысал ретінде қазақ-орыс тілінің белгілі бір ережесіне синтаксистік талдаушының құрылуын көрсетуге болады. Осы программаның тура қолданылуына қарамастан, оның кері қолданылуы – дұрыс сөйлемдердің генерациясы көп қолданылады.
Генерация (лат. generatio - ұрпақ) - организмнің дамуы басталғаннан бастап, оның жыныстық жетілуіне немесе жасушаның бөлінуі басталғаннан бастап, оның келесі бөлінуінің басталғанына дейінгі кезең.
Әдістеме жағынан бұл дұрыс. Практикалық есептерді сөйлем құрылудың анықталған ережесі бойынша синтаксистік талдаушы – генератор құруға болатындай таңдау қажет.
1   2   3

  • Тақырып «Прологтағы рекурсия
  • Тақырып «Мәліметтер құрылымы: тізімдер. Тізімдермен жұмыс істейтін негізгі предикаттар. Тізім көмегімен есептерді шешу. Таңдау көмегімен шығарылатын есептер»
  • Тақырып «Мәліметтердің құрылымы: бинарлы ағаштар. Негізгі предикаттар. Бинарлық ағаштар көмегмен есептерді шешу»
  • Тақырып “Прологты қолдану: табиғи тілді түсіну”

  • жүктеу 407.22 Kb.