Mihályi Zoltán (MIZRAAI), Pinczel Máté (PIMRAAI) Nagy kifejezőerejű lekérdező nyelvek rendezetlen (adat)fákhoz
|
|
- Rudolf Orsós
- 6 évvel ezelőtt
- Látták:
Átírás
1 Mihályi Zoltán (MIZRAAI), Pinczel Máté (PIMRAAI) Nagy kifejezőerejű lekérdező nyelvek rendezetlen (adat)fákhoz Eredeti cikk: Highly Expressive Query Languages for Unordered Data Trees Serge Abiteboul (INRIA & ENS Cachan, Pierre Bourhis (University of Paris-Sud & Oxford University, Victor Vianu (U.C. San Diego & INRIA, Absztrakt A cikk a rendezetlen adatfákat lekérdező nyelvek kifejezőerejét vizsgálja meg az AXML (Active XML) és a while nyelvcsalád kiterjesztésével. Ezek rendre mintaillesztésen alapulnak, bizonyos vezérlés hozzáadásával. A különböző variánsok kifejező ereje több tényezőtől függ, úgymint, az alapvető lekérdezések kifejezőereje, a számítások beékelésének módja az adatok közé, determinisztikus, vagy nemdeterminisztikus vezérlés. Egyes jellemzők komoly korlátozást jelenthetnek, de előnyük az erőteljes normál forma. Bevezetés Az utóbbi időkben nagy érdeklődés volt az adatfákon működő lekérdezőnyelvek iránt köszönthetően az XML népszerűségének is. Ám ezek a kutatások nem a nyelv kifejezőerejére fektették a hangsúlyt, hanem a kiértékelés/végrehajtás hatékonyságára, így ezek statikus vizsgálata is egyszerűbb. Ez a cikk a más szempontból fontolja meg a problémát, a nyelvek kifejezőerejét szeretné felderíteni. Ráadásul rendezetlen adatfákon működő lekérdezőnyelveket vizsgál, amit a klasszikus adatbázisok halmaz-alapú megközelítése motivál. A vizsgált lekérdezőnyelvek mintaillesztést használnak, mint alapvető építőkövet, és ezekre építenek bizonyos vezérlést, így létrehozva egy komplex programot. Két fontos jellemzőt érdemes kiemelni, amelyek befolyásolják a kifejezőerőt: az alap lekérdezések (mintaillesztés) kifejezőerejét, és a kódok beágyazásának módját az adatfákba. Az utóbbihoz az AXML nyújtotta lehetőségeket használja a cikk, amit tiszta, rugalmas modellt nyújt az XML-be ágyazott kódok kezeléséhez. Vizsgálja továbbá a while nyelvcsalád kiterjesztését adatfákra. Ebben az esetben is jelentősen befolyásolják a kifejezőerőt a megengedett nyelvi konstrukciók, és a nyelv jellemzői. Betekintést enged az adatfák különlegességeibe, és néhány érdekes általánosítását is láthatjuk a klasszikus eredményeknek. Érdemes kiemelni az FO k definiálhatóság fogalmát (azaz egy lekérdezés megfogalmazható-e elsőrendű logikában), amely az adatfáknál is hasznos eszköznek bizonyul a nyelvek kifejezőerejének megértéséhez. A cikk fő eszköze, az AXML [1], az XML egy kiterjesztése beágyazott szolgáltatáshívásokkal. Ez sok esetben hasznosnak bizonyult már. Alapvetően egy magas szintű specifikációs keretrendszernek tervezték, adat-centrikus munkafolyamok leírásához. Jól illeszkedik a még alakulóban lévő dokumentumokhoz. Ebben a környezetben a kezdő és a végső fázis közötti kapcsolat érdekes. Ehhez kötődik a dominance [2] fogalma, amely egy egyszerű eszköz a kifejezőerő vizsgálatához, továbbá hasznos, amikor absztraháljuk a munkafolya-
2 matot, olyan módon, hogy egy részfolyamatot helyettesítünk egy szignatúrával, ami leírja a kapcsolatot a bemenet és a kimenet között. Egy AXML példány ahogyan a cikk használja egy erdő, ami rang nélküli, rendezetlen fákból áll. A fák belső csúcsai véges ábécé feletti címkékkel vannak ellátva; a levelek pedig címkékkel, vagy adatokkal egy véges halmazból, vagy függvény szimbólumokkal. A függvények hívása, ahogyan a visszatérésük is őrfeltételekkel vannak levédve. Az erdők két akció folyamán alakulnak, ezek a függvényhívás és függvény visszatérés. Egy függvényhívás egy tiszta munkaterületet hoz létre a jelenlegi példányból egy lekérdezéssel. A munkaterület is tartalmazhat további függvényhívásokat, így megvalósítva a rekurzív hívást. A hívás eredménye egy erdő, ami a munkaterület végső állapotából egy lekérdezéssel jön létre. Az AXML tipikusan nemdeterminisztikus szemantikát alkalmaz, így az átmeneteket egy olyan tetszőleges függvény hívása, vagy visszatérése okozza, aminek az őrfeltétele igaz. Természetes módon definiálható a determinisztikus szemantika is, ami alatt azt értjük, hogy az összes hívás és visszatérés szimultán fut le, amelyeknek az őrfeltétele igaz. (Hasonlóan a Dataloghoz.) Tekinthetünk az AXML-re úgy, mint egy lekérdezőnyelvre, amelynek a bemenete egy kezdeti példány, és a kimenete egy fa az Out címkéjű csúcs alatt. Az eredmények első csoportja arra az esetre koncentrál, amikor a függvények el vannak különítve az adatoktól, azaz csak a triviális beágyazást engedjük meg. A függvények csak adatokat manipulálnak, nem pedig részfákat. Kiderül, hogy ez ekvivalens a relációs nyelvekkel, amelyek Turing teljes programozási nyelvek, és beágyazott FO (első rendű) lekérdezéseket használnak. Ezek a nyelvek relációs automatákkal [3] vannak definiálva, vagy a while nyelvcsalád egész típussal kiegészített változatai. A Turing teljesség ellenére, ezek közel sem lekérdezés-teljesek, hiszen olyan egyszerű lekérdezéseket sem tudnak megválaszolni, mint a tartomány paritása, a 0-1 törvénynek [4] köszönhetően. A fákhoz definiált lekérdezőnyelv, a QAXML izolált függvények használatával kiterjesztett változata ekvivalens a while nyelv egész típussal kiterjesztett, adatfákon dolgozó változatával. Ezzel bizonyítható a kifejezőerejének korlátoltsága, de egy erős normálformát is ad a kiértékeléshez. Ez sokat segít az optimalizálásnál, mivel a bemenetet jelentősen redukálja, azon végzi el a számítást, és a végén alakítja vissza a valós adatokat. Ráadásul a logikai lekérdezések még rövidebben kiértékelhetőek, hiszen nem kell az utolsó lépés. (Hasonló módon, mint a relációs esetben.) Fontos eredmény az is, hogy ebben az esetben a nemdeterminisztikus megközelítés sem ad több lehetőséget. Az izolált QAXML korlátoltsága a sűrű függvények bevezetésével enyhíthető, amely megengedi, hogy tetszőlegesen ágyazzunk be függvényeket. Ezzel a nemdeterminisztikus esetben bármilyen kiszámítható lekérdezést meg lehet fogalmazni, azaz lekérdezés-teljes. Ez azért van, mert ezzel ú.n. adat-nemdeterminizmust engedünk meg, azaz nemdeterminisztikusan választhatunk egy adatot egy halmazból. Érdekes, hogy a determinisztikus esetet megvizsgálva kiderül, hogy ez nem lekérdezés-teljes a sűrű függvények használatával, tehát a nemdeterminizmus emelte a kifejezőerőt. Itt megjelenik a jól ismert copy elimination problem, eleve kizárva a teljességet. Az eddigiekben a lekérdezésekben a változók atomi adatokat jelöltek, de a cikk megvizsgálja részfák megragadását is változókban. Ez megnöveli a kifejezőerőt, és még a determinisztikus, izolált QAXML is lekérdezés-teljessé válik így. Érdekes módon a nemdeterminisztikus variánsra ez nem igaz, az csak a gyengén nemdeterminisztikus lekérdezéseket képes kifejezni, amit az indokol, hogy a vezérlésben jelenik meg a nemdeterminizmus, nem pedig az adatok kiválasztásában. Hogy teljessé tegyük a nyelvet, több kell az izolált függvé-
3 nyeknél, habár a sűrű függvényekig nem kell elmenni. Elég a köztes állapotokban megengedni, a függvények nem triviális beágyazását. Most is találhatunk kapcsolatot a while részfákat megragadó változata és a QAXML között. Ez a nyelv egyszerűbb, mivel nincs szükség az egész típusra és egyéb szerkezetekre. Továbbá a nemdeterminisztikus esethez nyerünk egy normálformát, ami minden nemdeterminizmust az utolsó lépésre hagy. Kapcsolódó munkák Az AXML vizsgálata több különböző technikával történik a klasszikus lekérdezőnyelvek elméletéből merítve, úgymint, elsőrendű lekérdezések korlátos számú változóval, normálformák, 0-1 törvények, nagy kifejezőerejű nyelvek. A fákat lekérdező és transzformáló nyelveket széles körben megvizsgálták már az XML-hez kötődően, főleg az XQuery, XPath és XSLT egyes részeinek általánosításával [5,6,7]. Ezek közül sok adatok nélküli fákon dolgozik, de a legújabbak adatokkal (véges ábácé felett). Sok koncentrál a statikus elemzésre, azaz a kifejezőerőt feláldozza a könnyű kiszámítás miatt [8,9,10]. Egy kevés tanulmány található a nagy kifejezőerejű nyelvekről adatfákon, de ezek általában rendezett fákon működnek [11,12,13,14]. Ez a cikk rendezetlen fákkal dolgozik. Ez egyezik a relációs modell megközelítésével, ahol a rekordok sorrendje lényegtelen. E mögött az húzódik, hogy az információ számít, nem a reprezentáció, mint például a sorrendjük az elemeknek. A rendezés hiány lehetőségeket ad az optimalizációra és a párhuzamos feldolgozásra, és könnyíti a statikus elemzést. Ezek a különbségek teszik összehasonlíthatatlanná e cikket az említett munkákkal. Alapfogalmak Legyen dom adatok egy végtelen halmaza, és egy tőle diszjunk végtelen halmaz a változók halmaza. A relációs séma σ pedig relációk egy véges halmaza a megfelelő aritásokkal. σ egy példánya minden szimbólumhoz tartalmaz egy véges reláció a megfelelő aritással dom felett. Az FO lekérdezések σ felett a következőképpen definiálhatóak: Egy atom R(x 1,,x m ) és x 1 = x 2, ahol R egy reláció σ-ban m aritással és minden x i vagy változó, vagy adat. A formulákat az atomok, logikai operátorok és kvantorok megszokott kombinálásával állíthatjuk elő. Az aktív tartomány szemantikát alkalmazzuk, ami a tartományokat lekorlátozza a példányban vagy a lekérdezésben előforduló értékekre. Egy lekérdezőnyelv lekérdezés-teljes, ha minden kiszámítható lekérdezést le tud írni. Ez a klasszikus relációs környezetben feltételezi azt, hogy a válasz előállítása csak a bemenetből használ adatokat és determinisztikus. Az FO lekérdezések nem lekérdezés-teljesek, például nem tudnak kifejezni olyan egyszerű lekérdezéseket, mint egy gráf tranzitív lezártja. Ez részlegesen megoldható rekurzió beépítésével. Ezek a kiterjesztett változatok a lekérdezések két robosztus osztályához tartanak, ezek a fixpont lekérdezések és a while nyelvcsalád változatai. A while az FO-t kiterjeszti (i) reláció változókkal, aminek értékül lehet adni a lekérdezések eredményeit (destruktív szemantikával) és (ii) egy ciklussal a formában. A fixpont lekérdezések a while + segítségével írhatók le. Ez az értékadást kumulatív módon valósítja meg, és a ciklust a while change do formában valósítja meg. A kumulatív értékadás miatt a relációk egyre csak nőnek, és a ciklus akkor áll meg, ha az előző iterációban már nem került újabb rekord a relációhoz, azaz elértük a fixpontot. Az ezen a nyelven kifejezett lekérdezések mind kiszámíthatóak polinom időben a bemenet méretének függvényében, míg a while nyelven megfogal-
4 mazott lekérdezések PSPACE beli problémák. E korlát áttörésének egyik lehetősége, hogy Turing teljessé tesszük a nyelvet az egész számok típusának bevezetésével és egy while i > 0 do szerkezetű ciklus hozzáadásával. Ezt a nyelvet -nel jelöljük. Ez a nyelv teljes a rendezett adatbázisokon. De a tartomány paritását már nem tudja kiszámítani, ugyanis erre is igaz a 0-1 törvény: annak az esély, hogy formula igaz lesz egy n méretű bemenetre, 0-hoz vagy 1-hez konvergál, ha. A és társai kifejezőerejét egy normálforma világítja meg, ami polinom időben kiszámíthatóvá teszi a kiértékelését ezeknek a programoknak egész számokon. Természetesen az egész számok megfelelnek a rekordok ekvivalencia osztályainak, amiket a program szervez össze. Pontosabban képzeljünk el egy programot, ami adatok egy véges C halmazára hivatkozik, és aminek az FO lekérdezései maximum k változót használnak. Könnyű észrevenni, hogy minden reláció, amit a program a végrehajtása során létrehoz, definiálható FO k formulák összefűzésével. Vegyünk egy példányt, konstansok egy halmazát, és legyen egy ekvivalencia reláció a rekordokon, melyeknek aritása a következő képpen: Minden -ra, amely adatait használja fel és szabad változója van, ( ) ( ). Ekkor létezik olyan fixpont lekérdezés, amely kiszámítja a következőket: az ekvivalencia osztályai -nek egy rendezése az ekvivalencia osztályoknak. A definíció következménye, hogy minden reláció, ami -ből lett képezve egy FO k formulával, a megfelelő ekvivalencia osztályok uniója. Minthogy az osztályok rendezettek, tekinthetjük őket egész számoknak is. Viszont így el kell tudnunk végezni a műveleteket az egészekkel, a nélkül, hogy visszakeresnénk az osztályokat. Ehhez megfelelő információt el kell eltárolnunk róluk. Egyszerűen belátható, hogy létezik egy olyan véges F k halmaz, ami konjunktív formulákat tartalmaz, maximum k db változóval, hogy minden FO k formula az adott séma felett kiértékelhető az F k formuláinak és negáltjaiknak unióival. Legyen minden -ra a(q) az atomok száma q-ban. Bebizonyítható, hogy létezik egy fixpont lekérdezés, ami kiszámít minden -hoz egy Action q relációt, ami minden a(q) hosszú rendezett sorozatához az ekvivalencia osztályainak, megadja az eredményét annak, ha q-t alkalmazzuk erre a sorozatra. Így az ( ) { biztosítja a megfelelő információkat az FO k lekérdezések kiértékeléséhez az egész számokon. Definíció: (Fa) Az adatfák címkézettek, rang nélküliek, rendezetlenek. Legyenek a következő halmazok végtelenek és diszjunktak: a csúcsok (n,m, ), a címkék (a,b,c, ), adatok ( ). A fa egy véges bináris reláció felett, ahol minden csúcsnak pontosan egy szülője van, kivéve a gyökérnek; és egy címkéző függvény, ami minden csúcshoz egy címkét vagy adatot rendel, de adatot csak levélhez. Feltesszük, hogy a fa redukált (azaz nincsen két címkék és adattagok tekintetében izomorf testvér részfa). Ez a halmaz megközelítésnek (nem a zsáknak) felel meg a relációs adatbázisokban. Az fában előforduló adatok halmazát ( )-vel jelöljük. Definíció: (C-genericitás) Legyen C adatok egy véges halmaza. Egy reláció (fák felett) a címkékkel C-generikus, ha minden olyan injektív leképzésre felett, melyre ( ) ( ) és identitás felett, ( ) ( ( ) ( )).
5 Definíció: (Kiszámíthatóság) A kiszámíthatóság fogalma a szokásos: Egy reláció kiszámítható, ha létezik nemdeterminisztikus Turing gép úgy, hogy adott egy rendezés az adatokon és egy ( ) kódolása a bemenő fának a gép szalagján, ekkor a gép pontosan akkor terminál a kimenetén ( )-vel, ha ( ). Definíció: (DTD) Egy megszorítás a bementi fák szerkezetére. -val jelöljük. Definíció: (Fa lekérdezés) Egy fa lekérdezés egy kiszámítható, C-generikus reláció, amely a feletti -nak megfelelő fákról képez a feletti fákra úgy, hogy minden( ) ( ) ( ) ( ), és és csúcsainak halmaza diszjunkt. Definíció: (Lekérdezés-teljes) Ez lekérdezőnyelv lekérdezés-teljes, ha minden kiszámítható lekérdezést kifejez. Akkor mondunk egy lekérdezést determinisztikusnak, ha egyértelmű választ ad minden bemenetre a csúcsok neveitől eltekintve. Eredmények AXML lekérdezőnyelvek Legyen a függvény nevek egy végtelen halmaza, { és { függvény szimbólumok halmazai! Természetes módon jelöli a helyet, ahol egy függvényt meg lehet hívni, és, ahova egy függvény visszatér az eredménnyel. Miután egy csúcsban az eredményt megkaptuk, a csúcsot töröljük. Egy AXML fa olyan, hogy a belső csúcsai fel vannak címkézve elemeivel, a levelei pedig elemeivel, vagy függvény szimbólumokkal, vagy adatokkal. Az AXML fa is redukált, azaz nincs két olyan testvér, ahol nincs futó függvényhívás, de mégis izomorfak. DTD (Document Type Declaration) A bemenő fa szerkezetét írja le. Rendezetlen fákon csak annak van értelme, hogy előírjuk, milyen címkéjük lehet a gyermekeknek. Így a formájú kifejezések logikai kombinációit használjuk, ahol egész, és {. Feltesszük, hogy az összes DTD kiteszi, hogy r legyen a fa csúcsa. Egy DTD statikus, ha nem enged meg függvény szimbólumokat, egyébként aktív. Minták A minták a lekérdezőnyelvek alapkövei.
6 Egy P minta egy ( ) rendezett pár. Kétféle változót használunk: a strukturális változókat (V,W, ), amik a címkével vagy függvény szimbólummal ellátott csúcsokra illeszkednek; és az adat változók, amik az adatokkal ellátott csúcsokra illeszkednek. T egy fa-minta, azaz egy oylan fa, aminek a csúcsai egyedi változókkal vannak címkézve, és az élei pedig a gyermek (/), vagy leszármazott (//) címkékkel vannak ellátva, ahol a leszármazott reláció reflexív. A csúcsok lehetnek negatívak ( ), vagy pozitívak (alapértelmezetten pozitív). A gyökér mindig pozitív. Egy csúcsot határcsúcsnak nevezünk, ha az a gyökér, vagy egy negatív csúcs. T minden S részfájára, amelynek gyökere nem negatív, az fát a negatív csúcsok eltávolításával kapjuk. Legyen egy határcsúcsokból a változók halmazába képező függvény, a következő: ( ) csúcsainak halmaza, és tetszőleges -re ( ) ( ), ahol a gyökerű részfa pozitív gyökérrel. A feltétel minden határcsúcshoz egyenlőségek egy logikai kombinációját társítja a következő formában:, ahol V strukturális változó és t címke, vagy függvény szimbólum, ahol X adatváltozó és Y adatváltozó, vagy adat. Legyen P egy ( ) minta. P illesztését egy erdőhöz a következő módon definiáljuk strukturális rekurzióval. Legyen egy leképezés ( )-ról csúcsaira: A gyermek és a leszármazott relációt megtartja. Minden X adatváltozóhoz ( ) egy csúcs egy adattal. ( )-t kielégíti, azaz -ből következik, hogy ( ) címkéje t, és -ból következik, hogy ( ) és ( ) címkéje azonos (hasonlóan, ha Y adat). Minden maximális N részfájára T-nek, aminek a gyökere egy negatív igaz, hogy - nek nincsen kiterjesztése -re, ahol -et T-ben pozitívra állításával kapjuk, hogy kielégíti ( )-t. Egy adott AXML erdőre és egy mintára ( )-vel jelöljük ezen illesztések halmazát. Azt mondjuk, hogy, ha ( ). Van, hogy a mintát egy kitüntetett csúcshoz képest akarjuk illeszteni. Ekkor egy formájú kifejezést használunk a -ban. Ez egy relatív kifejezés, amit egy ( ) páron értékelünk ki, ahol egy erdő, pedig egy csúcsa. Ekkor nyílván ( ). Mintaillesztéses lekérdezés A mintaillesztéses lekérdezés formájú szabályok egy halmaza. Itt egy minta, pedig egy fa, aminek a belső csúcsai címkékkel, a levelei pedig vagy címkékkel, vagy elemeivel, vagy adatváltozókkal vannak ellátva -ból. Továbbá minden -ben megtalálható változó a konstruktor csúcs alatt fordul elő (jel: {X}). A szabály eredményét a -re való illesztéseinek segítségével kapjuk meg, ehhez a - ben a konstruktor csúcsban található részfát kell a helyettesíteni egy erdővel, ami minden ( )-re tartalmazza egy új másolatát, amiben az adatváltozót a ( ) adattal helyettesítjük. A válasz a mintaillesztéses lekérdezésre a szabályokra adott válaszok uniója.
7 Programok és példányok Egy QAXML program Q egy ( ) páros, ahol egy DTD, pedig függvénydefiníciók egy halmaza. Minden -hez legyen egy egyedi címke. Ez lesz a függvény munkaterületének gyökere, ahol kiértékelődik. Egy függvény specifikációja 4 részből áll: belépési őrfeltétel: Ha igaz, akkor hívható a függvény. bemenő lekérdezés: Egy relatív lekérdezés, ami inicializálja a munkaterületet. Ekkor a self-hez hozzá lesz rendelve a hívás helye. visszatérési őrfeltétel
8 kimenő lekérdezés: Egy lekérdezés, aminek a gyökere. Egy AXML példány egy ( ) pár, ahol egy AXML erdő, és egy injektív függvény, ami -fel címkézett csúcsairól képez gyökerű részfáira -nak, és minden ( ) valamely -re. Nemdeterminisztikus szemantika Legyenek ( ) és ( ) példányok. Az az lehetséges következő példánya (jel: ), akkor és csak akkor, ha előállítható -ből egy függvény meghívásával, vagy eredmény visszatérítésével, ahol az őrfeltétel igaz. Mikor!f-et meghívjuk n csúcsban, akkor n címkéjét?f-re változtatjuk és eval-hoz hozzáadunk egy (n,t ) elemet, ahol T az gyökerű fa, amit a bemenő lekérdezés ( )- en való kiértékelésével kapunk. Amikor a válasz az n csúcsra megérkezik, akkor a fák, mint n testvérei adódnak a fához, majd n törlődik. Ez csak akkor lehetséges, ha eval(n) nem tartalmaz futó függvényhívást. A Q = ( ) egy számítása egy maximális {( ), hogy { eleget tesz -nak és minden -re, 0 <,. A számítás akkor terminál, ha véges. Determinisztikus szemantika Minden olyan függvényt szimultán meghívunk/visszatérünk belőle, amelynek az őrfeltétele igaz. Ha a lekérdezés terminált, akkor az Out címke alatt található az eredmény. QAXML izolált függvényekkel Definició: Egy QAXML program izolált függvényekkel egy ( ) pár, ahol egy statikus DTD és minden beli szabályban a -ben a konstruktor csúcs alatt nincsen függvény szimbólum. Egy példányra, ami kielégíti -t, legyen az egy plusz csúccsal a gyökere alatt. A Q program egy lekérdezést fejez ki DTD-vel, ha minden -nak eleget tevő -re: ( ) - en hogy terminál,és az Out címke alatt O található.
9 Izolált függvények és FO k definiálhatóság Vegyünk egy I példányt és egy programot, ami konstans adatok egy véges halmazát használja a mintáiban. Képzeljük el a program futását, ahogyan a gyökér alá egy másik részfa generálódik, de ezen kívül az változatlan marad. A minták egy része az -re illesztődik, a többi az -n kívüli munkaterületek fáira. Az I-re való leképezéseket előre ki lehet számolni a releváns részmintákra, és eltárolni egy relációs struktúrában, ( )-ben. A szabályok fejrészéből generált részfákat ezekből a leképzésekből generáljuk. Hívjuk a konstruktor csúcsokból példányosított csúcsokat kiterjesztett csúcsoknak. Legyen az a reláció, ami azokból a leképzésekből áll, amelyeket egy lépésben a kiterjesztett csúcsok létrehozásához használtunk. Megmutatható, hogy létezik olyan (csak -tól függően), hogy minden definiálható a ( )-ből egy FO k formulával és a C halmaz elemeivel. Ennek a bizonyítása/magyarázata megtalálható a cikkben. Ebből levezethető, hogy ez a nyelv ekvivalens a fákra használt változatával. A nyelvek fákhoz Először a nyelv nemdeterminisztikus változatával foglalkozunk. A nyelv egész számokat: i, j, (0-ra inicializálva); és erdő változókat: X, Y, használ. Van két kiemelt erdő változó, az In és az Out. Továbbá van egy verem, amibe erdő típusú változókat lehet helyezni. Az alap utasítások a következők: egész szám növelése/csökkentése X := {T}, ahol X erdő, T pedig konstans fa, függvények nélkül. X := Q(Y), ahol X és Y erdő változók, és Q egy lekérdezés. X := Y Z, ahol X, Y,Z erdő változók, mind különbözik In-től. X := a[y], ahol Y, X In-től különböző erdők, és a egy címke; az utasítás a csúcs alá fűzi Y fáit, és ezt X-nek adja értékül. push(x), ahol X erdőváltozó különbözik In-től. X := top, kiszedi a verem felső elemét, és X-nek adja értékül. A program vagy egy utasításból áll, vagy a következő konstrukciós eszközöket használja: while i > 0 do program while X do program program1; program2 (kompozíció) program1 program2 (nemdeterminisztikus választás) A programnak szintén van egy DTD megszorítása az inputokra. A kimenet az Out változó végső értéke. A program megvalósítja az lekérdezést, ha minden DTD-nek megfelelő bementre a lehetséges kimenetek halmaza éppen { ( ). A determinisztikus változat a nemdeterminisztikus választás elhagyásával kapható.
10 NQAXML izolált függvényekkel A NQAXML izolált függvényekkel pontosan azt fejezi ki, mint amit az N-. Az N- program szimulációja NQAXML-lel egyszerű. A NQAXML program szimulációja a következő lépésekből áll: A relációs struktúra ( ) kiszámítása -ből. Az adott k-ra ( )-ből a rendezett ekvivalenciaosztályok, és az Action(I,k,C) kiszámítása, ahol C a Q-ban említett konstansok halmaza. ( ) és Action(I,k,C) reprezentációjának kiszámítása Turing gép szalagjára, ahol az ekvivalenciaosztályokat egészek jelölik. a Turing gép szimulálása, ami kiszámolja a választ a szalagra. Minden terminált számításhoz a kimenet kiszámítása a szalagról. Minden NQAXML programhoz izolált függvényekkel, létezik egy ekvivalens Q nf program, ami hatékonyan előállítható Q-ból, és a következő számításokat végzi I-n: 1. Polinom időben előállítja az ( ) relációs szerkezet, az ekvivalenciosztályok és az Action(I,k,C) fa reprezentációját. 2. Elvégez egy tetszőleges számítást a példány reprezentációján. 3. Polinom időben előállítja az eredményt. A NQAXML nem lekérdezés-teljes. Legyen a DTD a következő:. Ekkor nem tudjuk kiíratni az egyik halmazt nemdeterminisztikusan választva. DQAXML izolált függvényekkel Mivel a -t az N- -ből kapjuk a nemdeterminisztikus választás elhagyásával, ezért nyílván annak egy részhalmazát fejezi ki. A pontosan a determinisztikus részét fejezi ki annak, amit az N- kifejez. A pontosan azt fejezi ki, amit DQAXML izolált függvényekkel kifejez. A DQAXML izolált függvényekkel pontosan a determinisztikus részét fejezi ki annak, amit az NQAXML izolált függvényekkel kifejez. Logikai értékű lekérdezések Gondoljunk egy NQAXML programra. Azt mondjuk, hogy logikai értékű, ha egy olyan fát ad vissza, ami egy csúccsal rendelkezik amihez accepted, vagy rejected címke tartozik. Egy bemenetet elfogad, ha legalább egy számítással elfogadja azt. A logikai N-, QAXML és programok analóg módon vannak definiálva. Azt mondjuk, hogy két logikai értékű program ekvivalens, ha ugyanaz a DTD-jük, és ugyanazokat a példányokat fogadják el.
11 Az alábbi nyelvek ugyanolyan kifejezőerővel bírnak a logikai értékű programok tekintetében: NQAXML és DQAXML izolált függvényekkel N- és akár a verem, az X := Y Z és az X := a[y] utasítások nélkül is Természetesen a normálformánk is erősebb, hiszen az utolsó lépés (az adatok visszaalakítása) elhagyható. QAXML sűrű függvényekkel Definició: Egy QAXML program sűrű függvényekkel egy ( ) pár, ahol függvény definíciók egy halmaza, és egy statikus DTD. Egy példányra, ami kielégíti -t, legyen az az kiterjesztése minden címkével (nem adat és nem függvény) ellátott csúcs alatt egy függvényhívással. A program egy lekérdezést fejez ki DTD-vel, ha minden -nak eleget tevő -re ( ) - en hogy t és az Out címkel alatt pontosan O van. Az NQAXML sűrű függvényekkel lekérdezés-teljes. Az DQAXML sűrű függvényekkel nem lekérdezés-teljes. QAXML fa változókkal Ez a kiterjesztés a fa részváltozóinak megragadásán alapul. Ez az alap lekérdezések kifejezőerejét növeli meg olyan mértékben, hogy már a determinisztikus esetben, izolált függvények használatával is lekérdezés-teljessé válik a nyelv. Az izolált függvényekkel lekérdezés-teljes. Ellenben a nemdeterminisztikus esetben nem teljes, hiszen csak az ú.n. gyengén nemdeterminisztikus lekérdezéseket fejezi ki. De nem kell elmennünk a sűrű függvények használatáig, elég azt kikötni, hogy a kezdetben csak a gyökér alatt szerepelhet függvényhívás, de később a konstruktor csúcsok alatt is megengedett. Ezt hívjuk query-dense függvényhívásnak. Az query-dense függvényekkel lekérdezés-teljes. While fa változókkal Definiáljuk a -t a következő jellemzőkkel: X,Y,Z, rendre erdő változók X := ( ), ahol X változó, Y változó vagy konstans fa, egy minta while X (nemdet. esetben: program1 program2 egy nemdet. választás) In és Out változók a szokott módon.
12 A ekvivalens a izolált függvényes változatával és a N- ekvivalens a izolált függvényes változatával. A nem determinisztikus eset kiterjeszthető egy X := choose(y) művelettel, mely nemdeterminisztikus módon választ egy fát Y erdőből, és azt adja X-nek értékül. Ez az -. Az - lekérdezés-teljes és ekvivalens az query-dense változatával. Ráadásul elég a choose műveletet csak a lekérdezés végén használni. (normálforma) További kutatási terv A jövőben megvizsgálandó/érdekes problémák, amik a cikk folyamán felmerültek: meghatározni az izolációs feltételeket, amik mellett az eredmények, még mindig igazak maradnak részletesebben foglalkozni a DTD hatásával a teljesség szempontjából meghatározni a DTD-ket, amikkel a QAXML izolált függvényekkel megtartja a 0-1 törvényt találni egy természetes determinisztikus lekérdezés-teljes nyelvet találása A szerzők a jövőben meg kívánják vizsgálni a automaták átalakítók használatát. (Ez hasonló lehet az egész számokra való leképzéshez a bevezetésben.) + Érdemes lehet elgondolkodni a módszer hatékony megvalósításán, a megfelelő nyelv kiválasztásán. Irodalomjegyzék (Nem egyezik meg a cikk forrásaival, kiegészítő információkat is ad. A kivonat szerkezete a cikkéhez hasonló, így a cikk forrásainak az eredetiben utána lehet nézni.) [1] [2] D. Calvanese, G. D. Giacomo, R. Hull, and J. Su. Artifact-centric workflow dominance. In ICSOC/ServiceWave, [3] [4] [5] W. Janssen, A. Korlyukov, and J. V. den Bussche. On the tree-transformation power of xslt. Acta Inf., 43(6), [6] F. Neven. Automata, logic, and XML. In CSL, [7] T. Schwentick. Automata for XML - a survey. J. Comput. Syst. Sci., 73(3), [8] M. Bojanczyk. Automata for data words and data trees. In RTA, pages 1 4, [9] L. Segoufin. Automata and logics for words and trees over an infinite alphabet. In CSL, pages 41 57, [10] L. Segoufin. Static analysis of xml processing with data values. SIGMOD Record, 36(1):31 38, 2007.
13 [11] M. Benedikt and C. Koch. From XQuery to relational logics. ACM Trans. Database Syst., 34(4), [12] J. Hidders, S. Marrara, J. Paredaens, and R. Vercammen. On the expressive power of XQuery fragments. In DBPL, [13] J. Hidders, J. Paredaens, R. Vercammen, and S. Demeyer. A light but formal introduction to XQuery. In XSym, [14] C. Koch. On the complexity of nonrecursive XQuery and functional query languages on complex values. ACM Trans. Database Syst., 31(4), 2006.
definiálunk. Legyen egy konfiguráció, ahol és. A következő három esetet különböztetjük meg. 1. Ha, akkor 2. Ha, akkor, ahol, ha, és egyébként.
Számításelmélet Kiszámítási problémának nevezünk egy olyan, a matematika nyelvén megfogalmazott kérdést, amire számítógéppel szeretnénk megadni a választ. (A matematika nyelvén precízen megfogalmazott
Deníciók és tételek a beugró vizsgára
Deníciók és tételek a beugró vizsgára (a szóbeli viszgázás jogáért) Utolsó módosítás: 2008. december 2. 2 Bevezetés Számítási problémának nevezünk egy olyan, a matematika nyelvén megfogalmazott kérdést,
Logika es sz am ıt aselm elet I. r esz Logika Negyedik el oad as 1/26
1/26 Logika és számításelmélet I. rész Logika Negyedik előadás Tartalom 2/26 Az elsőrendű logika szemantikája Formulák és formulahalmazok szemantikus tulajdonságai Elsőrendű logikai nyelv interpretációja
Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések
Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések 1. Az informatikai rendszereknél mit ellenőriznek validációnál és mit verifikációnál? 2. A szoftver verifikációs technikák
Alap fatranszformátorok II
Alap fatranszformátorok II Vágvölgyi Sándor Fülöp Zoltán és Vágvölgyi Sándor [2, 3] közös eredményeit ismertetjük. Fogalmak, jelölések A Σ feletti alaptermek TA = (T Σ, Σ) Σ algebráját tekintjük. Minden
A szemantikus elemzés elmélete. Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete. A szemantikus elemzés elmélete
A szemantikus elemzés elmélete Szemantikus elemzés (attribútum fordítási grammatikák) a nyelvtan szabályait kiegészítjük a szemantikus elemzés tevékenységeivel fordítási grammatikák Fordítóprogramok előadás
Elsőrendű logika szintaktikája és szemantikája. Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 1
Elsőrendű logika szintaktikája és szemantikája Logika és számításelmélet, 3. gyakorlat 2009/10 II. félév Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 1 Az elsőrendű logika Elemek egy
5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás
Elemi programok Definíció Az S A A program elemi, ha a A : S(a) { a, a, a, a,..., a, b b a}. A definíció alapján könnyen látható, hogy egy elemi program tényleg program. Speciális elemi programok a kövekezők:
Alapszintű formalizmusok
Alapszintű formalizmusok dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Mit szeretnénk elérni? Informális tervek Informális követelmények Formális modell Formalizált követelmények
Időzített átmeneti rendszerek
Időzített átmeneti rendszerek Legyen A egy ábécé, A = A { (d) d R 0 }. A feletti (valós idejű) időzített átmeneti rendszer olyan A = (S, T,,, ) címkézett átmeneti rendszert ( : T A ), melyre teljesülnek
1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje
1. Alapfogalmak 1.1. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt
Automaták mint elfogadók (akceptorok)
Automaták mint elfogadók (akceptorok) Ha egy iniciális Moore-automatában a kimenőjelek halmaza csupán kételemű: {elfogadom, nem fogadom el}, és az utolsó kimenőjel dönti el azt a kérdést, hogy elfogadható-e
Bonyolultságelmélet. Monday 26 th September, 2016, 18:50
Bonyolultságelmélet Monday 26 th September, 2016, 18:50 A kiszámítás modelljei 2 De milyen architektúrán polinom? A kiszámításnak számos (matematikai) modellje létezik: Általános rekurzív függvények λ-kalkulus
4. Fuzzy relációk. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI
4. Fuzzy relációk Gépi intelligencia I. Fodor János BMF NIK IMRI NIMGI1MIEM Tartalomjegyzék I 1 Klasszikus relációk Halmazok Descartes-szorzata Relációk 2 Fuzzy relációk Fuzzy relációk véges alaphalmazok
Általános algoritmustervezési módszerek
Általános algoritmustervezési módszerek Ebben a részben arra mutatunk példát, hogy miként használhatóak olyan általános algoritmustervezési módszerek mint a dinamikus programozás és a korlátozás és szétválasztás
A digitális számítás elmélete
A digitális számítás elmélete 8. előadás ápr. 16. Turing gépek és nyelvtanok A nyelvosztályok áttekintése Turing gépek és a természetes számokon értelmezett függvények Áttekintés Dominó Bizonyítások: L
... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.
Párhuzamos programok Legyen S parbegin S 1... S n parend; program. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Folyamat
Véges automaták, reguláris nyelvek
Véges automaták, reguláris nyelvek Kiegészítő anyag az lgoritmuselmélet tárgyhoz (a Rónyai Ivanyos Szabó: lgoritmusok könyv mellé) Friedl Katalin BME SZIT friedl@cs.bme.hu 27. augusztus 3. véges automata
Turing-gép május 31. Turing-gép 1. 1
Turing-gép 2007. május 31. Turing-gép 1. 1 Témavázlat Turing-gép Determinisztikus, 1-szalagos Turing-gép A gép leírása, példák k-szalagos Turing-gép Univerzális Turing-gép Egyéb Turing-gépek Nemdeterminisztikus
Számításelmélet. Második előadás
Számításelmélet Második előadás Többszalagos Turing-gép Turing-gép k (konstans) számú szalaggal A szalagok mindegyike rendelkezik egy független író / olvasó fejjel A bemenet az első szalagra kerül, a többi
Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.
Algoritmuselmélet NP-teljes problémák Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 13. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet
Logika és informatikai alkalmazásai kiskérdések február Mikor mondjuk, hogy az F formula a G-nek részformulája?
,,Alap kiskérdések Logika és informatikai alkalmazásai kiskérdések 2012. február 19. 1. Hogy hívjuk a 0 aritású függvényjeleket? 2. Definiálja a termek halmazát. 3. Definiálja a formulák halmazát. 4. Definiálja,
1. előadás: Halmazelmélet, számfogalom, teljes
1. előadás: Halmazelmélet, számfogalom, teljes indukció Szabó Szilárd Halmazok Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) összessége. Egy halmaz akkor adott, ha minden objektumról eldönthető,
ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha
ALAPFOGALMAK 1 Á l l a p o t t é r Legyen I egy véges halmaz és legyenek A i, i I tetszőleges véges vagy megszámlálható, nem üres halmazok Ekkor az A= A i halmazt állapottérnek, az A i halmazokat pedig
Logika es sz am ıt aselm elet I. r esz Logika Harmadik el oad as 1/33
1/33 Logika és számításelmélet I. rész Logika Harmadik előadás Tartalom 2/33 Elsőrendű logika bevezetés Az elsőrendű logika szintaxisa 3/33 Nulladrendű állítás Az ítéletlogikában nem foglalkoztunk az álĺıtások
1. tétel - Gráfok alapfogalmai
1. tétel - Gráfok alapfogalmai 1. irányítatlan gráf fogalma A G (irányítatlan) gráf egy (Φ, E, V) hátmas, ahol E az élek halmaza, V a csúcsok (pontok) halmaza, Φ: E {V-beli rendezetlen párok} illeszkedési
A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása
A fordítóprogramok szerkezete Forrásprogram Forrás-kezelő (source handler) Kódoptimalizálás Fordítóprogramok előadás (A,C,T szakirány) Lexikális elemző (scanner) Szintaktikus elemző (parser) Szemantikus
A félév során előkerülő témakörök
A félév során előkerülő témakörök rekurzív algoritmusok rendező algoritmusok alapvető adattípusok, adatszerkezetek, és kapcsolódó algoritmusok dinamikus programozás mohó algoritmusok gráf algoritmusok
Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t
Ellenőrző kérdések 2. Kis dolgozat kérdései 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t 37. Ha t szintű indexet használunk,
A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:
A Formális nyelvek vizsga teljesítése a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon: 1. Öt rövid kérdés megválaszolása egyenként 6 pontért, melyet minimum
Operációs rendszerek gyak.
Operációs rendszerek gyak. AWK programozás Hirling Dominik Szegedi Tudományegyetem AWK AWK: a pattern scanning and processing language mintaelemző-és feldolgozó nyelv bármilyen szövegből minták alapján
30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK
30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK A gráfos alkalmazások között is találkozunk olyan problémákkal, amelyeket megoldását a részekre bontott gráfon határozzuk meg, majd ezeket alkalmas módon teljes megoldássá
3. előadás. Programozás-elmélet. A változó fogalma Kiterjesztések A feladat kiterjesztése A program kiterjesztése Kiterjesztési tételek Példa
A változó fogalma Definíció Legyen A = A 1 A 2... A n állapottér. A pr Ai projekciós függvényeket változóknak nevezzük: : A A i pr Ai (a) = a i ( a = (a 1, a 2,..., a n ) A). A változók jelölése: v i =
Diszkrét matematika 2. estis képzés
Diszkrét matematika 2. estis képzés 2018. tavasz 1. Diszkrét matematika 2. estis képzés 7. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
Formális nyelvek és automaták
Formális nyelvek és automaták Nagy Sára gyakorlatai alapján Készítette: Nagy Krisztián 2. gyakorlat Ismétlés: Megjegyzés: Az ismétlés egy része nem szerepel a dokumentumban, mivel lényegében a teljes 1.
ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF
ADATBÁZIS-KEZELÉS Relációalgebra, 5NF ABSZTRAKT LEKÉRDEZŐ NYELVEK relációalgebra relációkalkulus rekord alapú tartomány alapú Relációalgebra a matematikai halmazelméleten alapuló lekérdező nyelv a lekérdezés
NP-teljesség röviden
NP-teljesség röviden Bucsay Balázs earthquake[at]rycon[dot]hu http://rycon.hu 1 Turing gépek 1/3 Mi a turing gép? 1. Definíció. [Turing gép] Egy Turing-gép formálisan egy M = (K, Σ, δ, s) rendezett négyessel
7.4. A programkonstrukciók és a kiszámíthatóság
H @ tj 68 7 PROGRAMKONSTRUKCIÓK 74 A programkonstrukciók és a kiszámíthatóság Ebben az alfejezetben kis kitérőt teszünk a kiszámíthatóság-elmélet felé, és megmutatjuk, hog az imént bevezetett három programkonstrukció
Számítógép és programozás 2
Számítógép és programozás 2 6. Előadás Problémaosztályok http://digitus.itk.ppke.hu/~flugi/ Emlékeztető A specifikáció egy előfeltételből és utófeltételből álló leírása a feladatnak Léteznek olyan feladatok,
ÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA)
ÍTÉLETKALKULUS SZINTAXIS ÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA) jelkészlet elválasztó jelek: ( ) logikai műveleti jelek: ítéletváltozók (logikai változók): p, q, r,... ítéletkonstansok: T, F szintaxis szabályai
BOOLE ALGEBRA Logika: A konjunkció és diszjunkció tulajdonságai
BOOLE ALGEBRA Logika: A konjunkció és diszjunkció tulajdonságai 1.a. A B B A 2.a. (A B) C A (B C) 3.a. A (A B) A 4.a. I A I 5.a. A (B C) (A B) (A C) 6.a. A A I 1.b. A B B A 2.b. (A B) C A (B C) 3.b. A
Fordítás Kódoptimalizálás
Fordítás Kódoptimalizálás Kód visszafejtés. Izsó Tamás 2016. október 20. Izsó Tamás Fordítás Kódoptimalizálás / 1 Aktív változók Angol irodalomban a Live Variables kifejezést használják, míg az azt felhasználó
Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)
Adatszerkezetek I. 7. előadás (Horváth Gyula anyagai felhasználásával) Bináris fa A fa (bináris fa) rekurzív adatszerkezet: BinFa:= Fa := ÜresFa Rekord(Elem,BinFa,BinFa) ÜresFa Rekord(Elem,Fák) 2/37 Bináris
Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!
függvények RE 1 Relációk Függvények függvények RE 2 Definíció Ha A, B és ρ A B, akkor azt mondjuk, hogy ρ reláció A és B között, vagy azt, hogy ρ leképezés A-ból B-be. Ha speciálisan A=B, azaz ρ A A, akkor
Formális nyelvek - 9.
Formális nyelvek - 9. Csuhaj Varjú Erzsébet Algoritmusok és Alkalmazásaik Tanszék Informatikai Kar Eötvös Loránd Tudományegyetem H-1117 Budapest Pázmány Péter sétány 1/c E-mail: csuhaj@inf.elte.hu 1 Véges
Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok
Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok Program verifikálás Konkurens programozási megoldások terjedése -> verifikálás szükséges, (nehéz) logika Legszélesebb körben alkalmazott
Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED AWK - szintaxis, vezérlési szerkezetek Operációs rendszerek 11. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik
5. A kiterjesztési elv, nyelvi változók
5. A kiterjesztési elv, nyelvi változók Gépi intelligencia I. Fodor János BMF NIK IMRI NIMGI1MIEM Tartalomjegyzék I 1 A kiterjesztési elv 2 Nyelvi változók A kiterjesztési elv 237 A KITERJESZTÉSI ELV A
Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs
Programozás I. 1. előadás: Algoritmusok alapjai Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Informatikai Intézet 2015. szeptember 7. Sergyán
Rekurzió. Dr. Iványi Péter
Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(
Adatszerkezetek és algoritmusok
2010. január 8. Bevezet El z órák anyagainak áttekintése Ismétlés Adatszerkezetek osztályozása Sor, Verem, Lengyelforma Statikus, tömbös reprezentáció Dinamikus, láncolt reprezentáció Láncolt lista Lassú
Logika es sz am ıt aselm elet I. r esz Logika 1/36
1/36 Logika és számításelmélet I. rész Logika 2/36 Elérhetőségek Tejfel Máté Déli épület, 2.606 matej@inf.elte.hu http://matej.web.elte.hu Tankönyv 3/36 Tartalom 4/36 Bevezető fogalmak Ítéletlogika Ítéletlogika
Programozási nyelvek a közoktatásban alapfogalmak I. előadás
Programozási nyelvek a közoktatásban alapfogalmak I. előadás Szempontok Programozási nyelvek osztályozása Felhasználói kör (amatőr, professzionális) Emberközelség (gépi nyelvektől a természetes nyelvekig)
Ítéletkalkulus. 1. Bevezet. 2. Ítéletkalkulus
Ítéletkalkulus Logikai alapfogalmak, m veletek, formalizálás, logikai ekvivalencia, teljes diszjunktív normálforma, tautológia. 1. Bevezet A matematikai logikában az állításoknak nem a tényleges jelentésével,
Kiterjesztések sek szemantikája
Kiterjesztések sek szemantikája Példa D Integer = {..., -1,0,1,... }; D Boolean = { true, false } D T1... T n T = D T 1... D Tn D T Az összes függvf ggvény halmaza, amelyek a D T1,..., D Tn halmazokból
ADATBÁZISOK ELMÉLETE 5. ELŐADÁS 3/22. Az F formula: ahol A, B attribútumok, c érték (konstans), θ {<, >, =,,, } Példa:
Adatbázisok elmélete 5. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu http://www.cs.bme.hu/ kiskat 2005 ADATBÁZISOK ELMÉLETE
Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy
1. előadás: Halmazelmélet Szabó Szilárd Halmazok Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) összessége. Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy hozzátartozik-e,
RE 1. Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!
RE 1 Relációk Függvények RE 2 Definíció: Ha A, B és ρ A B, akkor azt mondjuk, hogy ρ reláció A és B között, vagy azt, hogy ρ leképezés A-ból B-be. Ha speciálisan A=B, azaz ρ A A, akkor azt mondjuk, hogy
Kaposi Ambrus. University of Nottingham Functional Programming Lab. Hackerspace Budapest 2015. január 6.
Bizonyítás és programozás Kaposi Ambrus University of Nottingham Functional Programming Lab Hackerspace Budapest 2015. január 6. Bizonyítás, érvelés Példa: sáros a csizmám ha vizes a föld, esett az eső
Logika és számításelmélet. 10. előadás
Logika és számításelmélet 10. előadás Rice tétel Rekurzíve felsorolható nyelvek tulajdonságai Tetszőleges P RE halmazt a rekurzívan felsorolható nyelvek egy tulajdonságának nevezzük. P triviális, ha P
26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA
26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA Az előző két fejezetben tárgyalt feladat általánosításaként a gráfban található összes csúcspárra szeretnénk meghatározni a legkisebb költségű utat. A probléma
Formális szemantika. Kifejezések szemantikája. Horpácsi Dániel ELTE Informatikai Kar
Formális szemantika Kifejezések szemantikája Horpácsi Dániel ELTE Informatikai Kar 2016-2017-2 Az előadás témája Egyszerű kifejezések formális szemantikája Az első lépés a programozási nyelvek szemantikájának
Diszkrét matematika 2. estis képzés
Diszkrét matematika 2. estis képzés 2018. tavasz 1. Diszkrét matematika 2. estis képzés 10. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
Diszkrét matematika I.
Diszkrét matematika I. középszint 2014. ősz 1. Diszkrét matematika I. középszint 3. előadás Mérai László diái alapján Komputeralgebra Tanszék 2014. ősz Relációk Diszkrét matematika I. középszint 2014.
Alap fatranszformátorok I. Oyamaguchi [3], Dauchet és társai [1] és Engelfriet [2] bebizonyították hogy egy tetszőleges alap
Alap fatranszformátorok I Vágvölgyi Sándor Oyamaguchi [3], Dauchet és társai [1] és Engelfriet [2] bebizonyították hogy egy tetszőleges alap termátíró rendszerről eldönthető hogy összefolyó-e. Mindannyian
Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }
Funkcionális és logikai programozás { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi ` 1 Jelenlét: Követelmények, osztályozás Az első 4 előadáson
1. Mondjon legalább három példát predikátumra. 4. Mikor van egy változó egy kvantor hatáskörében?
Definíciók, tételkimondások 1. Mondjon legalább három példát predikátumra. 2. Sorolja fel a logikai jeleket. 3. Milyen kvantorokat ismer? Mi a jelük? 4. Mikor van egy változó egy kvantor hatáskörében?
Komputeralgebra Rendszerek
Komputeralgebra Rendszerek Programozás Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék 2014. február 23. TARTALOMJEGYZÉK 1 of 28 TARTALOMJEGYZÉK I 1 TARTALOMJEGYZÉK 2 Értékadás MAPLE -ben SAGE -ben 3
Oktatási segédlet 2014
Oktatási segédlet 2014 A kutatás a TÁMOP 4.2.4.A/2-11-1-2012- 0001 azonosító számú Nemzeti Kiválóság Program Hazai hallgatói, illetve kutatói személyi támogatást biztosító rendszer kidolgozása és működtetése
Házi feladatok megoldása. Nyelvek használata adatszerkezetek, képek leírására
Nyelvek használata adatszerkezetek, képek leírására Formális nyelvek, 2. gyakorlat 1. feladat Módosított : belsejében lehet _ jel is. Kezdődhet, de nem végződhet vele, két aláhúzás nem lehet egymás mellett.
2. Ítéletkalkulus szintaxisa
2. Ítéletkalkulus szintaxisa (4.1) 2.1 Az ítéletlogika abc-je: V 0 V 0 A következő szimbólumokat tartalmazza: ítélet- vagy állításváltozók (az állítások szimbolizálására). Esetenként logikai változónak
A számítógépes nyelvészet elmélete és gyakorlata. Automaták
A számítógépes nyelvészet elmélete és gyakorlata Automaták Nyelvek és automaták A nyelvek automatákkal is jellemezhetőek Automaták hierarchiája Chomsky-féle hierarchia Automata: új eszköz a nyelvek komplexitásának
Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma
Készítette: Laczik Sándor János Gráfelmélet I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma Definíció: a G=(V,E) párt egyszerű gráfnak nevezzük, (V elemeit a gráf csúcsainak/pontjainak,e elemeit
Programozási nyelvek 6. előadás
Programozási nyelvek 6. előadás Szempontok Programozási nyelvek osztályozása Felhasználói kör (amatőr, professzionális) Emberközelség (gépi nyelvektől a természetes nyelvekig) Számítási modell (hogyan
Rekurzió. Működése, programtranszformációk. Programozás II. előadás. Szénási Sándor.
Rekurzió Működése, programtranszformációk előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Rekurzió Rekurzió alapjai Rekurzív
Logika es sz am ıt aselm elet I. r esz Logika Hatodik el oad as 1/33
1/33 Logika és számításelmélet I. rész Logika Hatodik előadás Tartalom 2/33 Elsőrendű rezolúciós kalkulus - előkészítő fogalmak Prenex formula, Skolem normálforma 3/33 Eldönthető formulaosztályok keresése
Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.
Algoritmuselmélet Bonyolultságelmélet Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 12. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet
2018, Diszkrét matematika
Diszkrét matematika 3. előadás mgyongyi@ms.sapientia.ro Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia 2018, őszi félév Miről volt szó az elmúlt előadáson? számtartományok: természetes
Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit.
2. A VALÓS SZÁMOK 2.1 A valós számok aximómarendszere Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit. 1.Testaxiómák R-ben két művelet van értelmezve, az
Algoritmusok bonyolultsága
Algoritmusok bonyolultsága 11. előadás http://www.ms.sapientia.ro/~kasa/komplex.htm () 1 / 1 NP-telesség Egy L nyelv NP-teles, ha L NP és minden L NP-re L L. Egy Π döntési feladat NP-teles, ha Π NP és
7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet
7. BINÁRIS FÁK Az előző fejezetekben már találkoztunk bináris fákkal. Ezt a központi fontosságú adatszerkezetet most vezetjük be a saját helyén és az általános fák szerepét szűkítve, csak a bináris fát
Leképezések. Leképezések tulajdonságai. Számosságok.
Leképezések Leképezések tulajdonságai. Számosságok. 1. Leképezések tulajdonságai A továbbiakban legyen A és B két tetszőleges halmaz. Idézzünk fel néhány definíciót. 1. Definíció (Emlékeztető). Relációknak
Itt és a továbbiakban a számhalmazokra az alábbi jelöléseket használjuk:
1. Halmazok, relációk, függvények 1.A. Halmazok A halmaz bizonyos jól meghatározott dolgok (tárgyak, fogalmak), a halmaz elemeinek az összessége. Azt, hogy az a elem hozzátartozik az A halmazhoz így jelöljük:
ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára
ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára 7. Előadás: Hálózatok, P- és N P-teljes problémák Előadó: Hajnal Péter 2015. tavasz 1. Hálózatok és egy P-teljes probléma Emlékeztető.
Diszkrét matematika 2. estis képzés
Diszkrét matematika 2. estis képzés 2018. tavasz 1. Diszkrét matematika 2. estis képzés 4-6. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
KOVÁCS BÉLA, MATEMATIKA I.
KOVÁCS BÉLA, MATEmATIkA I. 4 IV. FÜGGVÉNYEk 1. LEkÉPEZÉSEk, függvények Definíció Legyen és két halmaz. Egy függvény -ből -ba egy olyan szabály, amely minden elemhez pontosan egy elemet rendel hozzá. Az
Algoritmuselmélet 12. előadás
Algoritmuselmélet 12. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Április 9. ALGORITMUSELMÉLET 12. ELŐADÁS 1 Turing-gépek
Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás
Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX
Bonyolultságelmélet. Thursday 1 st December, 2016, 22:21
Bonyolultságelmélet Thursday 1 st December, 2016, 22:21 Tárbonyolultság A futásidő mellett a felhasznált tárterület a másik fontos erőforrás. Ismét igaz, hogy egy Ram-program esetében ha csak a használt
Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1
Halmazok 1 Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 2 A fejezet legfontosabb elemei Halmaz megadási módjai Halmazok közti műveletek (metszet,
Logika és informatikai alkalmazásai
Logika és informatikai alkalmazásai 2. gyakorlat Németh L. Zoltán http://www.inf.u-szeged.hu/~zlnemeth SZTE, Informatikai Tanszékcsoport 2011 tavasz Irodalom Szükséges elmélet a mai gyakorlathoz Előadás
Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.
HA 1 Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) HA 2 Halmazok HA 3 Megjegyzések A halmaz, az elem és az eleme fogalmakat nem definiáljuk, hanem alapfogalmaknak
Bánsághi Anna 2014 Bánsághi Anna 1 of 33
IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 7. ELŐADÁS - ABSZTRAKT ADATTÍPUS 2014 Bánsághi Anna 1 of 33 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív
Adatmodellezés. 1. Fogalmi modell
Adatmodellezés MODELL: a bonyolult (és időben változó) valóság leegyszerűsített mása, egy adott vizsgálat céljából. A modellben többnyire a vizsgálat szempontjából releváns jellemzőket (tulajdonságokat)
S0-02 Típusmodellek (Programozás elmélet)
S0-02 Típusmodellek (Programozás elmélet) Tartalom 1. Absztrakt adattípus 2. Adattípus specifikációja 3. Adattípus osztály 4. Paraméterátadás 5. Reprezentációs függvény 6. Öröklődés és polimorfizmus 7.
Programkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6.
Programkonstrukciók Definíció Legyen π feltétel és S program A-n. A DO A A relációt az S-ből a π feltétellel képezett ciklusnak nevezzük, és (π, S)-sel jelöljük, ha 1. a / [π] : DO (a) = { a }, 2. a [π]
Logikai ágensek. Mesterséges intelligencia március 21.
Logikai ágensek Mesterséges intelligencia 2014. március 21. Bevezetés Eddigi példák tudásra: állapotok halmaza, lehetséges operátorok, ezek költségei, heurisztikák Feltételezés: a világ (lehetséges állapotok
Elsőrendű logika. Mesterséges intelligencia március 28.
Elsőrendű logika Mesterséges intelligencia 2014. március 28. Bevezetés Ítéletkalkulus: deklaratív nyelv (mondatok és lehetséges világok közti igazságrelációk) Részinformációkat is kezel (diszjunkció, negáció)
Logikák véges fákon. Iván Szabolcs Szegedi Tudományegyetem Számítástudomány Alapjai Tanszék
Logikák véges fákon Iván Szabolcs Szegedi Tudományegyetem Számítástudomány Alapjai Tanszék Tartalom FO[
A sorozat fogalma. függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet. az értékkészlet a komplex számok halmaza, akkor komplex
A sorozat fogalma Definíció. A természetes számok N halmazán értelmezett függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet a valós számok halmaza, valós számsorozatról beszélünk, mígha az