značení
pozorování
jak najít jehlu
hledání více jehel v kupce sena – algoritmus Aho-Corasicková
Robinův-Karpův algoritmus
df: síť je čtveřice
df: tok je funkce taková, že
df: pro
df: toku přiřadíme průtok
důkaz
lemma: pro každý tok v síti a každý tok v síti existuje tok v síti takový, že a lze najít v čase
… počet hran
důkaz:
Dinicův algoritmus
čištění sítě
blokující tok
lemma: během každé fáze vzroste počet vrstev pročištěné sítě aspoň o jedna
df: je vlna
převedení přebytku
Goldbergův algoritmus
vlna:
převedení po hraně
invariant A (základní)
invariant S (o spádu)
lemma K (korektnosti)
pokud se algoritmus zastaví, finální je maximální tok
důkaz
invariant C (cesta do zdroje)
invariant V (o výšce)
lemma Z (zvednutí)
lemma S („sytá“ převedení)
počet nasycených převedení
důkaz
df: potenciál
lemma N (nenasycená převedení)
počet nenasycených převedení
implementace
rozbor složitosti
lemma N'
v algoritmu s výběrem nejvyššího s nastane nenasycených převedení
důkaz
násobení polynomů
rovnost polynomů – dvě možnosti
věta: nechť jsou polynomy stupně maximálně a pro navzájem různá čísla , potom
polynom stupně je určený body
dk:
graf polynomu
…
násobení polynomů a grafy
teorie ke komplexním číslům
algoritmus FFT
booleovská hradla
hradlová síť obsahuje
výpočet probíhá v taktech
prostor = počet hradel
nemohli bychom použít počet hradel v největší vrstvě, protože ne všechny hrany vedou o jednu vrstvu (někdy je potřeba, aby si hradlo pamatovalo svůj výsledek během několika taktů)
tedy ekvivalent programu ve světě hradlových sítí by byla sada různých hradlových sítí pro různé velikosti vstupu
tedy výpočetní model je neuniformní
binární sčítání
binární násobení
komparátorová síť
df: posloupnost je
separátor
bitonická třídička
slévačka
třidička
pozorování: z dolního odhadu složitosti třídění plyne, že hloubka každé třídicí sítě je
dá se to , ale konstanta je obrovská
oplocení jabloní
průsečíky úseček
Voroného diagram
lokalizace bodu
problém existence párování velikosti
vstup: bipartitní graf a
df: problém A je převoditelný na problém B taková, že a lze spočítat v čase polynomiálním v
začíme nebo
příklad
lemma
princip
důkaz
…
vlastnosti relace převoditelnosti ()
vstup: formule v CNF
problém: nezávislá množina (NzMna)
…
pozor: převoditelnost z 3-SAT na SAT není identita
je potřeba zvalidovat vstup, jestli je 3-SAT – pro nevalidní vstupy chceme vrátit NE
zajímavější je převod SAT → 3-SAT
3-SAT → NzMna
…
NzMna → SAT
3-SAT → 3,3-SAT
3D-párování
3,3-SAT → 3D-párování
df: třída problémů P
algoritmus polynom takový, že vstup platí, že doběhne do kroků
df: třída problémů NP
(verifikátor) polynom (omezení délky certifikátů) (certifikát) (krátký) (schválený)
důkaz
důkaz
NP-úplné problémy
částečný důkaz Cookovy věty
triky a přístupy
největší nezávislá množina ve stromu
plánování přednášek
batoh
TSP (problém obchodního cestujícího)
důkaz: -aproximace polynomiální algoritmus pro hamiltonovskou kružnici P = NP
batoh