diff --git a/KIV PRO/02. Algoritmické strategie.md b/KIV PRO/02. Algoritmické strategie.md index d0bfb75..af89966 100644 --- a/KIV PRO/02. Algoritmické strategie.md +++ b/KIV PRO/02. Algoritmické strategie.md @@ -13,7 +13,7 @@ - očekávané řešení je množina $n$ prvků - začneme s prázdnou množinou - vždy zafixujeme 1 položku řešení, kterou už neměníme -- takto pokračujeme dál, dokud jsou všechny zafixované +- takto pokračujeme dál, dokud nejsou všechny zafixované - pořadí podle slibnosti položek (od slibnějších k méně) - "greedy" - nikdy se nevrací, nikdy nemění dřívě udělané rozhodnutí @@ -60,10 +60,11 @@ Příklad: Generování permutací - generujte všechny/náhodnou/další permutaci délky $n$ - permutace v poli, inkrementální změna = jeden swap v poli - inkrementální změna generuje další permutaci z předchozí - - extrémně rychlé - až $O(0)$ v průměru pro 1 permutaci, nezávisí na $n$ + - extrémně rychlé - až $O(1)$ v průměru pro 1 permutaci, nezávisí na $n$ ## Rozděl a panuj (D&C) +- angl. *divide-and-conquer* - složitý problém je rozdělen na jednodušší podproblémy - řešení podproblémů se poté spojí na celkové řešení - pro dekomponovatelné problémy diff --git a/KIV PRO/03. Randomizované algoritmy.md b/KIV PRO/03. Randomizované algoritmy.md index e77d4f6..2561bda 100644 --- a/KIV PRO/03. Randomizované algoritmy.md +++ b/KIV PRO/03. Randomizované algoritmy.md @@ -2,7 +2,7 @@ ## Motivace -Mějme pole prvků, které je tvořeno stejným počtem prvků **a** a **b** v nejznámém pořadí. Cílem je najít znak **a**. +Mějme pole prvků, které je tvořeno stejným počtem prvků **a** a **b** v neznámém pořadí. Cílem je najít znak **a**. Deterministicky: - $n/2$ kroků v nejhorším případě (pokud napřed budou všechna **b**) @@ -12,7 +12,7 @@ Randomizovaně: - s velkou pravděpodobností najdeme **a** brzy bez ohledu na vstup - tzv. Las Vegas algoritmus -+ randomizovaný algoritmus může být jednodušší neý deteministický při stejném nejhorším případě jako deterministický (např. quicksort) ++ randomizovaný algoritmus může být jednodušší než deteministický při stejném nejhorším případě jako deterministický (např. quicksort) + jednoduchou deterministickou heuristikou s dobrými výsledky může být možné převést na algoritmus s dobrým nejhorším případem dodání náhodnosti (např. medián) + někdy náhodnost může řešit problémy, které deterministicky není možné řešit (problémy řešené orákulem) nebo se zdají nemožné diff --git a/KIV PRO/05. Data stream algoritmy.md b/KIV PRO/05. Data stream algoritmy.md index f66152e..7b7dbac 100644 --- a/KIV PRO/05. Data stream algoritmy.md +++ b/KIV PRO/05. Data stream algoritmy.md @@ -1,7 +1,7 @@ # Data stream algoritmy - **streaming algorithm** - vstupem proud dat přicházející postupně po jedné položce -- zaměženy na minulost - spočítat nějakou funkci dat +- zaměřeny na minulost - spočítat nějakou funkci dat + oproti tomu **online algoritmy** - jak naše rozhodnutí ovlivní budoucnost + vypadá snadné, ale nemáme místo na všechna data, jen $O(\log n)$ nebo dokonce $O(1)$ paměti