Commit 20f0aaa7 authored by Martin Mareš's avatar Martin Mareš
Browse files

Import minulé verze syllabů

parents
# TIN060: Algoritmy a datové struktury I
## Anotace
Úvodní přednáška o základních typech algoritmů a datových strukturách
potřebných pro jejich implementaci. Navazuje na výklad v přednášce
„Algoritmizace“ v předchozím semestru.
## Sylabus
(volitelná témata _kurzívou_, zbytek je povinný; hodinové dotace jsou orientační)
1. Prostředky pro popis složitosti algoritmů a operací nad datovými strukturami (1 přednáška)
* měření velikosti dat, počet kroků algoritmu jako funkce velikosti dat
* výpočetní model RAM
* asymptotická notace
1. Stromové datové struktury (1.5 přednášky)
* binární vyhledávací stromy
* AVL stromy
* (a,b)-stromy
* _červeno-černé stromy_
1. Hešování (1 přednáška)
* popis jednoduchých strategií řešení kolizí
* analýza průměrné časové složitosti vyhledávání
* univerzální hešování
1. Třídění (1 přednáška)
* analýza průměrného případu pro Quicksort, randomizovaný Quicksort
* dolní odhad složitosti porovnávacích třídících algoritmů (rozhodovací stromy)
1. Základní grafové algoritmy (1 přednáška)
* prohledávání do hloubky na neorientovaném grafu, detekce mostů _a artikulací_
* prohledávání do hloubky na orientovaném grafu, tranzitivní uzávěr, topologické číslování
* _detekce komponent silné souvislosti v lineárním čase_
1. Extremální cesty v grafech (2 přednášky)
* extremální cesty v acyklickém orientovaném grafu, metoda kritické cesty
* Dijkstrův algoritmus (zopakování binární haldy, srovnání implementace polem a binární haldou)
* Bellmanův-Fordův algoritmus (hledání záporných cyklů)
* _Floydův-Warshallův algoritmus_
1. Minimální kostra grafu (1 přednáška)
* Jarníkův a Borůvkův algoritmus
* _Kruskalův algoritmus a datová struktura pro Union-Find_
1. Metoda rozděl a panuj (2.5 přednášky)
* obecné schéma algoritmů typu rozděl a panuj, souvislost jejich složitosti s rekurentními rovnicemi
* substituční metoda řešení rekurentních rovnic a „master theorem (kuchařka)“
* jednoduché aplikace: binární vyhledávání, Mergersort, násobení čísel (Karatsuba-Ofman)
* složitější aplikace: Strassenovo násobení matic, _hledání mediánu v lin. čase v nejhorším případě_
1. Dynamické programování (1 přednáška)
* obecný princip dynamického programování
* editační vzdálenost řetězců
* _optimální vyhledávací stromy_
# TIN061: Algoritmy a datové struktury II
## Anotace
Přednáška o různých typech algoritmů a jejich časové složitosti (navazuje na TIN060).
## Sylabus
(volitelná témata _kurzívou_, zbytek je povinný; hodinové dotace jsou orientační)
1. Vyhledávání v textu (2 přednášky)
* algoritmus Knuth-Morris-Pratt
* algoritmus Aho-Corasicková
* _algoritmus Rabin-Karp_
1. Toky v sítích (2 přednášky)
* algoritmus zlepšující cesty
* Dinicův algoritmus
* Goldbergův algoritmus
* párování v bipartitním grafu
* _hledání maximálního toku minimální ceny_
1. Algebraické algoritmy (1.5 přednášky)
* diskrétní Fourierova transformace, její motivace a aplikace
* algoritmus FFT a jeho implementace obvodem „butterfly“
* _příbuzné transformace (kosinová komprese – JPEG)_
1. Paralelní aritmetické algoritmy (1.5 přednášky)
* třídící sítě (implementace jednoho třídícího algoritmu – buď merge-sort nebo bitonic-sort)
* carry look-ahead algoritmus pro sčítání čísel
1. Základní geometrické algoritmy v rovině (1 přednáška)
* konvexní obal
* princip zametání roviny řízeného událostmi
* _Voroného diagram a Delaunayova triangulace (Fortunův algoritmus)_
1. Převoditelnost problémů a třídy časové složitosti (2 přednášky)
* polynomiální transformace a redukce mezi rozhodovacími problémy
* nedeterministické algoritmy, třídy P a NP
* NP-úplnost
1. Aproximační algoritmy (1 přednáška)
* použití aproximačních algoritmů, poměrová a relativní chyba
* jeden až dva jednoduché příklady aproximačních algoritmů (knapsack, bin-packing, rozvrhování na paralelních strojích) včetně horního odhadu pro jejich poměrovou (nebo relativní) chybu
* aproximační schéma: princip a příklad
1. Pravděpodobnostní algoritmy a kryptografie (1 přednáška)
* algoritmy typu Monte Carlo (Rabinův-Millerův test prvočíselnosti)
* šifrování s veřejným klíčem (algoritmus RSA)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment