VOJENSKÁ AKADÉMIA V LIPTOVSKOM MIKULÁŠI PREKLADAČE
|
|
- Σαμψών Λαμπρόπουλος
- 5 χρόνια πριν
- Προβολές:
Transcript
1 VOJENSKÁ AKADÉMIA V LIPTOVSKOM MIKULÁŠI Fakulta zabezpečenia velenia Katedra informatiky a výpočtovej techniky RNDr. Ľubomír Dedera, PhD. PREKLADAČE Prvá kniha Skriptá Liptovský Mikuláš 2002
2 RNDr. Ľubomír Dedera, PhD. Recenzent: pplk. doc. RNDr. Milan Lehotský, CSc. Za odbornú a jazykovú stránku tohto vysokoškolského učebného textu zodpovedá autor. Rukopis neprešiel redakčnou ani jazykovou úpravou. ISBN
3 3 PRVÁ KNIHA Obsah OBSAH... 3 PRVÁ KNIHA... 3 ZOZNAM POUŢITÝCH SKRATIEK A SYMBOLOV... 6 PREDSLOV... 7 PRVÁ ČASŤ: TEORETICKÉ VÝCHODISKÁ FORMÁLNE JAZYKY A GRAMATIKY ZÁKLADNÉ POJMY KLASIFIKÁCIA GRAMATÍK Cvičenia REGULÁRNE JAZYKY A KONEČNÉ AUTOMATY REGULÁRNE JAZYKY DETERMINISTICKÉ KONEČNÉ AUTOMATY NEDETERMINISTICKÉ KONEČNÉ AUTOMATY VZŤAH MEDZI DETERMINISTICKÝMI A NEDETERMINISTICKÝMI KONEČNÝMI AUTOMATMI MINIMALIZÁCIA POČTU STAVOV DETERMINISTICKÝCH KONEČNÝCH AUTOMATOV VZŤAH MEDZI KONEČNÝMI AUTOMATMI A REGULÁRNYMI GRAMATIKAMI Cvičenia BEZKONTEXTOVÉ JAZYKY A ZÁSOBNÍKOVÉ AUTOMATY BEZKONTEXTOVÉ JAZYKY TRANSFORMÁCIE BEZKONTEXTOVÝCH GRAMATÍK Odstránenie nadbytočných symbolov gramatiky Odstránenie -pravidiel Odstránenie jednoduchých pravidiel Odstránenie ľavej rekurzie Greibachovej normálny tvar gramatiky ZÁSOBNÍKOVÉ AUTOMATY VZŤAH MEDZI ZÁSOBNÍKOVÝMI AUTOMATMI A BEZKONTEXTOVÝMI GRAMATIKAMI Cvičenia DRUHÁ ČASŤ: VŠEOBECNÉ ASPEKTY TVORBY KOMPILÁTOROV ŠTRUKTÚRA KOMPILÁTORA A LEXIKÁLNA ANALÝZA ŠTRUKTÚRA KOMPILÁTORA LEXIKÁLNY ANALYZÁTOR GENERÁTOR LEXIKÁLNEHO ANALYZÁTORA LEX Cvičenia SYNTAKTICKÁ ANALÝZA DETERMINISTICKÝCH BEZKONTEXTOVÝCH JAZYKOV DETERMINISTICKÉ BEZKONTEXTOVÉ JAZYKY A DETERMINISTICKÉ ZÁSOBNÍKOVÉ AUTOMATY ALGORITMY PRE ANALÝZU GRAMATÍK CIELE SYNTAKTICKEJ ANALÝZY SYNTAKTICKÁ ANALÝZA ZHORA-NADOL... 94
4 Teoretický model LL(1) syntaktické analyzátory Úpravy bezkontextových gramatík na LL(1) gramatiky Problém if-then-else pri LL syntaktickej analýze SYNTAKTICKÁ ANALÝZA ZDOLA-NAHOR Teoretický model Všeobecný algoritmus LR syntaktických analyzátorov LR(0) syntaktické analyzátory LR(1) syntaktické analyzátory SLR(1) syntaktické analyzátory LALR(1) syntaktické analyzátory Problém if-then-else pri LR syntaktickej analýze Cvičenia SPRACOVANIE SÉMANTIKY MEDZIKÓD SÉMANTICKÉ PODPROGRAMY VOLANIE SÉMANTICKÝCH PODPROGRAMOV V LL SYNTAKTICKÝCH ANALYZÁTOROCH VOLANIE SÉMANTICKÝCH PODPROGRAMOV V LR SYNTAKTICKÝCH ANALYZÁTOROCH GENERÁTOR LALR(1) SYNTAKTICKÉHO ANALYZÁTORA YACC Cvičenia TABUĽKY SYMBOLOV ZÁKLADNÉ IMPLEMENTAČNÉ TECHNIKY ŠPECIÁLNE PRÍPADY Cvičenia ORGANIZÁCIA PAMÄTI POČAS BEHU PROGRAMU PRIDEĽOVANIE PAMÄTI PREMENNÝM JEDNOTLIVÝCH ÚDAJOVÝCH TYPOV ORGANIZÁCIA PAMÄTI PRIDELENEJ PROGRAMU Cvičenia OBSAH DRUHÁ KNIHA TRETIA ČASŤ: SPRACOVANIE JAZYKOVÝCH KONŠTRUKCIÍ A GENEROVANIE KÓDU SPRACOVANIE DEKLARÁCIÍ ZÁKLADNÉ TECHNIKY A ÚDAJOVÉ ŠTRUKTÚRY DEKLARÁCIE PREMENNÝCH DEKLARÁCIE TYPOV TYP ZÁZNAM TYP POLE Cvičenia SPRACOVANIE VÝRAZOV A ÚDAJOVÝCH ŠTRUKTÚR SPRACOVANIE JEDNODUCHÝCH IDENTIFIKÁTOROV A KONŠTÁNT PREKLAD VÝRAZOV PREKLAD ODKAZOV NA POLOŢKY ZÁZNAMOV PREKLAD ODKAZOV NA PRVKY POĽA S KONŠTANTNÝMI HRANICAMI Cvičenia SPRACOVANIE RIADIACICH ŠTRUKTÚR SPRACOVANIE ZLOŢENÉHO PRÍKAZU, PRÁZDNEHO PRÍKAZU A SEKVENCIE PRÍKAZOV PREKLAD PRIRAĎOVACÍCH PRÍKAZOV PREKLAD PODMIENENÝCH PRÍKAZOV Preklad príkazu if Preklad príkazu case
5 PREKLAD CYKLOV Preklad príkazu while Preklad príkazu for SKRÁTENÉ VYHODNOCOVANIE LOGICKÝCH VÝRAZOV Cvičenia SPRACOVANIE PROCEDÚR A FUNKCIÍ SPRACOVANIE DEFINÍCIÍ JEDNODUCHÝCH PODPROGRAMOV BEZ PARAMETROV SPRACOVANIE FORMÁLNYCH A SKUTOČNÝCH PARAMETROV SPRACOVANIE HLAVNÉHO PROGRAMU Cvičenia GENEROVANIE A OPTIMALIZÁCIA KÓDU ZÁKLADNÉ ÚLOHY JEDNODUCHÝ GENERÁTOR KÓDU INTERPRETATÍVNY PRÍSTUP KU GENEROVANIU KÓDU A LOKÁLNA OPTIMALIZÁCIA Optimalizácia výpočtu adresy Eliminácia redundantných výpočtov Prideľovanie registrov GLOBÁLNA OPTIMALIZÁCIA Cvičenia LITERATÚRA PRÍLOHA SYNTAX POUŢITÉHO JAZYKA... I
6 6 Zoznam použitých skratiek a symbolov AZ aktivačný záznam podprogramu AP ukazovateľ na aktivačný záznam (activation pointer) AST abstraktný syntaktický strom (abstract syntax tree) CFSM charakteristický automat syntaktického analyzátora (characteristic finite state machine) CSE spoločný podvýraz (common subexpression) DKA deterministický konečný automat DZA deterministický zásobníkový automat GNT Greibachovej normálny tvar (bezkontextovej gramatiky) KA konečný automat (deterministický alebo nedeterministický) NKA nedeterministický konečný automat OP podľa kontextu buď operačná pamäť alebo operátor PT prechodová tabuľka konečného automatu RT rozkladová tabuľka LL(1) syntaktického analyzátora SP ukazovateľ na vrchol zásobníka (stack pointer) SZ sémantický záznam ST skoková tabuľka TS tabuľka symbolov ZA zásobníkový automat (nedeterministický) # a (w) počet výskytov symbolu a v slove w Q počet prvkov mnoţiny Q w dĺţka reťazca w prázdne slovo prázdna mnoţina relácia derivácie (v gramatike) x R relácia prechodu automatu obrátený reťazec k reťazcu x prechodová funkcia (konečného alebo zásobníkového) automatu
7 7 Predslov Problematika prekladačov a kompilátorov je súčasťou študijných programov inţinierskych resp. magisterských odborov zameraných na informatiku na elektrotechnických resp. matematicko-fyzikálnych fakultách v ČR a SR. Hlavným cieľom tejto publikácie je preklenúť medzeru v dostupnej literatúre a poskytnúť pedagógom a študentom, ako aj odbornej verejnosti prakticky orientovanú učebnicu zameranú na túto problematiku. U čitateľa sa na začiatku predpokladá znalosť základov algebry (pojmy ako sú mnoţina, binárna relácia, relácia ekvivalencie, zobrazenie apod.), dobrá znalosť nejakého vyššieho procedurálneho programovacieho jazyka (najlepšie PASCALu, na príklade riadiacich a údajových štruktúr ktorého sa problematika vysvetľuje), znalosť základných údajových štruktúr a algoritmov (zásobník, front, lineárny zoznam resp. binárny vyhľadávací strom) a aspoň pasívna znalosť prog. jazyka C, pretoţe algoritmy v tejto publikácii sú zostavené v pseudokóde zaloţenom na tomto jazyku. Pre čitateľa je tieţ výhodou, ak aspoň pasívne ovláda nejaký strojovo orientovaný jazyk. Znalosť problematiky formálnych jazykov a automatov nie je na začiatku potrebná, nakoľko tie aspekty, ktoré sa priamo dotýkajú prekladačov, sú prebraté v kap. 1-3 a čiastočne 5. Na druhej strane, táto publikácia si nerobí nárok na to, aby bola plnohodnotnou učebnicou teórie formálnych jazykov a automatov, pokiaľ sa táto problematika vyučuje ako samostatný predmet. Pri výklade problematiky sa učebnica snaţí byť algoritmicky orientovanou, čím by mala významne pomôcť pri tvorbe vlastného kompilátora, či uţ ako semestrálnej práce alebo aj komerčne orientovaného. Do tohto rámca spadá aj orientácia na prostriedky pre podporu tvorby kompilátorov programy lex a yacc, ktoré sú súčasťou vývojových prostredí unixovských operačných systémov. Keďţe tieto prostriedky sú úzko viazané na prog. jazyk C, v záujme jednotného spôsobu vyjadrenia sú algoritmy v tejto učebnici prezentované v pseudokóde zaloţenom na prog. jazyku C, resp. priamo v ňom. Pre dobré zvládnutie tejto problematiky je preto potrebné mať k dispozícii nejaký počítač s UNIXom plne postačuje bezplatný LINUX. Na druhej strane, pri výklade problematiky kompilátorov sa v prevaţnej miere opierame o jazykové konštrukcie vychádzajúce z prog. jazyka PASCAL, a to pre ich jednoduchosť a všeobecnú známosť ich syntaxe a sémantiky.
8 8 Publikáciu moţno logicky rozčleniť na tri časti. Prvá časť nazvaná Teoretické východiská je zameraná teoreticky a jej cieľom je zoznámiť čitateľa so základmi teórie formálnych jazykov a automatov, ktorá je fundamentálna pre konštrukciu praktických prekladačov. V rámci toho je kap. 1 venovaná základným pojmom teórie formálnych jazykov a gramatík, kap. 2 sa zaoberá regulárnymi jazykmi a konečnými automatmi a kap. 3 sa venuje bezkontextovým jazykom a zásobníkovým automatom. Druhá časť nazvaná Všeobecné aspekty tvorby kompilátorov logicky predstavuje rozhranie medzi teoretickou prvou časťou a praktickejšou treťou časťou. V rámci toho sa kap. 4 venuje štruktúre kompilátora a lexikálnej analýze, kap. 5 syntaktickej analýze deterministických bezkontextových jazykov, kap. 6 spracovaniu sémantiky na všeobecnej úrovni, kap. 7 tabuľkám symbolov a kap. 8 organizácii pamäti počas behu programu. Tretia časť nazvaná Spracovanie jazykových konštrukcií a generovanie kódu je obsahovo zameraná na popis spracovania sémantiky najdôleţitejších údajových a riadiacich štruktúr procedurálne orientovaných programovacích jazykov (PASCAL): spracovanie deklarácií (kap. 9), výrazov a údajových štruktúr (kap. 10), riadiacich štruktúr (kap. 11), procedúr a funkcií (kap. 12). Záverom sa v kap. 13 venujeme základom generovania a optimalizácie cieľového kódu. Všetky kapitoly obsahujú na záver cvičenia, ktorých vyriešenie resp. programová realizácia napomáha úspešnému zvládnutiu problematiky. Príloha publikácie obsahuje syntax pouţitej podmnoţiny prog. jazyka PASCAL, pomocou ktorej je vedený výklad. Prílohu moţno vyuţiť aj pri zadaní semestrálnej práce. Záverom by som chcel poďakovať recenzentovi pplk. doc. RNDr. Milanovi Lehotskému, CSc. za jeho ochotu a cenné pripomienky, ktoré prispeli ku obsahovej kvalite tejto učebnice. Autor
9 9 Prvá časť: TEORETICKÉ VÝCHODISKÁ Cieľom tejto časti je zoznámiť čitateľa so základmi teórie formálnych jazykov a automatov, na ktorej je zaloţená konštrukcia moderných kompilátorov. V rámci toho je kap. 1 venovaná základným pojmom teórie formálnych jazykov a gramatík, kap. 2 sa zaoberá regulárnymi jazykmi a konečnými automatmi a kap. 3 sa venuje bezkontextovým jazykom a zásobníkovým automatom. 1. Formálne jazyky a gramatiky 1.1. Základné pojmy Formálne jazyky a gramatiky predstavujú teoretické prostriedky, pomocou ktorých je moţné popísať syntax programovacích jazykov a ako uvidíme neskôr, zohrávajú kľúčovú úlohu aj pri konštrukcii praktických prekladačov. Najprv si ale musíme vybudovať nevyhnutný pojmový aparát. Podobne ako u prirodzených jazykov aj tu je potrebné začať s prvotnými pojmami ako sú písmeno (symbol) a abeceda, z ktorých sa vytvárajú vyššie jednotky slová resp. vety [2]. Definícia 1.1 [2] Abeceda je konečná mnoţina prvkov, ktoré sa nazývajú symboly. Príklad 1.1 Abecedou môţe byť: {A, B,..., Z latinka; {0, 1,..., 9 abeceda desiatkových číslic; {and, array, begin, end, case, div, do,... mnoţina kľúčových slov jazyka PASCAL. Zo symbolov sa vytvárajú vyššie jednotky reťazce (resp. slová alebo vety všetky tri pojmy predstavujú v tomto kontexte synonymá) ako vhodné postupnosti prípustných symbolov. Definícia 1.2 Nech A je abeceda. Potom ľubovoľnú konečnú postupnosť pozostávajúcu zo symbolov z A nazývame reťazec (slovo, veta) nad abecedou A. Počet symbolov v reťazci x nazývame dĺţka reťazca a označujeme x. Ďalej si zavedieme niekoľko pojmov, ktoré priamo súvisia s reťazcami.
10 10 Definícia 1.3 Nech A je abeceda. Potom: Reťazec s nulovou dĺţkou sa nazýva prázdny reťazec a označuje sa. Ak x = a 1...a n je reťazec nad abecedou A, potom obrátený reťazec k reťazcu x je reťazec x R = a n...a 1. Ak u = a 1...a k a v = b 1...b l sú reťazce nad abecedou A, potom zreťazenie dvoch reťazcov u, v je reťazec u.v (alebo skrátene uv), u.v = a 1...a k b 1...b l. Ak x, y, z sú tri reťazce, potom x je predponou, y je podreťazcom a z je príponou reťazca xyz. Symbolom A * označujeme mnoţinu všetkých reťazcov nad abecedou A a symbolom A + = A * { mnoţinu všetkých neprázdnych reťazcov nad abecedou A. Pre prázdny reťazec je charakteristické, ţe nezávisí od abecedy. Z reťazcov môţeme ďalej vytvárať formálne jazyky, ktoré budú ďalej predmetom hlbšieho štúdia. Definícia 1.4 Ak je daná abeceda A, tak ľubovoľnú podmnoţinu L mnoţiny A * nazývame formálny jazyk nad abecedou A. Ak L =, tak L nazývame prázdny jazyk, ak L obsahuje konečný počet slov, tak L nazývame konečný jazyk. Podobne ako v prípade reťazcov môţeme definovať nad formálnymi jazykmi niektoré operácie. Definícia 1.5 Ak L 1, L 2 sú jazyky, potom ich zreťazením je jazyk L = L 1 L 2 = {xy, x L 1 y L 2. Ak L je jazyk, potom jeho n-tá mocnina L n je jazyk definovaný takto: a) L 0 = { ; b) L k+1 = LL k. Iteráciou jazyka L nazývame mnoţinu L * n L n 0 a pozitívnou iteráciou mnoţinu L 1 n n L. V tomto prípade platí, ţe L * = L + {. Príklad 1.2 Nech A = {a, b, c, d je abeceda, x, y, z sú reťazce, x = aba, y = bcd, z = a, L 1 = {a a L 2 = {ba, bb, bc, bd sú jazyky. Potom a) xy = ababcd; b) x = 3; c) y R = dcb; d) z je predponou (aj príponou) x;
11 11 e) A * = {, a, b, c, d, aa, ab, ac, ad, ba, bb, bc, bd, ca, cb, cc, cd, da, db, dc, dd, aaa, aab,...; * f) λ, a, aa,,... L1 aaa ; g) L 1 L 2 = {aba, abb, abc, abd. Ďalej sa budeme zaoberať tzv. generatívnym spôsobom špecifikácie jazyka [2], ktorý je reprezentovaný formálnym systémom gramatikou. Okrem generatívneho spôsobu špecifikácie jazyka existuje aj tzv. akceptačný spôsob špecifikácie jazyka, ktorý je zaloţený na rozličných typoch automatov a bude vysvetlený neskôr (kap. 2.2, 2.3, 3.3). Z hľadiska prekladačov je generatívny spôsob vhodný na popis syntaxe programovacích jazykov, akceptačný sa vyuţíva ako teoretický model niektorých súčastí prekladačov (lexikálny a syntaktický analyzátor, kap. 4, 5). V tejto súvislosti je treba zdôrazniť, ţe pri danom formálnom jazyku (zatiaľ chápanom ako mnoţina slov) sa môţeme podľa potreby rozhodnúť buď pre jeho špecifikáciu pomocou gramatiky alebo pomocou automatu, resp. k špecifikácii pomocou gramatiky nájsť ekvivalentnú špecifikáciu vo forme automatu a naopak (kap. 2.6, 3.4). Skôr ako pristúpime k formálnej definícii gramatiky, rozoberieme si spôsob špecifikácie jazyka generatívnym spôsobom na prirodzenom jazyku. Ako abeceda bude slúţiť mnoţina slov a bude nás zaujímať štruktúra vety. Symbolu z predchádzajúcich riadkov bude preto zodpovedať slovo jazyka a reťazcu veta jazyka. Štruktúra vety prirodzeného jazyka je definovaná gramatickými pravidlami. Beţná (zjednodušená) slovenská veta sa skladá z podmetovej časti, po ktorej nasleduje prísudková časť. Vetu teda definujeme pomocou ďalších dvoch jednotiek, ktorých význam zatiaľ nepoznáme, a preto ich musíme definovať. Podmetovú časť moţno definovať ako podstatné meno a prísudkovú časť ako sloveso, za ktorým nasleduje predmetová časť. Aby bol jazyk správne definovaný, musí tento proces byť taký, aby sme v konečnom dôsledku definovali kaţdú jednotku pomocou veličín, ktoré sú známe, prvotné, ktoré sa nakoniec objavia v skutočnej vete. Tak by sme mohli podstatné meno nahradiť skutočným podstatným menom, sloveso konkrétnym slovesom atď. [2]. Celý proces moţno pre vetu Milan píše úlohu graficky zobraziť podľa Obr Ako vidieť z obrázka, prvotné jednotky sú na najniţšej úrovni. Na odlíšenie prvotných jednotiek od jednotiek definovaných pomocou iných jednotiek pouţívame zvyčajne špeciálne ohraničujúce symboly, odlišné typy písma apod. V príklade uvedenom na Obr. 1.1 sú definované jednotky uzatvorené do zátvoriek <, >.
12 12 <veta> <podmetová časť> <prísudková časť> <podstatné meno> <sloveso> <predmetová časť> Milan píše <podstatné meno> úlohu Obr. 1.1 Gramatická štruktúra vety prirodzeného jazyka Gramatické pravidlá, pomocou ktorých definujeme jednotlivé jednotky, budeme písať v tomto tvare: <jednotka, ktorú definujeme> postupnosť (reťazec) jednotiek, pomocou ktorých definujeme jednotku na ľavej strane Vetu prirodzeného jazyka môţeme teraz definovať nasledujúcimi gramatickými pravidlami: 1. <veta> <podmetová časť> <prísudková časť> 2. <podmetová časť> <podstatné meno> 3. <podstatné meno> Milan 4. <prísudková časť> <sloveso> <predmetová časť> 5. <sloveso> píše 6. <predmetová časť> <podstatné meno> 7. <podstatné meno> úlohu Mnoţina všetkých gramatických pravidiel tvorí gramatiku jazyka. Gramatika jazyka nám umoţňuje generovať vety jazyka, ktoré sú gramaticky (syntakticky) správne. Gramatikou určujeme iba syntax jazyka, tzn. ţe určujeme prípustnú štruktúru viet jazyka a prvotné jednotky, ktoré môţeme na danom mieste pouţiť. Ak ľubovoľná veta spĺňa podmienky definované gramatikou, patrí do daného jazyka. Význam viet určuje sémantika. Syntax a sémantika navzájom súvisia. Syntax definuje štruktúru vety, ktorá je zasa základom pri určovaní jej významu [2]. Syntakticky správna veta ešte ne-
13 13 musí byť sémanticky správna. Ako uvidíme ďalej, to isté platí aj pre programovacie jazyky a ich prekladače. Podobne pri formálnych jazykoch a gramatikách budeme pracovať s objektmi, ku ktorým môţeme prísť na základe analýzy prirodzeného jazyka: sú to prvotné symboly, ktoré sa nazývajú terminálne symboly (terminály), ďalej jednotky definované pomocou iných jednotiek, ktoré sa nazývajú neterminálne symboly (neterminály) a gramatické pravidlá, ktoré sa nazývajú prepisovacie pravidlá. Okrem uvedených objektov vystupuje ešte v gramatike jeden neterminálny symbol, ktorý má význačné postavenie v tom, ţe sa z neho začína generovanie všetkých viet (v príklade na Obr. 1.1 je to <veta>). Preto sa nazýva začiatočný symbol gramatiky alebo začiatočný neterminál. Definícia 1.6 [2] Gramatika je usporiadaná štvorica G = (N, T, P, S), kde N je konečná mnoţina neterminálnych symbolov, T je konečná mnoţina terminálnych symbolov, pričom N T =, S N je začiatočný symbol gramatiky a P je mnoţina prepisovacích pravidiel, ktorá je konečnou podmnoţinou mnoţiny (N T) * N(N T) * (N T) *. Symboliku (N T) * N(N T) * (N T) * je potrebné čítať takým spôsobom, ţe ľavá strana kaţdého pravidla ((N T) * N(N T) * ) je reťazec obsahujúci aspoň jeden neterminálny symbol a pravá strana je reťazec zloţený z terminálnych aj neterminálnych symbolov, resp. pravou stranou môţe byť aj prázdny reťazec. Z dôvodu zrozumiteľnejšieho čítania ďalšieho textu, pokiaľ nebude vyslovene stanovené inak, bude platiť nasledujúca konvencia v symbolike: neterminály A, B, C, <slovo>,... (veľké písmená zo začiatku abecedy); terminály a, b, c,... (malé písmená zo začiatku abecedy); reťazce zloţené z terminálov w, x, y, z,... (malé písmená z konca abecedy); reťazce zloţené z terminálov aj neterminálov,,,... (malé grécke písmená okrem ); jeden terminálny alebo neterminálny symbol X, Y, Z,... (veľké písmená z konca abecedy); prepisovacie pravidlá ( je ľavá strana a je pravá strana pravidla);
14 14 niekoľko prepisovacích pravidiel so spoločnou ľavou stranou a jednotlivými pravými stranami 1, 2,..., n n (spoločná ľavá strana sa v zápise uvedie len raz). Príklad 1.3 Usporiadaná štvorica G = ({A, B, {a, b, P, A) s mnoţinou pravidiel P: A aab B B bba aab a aa bb b bba bbaaa je v zmysle definície Definícia 1.6 gramatika. Mnoţina {A, B je mnoţina neterminálov, mnoţina {a, b je mnoţina terminálov, mnoţina P obsahuje všetky pravidlá gramatiky a neterminál A je začiatočný symbol gramatiky. Ak si zoberieme, napríklad, pravidlo bba bbaaa, potom v súlade s definíciou pravidiel v definícii Definícia 1.6 jeho ľavú stranu (bba) môţeme formálne vyjadriť napríklad v tvare 1 A 2 ( 1 = bb, 2 = ), pričom reťazec 1 ({A, B {a, b) *, neterminál A {A, B a reťazec 2 ({A, B {a, b) * ; podobne pri pravej strane pravidla (reťazec = bbaaa) je ({A, B {a, b) *. Ďalej nás bude zaujímať, ako môţeme v gramatike odvodzovať vety z nejakého jazyka. K tomu si najprv potrebujeme zaviesť niekoľko ďalších pojmov. Definícia 1.7 Nech G = (N, T, P, S) je gramatika. Na mnoţine reťazcov zloţených z terminálnych aj neterminálnych symbolov gramatiky (N T) * definujeme reláciu derivácie (alebo krok odvodenia) nasledujúcim spôsobom: (čítaj: z reťazca je moţné priamo derivovať reťazec ), ak v P existuje pravidlo, pričom,, (N T) *, (N T) * N(N T) * Inverzná relácia k relácii derivácie sa nazýva redukcia, tzn. ţe reťazec je moţné priamo redukovať (pomocou pravidla ) na reťazec. Keďţe deriváciou reťazca dostávame ďalší reťazec, má význam hovoriť o mocnine (viacnásobnej kompozícii) relácie derivácie; týmto sa formalizuje postupná viacnásobná aplikácia prepisovacích pravidiel na nejaký reťazec. Definícia 1.8 Nech G = (N, T, P, S) je gramatika a i (N T) * pre i = 0, 1,... k. Potom hovoríme, ţe k sa dá derivovať z 0 (na k krokov), ak platí, ţe i i+1 pre
15 15 i = 0, 1, 2,... k 1. Postupnosť reťazcov 0, 1,..., k sa nazýva derivácia k z 0. Vyjadrovať ju budeme vo forme mocniny relácie v tvare 0 k k. Poznámka. Pre kaţdé (N T) * triviálne platí, ţe sa dá derivovať z (na 0 krokov). Túto skutočnosť vyuţijeme pri zostavovaní reflexívneho a tranzitívneho uzáveru relácie derivácie. Definícia 1.9 Nech G = (N, T, P, S) je gramatika. Potom tranzitívnym uzáverom relácie derivácie nazývame reláciu + definovanú na mnoţine (N T) * nasledovne: + práve vtedy, keď existuje n 1 také, ţe n a reflexívnym a tranzitívnym uzáverom relácie derivácie reláciu * definovanú * práve vtedy, keď existuje n 0 také, ţe n,, (N T) *. V prípade tranzitívneho uzáveru sú dva reťazce, zloţené z terminálnych a neterminálnych symbolov danej gramatiky v relácii (zapisujeme + ) práve vtedy, ak môţeme derivovať z na minimálne jeden krok (tzn. minimálne raz sa pouţije nejaké prepisovacie pravidlo). V prípade reflexívneho a tranzitívneho uzáveru pripúšťame aj deriváciu na 0 krokov, tzn. kaţdý reťazec (N T) * bude naviac vţdy aj v relácii sám so sebou ( * ). Príklad 1.4 Uvaţujme o gramatike z príkladu Príklad 1.3. Potom: a) A aab priama derivácia pomocou pravidla A aab; b) aab bbb priama derivácia pomocou aa bb; c) aab 3 aaaabba derivácia aab aaabb aaaabbb aaaabba; d) A + ab existuje n = 2 a derivácia A aab ab (posledný krok pomocou pouţitia pravidla A ); e) A * aabb existuje n = 3 a derivácia A aab aaabb aabb; f) aab * aab lebo aab 0 aab, avšak neplatí aab + aab, pretoţe v danej gramatike nenájdeme ţiadnu deriváciu aab z aab na minimálne jeden krok (preverte). Definícia 1.10 Nech G = (N, T, P, S) je gramatika. Potom kaţdý reťazec (N T) *, ktorý je moţno derivovať zo začiatočného neterminálu gramatiky G, sa nazýva vetná forma; formálne, je vetná forma práve vtedy, keď S *.
16 16 Príklad 1.5 V predchádzajúcom príklade sú vetnými formami napr. reťazce A, aab, aaabb, ab, aabb. Teraz uţ konečne môţeme pristúpiť k definícii jazyka špecifikovaného (alebo generovaného) formálnou gramatikou. Je to mnoţina tých reťazcov (zloţených len s terminálnych symbolov), ktoré je moţné derivovať zo začiatočného neterminálu gramatiky. Definícia 1.11 Nech G = (N, T, P, S) je gramatika. Jazykom L(G) generovaným gramatikou G nazývame mnoţinu L(G) = {w S * w, w T *. Reťazec patriaci do daného jazyka sa nazýva slovo alebo veta jazyka. Príklad 1.6 Nájdite gramatiku, ktorá generuje jazyk obsahujúci všetky správne uzátvorkované výrazy, tzn. L = {, (), (()), ()(), ((())), (())(), ()(()), ()()(), (((()))),... (vo výrazoch musí ku kaţdej ľavej zátvorke existovať zodpovedajúca pravá zátvorka). Uvaţujme o gramatike G = {{S, A, {(, ), P, S s pravidlami P: 1. S AS 2. S 3. A (S) Je zrejmé, ţe L(G) L, pretoţe v procese derivácie sa vţdy ku kaţdej ( súčasne vygeneruje zodpovedajúca ) (pravidlo 3), čo znamená, ţe kaţdé slovo, ktoré je moţné odvodiť v gramatike G, je správne uzátvorkovaný výraz. Na druhej strane musíme ešte ukázať, ţe ku kaţdému správne uzátvorkovanému výrazu vieme nájsť jeho deriváciu v gramatike G. Tu si pomôţeme matematickou indukciou vzhľadom na maximálnu úroveň vnorenia l výrazu (napr. výrazy (), ()() majú l = 1, (()()), (())(), l = 2 apod.). Nech l = 0. Potom zodpovedajúci výraz musí byť a zodpovedajúca derivácia v gramatike G je S. Predpokladajme teraz, ţe deriváciu vieme nájsť ku všetkým výrazom s maximálnou úrovňou vnorenia l k (indukčný predpoklad). Nech w je výraz s l = k + 1. w si najprv rozdelíme na segmenty w 1...w n, pričom kaţdý segment predstavuje správne uzátvorkovaný výraz a úroveň vnorenia aspoň jedného segmentu je k + 1. Bez straty na všeobecnosti budeme predpokladať, ţe je to segment w 1. Slovo w potom môţeme vygenerovať nasledujúcou deriváciou:
17 17 S AS AAS... AA... A (S)A...A... w 1 A...A... w 1...w n n Vyuţili sme pri tom skutočnosť, ţe po odstránení krajných zátvoriek zo segmentu w 1 sa jeho úroveň zmenší o 1, čo znamená, ţe na generovanie jeho vnútra z neterminálu S vo vetnej forme (S)A...A môţeme pouţiť indukčný predpoklad. Ak je úroveň vnorenia ďalšieho segmentu k + 1, pouţijeme rovnaký postup, ak je menšia alebo rovná k, môţeme priamo pouţiť indukčný predpoklad atď. Napríklad, ku výrazu (()())() moţno zostrojiť deriváciu S AS AAS AA (S)A (AS)A (AAS)A (AA)A... ((S)(S))(S)... (()())(). Jeden jazyk nemusí byť generovaný len jedinou gramatikou, preto má zmysel na základe toho zaviesť pojem ekvivalentnej gramatiky. Ekvivalentné gramatiky budeme vyuţívať v kapitolách 3.2 a Definícia 1.12 Gramatiky G 1, G 2, pre ktoré platí L(G 1 ) = L(G 2 ), sa nazývajú ekvivalentné gramatiky Klasifikácia gramatík Na základe tvaru prepisovacích pravidiel sú definované určité hierarchické triedy gramatík a jazykov. Definícia 1.13 [2] Nech G = (N, T, P, S) je gramatika. Potom hovoríme, ţe G je a) bez ohraničenia alebo typu 0, ak na prepisovacie pravidlá nekladieme ţiadne obmedzenia; b) kontextová alebo typu 1, ak kaţdé prepisovacie pravidlo z P má tvar, kde (N T) * N(N T) *, (N T) + a platí (dĺţka pravej strany pravidla nesmie byť menšia ako dĺţka ľavej strany); Iná definícia pripúšťa pravidlá tvaru A γ,,, γ (N T) *, A N; v tomto prípade reťazce, predstavujú kontext, pri ktorom sa neterminál A môţe prepísať na reťazec γ; c) bezkontextová alebo typu 2, ak kaţdé prepisovacie pravidlo z P má tvar A, kde A N, (N T) * ; názov pramení z toho, ţe pri výbere pravidla pre neterminál A sa neberie do úvahy jeho aktuálny kontext vo vetnej forme;
18 18 d) regulárna alebo typu 3, ak kaţdé prepisovacie pravidlo z P má jeden z tvarov A bb alebo A b, kde A, B N, b T. Niekedy je potrebné špecifikovať jazyk L {, teda jazyk s prázdnym slovom, aj pre jazyky špecifikované typmi gramatík, v ktorých sme nepripustili pouţitie na pravej strane pravidiel (regulárne a kontextové). Tento problém sa zvykne riešiť pouţitím rozšírenej gramatiky, ktorú k danej gramatike zostrojíme pridaním nového začiatočného symbolu S a prepisovacích pravidiel S S a S. V tomto zmysle, ak je jazyk L kontextový, bezkontextový alebo regulárny, aj jazyk L { je kontextový, bezkontextový alebo regulárny. Gramatika uvedená v príklade Príklad 1.3 je gramatika bez obmedzení, v príklade Príklad 1.6 bezkontextová gramatika. Z hľadiska konštrukcie prekladačov nás budú zaujímať regulárne a bezkontextové gramatiky. Keďţe týmito gramatikami sa budeme podrobne zaoberať v kapitolách 2 a 3, ďalšie príklady na ne na tomto mieste vynechávame, resp. nechávame ako cvičenie. Vzťahy gramatík podľa uvedenej klasifikácie sú nasledovné: a) kaţdá regulárna gramatika je bezkontextová; b) kaţdá bezkontextová gramatika je kontextová; c) kaţdá kontextová gramatika je gramatika bez obmedzení. Definícia 1.14 Jazyk nazývame postupne regulárny, bezkontextový, kontextový alebo bez obmedzení, ak ho moţno generovať regulárnou, bezkontextovou, kontextovou gramatikou alebo gramatikou bez obmedzení. Cvičenia 1. Je daná gramatika G = ({S, A, B, {a, b, c, P, S) s pravidlami P: S BAB ABA A AB aa ab B BA b a) stanovte typ gramatiky; b) nájdite deriváciu slova abbbab v danej gramatike. 2. Nájdite gramatiku, ktorá generuje daný jazyk: a) L 1 = {aw w {a, b * ; b) L 2 = {wba w {a, b * ;
19 19 c) L 3 = {xaby x, y {a, b * ; d) L 4 = mnoţina všetkých čísel v pohyblivej rádovej čiarke (napr. 0.25, 45.78, 58.12E 5,...); e) L 5 = {ww R w {a, b * ; f) L 6 = {a n b n n {0, 1, 2,...; g) L 7 = {a n b n c k n, k {1, 2,...; h) L 8 = {aba n b n a n {0, 1, 2,...; i) L 9 = {ww w {a, b * ; (pomôcka: hľadajte kontextovú gramatiku); j) L 10 = {a n b n c n n {1, 2,...; (pomôcka: hľadajte kontextovú gramatiku); k) L 11 = {w w {a, b * a zároveň # a (w) = # b (w), tzn. do jazyka budú patriť všetky reťazce zloţené zo symbolov a, b, v ktorých je počet symbolov a rovný počtu symbolov b ; (pomôcka: hľadajte bezkontextovú gramatiku, inšpirujte sa príkladom Príklad 1.6).
20 20 2. Regulárne jazyky a konečné automaty 2.1. Regulárne jazyky Ako uţ bolo uvedené v definícii Definícia 1.14, jazyk je regulárny, ak existuje nejaká regulárna gramatika, ktorá ho generuje. Hoci je trieda regulárnych jazykov pomerne obmedzená, z hľadiska konštrukcie prekladačov majú regulárne jazyky a gramatiky veľký význam. Pomocou nich moţno popísať základné symboly programovacích jazykov ako sú identifikátory, konštanty, kľúčové slová, operátory a separátory. Uveďme si na tomto mieste dva príklady regulárnych jazykov. Príklad 2.1 Nech je daná gramatika G 1 = ({S, B, C, D, {a, +, P, S), pričom mnoţina P obsahuje pravidlá: S a ad D +B +C B a C ad Potom L(G 1 ) = {a, a+a, a+a+a,... Príklad 2.2 Nech je daná gramatika G 2 = ({S, C, D, {+,, 0, 1, 2,..., 9, P, S), pričom P: S +C C 1D 2D... 9D C 1D 2D... 9D D 0D 1D... 9D Potom jazyk L(G 2 ) bude tvorený všetkými celočíselnými konštantami (prípadne so znamienkom) bez nevýznamných núl zľava Deterministické konečné automaty V predchádzajúcej kapitole sme sa zaoberali gramatikami ako prostriedkami špecifikácie formálneho jazyka generatívnym spôsobom, tzn. ukázali sme ako generovať (syntakticky správne) vety daného jazyka. Pri konštrukcii niektorých súčastí prekladačov sa ale vyuţíva tzv. akceptačný spôsob špecifikácie jazyka, tzn. špecifikácia pomocou automatu. Automat neformálne môţeme popísať ako zariadenie, ktoré do-
21 21 stáva na vstup reťazce zloţené z terminálnych symbolov. Zariadenie daný vstupný reťazec spracuje a po konečnom čase (počte operácií) oznámi, či tento patrí do jazyka alebo nie (hovoríme, ţe automat slovo akceptuje resp. neakceptuje). Začneme od najjednoduchších zariadení tohoto typu deterministických konečných automatov. Definícia 2.1 [2] Pod deterministickým konečným automatom (DKA) M rozumieme usporiadanú päticu M = (Q, T,, q 0, F), kde Q konečná mnoţina stavov automatu; T konečná mnoţina prípustných vstupných symbolov; prechodová funkcia automatu, : Q T Q; q 0 začiatočný stav automatu, q 0 Q; F mnoţina koncových (alebo akceptujúcich) stavov automatu, F Q. Schému konečného automatu môţeme vidieť na Obr Môţeme si predstaviť, ţe konečný automat je zariadenie, ktoré sa skladá zo vstupnej pásky a konečnostavovej riadiacej jednotky. Na vstupnej páske je zapísané slovo, o ktorom máme rozhodnúť, či patrí do jazyka. Slovo sa musí skladať zo symbolov z mnoţiny T. Konečnostavová riadiaca jednotka sa vţdy nachádza v jednom z mnoţiny stavov Q a vidí jeden aktuálny vstupný symbol na páske. Konečný automat pracuje diskrétne po jednotlivých krokoch. V kaţdom kroku prečíta aktuálny symbol zo vstupnej pásky, presunie čítaciu hlavu na nasledujúci symbol a prejde do nového stavu. Nový stav sa určí na základe pôvodného stavu a prečítaného vstupného symbolu a formálne túto činnosť popisuje prechodová funkcia. vstupná páska a 1 a 2... a n konečnostavová riadiaca jednotka Obr. 2.1 Schéma konečného automatu
22 22 Na začiatku výpočtu je čítacia hlava nastavená na prvý symbol slova a konečnostavová riadiaca jednotka sa nachádza v stave q 0. Výpočet sa skončí, keď sa spracuje celé vstupné slovo. Automat slovo akceptuje, ak sa mu podarí spracovať celé vstupné slovo, pričom skončí v akceptujúcom stave, tzn. v niektorom stave z mnoţiny F. Poďme si teraz uvedené skutočnosti sformalizovať. Definícia 2.2 [2] Nech M = (Q, T,, q 0, F) je konečný automat. Usporiadanú dvojicu (q, w) Q T * nazývame konfigurácia konečného automatu M. Konfiguráciu (q 0, w), kde w je vstupný reťazec, nazývame začiatočná konfigurácia automatu M, konfiguráciu (q, ), kde q F, koncová (alebo akceptujúca) konfigurácia automatu M. Konfiguráciu konečného automatu môţeme interpretovať ako momentálny stav výpočtu, kde q reprezentuje momentálny stav automatu a w doteraz nespracovanú časť vstupu. Prvý symbol reťazca w zároveň predstavuje symbol, ktorý momentálne vidí konečnostavová riadiaca jednotka. Definícia 2.3 [2] Nech M = (Q, T,, q 0, F) je deterministický konečný automat. Nad mnoţinou konfigurácií Q T * definujeme reláciu prechodu (alebo krok výpočtu) DKA takto: Nech q, p Q, w T *, a T. Potom (q, aw) (p, w) práve vtedy, keď (q, a) = p. Definícia relácie prechodu stanovuje pravidlá, ako moţno pri výpočte prejsť z jednej konfigurácie automatu do druhej. q reprezentuje pôvodný stav, p nový stav po prechode, a aktuálny symbol na vstupe, w zvyšok vstupu a prechodovú funkciu. Keďţe po prechode do novej konfigurácie sa čítacia hlava posunie o jeden symbol doprava, v novej konfigurácii uţ bude ako neprečítaná časť vstupu vystupovať len w. Definícia 2.4 Nech M = (Q, T,, q, F) je konečný automat. Postupnosť konfigurácií (q 0, w 0 ), (q 1, w 1 ),..., (q n, w n ) takých, ţe (q 0, w 0 ) (q 1, w 1 )... (q n, w n ), q i Q, w i T *, i = 0, 1,..., n sa nazýva výpočet konečného automatu M z (q 0, w 0 ) do (q n, w n ). Výpočet budeme podobne ako v prípade derivácie v gramatikách vyjadrovať pomocou mocniny relácie v tvare (q 0, w 0 ) n (q n, w n ).
23 23 Tranzitívny uzáver relácie budeme označovať symbolom + a reflexívny a tranzitívny uzáver symbolom *. Dve konfigurácie budú v relácii (q, w) + (p, x), ak existuje k 1 také, ţe (q, w) k (p, x) a v relácii (q, w) * (p, x), ak existuje k 0 také, ţe (q, w) k (p, x). Definícia 2.5 [2] Nech M = (Q, T,, q 0, F) je konečný automat. Potom hovoríme, ţe stav q Q je dosiahnuteľný, ak existuje výpočet (q 0, w) n (q, ) pre nejaké n 0, w T *. Ak taký výpočet neexistuje, stav q je nedosiahnuteľný. Definícia 2.6 Nech M = (Q, T,, q 0, F) je konečný automat. Potom jazyk L(M) rozpoznávaný (prijímaný, špecifikovaný, akceptovaný) konečným automatom M je mnoţina L(M) = {w (q 0, w) * (q, ), w T *, q F. Poznámka. Prechodová funkcia môţe predstavovať aj tzv. neúplné zobrazenie, čo v tomto prípade znamená, ţe existuje taká usporiadaná dvojica (q, a), q Q, a T (q predstavuje aktuálny stav automatu a a aktuálny vstupný symbol), pre ktorú nie je určený nasledujúci stav automatu. Jazyk rozpoznávaný daným automatom je teda taká mnoţina reťazcov zo vstupnej abecedy, pre ktoré existuje výpočet končiaci v akceptujúcej konfigurácii. Ak automat neakceptuje reťazec, mohla nastať jedna z dvoch situácií: a) automat spracoval celé slovo, ale neskončil v akceptujúcom stave; b) automat sa pri spracovávaní slova zasekol, tzn. dostal sa do stavu, z ktorého pre aktuálny začiatočný symbol nespracovanej časti reťazca nemá definovaný prechod ( ). K takejto situácii by došlo aj vtedy, keby dostal na vstup symbol, ktorý nepatrí do mnoţiny T. Táto moţnosť môţe nastať len vtedy, ak je neúplné zobrazenie. Príklad 2.3 Je daný konečný automat M = {{q 0, q 1, q 2, q 3, {0, 1, q 0,, {q 0, pričom prechodová funkcia je určená prechodovou tabuľkou (PT): 0 1 q 0 q 2 q 1 q 1 q 0 q 3 q 2 q 3 q 0 q 3 q 1 q 2
24 24 Akceptujúci výpočet na reťazci prebehne nasledovne: (q 0, ) (q 1, ) (q 0, ) (q 1, 01111) (q 0, 1111) (q 1, 111) (q 3, 11) (q 2, 1) (q 0, ) Reťazec 001 akceptovaný nebude, pretoţe výpočet (q 0, 001) (q 2, 01) (q 3, 1) (q 2, ) skončí v stave, ktorý nie je akceptujúci; pri spracovaní reťazca 002 sa automat zasekne a preto tento tieţ akceptovaný nebude: (q 0, 002) (q 2, 02) (q 3, 2). Konečný automat môţeme reprezentovať aj tzv. prechodovým diagramom. Prechodový diagram je orientovaný graf, v ktorom sú vrcholy ohodnotené stavmi a hrany symbolmi vstupnej abecedy tak, ţe ak (q, t) = p, tak existuje orientovaná hrana z q do p, ktorá je ohodnotená terminálom t. Začiatočný stav je označený šípkou a koncové stavy sú označené dvojitým krúţkom. Reprezentácia konečného automatu z príkladu Príklad 2.3 je na Obr q 0 0 q q 2 1 q 3 Obr. 2.2 Prechodový diagram konečného automatu Poznámka. V prípade, ţe prechodová funkcia predstavuje neúplné zobrazenie, budú príslušné poloţky v prechodovej tabuľke prázdne (pozri napr. Príklad 2.4 v nasledujúcej kapitole) Nedeterministické konečné automaty Všeobecnejším typom konečného automatu je nedeterministický konečný automat. Jeho základnou vlastnosťou je, ţe momentálny stav a aktuálny symbol vstupného re-
25 25 ťazca neurčujú jednoznačne stav, do ktorého automat môţe prejsť (automat má na výber viacero stavov, do ktorých môţe prejsť). Druhým rozdielom je, ţe automat môţe vykonávať kroky nielen na terminálne symboly, ale aj na prázdne slovo. Z formálneho hľadiska sa oproti DKA zmení iba prechodová funkcia, ktorá bude usporiadanej dvojici (stav, symbol na vstupe) priraďovať mnoţinu stavov, do ktorých môţe automat prejsť (symbolom na vstupe môţe byť aj, čo predstavuje situáciu, keď automat ponechá čítaciu hlavu na pôvodnom symbole a pri kroku výpočtu nebude brať aktuálny symbol na vstupe do úvahy). Definícia 2.7 Pod nedeterministickým konečným automatom (NKA) M rozumieme usporiadanú päticu M = (Q, T,, q 0, F), kde Q konečná mnoţina stavov automatu; T konečná mnoţina prípustných vstupných symbolov; prechodová funkcia automatu, : Q (T { ) 2 Q, pričom 2 Q označuje mnoţinu všetkých podmnoţín mnoţiny Q; q 0 začiatočný stav automatu, q 0 Q; F mnoţina koncových (alebo akceptujúcich) stavov automatu, F Q. Činnosť NKA budeme aj teraz definovať pomocou konfigurácií. Význam konfigurácie, začiatočná a akceptujúca konfigurácia zostávajú rovnaké ako pri DKA. Keďţe sa však zmenila prechodová funkcia, treba zmeniť aj reláciu prechodu. Definícia 2.8 Nech M = (Q, T,, q 0, F) je nedeterministický konečný automat. Nad mnoţinou konfigurácií Q T * definujeme reláciu prechodu (alebo krok výpočtu) NKA takto: Nech q, p Q, w T *, a T {. Potom (q, aw) (p, w) práve vtedy, keď p (q, a). Z uvedeného vyplýva, ţe ak automat realizuje krok na, prechodom sa zmení len jeho stav a neprečítaná časť vstupu ostane nezmenená ( je predponou kaţdého reťazca). Automat môţe prejsť na symbol na vstupe do ľubovoľného zo stavov, ktorý pre danú kombináciu (stav, symbol na vstupe) udáva prechodová funkcia. Akceptovanie reťazca NKA aj jazyk špecifikovaný NKA sú definované rovnakým spôsobom ako pre DKA, tzn. w je akceptované, ak (q 0, w) * (q, ) pre nejaké q F.
26 26 Príklad 2.4 Je daný automat M = ({q 0, q 1, q f, {+,, 0, 1, 2,..., 9,, q 0, {q f ), kde je určená PT q 0 {q 1 {q 1 {q 1, q f q 1 {q 1, q f q f (symbolom sú oddelené alternatívne vstupné symboly). Pri spracovávaní reťazca +123 existujú nasledujúce moţnosti prechodov (pri prvom kroku môţeme vidieť prechod z (q 0, +123) do (q 1, +123) na ): (q 1, 3) (q 1, ) (q 1, 23) (q f, ) (q 1, 123) (q f, 3) (q 0, +123) (q f, 23) (q 1, +123) Automat reťazec akceptuje, pretoţe existuje výpočtová cesta, ktorý končí v akceptujúcej konfigurácii (je vyznačená podtrhnutými konfiguráciami). Poznámka. V prípade NKA si moţno výpočet predstaviť ako strom, ktorého koreň tvorí začiatočná konfigurácia a ktorý sa bude vetviť vţdy vtedy, keď automat môţe prejsť do viacerých stavov. Slovo bude akceptované vtedy, ak aspoň jedna zo všetkých moţných výpočtových ciest končí v akceptujúcej konfigurácii, tzn. keď aspoň jeden list stromu obsahuje akceptujúcu konfiguráciu. NKA si môţeme tieţ predstaviť ako zariadenie, ktoré sa z hľadiska prechodu do nového stavu vţdy dokáţe správne rozhodnúť, tzn. rozhodnúť sa pre tú z moţností prechodu do nového stavu (ak existuje), ktorá leţí na ceste k nejakej akceptujúcej konfigurácii. NKA neakceptuje slovo vtedy, ak ţiadna výpočtová cesta nekončí akceptujúcou konfiguráciou. Keďţe máme dva typy konečných automatov, vzniká prirodzená otázka, aký je medzi nimi vzťah z hľadiska akceptovanej triedy jazykov Vzťah medzi deterministickými a nedeterministickými konečnými automatmi Keď si porovnáme definíciu DKA a NKA a relácie prechodu u obidvoch automatov, zistíme, ţe DKA je vlastne špeciálnym prípadom NKA, kde (q, a) 1 a a.
27 27 Trieda jazykov akceptovaných deterministickými konečnými automatmi musí byť preto podtriedou jazykov akceptovaných nedeterministickými konečnými automatmi. Zaujímavé je, ţe platí aj obrátená veta. Veta 2.1 Nech L je jazyk akceptovaný nejakým NKA. Potom existuje DKA, ktorý akceptuje ten istý jazyk L. Dôkaz. K danému NKA M = (Q, T,, q 0, F) skonštruujeme DKA M = (Q, T,, q 0, F ), ktorý bude akceptovať ten istý jazyk. Hlavná myšlienka pri konštrukcii automatu M je, aby skonštruovaný DKA bol schopný sledovať všetky výpočtové cesty, po ktorých by mohol ísť pôvodný NKA M. Dosiahneme to nasledujúcim spôsobom: Stavy q Q automatu M budeme označovať v tvare {q 1, q 2,..., q i, kde q k Q pre k = 1, 2,..., i. Začiatočný stav q 0 = closure({q 0, M), kde operácia uzáveru closure dodá do mnoţiny stavov všetky tie ďalšie stavy, do ktorých je moţné sa dostať z pôvodnej mnoţiny stavov na. Algoritmus operácie closure() je nasledujúci: typedef struct NKA { množina_stavov Q; množina_terminálov T; prechodová_funkcia_nka ; stav q 0 ; množina_stavov F; NKA; typedef struct DKA { množina_stavov Q; množina_terminálov T; prechodová_funkcia_dka ; stav q 0 ; množina_stavov F; DKA; void closure(množina_stavov& S, NKA M) { do { zmena = FALSE; if (existuje taký stav q M.Q, ţe q S a zároveň q M. (p, ) pre nejaké p S) { Pridaj q do S; zmena = TRUE;
28 28 while (zmena); Algoritmus 2.1 Uzáver mnoţiny stavov NKA Mnoţinovú symboliku sme zvolili zámerne, pretoţe stavy konštruovaného DKA si môţeme predstaviť ako mnoţiny stavov pôvodného NKA. Mnoţina koncových stavov F je tvorená mnoţinou všetkých takých stavov z Q, ktoré obsahujú aspoň jeden koncový stav automatu M. Tým sa zabezpečí, ţe DKA bude akceptovať reťazec práve vtedy, keď aspoň jedna z výpočtových ciest u NKA viedla ku akceptujúcej konfigurácii. Prechodovú funkciu budeme definovať takto: i, (2.1) ({q 1, q 2,..., q i, a) = closure δ q j, a, M j 1 tzn. DKA M prejde do stavu, ktorý bude reprezentovať všetky stavy pôvodného automatu M, do ktorých by sa automat M dostal prechodom zo stavov q 1, q 2,..., q i na vstupný symbol a. Podobne ako pri vytvorení začiatočného stavu automatu M, aj teraz musíme mnoţinu stavov obohatiť o tie stavy, do ktorých je moţné sa dostať z pôvodných stavov prechodom na (lebo definícia DKA kroky na nepripúšťa). Formálnu verifikáciu toho, ţe takto skonštruovaný DKA M akceptuje nejaké slovo w práve vtedy, keď ho akceptuje pôvodný NKA M, nechávame na čitateľa. Poznámka. Pri praktických úlohách, keď chceme ku NKA nájsť ekvivalentný DKA, nemusíme vţdy pracovať so všetkými stavmi tvaru {q 1, q 2,..., q i, kde q k Q pre k = 1, 2,..., i, ktorých celkový počet je 2 Q, kde Q predstavuje počet stavov v mnoţine Q, ale len s tými, do ktorých sa novokonštruovaný automat môţe dostať. Mnoţinu stavov a prechodovú funkciu ekvivalentného DKA môţeme skonštruovať podľa nasledujúceho algoritmu: void vytvor_deterministický(nka M, DKA& M ) { Zaraď stav closure({m.q 0, M) do PT automatu M a označ ho ako nespracovaný; while (v PT existujú nespracované stavy) { Vyber z PT jeden nespracovaný stav q a označ ho ako spracovaný; for (všetky a T) { Urči stav p = (q, a) podľa (2.1); if (p sa nenachádza v PT)
29 29 Zaraď p do PT a označ ho ako nespracovaný; Zaznamenaj v PT prechod zo stavu q do stavu p na symbol a; Mnoţina stavov M.Q bude tvorená stavmi vytvorenými v PT; Mnoţiny vstupných symbolov sú totoţné, tzn. M.T = M.T; Prechodová funkcia M. je určená vytvorenou PT; Začiatočný symbol M.q 0 = closure({m.q 0, M); Mnoţina koncových stavov M.F je tvorená mnoţinou všetkých takých stavov z M.Q, ktoré obsahujú aspoň jeden koncový stav automatu M (M.F); Algoritmus 2.2 Vytvorenie ekvivalentného DKA Poznámka. V prípade, ţe východiskový NKA neobsahuje prechody na, môţeme v prechádzajúcom algoritme vynechať aplikáciu uzáverovej operácie closure(). Príklad 2.5 Daný je NKA M = ({q 0, q 1, q 2, q 3, q f, {0, 1,, q 0, {q f ), kde prechodové zobrazenie je definované takto: Zostrojte k nemu ekvivalentný DKA. 0 1 q 0 {q 0, q 1 {q 0, q 2 q 1 {q 1, q 3 {q 1 q 2 {q 2 {q 2, q f q 3 {q f q f Poďme postupne zostavovať mnoţinu stavov DKA a PT podľa algoritmu Algoritmus 2.2. Keďţe pôvodný NKA obsahuje aj prechody na, musíme pri konštrukcii stavov ekvivalentného DKA aplikovať operáciu closure(). Pred vstupom do cyklu bude PT vyzerať takto: spracovaný 0 1 {q 0 n Po prvom prechode cyklu bude PT vyzerať takto: spracovaný 0 1 {q 0 a {q 0, q 1 {q 0, q 2 {q 0, q 1 n {q 0, q 2 n Po druhom prechode cyklom bude PT vyzerať takto (q f sa dostalo do stavu {q 0, q 1, q 3 q f výsledkom uzáverovej operácie closure({q 0, q 1, q 3 )):
30 30 spracovaný 0 1 {q 0 a {q 0, q 1 {q 0, q 2 {q 0, q 1 a {q 0, q 1, q 3 q f {q 0, q 1, q 2 {q 0, q 2 n {q 0, q 1, q 3, q f n {q 0, q 1, q 2 n Po treťom prechode cyklom bude PT vyzerať takto (pridávaný stav {q 0, q 1, q 2 sa uţ v PT nachádzal): spracovaný 0 1 {q 0 a {q 0, q 1 {q 0, q 2 {q 0, q 1 a {q 0, q 1, q 3, q f {q 0, q 1, q 2 {q 0, q 2 a {q 0, q 1, q 2 {q 0, q 2, q f {q 0, q 1, q 3, q f n {q 0, q 1, q 2 n {q 0, q 2, q f n Na konci celého procesu získame nasledujúcu PT: spracovaný 0 1 {q 0 a {q 0, q 1 {q 0, q 2 {q 0, q 1 a {q 0, q 1, q 3, q f {q 0, q 1, q 2 {q 0, q 2 a {q 0, q 1, q 2 {q 0, q 2, q f {q 0, q 1, q 3, q f a {q 0, q 1, q 3, q f {q 0, q 1, q 2 {q 0, q 1, q 2 a {q 0, q 1, q 2, q 3, q f {q 0, q 1, q 2, q f {q 0, q 2, q f a {q 0, q 1, q 2 {q 0, q 2, q f {q 0, q 1, q 2, q 3, q f a {q 0, q 1, q 2, q 3, q f {q 0, q 1, q 2, q f {q 0, q 1, q 2, q f a {q 0, q 1, q 2, q 3, q f {q 0, q 1, q 2, q f Mnoţina akceptujúcich stavov F = {{q 0, q 1, q 3, q f, {q 0, q 2, q f, {q 0, q 1, q 2, q 3, q f, {q 0, q 1, q 2, q f. Výsledný DKA bude obsahovať 8 stavov, zatiaľ čo pôvodný NKA obsahoval 5 stavov. Túto skutočnosť môţeme zovšeobecniť tvrdením, ţe ekvivalentný DKA vţdy bude obsahovať viacej stavov ako pôvodný NKA, v krajnom prípade tento nárast počtu stavov môţe byť aţ exponenciálny. Výhodou NKA z tohto pohľadu je, ţe pri rovnakom akceptovanom jazyku má jednoduchšiu štruktúru ako ekvivalentný DKA. Nedeterministické konečné automaty budeme pre ich jednoduchšiu štruktúru vyuţívať ako medzistupeň pri konštrukcii lexikálneho analyzátora v kap. 4.2.
31 Minimalizácia počtu stavov deterministických konečných automatov Ďalším problémom, ktorým sa budeme zaoberať, je otázka minimalizácie počtu stavov DKA. Spomedzi všetkých DKA akceptujúcich nejaký regulárny jazyk L existuje jediný DKA M L, ktorý má najmenší počet stavov zo všetkých automatov akceptujúcich jazyk L [2]. Teraz si ukáţeme, ako môţeme takýto automat zostrojiť. Nech M = (Q, T,, q 0, F) je ľubovoľný DKA taký, ţe L(M) = L. Najprv vylúčime z mnoţiny stavov všetky tie stavy, ktoré sú nedosiahnuteľné zo stavu q 0. Tieto sú z hľadiska jazyka akceptovaného automatom zbytočné, pretoţe sa nemôţu objaviť v ţiadnom výpočte. Definícia 2.9 Nech M = (Q, T,, q 0, F) je konečný automat (deterministický alebo nedeterministický). Stav q Q nazývame dosiahnuteľný zo stavu p Q, ak existuje taký reťazec w T *, ţe (p, w) * (q, ). Ak stav q nie je dosiahnuteľný zo stavu p, nazýva sa nedosiahnuteľný zo stavu p. Mnoţinu všetkých stavov dosiahnuteľných zo stavu q 0 môţeme určiť pomocou algoritmu Algoritmus 2.3. Tento vyhľadá postupne všetky stavy, ktoré sú dosiahnuteľné zo stavu q 0. Platí, ţe po i-tom prechode cyklom bude mnoţina dosiahnuteľné obsahovať tie stavy, ktoré sú dosiahnuteľné z q 0 na maximálne i krokov výpočtu. Algoritmus končí vtedy, keď uţ do mnoţiny dosiahnuteľných stavov nemôţeme pridať ţiadny nový stav. Keďţe mnoţina stavov je konečná, algoritmus musí raz skončiť. void zisti_dosiahnuteľné_z_q 0 ( množina_stavov& dosiahnuteľné, DKA M) { množina_stavov nové; dosiahnuteľné = {q 0 ; do { zmena = TRUE; nové = ; for (všetky a M.T a všetky q dosiahnuteľné) nové = nové M. (p, a); if (mnoţina stavov nové nie je celá obsiahnutá v dosiahnuteľné) dosiahnuteľné = dosiahnuteľné nové; else zmena = FALSE;
32 32 while (zmena); Algoritmus 2.3 Algoritmus pre zistenie stavov dosiahnuteľných zo stavu q 0 Predpokladajme ďalej, ţe sme z automatu odstránili všetky stavy nedosiahnuteľné zo stavu q 0 (okrem Q je ich potrebné odstrániť aj z a F). Ďalej budeme potrebovať nasledujúcu definíciu: Definícia 2.10 [2] Nech M = (Q, T,, q 0, F) je DKA a q 1, q 2 Q sú jeho dva rôzne stavy. Potom budeme hovoriť, ţe: a) reťazec u T * rozlišuje stavy q 1 a q 2 vtedy, ak (q 1, u) * (q 3, ), (q 2, u) * (q 4, ), pričom jeden zo stavov q 3, q 4 patrí do F a druhý nie; b) stavy q 1 a q 2 sú k-nerozlíšiteľné (zapisujeme q 1 k q 2 ), ak neexistuje reťazec u s dĺţkou u k, ktorý stavy q 1 a q 2 rozlišuje; c) stavy q 1 a q 2 sú nerozlíšiteľné (zapisujeme q 1 q 2 ), ak sú k-nerozlíšiteľné pre ľubovoľné k 0. Ľahko sa moţno presvedčiť o tom, ţe je relácia ekvivalencie na mnoţine stavov Q. Princíp konštrukcie redukovaného automatu je zaloţený na stotoţnení navzájom nerozlíšiteľných stavov pôvodného DKA. Ak sú dva stavy nerozlíšiteľné, potom ak by sa výpočet dostal do ľubovoľného z nich, akceptovanie alebo neakceptovanie v prípade rovnakej neprečítanej časti vstupného reťazca by muselo v obidvoch prípadoch dopadnúť rovnako. Na identifikáciu všetkých vzájomne nerozlíšiteľných stavov automatu rozdeľme najprv stavy automatu M na dve skupiny (tzv. zlúčené stavy): do prvého zlúčeného stavu budú patriť všetky koncové stavy a do druhého všetky ostatné stavy (v obidvoch zlúčených stavoch sa budú nachádzať stavy pôvodného automatu M, ktoré sú navzájom 0-nerozlíšiteľné). V ďalších krokoch sa budú tieto zlúčené stavy ďalej deliť v prípade, ţe po prechode na nejaký symbol a T sa všetky stavy automatu M patriace do nejakého zlúčeného stavu nedostanú do rovnakého zlúčeného stavu (Algoritmus 2.4). Algoritmus skončí vtedy, keď uţ nie je potrebné zlúčené stavy ďalej deliť, tzn. keď zlúčené stavy obsahujú vzájomne nerozlíšiteľné stavy. typedef struct množina_zlúčených_stavov { // pole skupín (mnoţín) stavov konečného automatu (tzv. zlúčených stavov) množina_stavov *S;
Gramatická indukcia a jej využitie
a jej využitie KAI FMFI UK 29. Marec 2010 a jej využitie Prehľad Teória formálnych jazykov 1 Teória formálnych jazykov 2 3 a jej využitie Na počiatku bolo slovo. A slovo... a jej využitie Definícia (Slovo)
Διαβάστε περισσότεραLR(0) syntaktické analyzátory. doc. RNDr. Ľubomír Dedera
LR0) syntaktické analyzátory doc. RNDr. Ľubomír Dedera Učebné otázky LR0) automat a jeho konštrukcia Konštrukcia tabuliek ACION a GOO LR0) syntaktického analyzátora LR0) syntaktický analyzátor Sám osebe
Διαβάστε περισσότεραGramatiky. Kapitola Úvod. 1.2 Návrh gramatík
Kapitola 1 Gramatiky 1.1 Úvod Základnými spôsobmi reprezentácie jazykov sú rozpoznávanie a generovanie. Gramatika je reprezentáciou jazyka generovaním. Gramatika je konečná množina pravidiel, ktorých postupnou
Διαβάστε περισσότεραAutomaty a formálne jazyky
Automaty a formálne jazyky Podľa prednášok prof. RNDr. Viliama Gefferta, DrSc., PrírF UPJŠ Dňa 8. februára 2005 zostavil Róbert Novotný, r.novotny@szm.sk. Typeset by LATEX. Illustrations by jpicedit. Úvodné
Διαβάστε περισσότεραMatematika Funkcia viac premenných, Parciálne derivácie
Matematika 2-01 Funkcia viac premenných, Parciálne derivácie Euklidovská metrika na množine R n všetkých usporiadaných n-íc reálnych čísel je reálna funkcia ρ: R n R n R definovaná nasledovne: Ak X = x
Διαβάστε περισσότεραEkvačná a kvantifikačná logika
a kvantifikačná 3. prednáška (6. 10. 004) Prehľad 1 1 (dokončenie) ekvačných tabliel Formula A je ekvačne dokázateľná z množiny axióm T (T i A) práve vtedy, keď existuje uzavreté tablo pre cieľ A ekvačných
Διαβάστε περισσότεραMatematika prednáška 4 Postupnosti a rady 4.5 Funkcionálne rady - mocninové rady - Taylorov rad, MacLaurinov rad
Matematika 3-13. prednáška 4 Postupnosti a rady 4.5 Funkcionálne rady - mocninové rady - Taylorov rad, MacLaurinov rad Erika Škrabul áková F BERG, TU Košice 15. 12. 2015 Erika Škrabul áková (TUKE) Taylorov
Διαβάστε περισσότεραCvičenie č. 4,5 Limita funkcie
Cvičenie č. 4,5 Limita funkcie Definícia ity Limita funkcie (vlastná vo vlastnom bode) Nech funkcia f je definovaná na nejakom okolí U( ) bodu. Hovoríme, že funkcia f má v bode itu rovnú A, ak ( ε > )(
Διαβάστε περισσότερα6 Limita funkcie. 6.1 Myšlienka limity, interval bez bodu
6 Limita funkcie 6 Myšlienka ity, interval bez bodu Intuitívna myšlienka ity je prirodzená, ale definovať presne pojem ity je značne obtiažne Nech f je funkcia a nech a je reálne číslo Čo znamená zápis
Διαβάστε περισσότεραMotivácia Denícia determinantu Výpo et determinantov Determinant sú inu matíc Vyuºitie determinantov. Determinanty. 14. decembra 2010.
14. decembra 2010 Rie²enie sústav Plocha rovnobeºníka Objem rovnobeºnostena Rie²enie sústav Príklad a 11 x 1 + a 12 x 2 = c 1 a 21 x 1 + a 22 x 2 = c 2 Dostaneme: x 1 = c 1a 22 c 2 a 12 a 11 a 22 a 12
Διαβάστε περισσότερα1. Limita, spojitost a diferenciálny počet funkcie jednej premennej
. Limita, spojitost a diferenciálny počet funkcie jednej premennej Definícia.: Hromadný bod a R množiny A R: v každom jeho okolí leží aspoň jeden bod z množiny A, ktorý je rôzny od bodu a Zadanie množiny
Διαβάστε περισσότεραObvod a obsah štvoruholníka
Obvod a štvoruholníka D. Štyri body roviny z ktorých žiadne tri nie sú kolineárne (neležia na jednej priamke) tvoria jeden štvoruholník. Tie body (A, B, C, D) sú vrcholy štvoruholníka. strany štvoruholníka
Διαβάστε περισσότεραTomáš Madaras Prvočísla
Prvočísla Tomáš Madaras 2011 Definícia Nech a Z. Čísla 1, 1, a, a sa nazývajú triviálne delitele čísla a. Cele číslo a / {0, 1, 1} sa nazýva prvočíslo, ak má iba triviálne delitele; ak má aj iné delitele,
Διαβάστε περισσότεραStart. Vstup r. O = 2*π*r S = π*r*r. Vystup O, S. Stop. Start. Vstup P, C V = P*C*1,19. Vystup V. Stop
1) Vytvorte algoritmus (vývojový diagram) na výpočet obvodu kruhu. O=2xπxr ; S=πxrxr Vstup r O = 2*π*r S = π*r*r Vystup O, S 2) Vytvorte algoritmus (vývojový diagram) na výpočet celkovej ceny výrobku s
Διαβάστε περισσότεραMotivácia pojmu derivácia
Derivácia funkcie Motivácia pojmu derivácia Zaujíma nás priemerná intenzita zmeny nejakej veličiny (dráhy, rastu populácie, veľkosti elektrického náboja, hmotnosti), vzhľadom na inú veličinu (čas, dĺžka)
Διαβάστε περισσότεραModerné vzdelávanie pre vedomostnú spoločnosť Projekt je spolufinancovaný zo zdrojov EÚ M A T E M A T I K A
M A T E M A T I K A PRACOVNÝ ZOŠIT II. ROČNÍK Mgr. Agnesa Balážová Obchodná akadémia, Akademika Hronca 8, Rožňava PRACOVNÝ LIST 1 Urč typ kvadratickej rovnice : 1. x 2 3x = 0... 2. 3x 2 = - 2... 3. -4x
Διαβάστε περισσότερα7. FUNKCIE POJEM FUNKCIE
7. FUNKCIE POJEM FUNKCIE Funkcia f reálnej premennej je : - každé zobrazenie f v množine všetkých reálnych čísel; - množina f všetkých usporiadaných dvojíc[,y] R R pre ktorú platí: ku každému R eistuje
Διαβάστε περισσότεραFakulta matematiky, fyziky a informatiky Univerzita Komenského, Bratislava Katedra Informatiky
Fakulta matematiky, fyziky a informatiky Univerzita Komenského, Bratislava Katedra Informatiky Paralelné kooperujúce systémy gramatík diplomová práca autor: Lýdia Hanusková vedúci dipl. práce: Prof. RNDr.
Διαβάστε περισσότεραŠtrukturálne (syntaktické) rozpoznávanie
Štrukturálne (syntaktické) rozpoznávanie syntaktické metódy pracujú s relačnými štruktúrami, ktoré sa skladajú z prvkov nosiča relačnej štruktúry zodpovedajú primitívam ako ďalej nedeliteľným častiam
Διαβάστε περισσότερα1. písomná práca z matematiky Skupina A
1. písomná práca z matematiky Skupina A 1. Vypočítajte : a) 84º 56 + 32º 38 = b) 140º 53º 24 = c) 55º 12 : 2 = 2. Vypočítajte zvyšné uhly na obrázku : β γ α = 35 12 δ a b 3. Znázornite na číselnej osi
Διαβάστε περισσότεραGoniometrické rovnice a nerovnice. Základné goniometrické rovnice
Goniometrické rovnice a nerovnice Definícia: Rovnice (nerovnice) obsahujúce neznámu x alebo výrazy s neznámou x ako argumenty jednej alebo niekoľkých goniometrických funkcií nazývame goniometrickými rovnicami
Διαβάστε περισσότεραKompilátory. Cvičenie 6: LLVM. Peter Kostolányi. 21. novembra 2017
Kompilátory Cvičenie 6: LLVM Peter Kostolányi 21. novembra 2017 LLVM V podstate sada nástrojov pre tvorbu kompilátorov LLVM V podstate sada nástrojov pre tvorbu kompilátorov Pôvodne Low Level Virtual Machine
Διαβάστε περισσότεραARMA modely čast 2: moving average modely (MA)
ARMA modely čast 2: moving average modely (MA) Beáta Stehlíková Časové rady, FMFI UK, 2014/2015 ARMA modely časť 2: moving average modely(ma) p.1/24 V. Moving average proces prvého rádu - MA(1) ARMA modely
Διαβάστε περισσότεραMatematika 2. časť: Analytická geometria
Matematika 2 časť: Analytická geometria RNDr. Jana Pócsová, PhD. Ústav riadenia a informatizácie výrobných procesov Fakulta BERG Technická univerzita v Košiciach e-mail: jana.pocsova@tuke.sk Súradnicové
Διαβάστε περισσότεραPlanárne a rovinné grafy
Planárne a rovinné grafy Definícia Graf G sa nazýva planárny, ak existuje jeho nakreslenie D, v ktorom sa žiadne dve hrany nepretínajú. D sa potom nazýva rovinný graf. Planárne a rovinné grafy Definícia
Διαβάστε περισσότεραJednotkový koreň (unit root), diferencovanie časového radu, unit root testy
Jednotkový koreň (unit root), diferencovanie časového radu, unit root testy Beáta Stehlíková Časové rady, FMFI UK, 2012/2013 Jednotkový koreň(unit root),diferencovanie časového radu, unit root testy p.1/18
Διαβάστε περισσότεραKomplexné čísla, Diskrétna Fourierova transformácia 1
Komplexné čísla, Diskrétna Fourierova transformácia Komplexné čísla C - množina všetkých komplexných čísel komplexné číslo: z = a + bi, kde a, b R, i - imaginárna jednotka i =, t.j. i =. komplexne združené
Διαβάστε περισσότεραPrechod z 2D do 3D. Martin Florek 3. marca 2009
Počítačová grafika 2 Prechod z 2D do 3D Martin Florek florek@sccg.sk FMFI UK 3. marca 2009 Prechod z 2D do 3D Čo to znamená? Ako zobraziť? Súradnicové systémy Čo to znamená? Ako zobraziť? tretia súradnica
Διαβάστε περισσότεραARMA modely čast 2: moving average modely (MA)
ARMA modely čast 2: moving average modely (MA) Beáta Stehlíková Časové rady, FMFI UK, 2011/2012 ARMA modely časť 2: moving average modely(ma) p.1/25 V. Moving average proces prvého rádu - MA(1) ARMA modely
Διαβάστε περισσότεραÚvod do lineárnej algebry. Monika Molnárová Prednášky
Úvod do lineárnej algebry Monika Molnárová Prednášky 2006 Prednášky: 3 17 marca 2006 4 24 marca 2006 c RNDr Monika Molnárová, PhD Obsah 2 Sústavy lineárnych rovníc 25 21 Riešenie sústavy lineárnych rovníc
Διαβάστε περισσότεραLineárna algebra I - pole skalárov, lineárny priestor, lineárna závislosť, dimenzia, podpriestor, suma podpriestorov, izomorfizmus
1. prednáška Lineárna algebra I - pole skalárov, lineárny priestor, lineárna závislosť, dimenzia, podpriestor, suma podpriestorov, izomorfizmus Matematickým základom kvantovej mechaniky je teória Hilbertových
Διαβάστε περισσότεραKATEDRA DOPRAVNEJ A MANIPULAČNEJ TECHNIKY Strojnícka fakulta, Žilinská Univerzita
132 1 Absolútna chyba: ) = - skut absolútna ochýlka: ) ' = - spr. relatívna chyba: alebo Chyby (ochýlky): M systematické, M náhoné, M hrubé. Korekcia: k = spr - = - Î' pomerná korekcia: Správna honota:
Διαβάστε περισσότεραVlastnosti nekonečných slov generovaných pomocou DGSM (diplomová práca)
Odbor 9.2.1 Informatika Katedra Informatiky Fakulta Matematiky, Fyziky a Informatiky Univerzita Komenského, Bratislava Vlastnosti nekonečných slov generovaných pomocou DGSM (diplomová práca) Marián Sládek
Διαβάστε περισσότερα4. Výrokové funkcie (formy), ich definičný obor a obor pravdivosti
4. Výrokové funkcie (formy), ich definičný obor a obor pravdivosti Výroková funkcia (forma) ϕ ( x) je formálny výraz (formula), ktorý obsahuje znak x, pričom x berieme z nejakej množiny M. Ak za x zvolíme
Διαβάστε περισσότεραVLASTNÉ ČÍSLA A JORDANOV KANONICKÝ TVAR. Michal Zajac. 3 T b 1 = T b 2 = = = 2b
VLASTNÉ ČÍSLA A JORDANOV KANONICKÝ TVAR Michal Zajac Vlastné čísla a vlastné vektory Pripomeňme najprv, že lineárny operátor T : L L je vzhl adom na bázu B = {b 1, b 2,, b n } lineárneho priestoru L určený
Διαβάστε περισσότεραFUNKCIE N REÁLNYCH PREMENNÝCH
FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UNIVERZITY KOMENSKÉHO V BRATISLAVE FUNKCIE N REÁLNYCH PREMENNÝCH RNDr. Kristína Rostás, PhD. PREDMET: Matematická analýza ) 2010/2011 1. DEFINÍCIA REÁLNEJ FUNKCIE
Διαβάστε περισσότεραPriamkové plochy. Ak každým bodom plochy Φ prechádza aspoň jedna priamka, ktorá (celá) na nej leží potom plocha Φ je priamková. Santiago Calatrava
Priamkové plochy Priamkové plochy Ak každým bodom plochy Φ prechádza aspoň jedna priamka, ktorá (celá) na nej leží potom plocha Φ je priamková. Santiago Calatrava Priamkové plochy rozdeľujeme na: Rozvinuteľné
Διαβάστε περισσότερα3. kapitola. Axiomatická formulácia modálnej logiky Vzťah medzi syntaxou a sémantikou. priesvitka 1
3. kapitola Axiomatická formulácia modálnej logiky Vzťah medzi syntaxou a sémantikou priesvitka 1 Axiomatická výstavba modálnej logiky Cieľom tejto prednášky je ukázať axiomatickú výstavbu rôznych verzií
Διαβάστε περισσότερα3. prednáška. Komplexné čísla
3. predáška Komplexé čísla Úvodé pozámky Vieme, že existujú také kvadratické rovice, ktoré emajú riešeie v obore reálych čísel. Študujme kvadratickú rovicu x x + 5 = 0 Použitím štadardej formule pre výpočet
Διαβάστε περισσότεραMetódy vol nej optimalizácie
Metódy vol nej optimalizácie Metódy vol nej optimalizácie p. 1/28 Motivácia k metódam vol nej optimalizácie APLIKÁCIE p. 2/28 II 1. PRÍKLAD: Lineárna regresia - metóda najmenších štvorcov Na základe dostupných
Διαβάστε περισσότεραProstredie pre podporu výučby predmetu Formálne jazyky a automaty
UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY KATEDRA INFORMATIKY Prostredie pre podporu výučby predmetu Formálne jazyky a automaty Bakalárska práca Peter Havlíček Odbor:
Διαβάστε περισσότερα7 Derivácia funkcie. 7.1 Motivácia k derivácii
Híc, P Pokorný, M: Matematika pre informatikov a prírodné vedy 7 Derivácia funkcie 7 Motivácia k derivácii S využitím derivácií sa stretávame veľmi často v matematike, geometrii, fyzike, či v rôznych technických
Διαβάστε περισσότεραFAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UNIVERZITA KOMENSKÉHO. Pavol Ďuriš. Výpočtová zložitosť
FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UNIVERZITA KOMENSKÉHO Pavol Ďuriš Výpočtová zložitosť Máj 2009 Autor: Pavol Ďuriš Názov: Výpočtová zložitosť Vydavateľ: Knižničné a edičné centrum FMFI UK Rok vydania:
Διαβάστε περισσότεραAerobTec Altis Micro
AerobTec Altis Micro Záznamový / súťažný výškomer s telemetriou Výrobca: AerobTec, s.r.o. Pionierska 15 831 02 Bratislava www.aerobtec.com info@aerobtec.com Obsah 1.Vlastnosti... 3 2.Úvod... 3 3.Princíp
Διαβάστε περισσότεραPríklady na precvičovanie Fourierove rady
Príklady na precvičovanie Fourierove rady Ďalším významným typom funkcionálnych radov sú trigonometrické rady, pri ktorých sú jednotlivé členy trigonometrickými funkciami. Konkrétne, jedná sa o rady tvaru
Διαβάστε περισσότεραKOMPILÁTORY: Syntaxou riadený preklad. Jana Dvořáková
KOMPILÁTORY: Syntaxou riadený preklad Jana Dvořáková dvorakova@dcs.fmph.uniba.sk Čo je syntaxou riadený preklad? Celý kompilátor je riadený procesom parsovania Syntaxou riadený preklad = prepojenie syntaktickej
Διαβάστε περισσότερα1-MAT-220 Algebra februára 2012
1-MAT-220 Algebra 1 12. februára 2012 Obsah 1 Grupy 3 1.1 Binárne operácie.................................. 3 1.2 Cayleyho veta.................................... 3 2 Faktorizácia 5 2.1 Relácie ekvivalencie
Διαβάστε περισσότεραReprezentácia informácií v počítači
Úvod do programovania a sietí Reprezentácia informácií v počítači Ing. Branislav Sobota, PhD. 2007 Informácia slovo s mnohými významami, ktoré závisia na kontexte predpis blízky pojmom význam poznatok
Διαβάστε περισσότεραKódovanie a dekódovanie
Kódovanie a deovanie 1 Je daná množina B={0,1,2} Zostrojte množinu B* všetkých možných slov dĺžky dva 2 Je daná zdrojová abeceda A={α,β,ϕ,τ} Navrhnite príklady aspoň dvoch prostých ovaní týchto zdrojových
Διαβάστε περισσότεραDeliteľnosť a znaky deliteľnosti
Deliteľnosť a znaky deliteľnosti Medzi základné pojmy v aritmetike celých čísel patrí aj pojem deliteľnosť. Najprv si povieme, čo znamená, že celé číslo a delí celé číslo b a ako to zapisujeme. Nech a
Διαβάστε περισσότεραRozsah hodnotenia a spôsob výpočtu energetickej účinnosti rozvodu tepla
Rozsah hodnotenia a spôsob výpočtu energetickej účinnosti príloha č. 7 k vyhláške č. 428/2010 Názov prevádzkovateľa verejného : Spravbytkomfort a.s. Prešov Adresa: IČO: Volgogradská 88, 080 01 Prešov 31718523
Διαβάστε περισσότεραPrirodzené čísla. Kardinálne čísla
Prirodzené čísla Doteraz sme sa vždy uspokojili s tým, že sme pod množinou prirodzených čísel rozumeli množinu N = { 1, 2,3, 4,5, 6, 7,8,9,10,11,12, } Túto množinu sme chápali intuitívne a presne sme ju
Διαβάστε περισσότεραM6: Model Hydraulický systém dvoch zásobníkov kvapaliny s interakciou
M6: Model Hydraulický ytém dvoch záobníkov kvapaliny interakciou Úlohy:. Zotavte matematický popi modelu Hydraulický ytém. Vytvorte imulačný model v jazyku: a. Matlab b. imulink 3. Linearizujte nelineárny
Διαβάστε περισσότεραmnožiny F G = {t1, t2,, tn} T a pre ľubovoľný valec C so základňou B1, B2,, Bn v bodoch t1, t2,, tn, takou, že pre t G - F je Bt = E, platí PF(C) = PG
STOCHASTICKÝ PROCES Definícia stochastického procesu Definícia 1 Nech (Ω, F, P) je pravdepodobnostný priestor a nech T je podmnožina R. Pre každé t T nech X(t, ω) je náhodná premenná definovaná na pravdepodobnostnom
Διαβάστε περισσότερα2. prednáška. Teória množín I. množina operácie nad množinami množinová algebra mohutnosť a enumerácia karteziánsky súčin
2. prednáška Teória množín I množina operácie nad množinami množinová algebra mohutnosť a enumerácia karteziánsky súčin Verzia: 27. 9. 2009 Priesvtika: 1 Definícia množiny Koncepcia množiny patrí medzi
Διαβάστε περισσότεραDerivácia funkcie. Pravidlá derivovania výrazov obsahujúcich operácie. Derivácie elementárnych funkcií
Derivácia funkcie Derivácia funkcie je jeden z najužitočnejších nástrojov, ktoré používame v matematike a jej aplikáciách v ďalších odboroch. Stručne zhrnieme základné informácie o deriváciách. Podrobnejšie
Διαβάστε περισσότεραRiešenie cvičení z 5. kapitoly
Riešenie cvičení z 5. kapitoly Cvičenie 5.1. Vety prepíšte pomocou jazyka predikátovej logiky, použite symboly uvedené v úlohách. (a Niekto má hudobný sluch (H a niekto ho nemá. ( H( ( H( (b Niektoré dieťa
Διαβάστε περισσότεραReálna funkcia reálnej premennej
(ÚMV/MAN3a/10) RNDr. Ivan Mojsej, PhD ivan.mojsej@upjs.sk 18.10.2012 Úvod V každodennom živote, hlavne pri skúmaní prírodných javov, procesov sa stretávame so závislosťou veľkosti niektorých veličín od
Διαβάστε περισσότεραHASLIM112V, HASLIM123V, HASLIM136V HASLIM112Z, HASLIM123Z, HASLIM136Z HASLIM112S, HASLIM123S, HASLIM136S
PROUKTOVÝ LIST HKL SLIM č. sklad. karty / obj. číslo: HSLIM112V, HSLIM123V, HSLIM136V HSLIM112Z, HSLIM123Z, HSLIM136Z HSLIM112S, HSLIM123S, HSLIM136S fakturačný názov výrobku: HKL SLIMv 1,2kW HKL SLIMv
Διαβάστε περισσότεραKompilátory Syntaxou riadený preklad. Ján Šturc Zima 2009
Kompilátory Syntaxou riadený preklad Ján Šturc Zima 2009 Syntaxou riadené definície Symbolom gramatiky sú priradené atribúty, ktoré nesú dodačnú informáciu o konštrukciách rozpoznávaných syntaxou. Hodnoty
Διαβάστε περισσότεραMATEMATICKÁ ANALÝZA 1
UNIVERZITA PAVLA JOZEFA ŠAFÁRIKA V KOŠICIACH Prírodovedecká fakulta Ústav matematických vied Božena Mihalíková, Ján Ohriska MATEMATICKÁ ANALÝZA Vysokoškolský učebný text Košice, 202 202 doc. RNDr. Božena
Διαβάστε περισσότερα,Zohrievanie vody indukčným varičom bez pokrievky,
Farba skupiny: zelená Označenie úlohy:,zohrievanie vody indukčným varičom bez pokrievky, Úloha: Zistiť, ako závisí účinnosť zohrievania vody na indukčnom variči od priemeru použitého hrnca. Hypotéza: Účinnosť
Διαβάστε περισσότεραPodnikateľ 90 Mobilný telefón Cena 95 % 50 % 25 %
Podnikateľ 90 Samsung S5230 Samsung C3530 Nokia C5 Samsung Shark Slider S3550 Samsung Xcover 271 T-Mobile Pulse Mini Sony Ericsson ZYLO Sony Ericsson Cedar LG GM360 Viewty Snap Nokia C3 Sony Ericsson ZYLO
Διαβάστε περισσότεραRIEŠENIE WHEATSONOVHO MOSTÍKA
SNÁ PMYSLNÁ ŠKOL LKONKÁ V PŠŤNO KOMPLXNÁ PÁ Č. / ŠN WSONOVO MOSÍK Piešťany, október 00 utor : Marek eteš. Komplexná práca č. / Strana č. / Obsah:. eoretický rozbor Wheatsonovho mostíka. eoretický rozbor
Διαβάστε περισσότεραMatematika 2. časť: Funkcia viac premenných Letný semester 2013/2014
Matematika 2 časť: Funkcia viac premenných Letný semester 2013/2014 RNDr. Jana Pócsová, PhD. Ústav riadenia a informatizácie výrobných procesov Fakulta BERG Technická univerzita v Košiciach e-mail: jana.pocsova@tuke.sk
Διαβάστε περισσότεραLogické systémy. doc. RNDr. Jana Galanová, PhD. RNDr. Peter Kaprálik, PhD. Mgr. Marcel Polakovič, PhD.
Logické systémy doc. RNDr. Jana Galanová, PhD. RNDr. Peter Kaprálik, PhD. Mgr. Marcel Polakovič, PhD. KAPITOLA 1 Úvodné pojmy V tejto časti uvádzame základné pojmy, prevažne z diskrétnej matematiky, ktoré
Διαβάστε περισσότεραObsah. 1.1 Reálne čísla a ich základné vlastnosti... 7 1.1.1 Komplexné čísla... 8
Obsah 1 Číselné obory 7 1.1 Reálne čísla a ich základné vlastnosti............................ 7 1.1.1 Komplexné čísla................................... 8 1.2 Číselné množiny.......................................
Διαβάστε περισσότεραNávrh vzduchotesnosti pre detaily napojení
Výpočet lineárneho stratového súčiniteľa tepelného mosta vzťahujúceho sa k vonkajším rozmerom: Ψ e podľa STN EN ISO 10211 Návrh vzduchotesnosti pre detaily napojení Objednávateľ: Ing. Natália Voltmannová
Διαβάστε περισσότεραGoniometrické substitúcie
Goniometrické substitúcie Marta Kossaczká S goniometrickými funkciami ste sa už určite stretli, pravdepodobne predovšetkým v geometrii. Ich použitie tam ale zďaleka nekončí. Nazačiatoksizhrňme,čoonichvieme.Funkciesínusakosínussadajúdefinovať
Διαβάστε περισσότεραKontrolné otázky na kvíz z jednotiek fyzikálnych veličín. Upozornenie: Umiestnenie správnej a nesprávnych odpovedí sa môže v teste meniť.
Kontrolné otázky na kvíz z jednotiek fyzikálnych veličín Upozornenie: Umiestnenie správnej a nesprávnych odpovedí sa môže v teste meniť. Ktoré fyzikálne jednotky zodpovedajú sústave SI: a) Dĺžka, čas,
Διαβάστε περισσότεραFunkcie - základné pojmy
Funkcie - základné pojmy DEFINÍCIA FUNKCIE Nech A, B sú dve neprázdne číselné množiny. Ak každému prvku x A je priradený najviac jeden prvok y B, tak hovoríme, že je daná funkcia z množiny A do množiny
Διαβάστε περισσότερα7. Dokážte, že z každej nekonečnej množiny môžeme vydeliť spočítateľnú podmnožinu.
Teória množín To, že medzi množinami A, B existuje bijektívne zobrazenie, budeme symbolicky označovať A B alebo A B. Vtedy hovoríme, že množiny A, B sú ekvivalentné. Hovoríme tiež, že také množiny A, B
Διαβάστε περισσότεραVybrané partie z logiky
FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UNIVERZITY KOMENSKÉHO Katedra informatiky Vybrané partie z logiky poznámky z prednášok martin florek 22. mája 2004 Predhovor Vďaka nude a oprášeniu vedomostí z
Διαβάστε περισσότερα24. Základné spôsoby zobrazovania priestoru do roviny
24. Základné spôsoby zobrazovania priestoru do roviny Voľné rovnobežné premietanie Presné metódy zobrazenia trojrozmerného priestoru do dvojrozmernej roviny skúma samostatná matematická disciplína, ktorá
Διαβάστε περισσότεραJán Buša Štefan Schrötter
Ján Buša Štefan Schrötter 1 KOMPLEXNÉ ČÍSLA 1 1.1 Pojem komplexného čísla Väčšine z nás je známe, že druhá mocnina ľubovoľného reálneho čísla nemôže byť záporná (ináč povedané: pre každé x R je x 0). Ako
Διαβάστε περισσότερα3. Striedavé prúdy. Sínusoida
. Striedavé prúdy VZNIK: Striedavý elektrický prúd prechádza obvodom, ktorý je pripojený na zdroj striedavého napätia. Striedavé napätie vyrába synchrónny generátor, kde na koncoch rotorového vinutia sa
Διαβάστε περισσότεραALGEBRA. Číselné množiny a operácie s nimi. Úprava algebrických výrazov
ALGEBRA Číselné množiny a operácie s nimi. Úprava algebrických výrazov Definícia Množinu považujeme za určenú, ak vieme o ľubovoľnom objekte rozhodnúť, či je alebo nie je prvkom množiny. Množinu určujeme
Διαβάστε περισσότεραChí kvadrát test dobrej zhody. Metódy riešenia úloh z pravdepodobnosti a štatistiky
Chí kvadrát test dobrej zhody Metódy riešenia úloh z pravdepodobnosti a štatistiky www.iam.fmph.uniba.sk/institute/stehlikova Test dobrej zhody I. Chceme overiť, či naše dáta pochádzajú z konkrétneho pravdep.
Διαβάστε περισσότεραFormálne jazyky a automaty
abeceda, slovo jazyk operácie na jazykoch 1. Základnépojmy Formálne jazyky a automaty Kubo Kováč Abeceda je ľubovoľná neprázdna konečná množina, jej prvky voláme písmená alebo znaky. Slovo w (dĺžky k 0)nadabecedouΣjekonečnápostupnosť
Διαβάστε περισσότεραObyčajné diferenciálne rovnice
(ÚMV/MAN3b/10) RNDr. Ivan Mojsej, PhD ivan.mojsej@upjs.sk 14.3.2013 Úvod patria k najdôležitejším a najviac prepracovaným matematickým disciplínam. Nielen v minulosti, ale aj v súčastnosti predstavujú
Διαβάστε περισσότερα1.1 Zobrazenia a funkcie
1 Teória vypočítateľnosti poznámky z prednášky #1 1.1 Zobrazenia a funkcie Definícia. Čiastočné (totálne) zobrazenie trojice (A, B, f) pre ktoré platí: f A B Ku každému vstupu a A existuje najviac jeden
Διαβάστε περισσότεραREZISTORY. Rezistory (súčiastky) sú pasívne prvky. Používajú sa vo všetkých elektrických
REZISTORY Rezistory (súčiastky) sú pasívne prvky. Používajú sa vo všetkých elektrických obvodoch. Základnou vlastnosťou rezistora je jeho odpor. Odpor je fyzikálna vlastnosť, ktorá je daná štruktúrou materiálu
Διαβάστε περισσότερα23. Zhodné zobrazenia
23. Zhodné zobrazenia Zhodné zobrazenie sa nazýva zhodné ak pre každé dva vzorové body X,Y a ich obrazy X,Y platí: X,Y = X,Y {Vzdialenosť vzorov sa rovná vzdialenosti obrazov} Medzi zhodné zobrazenia patria:
Διαβάστε περισσότεραEulerovské grafy. Príklad Daný graf nie je eulerovský, ale obsahuje eulerovskú cestu (a, ab, b, bc, c, cd, d, da, a, ac, c, ce, e, ed, d, db).
Eulerovské grafy Denícia Nech G = (V, E) je graf. Uzavretý ah v G sa nazýva eulerovská kruºnica, ak obsahuje v²etky hrany G. Otvorený ah obsahujúci v²etky hrany grafu sa nazýva eulerovská cesta. Graf sa
Διαβάστε περισσότερα. visual basic. int sum(int a, int b){ return a+b;} : : :
: : : : (),, : (),( )-,() - :,, -,( ) -1.... visual basic int sum(int a, int b){ return a+b; float f=2.5; main(){ float A[10]; A[f]=15; int x=sum(int(f), 10, A[2]);. -2.... -3.foolowpos(3) * ( a b c) (
Διαβάστε περισσότεραNumerické metódy Učebný text pre bakalárske štúdium
Imrich Pokorný Numerické metódy Učebný text pre bakalárske štúdium Strana 1 z 48 1 Nepresnosť numerického riešenia úloh 4 1.1 Zdroje chýb a ich klasifikácia................... 4 1.2 Základné pojmy odhadu
Διαβάστε περισσότεραHarmonizované technické špecifikácie Trieda GP - CS lv EN Pevnosť v tlaku 6 N/mm² EN Prídržnosť
Baumit Prednástrek / Vorspritzer Vyhlásenie o parametroch č.: 01-BSK- Prednástrek / Vorspritzer 1. Jedinečný identifikačný kód typu a výrobku: Baumit Prednástrek / Vorspritzer 2. Typ, číslo výrobnej dávky
Διαβάστε περισσότεραLineárne kódy. Ján Karabáš. Kódovanie ZS 13/14 KM FPV UMB. J. Karabáš (FPV UMB) Lineárne kódy Kodo ZS 13/14 1 / 19
Lineárne kódy Ján Karabáš KM FPV UMB Kódovanie ZS 13/14 J. Karabáš (FPV UMB) Lineárne kódy Kodo ZS 13/14 1 / 19 Algebraické štruktúry Grupy Grupa je algebraická štruktúra G = (G;, 1, e), spolu s binárnou
Διαβάστε περισσότεραJednotkový koreň (unit root), diferencovanie časového radu, unit root testy
Jednotkový koreň (unit root), diferencovanie časového radu, unit root testy Beáta Stehlíková Časové rady, FMFI UK, 2013/2014 Jednotkový koreň(unit root),diferencovanie časového radu, unit root testy p.1/27
Διαβάστε περισσότεραVektorový priestor V : Množina prvkov (vektory), na ktorej je definované ich sčítanie a ich
Tuesday 15 th January, 2013, 19:53 Základy tenzorového počtu M.Gintner Vektorový priestor V : Množina prvkov (vektory), na ktorej je definované ich sčítanie a ich násobenie reálnym číslom tak, že platí:
Διαβάστε περισσότεραGoniometrické funkcie
Goniometrické funkcie Oblúková miera Goniometrické funkcie sú funkcie, ktoré sa používajú pri meraní uhlov (Goniometria Meranie Uhla). Pri týchto funkciách sa uvažuje o veľkostiach uhlov udaných v oblúkovej
Διαβάστε περισσότεραVybrané partie z logiky
FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UNIVERZITA KOMENSKÉHO Katedra informatiky Vybrané partie z logiky Eduard Toman Bratislava 2005 Obsah 1 Úvod 3 1.1 Jazyk logiky..................................
Διαβάστε περισσότερα9. kapitola Boolove funkcie a logické obvody
9. kapitola Boolove funkcie a logické obvody Priesvitka 1 Boolova algebra Elektronické obvody v počítačoch a v podobných zariadeniach sú charakterizované binárnymi vstupmi a výstupmi (rovnajúcimi sa 0
Διαβάστε περισσότεραMaturitné úlohy. Matematiky. Pre gymnázium
Jozef Vozár Maturitné úlohy Z Matematiky Pre gymnázium I. (Úlohy s výberom odpovede) OBSAH ÚVOD K ÚVODU... 4 ÚVOD... 4 1. ZÁKLADY MATEMATIKY... 6 1.1 Logika a množiny... 6 Požiadavky na vedomosti a zručnosti...
Διαβάστε περισσότεραMIDTERM (A) riešenia a bodovanie
MIDTERM (A) riešenia a bodovanie 1. (7b) Nech vzhl adom na štandardnú karteziánsku sústavu súradníc S 1 := O, e 1, e 2 majú bod P a vektory u, v súradnice P = [0, 1], u = e 1, v = 2 e 2. Aký predpis bude
Διαβάστε περισσότεραPrednáška Fourierove rady. Matematická analýza pre fyzikov IV. Jozef Kise lák
Prednáška 6 6.1. Fourierove rady Základná myšlienka: Nech x Haφ 1,φ 2,...,φ n,... je ortonormálny systém v H, dá sa tento prvok rozvinút do radu x=c 1 φ 1 + c 2 φ 2 +...,c n φ n +...? Ako nájdeme c i,
Διαβάστε περισσότεραZáklady matematickej štatistiky
1. Náhodný výber, výberové momenty a odhad parametrov Katedra Matematických metód Fakulta Riadenia a Informatiky Žilinská Univerzita v Žiline 6. mája 2015 1 Náhodný výber 2 Výberové momenty 3 Odhady parametrov
Διαβάστε περισσότεραu R Pasívne prvky R, L, C v obvode striedavého prúdu Činný odpor R Napätie zdroja sa rovná úbytku napätia na činnom odpore.
Pasívne prvky, L, C v obvode stredavého prúdu Čnný odpor u u prebeh prúdu a napäta fázorový dagram prúdu a napäta u u /2 /2 t Napäte zdroja sa rovná úbytku napäta na čnnom odpore. Prúd je vo fáze s napätím.
Διαβάστε περισσότερα1. Trojuholník - definícia
1. Trojuholník - definícia Trojuholník ABC sa nazýva množina takých bodov, ktoré ležia súčasne v polrovinách ABC, BCA a CAB, kde body A, B, C sú body neležiace na jednej priamke.. Označenie základných
Διαβάστε περισσότεραx x x2 n
Reálne symetrické matice Skalárny súčin v R n. Pripomeniem, že pre vektory u = u, u, u, v = v, v, v R platí. dĺžka vektora u je u = u + u + u,. ak sú oba vektory nenulové a zvierajú neorientovaný uhol
Διαβάστε περισσότερα