Okruhy ke zkoušce z PRO
Prof. dr. ing. I. Kolingerová
1. Algoritmizace z praktického úhlu pohledu – správnost a účinnost, robustnost algoritmu, experimentální ověření složitosti, určení „bottlenecku“, vylepšování řešení
2. Algoritmus brutální síly, greedy (hladový) algoritmus, inkrementální algoritmy
3. Geometrické algoritmy - test polohy body vůči nadrovině, konstrukce konvexní obálky (Grahamovo prohledávání, balení dárku), Voroného diagram – vlastnosti, kontrukce inkrementálním vkládáním, hledání nejbližšího souseda v množině bodů, zjednodušování polygonů (Douglas-Peucker)
4. Zábavné algoritmy – hlavní myšlenka pessimal algorithms a simplexity analysis, hlavní myšlenka slowsortu, jeden z algoritmů z bodu 4 přednášky dle vlastního výběru: přesouvání mincí nebo Tripos nebo algoritmus tvorby tvarů skládáním a jedním řezem
5. Randomizované algoritmy – princip, randomizované algoritmy inkrementální a rozděl a panuj, vzorkování, algoritmy Monte Carlo a Las Vegas, problematika generování náhodných čísel, příklady užití randomizace v existujících algoritmech, dokázat aplikovat randomizaci v řešení zadané úlohy
6. Shlukování – popis a základní postup, využití, hierarchické a nehierarchické metody, podrobněji deterministické K-means shlukování, fuzzy C-means shlukování a aglomerativní hierarchické shlukování
7. In-place a in situ algoritmy – výhody a nevýhody, in-place algoritmus konvexní obálky, in-place merge sort
8. Data stream algoritmy – typické úlohy, odhad u daného problému, zda jde řešit přesně nebo ne, existující modely a typické triky, náhodné vzorkování s rezervoárem, iceberg queries
9. Kvantové výpočty – hlavní myšlenka, základní vlastnosti kvantové sosustavy, výhody a nevýhody kvantového počítání, možnosti využití
10. Praktické řešení úloh, především typů řešených na přednáškách a na cvičení, ale hodnotí se i šikovnost při řešení zcela neznámé úlohy.
Hloubka a rozsah učiva odpovídá přednáškám a cvičením.
Praktické příklady budou řešeny na úrovni jednoznačného, ale ne nutně podrobně rozepsaného
algoritmu v nějakém pseudojazyce, zapisování
přímo v konkrétním programovacím jazyce se vyhněte.
Konkrétní otázka navíc
pro každého po stanovení známky: co se vám líbilo a nelíbilo, jaké téma byste
vyřadili nebo naopak přidali.
Příklad písemky:
1. Popište tři existující datastreamové modely a uveďte příklady aplikačních úloh pro jednotlivé modely.
2. Charakterizujte randomizované algoritmy typu Las Vegas a Monto Carlo. Pro každou skupinu uveďte také příklad algoritmu. Algoritmus nemusíte vypisovat detailně.
3. Napište algoritmus, který využije greedy strategii pro problém obchodního cestujícího a uveďte jeho složitost. Popište detailně, co je klíčovým krokem algoritmu rozhodujícím o složitosti a jak tento krok udělat efektivně.