Algoritmy a datové struktury II

Přednáška z Algoritmů a datových struktur II [NTIN061] se koná v ZS 2021/2022 v pondělky od 15:40 v N1.

Můžete sledovat přímý přenos z přednášek.

Kdybyste čemukoliv nerozuměli, rád si s vámi domluvím konzultaci. Ozvěte se mi prosím na adresu mares+ads2@kam.mff.cuni.cz.

datum co se přednášelo záznam
4. 10. Vyhledávání v textu: značení okolo řetězců, naivní algoritmy, algoritmus KMP (Knuth, Morris, Pratt) a jeho analýza. Jak hledat více řetězců? Pokud vám nefungují videa, vypněte si AdBlock. Jedno z jeho pravidel zakazuje všechna URL s podřetězcem /ads2/ :D video
11. 10. Vyhledávaní v textu: algoritmus Aho-Corasicková pro hledání více řetězců. Přístup pomocí hešování à la Rabin-Karp. Lemmata o polynomech a důsledky pro hešování řetězců. video
18. 10. Toky v sítích: Opakování definic a základních tvrzení o tocích. Fordův-Fulkersonův algoritmus a důkaz jeho správnosti pomocí řezů. Ekvivalentní definice: čisté toky. Celočíselné sítě a celočíselné toky. Převod párování v bipartitním grafu na celočíselný tok. video
25. 10. Toky: Dinicův algoritmus a jeho analýza. Základní myšlenky Goldbergova algoritmu. video
1. 11. Toky: Goldbergův algoritmus, jeho analýza a animace průběhu výpočtu. video
8. 11. Goldbergův algoritmus s výběrem nejvyššího vrcholu. Násobení polynomů: reprezentace polynomu grafem, nástin rekurzivního algoritmu. Opakování operací s komplexními čísly z mateřské školky (slidy). video
15. 11. Násobení polynomů: rychlá Fourierova transformace (algoritmus FFT) a její inverze. Obvod pro FFT a nerekurzivní FFT. Poznámky k FFT (slajdy): spektrální analýza, zpracování signálu, algebraická interpretace. video
22. 11. Paralelní programování pomocí hradlových sítí: sčítání přirozených čísel booleovským obvodem. Bitonické třídění komparátorovou sítí. video
29. 11. Komparátorové sítě: konstrukce separátoru. Geometrické algoritmy v rovině: konvexní obal, průsečíky úseček zametáním roviny. video
6. 12. Voroného diagramy a lokalizace bodu pomocí persistentních datových struktur. Rozhodovací problémy a převody mezi nimi. video
13. 12. Převody problémů: SAT, 3-SAT, nezávislá množina a klika v grafu, 3,3-SAT a 3D-párování. Třídy problémů P a NP. video
20. 12. Třídy P a NP, NP-těžké a NP-úplné problémy a jejich základní vlastnosti. Cookova věta o NP-úplnosti SATu s náznakem důkazu: booleovské obvody pro problémy z P, důkaz NP-úplnosti obvodového SATu, převod obvodového SATu na CNF-SAT. Zoo klasických NP-úplných problémů. První pomoc při setkání s těžkým problémem. video
3. 1. Jak si poradit s NP-těžkým problémem. Řešení speciálních případů: nezávislá množina ve stromech, barvení intervalových grafů, pseudopolynomiální algoritmus pro problém batohu. Aproximační algoritmy: obchodní cestující v metrickém prostoru (2-aproximace), neaproximovatelnost verze bez trojúhelníkové nerovnosti, aproximační schéma pro problém batohu. video

Cvičení

K přednášce existuje několik cvičení a jelikož letos existuje jediná paralelka, všechna cvičení by měla být ekvivalentní. Podmínky k udělení zápočtu určuje cvičící.

Studentům kombinovaného studia doporučuji vybrat si libovolného cvičícího a domluvit se s ním na získání zápočtu za domácí úkoly. Účast na cvičení není nutná, ale hodí se alespoň občas se tam stavit, abyste měli přehled, co se dělá. Za mnou samozřejmě můžete přijít na konsultaci, domluvte se e-mailem.

Zkoušky

Termíny jsou vypsány v SISu, zapisujte se, prosím, tam. Zkouším prezenčně, ale kdybyste nemohli na zkoušku přijet (třeba proto, že jste zrovna v karanténě), ozvěte se mi prosím e-mailem. Pokud se termíny zaplní, vypíši další.

Zkouška bude ústní s písemnou přípravou: Na začátku zadám otázky. Vy si odpovědi rozmyslíte (času bude dost) a sepíšete. Pak si o nich spolu popovídáme a na základě toho dostanete buďto známku, nebo nápovědu k další práci. Cílem je, aby každý vyřešil všechno, a známka se bude odvíjet od toho, jak moc jsem vám musel napovídat :)

Ke zkoušce je potřeba:

Zdroje

Ostatní zajímavé knihy:

Animovaný výklad algoritmů v Algovision kolegy Kučery.

Sbírky příkladů:

Stránku spravuje Martin Mareš