IV003 Algoritmy a datové struktury II

Fakulta informatiky
jaro 2014
Rozsah
2/1. 3 kr. (plus ukončení). Ukončení: zk.
Vyučující
prof. RNDr. Ivana Černá, CSc. (přednášející)
RNDr. Nikola Beneš, Ph.D. (cvičící)
Mgr. Miroslav Klimoš (cvičící)
Mgr. Petr Bauch, Ph.D. (pomocník)
RNDr. Peter Bezděk, Ph.D. (pomocník)
RNDr. Petra Budíková, Ph.D. (pomocník)
Mgr. Vojtěch Havel (pomocník)
Mgr. Bc. Tomáš Janík (pomocník)
RNDr. David Klaška (pomocník)
Garance
prof. RNDr. Mojmír Křetínský, CSc.
Katedra teorie programování – Fakulta informatiky
Dodavatelské pracoviště: Katedra teorie programování – Fakulta informatiky
Rozvrh
St 10:00–11:50 D2
  • Rozvrh seminárních/paralelních skupin:
IV003/T01: Út 18. 2. až So 31. 5. Út 10:00–11:35 Učebna S10 (56), Čt 20. 2. až So 31. 5. Čt 12:00–13:35 Učebna S10 (56), T. Janík, Nepřihlašuje se. Určeno pro studenty se zdravotním postižením.
IV003/01: každý sudý čtvrtek 8:00–9:50 B410, N. Beneš
IV003/02: každý lichý čtvrtek 8:00–9:50 B410, N. Beneš
IV003/03: každou sudou středu 14:00–15:50 G126, M. Klimoš
IV003/04: každou lichou středu 14:00–15:50 G126, M. Klimoš
IV003/05: každou sudou středu 16:00–17:50 G126, M. Klimoš
IV003/06: každou lichou středu 16:00–17:50 G126, M. Klimoš
IV003/07: každý sudý čtvrtek 18:00–19:50 G126, N. Beneš
IV003/08: každý lichý čtvrtek 18:00–19:50 G126, N. Beneš
Předpoklady
IB002 Algoritmy a datové struktury && ! IB108 Algoritmy a dat. struktury II
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Předmět si smí zapsat nejvýše 200 stud.
Momentální stav registrace a zápisu: zapsáno: 0/200, pouze zareg.: 0/200, pouze zareg. s předností (mateřské obory): 0/200
Mateřské obory/plány
Cíle předmětu
Kurz navazuje na úvodní kurz Algoritmy a datové struktury I. Prezentuje algoritmické koncepty a konstrukty bez jejich přímé návaznosti na jakýkoliv programovací jazyk a bez požadavků na jejich praktickou programovou realizaci. Cílem je naučit studenta konstruovat a analyzovat algoritmy v kontextu pseudokódů, což umožní studentovi rozlišit mezi obecnými koncepty a specifikami konkrétních programovacích jazyků. Kurz uvádí pokročilé techniky analýzy algoritmů. Rozšiřuje seznam algoritmických strategií a charakterizuje typ problémů, pro které jsou jednotlivé strategie vhodné. Nové datové struktury jsou prezentovány spolu s příklady algoritmů, které je využívají, přičemž důraz je kladen na propojenost návrhu algoritmu a návrhu datové struktury.
Osnova
  • Techniky analýzy algoritmů: složitost algoritmů, amortizovaná analýza složitosti.
  • Techniky návrhu algoritmů: rozděl a panuj, dynamické programování, hladové strategie, backtracking, lokální vyhledávání.
  • Datové struktury: binomiální a Fibonacciho haldy, datové struktury pro reprezentaci disjunktních množin.
  • Grafové algoritmy: problém nejkratších cest z jednoho zdroje (Bellmanův-Fordův algoritmus), obecný problém nejkraších cest (Flydův-Warhallův algoritmus, násobení matic, Johnsonův algoritmus pro řídké grafy). Toky v sítích (Fordova-Fulkersonova metoda, metoda push-relabel), párování.
  • Algoritmy pro práci s řetězci: přímý algoritmus, užití konečných automatů, Rabin-Karpův algoritmus, algoritmus KMP.
Literatura
  • DASGUPTA, Sanjoy, Christos Ch. PAPADIMITRIOU a Umesh Virkumar VAZIRANI. Algorithms. 1st ed. Boston: McGraw-Hill Companies, 2008, x, 320. ISBN 9780073523408. info
  • KLEINBERG, Jon a Éva TARDOS. Algorithm design. Boston: Pearson/Addison-Wesley, 2006, xxiii, 838. ISBN 0321372913. URL info
  • CORMEN, Thomas H., Charles Eric LEISERSON a Ronald L. RIVEST. Introduction to algorithms. Cambridge: MIT Press, 1989, xvii, 1028. ISBN 0070131430. info
Výukové metody
přednášky a cvičení. Studenti samostatně řeší algoritmické problémy.
Metody hodnocení
Výuka probíhá formou přednášky a cvičení. V průběhu semestru student samostaně řeší zadané algoritmické problémy. Kurz je ukončen písemnou zkouškou. Podmínkou přístupu ke zkoušce je získání určeného počtu bodů ze samostatně řešených problémů.
Navazující předměty
Informace učitele
https://is.muni.cz/auth/el/1433/jaro2012/IB108/index.qwarp
Další komentáře
Studijní materiály
Předmět je vyučován každoročně.
Předmět byl dříve vypisován pod kódem IB108.
Předmět je zařazen také v obdobích jaro 2015, jaro 2016, jaro 2017, jaro 2018, jaro 2019, jaro 2020, jaro 2021, jaro 2022, jaro 2023, jaro 2024, jaro 2025.