Algoritmy a datové struktury 2 – cvičení

Cvičil Martin Koreček k přednášce Martina Mareše.

Zimní semestr 2023/24, pondělí 10:40, učebna S11.

Podmínky pro získání zápočtu

Pravidelně budu zadávat domácí úkoly. Občas můžu zadat bonusový úkol.

Na zápočet je třeba získat alespoň dvě třetiny počtu bodů ze standardních úloh (bonusové se počítají jen do vašeho skóre).

Co se probralo

2. 10.: Opakování ADS 1, různé úlohy (cvičení před první přednáškou). Úlohy (PDF)

9. 10.: Algoritmus KMP. Úlohy (PDF)

16. 10.: Aho-Corasick, Rabin-Karp. Úlohy (PDF)

23. 10.: Toky v sítích, Ford-Fulkersonův algoritmus, bipartitní párování. Úlohy (PDF)

30. 10.: Toky v sítích, Dinicův algoritmus. Úlohy (PDF)

6. 11.: Nenavazovali jsme na přednášku, místo standardního cvičení jsem pověděl něco o Fourierově transformaci (tady jsou slajdy, které jsem promítal).

Pro zájemce jsem nachystal nějaké úlohy: Zadání (PDF)

Doporučení: 3blue1brown má několik pěkných videí o Fourierově transformaci. První video série je tohle.

13. 11.: Toky v sítích, Goldbergův algoritmus. Úlohy (PDF)

20. 11.: Diskrétní Fourierova transformace a algoritmus FFT. Místo mě cvičení připravil a vedl Pavel Veselý. Úlohy (PDF)

27. 11.: Úvod do hradlových sítí. Úlohy (PDF)

4. 12.: Pokračování hradlových sítí, něco ke konvexnímu obalu v rovině. Úlohy (PDF)

11. 12.: Geometrické algoritmy. Úlohy (PDF)

18. 12.: Úvod do studia těžkých problémů, převody mezi problémy. Úlohy (PDF)

8. 1.: Povídal jsem o problému P vs. NP. K úlohám (PDF) jsme se nedostali.

Na cviku jsem řekl (minimálně) jednu hloupost: že $\mathcal{P}^{SAT} = \mathcal{NP}^{SAT}$. Pokud $\mathcal{P} = \mathcal{NP}$, tak to samozřejmě platí, ale rozbije to několik aktuálních hypotéz (např. polynomiální hierarchii). Pokud vás zajímá, o kterých orákulech $A, B$ platí $\mathcal{NP}^A = \mathcal{P}^A$ a $\mathcal{NP}^B \neq \mathcal{P}^B$, můžete si přečíst tyhle zápisky.

Pokud vás cokoli během cvika zaujalo, můžete mi napsat a já vám zkusím doporučit další zdroje (případně předměty na MFF) k tématu.

Domácí úkoly

Odevzdávejte buď na papíře před začátkem cvičení, nebo v TXT/PDF na e-mail mk-hw@seznam.cz nejpozději ve 23:00 den před cvičením.

Bodové výsledky: Tabulka bodů

Užitečné odkazy

Stránka přednášky.

Knížka Průvodce labyrintem algoritmů, která pokrývá (nejen) sylabus předmětu.

Archiv úloh Korespondenčního semináře z programování.

Soutěžní programování: Codeforces, Spoj, HackerRank, CodeChef.

Zábavné kódící úlohy: Project Euler.