1 Оқу пәнінің паспорты Пәннің атауы


-8 тақырып. Білімнің логикалық моделі



бет8/9
Дата31.01.2018
өлшемі1,54 Mb.
#36982
1   2   3   4   5   6   7   8   9

7-8 тақырып. Білімнің логикалық моделі.

Мақсаты: Ұйғарым, факт және ереже, предикат ұғымдарымен танысу. Мысалдар қарастыру.

Прологта берілгендер негізінен символдық типте қабылданады, бірақ онда басқа типтерді де пайдалануға болады. Мысалы, Турбо Прологта қолдануға болатын негізгі типтер: integer, real, char, symbol және string, ал жай Прологта тип сипатталады. Жалпы, Пролог әдеттегі Паскаль тілі сияқты процедуралық программалау тілдерінен жоғары деңгейлі тіл.

Әдетте тілде нысандар арасындағы қатысқа мысал келтірейік: «Мұрат; Сұлтанның әкесі.» Оның прологта жазылуы : Әке (мұрат, сұлтан). Мұндағы Мұрат пен Сұлтан нысандарының арасындағы қатыс ретті түрде сипатталған: Мұрат Сұлтанның әкесі, Сұлтан Мұраттың әкесі емес.

Ереженің әдеттегі тілде жазылуына мысал, Егер Сұлтан мен Жібек туыс болса, онда олардың ата – анасы бір. Ереженің Прологта жазылуы.

Tuis(sultan,jibek,),ata_ana(bir)

Әдетте атаулар (туыс, ата, ана, т.с.с. предикаттар мен аргументтер) латын әріптерімен жазылады. Прологтың оқи алауына байланысты, оларды орыс әріптері бойынша жазуға да болады. Кітапта олар көбінесе латын әріптерімен жазылды.

Жалпы, Пролог тілінде программалау мынадай кезеңдерден тұрады:


  • Нысандар мен олардың арасындағы қатыстар жөнінде біршама фактілер жариялау;

  • Нысандармен олардың арасындағы қатыстар жөнінде біршама ережелерді анықтау;

  • Нысандар мен олардың арасындағы қатыстар жөнінде сұрақтарды дайындау.

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

Прологты пайдаланатын салалар:



  • Сараптаушы жүйелерді дайындау;

  • Мәтіндерді бір тілден екінші тілге аудару;

  • Логикалық түрде теоремаларды дәлелдеу және т.б.

Пролог – сұқпаттық, жоғары деңгейлі тіл. Программаны Прологты іске асыру үшін арифметикалық амалдарды орындаудан басқа жағдайларда жүйеде негізгі мәліметтер(фактілер мен ережелер) сақтаулы болып, экранға шығарылуы одан әрі бір форматта қажетті сұрақ берілуі тиіс. Сұрақ түріне байланысты жүйенің жауабы ИӘ не ЖОҚ түрінде көрінуі мүмкін. Екінші сөзбен айтқанда Прологпен жұмыс істеу математикалық логикалық заңдары мен принциптеріне шамалас болып келеді.

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

Факт – нысандар жөніндегі мәлімет. Фактілер бірнеше нысанның не нысандар арасындағы қатынас қатыстардан тұруы мүмкін. Мысалы, әдеттегі түрде жазылатын фактілер:

Сұлтан – студент;

Ахмет, Маржан, Мәдина – оқу озаттары;

Ержан Маржанға кітап берді;

Прологта фактілер предикаттық түрде сипатталады:

<атау> <Арг> <арг>

Мысалы, жоғары фактілердің прологта жазылуы:

Student(sultan)

Oku_ozattary (axmet, marjan, madina)

beru (erjan, marjan, kitap)

Фактіде жай жақшалар алдында жазылған атау предикат делінеді. Егер ол бірнеше сөзден тұрса, сөздерді бір атау түрінде қабылдау үшін араларына астын сызу (-) белгісін қойып кету жеткілікті, мысалы оқу озаттары.Предикаттан соң жақшалар ішіне үтір арқылы бөлініп жазылатын атаулар аргументтер деп аталады.Мысалы, қарындас (нұрлан, жібек) фактісінде :қарындас – предикат, Нұрлан, Жібек – аргументтер.

Мұнда ескерілетін жайттар:


  • Прологта предикаттар мен аргументтер латын не орыс алфавиттерімен кіші әріптерінен бастап жазылады.

  • әр факт ақиқат ұйғарым түрінде қабылданады;

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

  • әр фактінің соңына нүкте (.) қойылады.

Прологта фактіні сөйлем (ұйғарым, пікір) деп те атайды. Нысандар арасындағы қатыстан тұратын фактіні жазу және оқу кезінде алдын ала нысандардың жазылу ретін қалаған түрде дәл анықтап алу керек. Мысалы, әке (Мұрат, Сұлтан) фактісінің оқылу реті жоғарыда ескертілген болатын.Ретті еркін түрде анықтап қоюға болады. Мұнда фактілер «Сұлтан Мұраттың әкесі» деп оқу да мүмкін. Бірақ, алдын ала оқу ретіне келісіп қойсаңыз, одан соңғы тақырыптарды да ретпен оқуды сақтау керек.

Егер факт конъюнкциялы болса, ол үшін пайдаланылатын предикаттар үтір (,) арқылы бөлініп жазылуы тиіс. Үтір конъюнкция (және) логикалық операциясын білдіреді. Мысалы, Нұрғали Баянды ұнатады және Баян Нұрғалиді ұнатады күрделі фактісінің Прологта жазылуы:

Ұнатады (Нұрғали, баян), ұнатады (баян, нұрғалиді)

Фактінің конъюнкция құрайтын әр бөлімі мақсат не мақсатты ұйғарым деп те аталады.

Сұрақтар. Мақсатты ұйғарымды дәлелдеу. Қайту процессі.

Жауап алу үшін берілгендер қорына қойылатын сұрақ делінеді. Сұрақ пернетақтадан факт (лер) не ережелер түрінде енгізіледі, тек оның алдына арнайы символды енгізсе болатын арнайы символ – сұрақ белгісі мен одан соң енгізілетін сызықша (?-). Ол – жүйенің шақыру белгісі деп те аталады. Сұрақ соңынан нүкте (.) қойылады.Сұрақтың фактіден айырмашылығы оның алдына тек сұрақ белгісінің қойылуында емес, оның аргументтері үшін айнымалыларды не нақты мәндерге қосу айнымалыларды енгізуге болады.Егер сұраққа енгізілген мақсаттың аргументтері нақты мәндер болса, сәйкес жауап ИӘ не ЖОҚ түрінде беріледі, егер аргументтер айнымалылар болса, оларға сәйкес нақты мәндер шығарылады (прологта айнымалылардың бас әріптен бастап жазылуы міндетті). Сұраққа енгізілген және берілгендер қорында сақтаулы атаулар мен нақты аргументтердің бір – бірінен айырмашылығы болмауы тиіс.Яғни, сәйкес атауларды қысқартып жазуға болмайды. Ал айнымалыларды кез –келген символ не символдар тіркесі түрінде жазылуы мүмкін.

Прологта фактілер Мен сұрақтар жанына не алдына әдеттегідей түсініктеме енгізуге де болады. Ол /**/ символдарының арасына жазылады.

Жүйені оқи алу үшін тарауда қазақша атаулар латын не орыс әріптерін пайдаланып жазылған. Мысалы, қазақша ә , ң, ү, ұ, қ, ө, ж, ы, әріптері шамалас a, n, g, u, k, o, g, y, I латын әріптерімен, тіпті кей әріптер ағылшын әріптерімен алмастырылған. Егер енгізілетін қазақша аргументті жазу керек болса, оны тек тырнақшалар ішіне жазуға болады.

Мысалдар:

1.ana (gulnar) /*факт*/

…………….

?- ana(X) /*сұрақ*/



X=gulnar /*жауап*/

2.?_unatady (axmet,kitap) /*сұрақ*/

да /*жауап*/

3.?_unatady (aldanazar, marjan) /*сұрақ*/

Жоқ /*мұндай факт берілгендер қорында жоқ*/

4/?_ baga (X,5) /*бағасын алғандар кімдер*/

X-erjan

X=marjan


Ескертулер.

1) егер сұраққа берілетін сәйкес жауаптар көп болса, бірінші жауап басылып шығарылған соң, пернетақтадан нүктелі үтір(;) пернесін басу керек. Ол – жүйенің сәйкес мәндерді одан әрі іздеу белгісі.

2) Егер «;» символы енгізілмесе, жүйенің кейбір нұсқалары «Басқа шешім керек пе (иә/жоқ) ?» сұрағын шығаруы мүмкін. Егер оған иә деп жауап берілсе, пролог – жүйе соңғы берілген жауапты есінде сақтап, сол жерде әрі қарай үйлесімді басқа жауаптарды іздей бастайды.Егер басқа жауап алынбаса, « Басқа жауап жоқ» деп хабар береді.

3) Бірінші мысалда берілген сұрақтың орындалуы үшін жүйеде фактілер осы мысалдағы сияқты фактілер түрінде сақталуы тиіс. Турбо Пролог сұрақ сұхбаттық терезеде беріледі. Мысалы Цель:ana (X) команданың берілу тәсілі төменде және 3.7. – тақырыпта баяндалады.

4- сұрақты беру алдында Турбо Прологта программаны мынадай түрде дайындап, компиляциялау және сақтау керек.

Predicates

Baga (string, integer)

Clauses


Baga (erjan,5)

Baga (axmet,4)

Baga (marjan,5)

Мұндағы. Predicates (предикаттар), Clauses (сөйлемдер-ұйғарымдар) Турбо прологтың кілттік сөздері. Predicates бөлімінде әр предикат атауы аргументтерінің типтері көрсетіліп сипатталады.

Clauses бөлімінде фактілер мен ережелер енгізіледі. Программаны компиляциялау, сақтау және іске қосу тәсілдері 3.7 – тақырыпта көрсетілген. 4- мысалды орындау алдында берілгендер қорын экранға шығарып, іске қосу командасын беру керек. Одан әрі Турбо прологта көрінген сұхбаттық терезенің Мақсат (Цель) жазуының қатарына берілетін команда:

Цель: баға (Х,5)

4) Турбо Прологта типті алдымен бөлімінің алдында (ти, облыс, домен) бөлімінде сипаттауда мүмкін.Мысалы, жоғары программаның басын мынадай түрде жазуға болады:

Domains


S= string

N=integer

Predicates (S,N clauses)

5) Турбо Прологта пайдаланылатын негізгі стандартты облыс (тип) түрлері: integer, real, char, string, symbol.

Integer [-32768;33767] аралығынан алынатын бүтін сандар;

Real [e-307;e+308] аралығынан алынатын нақты сандар;

Char – символдар. Олар екі дәйекшенің арасында жазылады.

String – екі тырнақшаның арасына жазылып көрсетілетін жолдық шамалар, оларды тырнақшаларға алмай жазуға болады.

symbol String – типті сияқты символдар тізбегі. Оларды тырнақшаларға алмай жазуға болады, ал тізбек аралығында бос орындар болса не ол кіші әріптен бастап жазылса, тырнақшаларға алып жазу керек, мысалы:

Бір кісі “abc”, “marjan” /*string*/

Abc, marjan, бір кісі axmet /*symbol*/

6) Турбо Прологта Мақсат (Цель) бөлімінің программа ішіне енгізуге де болады. Бұл жағдайда ол программаның бөлімінің соңына не бөліміне енгізіледі.



9-10 тақырып. Прологта логикалық программалау. Мәліметтер базасы.

Мақсаты: Прологтағы мәліметтер базасын және сұраныстарды мысалдармен қарастыру.

1-мысал. Қарапайым орысша – қазақша сөздігін дайындау керек. Фактілер aud (<орысша сөз>, <қазақша аудармасы>) түрінде берілсін: Турбо Прологта берілгендер қорын мынадай түрде дайындауға болады.

Predicates

Aud (string, string)

Clouses


Aud(голова, бас)

Aud(нос, мұрын)

Aud(рот, ауыз)

Aud(тело, дене)

Aud(человек, адам)

Aud


…………………

Цель: Aud (голова,X)

X=бас

2-мысал. Адамдардың қарапайым телефон анықтамалығын құрып, сұрақ бойынша жауап шығару керек.



Оның мақсаты predicates бөліміне енгізген түрде құрылуы:

Predicates

Tel(string, string)

Goal


Write (“фамилия”-?),

Readln(Fam),

Tel(fam, telef_Nom)

Write (“телефон нөмірі “ telef_Nom”), n1.

Clauses

Tel(“Үмбетов. О”, “52-21-60”)

Tel(“Сүлтанов.М”, “55-32-14”)

Tel(“Ержан.К”, “52-21-36”).

Программа іске қосылған кезде бірден фамилия сұралады:

Fam-? Үмбетов.О

Телефон нөмірі=52-21-60

Программаға енгізілген n1-келесі жазуды жаңа жолдан бастау (курсорды жаңа жолдың басына орналастыру) стандартты операторы, Write-стандартты предикат (оператор).

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

Коньюнкциялы сұрақтың жазылуы да коньюнкциялы фактінің жазылуы сияқты: әр мақсат үтір арқылы бөлініп жазылады. Мысалы, сәйкес білім қоры дайындалып, Нұрғали да, Баян да ұнататын нысан сұралса, оны жазылуы:

?- unatedy (nurgali,X), unatedy (baian,X).

Мұнда Пролог берілгендер қорынан алдымен сұраққа енгізілген бірінші мақсатқа сәйкес фактіні іздейді. Егер берілгендер қорында бірінші болып «ұнатады (Нұрғали,ыстық)» фактісі кездессе, жүйе Х айнымалысына «ыстық» мәнін меншіктеп (Х=ыстық), оның мәнін басқа мақсаттарда кездесетін осындай айнымалылардың орнына қойып шығады. Одан әрі берілгендер қорынан «ұнатады (баян, ыстық)» мақсатын іздейді. Ол табылса, оған белгі қойып, екі мақсатты да қанағаттандыратын жауапты басып шығарады. Әйтпесе, Пролог іздеуді берілгендер қорыны басынан бастап қайта жүргізеді. Мұндай процесті қайту процесі не қайту механизмі деп атайды.

Сұрақта белгісіз аргументтер саны бірнеше болуы да мүмкін.

3-мысал. 7-мысал. «Жәмиляның анасы мен оның анасы кімдер-?» сұрағы берілсін, берілетін сұрақ пен шығатын жауаптың түрі:

?-ana(X,Y), ana(Y,jamilia).

X=xadisha Y=baian

Мұнда берілген сұрақ берілгендер қорымен үйлесімді болуы үшін қор мынадай түрде құрылған болуы тиіс.

ana (xadisha baian)

ana (gulnar,nurlan)

ana (baian jamilia)

………………….. т.с.с

Турбо Прологта программаны сақтап, іске қосу командасын берген кезде экранның оң жағында көрінген Dialog терезесінде берілетін команда:

Мақсат: ana(X,Y), ana(Y,jamilia)

Мұнда да, Пролог жауапты алдымен бірінші мақсатқа сәйкес іздейді, т.с.с.

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

Прологта бірден бірнеше фактінің бар не жоғын тексеру сұрағы құрылымды сұрақ делінеді. Мысалы, мынадай берілгендер және т.с.с берілгендер қоры дайындалған болсын:

ushady(ushakh).

ushady(tyrna).

Khanaty_bar(tyrna).

Khanaty_bar(karlygash).

................................. .

Қорға сәйкес мынадай құрылымды сұрақ беруге болады:

?- ushady(Х), кhanaty_bar(Х).

Х= tyrna

Берілгендер қорына енгізілген қанаты бар құс екеу, екіншісі қарлығаш. Бірақ, жүйе х=karlygash жауабын шығармайды, себебі «ushady» предикаты бар мұндай факт берілгендер қорына енгізілмеген.


11-12 тақырып. Прологта логикалық программалау. Білімдер базасы.

Мақсаты: Прологтағы ереже және үйлесімділік ұғымдарын қарастыру. Мысалдар қарастыру.
Пролог сөйлемдері(ұйғарымдары) үш типті: фактілер, ережелер және сұрақтар. Факт – сөзсіз ақиқат болатын жеке мақсат. Мысалы, ұнатады(Ахмет, абай_жолы) фактісінде Ахметтің бір ғана «Абай жолы» кітабын ұнататыны мәлімделген. Егер Ахметтің ұнататын кітаптары көп болса, онда оның бәрін атап шықпай-ақ, қысқаша Unatadi(axmet, kitap) фактісі түрінде жазуға болады. Мұндай факт ереже деп аталады. Яғни, ереже мен фактінің айырмашылығы сөз мәнінде ғана.

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

Егер жаңбыр жауып тұрса, онда дала дымқыл.

Егер жәндік үлкен және қанаттары бар болса, онда ол –құс.

Сонымен, ереже –нысандар және олардың арасындағы қатыстар жөнінде біршама ұйғарым(сөйлем). Ол Прологта басы мен денеден тұратын етіп жазылады:

<басы>:-<дене>.

Дене –ереженің егер бөлімі (мақсат пен мақсаттар). Ол кейбір жағдайларда ақиқат болатын конъюнкциядан не жеке мақсаттан тұруы мүмкін. Конъюнкцияға енген жеке мақсаттар үтір (,) арқылы бөлініп жазылады.

Басы-ереженің онда бөлімі (-негізгі мақсат (негізгі мақсат ереже тақырыбы деп те аталады)).

:- - ереженің басы мен денесінің арасына қойылатын қос нүкте мен сызықшадан тұратын белгі. Ол ережеге енгізілетін егер қызметші сөзін алмастырады (Турбо Прологта:- белгісінің орнына if кілттік сөзін жазуға да болады).

.(нүкте)- ереже соңына қойылатын белгі.

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



  1. мысал: құс (Х) :- үлкен_жәндік(Х), /* нысанды тану */

қанаты_бар(Х).

Ит(Х) :- әке (Х,У), ит (У)



Соңғы ереженің оқылуы: егер У-тің әкесі Х, ал У ит болса, онда Х-ит (Х,У- байланыстырылған айнымалылар). Түсінікті болу үшін ережені ағаш түрінде бейнелеп көрсетуге де болады:

Мысалға енгізілген ережелерге және дайындалған фактлерге сәйкес Турбо Прологта программаның құрылуы:

domains

S=string


predicates

kus(S) ulken_jandik(S)

kanaty_bar(S)

it(S) ake(S,S)

clauset

kus(X) :- ulken_jandik(X), kanaty_bar(X).



It1(X):-ake(X,Y), it(Y).

Ulken_jandik(tyrna).

Kanaty_bar(tyrna).

It(bars).

Ake(moinak,bars).

…………………….

Ережелер мен фактілер сақталған соң сәйкес сұрақтар арқылы қажетті жауаптарды шығару қиын емес. Сұрақ белгісі теріліп алынған соң, ал Турбо Прологта іске қосу командасын берген соң сұхбат терезесінде көрінген. Цель: сөзінен кейін ереженің басы жазылуы тиіс. Мысалы:

Цель: it1(X)

X=moynak

Цель: кus(X)

X=turna

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



Егер ереже денесіне нақты мәндер енгізілсе, аргументтері айнымалылар болатын сұраққа жауап ретінде айнымалылардың нақты мәндері шығады: Мысал: ? – unaidy(axmet,X) &-kyz(X), unaidy(X,kitap).

Сұрағы берілген кезде Пролог сұрақ денесінің сол жағында бірінші болып жазылған kyz(Х) мақсатын берілген қорымен салыстырады да, қыз(Х) [kyz(X)] мақсатына үйлесімді факт табылса, оның аргументі Х-ке меншіктеп, Х айнымалысы кездесетін барлық жерге осы мәнді қойып шығады, т.с.с. Айнымалыны сәйкес мәнімен алмастыру айнымалыны нақтылау делінеді.

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

Жүйеге фактілерге қосып ережелер де енгізілсе, оларды білім қоры деп, ал, біршама фактілер мен ережелер тобын процедура деп те атайды. Нақты фактілер мен ережелер жиыны- сұраққа жауап дайындалатын қарапайым программада. Яғни, Прологта берілгендер қоры, білім қоры және программалар бір түрлес. Оларды тек Пролог нысандарына екі түрлі көзқарас деп түсінуге болады. Бірақ, программалардың көпшілігі, мысалы, сараптаушы жүйелерді дайындау программаларының үлкен және олар мақсаттарды дәлелдеуді қажет ететін логикалық ұйғарымдар түрінде құрылады. Фактілер жиынтығы логикалық программалаудың қарапайым түрі. Күрделі программаға жаңа сөйлемдер және өңдеуді қажет ететін процедураларды қосып программаны кеңейту де мүмкін.

Прологта фактілерге енгізілетін айнымалылар жалпылық квантормен айқын емес түрде байланысты, мысалы, ұнатады (Х,алма) фактісі кез-клген Х-тің алманы ұнататынын білдіреді. Барлық айнымалылар жалпылық кванторлы болғандықтан программаларда оның белгісі енгізілмей тастап кетеді.

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

2-мысал. Табиғи тілде мынадай ереже берілсін: егер Х атаулы ер кісінің әкесі А және У атаулы әйелдің әкесі де А болса, онда Х-пен У – бір туыс.

Ерлер мен әйелдердің әкелері жөнінде екі тізім дайындалған болсын:



1-тізім(ерлер)

2-тізім (әйелдер)

әке 1 (Оспан,Марат)

әке 1 (Нұрлан, Болат)

әке 1 (Ержан, Қажым)

әке 1 (Мұрат, Сұлтан)



әке 2 (Мұстафа, Айгүл)

әке 2 (Мұрат, Шолпан)

әке 2 (Нұрлан, Маржан)

әке 2 (Бахыт, Жәния)


Тізімдерді қарап шығып, әкелері бір ерлер мен әйелдерді анықтау керек.

Жоғарғы тізімдерде олар:

Болат пен Маржан (әкелері-Нұрлан),

Сұлтан мен Шолпан (әкелері - Мұрат )

Есепті шешу үшін алдымен екі тізімді бір білім қоры түрінде дайындап, арнайы атаумен сақтау керек (мысалы, Туыстар). Ол – дайындалған программада:

Tuis (X, Y, A): -ake1 (A,X), ake2 (A,Y).

Ake1 (ospan, marat).

Ake1 (nurlan, bolat).

……………………


Ake2 (baxit,jania).
Берілетін сұрақ ?-tuis (X,Y,A).

Білім қорында әкелері бір туыстардың бар екені ақиқат түрінде алынып, ережеге енгізілген әр мақсаттың ақиқаттығы дәлелденеді. Бұл талқылаудың кері тізбегі.

Сұрақ беріліп программа іске қосылған кезде Пролог алдымен ереже денесінің сол жағында бірінші болып жазылған аke1(А,Х) мақсатын дәлелдеуге кіріседі. Дәлелдеу берілгендер қорының басынан бастап жүргізілетіндіктен, мақсаттың бірінші фактіге сәйкес келетінін анықтап, жүйе мынадай меншіктеу командаларын орындайды:

A=ospan, X=marat

Одан әрі, жүйе ережеге енгізілген барлық А және Х айнымалыларының орнына осы мәндерді қойып шығарды да, келесі әке2 (Оспан,У) мақсатын дәлелдеуге кіріседі. Бірақ берілгендер қорында «Оспан» аргументі бірінші болып жазылған басқа факт жоқ. Сондықтан, Пролог берілгендер қорының басына қайтып өтеді де, баламалы дәлелдеуге қайта кіріседі. Мұнда Пролог алдымен бірінші фактіге сәйкес А, Х айнымалыларына меншіктелген мәндерді өшіріп тастайды да, келесі фактіні тексеруге көшеді. Келесі факті әке1 (А,Х) мақсатына салыстырмалы болғандықтан, жаңа меншіктеу командасын орындайды: А= Нұрлан, Х=Болат. Одан әрі әке2 (нұрлан, У) мақсатына салыстырмалы фактіні іздеу барысында Пролог сәйкес фактіні табады да, У=Маржан меншіктеуін орындап, сәйкес мәндерді басып шығарады: X=bolat Y=marjan A=nurlan

Сұраққа сәйкес келесі мәндерді шығару үшін клавиатура арқылы «;» пернесін басу керек (Турбо Прологта олар автоматты түрде көрінеді, пернені басу қажет емес).

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

Жоғарыдағы мысалға сәйкес білім қорының (программаның) Турбо Прологта жазылуы:

Predicates

Tuis (string, string, string)

Ake1(string, string)

Ake2(string, string)

Clauses

Tuis(X,Y,A): - ake1(A,X), ake2(A,Y).



Ake1(ospan,marat)

Ake1(nurlan,bolat).

………….

Ake2(baxit,jania)



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

Мысалы, жоғарыда берілген программаның орындау сұрағын қарастырайық: tuis(X,Y,A): - ake1(A,X), ake2(A,Y) оны орындау жолын ағаш түрінде бейнелеуге болады:



Прологтан әр қатардан тұратын жазбаларды (тізімді) да ашуға болады:



3-мысал. Студенттердің математика мен информатикадан алған бағалары көрсетілген мынадай тізімнің әрқайсысын жолдық типке алып, Турбо Пролог терезесінен алу керек:

1.ахметов О. 4 4

2.Ермеков Н. 4 3

3.Нұрланова Н. 5 5
Программаны мынадай түрде құруға болады:

Domains


T=string

Predicates

tizim(T)

clauses


tizim(“1.Ахметов О. 4 4”)

tizim(“2.Ермеков Н. 4 3”)

tizim(“3.Нұрланова М. 5 5 ”)
Компиляциялап, іске қосу командасын берген соң сұхбаттық терезеде берілетін команда – цель : tizim(T).

Тапсырма. Прологта әке, ата жөнінде мынандай сұрақтарды дайындаңыз:


  1. Ахметтің әкесі кім?

  2. Айсұлудың баласы бар ма?

  3. Ахметтің әкесінің әкесі кім?


13-15 тақырып. Логикалық есептерді шешу.

Мақсаты: Логикалық есептерді прологтағы мәліметтер базасы ретінде шешу.

Көптеген логикалық есептер бірнеше ақырлы жиындарды (элементтерінің саны бірдей болатын) қарастырумен байланысты. Олардың арасында өзара –бірмәнді сәйкестік орнатылады. Пролог тілінде осы жиындарды мәліметтер базасы ретінде қарастыруға болады. Обьектілер арасындағы тәуелсіздіктер ережелер көмегімен қойылады.



Мысалы: Үш дос балалар әңгімелесіп отыр: Ақбасов, Сарыбасов және Қарабасов. Қарабасов Ақбасовқа былай деді: «Қызық екен, екеуіміздің біреуіміздің шашымыз - ақ, екіншіміздікі - қара. Ал үшіншіміздікі - сары. Бірақ та ешқайсымыздың шашымыздың түсі фамилиямызға сәйкес келмейді. Дос балалардың шаштарының түсі қандай.

Дәстүрлі тәсілде есеп кесте сызу арқылы шешіледі.



Фамилия


Шаш түсі

сары

ақ

Қара

Ақбасов

+

-

-

Қарабасов

-

+

-

Сарыбасов

-

-

+

Кестеде сәйкес әр фамилия мен түстің қиылысқан жеріне «-» белгісін қоямыз. Қарабасовтың шашы қара болмағандықтан, оныкі тек ақ болады. Сәйкесінше Қарабасов пен ақ шаштың қиылысқан жеріне «+» белгісі қойылады. Қалған фамилиялар мен шаш түстері келмегендіктен оларға да «+» қойылады.

Пролог тілінде программа құрылымы келесі түрде болады: алдымен берілгендер саналады – фамилиялар мен шаш түстері. Содан кейін осы екі жиынды байланыстыратын ережелер жазылады.

/* Фамилиялар деректер базасы */

Фамилия (Ақбасов)

Фамилия (Қарабасов)

Фамилия (Сарыбасов)

/* Шаш түстері деректер базасы */

Шаш түсі (сары)

Шаш түсі (қара)

Шаш түсі (ақ)
/* Деректер базалары арасында өзара-бірмәнді сәйкестік орнатамыз, Х – фамилия Д.Б элемент, У – шаш түсі Д.Б. элементі */

/* Ақбасов қара да ақ та емес */

Сәйкестік (Х,У): - фамилия (Х), шаш түсі (У)=Ақбасов,

емес (у =қара) , емес (у)

/* Ақбасов пен Қарабасовтың шаштарының түсі сәйкес келмейді*/

Сәйкестік (х,у):- фамилия (х) , шаш – түсі (у), х:= Қарабасов,

Емес (у =қара), емес (сәйкестік(Ақбасов(у))).

/* Үшеуінің түстері әртүрлі*/

сәйкестік (х,у):=фамилия(х), шаш түсі (у), х= Сарыбасов.

емес (у= сәйкестік (Қарабасов(у)).

Алынған деректер базасына әртүрлі сұраныстармен қатынасуға болады. Мысалы :

? – сәйкестік (А,В). Бұл сұраққа әр адамның фамилия мен шаш түсін қамтитын жауаптардың барлық нұсқалары алынады.



Логикалық есеп күрделенеді, егерде онда екі емес одан да көп жиындар болса. Сонымен қатар сәйкестілік өзара бірмәндә болмаса да есеп күрделенеді.

Тапсырма 1. Серік пен Беріктің фамилиялары Балғабаев және Орақбаев. Егер Серік Балғабаев пен әр түрлі үйде тұрса, олардың әрқайсысының фамилиясы қалай?

Тапсырма 2. Жүгіруден жарыста Әсет ,Алмас, Қайрат үш алдынғы орынды жеңіп алды. Егер Әсет екінші емес және үшінші емес , ал Қайрат үшінші емес орын алса, әрқайсысы нешінші орын алғанын анықтаңыз.

Тапсырма 3. Үш құрбы ақ, жасыл және көк көйлектер және туфлилермен көшеге шықты.Тек Айгүлдің көйлегі мен туфлиінің түсі сәйкес келетіні белгілі. Бақыттың туфлиі де , көйлегі де ақ емес . Назым жасыл туфлиде болды. Әр құрбының көйлегі және туфлилерінің түстерін анықтаңыз.

Тапсырма 4. Бөтелкеде , стаканда , құмырада және банкада сүт , лимонад , квас және су бар. Сүт пен судың бөтелкеде емес екені белгілі , лимонады бар ыдыс құмыра мен квас құйылған ыдыстың ортасында тұр.Банкіде – лимонад та емес , су да емес . Стакан банка мен сүт құйылған ыдыстың ортасында тұр.Осы сұйықтықтар ыдыстарға қалай құйылған ?

Тапсырма 5. Ильияста қызыл машина , Парасатта – қара емес , көк емес, көгілдір емес , Мейрамбекте – қара және көк , Айдарда жоғарыда көрсетілген түспен машиналардың кез -келгені бар , Берікте ақ және көк түсті . Егер барлық балалар әр түсті машиналарда болса , әрқайсысы қандай машина жүргізді .

Тапсырма 6. Шешем, әкем және мен орындықта отырдық . Біз орындықта қандай ретпен отырдық , егер келесілер белгілі болса:

  • Мен әкемнің сол жағында отырдым , ал шешем менің сол жағымда .

  • Әкем менің сол жағымда және шешемнің оң жағында отырды .

  • Шешем менің оң жағында , ал әкем шешемнің оң жағында отырды.

Тапсырма 7. Гүлнұр мен Лаураның бойлары бірдей. Лаураның бойы Озатгүлден биік , ал Талшын Гүлнұрдан биік .Кім биік: Талшын ба , әлде Озатгүл ма?

Тапсырма 8. Киноға билет алу үшін Жұлдыз , Мерхат , Бауыржан , Самат және Орынбек тұр.Келесілер белгілі:

  • Жұлдыз билетті Мерхаттан бұрын , бірақ Орынбектен кейін сатып алды.

  • Бауыржан мен Орынбек қатар тұрмады.

  • Самат Орынбектің де , Жұлдыздың да , Бауыржанның да қасында емес.

Кім кімнен кейін тұр?
9 Студенттердің өздік жұмыстары

СӨЖ №1. Семантикалық желілер.

Тапсырмалар:

  1. «Мектептен сабақ» жүйесі келесі элементтерден тұрады деп есептелетін оқушы , мұғалім , оқулық, дәптер, сынып журналы, сынып тақтасы, бор, карта, мүғалім үстелі, сынып бөлмесі. Төбелері аталған объектілер болатын, доғалары олардың арасындағы қатынастар болатын семантикалық желі құр.

  2. «Нан дүкен» жүйесі бойынша семантикалық желі құр. Ол келесі элементтерден тұрады: нан, сатушы, сатып алушы,автомобиль, жүргізуші, жүк түсіруші, ақша,чек.

СӨЖ №2. Сөйлемдердің мағыналық құрылымы.

Тапсырмалар: Келесі сөйлемдерге графтар құр.

  1. «Арман таңертең ерте тұрып орманға саңырауқұлақ теруге көлкпен кетті.»

  2. «Әсел математика пәнінен үй тапсырмасын құрбысы Айданамен бірге отырып шығарды.»

  3. «1С бухгалтерия программасы бухгалтерлік есептің барлық түрін толық жиында орындауды қамтамасыз етеді.»

  4. «Windows 2000 –толықтай 32 разрядты ОЖ артықжылықтары бар көп есепті, жадында сақтау жұмысының жақсартылған және әуел баста сенімділікті, қорғауды және бақаруды қамтамасыз ететін құралдармен жобаланған.»

5."Айдар туған күніне теледидар және көк пен ақ түсті жейделерді сыйлыққа алды".

СӨЖ №3. Математикалық өрнектердің мағынасы.

Тапсырмалар: келесі арифметикалық өрнектерге бұтақ құрыңыз:

    1. (100 - 54) / 2 + (18+25)*5.

    2. 500/2+4*12-(15-9).

СӨЖ №4. Екі үлесті графтардағы модельдер.

Тапсырмалар:

Айналатын қозғалыстың кинематикасы келесі шамалар және байланыстармен сипатталады:

 - бұрылу бұрышы,

t- қозғалу уақыты,

n- айналым саны,

-бұрыштық жылдамдық,

- айналу жиілігі,

- айналу периоды,

V- сызықты жылдамдық,

a- ортаны көздейтін жылдамдату,

r- айналу радиусы,

=/ t, =2n/t, T=1/, T=t/n, V=r, a=2r.

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

СӨЖ №5. Логикалық есептерді шешу.

Тапсырмалар:


  1. Есепті тұжырымдаңыз. Айгүл, Нұргүл, Асхат және Айдар саңырауқұлақ терді. Нұргүл бәрінен артық терді, Айгүл бәрінен кем емес. Қыздар ұлдардан артық терді деген ұғым дұрыс па?

  2. Есепті тұжырымдаңыз. Бір апта бойы көпірде жеті жолдас балалар кезекшілік атқарды. Алмас бірден Серіктен кейін кезекші болды. Болат екі күннен кейін кезекші болды, ол Мейрамбектен кезегінен бұрын болды. Қанат Жанаттан екі күн бұрын кезекші болды. Бейсенбі күні Ильяс кезекші болды, оның кезекші болған күні Жанат пен Серіктің күндерінің дәл ортасына келеді. Жолдас балалардың кезекшілік графигін анықтаңыз және түсіндіріңіз.

  3. А қаласынан В қаласына жүрген пошта тасушы поезд В, Г, Д, Е, Ж, З және К станцияларына тоқтады, оларда поштаны түсіреді және қабылдайды. Почта келесі кезектер бойынша көшірілді: ВЗ, ГД, ЕВ, ЖЕ, ЗК және КГ (бірінші әріп – жіберу пункті, екіншісі – қабылдау пункті). Пошталық поезд маршруты бойынша станциялардың орналасуын анықтаңыз.

  4. Мақпал, Ләззат, Жанар және Камила – шет тілдер факультетінің студенттері, оларды музыка қызықтырады және әрқайсысы қандай да бір аспаптарда ойнайды, тек біреуінде ғана: домбыра, гитара, скрипка және фортепиано. Әрқайсысы келесі бөлімдердің бірінде оқиды: ағылшын, француз, неміс және испан тілінде. Гитара ойнайтыны испан тілінде оқиды. Ләззат не домбырада, не скрипкада ойнамайды және ағылшын тілі бөлімінде оқымайды. Мақпал да не домбырада, не скрипкада ойнамайды және ағылшын тілі бөлімінде оқымайды. Неміс тілі бөлімінің студенті домбырада ойнамайды. Жанар француз тілі бөлімінде оқиды және скрипкада ойнамайды.

  5. Студенттердің қайсысы қандай аспапта ойнайды және шет тілдер факультетінің қай бөлімінде оқиды?

СӨЖ №6. Логикалық есептерді шешу.

Тапсырмалар:

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

2. Сыйымдылығы 3 литр суды және 5 литр ыдыстардың көмегімен ағып тұрған судан 4 литр суды қалай алуға болады?

3. Арыстан қойды 2 сағатта, қасқыр 3 сағатта, ит 6 сағатта жеп бітіре алады. Үшеуі қатар жесе, қанша уақытта жеп бітіре алады?

4. Ақмарал, Сара, Жадыра және Лаура – оқу озаттары. Олар мектепте өткізілген (математика пәні бойынша) олимпиадаға қатысып жүлделі 4 орынды өзара бөлісті. Олар қандай орынды жеңіп алды екен? – деген сұраққа осы кластың оқушылары былайша жорамалдап жауап берді.

1. Ақмарал II, Сара III

2. Ақмарал I, Жадыра II

3. Лаура II, Сара IV

Бұл жауаптардың біреуі дұрыс, екіншісі жалған болып шықты. Кім қандай орынды жеңіп алған?

5. Қайрат, Болат, Алмат, Самат төртеуі жарыста алғашқы төрт орынды жеңіп алды. Кім қандай орын алды деген сұраққа, олардың үшеуі былай жауап берді.

Қайрат 1-ші де, 4-ші де емес

Болат 2-ші

Алмат соңғы емес.

Сонда олар қандай орынды жеңіп алды?

СӨЖ №7-15. Өздік жұмысты ұйымдастыру бойынша әдістемелік нұсқаулар: студенттің өздік жұмысы (СӨЖ) шағын жоба және реферат түрінде орындалады және студенттердің өздік жұмысын қойлатын талаптарға сәйкес тапсырылады.

Өздік жұмысты бақылау келесі формада өтуі мүмкін:

– жасалған жұмысты көрсету;

– өздік меңгерген тақырып бойынша баяндама;

– аудиториялық сабақтарды немесе ОБСӨЖ-де ауызша сұрау;

– жазбаша орындалған тапсырмаларды қорғау.

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

Өз бетімен меңгерген материал оқытушумен бірге меңгерілген материалмен қоса қорытынды бақылауға шығарылады.



Өздік жұмыс тақырыптары:

1 Лого программасы.

Мақсаты: Лого программасының тарихы және құрылымымен танысу.



2. Lisp программалау тілі

Мақсаты: Lisp программалау тілінің тарихы және құрылымымен танысу.



3. Сарапшылық жүйе

Мақсаты: Сарапшылық жүйені құрудың кезеңдерімен танысу.



4. Сарапшылық жүйе құру

Мақсаты: Әр түрлі тақырыптағы сарапшылық жүйені құрып үйрену.



5. Графтар теориясы

Мақсаты: Граф ұғымымымен танысу. Оның жасанды интеллекте алатын орнын білу.



6. Пролог тілінде сандармен жұмыс.

Мақсаты: Пролог тілінде сандардың қалай қолданылатынын білу және есептер шығару.


10 Білім алушылардың оқытушымен өздік жұмысына кеңес беру кестесі

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



11 Білім алушылардың білімдерін тексерудің кестесі

Барлық дәрістер, тәжірибелік және лабораториялық жұмыстарға қатысып, тапсырмаларды уақытында орындау 0-100 баллмен бағаланады.



Пән бойынша тапсырмаларды орындау және тапсыру кестесі



СӨЖ түрі

Бақылау түрі

Сағаттың көлемі



Дәрістерді талқылау. Қосымша материалдарды оқу.

Ауызша сұрау, межелік бақылау

15



Тәжірибелік жұмыстарға дайындалу, есептерді рәсімдеу.

Бақылау сұрақтар, есеп

15



Үй тапсырмаларын орындау

Жазбаша есеп

15



Бақылау жұмыстарға дайындалу және қатысу

межелік бақылау, емтихан

15

Барлығы

60


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9




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

    Басты бет