13-lekciya_paradigma_qq
.pdf13-lekciya. Logikalıq programmalastırıw. Logikalıq programmalastırıw tilleri.
Jobası:
1.Logikalıq programmalastırıw paradigmasınıń mánisi hám tiykarǵı túsinikleri (Faktler, Qaǵıydalar).
2.Programmanıń orınlanıw mexanizmi: Unifikaciya hám Keri izlew
(Backtracking).
3.Prolog tili: Tariyxı, sintaksisi hám ózgeshelikleri.
4.Qollanılıw tarawları: Jasalma intellekt hám ekspert sistemalar.
Paradigmanıń filosofiyası hám strukturası
Logikalıq programmalastırıw – bul deklarativ programmalastırıw paradigmasınıń arnawlı bir túri bolıp, ol matematikalıq logikaǵa, anıǵıraǵı "birinshi tártipli predikatlar logikası"na tiykarlanǵan. Imperativ programmalastırıwda programmist kompyuterge máseleni sheshiw ushın adımbaadım buyrıqlar berse (algoritm jazsa), logikalıq programmalastırıwda programmist máseleniń táriypin hám oǵan tiyisli bolǵan logikalıq qatnasıqlardı (faktler hám qaǵıydalardı) jazadı. Bul jerde programma – bul algoritm emes, al "Bilimler bazası" (Knowledge Base) bolıp tabıladı. Kompyuterge biz "Qalay islew kerek?" degen sorawǵa emes, "Ne haqıyqat?" hám "Neniń arasında qanday baylanıs bar?" degen sorawlarǵa juwap beremiz. Logikalıq programmanıń eń kishi birligi – bul "Fakt". Faktler dúnya haqqındaǵı sózsiz haqıyqat dep qabıl etilgen maǵlıwmatlardı ańlatadı. Olar obyektler hám olardıń qásiyetleri yamasa obyektler arasındaǵı qatnasıqlar túrinde jazıladı. Mısalı, atası (alim, azamat). degen fakt "Alim Azamattıń atası" ekenin bildiredi. Bul jerde "atası" – predikat, al "Alim" hám "Azamat" – atomlar (obyektler). Programmada júzlegen yamasa mıńlaǵan usınday faktler bolıwı múmkin, olar máseleniń predmetlik tarawın súwretleydi.
Ekinshi tiykarǵı element – bul "Qaǵıydalar" (Rules). Qaǵıydalar faktler arasındaǵı ulıwmalasqan logikalıq baylanıslardı hám nızamlılıqlardı ańlatadı. Olar "Eger ... onda ..." (If-Then) strukturasına iye, biraq logikalıq programmalastırıwda olar keri tártipte jazıladı: "Juwmaq, eger shártler orınlansa". Mısalı: baba(X, Z) :- atası(X, Y), atası(Y, Z). Bul qaǵıyda: "Eger X Y-tiń atası bolsa hám Y Z-tiń atası bolsa, onda X Z-tiń babası boladı" degen mánisti bildiredi. Qaǵıydalar bizge bar faktlerden jańa juwmaqlar shıǵarıwǵa imkaniyat beredi.
Programmanı iske túsiriw "Soraw" (Query) yamasa "Maqset" (Goal) qoyıw arqalı ámelge asırıladı. Paydalanıwshı sistemaǵa soraw beredi, mısalı: ?- baba(alim, Z). ("Alim kimniń babası?"). Sistema bul sorawdı qabıllap, óziniń bilimler bazasındaǵı faktler hám qaǵıydalardı qollanıp, logikalıq juwmaq shıǵarıwǵa háreket etedi. Imperativ tildegi sıyaqlı baǵdarlamashı izlew funkciyasın jazbaydı, bul izlew processi tildiń (mısalı, Prologtıń) ishki interpretatorı tárepinen avtomat túrde ámelge asırıladı.
Juwmaq shıǵarıw mexanizmi: Unifikaciya hám Keri izlew
Logikalıq programmalastırıw tilleriniń (ásirese Prologtıń) júreginde "Juwmaq shıǵarıw mexanizmi" (Inference Engine) jatır. Bul mexanizmniń eń baslı processleriniń biri – "Unifikaciya" (Unification) yamasa sáykeslendiriw. Unifikaciya – bul eki logikalıq ańlatpanıń bir-birine teń ekenin tekseriw hám eger olar teń bolsa, olardıń ishindegi ózgeriwshilerge sáykes mánislerdi beriw procesi. Mısalı, atasi(alim, X) sorawı menen atasi(alim, azamat) faktı sáykeslendirilgende, sistema X = azamat degen baylanıstı (binding) ornatadı. Unifikaciya ápiwayı teńlik tekseriwden (==) quramalıraq, sebebi ol strukturalardı talqılap, belgisiz ózgeriwshilerdi tabıwǵa xızmet etedi.
Ekinshi fundamental process – bul "Keri izlew" yamasa "Keri qaytıw" (Backtracking). Logikalıq mashqalanı sheshiw kóbinese labirintten jol izlewge uqsaydı. Sistema sorawǵa juwap tabıw ushın faktler hám qaǵıydalar terekli strukturası boyınsha tómenge qaray izleydi. Eger tańlanǵan bir jol (qaǵıyda) qáte bolıp shıqsa yamasa qoyılǵan shártke sáykes kelmese, sistema toqtap qalmaydı. Ol avtomat túrde keyingi qádemge "keri qaytadı" (backtracks) hám basqa alternativ joldı tańlaydı. Bul processti baǵdarlamashı qol menen jazbaydı, ol tildiń ózine ornatılǵan.
Bul mexanizmler "Sheshiw" (Resolution) principine tiykarlanǵan. 1965-jılı J.A. Robinson tárepinen usınılǵan rezolyuciya metodı logikalıq programmalastırıwdıń matematikalıq negizi bolıp tabıladı. Bul metod kóp sanlı logikalıq tastıyıqlawlardan (klauzalardan) qarama-qarsılıq joqlıǵın tekseriw arqalı dálil tabıwǵa imkaniyat beredi. Logikalıq programmalar ádette "Xorn klauzaları" (Horn clauses) dep atalatuǵın arnawlı logikalıq formada jazıladı. Bul forma kompyuterde avtomat túrde dálillew procesin júdá tez hám effektiv ámelge asırıwǵa múmkinshilik beredi. Logikalıq programmalastırıwda "Jabıq dúnya shaması" (Closed World Assumption) ámel etedi. Bul princip boyınsha, eger qandayda bir fakt yamasa tastıyıqlaw bilimler bazasında joq bolsa hám onı qaǵıydalar arqalı dálillew múmkin bolmasa, ol "Jalǵan" (False) dep esaplanadı. Yaǵnıy, sistema "Bilmeymen" dep juwap bermeydi, ol "Bul jalǵan" (No) dep juwap beredi. Bul nárseni baǵdarlamashı esapqa alıwı kerek, sebebi haqıyqatlıqta bar bolǵan, biraq bazaǵa kirgizilmegen maǵlıwmatlar sistema ushın joq nárse bolıp esaplanadı.
Prolog tili hám qollanılıw tarawları
Logikalıq programmalastırıw degende eń birinshi hám eń tiykarǵı til retinde Prolog (Programming in Logic) názerde tutıladı. Prolog tili 1972-jılı Franciyada Alen Kolmeroe hám onıń toparı tárepinen jaratılǵan, al onıń teoriyalıq tiykarın Robert Kovalski islep shıqqan. Prolog basqa tillerden (C++, Java) túptamırınan ózgeshelenedi. Onda for yamasa while ciklleri joq, olar rekursiya menen almastırıladı. Onda if-else strukturası joq, onıń ornına unifikaciya hám pattern matching (úlgige sáykeslendiriw) qollanıladı. Prolog kodı oǵada ıqsham hám oqıwǵa qolaylı bolıp, ol kóbinese tábiyiy tilge (inglis tiline) jaqın boladı.
Prologtan basqa da logikalıq hám gibrid tiller bar. Mısalı, Datalog – bul Prologtıń qısqartılǵan versiyası bolıp, ol tiykarınan maǵlıwmatlar bazası menen islesiw ushın qollanıladı hám onıń islew tezligi joqarı. Mercury tili – bul funkcionallıq hám logikalıq paradigmalardı birlestirgen zamanagóy til, ol Prologtıń geybir ónimlilik mashqalaların sheshiwge baǵdarlanǵan. Sonıń menen birge, C++, Java, Python sıyaqlı tiller ushın logikalıq programmalastırıw kitapxanaları bar, olar multiparadigmalıq proektlerde logikalıq usıldı qollanıwǵa imkaniyat beredi.
Logikalıq programmalastırıwdıń eń kúshli qollanılıw tarawı – bul Jasalma Intellekt. Ásirese, "Ekspert sistemalar"dı jaratıwda Prolog teńsiz qural. Ekspert sistema – bul medicina, yurisprudenciya yamasa injeneriya sıyaqlı tarawlarda qánige (ekspert) sıyaqlı máslahát beretuǵın programma. Programmist ekspertlerdiń bilimlerin fakt hám qaǵıyda túrinde jazıp shıǵadı, al paydalanıwshı óz simptomların yamasa jaǵdayın kiritkende, sistema logikalıq juwmaq shıǵarıp, diagnoz yamasa sheshim usınıs etedi. Bunnan tısqarı, Tábiyiy tildi qayta islew (Natural Language Processing - NLP) tarawında logikalıq programmalastırıw keń qollanıladı. Tildiń grammatikalıq qaǵıydaların logikalıq qaǵıydalar retinde súwretlew ańsat bolǵanlıqtan, Prolog gáplerdi analizlew (parsing), mánisin túsiniw hám awdarma islew sistemalarında effektiv nátiyje beredi. Sonday-aq, quramalı oyınlar algoritmleri, jobalastırıw (planning) máseleleri hám semantikalıq veb (Semantic Web) texnologiyalarında logikalıq paradigma óz ornına iye.
BAQLAW SORAWLARÍ:
1.Logikalıq programmalastırıw paradigmasınıń imperativ paradigmadan tiykarǵı ayırmashılıǵı nede?
2."Faktler" hám "Qaǵıydalar" (Rules) degende neni túsinesiz? Olarǵa mısal keltiriń.
3.Unifikaciya (Sáykeslendiriw) procesi logikalıq programmalastırıwda qanday wazıypanı atqaradı?
4."Keri izlew" (Backtracking) mexanizmi qalay isleydi hám ol ne ushın kerek?
5.Prolog tili tiykarınan qanday máselelerdi sheshiw ushın (qollanılıw tarawları) eń qolaylı bolıp tabıladı?
