Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2021/2022

Algoritmy a grafy 1

Předmět není vypsán Nerozvrhuje se
Kód Zakončení Kredity Rozsah Jazyk výuky
BI-AG1.21 Z,ZK 5 2P+2C česky
Přednášející:
Dušan Knop (gar.), Pavel Tvrdík
Cvičící:
Dušan Knop (gar.), Radovan Červený, Radek Hušek, Jan Matyáš Křišťan, Josef Malík, Jakub Pečenka, Štěpán Plachý, Josef Erik Sedláček, Šimon Schierreich, Jiřina Scholtzová, Eliška Šestáková, Ondřej Šofr, Pavel Tvrdík, Tung Anh Vu
Předmět zajišťuje:
katedra teoretické informatiky
Anotace:

Předmět pokrývá to nejzákladnější z efektivních algoritmů, datových struktur a teorie grafů, které by měl znát každý informatik. Studenti se naučí techniky důkazů korektnosti jednotlivých algoritmů a techniky asymptotické matematiky pro určování jejich složitostí v nejlepším, nejhorším, či průměrném případě (předmět zahrnuje i základy teorie pravděpodobnosti nutné pro pochopení randomizovaných algoritmů). V rámci cvičení se studenti seznamují s použitím vysvětlovaných algoritmů pro řešení praktických problémů.

Požadavky:

Předpokládá se schopnost aktivního algoritmického řešení základních typů úloh, znalost nějakého vyššího programovacího jazyka (Java, C++) a znalost základních pojmů z matematické analýzy a kombinatoriky. Předmět předpokládá, že student souběžně studuje BI-AAG a BI-DML.

Osnova přednášek:

1. Motivace, definice grafu, důležité grafy, neorientované grafy, reprezentace grafů, podgrafy.

2. Souvislost, komponenty, DFS, zavedení orientovaného grafu, stromy.

3. Kostry, vzdálenosti, BFS, topologické řazení.

4. Přehled základních algoritmů řazení s kvadratickou složitostí. Zavedení pojmu binární halda jako částečně uspořádané struktury. HeapSort.

5. Nafukovací pole, amortizovaná složitost. Binomiální haldy.

6. Operace a vlastnosti binárních vyhledávacích stromů, způsoby jejich vyvažování, podrobnější diskuze AVL stromů.

7. Randomizované algoritmy, základy pravděpodobnosti, hešování a strategie řešení kolizí.

8. Rekurzivní algoritmy a metoda Rozděl a panuj.

9. QuickSort. Dolní mez složitosti řazení v porovnávacím modelu. Speciální algoritmy řazení.

10. Dynamické programování.

11. Minimální kostra ohodnoceného grafu. Jarníkův a Kruskalův algoritmus a jejich implementace.

12. [2] Algoritmy hledání nejkratších cest v ohodnoceném grafu.

Osnova cvičení:

1. Motivace a úvod do teorie grafů.

2. Základní definice a pojmy teorie grafů I.

3. Základní definice a pojmy teorie grafů II. 1. progtest

4. Řadící algoritmy O(n^2). Binární haldy.

5. Nafukovací pole, amortizovaná složitost, binomiální haldy.

6. Vyhledávací stromy a jejich vyvažování. 2. progtest

7. Pravděpodobnostní algoritmy a jejich složitost. QuickSort.

8. Rozptylování (hešování) a vyhledávací tabulky.

9. Rekurzivní algoritmy a metoda Rozděl a panuj.

10. Semestrální písemka.

11. Dynamické programování. 3. progtest

12. Minimální kostry a nejkratší cesty v grafech.

Cíle studia:
Studijní materiály:

1. Cormen T.H., Leiserson C.E., Rivest R.L., Stein C. : Introduction to Algorithms (3rd Edition). MIT Press, 2016. ISBN 978-0262033848.

2. Wengrow J. : A Common-Sense Guide to Data Structures and Algorithms: Level Up Your Core Programming Skills (2nd Edition). Pragmatic Bookshelf, 2020. ISBN 978-1680507225.

3. Sedgewick R. : Algorithms (4th Edition). Addison-Wesley, 2011. ISBN 978-0321573513.

4. Deo N. : Graph Theory with Applications to Engineering and Computer Science. Dover Publications, 2016. ISBN 978-048680793.

5. Bickle A. : Fundamentals of Graph Theory. AMS, 2020. ISBN 978-1470453428.

Poznámka:

Chybí klíčová slova česky i anglicky.

Informace o předmětu a výukové materiály naleznete na https://courses.fit.cvut.cz/BI-AG1/

Na tento předmět navazuje v magisterském studiu předmět Paralelní a distribuované programování.

Další informace:
https://courses.fit.cvut.cz/BI-AG1
Pro tento předmět se rozvrh nepřipravuje
Předmět je součástí následujících studijních plánů:
Platnost dat k 9. 8. 2022
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet6546906.html