this dir | view | cards | source | dark top

ADS2

ADS2
Vyhledávání v textu

vyhledávací automat

Vyhledávání v textu

vyhledávání

Vyhledávání v textu

konstrukce

Vyhledávání v textu

automat jako u KMP ale

Vyhledávání v textu

hlášení

Vyhledávání v textu

konstrukce

Vyhledávání v textu

pořídíme okénkový heš, posouváme okýnkem a pokud se shoduje s jehlou,

kontrolujeme manuálně
Vyhledávání v textu

heš: H(x1,...,xJ)=(x1PJ1+...+xJP0)modNH(x_1, ..., x_J) = (x_1P^{J-1} + ... + x_JP^0) \mod N

Toky v sítích

tok - funkce ff, která přiřazuje hranám f(uv)c(uv)f(uv) ≤ c(uv), v každém vrcholu

kromě zdroje a stoku platí, že dovnitř teče právě tolik jako ven ($f^Δ(v) =

0provsˇechnapro všechnavmimomimoz,s$)

Toky v sítích

kapacita řezu - součet kapacit všech hran vedoucích mezi stranami řezu

Toky v sítích

vznikne řez, kde do AA vedou nenasycené hrany z zz, tedy hrany na řezu jsou

všechny nasycené a velikost našeho toku je rovna velikosti řezu

Toky v sítích

algoritmus doběhne pro celočíselné sítě, protože pokaždé se zvětší tok alespoň

o 1

Toky v sítích

průtok = tok, kde nám nezáleží, kterým směrem něco teče

Toky v sítích

alg

Toky v sítích

iterací je nn - v každém kroku se nejkratší cesta zvětší o 1 a délka nejdelší

možné cesty je nn

Toky v sítích

alg

Toky v sítích

invarianty a lemmata

Algebraické algoritmy (aneb fakin efeftéčko)

reprezentace polynomu grafem - polynom stupně nn je plně určen n+1n+1 body

Algebraické algoritmy (aneb fakin efeftéčko)

násobení polynomů pomocí grafu

polynomy → grafy → násobení v Θ(n)Θ(n) → polynomy

Algebraické algoritmy (aneb fakin efeftéčko)

pokus o rozděl a panuj

Algebraické algoritmy (aneb fakin efeftéčko)

stejný pokus jako výše, akorát zvolíme xj=1njx_j = \sqrt[n]{1}^j (zaokrouhlíme nn

na mocninu $2$ nahoru)
Algebraické algoritmy (aneb fakin efeftéčko)

alg FFT(n=2kn=2^k, ωω, p0...pn1p_0...p_{n-1})

Algebraické algoritmy (aneb fakin efeftéčko)

DFT je lin. zobrazení vektoru x0...xn1x_0...x_{n-1}:

$$
\begin{align*}
    y_j &= \sum_{i=0}^{n-1} x_iω^{ij}\\
        &= \sum_{i=0}^{n-1} p_i(ω^j)^i\\
\end{align*}
$$
Algebraické algoritmy (aneb fakin efeftéčko)

matice zobrazení ΩΩ je

$$
\begin{pmatrix}
1 & 1       &       1 &       1 & ... \\
1 & (ω^1)^1 & (ω^1)^2 & (ω^1)^3 & ... \\
1 & (ω^2)^1 & (ω^2)^2 & (ω^2)^3 & ... \\
1 & (ω^3)^1 & (ω^3)^2 & (ω^3)^3 & ... \\
\vdots & \vdots & \vdots & \vdots & \ddots \\
\end{pmatrix}
$$
Paralelní algoritmy

hradlová síť

Paralelní algoritmy

sčítání

Paralelní algoritmy

násobení

Paralelní algoritmy

komparátorová síť

Paralelní algoritmy

bitonické třídění

Geometrické algoritmy

konvexní obal

Geometrické algoritmy

průsečíky úseček

Geometrické algoritmy

Voroného diagram

Převody problémů

problém AA je převoditelný na BB (ABA → B), pokud existuje polynomiální

funkce, pro kterou platí, že $∀x: A(x) = B(f(x))$
Převody problémů

převoditelnost je tansitivní, reflexivní, ale ne nutně antisymetrická –

kvaziuspořádání
Převody problémů

klika ↔ nezávislá množina

negace hran bruh

Převody problémů

SAT → 3-SAT

Převody problémů

3-SAT → 3,3-SAT

Převody problémů

3-SAT → NzMna

každá klauzule trojúhélník, všechny xx spojeny hranou se všemi ¬x\lnot x

Převody problémů

NzMna → SAT

Převody problémů

3,3-SAT → 3D párování

NP-úplnost

ABBNPNP-complete(A)NP-complete(B)A→B ∧ B∈\text{NP} ∧ \text{NP-complete}(A) ⇒ \text{NP-complete}(B) -

dokazuji, že $B$ je NP-těžký, pokud $A$ je NP-těžký, pokud všechno můžu
převést na A, můžu to pak převést i na B
NP-úplnost

SAT je NP-úplný – obvod-SAT je NP-úplný, protože je umíme reprezentovat v

počítači, duh
NP-úplnost

obvod SAT → SAT – proměnné reprezentují splnitelnost vstupu nebo výstupu

hradel, všechno se dá převést na AND a NOT
Hurá, máš hotovo! 🎉
Dej si pauzu od učení a podepiš tuhle cool petici.