this dir | view | cards | source | edit | dark top

Zkouška

Zkouška
Vyhledávání v textu

Definice: Terminologie okolo řetězců (podslova, prefixy, suffixy)

Vyhledávání v textu

Algoritmus: Knuth-Morris-Pratt (jedna jehla v seně)

Vyhledávání v textu

Algoritmus: Aho-Corasicková (více jehel v seně)

Vyhledávání v textu

Algoritmus: Rabin-Karp (okénkové hešování)

Vyhledávání v textu

Věta: Počet kolizí u okénkového hešování

Toky v sítích

Definice: Síť, tok, přebytek, velikost toku

Toky v sítích

Definice: Řez, kapacita řezu

Toky v sítích

Věta: Velikost toku se dá měřit na každém řezu

Toky v sítích

Definice: Rezerva hrany, nasycená hrana

Toky v sítích

Algoritmus: Ford-Fulkerson (zlepšující cesty)

Toky v sítích

Věta: Minimální řez je stejně velký jako maximální tok

Toky v sítích

Definice: Průtok (čistý tok)

Toky v sítích

Příklad: Celočíselná síť má celočíselný maximální tok

Toky v sítích

Algoritmus: Největší párování v bipartitním grafu

Toky v sítích

Definice: Blokující tok, vrstevnatá síť

Toky v sítích

Algoritmus: Dinicův algoritmus (zlepšující toky)

Toky v sítích

Definice: Vlna, převedení přebytku po hraně

Toky v sítích

Algoritmus: Goldbergův algoritmus (výšky a přebytky)

Toky v sítích

Algoritmus: Goldbergův algoritmus s výběrem nejvyššího vrcholu

Algebraické algoritmy

Věta: Reprezentace polynomu grafem

Algebraické algoritmy

Definice: Primitivní n-tá odmocnina z jedničky

komplexní číslo xx je primitivní nn-tá odmocnina z 1, pokud xn=1x^n=1 a žádné z čísel x1,x2,,xn1x^1,x^2,\dots,x^{n-1} není rovno 1

Algebraické algoritmy

Věta: Rychlá Fourierova transformace a její inverze

Algebraické algoritmy

Věta: Násobení polynomů pomocí Fourierovy transformace

Paralelní algoritmy

Definice: Hradlová síť

Paralelní algoritmy

Algoritmus: Sčítání přirozených čísel hradlovou sítí

Paralelní algoritmy

Algoritmus: Násobení přirozených čísel hradlovou sítí

Paralelní algoritmy

Definice: Komparátorová síť

Paralelní algoritmy

Algoritmus: Bitonické třídění komparátorovou sítí

Geometrické algoritmy

Algoritmus: Konvexní obal

Geometrické algoritmy

Algoritmus: Průsečíky úseček

Geometrické algoritmy

Definice: Voroného diagram

Geometrické algoritmy

Algoritmus: Lokalizace bodu v mnohoúhelníkové síti

Geometrické algoritmy

Algoritmus: Semipersistentní binární vyhledávací strom

Převody problémů

Definice: Rozhodovací problém

rozhodovací problém \equiv funkce f:{0,1}{0,1}f:\set{0,1}^*\to\set{0,1}

Převody problémů

Příklad: Bipartitní párování jako rozhodovací problém, kódování vstupu

Převody problémů

Definice: Převod mezi problémy

Převody problémů

Věta: Vlastnosti převoditelnosti (reflexivita, tranzitivita apod.)

Převody problémů

Definice: Problémy: klika, nezávislá množina, SAT, 3-SAT, 3,3-SAT, 3D-párování

Převody problémů

Algoritmus: Převod klika ↔ nezávislá množina

Převody problémů

Algoritmus: Převod SAT → 3-SAT → 3,3-SAT

Převody problémů

Algoritmus: Převod 3-SAT → nezávislá množina

Převody problémů

Algoritmus: Převod nezávislá množina (NzMna) → SAT

Převody problémů

Algoritmus: Převod 3,3-SAT → 3D-párování

NP-úplnost

Definice: Třídy složitosti P a NP

NP-úplnost

Definice: NP-těžké a NP-úplné problémy

NP-úplnost

Věta: Pokud ABA\to BBPB\in \text P, pak APA\in \text P

NP-úplnost

Věta: Pokud ABA→B, BNPB\in \text{NP}AA je NP-úplný, pak BB je NP-úplný

NP-úplnost

Věta: (Cook, Levin) SAT je NP-úplný (náznak důkazu)

NP-úplnost

Algoritmus: Převod obvodového SATu na SAT

NP-úplnost

Příklad: Klasické NP-úplné problémy

Jak zvládnout těžký problém

Algoritmus: Nezávislá množina ve stromu

Jak zvládnout těžký problém

Algoritmus: Barvení intervalového grafu

Jak zvládnout těžký problém

Algoritmus: Pseudopolynomiální algoritmus pro problém batohu

Jak zvládnout těžký problém

Definice: Aproximační algoritmus

Jak zvládnout těžký problém

Algoritmus: 2-aproximace obchodního cestujícího v metrickém prostoru

Jak zvládnout těžký problém

Věta: Neaproximovatelnost obchodního cestujícího bez trojúhelníkové nerovnosti

Jak zvládnout těžký problém

Definice: Polynomiální aproximační schéma (PTAS)

Jak zvládnout těžký problém

Definice: Plně polynomiální aproximační schéma (FPTAS)

FPTAS \equiv algoritmus, který pro vstup velikosti nnε>0\varepsilon\gt 0 najde aproximaci s chybou ε\leq\varepsilon v čase O(polynom(n,1ε))O(\text{polynom}(n,\frac1\varepsilon))

Jak zvládnout těžký problém

Algoritmus: FPTAS pro problém batohu

Hurá, máš hotovo! 🎉
Pokud ti moje kartičky pomohly, můžeš mi koupit pivo.