Gauhar Pogoda

of 30 /30
Коммерциялық емес акционерлік қоғам Алматы энергетика және байланыс университеті Компьютерлік технологиялар кафедрасы «Сарапшы жүйелер» пәні бойынша Курстық жоба Тақырыбы: Пролог тілінде «Ауа райын болжау» бағдарламасы Орындаған: БВТк- 09-02 тобының студенті Асабаева Г. Жетекші: доцент Ахметова М.А

Transcript of Gauhar Pogoda

Page 1: Gauhar Pogoda

Коммерциялық емес акционерлік қоғам Алматы энергетика және байланыс университеті

Компьютерлік технологиялар кафедрасы

«Сарапшы жүйелер» пәні бойынша Курстық жоба

Тақырыбы: Пролог тілінде «Ауа райын болжау» бағдарламасы

Орындаған: БВТк- 09-02 тобыныңстуденті Асабаева Г.

Жетекші: доцент Ахметова М.А

Алматы 2013

Page 2: Gauhar Pogoda

Мазмұны Кіріспе......................................................................................................................3

Сала мәселесі...........................................................................................................4

Теориялық мәселе....................................................................................................6

Іске асыру...............................................................................................................12

Тестілеу..................................................................................................................15

Қорытынды............................................................................................................18

Қолданылған әдебиеттер тізімі............................................................................19

Қосымша А.............................................................................................................20

2

Page 3: Gauhar Pogoda

Кіріспе

Ауа райын болжау атмосфераның болашақтағы күйін анықтау болып табылады. Болжам жасаудың негізгі мақсаты - табиғи құбылыстарға алдын-ала дайындық жүргізу мен қызметті сәйкесінше жобалау. Ауа райына байланысты құбылыстар қоғамдық өмірге, сондай-ақ социалды-экономикалық секторларға әсерін тигізеді. Ауа райын болжаудың категориялары: өте қысқа мерзімді (0-12 сағатқа), қысқа мерзімді (12-72 сағатқа), орта мерзімді (72-240 сағатқа), ұзақ мерзімді (30 тәулікке дейін) және (30 тәуліктен 2 жылға дейін) болып бөлінеді. Берілген курстық жұмыста іске асырылған бағдарлама ауа райын қысқа мерзімді болжауға арналған.

Программа орындалғанда интерпретатор үнемі логикалық спецификациялар негізінде шешімді шығарып отырады. 1-ші дәрежедегі предикаттар теориясы идеясын пайдалану компьютерлік ғылымдар үшін және жасанды зерде мәселелерін шешу үшін қолданатын ПРОЛОГ тілінің ең үлкен жетістігі деп білуге болады. 1-ші дәрежедегі предикаттар теориясын проргаммалау тілінде қолдану түсінікті, элегантты синтаксис пен жақсы анықталған семантиканы пайдалануға мүмкіндік береді.

Пролог  жапондардың  бесінші   ұрпақ  ЭЕМ-дерін  жасау   бағдарламасында  базалық   тіл  негізінде   қабылданған. Бұл  ЭЕМ-дер  логикалық  программалау   және  жасанды  интеллект  әдістерін  зерттеуге  бағытталған. Пролог  тілінде  программалағанда  шешімді  сипаттау  біраз   жеңілдетіледі және  программист   есеп  шешімдерін  алгоритмдік   тілдерде  программалағандағыдай  шағын  қадамдарға бөліп  программалау    әдістерін  іздестірмейді, керісінше  тікелей  есеппен  айналысу  мүмкіндігіне  ие  болады. ПРОЛОГ логикаға негізделген басқа тілдер сияқты программалаудың мағлұмдалық стилінде орындалады, яғни шектелген салалық мәселе есебін жоғары деңгейлік терминдерінде құруды іске асырады. Процедуралық программалау стилінде алгоритмді орындаудың рет-ретімен жазылған нұсқаулар түріндегі программа жазылады. Логикалық программалауда компьютерге "шын деген не", екені, ал процедуралық программалауда "қалай орындау керек" екені хабарланады. Бұндай мүмкіндік программалаушы адамға есепті шешу және сала мәселесіндегі спецификацияларды құруға көңіл бөлуін қамтамасыз етеді. Процедуралық программалау стилінде ол үшін "ары қарай не істеу керек" деген сұрақтың алгоритмдік нұсқаулары көрсетіледі.

3

Page 4: Gauhar Pogoda

Сала мәселесі

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

Заманауи технологиялардың көмегімен мамандар ауа райын 10 күнге дейін максималды дәлдікпен анықтай алады. Барлық деректер метеорологиялық станциялардан келіп түседі: Жердің жасанды серіктерінен, ауа лайнерлерінен, пароходтардан. Ауа райы болжамы ауаның ылғалдылығы мен температурасы арқылы, желдің бағыты мен жылдамдығы арқылы , күннің радиациясының мөлшері арқылы, атмосфералық қысым, бұлттар арқылы анықталады. Барлығы жыл мезгіліне, тәулік уақытына, территориалдық ендікке байланысты. Ауа райының факторларын біле отырып метеорологтар мен синоптиктер қандай да бір құбылыстардың ықтималдығы мен ұзақтығын анықтай алады. Ғылыми болжам жасау планетаның әр шеттерінде орналасқан метеостанциядан келетін ауа райы шарттарының өзгерістерінің келу жылдамдығынатәуелді. Бұл мүмкіндік Самюэл Морзенің телеграф аппаратын құрастырып шығарғаннан кейін қолжетімді бола бастады. Бүгінгі таңда әлем бойынша 7000 жуық метеостанция бар. Біреулері қалаларда немесе әуежайларда, басқалары ашық теңізде бағыт алған кеме борттарында орналасқан. Тіптен ұшақтар да рейс кезінде метеодеректерді тіркеп отырады. Метеостанцияларда өлшемдер атмосфераның үстіңгі қабатында жүргізіледі. Жоғарғы қабаттардағы күйлер туралы ақпаратты радиозондтар арқылы алады. Олар ауа шарлары арқылы жіберіледі.

Ауа райын болжаудың категориялары: өте қысқа мерзімді (0-12 сағатқа), қысқа мерзімді (12-72 сағатқа), орта мерзімді (72-240 сағатқа), ұзақ мерзімді (30 тәулікке дейін) және (30 тәуліктен 2 жылға дейін) болып бөлінеді. Ауаның үнемі жылжып отыру қасиеті бар, осылайша ауа массалары жиналған жерде атмосфералық фронттар пайда болады, тура осылардан алдағы күндердің ауа райы тәуелді болады. Нөсер астында қалмас үшін ауа райы өзгерістерінен уақытылы хабардар болу қажет.

4

Page 5: Gauhar Pogoda

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

Ауа райын болжаудың қажеттіліктері:1. Ауыл шаруашылығы үшін. Соңғы көктемгі және ерте күздік болжамдар

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

2. Авиация саласы үшін. Найзағай фронттары, қатты тұмандар, жаңбыр, қатты жел ауадағы қозғалыс үшін жағымсыз әсерін тигізеді.

3. Тұтынушылық болжам (ертең не кию керек, қолшатыр алу қажет пе және т.с.с)Дамыған мемлекеттерде ауа райы мен климат бұрыннан экономикалық

категория ретінде қалыптасты. Жыл сайын стихиялық апаттар 250 000 адам өмірін қияды, мүлікке келетін шығын мөлшері 50-100 млрд. Доллар шамасында болады. Бірақ әлемдік статистикаға сенетін болсақ, егер уақытында қажетті шаралар қолданылса, апаттардан келетін шығындардың 30-40%на ұшырамауға және адам шығынын мүлде болдырмауға болады деп дәлелдеді. Оның құрылымының негізі үшін өндірушілер, экономисттер және метеорологтар бірігіп жұмыс істеу қажет.

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

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

5

Page 6: Gauhar Pogoda

Теориялық мәселе

Нақты есепке қатысты спецификациялар жиынтығы Дерекқор деп аталады. ПРОЛОГ интерпретаторы осы спецификациялар жиынтығына қатысты сұрақтарға жауап береді. ДҚ сұратуы Дерекқордағы жазбалар сияқты логикалық синтаксисте берілген шаблондар. ПРОЛОГ интерпретаторы шаблондар негізінде сұратулар ДҚ-дың мазмұнының логикалық себебі ме соны анықтауды жүргізеді. ПРОЛОГ интерпретаторы сұратуларды былайша өңдейді: ДҚ-дағы іздеуді тереңге бойлай солдан оңға қарай жүргізеді және көрсетілген сұрату ДҚ-дағы спецификациялар жиынтығының логикалық себебі ме соны анықтайды. ПРОЛОГта жұмыс істеуді оның Турбо-ПРОЛОГ деген версиясы арқылы үйренеміз. Онда жазылған программа бес бөлімнен тұрады. Оның кілттік сөздері: domains, database, predicates, goal, clauses түрінде болып, сол арқылы бөлімнің басталуын хабарлайды. Программалардың барлығында осы бес бөлімнің болуы міндетті емес. Сонымен бірге бұл тілде түсіндірулер программаның кез келген жерінде кез келген ұзындықтағы мына таңбамен: /* және */ белгіленеді. [1,14]. Турбо-ПРОЛОГ тілінде программа құрғанда мына тәртіпті сақтау қажет: тілдегі нысандар мен қатынастардың барлығы кіші әріптермен жазылады; ең алдымен қатынастар (предикат) жазылады, содан соң үтір арқылы нысандар атаулары жазылып, атауларының тізімі дөңгелек жақшаға алынады; әрбір факт, мақсат соңында міндетті түрде нүкте (.) қойылады. Программа орындалуы мақсат операторы табылғаннан бастап іске асады. Мақсат–ол программа шешуге тиісті мәселенің қалыптастырылған түрі. Ішкі мақсаттарды ПРОЛОГ өзі тапса, ал сыртқы мақсатты ол пайдаланушыдан сұрайды. Бұл жағдайда Турбо-ПРОЛОГ экранға Goal (мақсат) деген шақыруды шығарады. Содан кейін ол берілген мақсатты программадағы бар фактілер мен ережелермен салыстырады. Салыстыру принципінің схемасын өз есіңізде мықты сақтауыңыз қажет. Ол мынандай болып келеді: «жоғарыдан төмен қарай және солдан оңға қарай жүру». ПРОЛОГтағы Дерекқорлар екі түрлі болады статикалық және динамикалық. Ол ПРОЛОГтың database деген бөлімінде орналасады. ДерекҚордағы өзгерістерді мына ішкі предикаттар іске асырады:

asserta (X), ssertz(X) – деректерді қордың басына немесе соңына жазады;

retract(X) – ДерекҚордағы фактілерді өшіреді; consult(файл аты) – оперативті жадыдағы файлды ашады.

6

Page 7: Gauhar Pogoda

ПРОЛОГ негізінен интерпретацияға жататын тіл. Тілдің кейбір версиялары толығымен интерпретация режимінде жұмыс істейді. Ал кейбір версияларын программа орындалуын жеделдету үшін немесе спецификациялар жиынтығының бөліктерін немесе барлығын компиляциялауға қолдануға болады. ПРОЛОГ тілі интерактивті тіл, пайдаланушы экранға мына таңба шыққанда « ?- » сұратуды енгізуі қажет. Мысалы ДҚ-ға тағы екі досты анықтайтын ережені қосу керек болсын дейік. Бұл ереже былайша сипатталады: friends (X, Y): — likes (Х, Z), likes (Y, Z). Бұл өрнектің талдауы: «Егер Х сүйетін Z және У сүйетін Z бар болса және дүниеде Z бар болса, онда Х және У — дос». Бұл жерде мыналарды атап өтуіміз керек: біріншіден предикаттар логикасында да, ПРОЛОГ тілінде де глобалды айнымалылар анықталмағандықтан Х, У және Z айнымалыларының анықталу аумағы friends ережесімен шектеледі. Екіншіден Х, У және Z, байланған немесе унификацияланған айнымалылар барлық өрнектер бойынша сәйкестендірілген. ПРОЛОГ интерпретаторы friends ережесін былайша өңдейді: алдыңғы мысал жиынтығына friends ережесі қосылады. ПРОЛОГ интерпретаторы мынандай сұрату жасайды: ?- friends (george, susie). Yes.

Білімдерді ұсыну немесе пайдалануда кеңінен тараған тәсілдің біріне ондағы мағлмұттарды нақты фактілер мен ережелер түрінде бейнелеу болып табылады. Әдетте фактілер мынандай үштік түрінде: (АТРИБУТ ОБЪЕКТ МӘНІ) сипатталады. Бұл берілген нысан өзінің қасиетімен, өзіне қатысты оның белгілі бір мәнімен сипатталды дегенді білдіреді. Мысалы мына үштік (ТЕМПЕРАТУРА ПАЦИЕНТ1 37.5) мына фактіні сипаттайды: «ПАЦИЕНТ1 деп аталған адамның температурасы, 37.5 деген мәнге тең». Кейбір қарапайым жағдайларда фактілер белгілі бір мәні бар атрибут арқылы емес, қарапайым тұжырыммен де сипаттала алады. Ол тұжырым «шын» немесе «өтірік» мәнін қабылдауы мүмкін. Мысалы: «Аспанда бұлттар көп». Мұндай жағдайларда фактіні бір қарапайым атаумен (мысалы БҰЛТТАР) белгілеуге немесе осы тұжырымдағы мәтіннің өзін де алуға болады. Продукциялық үлгінің Білім қорындағы ережелердің түрі: «ЕГЕР А ОНДА S», деген түрде болады мұндағы А- шарт; S- әрекет. Бұл ережеде егер А шын болса, онда S әрекеті орындалады. Әдетте S әрекеті, берілген шарт сияқты тұжырым, ондай тұжырымды, егер жүйеге ереженің А шарты шын болған жағдайда жүйе шығарып бере алады. Білім қорындағы ережелер маман адамның қызмет ету нәтижесінде алған тәжірибесінен туындаған эвристикалық білімдерін, яғни маманның әлі қалыпты түрге келе қоймаған ойлау тұжырымдарын білдіреді. Осыған байланысты қарапайым өмірдегі бір мысалды қарастырайық. Мысалы мынандай тұжырым бар делік: «ЕГЕР

7

Page 8: Gauhar Pogoda

аспанды бұлт жауып тұрса, ОНДА жақында жаңбыр жауады». Бұл жерде A шарты есебінде бір факт немесе «және» логикалық операциясымен біріккен бірнеше A1,...,AN, фактілер: A1 және A2 және ... және AN жүруі мүмкін. Математикалық логикада мұндай өрнек коньюнкция деп аталады. Оның нәтижесі «шын» мәнін егер оның құрамындағы барлық компоненталары да «шын» мәнін қабылдаса ғана болады. Мысалы жоғарыда аталған тұжырымның сәл күрделі түрін қарастырайық: «ЕГЕР аспанды бұлт жауып тұрса және барометр тілі төмен түссе ОНДА жақында жаңбыр жауады». Ережелер құрамына кіретін әрекеттердің өзінде жаңа фактілер болуы мүмкін. Ондай ережелерді іске қосқанда ондағы фактілер жүйеге белгілі. Ол фактілер жиынына қосылады, бұндай жиынды жұмысшы жиыны деп атайды. Мысалы «аспанды бұлт жауып тұрса» және «барометр тілі төмен түссе» деген фактілер жұмысшы жиынында болса, онда аталған ереже іске қосылғанда бұл жиынға «жақында жаңбыр жауады» фактісі де қосылады.

Білімді пайдаланудың продукциялық үлгісі. Мұндай үлгі түрінде білімдер келесі түрдегі ережелер жиындарынан тұрады: «ЕГЕР – ОНДА». Осындай үлгі түріне негізделген жүйелерді продукциялық жүйелер деп атайды. Бұндай жүйелерде шешімді шығару механизмі екі түрлі тәсілмен жұмыс істейді. Ол тәсілдерге: тура және кері шығару деп аталатын тәсілдер жатады. Кері шығару механизмі бар продукциялық жүйелерде ережелер көмегімен фактілер мен қорытындыларды бір бүтін есебінде жинақтайтын ЖӘНЕ/НЕМЕСЕ ағашы құрылады. Деректер қорындағы фактілер негізінде осы ағаш жапырақтарын бағалау нәтижесінде логикалық қорытынды шығарылады. Логикалық қорытындылар тура, кері және екі бағытты болып келеді. Тура шығару жолында іздеу нүктесі деректерден басталады да, бағалау процесі терістеуі бар түйіндерде тоқтауы мүмкін. Бұл жағдайда қажетті қорытынды есебінде ағаштың ең жоғарғы деңгейіне (түбірі) сәйкес келетін гипотеза ұсынылады. Дегенмен мұндай шығару механизмі үшін деректердің өте көп мөлшерімен бірге ағаш жапырақтарын бағалау белгілері де қажет, ол кей кезде тіпті қажет болмаған жағдайда да іздеуді талап етеді. Кері шығару тәсілінің ерекшелігі қажетті қорытындыға қатынасы бар ағаш бөлігі ғана бағаланады. Бірақ бұл жолдың да өзіндік емістігі бар: егер терістеулер мен тұжырымдар мүмкін болмаған жағдайда ағаш бұтақтарын одар ары қарай туындату мүмкіндігі болмайды. Екі бағыттық шығару тәсілінде алдымен деректердің аз ғана көлемі бағаланады, содан соң гипотеза таңдалады, содан кейін осы гипотезаны қабылдау үшін қажетті деректердің басқа бөлігі сұратылады. Бұл шығару механизмінде күші қуатты және икемделгіш қасиеті бар жүйені алуға болады. Тура шығару тәсілін

8

Page 9: Gauhar Pogoda

пайдаланатын жүйелер білімдерді пайдаланатын жүйелер ішіндегі ең алғашқы қолданылған жол болғандықтан, бұл тәсілді әдетте негізгі тәсіл деп қабылдайды. Бұндай алғашқы жүйелерде үш түрлі компоненталар болған: продукция жиынынан тұратын ережелер қоры, көптеген фактілерден тұратын деректер қоры және осы білімдерге негіздеп логикалық қорытынды шығаратын интерпретатор. Ережелер қоры мен деректер қоры білімдер қорын құрады да, ал интерпретатор логикалық шығару механизмін құрады. Сарапшы жүйенің логикалық қорытынды шығару компонентасы білім қоры мен жұмысшы жадысындағы мағлұматтармен жұмыс істеп, сондағы тұжырымдардың дұрыс бұрыстығын тексеретін құрал. Ол қарапайым жүйелерде екі түрлі қызмет атқарады: жұмысшы зердесіндегі фактілер мен білім қорындағы ережелерді қарастырып, олардың «шын» не «өтірік» екенін көрсету процесін басқарады. Екінші атқаратын қызметі: ережелерді қарастырып, олардың іске қосылу айрықшылығын тексеріп, олардың қолдану мүмкіндігін қарастырады. Сонымен бірге жүйенің бұл құрамдас бөлігі жүйе орындайтын барлық: кеңес беру, анықтама қызметі, пайдаланушыға арналған сеанс ақпаратын сақтау, онымен келіссөз жүргізу сияқты көптеген үдерістердін басқару қызметіне қатысады. Шығару әдетте «түсіну – орындау» циклы түрінде орындалады және әр циклда таңдап алынған ержелер деректер қорын түзетіп отырады. Соның нәтижесінде деректер қорының мазмұны бастапқы күйден мақсатты күйге қарай жылжиды, яғни мақсатты жүйе деректер қорында қалыптасады. Басқаша айтқанда, продукциялар жүйесі үшін қарапайым таңдау циклы мен ережелерді орындау циклы жұмыс істейді. Дегенмен жұмыс істеу барысында жүйедегі ережелер қорындағы ережелермен үнемі салыстыру болып отырғандықтан, егер ережелер саны көбейіп отырса, шығару жылдамдығы азаяды. Енді осы продукциялық үлгіні қолданатын жүйелердің күшті және әлсіз жақтарын атап өтейік. Күшті жағы: Жеке ережелерді құру және түсіну өте қарапайым әрі ыңғайлы; Осындай ережелерді толықтыру, жөндеу, алып тастау, қосу мүмкіндіктері де қарапайым; Логикалық қорытынды шығару механизмі де түсінікті әрі қарапайым. Әлсіз жағы: ережелердің өзара байланысын орнату қиын; білім бейнесінің толық мүмкіндігін бағалау қиындығы; өңдеу деңгейінің өте төмендігі; адам білімінің құрылымынан өзгешелігі; логикалық қорытынды шығарудың икемсіздігі.

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

9

Page 10: Gauhar Pogoda

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

(k); P; Q: Ai => Bj ; N;

Мұндағы k - ереже нөмірі, P- ереже приоритеті, Q- ережелерді қолдану аумағы Ai => Bj – продукция ядросы, i, j – тұжырымның => (секвенция) белгісінің қай жағынан алатынын көрсететін параметрлер. Әдетте i - Дерекқор,Білім Қоры, Сұхбат, О (түсіндіру-объяснение блогы) сияқты бөліктерден, ал j – оның алынатын жақтары да сондай, содан басқа оған толықтыру блогы (блок приобретения знаний) енуі мүмкін, N-продукцияларға арналған түсіндірмелер. Мысалы мынандай болып келуі мүмкін: АБД => ВБД немесе АБД => ВБЗ немесе АД => ВБЗ . Мысал қарастырайық. «Консалтингтік қызмет көрсету» деп аталатын Сарапшы жүйені құру кезінде продукциялық үлгіні пайдаланамыз. Жүйенің Білім қорындағы бір ережені қарастырайық. Оның сөйлеммен берілген сипаты: «ЕГЕР процессор аты = «Celeron» ЖӘНЕ жады көлемі = 256 болса, ОНДА осы параметрлері бар барлық компьютерлердің деректерін бер». Ереженің SQL сұрату тіліндегі сипаты келесі түрде өрнектеледі: «SELECT * FROM basic WHERE proc like 'Celeron%' and memory='256' ORDER BY art». Ереженің продукция ядросының түрі мынандай болады: А1БД ЖӘНЕ А2БД Þ ВБЗ, бұл жердегі А1БД = процессор аты = «Celeron» фактісі де, А2БД = жады көлемі = 256 фактісі болады, ал ВБЗ = осы параметрлері бар барлық компьютерлердің деректерін бер фактісі секвенция белгісінің сол жағында орналасады. Яғни секвенция (Þ) белгісінің сол жағындағы фактілер жұмысшы жиынынан, ал оң жағындағы білім қорынан алынады. Мұнда жұмысшы жиыны есебінде кәдімгі реляциялық Дерекқорды алуға болады. Ал SQL сұратуын орындағанда фактілер былайша қалыптасады: А1БД = proc like 'Celeron%' және (and) А2БД = memory='256' болып, ал шығару бөлігінде ВБЗ =* FROM basic түрінде болады.

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

10

Page 11: Gauhar Pogoda

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

Ішкі ДҚ тексттік файлда сақталады. Ол толығымен оперативті жадыда оқылып, өңделеді. Ішкі ДҚ форматын жариялау үшін Пролог-бағдарламасының арнайы бөлімі қолданылады. Олар кілттік сөздермен белгіленеді:

database [- <имя>].consult(DosFileName,InternalDatabaseName)(string,InternalDatabaseName) - (i,i)DATABASE - InternalDatabaseName деп жарияланған

InternalDatabaseName атты ішкі ДҚ DosFileName файлынан ОЗУ-ға жүктеу.Сыртқы ДҚ ( EXTERNAL DATABASE SYSTEM )

Әрбір ДҚ өзіне тән аты бар. Ол ДҚ селекторы (db-selector) деп аталады. ДҚ жазба - тізбектен (chain) тұрады. Әрбір жазба не тізбек бір немесе бірнеше кілттермен (key) анықталады.

Прологтағы әрбір ағаш өзіне тән атауға ие. Оның арнайы типі – В-ағашының селекторы (bt-selector). В ағашының элементері болып кілттер табылады.Кіші көлемді ақпаратты жылдам өңдеу үшін Прологта ішкі ДҚ механизмі бар.

11

Page 12: Gauhar Pogoda

Іске асыру

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

pogoda_is("budet yasnyi den"):-

polozhitelnyi(weather,"solnce saditsya na bezoblachnom nebe"),

polozhitelnyi(weather,"cvet luny oslepitelna bela"),

polozhitelnyi(weather,"solnce vshodit v tumane"),!.

Polozhitelnyi және otricatelnyi типтері жүйенің қлолданушыға қоятын қоятын сұрақтарының жауаптарын қасиеттермен сәйкестігін сипаттап отырады.

Pogoda_is типіндегі мақсаттар — бұл подкатегорияны таңдау. Қолданушыға жел болады ма деген сұрақ қойылмайды. Жүйе өз дерекқорынан жел сипаттамасын тауып алады.

pogoda_is("den' budet vetrenym"):-

polozhitelnyi(weather,"solnce siyayet pri zakate"),!.

do_consulting:-

pogoda_is(X),!,nl,

write("Pogoda: ",X,"."),nl,

clear_facts.

do_consulting:-

nl,write("Sorry !"),12

Page 13: Gauhar Pogoda

clear_facts.

ask(X,Y):- % қолданушымен диалог жүргізу

write(" expert> ",X," ",Y," ?"),

readln(Reply),

remember(X,Y,Reply).

ДДҚ-да қолданушының жауаптарын іздеу. Жоқ болған жағдайда жүйе сұрақ қояды да жауабын сақтап қалады.

polozhitelnyi(X,Y):-

xpolozhitelnyi(X,Y),!. % ДДҚ-да "да" деген жауап бар

polozhitelnyi(X,Y):-

not(otricatelnyi(X,Y)),!, % ДДҚ-да "нет" деген жауап жоқ

ask(X,Y). % сұрақтарды қою мен жауаптарды талдау

otricatelnyi(X,Y):-

xotricatelnyi(X,Y),!.

remember(X,Y,da):- % жауаптарды ДДҚ-ға жазу

asserta(xpolozhitelnyi(X,Y)). % жаңа мәліметте ДДҚ-ға жазу

remember(X,Y,net):-

asserta(xotricatelnyi(X,Y)),

fail.

clear_facts:- % ДДҚ-ны тазалау

retract(xpolozhitelnyi(_,_)),

fail.

clear_facts:-

retract(xotricatelnyi(_,_)),

fail.

13

Page 14: Gauhar Pogoda

Жүйе графы келесідей түрде болады.

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

14

P

s1

l1

t1

Yasnyi den’

Dozhdlivyi den’

s2

l2

t2

s3

l3

veter

Page 15: Gauhar Pogoda

Тестілеу

Бұл сарапшы жүйе программасын құруға бір компьютер және логикалық программлау тілі – ПРОЛОГ қолданылады. ПРОЛОГ тілін сарапшы жүйе - программалау бағытындағы кеңінен қолданылатын тілдер қатарына да жатқызады. ПРОЛОГтың басқа тілдерден ерекшелігі - онда жазылған программалардың декларативтік сипатта болуы. Программаның негізгі құрылымдық блоктарына белгілі бір құрылымдағы нысандар жиыны және осы нысандарды байланыстыратын функциялар мен қатынастар жатады.

Бағдарламаның жұмысы үшін ендігі ең төмен аппаратты және бағдарламалық конфигурациясы:1. Процессор – PentiumII-ден төмен емес2. ОЗУ көлемі – 64 Мб-тан кем емес3. Дисктағы бос орын кемінде – 10 Мб4. Рұқсат етілген монитор ең кемінде 800x600, TrueColor5. Пернетақта – Windows-пен келісімді6. Манипулятор түрі - “Тышқан”7. Операциялық Жүйе – Windows 98/NT/2000/XP

15

Page 16: Gauhar Pogoda

Жұмыстың нәтижесі:

Сұрақтарға жауап беру:

1-сурет. Ауа райының ашық болатындығын анықтау

2-сурет. Жаңбыр жауатындығын анықтау

16

Page 17: Gauhar Pogoda

3-сурет. Жел тұратындығын анықтау

17

Page 18: Gauhar Pogoda

Қорытынды

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

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

Берілген курстық жобада жасалған сарапшы жүйе жапондардың  бесінші  ұрпақ  ЭЕМ-дерін  жасау  бағдарламасында  базалық   тіл  негізінде   қабылданған Пролог тілінде жазылған. Прологтың басқа тілдерден ерекшелігі - онда жазылған программалардың декларативтік сипатта болуы. Программаның негізгі құрылымдық блоктарына белгілі бір құрылымдағы нысандар жиыны және осы нысандарды байланыстыратын функциялар мен қатынастар жатады. Бұл жобадағы ауа райын анықтаудың сарапшы жүйесі дәстүрлік әдістерге негізделіп құрылған. Дәстүрлі әдістің ерекшелігі оның ақпарат технологияларына тәуелсіздігінде. Яғни күнделікті тұрмыста қолдануға қолжетімді. Аталған өнім күрделендіру барысында адамдарға климатқа байланысты өз қызметтерін жобалауға пайдасын тигіздеді деген үміттемін.

18

Page 19: Gauhar Pogoda

Қолданылған әдебиеттер тізімі

1. Нильсон Н. Искусственный интеллект. Методы поиска решений./ Пер. с анг. –М.:Мир, 1973. - С. 270

2. Люгер, Джордж,,Ф. Искусственный интеллект: стратегии и методы решения сложных проблем. М:, 2003г.- 864с.

3. Большакова. И., Мальковский М. Г., Пильщиков В. Н. Искусственный интеллект. Алгоритмы эвристического поиска (учебное пособие) М.: Издательский отдел факультета ВМК МГУ, 2002.83 с.

4. Логическое программирование http: //ru.wukipedia.org/wiki/ 5. Джексон Питер, Введение в экспертные системы. / Пер.с англ.:

Уч.пособие, 2001г. – 624 с.6. Ахметова М. Функционалдық-логикалық программалау және жасанды

зерде жүйелері: Оқу құралы. - Алматы, «Бастау» баспасы. – 2012.- 330б.

19

Page 20: Gauhar Pogoda

Қосымша А

Бағдарлама листингі:

domains

databasexpolozhitelnyi(symbol,symbol)xotricatelnyi(symbol,symbol)

predicatesdo_expert_gauhar.do_consultingask(symbol,symbol)pogoda_is(symbol)polozhitelnyi(symbol,symbol)otricatelnyi(symbol,symbol)remember(symbol,symbol,symbol)clear_facts

goaldo_expert_gauhar.

clausesdo_expert_gauhar:-makewindow(1,7,7,"Ekspertnye sistemy",1,3,22,71), nl,write(" ---------------------------------------------------"), nl,write(" Sinoptik pogody "), nl,write(" "), nl,write(" Otvet'te na vopros 'da' ili 'net'."), nl,write(" ---------------------------------------------------"), nl,nl, do_consulting, write("Press space bar."),nl, readchar(_), removewindow, exit. do_consulting:- pogoda_is(X),!,nl, write("Pogoda: ",X,"."),nl, clear_facts. do_consulting:- nl,write("Sorry !"),

20

Page 21: Gauhar Pogoda

clear_facts. ask(X,Y):- write(" expert> ",X," ",Y," ?"), readln(Reply), remember(X,Y,Reply). polozhitelnyi(X,Y):- xpolozhitelnyi(X,Y),!. polozhitelnyi(X,Y):- not(otricatelnyi(X,Y)),!, ask(X,Y). otricatelnyi(X,Y):- xotricatelnyi(X,Y),!. remember(X,Y,da):- asserta(xpolozhitelnyi(X,Y)). remember(X,Y,net):- asserta(xotricatelnyi(X,Y)), fail. clear_facts:- retract(xpolozhitelnyi(_,_)), fail. clear_facts:- retract(xotricatelnyi(_,_)), fail.pogoda_is("budet yasnyi den"):- polozhitelnyi(weather,"solnce saditsya na bezoblachnom nebe"), polozhitelnyi(weather,"cvet luny oslepitelna bela"),polozhitelnyi(weather,"est’ vechernii tuman"), polozhitelnyi(weather,"solnce vshodit v tumane"),!.

pogoda_is("zavtra ozhidaiutsya dozhdi"):- polozhitelnyi(weather,"solnce saditsya v tumane"), polozhitelnyi(weather,"cvet luny mutnyi, blednyi"),polozhitelnyi(weather,"est’ vechernii tuman"),polozhitelnyi(weather,"tuman bistro rasseivaetsya "), polozhitelnyi(weather,"vechernyaya rosa ne vysohla"),!.

pogoda_is("den' budet vetrenym"):- polozhitelnyi(weather,"solnce siyayet pri zakate"), polozhitelnyi(weather,"cvet luny krasnaya"),!.

21