: Teoretická informatika(ti)

Rozměr: px
Začít zobrazení ze stránky:

Download ": Teoretická informatika(ti)"

Transkript

1 : Teoretická informatika(ti) prof. RNDr Petr Jančar, CSc. katedra informatiky FEI VŠB-TUO Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

2 Základní informace o kursu Návaznost na kurs Úvod do teoretické informatiky z bakalářského studia (prohloubení a rozšíření vybraných partií teorie jazyků a automatů, vyčíslitelnosti, výpočetní složitosti, algoritmů,... pravděpodobnostní algoritmy, aproximační algoritmy,...). Základním pracovním textem je P. Jančar: Teoretická informatika, VŠB-TU, Ostrava, 2007(2010); pdf-soubor na webu(rozsah 336 stran). (Nejen) teoretická informatika se pochopitelně opírá o logiku. M. Duží: Logika pro informatiky, VŠB-TU Ostrava 2012(pdf na webu). Na webu také informace o průběhu kursu po jednotlivých týdnech(mj. zadání cvičení předem). Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

3 Zápočet a zkouška Zápočtová písemka(45-minutová, v určeném týdnu ke konci semestru). Celkově bude možné získat 21 bodů. Nutnou podmínkou k získání zápočtu je zisk alespoň 7 bodů. Jeden pokus, který v zásadě není možné opakovat. (Dalšíinfonawebu,včetněmožnostix 11,zápis7+(x 11)/2.) Referát(další nutná podmínka k získání zápočtu). Do termínu uvedeného na webu bude každému přiděleno zadání em. Prověření podkladů a skutečného porozumění proběhne v určeném termínu ke konci semestru. Za obhájený referát lze získat 5-10 bodů. (Nebo1-5bodů,dalšíinfonawebu.) Aktivita na cvičení, 0-7 bodů.(konkrétní informace cvičící.) Zápočet:min.7+1+0=8bodů,max =38bodů. Zkouška: písemná(90-minutová), podle potřeby doplněná ústní částí; max. 62bodů;dvě(tématické)částipo31bodech.Vkaždéčástinutnozískat alespoň11bodůacelkověalespoň25bodů. Kezkoušcejemožnéjítjenposplněnípožadavkůkzápočtu. Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

4 Cvičení, konzultace Cvičení...předpokládásepředběžnápřípravaaaktivita! Konzultace... primárně v konzultačních hodinách vyučujících (avizujte em nebo se domluvte po cvičení či přednášce). Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

5 Konečný automat(jako model systému) ZA PRED-I-ZA NIKDE PRED PRED ZA PRED-I-ZA ZAVRENO OTEVRENO NIKDE Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

6 Konečný automat(jako model systému) ZA PRED-I-ZA NIKDE PRED PRED ZA PRED-I-ZA ZAVRENO OTEVRENO NIKDE PRED ZA PR-I-ZA NIKDE ZAV OTEV ZAV ZAV ZAV OTEV OTEV OTEV OTEV ZAV Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

7 Konečný automat(jako model systému) ZA PRED-I-ZA NIKDE PRED PRED ZA PRED-I-ZA ZAVRENO OTEVRENO NIKDE PRED ZA PR-I-ZA NIKDE ZAV OTEV ZAV ZAV ZAV OTEV OTEV OTEV OTEV ZAV A = (Q,Σ,δ) Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

8 Konečný automat(jako model systému) ZA PRED-I-ZA NIKDE PRED PRED ZA PRED-I-ZA ZAVRENO OTEVRENO NIKDE PRED ZA PR-I-ZA NIKDE ZAV OTEV ZAV ZAV ZAV OTEV OTEV OTEV OTEV ZAV A = (Q,Σ,δ) Q...(konečná)množinastavů Σ...(konečná)abeceda(množinapísmen,akcí,symbolů,...) δ :Q Σ Q...přechodováfunkce Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

9 Konečný automat(jako model systému) ZA PRED-I-ZA NIKDE PRED PRED ZA PRED-I-ZA ZAVRENO OTEVRENO NIKDE PRED ZA PR-I-ZA NIKDE ZAV OTEV ZAV ZAV ZAV OTEV OTEV OTEV OTEV ZAV A = (Q,Σ,δ) Q...(konečná)množinastavů Σ...(konečná)abeceda(množinapísmen,akcí,symbolů,...) δ :Q Σ Q...přechodováfunkce Q = {ZAV,OTEV}, Σ = {PRED,ZA,PR-I-ZA,NIKDE}, δ = {((ZAV,PRED),OTEV),...} Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

10 Co dělá tento program(algoritmus)? #include <stdio.h> int main(int argc, char argv) { bool even a = true; while(true) { int c = getchar(); switch(c) { case a : even a =!even a; break; case EOF: case \n : if (even a) { printf( Yes\n ); } else { printf( No\n ); } return 0; } } } Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

11 Podstata předchozího algoritmu... jistý konečný automat x x a x a r 0 r 1 a r 0 =even r 1 =odd b a a b c a... r 0 řídicí jednotka Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

12 Podstata předchozího algoritmu... jistý konečný automat x x a x a r 0 r 1 a r 0 =even r 1 =odd A a b c... r 0 r 1 r 0 r 1 r 0 r 1 b a a b c a... r 0 řídicí jednotka Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

13 Podstata předchozího algoritmu... jistý konečný automat x x a x a r 0 r 1 a r 0 =even r 1 =odd b a a b c a... r 0 řídicí jednotka A a b c... r 0 r 1 r 0 r 1 r 0 r 1 A = (Q,Σ,δ,q 0,F) = ({r 0,r 1 },{a,b,c,...},δ,r 0,{r 0 }),kde δ = {((r 0,a),r 1 ),((r 0,b),r 0 ),...}; q 0 jepočátečnístavaf Qjemnožinapřijímajícíchstavů. Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

14 Podstata předchozího algoritmu... jistý konečný automat x x a x a r 0 r 1 a r 0 =even r 1 =odd b a a b c a... r 0 řídicí jednotka A a b c... r 0 r 1 r 0 r 1 r 0 r 1 A = (Q,Σ,δ,q 0,F) = ({r 0,r 1 },{a,b,c,...},δ,r 0,{r 0 }),kde δ = {((r 0,a),r 1 ),((r 0,b),r 0 ),...}; q 0 jepočátečnístavaf Qjemnožinapřijímajícíchstavů. Tedynapř. δ(r 0,a) =r 1... píšemetakér 0 a A r 1 čijenr 0 a r 1 (kdyžajedánkontextem). Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

15 procedure XY (var F: file) const maxstate = 1 type state = 0.. maxstate type alphabet = (a,b) const A: array [ state, alphabet ] of state = [[1,0],[0,1]] const AccSt: set of state = [0] var q: state; ch: char begin q:=0 while true do read( ch, F ) if EOF then (if q in AccSt then return 1 else return 0) q := A[ q, ch ] endwhile end Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

16 procedure XY (var F: file) const maxstate = 1 type state = 0.. maxstate type alphabet = (a,b) const A: array [ state, alphabet ] of state = [[1,0],[0,1]] const AccSt: set of state = [0] var q: state; ch: char begin q:=0 while true do read( ch, F ) if EOF then (if q in AccSt then return 1 else return 0) q := A[ q, ch ] endwhile end Procedura interpretuje(provádí, simuluje) předchozí automat. Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

17 procedure XY (var F: file) const maxstate = 1 type state = 0.. maxstate type alphabet = (a,b) const A: array [ state, alphabet ] of state = [[1,0],[0,1]] const AccSt: set of state = [0] var q: state; ch: char begin q:=0 while true do read( ch, F ) if EOF then (if q in AccSt then return 1 else return 0) q := A[ q, ch ] endwhile end Procedura interpretuje(provádí, simuluje) předchozí automat. Snadno lze modifikovat tak, že i automat je vstupním parametrem. Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

18 Příklad(výpočetního) problému Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

19 Příklad(výpočetního) problému Vstup(neboli instance problému): abeceda Σ,řetězect Σ,vzorekp Σ. (Např.: t je obsah 100 GB databáze s genetickou informací, p je jistý vzorek(řetězec) délky 100.) Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

20 Příklad(výpočetního) problému Vstup(neboli instance problému): abeceda Σ,řetězect Σ,vzorekp Σ. (Např.: t je obsah 100 GB databáze s genetickou informací, p je jistý vzorek(řetězec) délky 100.) Výstup:(vhodná) reprezentace pozic výskytů vzorku p v řetězci t. (Výskyty vzorku se mohou překrývat.) Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

21 Příklad(výpočetního) problému Vstup(neboli instance problému): abeceda Σ,řetězect Σ,vzorekp Σ. (Např.: t je obsah 100 GB databáze s genetickou informací, p je jistý vzorek(řetězec) délky 100.) Výstup:(vhodná) reprezentace pozic výskytů vzorku p v řetězci t. (Výskyty vzorku se mohou překrývat.) Pro jednoduchost se zaměříme na(pod)problém, kde máme fixně Σ = {a,b}ap=abaaba.příkladvstupu: Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

22 Příklad(výpočetního) problému Vstup(neboli instance problému): abeceda Σ,řetězect Σ,vzorekp Σ. (Např.: t je obsah 100 GB databáze s genetickou informací, p je jistý vzorek(řetězec) délky 100.) Výstup:(vhodná) reprezentace pozic výskytů vzorku p v řetězci t. (Výskyty vzorku se mohou překrývat.) Pro jednoduchost se zaměříme na(pod)problém, kde máme fixně Σ = {a,b}ap=abaaba.příklad: Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

23 Přímočarý algoritmus(ještě jednou v C-čku...) int main(int argc, char argv) { char tail[6] = { 0,0,0,0,0,0 }; while(true) { // Infinite loop int c = getchar(); if (c == \n ) { return 0; } tail[0] = tail[1]; tail[1] = tail[2]; tail[2] = tail[3]; tail[3] = tail[4]; tail[4] = tail[5]; tail[5] = c; } } if (tail[0] == a && tail[1] == b && tail[2] == a && tail[3] == a && tail[4] == b && tail[5] == a ) { zpracuj...; } Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

24 Je podstatou předchozího algoritmu konečný automat? Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

25 Je podstatou předchozího algoritmu konečný automat? Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

26 Je podstatou předchozího algoritmu konečný automat? Dáseříciano,aleje trochu velký...cokdyždélkavzorkujenapř.100? Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

27 Složitost(uvedeného) algoritmu Algoritmus Amá(časovou)složitostT A...cotoje? Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

28 Složitost(uvedeného) algoritmu Algoritmus Amá(časovou)složitostT A...cotoje? T A : N N...coznamenánapř.T A (35) =2800? Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

29 Složitost(uvedeného) algoritmu Algoritmus Amá(časovou)složitostT A...cotoje? T A : N N...coznamenánapř.T A (35) =2800? horní odhady T A O(f)(čiT A (n) O(f(n)),někdysepíšeiT A =O(f)apod.) Např.T A (n) O(n 2 )... Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

30 Složitost(uvedeného) algoritmu Algoritmus Amá(časovou)složitostT A...cotoje? T A : N N...coznamenánapř.T A (35) =2800? horní odhady T A O(f)(čiT A (n) O(f(n)),někdysepíšeiT A =O(f)apod.) Např.T A (n) O(n 2 )... f(n) O(g(n)) df n :f(n) g(n)...nebojetojinak?ano,jinak! Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

31 Složitost(uvedeného) algoritmu Algoritmus Amá(časovou)složitostT A...cotoje? T A : N N...coznamenánapř.T A (35) =2800? horní odhady T A O(f)(čiT A (n) O(f(n)),někdysepíšeiT A =O(f)apod.) Např.T A (n) O(n 2 )... f(n) O(g(n)) df n :f(n) g(n)...nebojetojinak?ano,jinak! Někdy je vhodné použít více parametrů, jako např. u našeho algoritmu: vstup:vzorekp(délkym), text t(délkyn); vezmi prázdný buffer délky m, nastav čtení t na začátek; opakuj dokud nepřečteš celé t: přesuňsymbolztdobufferu(aposuňčtecíhlavu); kdyžjevbufferup,ohlašjakodalšívýskytvzorku Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

32 Složitost(uvedeného) algoritmu Algoritmus Amá(časovou)složitostT A...cotoje? T A : N N...coznamenánapř.T A (35) =2800? horní odhady T A O(f)(čiT A (n) O(f(n)),někdysepíšeiT A =O(f)apod.) Např.T A (n) O(n 2 )... f(n) O(g(n)) df n :f(n) g(n)...nebojetojinak?ano,jinak! Někdy je vhodné použít více parametrů, jako např. u našeho algoritmu: vstup:vzorekp(délkym), text t(délkyn); vezmi prázdný buffer délky m, nastav čtení t na začátek; opakuj dokud nepřečteš celé t: přesuňsymbolztdobufferu(aposuňčtecíhlavu); kdyžjevbufferup,ohlašjakodalšívýskytvzorku Složitost algoritmu je v O(mn)(tělo vnějšího cyklus se provede n-krát, v každémběhuseprovede skrytý vnitřnícyklussmax.m běhy...). Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

33 Provelkám,n(např.m=100,n=10 11 )jejistěvhodnésepokusitolepší algoritmus, než je ten se složitostí O(mn)(přesněji Θ(mn)). Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

34 Provelkám,n(např.m=100,n=10 11 )jejistěvhodnésepokusitolepší algoritmus, než je ten se složitostí O(mn)(přesněji Θ(mn)). Klíčová idea(otázka): jakou informaci si stačí pamatovat z(dosud) přečteného úseku? Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

35 Provelkám,n(např.m=100,n=10 11 )jejistěvhodnésepokusitolepší algoritmus, než je ten se složitostí O(mn)(přesněji Θ(mn)). Klíčová idea(otázka): jakou informaci si stačí pamatovat z(dosud) přečteného úseku? Lze nahlédnout, že si stačí pamatovat nejdelší sufix dosud přečteného, kterýjeprefixemvzorku,tedydefactočíslovrozmezí0...m. V našem konkrétním příkladu(kde p = abaaba): Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

36 Provelkám,n(např.m=100,n=10 11 )jejistěvhodnésepokusitolepší algoritmus, než je ten se složitostí O(mn)(přesněji Θ(mn)). Klíčová idea(otázka): jakou informaci si stačí pamatovat z(dosud) přečteného úseku? Lze nahlédnout, že si stačí pamatovat nejdelší sufix dosud přečteného, kterýjeprefixemvzorku,tedydefactočíslovrozmezí0...m. V našem konkrétním příkladu(kde p = abaaba): Teďseukazuje,žealgoritmuslzezaložitnakon.automatusm+1stavy. Ale jak, a jak rychle, automat k danému vzorku sestrojíme? Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

37 Provelkám,n(např.m=100,n=10 11 )jejistěvhodnésepokusitolepší algoritmus, než je ten se složitostí O(mn)(přesněji Θ(mn)). Klíčová idea(otázka): jakou informaci si stačí pamatovat z(dosud) přečteného úseku? Lze nahlédnout, že si stačí pamatovat nejdelší sufix dosud přečteného, kterýjeprefixemvzorku,tedydefactočíslovrozmezí0...m. V našem konkrétním příkladu(kde p = abaaba): Teďseukazuje,žealgoritmuslzezaložitnakon.automatusm+1stavy. Ale jak, a jak rychle, automat k danému vzorku sestrojíme? PůjdetovčaseO(m),takžecelkověsložitostsrazímenaO(m+n)... Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

38 Konstrukce automatu(knuth, Morris, Pratt) Kdanémuvzorkup:array[1..m]ofchar(prom 1)konstruujeme dvourozměrné pole Next(což je onen automat): Next[0,p[1]] :=1; x Σ {p[1]} :Next[0,x] :=0; Sec[1] :=0; fori :=1tom 1do Next[i, p[i+1]] := i+1; x Σ {p[i+1]} :Next[i,x] :=Next[Sec[i],x]; Sec[i+1] := Next[Sec[i], p[i+1]]; x Σ :Next[m,x] :=Next[Sec[m];x]; Sec je pomocné jednorozměrné pole; Sec[i] je sekundární možnost, tedy délka nejdelšího vlastního sufixu řetězce p[1..i], který je rovněž prefixem vzorku p. Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

39 Konstrukce automatu(knuth, Morris, Pratt) Kdanémuvzorkup:array[1..m]ofchar(prom 1)konstruujeme dvourozměrné pole Next(což je onen automat): Next[0,p[1]] :=1; x Σ {p[1]} :Next[0,x] :=0; Sec[1] :=0; fori :=1tom 1do Next[i, p[i+1]] := i+1; x Σ {p[i+1]} :Next[i,x] :=Next[Sec[i],x]; Sec[i+1] := Next[Sec[i], p[i+1]]; x Σ :Next[m,x] :=Next[Sec[m];x]; Sec je pomocné jednorozměrné pole; Sec[i] je sekundární možnost, tedy délka nejdelšího vlastního sufixu řetězce p[1..i], který je rovněž prefixem vzorku p. Pozn.: zmíněná složitost O(m) zde platí pro fixní abecedu Σ; v obecném případě se vyhneme explicitní konstrukci přechodů pro všechna x Σ. Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

40 Sestrojený automat Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

41 K poznámce o složitosti O(m) konstrukce automatu Klíčem je funkce Sec, kde Sec(i) je délka nejdelšího vlastního sufixu p(1)p(2)... p(i) (tedy prefixu vzorku délky i), který je rovněž prefixem vzorku. (Vnašempříkladubylonapř.Sec(5) =2,Sec(2) =0,atd.) Na obrázku níže je znázorněna jiná situace, kde Sec(200) = 130, Sec(130) =50,Sec(50) =20,Sec(20) =0. Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

42 (given p: array [1..m] of char) Sec[0]:=-1; Sec[1]:=0; for i:=2 to m do x:=p[i]; j:=sec[i-1]; end:=false; while (j>=0 and (not end)) do if x = p[j+1] then (Sec[i]:=j+1; end:=true) else j:=sec[j] ; if j<0 then Sec[i]:=0 Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

43 (given p: array [1..m] of char) Sec[0]:=-1; Sec[1]:=0; for i:=2 to m do x:=p[i]; j:=sec[i-1]; end:=false; while (j>=0 and (not end)) do if x = p[j+1] then (Sec[i]:=j+1; end:=true) else j:=sec[j] ; if j<0 then Sec[i]:=0 HrubýodhaddáO(m 2 )(jedencyklusvnořendodruhého),aledetailnější analýza(amortizované složitosti) ukáže O(m)(rozdíl i Sec(i) nemůže klesnout, tedy celkový počet operací vnitřního cyklu je O(m)). Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

44 Slova a jazyky přijímané konečnými automaty MějmezadánKAA = (Q,Σ,δ,q 0,F). Zavádíme značení q w q proternárnírelaci,podmnožinuq Σ Q: Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

45 Slova a jazyky přijímané konečnými automaty MějmezadánKAA = (Q,Σ,δ,q 0,F). Zavádíme značení q w q proternárnírelaci,podmnožinuq Σ Q: Induktivní definice 1 q q(axiom), ε 2 (δ(q,a) =q q u q ) = q q au (odvozovacípravidlo). Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

46 Slova a jazyky přijímané konečnými automaty MějmezadánKAA = (Q,Σ,δ,q 0,F). Zavádíme značení q w q proternárnírelaci,podmnožinuq Σ Q: Induktivní definice 1 q q(axiom), ε 2 (δ(q,a) =q q u q ) = q q au (odvozovacípravidlo). Zkratka:proR Q,píšemestručnějiq u Rmísto Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

47 Slova a jazyky přijímané konečnými automaty MějmezadánKAA = (Q,Σ,δ,q 0,F). Zavádíme značení q w q proternárnírelaci,podmnožinuq Σ Q: Induktivní definice 1 q q(axiom), ε 2 (δ(q,a) =q q u q ) = q q au (odvozovacípravidlo). Zkratka:proR Q,píšemestručnějiq u Rmísto r R :q u r. Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

48 Slova a jazyky přijímané konečnými automaty MějmezadánKAA = (Q,Σ,δ,q 0,F). Zavádíme značení q w q proternárnírelaci,podmnožinuq Σ Q: Induktivní definice 1 q q(axiom), ε 2 (δ(q,a) =q q u q ) = q q au (odvozovacípravidlo). Zkratka:proR Q,píšemestručnějiq u Rmísto r R :q u r. Slovow Σ jepřijímánoautomatema df q 0 w F. Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

49 Slova a jazyky přijímané konečnými automaty MějmezadánKAA = (Q,Σ,δ,q 0,F). Zavádíme značení q w q proternárnírelaci,podmnožinuq Σ Q: Induktivní definice 1 q q(axiom), ε 2 (δ(q,a) =q q u q ) = q q au (odvozovacípravidlo). Zkratka:proR Q,píšemestručnějiq u Rmísto r R :q u r. Slovow Σ w jepřijímánoautomatema df q 0 F. Jazykem rozpoznávaným(přijímaným) automatem A je jazyk L(A) = {w Σ w slovowjepřijímánoa} = {w q 0 F}. Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

50 Slova a jazyky přijímané konečnými automaty MějmezadánKAA = (Q,Σ,δ,q 0,F). Zavádíme značení q w q proternárnírelaci,podmnožinuq Σ Q: Induktivní definice 1 q q(axiom), ε 2 (δ(q,a) =q q u q ) = q q au (odvozovacípravidlo). Zkratka:proR Q,píšemestručnějiq u Rmísto r R :q u r. Slovow Σ w jepřijímánoautomatema df q 0 F. Jazykem rozpoznávaným(přijímaným) automatem A je jazyk L(A) = {w Σ w slovowjepřijímánoa} = {w q 0 F}. JazykLjeregulární df existujekaatž.l(a) =L. Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

51 Příklad jazyka v abecedě {0, 1} L = {w {0,1} bn(w)jedělitelnétřemia w neobsahuje podřetězec 101} kdebn(w)znamenáčíslo,proněžjewjehobinárnímzápisem(např. bn(0101) =5);klademebn(ε) =0. Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

52 Příklad jazyka v abecedě {0, 1} L = {w {0,1} bn(w)jedělitelnétřemia w neobsahuje podřetězec 101} kdebn(w)znamenáčíslo,proněžjewjehobinárnímzápisem(např. bn(0101) =5);klademebn(ε) =0. Jedná se o regulární jazyk? Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

53 Příklad jazyka v abecedě {0, 1} L = {w {0,1} bn(w)jedělitelnétřemia w neobsahuje podřetězec 101} kdebn(w)znamenáčíslo,proněžjewjehobinárnímzápisem(např. bn(0101) =5);klademebn(ε) =0. Jedná se o regulární jazyk? Všimněme si, že L =L 1 L 2 kde L 1 = {w {0,1} bn(w)jedělitelnétřemi} L 2 = {w {0,1} wobsahujepodřetězec101} Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

54 Příklad jazyka v abecedě {0, 1} L = {w {0,1} bn(w)jedělitelnétřemia w neobsahuje podřetězec 101} kdebn(w)znamenáčíslo,proněžjewjehobinárnímzápisem(např. bn(0101) =5);klademebn(ε) =0. Jedná se o regulární jazyk? Všimněme si, že L =L 1 L 2 kde L 1 = {w {0,1} bn(w)jedělitelnétřemi} L 2 = {w {0,1} wobsahujepodřetězec101} Nabízí se modulární přístup. Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

55 KA A projazykl(a 1 ) L(A 2 )(nebol(a 1 ) L(A 2 )) ŘJA 1 ŘJA 2 ŘJA Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

56 AutomatA,pronějžplatíL(A) =L L = {w {0,1} bn(w)jedělitelnétřemia w neobsahuje podřetězec 101} A q 1 q 1 q 2 q 2 q 3 q 1 q 3 q 2 q 3 A r 1 r 1 r 2 r 2 r 3 r 2 r 3 r 1 r 4 r 4 r 4 r 4 A 0 1 (q 1,r 1 ) (q 1,r 1 ) (q 2,r 2 ) (q 1,r 2 ) (q 1,r 3 ) (q 2,r 2 ) (q 1,r 3 ) (q 1,r 1 ) (q 2,r 4 ) (q 1,r 4 ) (q 1,r 4 ) (q 2,r 4 ) (q 2,r 1 ) (q 3,r 1 ) (q 1,r 2 ) (q 2,r 2 ) (q 3,r 3 ) (q 1,r 2 ) (q 2,r 3 ) (q 3,r 1 ) (q 1,r 4 ) (q 2,r 4 ) (q 3,r 4 ) (q 1,r 4 ) (q 3,r 1 ) (q 2,r 1 ) (q 3,r 2 ) (q 3,r 2 ) (q 2,r 3 ) (q 3,r 2 ) (q 3,r 3 ) (q 2,r 1 ) (q 3,r 4 ) (q 3,r 4 ) (q 2,r 4 ) (q 3,r 4 ) Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

57 Izomorfní úprava automatu A 0 1 (q 1,r 1 ) (q 1,r 1 ) (q 2,r 2 ) (q 1,r 2 ) (q 1,r 3 ) (q 2,r 2 ) (q 1,r 3 ) (q 1,r 1 ) (q 2,r 4 ) (q 1,r 4 ) (q 1,r 4 ) (q 2,r 4 ) (q 2,r 1 ) (q 3,r 1 ) (q 1,r 2 ) (q 2,r 2 ) (q 3,r 3 ) (q 1,r 2 ) (q 2,r 3 ) (q 3,r 1 ) (q 1,r 4 ) (q 2,r 4 ) (q 3,r 4 ) (q 1,r 4 ) (q 3,r 1 ) (q 2,r 1 ) (q 3,r 2 ) (q 3,r 2 ) (q 2,r 3 ) (q 3,r 2 ) (q 3,r 3 ) (q 2,r 1 ) (q 3,r 4 ) (q 3,r 4 ) (q 2,r 4 ) (q 3,r 4 ) A 0 1 s 1 s 1 s 2 s 2 s 3 s 4 s 3 s 5 s 6 s 4 s 7 s 2 s 5 s 8 s 4 s 6 s 9 s 6 s 7 s 1 s 9 s 8 s 5 s 10 s 9 s 6 s 11 s 10 s 12 s 10 s 11 s 11 s 9 s 12 s 8 s 11 s 1 = (q 1,r 1 ) s 2 = (q 2,r 2 ) s 3 = (q 3,r 3 ) s 4 = (q 1,r 2 ) s 5 = (q 2,r 1 ) s 6 = (q 3,r 4 ) s 7 = (q 1,r 3 ) s 8 = (q 3,r 1 ) s 9 = (q 2,r 4 ) s 10 = (q 3,r 2 ) s 11 = (q 1,r 4 ) s 12 = (q 2,r 3 ) Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

58 Charakterizace regulárních jazyků LevýkvocientjazykaLpodleslovau: u\l = {v uv L}. Věta.JazykL Σ jeregulárníprávětehdy,kdyžjemnožinakvocientů {w\l w Σ }konečná. (...čilijazykjeregulárníprávětehdy,kdyžsipřičteníslova[zlevadoprava] stačí[pro finální rozhodnutí o přijetí/nepřijetí] z dosud přečteného prefixu pamatovat omezenou informaci, omezenou nezávisle na délce slova...) Důkaz... Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

59 Schválně, poznáte, které jazyky jsou regulární? prow Σ, w označujedélkuslovaw, w a označujepočetvýskytůsymboluavew( délkawva-čkách ), Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

60 Schválně, poznáte, které jazyky jsou regulární? prow Σ, w označujedélkuslovaw, w a označujepočetvýskytůsymboluavew( délkawva-čkách ), 1 {w {a,b} ; w a mod2=0} Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

61 Schválně, poznáte, které jazyky jsou regulární? prow Σ, w označujedélkuslovaw, w a označujepočetvýskytůsymboluavew( délkawva-čkách ), 1 {w {a,b} ; w a mod2=0} 2 {w {a,b} wzačínánebokončídvojicístejnýchpísmen } Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

62 Schválně, poznáte, které jazyky jsou regulární? prow Σ, w označujedélkuslovaw, w a označujepočetvýskytůsymboluavew( délkawva-čkách ), 1 {w {a,b} ; w a mod2=0} 2 {w {a,b} wzačínánebokončídvojicístejnýchpísmen } 3 {w {a,b} ; w a < w b } Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

63 Schválně, poznáte, které jazyky jsou regulární? prow Σ, w označujedélkuslovaw, w a označujepočetvýskytůsymboluavew( délkawva-čkách ), 1 {w {a,b} ; w a mod2=0} 2 {w {a,b} wzačínánebokončídvojicístejnýchpísmen } 3 {w {a,b} ; w a < w b } 4 {w {a,b,c} jestližewneobsahujepodřetězecabc, pak končí řetězcem bca} Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

64 Schválně, poznáte, které jazyky jsou regulární? prow Σ, w označujedélkuslovaw, w a označujepočetvýskytůsymboluavew( délkawva-čkách ), 1 {w {a,b} ; w a mod2=0} 2 {w {a,b} wzačínánebokončídvojicístejnýchpísmen } 3 {w {a,b} ; w a < w b } 4 {w {a,b,c} jestližewneobsahujepodřetězecabc, pak končí řetězcem bca} 5 {w {a,b} ; w a > w b nebowkončíbaa} Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

65 Schválně, poznáte, které jazyky jsou regulární? prow Σ, w označujedélkuslovaw, w a označujepočetvýskytůsymboluavew( délkawva-čkách ), 1 {w {a,b} ; w a mod2=0} 2 {w {a,b} wzačínánebokončídvojicístejnýchpísmen } 3 {w {a,b} ; w a < w b } 4 {w {a,b,c} jestližewneobsahujepodřetězecabc, pak končí řetězcem bca} 5 {w {a,b} ; w a > w b nebowkončíbaa} 6 {w {a,b} ; w a > w b nebo w b 2} Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) / 25

Teoretická informatika průběh výuky v semestru 1

Teoretická informatika průběh výuky v semestru 1 Teoretická informatika průběh výuky v semestru 1 Týden 1 Po přednášce 14.9. bude text asi mírně modifikován, ale příklady na cvičení se nezmění. (Navíc dodám na web slidy.) Přednáška Na začátku jsme si

Více

Vyhledávání v textu. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

Vyhledávání v textu. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Vyhledávání v textu doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 9. března 209 Jiří Dvorský (VŠB TUO) Vyhledávání v textu 402

Více

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce. Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv copyright To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby

Více

/1: Teoretická informatika(ti) přednáška 4

/1: Teoretická informatika(ti) přednáška 4 456-330/1: Teoretická informatika(ti) přednáška 4 prof. RNDr Petr Jančar, CSc. katedra informatiky FI VŠB-TUO www.cs.vsb.cz/jancar LS 2009/2010 Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010

Více

/01: Teoretická informatika(ti) přednáška 5

/01: Teoretická informatika(ti) přednáška 5 460-4005/01: Teoretická informatika(ti) přednáška 5 prof. RNDr Petr Jančar, CSc. katedra informatiky FEI VŠB-TUO www.cs.vsb.cz/jancar LS 2010/2011 Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) LS

Více

AUTOMATY A GRAMATIKY

AUTOMATY A GRAMATIKY AUTOMATY A 1 GRAMATIKY Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta Katedra teoretické informatiky a matematické logiky Stručný přehled přednášky Automaty Formální jazyky, operace

Více

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 2/29 Hodnocení předmětu BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 4/29 Automaty a gramatiky(bi-aag) 1. Základní pojmy Jan Holub Katedra teoretické

Více

Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory

Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory Plán přednášky Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory Obecný algoritmus pro parsování bezkontextových jazyků dynamické programování 1 Zásobníkový

Více

Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března / 50

Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března / 50 Formální jazyky Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 1/ 50 Abeceda a slovo Definice Abeceda je libovolná neprázdná konečná množina symbolů(znaků). Poznámka: Abeceda se často

Více

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12. Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Vyhledávání 201 / 344 Osnova přednášky

Více

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21. Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky

Více

Lexikální analýza. Rozhraní lexikálního analyzátoru. Miroslav Beneš Dušan Kolář. M. Beneš, D. Kolář: Lexikální analýza 1. Lexikální analýza 2

Lexikální analýza. Rozhraní lexikálního analyzátoru. Miroslav Beneš Dušan Kolář. M. Beneš, D. Kolář: Lexikální analýza 1. Lexikální analýza 2 Lexikální analýza Miroslav Beneš Dušan Kolář Rozhraní lexikálního analyzátoru Lexikální analýza 2 M. Beneš, D. Kolář: Lexikální analýza 1 Úkoly Čtení zdrojového textu Sestavování symbolů Odstranění mezer

Více

Lexikální analýza. Miroslav Beneš Dušan Kolář

Lexikální analýza. Miroslav Beneš Dušan Kolář Lexikální analýza Miroslav Beneš Dušan Kolář Rozhraní lexikálního analyzátoru Lexikální analýza 2 Úkoly Čtení zdrojového textu Sestavování symbolů Odstranění mezer a poznámek Normalizace symbolů (velká/malá

Více

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku Znaky - standardní typ char var Z, W: char; - znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku - v TP (často i jinde) se používá kódová

Více

Poslední nenulová číslice faktoriálu

Poslední nenulová číslice faktoriálu Poslední nenulová číslice faktoriálu Kateřina Bambušková BAM015, I206 Abstrakt V tomto článku je popsán a vyřešen problém s určením poslední nenulové číslice faktoriálu přirozeného čísla N. Celý princip

Více

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií 1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední

Více

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr Seminář z IVT Algoritmizace Slovanské gymnázium Olomouc Tomáš Kühr Algoritmizace - o čem to je? Zatím jsme se zabývali především tím, jak určitý postup zapsat v konkrétním programovacím jazyce (např. C#)

Více

Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ

Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ Abecedou se rozumí libovolná konečná množina Σ. Prvky abecedy nazýváme znaky (symboly) Slovo (řetězec) v nad abecedou Σ je libovolná konečná posloupnost znaků této abecedy. Prázdné posloupnosti znaků odpovídá

Více

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti LEXIKÁLNÍ ANALÝZA Kód ve vstupním jazyku Lexikální analyzátor

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu / 43

Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu / 43 Zásobníkové automaty Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 1/ 43 Zásobníkový automat Chtěli bychom rozpoznávat jazyk L = {a i b i i 1} Snažíme se navrhnout zařízení (podobné konečným

Více

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

Více

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto: IB102 Automaty, gramatiky a složitost, 6. 10. 2014 1/29 Regulární výrazy Definice 2.58. Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto: 1 ε, a a pro každé a

Více

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2 Euklidův algoritmus Doprovodný materiál pro cvičení Programování I. NPRM044 Autor: Markéta Popelová Datum: 31.10.2010 Euklidův algoritmus verze 1.0 Zadání: Určete největšího společného dělitele dvou zadaných

Více

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i, [161014-1204 ] 11 2.1.35 Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i, kde i = 0, 1,..., takto: p 0 q právě tehdy, když bud p, q F nebo p, q F. Dokud i+1 i konstruujeme p

Více

Týden 11. Přednáška. Teoretická informatika průběh výuky v semestru 1. Nejprve jsme dokončili témata zapsaná u minulé přednášky.

Týden 11. Přednáška. Teoretická informatika průběh výuky v semestru 1. Nejprve jsme dokončili témata zapsaná u minulé přednášky. Teoretická informatika průběh výuky v semestru 1 Týden 11 Přednáška Nejprve jsme dokončili témata zapsaná u minulé přednášky. PSPACE, NPSPACE, PSPACE-úplnost Uvědomilijsmesi,ženapř.prozjištěnítoho,zdaBílýmánějakoustrategiivehřeŠACHY,

Více

IV113 Validace a verifikace. Převod LTL formule na Büchi automat. Jiří Barnat

IV113 Validace a verifikace. Převod LTL formule na Büchi automat. Jiří Barnat IV113 Validace a verifikace Převod LTL formule na Büchi automat Jiří Barnat Připomenutí IV113 úvod do validace a verifikace: LTL BA str. 2/26 Problém Kripkeho struktura M LTL formule ϕ M = ϕ? Řešení pomocí

Více

Násobení pomocí sčítání

Násobení pomocí sčítání Neznalost zákonů neomlouvá Násobení pomocí sčítání Zadání problému: Vymyslete algoritmus, jak násobit dvě čísla, když operaci násobení neznáme. Upřesnění zadání: Známe čísla, známe operaci sčítání, odčítání.

Více

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu } 5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu

Více

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů Začínáme vážně programovat Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů Podmínky a cykly Dokončení stručného přehledu řídících struktur jazyka C. Složený příkaz, blok Pascalské

Více

Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému

Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému BI-AAG (2011/2012) J. Holub: 10. Vlastnosti regulárních jazyků p. 2/22 Pumping lemma - podstata problému BI-AAG (2011/2012) J. Holub: 10. Vlastnosti regulárních jazyků p. 4/22 Automaty a gramatiky(bi-aag)

Více

Abstraktní datové typy

Abstraktní datové typy Karel Müller, Josef Vogel (ČVUT FIT) Abstraktní datové typy BI-PA2, 2011, Přednáška 10 1/27 Abstraktní datové typy Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra teoretické informatiky,

Více

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Programová realizace DKA typedef enum {q0, q1,... qn,

Více

Digitální učební materiál

Digitální učební materiál Digitální učební materiál Číslo projektu: CZ.1.07/1.5.00/34.0548 Název školy: Gymnázium, Trutnov, Jiráskovo náměstí 325 Název materiálu: VY_32_INOVACE_142_IVT Autor: Ing. Pavel Bezděk Tematický okruh:

Více

Překladač sestrojující k regulárnímu výrazu ekvivalentní konečný automat Připomeňme si jednoznačnou gramatiku G pro jazyk RV({a, b})

Překladač sestrojující k regulárnímu výrazu ekvivalentní konečný automat Připomeňme si jednoznačnou gramatiku G pro jazyk RV({a, b}) Teoretická informatika průběh výuky v semestru 1 Týden 4 Přednáška Ukázali jsme jednoduchý převod konečného automatu na bezkontextovou gramatiku, čímž jsme prokázali, že každý regulární jazyk je bezkontextovým

Více

PROGRAMOVÁNÍ V C++ CVIČENÍ

PROGRAMOVÁNÍ V C++ CVIČENÍ PROGRAMOVÁNÍ V C++ CVIČENÍ INFORMACE Michal Brabec http://www.ksi.mff.cuni.cz/ http://www.ksi.mff.cuni.cz/~brabec/ brabec@ksi.mff.cuni.cz gmichal.brabec@gmail.com PODMÍNKY ZÁPOČTU Základní podmínky společné

Více

Objektově orientované programování

Objektově orientované programování 10. října 2011 Pragmatické informace Volitelný předmět, zápočet: zápočtový program(s dokumentací), aktivní účast na cvičení(body v CodExu), praktický test, zkouška: zkoušková písemka na objektový návrh

Více

1. Úvodní informace. BI-EP1 Efektivní programování Martin Kačer

1. Úvodní informace. BI-EP1 Efektivní programování Martin Kačer 1. Úvodní informace BI-EP1 Efektivní programování 1 ZS 2011/2012 Ing. Martin Kačer, Ph.D. 2010-11 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické

Více

Standardní algoritmy vyhledávací.

Standardní algoritmy vyhledávací. Standardní algoritmy vyhledávací. Vyhledávací algoritmy v C++ nám umožňují vyhledávat prvky v datových kontejnerech podle různých kritérií. Také se podíváme na vyhledávání metodou půlením intervalu (binární

Více

NPRG030 Programování I, 2010/11

NPRG030 Programování I, 2010/11 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE když X, Y jsou (číselné) výrazy, potom X = Y X Y X < Y X > Y X = Y jsou

Více

Zásobníkový automat. SlovoaaaabbbbpatřídojazykaL={a i b i i 1} a a a a b b b b

Zásobníkový automat. SlovoaaaabbbbpatřídojazykaL={a i b i i 1} a a a a b b b b ChtělibychomrozpoznávatjazykL={a i b i i 1} Snažíme se navrhnout zařízení(podobné konečným automatům), které přečte slovo, a sdělí nám, zda toto slovo patřídojazykalčine. Při čtení a-ček si musíme pamatovat

Více

Vlastnosti regulárních jazyků

Vlastnosti regulárních jazyků Vlastnosti regulárních jazyků Podobně jako u dalších tříd jazyků budeme nyní zkoumat následující vlastnosti regulárních jazyků: vlastnosti strukturální, vlastnosti uzávěrové a rozhodnutelné problémy pro

Více

Informatika Algoritmy

Informatika Algoritmy Informatika Algoritmy Radim Farana Podklady předmětu Informatika pro akademický rok 2010/2011 Obsah Algoritmus. Vlastnosti algoritmu. Popis algoritmu. Hodnocení algoritmů. Příklady algoritmů. Algoritmus

Více

Vstupní a vstupní proudy v C++

Vstupní a vstupní proudy v C++ Programovací jazyk C++ MZLU - PEF - Ústav informatiky 11. října 2007 Vstup na terminál a čtení z něj Používá se knihovna iostream. Pro výstup lze použít standardní výstup cout. nebo chybový výstup cerr.

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Strukturované proměnné Pole (array), ukazatele (pointer) Jazyk C České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015 Pole (array) (1) Pole je množina

Více

Dynamické programování

Dynamické programování Dynamické programování prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA)

Více

NPRG030 Programování I, 2016/17 1 / :58:13

NPRG030 Programování I, 2016/17 1 / :58:13 NPRG030 Programování I, 2016/17 1 / 31 10. 10. 2016 10:58:13 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE NPRG030 Programování

Více

Vyhledávání řetězců. a b a c a a b. a b a c a b. a b a c a b

Vyhledávání řetězců. a b a c a a b. a b a c a b. a b a c a b Vyhledávání řetězců (Pattern Matching) T: P: a b a c a a b a b a c a b 4 1 3 2 a b a c a b Přehled 1. Co je vyhledávání řetězců 2. Algoritmus hrubé síly (Brute force) 3. Algoritmus Boyer Moore 4. Knuth

Více

Operační systémy. Cvičení 4: Programování v C pod Unixem

Operační systémy. Cvičení 4: Programování v C pod Unixem Operační systémy Cvičení 4: Programování v C pod Unixem 1 Obsah cvičení Řídící struktury Funkce Dynamická alokace paměti Ladění programu Kde najít další informace Poznámka: uvedené příklady jsou dostupné

Více

Teoretická informatika - Úkol č.1

Teoretická informatika - Úkol č.1 Teoretická informatika - Úkol č.1 Lukáš Sztefek, xsztef01 18. října 2012 Příklad 1 (a) Gramatika G 1 je čtveřice G 1 = (N, Σ, P, S) kde, N je konečná množina nonterminálních symbolů N = {A, B, C} Σ je

Více

NMIN102 Programování /2 Z, Zk

NMIN102 Programování /2 Z, Zk NMIN102 Programování 2 --- 2/2 Z, Zk Pavel Töpfer Katedra softwaru a výuky informatiky MFF UK MFF Malostranské nám., 4. patro, pracovna 404 pavel.topfer@mff.cuni.cz http://ksvi.mff.cuni.cz/~topfer Pavel

Více

Třída PTIME a třída NPTIME. NP-úplnost.

Třída PTIME a třída NPTIME. NP-úplnost. VAS - Přednáška 9 Úvod ke kursu. Složitost algoritmu. Model RAM. Odhady složitosti. Metoda rozděl a panuj. Greedy algoritmy. Metoda dynamického programování. Problémy, třídy složitosti problémů, horní

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Jazyk C řízení běhu programu České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015 Šest zákonů programování 1. V každém programu je alespoň jedna chyba

Více

Rekurze. Pavel Töpfer, 2017 Programování 1-8 1

Rekurze. Pavel Töpfer, 2017 Programování 1-8 1 Rekurze V programování ve dvou hladinách: - rekurzivní algoritmus (řešení úlohy je definováno pomocí řešení podúloh stejného charakteru) - rekurzivní volání procedury nebo funkce (volá sama sebe přímo

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Jazyk C řízení běhu programu České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015 Šest zákonů programování 1. V každém programu je alespoň jedna chyba

Více

Regulární výrazy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března / 20

Regulární výrazy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března / 20 Regulární výrazy M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 1/ 20 Regulární výrazy Jako například v aritmetice můžeme pomocí operátorů + a vytvářet výrazy jako (5+3)

Více

Poslední aktualizace: 14. října 2011

Poslední aktualizace: 14. října 2011 Lexikální analýza Překladače, přednáška č. 2 Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz http://fpf.slu.cz/ vav10ui Poslední aktualizace: 14. října 2011 Symboly Co je to

Více

Hledání v textu algoritmem Boyer Moore

Hledání v textu algoritmem Boyer Moore Zápočtová práce z Algoritmů a Datových Struktur II (NTIN061) Hledání v textu algoritmem Boyer Moore David Pěgřímek http://davpe.net Algoritmus Boyer Moore[1] slouží k vyhledání vzoru V v zadaném textu

Více

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b Výrazy a operátory i = 2 i = 2; to je výraz to je příkaz 4. Operátory Unární - unární a unární + Např.: +5-5 -8.345 -a +b - unární ++ - inkrement - zvýší hodnotu proměnné o 1 - unární -- - dekrement -

Více

Programovací jazyk C(++) C++ area->vm_mm->locked_vm -= len >> PAGE_SHIFT;

Programovací jazyk C(++) C++ area->vm_mm->locked_vm -= len >> PAGE_SHIFT; Programovací jazyk C(++) static struct vm_area_struct * unmap_fixup(struct mm_struct *mm, struct vm_area_struct *area, unsigned long addr, size_t len, struct vm_area_struct 1. *extra) Základy { struct

Více

Lineární datové struktury

Lineární datové struktury Lineární datové struktury doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 5. března 2019 Jiří Dvorský (VŠB TUO) Lineární datové

Více

Kombinatorika, výpočty

Kombinatorika, výpočty Kombinatorika, výpočty Radek Pelánek IV122 Styl jednoduché výpočty s čísly vesměs spíše opakování + pár dílčích zajímavostí užitečný trénink programování Kombinace, permutace, variace Daná množina M s

Více

Práce s textem. Třída Character. Třída Character. Třída Character. reprezentuje objekty zapouzdřující hodnotu typu char (boxing / unboxing)

Práce s textem. Třída Character. Třída Character. Třída Character. reprezentuje objekty zapouzdřující hodnotu typu char (boxing / unboxing) Třída Character Práce s textem doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz reprezentuje objekty zapouzdřující hodnotu

Více

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu. Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus

Více

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou

Více

O datových typech a jejich kontrole

O datových typech a jejich kontrole .. O datových typech a jejich kontrole Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Typová kontrola Programovací techniky O datových typech

Více

Syntaxí řízený překlad

Syntaxí řízený překlad Syntaxí řízený překlad Překladový automat Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 27. listopadu 2008 Zobecněný překladový automat Překladový automat

Více

Základy algoritmizace. Pattern matching

Základy algoritmizace. Pattern matching Základy algoritmizace Pattern matching 1 Pattern matching Úloha nalézt v nějakém textu výskyty zadaných textových vzorků patří v počítačové praxi k nejfrekventovanějším. Algoritmy, které ji řeší se používají

Více

Definice uživatelského typu. Uživatelem definované typy. Součinové datové typy. Součtové datové typy. FLP - Uživatelem definované typy

Definice uživatelského typu. Uživatelem definované typy. Součinové datové typy. Součtové datové typy. FLP - Uživatelem definované typy Uživatelem definované typy Ing. Lumír Návrat katedra informatiky, A 1018 59 732 3252 Definice uživatelského typu data Color = Red Green Blue Color typový konstruktor Red / Green / Blue datové konstruktory

Více

Metodický koncept k efektivní podpoře klíčových odborných kompetencí s využitím cizího jazyka ATCZ62 - CLIL jako výuková strategie na vysoké škole

Metodický koncept k efektivní podpoře klíčových odborných kompetencí s využitím cizího jazyka ATCZ62 - CLIL jako výuková strategie na vysoké škole Pattern matching Metodický koncept k efektivní podpoře klíčových odborných kompetencí s využitím cizího jazyka ATCZ62 - CI jako výuková strategie na vysoké škole Pattern matching porovnávání vzorů Hledání

Více

Třída PTIME a třída NPTIME. NP-úplnost.

Třída PTIME a třída NPTIME. NP-úplnost. VAS - Přednáška 9 Úvod ke kursu. Složitost algoritmu. Model RAM. Odhady složitosti. Metoda rozděl a panuj. Greedy algoritmy. Metoda dynamického programování. Problémy, třídy složitosti problémů, horní

Více

Programovanie I. Úvod do programovania Mgr. Stanislav Horal, Katedra informatiky, FPV, UCM

Programovanie I. Úvod do programovania Mgr. Stanislav Horal, Katedra informatiky, FPV, UCM Programovanie I 9.10.2007 Úvod do programovania Mgr. Stanislav Horal, Katedra informatiky, FPV, UCM Algoritmus (1) Existuje niekoľko definícií pojmu algoritmus Algoritmus je presná postupnosť krokov a

Více

Přijímací zkouška na navazující magisterské studium 2015

Přijímací zkouška na navazující magisterské studium 2015 Přijímací zkouška na navazující magisterské studium 2015 Studijní program: Studijní obory: Matematika MMUI Varianta A Řešení příkladů pečlivě odůvodněte. Příklad 1 (25 bodů Navrhněte deterministický konečný

Více

Kapitola 7: Návrh relačních databází. Nástrahy relačního návrhu. Příklad. Rozklad (dekompozice)

Kapitola 7: Návrh relačních databází. Nástrahy relačního návrhu. Příklad. Rozklad (dekompozice) - 7.1 - Kapitola 7: Návrh relačních databází Nástrahy návrhu relačních databází Dekompozice (rozklad) Normalizace použitím funkčních závislostí Nástrahy relačního návrhu Návrh relačních databází vyžaduje

Více

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE STRUKTURA PŘEKLADAČE

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE STRUKTURA PŘEKLADAČE PROGRAMOVACÍ JAZYKY A PŘEKLADAČE STRUKTURA PŘEKLADAČE 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Základní informace Přednášky: doc. Ing. Jan Janoušek, Ph.D.

Více

Regulární výrazy. Filtry grep, sed a awk.

Regulární výrazy. Filtry grep, sed a awk. Přednáška 5 Regulární výrazy. Filtry grep, sed a awk. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2011 Příprava studijního programu Informatika je podporována projektem

Více

Algoritmy výpočetní geometrie

Algoritmy výpočetní geometrie Algoritmy výpočetní geometrie prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA)

Více

NPRG030 Programování I, 2017/18 1 / :22:16

NPRG030 Programování I, 2017/18 1 / :22:16 NPRG030 Programování I, 2017/18 1 / 26 20. 10. 2017 11:22:16 Ordinální typy standardní: integer, char, boolean Vlastnosti ordinálních typů: 1. hodnot je konečný počet a hodnoty jsou uspořádány 2. ke každé

Více

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44 Algoritmizace a programování Ak. rok 2012/2013 vbp 1. ze 44 Vladimír Beneš Petrovický K101 katedra matematiky, statistiky a informačních technologií vedoucí katedry E-mail: vbenes@bivs.cz Telefon: 251

Více

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA BAKALÁŘSKÁ PRÁCE 2002 SEDLÁK MARIAN - 1 - OSTRAVSKÁ UNIVERZITA PŘÍRODOVĚDECKÁ FAKULTA KATEDRA INFORMATIKY A POČÍTAČŮ Vizualizace principů výpočtu konečného

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Páté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 5. týden

Více

Základní datové struktury III: Stromy, haldy

Základní datové struktury III: Stromy, haldy Základní datové struktury III: Stromy, haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní

Více

Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března / 32

Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března / 32 Formální jazyky Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 1/ 32 Abeceda a slovo Definice Abeceda je libovolná neprázdná konečná množina symbolů(znaků). Poznámka: Abeceda se často

Více

Pozn.MinulejsmesekPSPACEnedostali,protojezdepřekryvstextemzminula.

Pozn.MinulejsmesekPSPACEnedostali,protojezdepřekryvstextemzminula. Teoretická informatika průběh výuky v semestru 1 Týden 11 Přednáška Pozn.MinulejsmesekPSPACEnedostali,protojezdepřekryvstextemzminula. PSPACE, NPSPACE, PSPACE-úplnost Uvědomilijsmesi,ženapř.prozjištěnítoho,zdaBílýmánějakoustrategiivehřeŠACHY,

Více

Vztah jazyků Chomskeho hierarchie a jazyků TS

Vztah jazyků Chomskeho hierarchie a jazyků TS Vztah jazyků Chomskeho hierarchie a jazyků TS Jan Konečný; (přednáší Lukáš Havrlant) 15. října 2013 Jan Konečný; (přednáší Lukáš Havrlant) Chomskeho hierarchie a jazyky TS 15. října 2013 1 / 23 Rychlé

Více

doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je

doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je 28 [181105-1236 ] 2.7 Další uzávěrové vlastnosti třídy regulárních jazyků Z předchozích přednášek víme, že třída regulárních jazyků je uzavřena na sjednocení, průnik, doplněk, zřetězení, Kleeneho operaci

Více

PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/2000. 1 PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/2000 13 stran 1

PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/2000. 1 PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/2000 13 stran 1 PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/2000 1 PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/2000 13 stran 1 PESlib Popis knihoven PASCAL a C 03.2000 2. verze dokumentu Zmìny a doplòky proti 1.

Více

Elegantní algoritmus pro konstrukci sufixových polí

Elegantní algoritmus pro konstrukci sufixových polí Elegantní algoritmus pro konstrukci sufixových polí 22.10.2014 Zadání Obsah Zadání... 3 Definice... 3 Analýza problému... 4 Jednotlivé algoritmy... 4 Algoritmus SA1... 4 Algoritmus SA2... 5 Algoritmus

Více

Pokročilé haldy. prof. Ing. Pavel Tvrdík CSc. Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010

Pokročilé haldy. prof. Ing. Pavel Tvrdík CSc. Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Pokročilé haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (I-EFA) ZS 2010/11,

Více

Činnost: 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.

Činnost: 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V. Přiřazovací příkaz V := E, V jednoduchá nebo indexovaná proměnná, E výraz, jehož typ je kompatibilní podle přiřazení s typem proměnné V. 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.

Více

Implementace LL(1) překladů

Implementace LL(1) překladů Překladače, přednáška č. 6 Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 30. října 2007 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku

Více

Minimalizace KA - Úvod

Minimalizace KA - Úvod Minimalizace KA - Úvod Tyto dva KA A,A2 jsou jazykově ekvivalentní, tzn. že rozpoznávají tentýž jazyk. L(A) = L(A2) Názorně lze vidět, že automat A2 má menší počet stavů než A, tudíž našim cílem bude ukázat

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento

Více

TURINGOVY STROJE. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

TURINGOVY STROJE. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze TURINGOVY STROJE Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 12 Evropský sociální fond Praha & EU: Investujeme do vaší

Více

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 1 / 23 Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 2 / 23 biologové často potřebují najít často se opakující sekvence DNA tyto sekvence bývají relativně krátké,

Více

Úvod do informatiky. Miroslav Kolařík

Úvod do informatiky. Miroslav Kolařík Úvod do informatiky přednáška desátá Miroslav Kolařík Zpracováno dle R. Bělohlávek, V. Vychodil: Diskrétní matematika 2, http://phoenix.inf.upol.cz/esf/ucebni/dm2.pdf P. Martinek: Základy teoretické informatiky,

Více

10 Práce s řetězci - pokračování

10 Práce s řetězci - pokračování 10 Práce s řetězci - pokračování Máme deklarováno: char retez[50]; - čtení z klávesnice: scanf("%s", retez); - čtení zadané počtu znaků z klávesnice scanf("%10s", retez); // přečti řetězec z klávesnice,max

Více

A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk

A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk A7B38UOS Úvod do operačních systémů 6. Cvičení Příkazy sed a awk sed sed [přepínače] 'příkaz' [soubory] sed [přepínače] -f skript [soubory] Stream editor - edituje neinteraktivně jeden nebo více souborů.

Více

Programování v C++ 1, 1. cvičení

Programování v C++ 1, 1. cvičení Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených

Více