Analýza toku dat. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 15. listopad, 2012
|
|
- Jiřina Machová
- před 5 lety
- Počet zobrazení:
Transkript
1 Překladače 2 Analýza toku dat Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 15. listopad, 2012 Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
2 Lokální analýza: živost proměnných neformálně: proměnná je živá, pokud její hodnota bude přečtena nějakou operací předtím, než její hodnota bude opět změněna pro operaci x = y op z platí: x těsně před touto operací není živá proměnná y a z jsou živé před touto operací Eliminace mrtvého kódu určí se živost proměnných všechna přiřazení k proměnným, které nejsou živé, se odstraní Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
3 Příklad: živé proměnné (1/3) a = b c = a d = a + b e = d d = a f = e Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
4 Příklad: živé proměnné (2/3) 6. {b} a = b 5. {a, b} c = a 4. {a, b} d = a + b 3. {a, b, d} e = d 2. {a, b, e} d = a 1. {b, d, e} f = e 0. {b, d} Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
5 Příklad: živé proměnné (3/3) 6. {b} a = b 5. {a, b} c = a 4. {a, b} d = a + b 3. {a, b, d} e = d 2. {a, b, e} d = a 1. {b, d, e} f = e 0. {b, d} Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
6 Analýza toku dat běh programu posloupnost transformací stavu programů provedení operace IR transformace vstupního stavu na výstupní = bod programu před a po operaci má smysl uvažovat vstupní a výstupní bod bloku platí: v rámci základního bloku je bod programu za operací shodný s bodem před následující operací pokud vede hrana z bloku B 1 do B 2, pak bod programu za poslední operací bloku B 1 může být okamžitě následován bodem před prvním operací bloku B 2 Definition Cesta z bodu p 1 do p n je posloupnost bodů programu p 1,..., p n taková, že pro každé i = 1,..., n 1 platí bud : 1 p i předchází operaci a p i+1 okamžitě následuje dané operaci, 2 p i představuje konec bloku a p i+1 představuje začátek bloku následujícího. Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
7 Analýza toku dat obecně lze aplikovat na různé problémy (propagace kopíı, eliminace shodných podvýrazů) hodnota datového toku abstrakce všech možných stavů v daném bodě programu doména množina možných hodnot datového toku (např. potenční množina všech proměnných) závisí na typu problému analýza datového toku: pro každý příkaz s najít hodnoty IN[s] a OUT[s] představující hodnoty datového toku před provedením příkazu a po jeho provedení hodnoty jsou určeny (1) sémantikou operace s, (2) tokem řízení programu problém se řeší zakódováním do tzv. tokových rovnic, respektujícím (1), (2) rovnice řešeny iterativním způsobem Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
8 Přechodová funkce a základní bloky vztah hodnot IN[s] a OUT[s] je určen přechodovou funkcí f s podle směru předávání informací určujeme dopředný tok: OUT[s] = f s (IN[s]) zpětný tok: IN[s] = f s (OUT[s]) Základní bloky v případě základních bloků operace zprácovávány v řadě za sebou: pro základní blok B s příkazy s 1, s 2,..., s n platí: IN[s i+1 ] = OUT[s i ] pro všechna i = 1, 2,..., n 1 budeme označovat: IN[B] = IN[s 1 ] OUT[B] = OUT[s n ] přechodová funkce pro blok B: f B = f sn... f s1 Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
9 Přechodová funkce a základní bloky dopředná analýza: zpětná analýza: OUT[B] = f B (IN[B]) IN[B] = OUT[P] P predchudce B IN[B] = f B (OUT[B]) OUT[B] = IN[S] S naslednik B Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
10 Dosah definice (1/2) pokud víme, kde mohla být definována proměnná x, když se program dostal do bodu p, lze určit, zda x je v bodě p konstanta nebo, zda je vůbec inicializována definice proměnné x je operace, která přiřazuje nebo může přiřazovat proměnné x hodnotu definice d proměnné x dosahuje do bodu p, pokud na cestě jdoucí přímo z d do p není jiná definice proměnné x uvažujme definici: d : u = v + w operace,,generuje definici d proměnné u a odstraňuje ostatní definice proměnné u přechodová funkce pro d: f d (x) = gen d (x kill d ) kde gen d = {d}, kill d množina všech ostatních definic proměnné u v programu. Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
11 Dosah definice (2/2) skládáním přechodových funkcí lze rozšířit na základní bloky, viz str. 604 pro základní bloky platí následující rovnice: OUT[Entry] = pro ostatní základní bloky B: OUT[B] = gen B (IN[B] kill B ) IN[B] = P predchudce B OUT[P] hledáme nejmenší pevný bod: Algoritmus 1 OUT[Entry] = 2 pro každý blok B mimo Entry: OUT[B] = 3 pokud došlo ke změně nějaké OUT[B], opakuj: 4 pro každý blok B mimo Entry: 5 IN[B] = P predchudce B OUT[P] 6 OUT[B] = gen B (IN[B] kill B ) Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
12 Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
13 Analýza živých proměnných (1/2) Proměnná x je živá v bodě p pokud existuje cesta začínající v bodě p, kde může být proměnná x použita, jinak je proměnná v daném bodě mrtvá. def B množina všech definovaných proměnných v bloku B předtím, než byly v bloku B použity use B množina proměnných, jejichž hodnoty mohou být použity v B, aniž by byly definovány pro základní bloky platí následující rovnice: IN[Exit] = pro ostatní základní bloky B: IN[B] = use B (IN[B] def B ) OUT[B] = S naslednik B IN[S] na konci programu jsou všechny proměnné mrtvé proměnná je živá, pokud vstupuje do bloku před svou redefinicí nebo není v bloku předefinována proměnná je živá, pokud je použita v bloku, který je následovníkem Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
14 Analýza živých proměnných (2/2) 1 IN[Exit] = 2 pro každý blok B mimo Exit: IN[B] = 3 pokud došlo ke změně nějaké IN[B], opakuj: 4 pro každý blok B mimo Exit: 5 OUT[B] = S naslednik B IN[S] 6 IN[B] = use B (OUT[B] def B ) Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
15 Analýza dostupných výrazů (1/2) Výraz x op y je dostupný v bodě p, pokud na každé cestě z počátečního uzlu do p dojde k vyhdnocení x op y a po posledním vyhodnocením před p nedojde ke změně x nebo y. Blok,,zabíjí výraz, pokud může měnit x nebo y. Blok,,generuje výraz x op y, pokud vždy daný výraz vyhodnotí a následně nezmění x nebo y. egen B množina všech generovaných výrazů v bloku B ekill B množina zabitých výrazů v bloku B pro základní bloky platí následující rovnice: OUT[Entry] = pro ostatní základní bloky B: IN[B] = P predchuce B OUT[P] OUT[B] = egen B (IN[B] ekill B ) Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
16 Analýza dostupných výrazů (2/2) 1 OUT[Entry] = 2 pro každý blok B mimo Entry: OUT[B] = U 3 pokud došlo ke změně nějaké OUT[B], opakuj: 4 pro každý blok B mimo Entry: 5 OUT[B] = egen B (IN[B] ekill B ) 6 IN[B] = P predchuce B IN[P] U množina všech výrazů, které se mohou objevit na pravé straně operace (,,počáteční odhad ) Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
17 Framework analýzy datového toku Definition Framework analýzy datového toku je čtveřice D, V,, F, kde D je směr toku (Dopředný, Zpětný) V je polosvaz s operací průsek F množina přechodových funkcí f : V V taková, že obsahuje funkci I (x) = x pro všechna x z V a F je uzavřená vzhledem k operaci skládání funkcí. Definition Framework analýzy toku dat D, V,, F je monotonní pokud pro všechna x a y z V a f z F platí: x y f (x) f (y) Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
18 Iterativní algoritmus pro obecný framework Vstup Výstup Postup graf toku dat s uzly Entry a Exit směr toku D množin hodnot V, operátor množina funkcí F, kde f B z F je přechodová funkce pro blok B konstanta v Entry nebo v Exit představující mezní případ pro dopřednou nebo zpětnou analýzu hodnoty V pro IN[B] a OUT[B] pro každý blok B v grafu toku dat pro každý blok B se opakovaně aproximují hodnoty IN[B] a OUT[B] Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
19 Algoritmus Dopředný tok 1 OUT[Entry] = v Entry 2 pro každý blok B mimo Entry: OUT[B] = 3 pokud došlo ke změně nějaké OUT[B], opakuj: 4 pro každý blok B mimo Entry: 5 IN[B] = P predchudce B OUT[P] 6 OUT[B] = f B (IN[B]) Zpětný tok 1 IN[Exit] = v Exit 2 pro každý blok B mimo Exit: IN[B] = 3 pokud došlo ke změně nějaké IN[B], opakuj: 4 pro každý blok B mimo Exit: 5 OUT[B] = S naslednik B IN[S] 6 IN[B] = f B (OUT[B]) Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
20 Vlastnosti algoritmu pokud algoritmus konverguje, výsledek je řešením tokových rovnic pokud je framework monotonní, pak řešení je maximální pevný bod tokových rovnic (tj. pro jiná řešení platí, že hodnoty IN[B] a OUT[B] jsou vzhledem k maximálnímu pevnému bodu) pokud je framework monotonní a polosvaz je konečné výšky, pak algoritmus konverguje Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
21 Propagace konstant pro každý datový typ proměnné zavedeme polosvaz L t = D t {NAC, UNDEF},, kde Dt je množina hodnot, kterých může proměnná nabývat NAC představuje hodnotu,,není konstanta UNDEF představuje hodnotu,,hodnota není definována a platí: NAC v = NAC UNDEF v = v pro všechny hodnoty proměnné v c c = c pro všechny konstanty c c1 c 2 = NAC pro všechny vzájemně různé konstanty c 1 a c 2 Parametry algoritmu: Hodnoty datového toku doména: součin polosvazů L = L t1... L tn, kde každá složka představuje jednu proměnnou programu hodnota datového toku budeme označovat jako m, kde m(v) představuje hodnotu proměnné v z definice: m m = m pokud m (v) = m(v) m (v) pro všechny proměnné v Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
22 Další parametry algoritmu směr: dopředný Množina přechodových funkcí uvažujeme pouze přechodové funkce pro jednotlivé operace (pro bloky lze odvodit skládáním) funkce ve tvaru: f : L L F obsahuje funkce: fi (m) = m, pro všechna m L (identita) f0 (m) = m 0, pro všechna m L, kde m 0 (v) = UNDEF pro všechny proměnné v přechodové funkce fs pro obecný příkaz s pro přechodovou funkci f s a všechna m a m z L taková, že m = f s (m) platí: (1) pokud s není přiřazení, pak f s = f i (2) pokud s je přiřazení proměnné x, pak m (v) = m(v) pro všechny proměnné v x a m (x) je definováno: Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
23 Další parametry algoritmu...dokončení bodu (2)... a m (x) je definováno: (a) pokud je pravá strana výrazu konstanta: m (x) = c (b) pokud je pravá strana výrazu ve tvaru y z m (x) = m(y) m(z), pokud m(y) a m(z) jsou konstanty m (x) = NAC, pokud m(y) nebo m(z) jsou NAC m (x) = UNDEF, jinak (c) pokud je pravá stran jiný typ výrazu (např. volání fce.), pak m (x) = NAC. Poznámky funkce z F jsou monotonní algoritmus konverguje (viz (B)) pokud se objeví UNDEF v kódu, neexistuje cesta, na které by byla definice dané proměnné pokud existuje cesta s definicí proměnná, proměnná nemá hodnotu UNDEF (plyne z definice ) algoritmus může nalézt více konstant než by měl v případě nedefinovaných hodnot může zvolit tuto konstantu jako hodnotu (viz str. 638) Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
24 Odstraňování redundance Globální společné podvýrazy výraz y z je (plně) redundantní v bodě p pokud je v daném bodě dostupný (bude spočítaný na všech cestách do p a nedojde následně po tomto výpočtu k redefinici y a z) výraz y z je částečně redundantní v bodě p pokud existuje cesta do p, kde je výraz y z spočítaný a nedošlo následně k redefinici y a z Invariant cyklu výraz x = y z je invariant cyklu, pokud y a z nejsou v cyklu redefinovány přesun výrazu mimo smyčku a uložení hodnoty do pomocné proměnné v optimalizovaném kódu by se nemělo by se provést víc instrukcí než v neoptimalizovaném (problém, pokud smyčka končí dřív než dojde k vyhodnocení výrazu) jedno z možných řesení pro while while (c) { if (c) { S; ----> do { S;} while (c); } } Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
25 Líné přesouvání kódu odstranění redundance požadujeme následující vlasnosti: všechny redundantní výpočty, které lze odstranit bez duplikace kódu, jsou odstraněny program neprovádí žadný výpočet, který by nebyl proveden v originálním kódu výrazy jsou vyhodnoceny v nejzazším možném bodě algoritmus se snaží vložit kopii výrazu, aby byl výraz plně redundantní Umístění výrazu Výraz x y je očekávaný (anticipated) v bodě p, pokud všechny cesty vedoucí z tohoto bodu v nějakém bodě spočítají hodnotu x y s použitím hodnot x a y, které jsou dostupné v bodě p. Výraz x y je odložitelný (postponable) v bodě p, pokud je očekávaný a bude použitý na každé cestě jdoucí tímto bodem. Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
26 Nástin algoritmu 1 nalezení očekávaných výrazů pro každý bod programu 2 vložení očekávaných výrazů, kde jsou poprvé očekávány + analýza dostupnosti 3 přesun výrazů na místa, kde už nejsou odložitelné 4 odstranění proměnných, které jsou použité pouze jednou Přípravný krok každý příkaz je ve svém bloku pokud má blok více předků, je vložen nový blok mezi počátek a konec této každé hrany pro každý blok máme množiny: euseb množina výrazů spočítaných v B ekillb množina výrazů, jejichž operandy jsou definovány v B Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
27 Očekávané výrazy udávají místo, kam lze vložit výpočet výrazu dřívější umístění umožní redukovat více redundance pozdější umístění redukuje čas nutnný k držení výpočtu výrazu v registru výraz je očekávaný na vstupu do bloku, pokud je generovaný daným blokem (euse B ) výraz je očekávaný na výstupu z bloku, pokud je očekávaný na vstupu do bloku a nejsu předefinovány jeho operandy v daném bloku (ekill B ) Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
28 Nalezení očekávaných výrazů Parametry algoritmu Doména množina výrazů Směr zpětný Přechodová funkce f B (x) = euse B (x ekill B ) Hraniční stav IN[Exit] = Průsek Rovnice IN[B] = f B (OUT[B]) OUT[B] = S naslednik B IN[S] Inicializace IN[B] = U Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
29 Dostupnost výrazů mírně odlišná přechodová funkce: výraz je dostupný na výstupu z bloku, pokud: je dostupný na vstupu do bloku nebo je očekávaný v daném bloku (tj. lze jej spočítat) a není,,zabitý v daném bloku Doména Směr Přechodová funkce Hraniční stav Průsek Rovnice Inicializace množina výrazů dopředný f B (x) = (anticipated[b].in x) ekill B OUT[Entry] = OUT[B] = f B (IN[B]) IN[B] = P predchudce B OUT[P] OUT[B] = U anticipated[b].in výsledek předchozího kroku algoritmu earliest[b] = anticipated[b].in available[b].in první místa vhodná pro výpočet výrazu Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
30 Odložitelnost výrazů odloží vykonání výrazu na nejzazší mez výraz x y je odložitelný (postponeable) do bodu p, pokud dřívější umístění x y leží na každé cestě z Entry do p a neexistuje další použítí x y za tímto umístěním výraz je odložitelný na konci bloku, pokud není použitý v daném bloku a pokud je výraz odložitelný na vstupu do daného bloku nebo je v earliest[b] výraz je odložitelný na začátek bloku, pokud je odložitelný ve všech jeho předchůdcích (na výstupu z bloku) Doména množina výrazů Směr dopředný Přechodová funkce f B (x) = (erliest[b].in x) euse B Hraniční stav OUT[Entry] = Průsek Rovnice OUT[B] = f B (IN[B]) IN[B] = P predchudce B OUT[P] Inicializace OUT[B] = U Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
31 Odložitelnost výrazů umístění výrazu e na hranici, kde se výraz stáva z odložitelného,,neodložitelným výraz e může být umístěn na začátek bloku B pokud e není v postponable[b].in, tj. e je použito e nelze přesunout do některého z následníků Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
32 Použité výrazy výraz je použitý (used) v bodě p, pokud existuje cesta z p taková, že výraz je použit předtím, než je opět vyhodnocen analýza živosti (ale pro výrazy) Doména Směr Přechodová funkce Hraniční stav Průsek Rovnice Inicializace množina výrazů zpětný f B (x) = (euse B x) latest[b] IN[Exit] = IN[B] = f B (OUT[B]) OUT[B] = S naslednik B IN[S] IN[B] = earliest[b] = anticipated[b].in available[b].in latest[b] = (earliest[b] postponable[b].in) (euse B ( S naslednik B (earliest[s] postponable[s].in))) latest[b]... poslední místo, kam lze umístit výrazy Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
33 Přesun Pro každý výraz x y proved : pro všechny bloky B takové, že x y je v latest[b] used[b].out přidej t = x y na začátek B pro všechny bloky B takové, že x y je v nahrad x y proměnnou t euse B ( latest[b] used[b].out]) Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33
Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program
Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup
VíceVyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky
Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové
VíceB3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11
333LP - lgoritmy a programování - Zkouška z předmětu 333LP Jméno Příjmení Už. jméno Marek oháč bohacm11 Zkouškový test Otázka 1 Jaká je hodnota proměnné count po vykonání následujícího kódu: data=[4,4,5,5,6,6,6,7,7,7,7,8,8]
VíceB3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11
Jméno Příjmení Už. jméno Marek oháč bohacm11 Zkouškový test Otázka 1 Jaká je hodnota proměnné count po vykonání následujícího kódu: data=[4,4,5,5,6,6,6,7,7,7,7,8,8] count=0 for i in range(1,len(data)):
VíceČtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
VíceAlgoritmizace 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íceVirtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.
Virtuální počítač Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor Virtuální počítač Překladač Překladač : Zdrojový jazyk Cílový jazyk Analytická část:
VíceParalelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 14 Atomické akce dále nedělitelná = neproložitelná jiným procesem izolovaná =
VíceVISUAL BASIC. Přehled témat
VISUAL BASIC Přehled témat 1 ÚVOD DO PROGRAMOVÁNÍ Co je to program? Kuchařský předpis, scénář k filmu,... Program posloupnost instrukcí Běh programu: postupné plnění instrukcí zpracovávání vstupních dat
VíceAlgoritmizace. 1. Úvod. Algoritmus
1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá
VíceLogické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false
Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární
VícePřednáška 3. Rekurze 1
Paradigmata programování 1 Přednáška 3. Rekurze 1 Michal Krupka KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI Obsah 1 Příklady 2 Rekurzivní procedury a rekurzivní výpočetní proces 3 Další příklady
VíceDenotační sémantika. Marek Běhálek
Denotační sémantika Marek Běhálek Katedra informatiky, FEI, Vysoká škola báňská Technická universita Ostrava 17. listopadu 15, Ostrava-Poruba 708 33 Česká republika 29. listopadu 2015 M. Běhálek (VŠB-TUO)
VíceDijkstrův algoritmus
Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované
VíceAutomaty a gramatiky(bi-aag) Formální překlady. 5. Překladové konečné automaty. h(ε) = ε, h(xa) = h(x)h(a), x, x T, a T.
BI-AAG (2011/2012) J. Holub: 5. Překladové konečné automaty p. 2/41 Formální překlady BI-AAG (2011/2012) J. Holub: 5. Překladové konečné automaty p. 4/41 Automaty a gramatiky(bi-aag) 5. Překladové konečné
VíceDynamické 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íceDefinice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).
7 Barevnost grafu Definice 71 Graf G se nazývá k-obarvitelný, jestliže každému jeho uzlu lze přiřadit jednu z barev 1 k tak, že žádné dva sousední uzly nemají stejnou barvu Definice 72 Nejmenší přirozené
VícePODPROGRAMY PROCEDURY A FUNKCE
PODPROGRAMY PROCEDURY A FUNKCE Programy bez podprogramů Příklady: a) Napište program, který na obrazovku nakreslí čáru složenou ze znaků pomlčka. program Cara; b) Napište program, který na obrazovku nakreslí
VíceAlgoritmizace a programování
Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu
VíceVzdálenost uzlů v neorientovaném grafu
Vzdálenosti a grafy Vzdálenost uzlů v neorientovaném grafu Je dán neorientovaný neohodnocený graf G = (V,E,I) vzdálenost uzlů u a v v neorientovaném souvislém grafu G je délka nejkratší cesty spojující
VíceGENEROVÁNÍ KÓDU 9. SHRNUTÍ - PŘÍKLAD POSTUPU PŘEKLADU VSTUPNÍHO PROGRAMU (ZA POUŽITÍ DOSUD ZNÁMÝCH TECHNIK)
GENEROVÁNÍ KÓDU 9. SHRNUTÍ - PŘÍKLAD POSTUPU PŘEKLADU VSTUPNÍHO PROGRAMU (ZA POUŽITÍ DOSUD ZNÁMÝCH TECHNIK) 2011 Jan Janoušek MI-GEN Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Úvod
Více2. lekce Algoritmus, cyklus Miroslav Jílek
2. lekce Algoritmus, cyklus Miroslav Jílek 1/36 Algoritmus 2/36 Algoritmus je konečná posloupnost operací, která dává řešení skupiny problémů 3/36 Algoritmus je konečná posloupnost operací, která dává
VíceAlgoritmizace 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Řídicí struktury. alg3 1
Řídicí struktury Řídicí struktura je programová konstrukce, která se skládá z dílčích příkazů a předepisuje pro ně způsob provedení Tři druhy řídicích struktur: posloupnost, předepisující postupné provedení
VíceBinární vyhledávací stromy II
Binární vyhledávací stromy II doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 19. března 2019 Jiří Dvorský (VŠB TUO) Binární vyhledávací
VíceVlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost
Programování Algoritmus návod na vykonání činnosti, který nás od (měnitelných) vstupních dat přivede v konečném čase k výsledku přesně definovaná konečná posloupnost činností vedoucích k výsledku (postup,
VíceÚvod do programování. Lekce 3
Úvod do programování Lekce 3 Řízení běhu programu - pokračování /2 příklad: program vypisuje hodnotu sin x dx pro různé délky integračního kroku 0 #include #include // budeme pouzivat funkci
VíceDynamické datové struktury III.
Dynamické datové struktury III. Halda. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované
VíceProgramovací 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íce2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5
Obsah Obsah 1 Řídicí struktury 1 2 Podmínka 1 2.1 Podmínka typu case......................... 2 3 Příkaz skoku 3 4 Cykly 4 4.1 Cyklus s podmínkou na začátku................... 4 4.2 Cyklus s podmínkou
VíceDefinice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování.
9.5 Třída NP Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování. Příklad. Uvažujme problém IND a následující
Více10. Složitost a výkon
Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 10 1 Základy algoritmizace 10. Složitost a výkon doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Jiří
VíceOptimalizace & soft omezení: algoritmy
Optimalizace & soft omezení: algoritmy Soft propagace Klasická propagace: eliminace nekonzistentních hodnot z domén proměnných Soft propagace: propagace preferencí (cen) nad k-ticemi hodnot proměnných
VíceVyhledá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íceObsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest
Obsah prezentace Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest 1 Základní pojmy Vrchol grafu: {množina V} Je to styčná vazba v grafu, nazývá se též uzlem, prvkem
VíceMaturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
Vícetype Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;
Vícerozměrné pole type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; M[2,3] := 3145; - počet indexů není omezen (v praxi obvykle nejvýše tři) - více indexů pomalejší přístup k prvku (počítá
VíceKonzistentnost. Přednášky z distribuovaných systémů
Konzistentnost Přednášky z distribuovaných systémů Pro a proti replikaci 1. Zvýšení spolehlivosti. 2. Zvýšení výkonnosti. 3. Nutnost zachování škálovatelnosti systému co do počtu komponent i geografické
VíceÚvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
VíceAlgoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39
Algoritmy Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna 2018 1/ 39 Algoritmy Příklad: Popis algoritmu pomocí pseudokódu: Algoritmus 1: Algoritmus pro nalezení největšího prvku v poli 1 Find-Max(A,n):
Více3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti
Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti 3. přednáška nalezení největšího prvku, druhého nejvyššího prvku, algoritmus shozeného praporku. Algoritmizace
Více4. NP-úplné (NPC) a NP-těžké (NPH) problémy
Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA 4. NP-úplné (NPC) a NP-těžké (NPH) problémy Karpova redukce
VíceSada 1 - Základy programování
S třední škola stavební Jihlava Sada 1 - Základy programování 06. Proměnné, deklarace proměnných Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284
Více3 Co je algoritmus? 2 3.1 Trocha historie... 2 3.2 Definice algoritmu... 3 3.3 Vlastnosti algoritmu... 3
Obsah Obsah 1 Program přednášek 1 2 Podmínky zápočtu 2 3 Co je algoritmus? 2 3.1 Trocha historie............................ 2 3.2 Definice algoritmu.......................... 3 3.3 Vlastnosti algoritmu.........................
VíceUkazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný
Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný typem proměnné - ukazatel je tedy adresa společně s
VíceNPRG030 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íceFunkce, podmíněný příkaz if-else, příkaz cyklu for
Funkce, podmíněný příkaz if-else, příkaz cyklu for Definice funkce Funkce je pojmenovaná část programu, kterou lze dále zavolat v jiné části programu. V Pythonu je definována klíčovým slovem def. Za tímto
VíceVyvažování a rotace v BVS, všude se předpokládá AVL strom
Vyvažování a rotace v BVS, všude se předpokládá AVL strom 1. Jednoduchá levá rotace v uzlu u má operační složitost a) závislou na výšce levého podstromu uzlu u b) mezi O(1) a Θ(n) c) závislou na hloubce
VíceZá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íceNPRG030 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íceAlgoritmizace a programování
Algoritmizace a programování Strukturované proměnné Struktura, union Jazyk C České vysoké učení technické Fakulta elektrotechnická A8B14ADP Jazyk C - Strukturované proměnné Ver.1.10 J. Zděnek 20151 Struktura
VíceIV113 Validace a verifikace
IV113 Validace a verifikace Lehký úvod do analýzy programů Jiří Barnat Analýza programů IV113 Úvod do validace a verifikace: Analýza programů str. 2/29 Cíle programové analýzy Odvodit vlastnosti programů
Více3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA
Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI
VícePascal. 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íce2) 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íceAlgoritmizace 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 Vývojové diagramy Daniela Szturcová
VíceFunkce jedn e re aln e promˇ enn e Derivace Pˇredn aˇska ˇr ıjna 2015
Funkce jedné reálné proměnné Derivace Přednáška 2 15. října 2015 Obsah 1 Funkce 2 Limita a spojitost funkce 3 Derivace 4 Průběh funkce Informace Literatura v elektronické verzi (odkazy ze STAGu): 1 Lineární
VíceAlgoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.
Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou
VícePracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus
Pracovní listy - programování (algoritmy v jazyce Visual Basic) Předmět: Seminář z informatiky a výpočetní techniky Třída: 3. a 4. ročník vyššího stupně gymnázia Algoritmus Zadání v jazyce českém: 1. Je
VíceZáklady umělé inteligence
Základy umělé inteligence Automatické řešení úloh Základy umělé inteligence - prohledávání. Vlasta Radová, ZČU, katedra kybernetiky 1 Formalizace úlohy UI chápe řešení úloh jako proces hledání řešení v
VícePŘEDNÁŠKA 2 POSLOUPNOSTI
PŘEDNÁŠKA 2 POSLOUPNOSTI 2.1 Zobrazení 2 Definice 1. Uvažujme libovolné neprázdné množiny A, B. Zobrazení množiny A do množiny B je definováno jako množina F uspořádaných dvojic (x, y A B, kde ke každému
VíceInterpolace Uvažujme třídu funkcí jedné proměnné ψ(x; a 0,..., a n ), kde a 0,..., a n jsou parametry, které popisují jednotlivé funkce této třídy. Mějme dány body x 0, x 1,..., x n, x i x k, i, k = 0,
VícePřednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.
Přednáška 7 Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu. 1 Příkaz expr výraz Celočíselná aritmetika I Zašle na standardní výstup vyhodnocení výrazu
VíceReprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz
Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz (2 + 5) * (13-4) * + - 2 5 13 4 - listy stromu obsahují operandy (čísla) - vnitřní uzly obsahují operátory (znaménka)
VícePROGRAMOVÁNÍ V SHELLU
PROGRAMOVÁNÍ V SHELLU Prostředí, jazyk, zdrojový kód chceme-li posloupnost jistých příkazů používat opakovaně, případně z různých míst adresářové struktury, můžeme tuto posloupnost uložit souboru, který
Více1. D Y N A M I C K É DAT O V É STRUKTUR Y
1. D Y N A M I C K É DAT O V É STRUKTUR Y Autor: Petr Mik Abychom se mohli pustit do dynamických datových struktur, musíme se nejdřív podívat na datový typ ukazatel. 1. D AT O V Ý TYP U K A Z AT E L Datové
VíceMatice sousednosti NG
Matice sousednosti NG V = [ v ij ] celočíselná čtvercová matice řádu U v ij = ρ -1 ( [u i, u j ] )... tedy počet hran mezi u i a u j?jaké vlastnosti má matice sousednosti?? Smyčky, rovnoběžné hrany? V
VíceAlgoritmizace. Obrázek 1: Přeložení programu překladačem
Algoritmizace V každém okamžiku ví procesor počítače přesně, co má vykonat. Pojmem procesor se v souvislosti s algoritmy označuje objekt (např. stroj i člověk), který vykonává činnost popisovanou algoritmem.
VícePřijímací zkoušky z matematiky pro akademický rok 2018/19 NMgr. studium Učitelství matematiky ZŠ, SŠ
Přijímací zkoušky z matematiky pro akademický rok 8/9 NMgr studium Učitelství matematiky ZŠ, SŠ Datum zkoušky: Varianta Registrační číslo uchazeče: Příklad 3 4 5 Celkem Body Ke každému příkladu uved te
VíceDiferenciální počet funkcí jedné proměnné
Diferenciální počet funkcí jedné proměnné 1 4. Derivace funkce 4.3. Průběh funkce 2 Pro přesné určení průběhu grafu funkce je třeba určit bližší vlastnosti funkce. Monotónnost funkce Funkce monotónní =
VíceAutomatická segmentace slov s pomocí nástroje Affisix. Michal@Hrusecky.net, Hlavacova@ufal.mff.cuni.cz
Automatická segmentace slov s pomocí nástroje Affisix Michal Hrušecký, Jaroslava Hlaváčová Michal@Hrusecky.net, Hlavacova@ufal.mff.cuni.cz Motivace Při zpracování přirozeného jazyka nikdy nemůžeme mít
VíceAlgoritmy na ohodnoceném grafu
Algoritmy na ohodnoceném grafu Dvě základní optimalizační úlohy: Jak najít nejkratší cestu mezi dvěma vrcholy? Dijkstrův algoritmus s t Jak najít minimální kostru grafu? Jarníkův a Kruskalův algoritmus
VíceMatematika (KMI/PMATE)
Matematika (KMI/PMATE) Přednáška druhá aneb Úvod do matematické analýzy Limita a spojitost funkce Matematika (KMI/PMATE) 1 / 30 Osnova přednášky lineární funkce y = kx + q definice lineární funkce význam
VícePROGRAMOVACÍ 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íceMatematická analýza pro informatiky I. Limita posloupnosti (I)
Matematická analýza pro informatiky I. 3. přednáška Limita posloupnosti (I) Jan Tomeček tomecek@inf.upol.cz http://aix-slx.upol.cz/ tomecek/index Univerzita Palackého v Olomouci 25. února 2011 tomecek@inf.upol.cz
VíceRegulace frekvence a napětí
Regulace frekvence a napětí Ivan Petružela 2006 LS X15PES - 5. Regulace frekvence a napětí 1 Osnova Opakování Blokové schéma otáčkové regulace turbíny Statická charakteristika (otáčky, výkon) turbíny Zajištění
VíceTeorie měření a regulace
Ústav technologie, mechanizace a řízení staveb Teorie měření a regulace 22.z-3.tr ZS 2015/2016 2015 - Ing. Václav Rada, CSc. TEORIE ŘÍZENÍ druhá část tématu předmětu pokračuje. oblastí matematických pomůcek
VíceVyhledá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íceProgramování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole
Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Příkaz switch Příkaz switch provede příslušnou skupinu příkazů na základě hodnoty proměnné (celočíselné
VíceObsah. 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ícePříkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -
Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky - Preprocesor je možné ovládat pomocí příkazů - řádky začínající
VíceAlgoritmy I. Cvičení č. 2, 3 ALGI 2018/19
Algoritmy I Cvičení č. 2, 3 1 ALG I, informace Cvičící RNDr. Eliška Ochodková, Ph.D., kancelář EA439 eliska.ochodkova@vsb.cz www.cs.vsb.cz/ochodkova Přednášející doc. Mgr. Jiří Dvorský, Ph.D., kancelář
VíceVýukový materiál zpracován v rámci projektu EU peníze školám
Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ. 1.07/1.5.00/34.0637 Šablona III/2 Název VY_32_INOVACE_39_Algoritmizace_teorie Název školy Základní škola a Střední
VíceÚvod do teorie grafů
Úvod do teorie grafů Neorientovaný graf G = (V,E,I) V množina uzlů (vrcholů) - vertices E množina hran - edges I incidence incidence je zobrazení, buď: funkce: I: E V x V relace: I E V V incidence přiřadí
Více= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez
Síť Síť je čtveřice N = ( G, s, t, c) kde G ( V, A) = je prostý orientovaný graf a každé orientované hraně ( u, v) je přiřazeno nezáporné číslo, které se nazývá kapacita hrany ( u, v), formálně c ( u,
Více12. Automatické vyhodnocení derivací. jaro 2012
1/16 12. derivací jaro 2012 2/16 Motivace kromě funkce dokážeme vyhodnotit i její derivace první, druhé,... parciální mnohé numerické problémy jsou lépe řešitelné metodami s dostupnou derivací metody s
VíceÚloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů
Stavový prostor a jeho prohledávání SP = formalismus k obecnějšímu uchopení a vymezení problému, který spočívá v nalezení posloupnosti akcí vedoucích od počátečního stavu úlohy (zadání) k požadovanému
VíceParadigmata programování 1
Paradigmata programování 1 Vytváření abstrakcí pomocí procedur Vilém Vychodil Katedra informatiky, PřF, UP Olomouc Přednáška 2 V. Vychodil (KI, UP Olomouc) Vytváření abstrakcí pomocí procedur Přednáška
VíceRekonstrukce diskrétního rozdělení psti metodou maximální entropie
Rekonstrukce diskrétního rozdělení psti metodou maximální entropie Příklad Lze nalézt četnosti nepozorovaných stavů tak, abychom si vymýšleli co nejméně? Nechť n i, i = 1, 2,..., N jsou známé (absolutní)
VíceZPRO v "C" Ing. Vít Hanousek. verze 0.3
verze 0.3 Hello World Nejjednoduší program ukazující vypsání textu. #include using namespace std; int main(void) { cout
VíceFaculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 40 regula Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague regula 1 2 3 4 5 regula 6 7 8 2 / 40 2 / 40 regula Iterační pro nelineární e Bud f reálná funkce
VíceKonečný automat. Jan Kybic.
Konečný automat Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2017 1 / 33 Konečný automat finite state machine Konečný automat = výpočetní model, primitivní počítač Řídící jednotka s
VíceDiferenciální počet funkcí jedné proměnné
Diferenciální počet funkcí jedné proměnné 1 3. Limita funkce 3.2. Limita funkce v nevlastním bodě 2 Limita funkce v nevlastním bodě Ukážeme, že je možné definovat limitu funkce i pro x +, x - Uvažujme
VíceFunkce a limita. Petr Hasil. Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF)
Funkce a limita Petr Hasil Přednáška z matematiky Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem na discipĺıny společného základu
VíceRegulá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íceRekurzivní algoritmy
Rekurzivní algoritmy 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) ZS
VíceProhledávání do šířky = algoritmus vlny
Prohledávání do šířky = algoritmus vlny - souběžně zkoušet všechny možné varianty pokračování výpočtu, dokud nenajdeme řešení úlohy průchod stromem všech možných cest výpočtu do šířky, po vrstvách (v každé
VíceStromy, haldy, prioritní fronty
Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík
VíceEVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI
EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!
VíceSoustavy linea rnı ch rovnic
[1] Soustavy lineárních rovnic vlastnosti množin řešení metody hledání řešení nejednoznačnost zápisu řešení a) soustavy, 10, b) P. Olšák, FEL ČVUT, c) P. Olšák 2010, d) BI-LIN, e) L, f) 2009/2010, g)l.
Více