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

Efektivní algoritmy

Předmět není vypsán Nerozvrhuje se
Kód Zakončení Kredity Rozsah Jazyk výuky
BIK-EFA Z,ZK 5 13KP+4KC česky
Přednášející:
Cvičící:
Předmět zajišťuje:
katedra teoretické informatiky
Anotace:

Studenti získají důkladný přehled efektivních algoritmů pro řešení standardních problémů. Umějí pracovat s asymptotickou notací používanou při vyjadřování složitosti. Rozumějí algoritmům pro řazení o složitosti O(n.log n), pro speciální řazení s lineární složitostí a pro řazení ve vnějších pamětech, algoritmům asociativního a adresního vyhledávání (vyhledávací stromy, rozptýlené tabulky, vícerozměrné vyhledávací stromy). Znají a umějí používat pokročilé datové struktury. Ovládají metody používané pro analýzu paměťové a operační složitosti algoritmů.

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.

Osnova přednášek:

1. Algoritmy nad poli, vícerozměrná pole a mapovací funkce. ADT Seznam, Fronta, Zásobník.^2. ADT Tabulka, Množina. Rozptylovací tabulky.^3.Základní algoritmy řazení. Stromy a binární haldy.^4. Algoritmy řazení. Binomiální a Fibonnaciho haldy.^5. Vyhledávání a vyhledávací stromy. Rekurzivní algoritmy.^6. B-stromy a jejich varianty. Vyvažované vyhledávací stromy.^7.Dynamické programování.

Osnova cvičení:

1. Procvičování a opakováni diskrétní a asymptotické matematiky. [2] Implementace, stabilizace, analýza složitosti algoritmů řazení. Implementace a analýza složitosti algoritmů externího řazení. Srovnání rekurzivních a iteračních algoritmů, převody. Použití pokročilých hald. Použití metod dynamického programování.

2. Adresní vyhledávání, návrh mapovacích funkcí. Používání rozptýlených tabulek, otevřené a řetězené adresování. Vyhledávací a binární vyhledávací stromy, hledání vzoru v textu. Vyhledávací stromy pro vícerozměrné vyhledávání, vyhledávání nejbližšího souseda. Vyvažování vyhledávacích stromů.

Cíle studia:

Cílem předmětu je naučit studenty standardní soubor algoritmů a naučit jej rozpoznávat vhodné příležitosti pro použití jejich různých variant. Současně s návrhem či přizpůsobováním algoritmů se studenti mají naučit i základní metody analýzy složitosti algoritmů jakožto hlavního kritéria jejich efektivnosti. Cílem je rozvíjet u studentů schopnost samostatného návrhu a analýzy algoritmů.

Studijní materiály:

1. Cormen, T. H., Leiserson, C. E., Rivest, R. L. ''Introduction to Algorithms''. The MIT Press, 2001. ISBN 0262032937.

2. Sedgewick, R. ''Algorithms in Java, Parts 1-4 (3rd Edition)''. Addison-Wesley Professional, 2002. ISBN 0201361205.

Poznámka:

Dvojici předmětů EFA + GRA lze uznat, jestliže student úspěšně absolvuje dvojici předmětů AG1 + AG2.

Student, kterému chybí EFA si zapíše AG1 a dělá rozdílovou zkoušku.

Znovu přijatému studentu, kterému bude uznaný předmět EFA z minulého studia si zapíše předmět AG1 a může požádat o uznání zápočtu.

Další informace:
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 16. 9. 2019
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet1445006.html