..,xn) ja f(x1,...,xn,y+1) = h( x1,…,xn, y, f(x1,…,xn,y) ). f =R[g,h] Teoreem: Rekursiivsed funktsioonid on Turingi masinal arvutatavad. T: Elementaarfunksioonid Registermasinal: On =0 on CLR, s(x)=x+1 on INC, Inm= xm on R → R. Ja ka Sm+1, R ja μy on reg.masinal arvutatavad. Neist saab konstrueerida kõik rek. funktsioonid. Ja reg.masin ja TM lahendavad samu asju. Teoreem: Iga registermasinal realiseeritav funktsioon on (osaline) rekursiivne funktsioon. Seega: Osaliselt rekursiivsete funktsioonide hulk langeb kokku Turingi mõttes arvutatavate funktsioonide hulgaga. 19 Minimeerimisoperaator. Osaliselt rekursiivsed funktsioonid. DEF: Funktsioon f : Nn → N on saadud funktsioonist g : Nn+1 → N minimeerimisoperaatori μy abil, kui kõikide väärtuste x1,...,xn ∈ N korral kehtib seos f (x1,...,xn) = a) y, mis on vähim selline element, et g(x1,...,xn,y) = 0 ja iga z < y korral g(x ,...,xn,z) on määratud ja pole 0; b) pole määratud, vastasel juhul.
kõik produktsioonid kujul A bC või A b A,C kuulub N, b kuulub L3 on alamhulgaks L2 on alamhulgaks L1 jne. 9. Regulaarsed avaldised ja hulgad. Regulaarne hulk tähestikus : · tühihulk · {e} tühjast sõnast koosnev hulk · {a} kuulub - ühest terminaalist koosnev hulk · hulk P ühend Q, P lõige Q, Q*, kus P ja Q on regulaarsed hulgad Regulaarne avaldis regulaarset hulka tähistav lühendkirjapilt, mis on määratud AINULT järgnevate rekursiivsete reeglitega: · o tähistus tühjale hulgale · e tähistus tühjast sõnast koosnevale hulgale {e} · a tähistus terminaalist koosnevale hulgale {a} · regulaarsete avaldiste p ja q, mis tähistavad vastavalt regulaarseid hulki P ja Q korral on regulaaravaldised ka: o p+q o pq o p* (p+ = pp*) Regulaarsed avaldised on võrdsed, kui tähistavad üht ja sama hulka. Regulaarsed hulgad tühihulk, {e} ja {a} on paremlineaarsed keeled.
(resolutsioon, unifitseerimine); l LP keel on Prolog, kuid LP ≠ Prolog; 1.1. Mis on loogiline programmeerimine? (2) l LP sobib tehisintellekti rakenduste programmeerimiseks: l loomuliku keele analüüs ( DCG grammatikareeglid) l ekspertsüsteemid (otsingu- ja järeldusreeglid) l kujundituvastus (tuvastusreeglid) l kitsendustega planeerimine (logistika, marsruudi otsimine) l rekursiivsete funktsioonide püsipunkti arvutus l jne l LP ei sobi: l Kiired numbrilised arvutused (n. maatriksarvutused, võrrandid) l OOP (kuigi on toetatud mõnes prologis) l kasutajaliideste programmeerimine (tugi on nõrk) l masingraafika 1.1. Mis on loogiline programmeerimine? (3) Miks tasub õppida LP? l Õpetab mõtlema probleemikeskselt ja esitama lahendusi abstraktsel kujul l Programmi põhifunktsioonid:
eristatakse kahte konveieri struktuuri - lineaarne ja mittelineaarne. Lineaarse konveieri moodustab teatav kogumik jadamisi ühendatud infotöötluslülitusi. Töötlusesse suunatav info ning konveieri üksikuis astmes saadud tulemid säilitatakse ajutiselt konveieri astmetevahelistes puhverregistrites. Mittelineaarne konveier sisaldab tagasiside ja otseedastuse ahelaid. Need konveierid sobivad hästi rekursiivsete funktsioonide ning skalaarkorrutiste väärtuste arvutamiseks. Konveierid võivad oma talitlusviisilt olla kas sünkroonsed või asünkroonsed. 22. Sünkroonse käsukonveieri jõudlus, käsukonveieri jõudlust mõjutavad tegurid. Eeldame, et käsu töötlus ilma konveierita arvutis kestab t ajaühikut. Kui sama käsku töödelda ideaalses tasakaalustatud n-astmelises sünkroonses
mõnevõrra erineda, siis tulemite ajutine puhverdamine neis puhverregistreis tagab selle, et konveieri ühelt astmelt edastatakse teisele astmele stabiliseerunud informatsioon. Andmetöötluse käigus on konveieri üksikud seadmed autonoomsed, nad võivad töötada rööpselt, tuginedes üksnes oma sisendinfole. Mittelineaarne konveier sisaldab tagasiside ja otseedastuse ahelaid. Need konveierid sobivad hästi rekursiivsete funktsioonide ning skalaarkorrutiste väärtuste arvutamiseks. Konveierid võivad oma talitlusviisilt olla kas sünkroonsed või asünkroonsed. Protsessorites rakendatakse, lähtudes konveierite funktsionaalsust, kahte liiki konveiereid: 1. Käsukonveier (id) 2. Aritmeetikakonveier (id) Käsukonveierid on ette nähtud käskude konveiertöötluseks. Aritmeetikakonveierid on ette nähtud aritmeetika-loogikaoperatsioonide konveiertöötluseks.
See omakorda muudab päringu ülevaatlikumaks ning lihtsamaks. Näiteks soovime tegelda ainult Tallinnas (kood 1) sündinud lastega. Sellisel juhul saame endale kirjeldada CTE, milles sisalduvad vaid Tallinna lapsed ning kasutada seda oma päringus nagu iga teist tabelit või vaadet: WITH TallinnaLapsed AS ( SELECT * FROM dbo.Laps_tbl WHERE SynniLinn = 1 ) SELECT * FROM TallinnaLapsed ORDER BY Nimi CTE tõeline jõud tuleb aga ilmsiks kui läbi rekursiivsete päringute. Rekursiivsed SQL päringud olid ka põhiline idee CTE loomise taga. Rekursiivse päringu loomiseks tuleb CTE tekitada UNION päringu abil, milles on kaks liiget ankur (alguspunkt päringule) ning rekursiivne liig (iseendale viitav päring). Et seda katsetada teeme mõned täiendused oma Laste tabelisse ning lisame sinna uue välja Rühmajuht ning määrame igale lapsele sobiva juhi: -- Lisame tabelisse uue välja ALTER TABLE dbo.Laps_tbl ADD Ryhmajuht INT NULL REFERENCES dbo