11 VYPOČITATELNOST A VÝPOČTOVÁ SLOŽITOST

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

Download "11 VYPOČITATELNOST A VÝPOČTOVÁ SLOŽITOST"

Transkript

1 11 VYPOČITATELNOST A VÝPOČTOVÁ SLOŽITOST Na první přednášce jsme si neformálně zavedli pojmy problém a algoritmus pro jeho řešení, které jsme na počítači vykonávali pomocí programů. Jako příklad uveďme problém řazení. Pro tento problém jsme uvedli algoritmy řazení -výběrem -vkládáním -bublinkové -Shellovo -haldou -slučováním -dělením Programy mohly množinu řazených prvků uchovávat pomocí - pole -spojového seznamu Jednotlivé algoritmy a jejich programové realizace jsme analyzovali z pohledu jejich časové případně paměťové náročnosti. Položme jsme si otázku jak je to s problémem samotným. Na to musíme přesněji odpovědět co je to problém. Další přirozenou otázkou je zda-li každý problém má algoritmus pro svoje řešení, jinými slovy je-li algoritmicky řešitelný. Víme-li, že tomu tak je, zřejmě má smysl se ptát jaký algoritmus je optimální. Předpokládejme, že bychom pro problém řazení znali jenom první tři z uvedených algoritmů. To by mohlo vést k domněnce, že nejlepší algoritmus řazení je O(N 2 ). Víme však, že všechny další jsou efektivnější. Neexistuje však další, dosud neznámý, algoritmus pro problém řazení N prvků? Jak je to s jinými problémy? Jak jsou těžké, rozumíme-li tím množství práce potřebné na jejich vykonání?

2 Abstrakce problému Abychom mohli studovat naznačené otázky musíme pojem problému formalizovat. Problém Q definujeme jako binární relaci nad množinou instancí problému I a množinou řešení S. Pro problém řazení například přirozených čísel je množina instancí množina všech jednoprvkových, dvou prvkových,... posloupností a množina řešení je množina těch posloupností, které jsou seřazeny. Uvedené zobrazení potom můžeme obvyklým způsobem vyjádřit následovně: I S ,1 1,1 1,2 1,2 2,1 1,2 2,2 2,2 Vidíme, že různé instance problému mohou mít stejné řešení, ale ne více řešení a v tomto případě je problém vyjádřen funkcí. Uvažujme však problém nalezení nejkratší cesty v grafu. Instancí problému je konkrétní graf a dva jeho vrcholy. Pro každou takovou trojici je řešením posloupnost vrcholů na nejkratší cestě, včetně prázdné posloupnosti, označující neexistenci cesty mezi zadanými vrcholy. Nyní jde obecně o zobrazení, protože nejkratších cest mezi dvěma vrcholy v grafu může být více.

3 Algoritmická řešitelnost problémů Máme-li problém formalizován ptejme se, jest-li existuje pro každý problém formalizovaný uvedeným způsobem algoritmus. Pro tento účel je uvedená abstrakce problému obecnější než je nutné. Stačí, omezíme-li se na třídu rozhodovacích problémů. Rozhodovací problémy jsou takové, kterých množina řešení je dvouhodnotová ano/ne. Pro rozhodovací problémy je zobrazení množiny instancí na množinu řešení funkcí. Rozhodovací problémy můžeme formulovat ve vztahu k uvedeným obecnějším problémům. Pro problém řazení je odpovídající rozhodovací problém následující funkce I S 1 ano 2 ano 1,1 ano 1,2 ano 2,1 ne 2,2 ano Známe-li řešení uvedeného rozhodovacího problému umíme řešit i odpovídající problém, například systematickým generováním všech permutací prvků zadané posloupnosti a rozhodováním zda jsou seřazeny.

4 Použijeme-li na řešení problému počítač instance problému bude použitím odpovídajícího kódování vyjádřena jako řetězec 0 a 1, který můžeme jednojednoznačně interpretovat jako celé číslo (možná velmi veliké) a instanci problému říkáme vstup programu. Řešení, výstup program, můžeme kódovat 1=ano, 0=ne. Nyní je rozhodovací problém formalizován jako funkce f: N {0, 1} Příklad: Problém: Je zadané přirozené číslo liché? I / n N S / f(n) Uvedený problém řeší například následující algoritmy, zapsané jako metody v Javě. int jeliche1(int n) { return n%2; } int jeliche2(int n) { for( ; n > 1; n-=2); return n; } Tak jako v případě problému řazení, existuje víc než jeden algoritmus řešení problému. Předpokládejme, že najdeme problém, pro který neumíme napsat v Javě algoritmus, jinými slovy je neřešitelný JVM. Otázka je neexistuje-li jiný formalizmus pro zápis algoritmu, který by takový problém řešil.

5 Ve třicátých letech minulého století, Alan Turing zavedl pro opis algoritmů formální prostředek, nazývaný Turingovy stroje a Alonzo Church lambda-kalkulus. Ukázali, že opisují stejnou množinu funkcí. Churchova Turingova teze tvrdí, že každý algoritmus může být vykonán Turingovým strojem. Navíc, každý program v konvenčních programovacích jazycích může být transformován na Turingův stroj a naopak. Konvenční programovací jazyky a také Java jsou dostatečné pro vyjádření jakéhokoliv algoritmu. Také další formalizace pojmu algoritmu vedly ke stejnému výsledku a obecně se předpokládá platnost Churchovy Turingovy teze. Churchova Turingova teze však není větou a nemůže být dokázána. Může být vyvrácena, bude-li objevena metoda akceptována jako algoritmus, který nebude možno vykonat Turingovým strojem. Existuje-li tedy rozhodovací problém, pro jehož řešení neexistuje program, například v Javě, potom je tento problém algoritmicky neřešitelný a naopak. Uvažujme všechny rozhodovací programy v Javě. Jejich binární tvar můžeme interpretovat jako celá čísla a vyjmenovat je v jejich pořadí, tedy P1, P2,..., Pn,.... Každý z nich může mít vstup interpretovaný jako celé číslo 1, 2,..., k,... a jeho výstupem je Pn(k) {0, 1}. Vytvořme matici k... P1 P1(1) P1(2)... P1(k)... P2 P2(1) P2(2)... P2(k)... Pn Pn(1) Pn(2)... Pn(k)...

6 Má-li každý rozhodovací problém specifikovaný nějakou funkcí f: N {0, 1} aspoň jeden program v Javě, jenž jej vypočítá, musí v uvedené matici existovat řádek Px takový, že Px(k) = f(k), k = 1, 2,... Musí tam být například řádky pro programy s metodami jeliche1() a jeliche2() k... P1 P1(1) P1(2)... P1(k)... P2 P2(1) P2(2)... P2(k)... jeliche jeliche Pn Pn(1) Pn(2)... Pn(k)... Metodou diagonalizace můžeme ukázat, že existuje problém, tj. funkce f: N {0, 1}, pro kterou v uvedené matici není žádný program. Problém nazveme D a je definován následovně: D(k) = 1 je-li Pk(k) = 0 0 je-li Pk(k) = 1 k = 1, 2, Takto definovaný problém existuje, ale nemůže být vypočten programem P1, protože D(1) P1(1) P2, protože D(2) P2(2)... Pn, protože D(n) Pn(n)...

7 Pro rozhodovací problém D, tedy neexistuje v Javě žádný program a tedy ani žádný algoritmus. Pro libovolné pořadí řádků v matici můžeme definovat odpovídající problém D. Existují tedy rozhodovací problémy, pro které neexistují v Javě programy a tedy vzhledem k Churchově-Turingově tezi, pro ně neexistují žádné algoritmy. Takové problémy se nazývají algoritmicky nerozhodnutelné. První algoritmicky nerozhodnutelný problém ukázal v roce 1936 Alan Turing. Jde o problém zastavení (halting problem), který pomocí programů například v Javě, můžeme formulovat následovně: Vstup: Program P v Javě reprezentován jako celé číslo a jeho vstup k reprezentován také jako celé číslo. Výstup: 1 když se program P zastaví, 0 když se program P nezastaví Ptáme se zda existuje v Javě program, který vypočítá (řeší) problém zastavení. Opět uvažujme všechny programy v Javě, J1, J2,..., Jn,... a vytvořme matici, jejíž prvky jsou výstupy těchto programů pro jejich vstupy anebo?, pokud pro daný vstup program nezastaví. Například J1 5 4? 8... J2?? J ?... J4 5 9??... D

8 Nechť existuje metoda pro rozhodnutí zda se program Jn pro vstup k zastaví nebo ne. Potom metodou diagonalizace můžeme vytvořit program D, kterého výstup D(k) je 0 když Jk(k) nezastaví a Jk(k) + 1, když zastaví. Tento program však musí být jedním z programů J1, J2,..., Jn,..., což nemůže, protože jeho výstup D(k) je různý od Jk(k). Pro problém zastavení tedy neexistuje v Javě program, tedy ani žádný algoritmus a problém zastavení je algoritmicky nerozhodnutelný. Uvedený výsledek lze také dosáhnout následujícím postupem. Nechť existuje metoda zastavi() s parametry program v Javě J a jeho vstup w, oba reprezentované celými čísly, která vráti true jestliže program J pro vstup w se zastaví a false, jestliže se nezastaví. boolean zastavi(int J, int w) { return boolean z = program J pro vstup w se zastavi; } Můžeme napsat metodu, která bude cyklovat, když metoda zastavi() vrátí true. boolean cyklujkdyzzastavi(int J, int w) { if (zastavi(j, w)) for ( ; ;); return false; } Nyní zvažme program, který volá metodu cyklujkdyzzastavi se sebou pro sebe, tj. její parametry jsou její celočíselné reprezentace.

9 class X {... void x boolean() { return cyklujkdyzzastavi(cyklujkdyzzastavi, cyklujkdyzzastavi) } public static void main(string args[]) { x; } V tomto případě když metoda zastavi()vrátí false program zastaví (a vrátí false) a zůstane cyklovat, když zastavi() pro něj vrátí true, což je spor a tedy algoritmus pro problém zastavení nemůže existovat. ZACNI ano ZASTAVI? ne ZASTAV

10 Dolní omezení pro porovnávací řazení Zkoumejme dolní omezení počtu porovnání T(n) pro porovnávací algoritmy řazení. Předpokládejme, že všechny prvky posloupnosti a 1, a 2,..., a n jsou různé. Porovnávací řazení můžeme znázornit rozhodovacím stromem. Ve vnitřních vrcholech jsou prvky, které algoritmus porovná a v listech je permutace všech prvků původní posloupnosti, která je seřazena. Příklad rozhodovacího stromu pro řazení vkládáním tří prvků.

11 Jakýkoliv správný algoritmus musí vytvořit každou z n! permutací prvků původní posloupnosti. Každá z nich musí být alespoň v jednom listě. Nejhorším případem počtu porovnaní vykonaných algoritmem řazení je nejdelší cesta od kořene stromu k listu, je tedy roven výšce stromu T(n) = h Nyní musíme najít dolní omezení všech rozhodovacích stromů. Nechť rozhodovací strom o výšce h má l listů, potom l 2 h. Současně listů musí být alespoň tolik kolik je permutací, tedy n! l. Potom n! l 2 h a logaritmováním log 2 (n!) h = T(n) Použitím aproximace (n/e) n pro n! je log 2 (n!)=n*log 2 n n* log 2 e, čím dostáváme dolní omezení pro nejhorší případ Ω(n*log 2 n). Protože pro řazení haldou a slučováním je horní omezení času výpočtu O(n*log 2 n) jsou tato řazení asymptoticky optimální.

12 Klasifikace problémů První rozdělení všech problémů jsme již učinili a to na takové, které jsou algoritmicky řešitelné a algoritmicky neřešitelné. Další klasifikace vychází z horního omezení času výpočtu pro velikost vstupu n. Většina našich algoritmů měla časovou náročnost O(n k ) pro nějakou konstantu k, tj. polynomiální. Na druhé straně jsou řešitelné problémy, o nichž víme, že nemají algoritmus s polynomiálním časem výpočtu. Příkladem je problém Hanojských věží, kde minimální počet přesunů disků je 2 n 1. Problémy, které jsou řešitelné v polynomiálním čase považujeme za zvládnutelné, nebo-li lehké a problémy, které vyžadují superpolynomiální čas považujeme za nezvládnutelné, nebo-li těžké. Podobně jako při zkoumání řešitelnosti problémů se omezíme na rozhodovací problémy. Mnoho prakticky důležitých problémů jsou optimalizační problémy, kdy výstupem je hodnota, která nejlépe splňuje zadaná kritéria. Příkladem může být problém, který nazveme NEJKRATŠÍ_CESTA. V grafu G je úkolem najít mezi jeho vrcholy u a v cestu s nejmenším počtem hran.

13 Obvykle můžeme optimalizační problém převést na problém rozhodovací. Pro uvedený problém NEJKRATŠÍ_CESTA odpovídající problém, který nazveme CESTA, je následující. Existuje v daném grafu G mezi vrcholy u a v cesta mající délku nejvíce k hran. Známe-li řešení optimalizačního problému, víme najít řešení rozhodovacího problému. Vyřešením problému NEJKRATŠÍ_CESTA a porovnáním nalezené hodnoty s k máme řešení problému CESTA. Můžeme tedy říct, že rozhodovací problém je lehčí nebo alespoň není těžší než problém optimalizační. Ukážeme-li, že rozhodovací problém je těžký, ukážeme, že i optimalizační problém je těžký. Uvedli jsme již, že pro řešení abstraktního problému na počítači jeho instance musí kódovány do binárních řetězců. Když počítač řeší nějaký abstraktní problém, ve skutečnosti řeší jeho zakódovanou instanci. Problém v tomto tvaru nazýváme konkrétní. Konkrétní problém je řešitelný v polynomiálním čase, existuje-li algoritmus, který ho řeší v čase O(n k ). Třída složitosti P je množina konkrétních problémů řešitelných v polynomiálním čase. Vztah k časové náročnosti řešení abstraktního problému však není přímočarý, ale značně závisí na kódování. Uveďme jako příklad zjištění hrany mezi dvěma vrcholy grafu. Je-li graf zakódován maticí sousednosti je čas výpočtu Θ(1) a je-li zakódován seznamy sousednosti je Θ(n), kde n = V. Podobně mějme algoritmus, kterého vstup je celé číslo k a časová náročnost je Θ(k). Velikost vstupu takových algoritmů vyjadřujeme počtem znaků pro jeho reprezentaci. V unární reprezentaci (Římané ji použili pro k=1,2,3) to bude řetězec k jedniček a pro vstup velikosti n je algoritmus v čase polynomiální Θ(n). Použijeme-li obvyklé kódování

14 v dvojkové soustavě, pro číslo k délka vstupu bude n= log2 k + 1. V tomto případě čas výpočtu bude exponenciální - Θ(2 n ). Budeme uvažovat standardní kódovaní, tj. čísla v dvojkové soustavě a znaky v ASCII kódu (Unicode). V dalším potom nebudeme rozlišovat mezi abstraktními a konkrétními problémy. Pro některé rozhodovací problémy neumíme nalézt řešení v polynomiálním čase, ale na druhé straně pro ně existuje polynomiální verifikační algoritmus. Verifikační algoritmus ověří řešení problému na základě poskytnutých dat, která nazveme certifikát. Už jsem se setkali s problémem splnitelnosti výrokových formulí, kde navrhnuté řešení pro n proměnných prověřovalo 2 n možností. Pokud nám někdo řekne, že daná výroková formule je splnitelná a nabídne nám hodnoty jednotlivých proměnných na důkaz svého tvrzení, můžeme dosazením těchto hodnot a vyhodnocením výrokové formule verifikovat zda tomu tak je, jistě v polynomiálním čase. Dostáváme tak schéma: Je zadaná výroková formule splnitelná? Zadaná formule P Q R Certifikát P = true, Q = false, R = false Verifikace vyhodnocení Podobně pro následující problém. Je v zadané množině celých čísel podmnožina, která má součet prvků rovný nule? Zadaná množina {-7, -2, -3, 5, 6} Certifikát { -2, -3, 5} Verifikace sčítání

15 Problémy, jenž mohou být verifikovatelné v polynomiálním čase, tvoří třídu složitosti NP nedeterministicky polynomiální. Jaký je vztah třídy P a třídy NP? Je-li nějaký problém ve třídě P výsledek verifikace získáme jeho vyřešením, což odpovídá verifikaci bez certifikátu. Je tedy P NP. Je P vlastní podmnožinou NP? Tato otázka se označuje P NP. Není známo jestli P = NP.

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost 1 Složitost 1.1 Operační a paměťová složitost Nezávislé určení na konkrétní implementaci Několik typů operací = sčítání T+, logické T L, přiřazení T A(assign), porovnání T C(compare), výpočet adresy pole

Více

Třídy složitosti P a NP, NP-úplnost

Třídy složitosti P a NP, NP-úplnost Třídy složitosti P a NP, NP-úplnost Cíle přednášky: 1. Definovat, za jakých okolností můžeme problém považovat za efektivně algoritmicky řešitelný. 2. Charakterizovat určitou skupinu úloh, pro které není

Více

3. 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

3. 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íce

Složitost Filip Hlásek

Složitost Filip Hlásek Složitost Filip Hlásek Abstrakt. Příspěvek popisuje dva základní koncepty teoretické informatiky, Turingovy stroje a složitost. Kromě definic důležitých pojmů uvádí také několik souvisejících tvrzení,

Více

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13. Grafy doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Grafy 104 / 309 Osnova přednášky Grafy

Více

Přijímací zkouška - matematika

Přijímací zkouška - matematika Přijímací zkouška - matematika Jméno a příjmení pište do okénka Číslo přihlášky Číslo zadání 1 Grafy 1 Pro který z následujících problémů není znám žádný algoritmus s polynomiální časovou složitostí? Problém,

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

ALGORITMY A DATOVÉ STRUKTURY

ALGORITMY A DATOVÉ STRUKTURY Název tématického celku: Cíl: ALGORITMY A DATOVÉ STRUKTURY Metodický list č. 1 Časová složitost algoritmů Základním cílem tohoto tematického celku je vysvětlení potřebných pojmů a definic nutných k popisu

Více

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze NP-ÚPLNÉ PROBLÉMY Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 13 Evropský sociální fond Praha & EU: Investujeme do

Více

ÚVODNÍ ZNALOSTI. datové struktury. správnost programů. analýza algoritmů

ÚVODNÍ ZNALOSTI. datové struktury. správnost programů. analýza algoritmů ÚVODNÍ ZNALOSTI datové struktury správnost programů analýza algoritmů Datové struktury základní, primitivní, jednoduché datové typy: int, char,... hodnoty: celá čísla, znaky, jednoduché proměnné: int i;

Více

TGH12 - Problém za milion dolarů

TGH12 - Problém za milion dolarů TGH12 - Problém za milion dolarů Jan Březina Technical University of Liberec 7. května 2013 Složitost problému Co je to problém? Složitost problému Co je to problém? K daným vstupním datům (velkému binárnímu

Více

10. Složitost a výkon

10. 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í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

Výroková a predikátová logika - III

Výroková a predikátová logika - III Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2017/2018 1 / 16 2-SAT 2-SAT Výrok je v k-cnf, je-li v CNF a

Více

Modely Herbrandovské interpretace

Modely Herbrandovské interpretace Modely Herbrandovské interpretace Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 8 1 Uvedli jsme termové interpretace a termové modely pro logické programy a také nejmenší

Více

NP-úplnost problému SAT

NP-úplnost problému SAT Problém SAT je definován následovně: SAT(splnitelnost booleovských formulí) Vstup: Booleovská formule ϕ. Otázka: Je ϕ splnitelná? Příklad: Formule ϕ 1 =x 1 ( x 2 x 3 )jesplnitelná: např.přiohodnocení ν,kde[x

Více

4. NP-úplné (NPC) a NP-těžké (NPH) problémy

4. 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íce

Databáze, sítě a techniky programování X33DSP

Databáze, sítě a techniky programování X33DSP Databáze, sítě a techniky programování X33DSP Anotace: Náplní předmětu jsou některé techniky a metody používané ve výpočetních systémech zaměřených na biomedicínské inženýrství. Cílem je položit jednotný

Více

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické Jak v Javě primitivní datové typy a jejich reprezentace BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické Obsah Celočíselný datový typ Reálný datový typ Logický datový typ, typ Boolean

Více

AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace

AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace AUTOMATY A 11 GRAMATIKY Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta Katedra teoretické informatiky a matematické logiky Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně

Více

1 2 3 4 5 6 součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů:

1 2 3 4 5 6 součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů: Úloha č.: max. bodů: skut. bodů: 1 2 3 4 5 6 součet cvičení celkem 20 12 20 20 14 14 100 známka UPOZORNĚNÍ : a) Písemná zkouška obsahuje 6 úloh, jejichž řešení musí být vepsáno do připraveného formuláře.

Více

Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31

Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31 Vztah teorie vyčíslitelnosti a teorie složitosti IB102 Automaty, gramatiky a složitost, 2. 12. 2013 1/31 IB102 Automaty, gramatiky a složitost, 2. 12. 2013 2/31 Časová složitost algoritmu počet kroků výpočtu

Více

Výpočetní složitost algoritmů

Výpočetní složitost algoritmů Výpočetní složitost algoritmů Slajdy pro výuku na KS Ondřej Čepek Sylabus 1. Definice časové a prostorové složitosti algoritmů. Příklady na konkrétních algoritmech. Prostředky pro popis výpočetní složitosti

Více

5 Rekurze a zásobník. Rekurzivní volání metody

5 Rekurze a zásobník. Rekurzivní volání metody 5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení

Více

Od Turingových strojů k P=NP

Od Turingových strojů k P=NP Složitost Od Turingových strojů k P=NP Zbyněk Konečný Zimnění 2011 12. 16.2.2011 Kondr (Než vám klesnou víčka 2011) Složitost 12. 16.2.2011 1 / 24 O čem to dnes bude? 1 Co to je složitost 2 Výpočetní modely

Více

Složitost. Teoretická informatika Tomáš Foltýnek

Složitost. Teoretická informatika Tomáš Foltýnek Složitost Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz Teoretická informatika 2 Opakování z minulé přednášky Co říká Churchova teze? Jak lze kódovat Turingův stroj? Co je to Univerzální

Více

Paměť počítače. alg2 1

Paměť počítače. alg2 1 Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových

Více

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují 1. u + v = v + u, u, v V 2. (u + v) + w = u + (v + w),

Více

YZTI - poznámky ke složitosti

YZTI - poznámky ke složitosti YZTI - poznámky ke složitosti LS 2018 Abstrakt Poznámky k přednášce YZTI zabývající se složitostí algoritmických problémů a teorií NP-úplnosti. Složitost algoritmu a problému Zabýváme se už pouze rekurzivními

Více

Vrcholová barevnost grafu

Vrcholová barevnost grafu Vrcholová barevnost grafu Definice: Necht G = (V, E) je obyčejný graf a k N. Zobrazení φ : V {1, 2,..., k} nazýváme k-vrcholovým obarvením grafu G. Pokud φ(u) φ(v) pro každou hranu {u, v} E, nazveme k-vrcholové

Více

Logické programy Deklarativní interpretace

Logické programy Deklarativní interpretace Logické programy Deklarativní interpretace Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 7 1 Algebry. (Interpretace termů) Algebra J pro jazyk termů L obsahuje Neprázdnou

Více

Doba běhu daného algoritmu/programu. 1. Který fragment programu z následujících dvou proběhne rychleji?

Doba běhu daného algoritmu/programu. 1. Který fragment programu z následujících dvou proběhne rychleji? 1 Doba běhu daného algoritmu/programu 1. Který fragment programu z následujících dvou proběhne rychleji? int n = 100; int sum = 0; for (i = 0; i < n; i++) for (j = 0; j < i; j++) sum += i+j; int n = 75;

Více

Tato tematika je zpracována v Záznamy přednášek: str

Tato tematika je zpracována v Záznamy přednášek: str Obsah 10. přednášky: Souvislosti Složitost - úvod Výpočet časové složitosti Odhad složitosti - příklady Posuzování složitosti Asymptotická složitost - odhad Přehled technik návrhů algoritmů Tato tematika

Více

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace RELACE Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace slouží k vyjádření vztahů mezi prvky nějakých množin. Vztahy mohou být různé povahy. Patří sem vztah býti potomkem,

Více

5 Orientované grafy, Toky v sítích

5 Orientované grafy, Toky v sítích Petr Hliněný, FI MU Brno, 205 / 9 FI: IB000: Toky v sítích 5 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost

Více

Unární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek

Unární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek Otázka 06 - Y01MLO Zadání Predikátová logika, formule predikátové logiky, sentence, interpretace jazyka predikátové logiky, splnitelné sentence, tautologie, kontradikce, tautologicky ekvivalentní formule.

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 Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu

Více

Výroková a predikátová logika - III

Výroková a predikátová logika - III Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2014/2015 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2014/2015 1 / 21 Výroková logika Horn-SAT Horn-SAT Jednotková

Více

Výroková a predikátová logika - II

Výroková a predikátová logika - II Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2015/2016 1 / 18 Základní syntax Jazyk Výroková logika je logikou

Více

1 Nejkratší cesta grafem

1 Nejkratší cesta grafem Bakalářské zkoušky (příklady otázek) podzim 2014 1 Nejkratší cesta grafem 1. Uvažujte graf s kladným ohodnocením hran (délka). Definujte formálně problém hledání nejkratší cesty mezi dvěma uzly tohoto

Více

H {{u, v} : u,v U u v }

H {{u, v} : u,v U u v } Obyčejný graf Obyčejný graf je dvojice G= U, H, kde U je konečná množina uzlů (vrcholů) a H {{u, v} : u,v U u v } je (konečná) množina hran. O hraně h={u, v} říkáme, že je incidentní s uzly u a v nebo

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

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

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

Algoritmizace. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Algoritmizace. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Úvod stránky předmětu: https://cw.felk.cvut.cz/doku.php/courses/a4b33alg/start cíle předmětu Cílem je schopnost samostatné implementace různých variant základních

Více

Definice 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).

Definice 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íce

Rozhodnutelné a nerozhodnutelné problémy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 24. dubna / 49

Rozhodnutelné a nerozhodnutelné problémy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 24. dubna / 49 Rozhodnutelné a nerozhodnutelné problémy M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 24. dubna 2007 1/ 49 Co je to algoritmus? Algoritmus Algoritmus je mechanický postup skládající

Více

Fakulta informačních technologií. Teoretická informatika

Fakulta informačních technologií. Teoretická informatika Vysoké učení technické v Brně Fakulta informačních technologií Teoretická informatika Třetí úkol 2 Jan Trávníček . Tato úloha je řešena Turingovým strojem, který je zobrazen na obrázku, který si můžeme

Více

DMA Přednáška Rekurentní rovnice. takovou, že po dosazení odpovídajících členů do dané rovnice dostáváme pro všechna n n 0 + m pravdivý výrok.

DMA Přednáška Rekurentní rovnice. takovou, že po dosazení odpovídajících členů do dané rovnice dostáváme pro všechna n n 0 + m pravdivý výrok. DMA Přednáška Rekurentní rovnice Rekurentní rovnice či rekurzivní rovnice pro posloupnost {a n } je vztah a n+1 = G(a n, a n 1,..., a n m ), n n 0 + m, kde G je nějaká funkce m + 1 proměnných. Jejím řešením

Více

Matematická analýza pro informatiky I. Limita funkce

Matematická analýza pro informatiky I. Limita funkce Matematická analýza pro informatiky I. 5. přednáška Limita funkce Jan Tomeček tomecek@inf.upol.cz http://aix-slx.upol.cz/ tomecek/index Univerzita Palackého v Olomouci 18. března 2011 Jan Tomeček, tomecek@inf.upol.cz

Více

Úvod do informatiky. Miroslav Kolařík

Úvod do informatiky. Miroslav Kolařík Úvod do informatiky přednáška pátá Miroslav Kolařík Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008 a dle učebního textu R. Bělohlávka a V. Vychodila: Diskrétní

Více

10 Přednáška ze

10 Přednáška ze 10 Přednáška ze 17. 12. 2003 Věta: G = (V, E) lze nakreslit jedním uzavřeným tahem G je souvislý a má všechny stupně sudé. Důkaz G je souvislý. Necht v je libovolný vrchol v G. A mějme uzavřený eurelovský

Více

V případě jazyka Java bychom abstraktní datový typ Time reprezentující čas mohli definovat pomocí třídy takto:

V případě jazyka Java bychom abstraktní datový typ Time reprezentující čas mohli definovat pomocí třídy takto: 20. Programovací techniky: Abstraktní datový typ, jeho specifikace a implementace. Datový typ zásobník, fronta, tabulka, strom, seznam. Základní algoritmy řazení a vyhledávání. Složitost algoritmů. Abstraktní

Více

PŘEDNÁŠKA 2 POSLOUPNOSTI

PŘ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í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

Úvod do informatiky. Miroslav Kolařík

Úvod do informatiky. Miroslav Kolařík Úvod do informatiky přednáška jedenáctá Miroslav Kolařík Zpracováno dle P. Martinek: Základy teoretické informatiky, http://phoenix.inf.upol.cz/esf/ucebni/zti.pdf Obsah 1 Složitost algoritmu 2 Třídy složitostí

Více

Algebraické struktury s jednou binární operací

Algebraické struktury s jednou binární operací 16 Kapitola 1 Algebraické struktury s jednou binární operací 1.1 1. Grupoid, pologrupa, monoid a grupa Chtěli by jste vědět, co jsou to algebraické struktury s jednou binární operací? No tak to si musíte

Více

Problémy třídy Pa N P, převody problémů

Problémy třídy Pa N P, převody problémů Problémy třídy Pa N P, převody problémů Cvičení 1. Rozhodněte o příslušnosti následujících problémů do tříd Pa N P(N PCověříme později): a)jedanýgrafsouvislý? danýproblémjeztřídy P,řešíhonapř.algoritmyDFS,BFS.

Více

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2. 1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 3 4 5 6 7 8 9 30 31 3 Zdůvodněte, proč funkce f(n) = n log(n) 1 n 1/ roste rychleji než funkce g(n) = n. Zdůvodněte, proč funkce f(n) = n 3/ log(n) roste

Více

Problém, algoritmus, program. Vykonání programu

Problém, algoritmus, program. Vykonání programu Problém, algoritmus, program Problém - jsou otázky, které vyžadují nalezení řešení nebo rozhodnutí, např. jestli mají řešení - jedním ze způsobů řešení těchto otázek je použití algoritmu Algoritmus - je

Více

FIT ČVUT MI-LOM Lineární optimalizace a metody. Dualita. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

FIT ČVUT MI-LOM Lineární optimalizace a metody. Dualita. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti FIT ČVUT MI-LOM Lineární optimalizace a metody Dualita Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Michal Černý, 2011 FIT ČVUT, MI-LOM, M. Černý, 2011: Dualita 2/5 Dualita Evropský

Více

Náplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění

Náplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Náplň v.0.03 16.02.2014 - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Spojení dvou samostatně setříděných polí void Spoj(double apole1[], int adelka1, double

Více

Kapitola Základní množinové pojmy Princip rovnosti. Dvě množiny S a T jsou si rovny (píšeme S = T ) prvek T je také prvkem S.

Kapitola Základní množinové pojmy Princip rovnosti. Dvě množiny S a T jsou si rovny (píšeme S = T ) prvek T je také prvkem S. 1 Kapitola 1 Množiny 11 Základní množinové pojmy Pojem množiny nedefinujeme, pouze připomínáme, že množina je souhrn, nebo soubor navzájem rozlišitelných objektů, kterým říkáme prvky 111 Princip rovnosti

Více

Další NP-úplné problémy

Další NP-úplné problémy Další NP-úplné problémy Známe SAT, CNF, 3CNF, k-klika... a ještě následující easy NP-úplný problém: Existence Certifikátu (CERT ) Instance: M, x, t, kde M je DTS, x je řetězec, t číslo zakódované jako

Více

Přednáška 3: Limita a spojitost

Přednáška 3: Limita a spojitost 3 / 1 / 17, 1:38 Přednáška 3: Limita a spojitost Limita funkce Nejdříve je potřeba upřesnit pojmy, které přesněji popisují (topologickou) strukturu množiny reálných čísel, a to zejména pojem okolí 31 Definice

Více

Základy matematické analýzy

Základy matematické analýzy Základy matematické analýzy Spojitost funkce Ing. Tomáš Kalvoda, Ph.D. 1, Ing. Daniel Vašata 2 1 tomas.kalvoda@fit.cvut.cz 2 daniel.vasata@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních

Více

Pomocný text. Polynomy

Pomocný text. Polynomy Pomocný text Polynomy Tato série bude o polynomech a to zejména o polynomech jedné proměnné (pokud nebude uvedeno explicitně, že jde o polynom více proměnných). Formálně je někdy polynom jedné proměnné

Více

Obsah přednášky. Analýza algoritmu Algoritmická složitost Návrhy algoritmů Urychlování algoritmů 1/41

Obsah přednášky. Analýza algoritmu Algoritmická složitost Návrhy algoritmů Urychlování algoritmů 1/41 Obsah přednášky Analýza algoritmu Algoritmická složitost Návrhy algoritmů Urychlování algoritmů 1/41 Analýza algoritmu Proč vůbec dělat analýzu? pro většinu problémů existuje několik různých přístupů aby

Více

Výpočetní složitost I

Výpočetní složitost I Výpočetní složitost I prooborlogikanaffuk Petr Savický 1 Úvod Složitostí algoritmické úlohy se rozumí především její časová a paměťová náročnost při řešení na počítači. Časová náročnost se měří počtem

Více

DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3

DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3 DobSort Ú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 V roce 1980 navrhl Dobosiewicz variantu (tzv. DobSort),

Více

Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39

Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39 Základy algoritmizace Michal Krátký 1, Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Základy algoritmizace, 2006/2007 Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39

Více

NEJKRATŠÍ CESTY I. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

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

Více

Výroková a predikátová logika - II

Výroková a predikátová logika - II Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2013/2014 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2013/2014 1 / 20 Základní syntax Jazyk Výroková logika je logikou

Více

Výroková a predikátová logika - VII

Výroková a predikátová logika - VII Výroková a predikátová logika - VII Petr Gregor KTIML MFF UK ZS 2013/2014 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - VII ZS 2013/2014 1 / 21 Sémantika PL Teorie Vlastnosti teorií Teorie

Více

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru 2. Systémy lineárních rovnic V této kapitole se budeme zabývat soustavami lineárních rovnic s koeficienty z pole reálných případně komplexních čísel. Uvádíme podmínku pro existenci řešení systému lineárních

Více

1 Polynomiální interpolace

1 Polynomiální interpolace Polynomiální interpolace. Metoda neurčitých koeficientů Příklad.. Nalezněte polynom p co nejmenšího stupně, pro který platí p() = 0, p(2) =, p( ) = 6. Řešení. Polynom hledáme metodou neurčitých koeficientů,

Více

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10 Úlohy- 2.cvičení 1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10 2. Převeďte dané desetinné číslo do dvojkové soustavy (DEC -> BIN): a) 0,8125 10 b) 0,35 10

Více

1 Linearní prostory nad komplexními čísly

1 Linearní prostory nad komplexními čísly 1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)

Více

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:

Více

TGH05 - Problém za milion dolarů.

TGH05 - Problém za milion dolarů. TGH05 - Problém za milion dolarů. Jan Březina Technical University of Liberec 20. března 2012 Časová složitost algoritmu Závislost doby běhu programu T na velikosti vstupních dat n. O(n) notace, standardní

Více

1 Báze a dimenze vektorového prostoru 1

1 Báze a dimenze vektorového prostoru 1 1 Báze a dimenze vektorového prostoru 1 Báze a dimenze vektorového prostoru 1 2 Aritmetické vektorové prostory 7 3 Eukleidovské vektorové prostory 9 Levá vnější operace Definice 5.1 Necht A B. Levou vnější

Více

Časová složitost algoritmů

Časová složitost algoritmů Časová složitost algoritmů Důležitou vlastností algoritmu je časová náročnost výpočtů provedené podle daného algoritmu Ta se nezískává měřením doby výpočtu pro různá data, ale analýzou algoritmu, jejímž

Více

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1 Negativní informace Petr Štěpánek S použitím materiálu M.Gelfonda a V. Lifschitze 2009 Logické programování 15 1 Negace jako neúspěch Motivace: Tvrzení p (atomická formule) neplatí, jestliže nelze odvodit

Více

Vzdálenost uzlů v neorientovaném grafu

Vzdá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íce

Matematická logika. Miroslav Kolařík

Matematická logika. Miroslav Kolařík Matematická logika přednáška šestá Miroslav Kolařík Zpracováno dle textu R. Bělohlávka: Matematická logika poznámky k přednáškám, 2004. a dle učebního textu R. Bělohlávka a V. Vychodila: Diskrétní matematika

Více

Doporučené příklady k Teorii množin, LS 2018/2019

Doporučené příklady k Teorii množin, LS 2018/2019 Doporučené příklady k Teorii množin, LS 2018/2019 1. přednáška, 21. 2. 2019 1. Napište množina x je prázdná (přesněji množina x nemá žádné prvky ) formulí základního jazyka teorie množin. 2. Dokažte ((x

Více

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)

Více

Výroková a predikátová logika - XIII

Výroková a predikátová logika - XIII Výroková a predikátová logika - XIII Petr Gregor KTIML MFF UK ZS 2013/2014 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - XIII ZS 2013/2014 1 / 13 Úvod Algoritmická (ne)rozhodnutelnost Které

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

p 2 q , tj. 2q 2 = p 2. Tedy p 2 je sudé číslo, což ale znamená, že

p 2 q , tj. 2q 2 = p 2. Tedy p 2 je sudé číslo, což ale znamená, že KAPITOLA 1: Reálná čísla [MA1-18:P1.1] 1.1. Číselné množiny Přirozená čísla... N = {1,, 3,...} nula... 0, N 0 = {0, 1,, 3,...} = N {0} Celá čísla... Z = {0, 1, 1,,, 3,...} Racionální čísla... { p } Q =

Více

Volné stromy. Úvod do programování. Kořenové stromy a seřazené stromy. Volné stromy

Volné stromy. Úvod do programování. Kořenové stromy a seřazené stromy. Volné stromy Volné stromy Úvod do programování Souvislý, acyklický, neorientovaný graf nazýváme volným stromem (free tree). Často vynecháváme adjektivum volný, a říkáme jen, že daný graf je strom. Michal Krátký 1,Jiří

Více

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

B3B33ALP - 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íce

int t1, t2, t3, t4, t5, t6, t7, prumer; t1=sys.readint();... t7=sys.readint(); prume pru r = r = ( 1+t 1+t t3+ t3+ t4 t5+ t5+ +t7 +t7 )/ ;

int t1, t2, t3, t4, t5, t6, t7, prumer; t1=sys.readint();... t7=sys.readint(); prume pru r = r = ( 1+t 1+t t3+ t3+ t4 t5+ t5+ +t7 +t7 )/ ; Pole Příklad: přečíst teploty naměřené v jednotlivých dnech týdnu, vypočítat průměrnou teplotu a pro každý den vypsat odchylku od průměrné teploty Řešení s proměnnými typu int: int t1, t2, t3, t4, t5,

Více

Datové struktury. alg12 1

Datové struktury. alg12 1 Datové struktury Jedna z klasických knih o programování (autor prof. Wirth) má název Algorithms + Data structures = Programs Datová struktura je množina dat (prvků, složek, datových objektů), pro kterou

Více

PQ-stromy a rozpoznávání intervalových grafů v lineárním čase

PQ-stromy a rozpoznávání intervalových grafů v lineárním čase -stromy a rozpoznávání intervalových grafů v lineárním čase ermutace s předepsanými intervaly Označme [n] množinu {1, 2,..., n}. Mějme permutaci π = π 1, π 2,..., π n množiny [n]. Řekneme, že množina S

Více

Výroková a predikátová logika - V

Výroková a predikátová logika - V Výroková a predikátová logika - V Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - V ZS 2015/2016 1 / 21 Dokazovací systémy VL Hilbertovský kalkul Hilbertovský

Více

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory K množina reálných nebo komplexních čísel, U vektorový prostor nad K. Lineární kombinace vektorů u 1, u 2,...,u

Více

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

B3B33ALP - 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

FREDHOLMOVA ALTERNATIVA

FREDHOLMOVA ALTERNATIVA FREDHOLMOVA ALTERNATIVA Pavel Jirásek 1 Abstrakt. V tomto článku se snažíme shrnout dosavadní výsledky týkající se Fredholmovy alternativy (FA). Postupně zmíníme FA na prostorech konečné dimenze, FA pro

Více