Algoritmy a grafy 1
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
BI-AG1 | Z,ZK | 6 | 2P+2C | česky |
- Garant předmětu:
- Přednášející:
- Cvičící:
- 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.
Navazuje a částečně dále rozvíjí znalosti z předmětu BI-DML.21, ve kterém studenti získají znalosti a dovednosti z kombinatoriky nezbytné pro vyhodnocování časové a paměťové složitosti algoritmů. Dále předmět navazuje na BI-MA1.21, ve kterém ze zavádějí asymptotické odhady funkcí a zejména pak asymptotická značení.
- Požadavky:
-
Předpokládá se schopnost aktivního algoritmického řešení základních typů úloh, znalost programovacího jazyka C++ a znalost základních pojmů z matematické analýzy a kombinatoriky. Doporučujeme, aby student zároveň studoval předmět BI-AAG.21.
- Osnova přednášek:
-
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.
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í.
7. Úvod do randomizace, hešování.
8. Rekurzivní algoritmy a metoda Rozděl a panuj.
9. QuickSort. Speciální algoritmy řazení.
10. Dynamické programování.
11. Minimální kostry grafu.
12. Nejkratší cesty v grafech.
- 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, 2009, 978-0262033848,
[2] Gibbons, A.: Algorithmic Graph Theory, Cambridge University Press, 1985, 978-0521288811,
[3] Gross, J. L. - Yellen, J. - Zhang, P.: Handbook of Graph Theory, 2nd Edition (Discrete Mathematics and Its Applications), Chapman and Hall/CRC, 2013, 978-1439880180,
- Poznámka:
-
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ů:
-
- Bc. program Informatika, pro fázi studia bez oboru, 2015-2020 (povinný předmět programu)
- Bc. obor Bezpečnost a informační technologie, 2015-2020 (povinný předmět programu)
- Bc. obor Teoretická informatika, 2015-2020 (povinný předmět programu)
- Bc. obor Počítačové inženýrství, 2015-2020 (povinný předmět programu)
- Bc. obor Informační systémy a management, 2015-2020 (povinný předmět programu)
- Bc. obor Webové a softwarové inženýrství, zaměření Softwarové inženýrství, 2015-2020 (povinný předmět programu)
- Bc. obor Webové a softwarové inženýrství, zaměření Webové inženýrství, 2015-2020 (povinný předmět programu)
- Bc. obor Webové a softwarové inženýrství, zaměření Počítačová grafika, 2015-2020 (povinný předmět programu)
- Bc. obor Znalostní inženýrství, 2018-2020 (povinný předmět programu)