From 287f7da16bcba6b9063f2db9ff59b88aa2767e78 Mon Sep 17 00:00:00 2001 From: Filip Znachor Date: Wed, 31 Jan 2024 16:30:14 +0100 Subject: [PATCH] =?UTF-8?q?Oprava=20p=C5=99eklep=C5=AF=20v=20pozn=C3=A1mk?= =?UTF-8?q?=C3=A1ch=20z=20PRO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KIV PRO/02. Algoritmické strategie.md | 5 +++-- KIV PRO/03. Randomizované algoritmy.md | 4 ++-- KIV PRO/05. Data stream algoritmy.md | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) 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