Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
courses:b4m39viz [2026/05/25 16:52] zapleka3courses:b4m39viz [2026/05/27 13:14] (current) – [Question 2: Odlehlé hodnoty (Outliers) – Co to je, co znamenají a k čemu slouží] zapleka3
Line 3: Line 3:
 [[https://docs.google.com/document/d/1hs0U9I88zJqfhg11oBHGQ6gKXcJD5on6AonXecsxDJI/edit?tab=t.0#heading=h.1az79lm4wx0i|VIZ Otázky z minulých let dokument]] [[https://docs.google.com/document/d/1hs0U9I88zJqfhg11oBHGQ6gKXcJD5on6AonXecsxDJI/edit?tab=t.0#heading=h.1az79lm4wx0i|VIZ Otázky z minulých let dokument]]
  
 +[[https://orgpad.info/s/fgJM6_uUP5x|Mind map]]
  
 ======= Question set 1 ======= ======= Question set 1 =======
Line 158: Line 159:
 Sugiyamův rámec (Sugiyama Framework) je široce používaný algoritmus, který řeší problém, jak prostorově uspořádat uzly u relačních dat. Sugiyamův rámec (Sugiyama Framework) je široce používaný algoritmus, který řeší problém, jak prostorově uspořádat uzly u relačních dat.
  
-  - Je určený specificky pro výpočet **hierarchického rozvržení stromů** nebo **orientovaných acyklických grafů (DAG)**. +  - Je primárně navržený pro výpočet **hierarchického rozvržení stromů** nebo **orientovaných acyklických grafů (DAG)**. Lze jej však aplikovat i na **obecné orientované grafy (s cykly)**, se kterými si poradí dočasným otočením problémových hran
-  - Je naprosto ideální pro úlohy, kde potřebujeme jasně komunikovat **hierarchii, návaznosti nebo směr toku** informací.+  - Je naprosto ideální pro úlohy, kde potřebujeme jasně komunikovat **hierarchii, návaznosti nebo hlavní směr toku** informací.
   - %%Příklad využití:%% Zobrazení prerekvizit předmětů na univerzitě (předmět A musím splnit před předmětem B), analýza závislostí v softwarovém kódu, nebo zobrazení rodokmenu.   - %%Příklad využití:%% Zobrazení prerekvizit předmětů na univerzitě (předmět A musím splnit před předmětem B), analýza závislostí v softwarovém kódu, nebo zobrazení rodokmenu.
 ++++ ++++
Line 167: Line 168:
  
   - **Horizontální vrstvy:** Všechny uzly grafu jsou úhledně seřazeny do zřetelných horizontálních vrstev (úrovní).   - **Horizontální vrstvy:** Všechny uzly grafu jsou úhledně seřazeny do zřetelných horizontálních vrstev (úrovní).
-  - **Jednosměrnost hran:** Zásadním rysem je, že **všechny hrany směřují pouze jedním směrem** (typicky shora dolů).  +  - **Převážná jednosměrnost hran:** Zásadním rysem je, že **naprostá většina hran směřuje pouze jedním směrem** (typicky shora dolů). Výjimkou jsou zpětné hrany (pokud původní data obsahovala cykly) – ty po vykreslení směřují nahoru proti hlavnímu toku
-  - **Jasná hierarchie:** Každý uzel-potomek se vždy nachází vizuálně ve vrstvě pod svým rodičem. Díky tomu algoritmus zamezuje vzniku matoucích zpětných smyček směřujících nahoru, což divákovi umožňuje okamžitě pochopit celou strukturu od kořene až po listy.+  - **Jasná hierarchie:** Každý uzel-potomek se (až na zmíněné cykly) vždy nachází vizuálně ve vrstvě pod svým rodičem. Algoritmus tak minimalizuje vizuální chaos a umožňuje divákovi okamžitě pochopit celkovou strukturu od kořenů až po listy.
 ++++ ++++
  
Line 237: Line 238:
  
   - **Dynamické mapování (Čas $\rightarrow$ Čas / Animace):** Fyzický čas přehrávání vizualizace odpovídá času v datech.   - **Dynamické mapování (Čas $\rightarrow$ Čas / Animace):** Fyzický čas přehrávání vizualizace odpovídá času v datech.
-    * *Výhoda:* Přirozené (žádná mentální konverze), dobré pro sledování vývoje 2D/3D polí (%%např.%% šíření bouře). +    **Výhoda:** Přirozené (žádná mentální konverze), dobré pro sledování vývoje 2D/3D polí (%%např.%% šíření bouře). 
-    * *Nevýhoda:* Nevhodné pro analytické úlohy. Lidská krátkodobá paměť nedokáže přesně porovnat to, co vidí teď, s tím, co viděla před chvílí.+    **Nevýhoda:** Nevhodné pro analytické úlohy. Lidská krátkodobá paměť nedokáže přesně porovnat to, co vidí teď, s tím, co viděla před chvílí.
   - **Statické mapování (Čas $\rightarrow$ Prostor):** Čas je namapován na osu nebo vizuální kanál.   - **Statické mapování (Čas $\rightarrow$ Prostor):** Čas je namapován na osu nebo vizuální kanál.
-    * *Výhoda:* Umožňuje **přímé vizuální srovnání** hodnot napříč historií.+    **Výhoda:** Umožňuje **přímé vizuální srovnání** hodnot napříč historií.
     * **Vizuální kanály pro kódování času:**     * **Vizuální kanály pro kódování času:**
       * **Pozice:** Nejčastější a nejpřesnější (osa X).       * **Pozice:** Nejčastější a nejpřesnější (osa X).
Line 376: Line 377:
 **Přímé objemové renderování** je pokročilá vizualizační technika pro zobrazení 3D objemových dat (např. CT nebo MRI skenů).  **Přímé objemové renderování** je pokročilá vizualizační technika pro zobrazení 3D objemových dat (např. CT nebo MRI skenů). 
  
-  - **Základní princip:** Na rozdíl od *nepřímé vizualizace* (která z dat nejprve vytvoří 3D geometrii, např. síť trojúhelníků pomocí Marching Cubes), DVR **neextrahují žádnou mezilehlou geometrickou reprezentaci**. Zobrazuje 3D data přímo a mapuje vlastnosti objemu na pixely obrazovky.+  - **Základní princip:** Na rozdíl od **nepřímé vizualizace** (která z dat nejprve vytvoří 3D geometrii, např. síť trojúhelníků pomocí Marching Cubes), DVR **neextrahují žádnou mezilehlou geometrickou reprezentaci**. Zobrazuje 3D data přímo a mapuje vlastnosti objemu na pixely obrazovky.
   - **Ray Marching (Paprskový pochod):** Základní algoritmus DVR. Pro každý pixel 2D obrazovky (kamery) se do 3D objemu vyšle světelný paprsek. Algoritmus po malých krocích "pochoduje" podél tohoto paprsku a v každém kroku odebere vzorek dat (interpoluje skalární hodnotu z mřížky).   - **Ray Marching (Paprskový pochod):** Základní algoritmus DVR. Pro každý pixel 2D obrazovky (kamery) se do 3D objemu vyšle světelný paprsek. Algoritmus po malých krocích "pochoduje" podél tohoto paprsku a v každém kroku odebere vzorek dat (interpoluje skalární hodnotu z mřížky).
   - **Vyhodnocení paprsku:** Nasbírané vzorky podél paprsku se musí "zploštit" do jedné barvy pixelu. To se děje dvěma způsoby:   - **Vyhodnocení paprsku:** Nasbírané vzorky podél paprsku se musí "zploštit" do jedné barvy pixelu. To se děje dvěma způsoby:
Line 496: Line 497:
     * Je to často **intuitivnější**, protože proces přirozeně odpovídá fyzikálnímu modelu (světlo se kumuluje od zdroje k pozorovateli).     * Je to často **intuitivnější**, protože proces přirozeně odpovídá fyzikálnímu modelu (světlo se kumuluje od zdroje k pozorovateli).
     * Z hlediska výpočtu potřebujeme řešit **pouze jednu rovnici** pro každý vzorek (počítá se pouze kumulace intenzity).     * Z hlediska výpočtu potřebujeme řešit **pouze jednu rovnici** pro každý vzorek (počítá se pouze kumulace intenzity).
 +  - **Nevýhody:**
 +      * Zbytečné výpočty pokud existuje neprůhledný objekt blíž ke kameře.
 ++++ ++++
  
Line 501: Line 504:
 Zde algoritmus prochází vzorky podél paprsku od **nejbližšího bodu k nejvzdálenějšímu** (od %%$i = 0$%% do %%$i = n$%%). Zde algoritmus prochází vzorky podél paprsku od **nejbližšího bodu k nejvzdálenějšímu** (od %%$i = 0$%% do %%$i = n$%%).
  
-  - **Princip:** Během průchodu se postupně kumuluje jak výsledná barva, tak i **celková průhlednost**. Algoritmus si pamatuje, kolik světla ještě může projít dále do objemu. Výpočet vyžaduje řešení **dvou rovnic** (jednu pro intenzitu a druhou pro průhlednost).+  - **Princip:** Během průchodu se postupně kumuluje jak výsledná barva, tak i **celková průhlednost**. Algoritmus si pamatuje, kolik světla ještě může projít dále do objemu. 
   - **Výhody a Časné ukončení (Early termination):**   - **Výhody a Časné ukončení (Early termination):**
     * Hlavní a naprosto klíčovou výhodou této metody je možnost **časného ukončení**.      * Hlavní a naprosto klíčovou výhodou této metody je možnost **časného ukončení**. 
     * Jakmile kumulovaná průhlednost (alpha) dosáhne hodnoty blížící se 1.0 (tj. materiál se stane plně neprůhledným), proces skládání pro daný paprsek se **okamžitě zastaví**.     * Jakmile kumulovaná průhlednost (alpha) dosáhne hodnoty blížící se 1.0 (tj. materiál se stane plně neprůhledným), proces skládání pro daný paprsek se **okamžitě zastaví**.
     * Všechny další vzorky za tímto bodem už by stejně nebyly viditelné, takže je zbytečné je počítat. To může **výrazně zrychlit renderování**, zejména u objemů s neprůhlednými strukturami.     * Všechny další vzorky za tímto bodem už by stejně nebyly viditelné, takže je zbytečné je počítat. To může **výrazně zrychlit renderování**, zejména u objemů s neprůhlednými strukturami.
 +  - **Nevýhody:**
 +      * Výpočet vyžaduje řešení **dvou rovnic** (jednu pro intenzitu a druhou pro průhlednost).
 ++++ ++++
  
Line 514: Line 519:
 Prvním zásadním problémem je **nelinearita (percepční neuniformita)** mnoha běžných barevných prostorů (např. RGB, HSV). Prvním zásadním problémem je **nelinearita (percepční neuniformita)** mnoha běžných barevných prostorů (např. RGB, HSV).
   - V těchto prostorech matematická vzdálenost mezi dvěma barvami neodpovídá tomu, jak rozdíl vnímá lidské oko. Stejný číselný rozdíl v datech se může v jedné části barevného spektra jevit jako obrovský skok a v jiné jako neviditelná změna.   - V těchto prostorech matematická vzdálenost mezi dvěma barvami neodpovídá tomu, jak rozdíl vnímá lidské oko. Stejný číselný rozdíl v datech se může v jedné části barevného spektra jevit jako obrovský skok a v jiné jako neviditelná změna.
 +  - Odstín neimplikuje řazení, jas ano.
 +  - Odstín má vyšší rozlišitelnost než jas a sytost.
   - **Duhová škála (Rainbow / Jet Colormap):** Je odstrašujícím příkladem tohoto problému. Není percepčně uniformní v odstínu ani v jasu. Vytváří **falešné (umělé) hrany** v místech rychlého vizuálního přechodu (např. kolem žluté a tyrkysové) a naopak skrývá detaily v oblastech, kde se barva mění vizuálně pomalu (např. v širokém zeleném pruhu).   - **Duhová škála (Rainbow / Jet Colormap):** Je odstrašujícím příkladem tohoto problému. Není percepčně uniformní v odstínu ani v jasu. Vytváří **falešné (umělé) hrany** v místech rychlého vizuálního přechodu (např. kolem žluté a tyrkysové) a naopak skrývá detaily v oblastech, kde se barva mění vizuálně pomalu (např. v širokém zeleném pruhu).
   - **Řešení:** Pro kvantitativní data je nutné používat percepčně uniformní prostory, jako je **CIELAB** nebo **HCL** (např. škály Viridis nebo Plasma).   - **Řešení:** Pro kvantitativní data je nutné používat percepčně uniformní prostory, jako je **CIELAB** nebo **HCL** (např. škály Viridis nebo Plasma).
Line 579: Line 586:
   - **Více polygonů (Nevýhoda):** Protože se jedna krychle dělí na 5 nebo 6 čtyřstěnů, metoda vyprodukuje mnohem více polygonů, což **zvyšuje paměťové a výpočetní nároky** renderování.   - **Více polygonů (Nevýhoda):** Protože se jedna krychle dělí na 5 nebo 6 čtyřstěnů, metoda vyprodukuje mnohem více polygonů, což **zvyšuje paměťové a výpočetní nároky** renderování.
   - **Problém se zarovnáním hran:** Pokud se krychle dělí na 5 tetrahedrů, hrany na stěnách sousedních krychlí na sebe nemusí topologicky navazovat (jedna má diagonálu jinak než druhá). To se musí řešit **zrcadlením (střídáním)** vzoru rozdělení u sousedních buněk, aby na sebe trojúhelníky plynule navazovaly.   - **Problém se zarovnáním hran:** Pokud se krychle dělí na 5 tetrahedrů, hrany na stěnách sousedních krychlí na sebe nemusí topologicky navazovat (jedna má diagonálu jinak než druhá). To se musí řešit **zrcadlením (střídáním)** vzoru rozdělení u sousedních buněk, aby na sebe trojúhelníky plynule navazovaly.
 +++++
 +
 +===== Question 2: First hit (Izo-povrchová funkce) - popis metody a její realizace =====
 +
 +++++ 1. Co je metoda First hit (Izo-povrchová funkce)|
 +Metoda **First hit** (první zásah), odborně nazývaná jako **Izo-povrchová funkce (Isosurface function)**, je technikou patřící do oblasti **přímého objemového renderování (Direct Volume Rendering - DVR)**. 
 +
 +Funguje jako specifická **paprsková funkce (Ray function)** v rámci algoritmu Ray Marching (paprskový pochod). Její hlavní myšlenkou je najít první místo podél vyslaného světelného paprsku, kde objemová data dosáhnou přesně námi zadané prahové hodnoty (izo-hodnoty %%$\sigma$%%), a v tomto místě vizualizovat povrch. 
 +
 +Vizuálně tato metoda produkuje prakticky **stejné výsledky jako algoritmus Marching Cubes** (vykreslí izo-povrch, např. povrch kosti v CT skenu), ale s jedním zásadním rozdílem: **neextrahují se předem žádné 3D polygony (geometrie)**. Povrch se počítá a renderuje přímo z objemových dat za běhu.
 +++++
 +
 +++++ 2. Matematický princip a rovnice|
 +Paprsková funkce matematicky ověřuje, zda zadaná izo-hodnota %%$\sigma$%% na dráze paprsku vůbec existuje. Pokud ano, zobrazí barvu povrchu v místě prvního průsečíku. Pokud ne, zobrazí barvu pozadí.
 +
 +Rovnice paprskové funkce "First hit" vypadá takto:
 +
 +%%$I(p) = \begin{cases} f(\sigma), & \exists t \in [0, T], s(t) = \sigma \\ I_0, & \text{jinak} \end{cases}$%%
 +
 +Vysvětlení proměnných:
 +  - %%$I(p)$%%: Výsledná intenzita (barva) pixelu %%$p$%% na obrazovce.
 +  - %%$f(\sigma)$%%: Barva povrchu, který odpovídá izo-hodnotě %%$\sigma$%% (často obohacená o stínování).
 +  - %%$I_0$%%: Barva pozadí (pokud paprsek projde objemem a "nenarazí" na izo-hodnotu).
 +  - %%$s(t)$%%: Skalární hodnota v objemu v bodě určeném parametrem %%$t$%% na paprsku.
 +++++
 +
 +++++ 3. Jak bychom metodu realizovali (Postup algoritmu)|
 +Realizace by probíhala softwarově nebo mnohem lépe hardwarově (GPU) pomocí algoritmu **Ray Marching** se zapnutým skládáním **zepředu dozadu (front-to-back)** pro včasné ukončení. Postupovali bychom v těchto krocích:
 +
 +  - **Vyslání paprsků:** Pro každý pixel 2D obrazovky zkonstruujeme paprsek, který z kamery prochází skrz náš 3D datový objem (např. voxelovou mřížku).
 +  - **Paprskový pochod (Krokování):** Postupujeme podél paprsku po malých, předem definovaných vzdálenostech (velikost kroku / step size).
 +  - **Vzorkování:** V každém kroku získáme aktuální skalární hodnotu z mřížky. Jelikož krok často nevyjde přesně do středu voxelu, musíme hodnotu vypočítat pomocí **trilineární interpolace** z okolních 8 uzlů.
 +  - **Detekce "zásahu" (Hit):** V každém kroku zkontrolujeme, zda jsme "nepřekročili" hledanou izo-hodnotu %%$\sigma$%%. Uděláme to porovnáním hodnoty z předchozího kroku a aktuálního kroku (např. předchozí hodnota byla pod %%$\sigma$%% a aktuální je nad %%$\sigma$%%).
 +  - **Zpracování prvního zásahu:** Jakmile detekujeme tento přechod (to je náš "First hit"):
 +    * Pomocí lineární interpolace mezi předchozím a aktuálním krokem najdeme **naprosto přesnou pozici** na paprsku, kde se hodnota rovná %%$\sigma$%%.
 +    * V tomto bodě vypočítáme **gradient** (např. metodou centrální diference z okolních bodů mřížky). Tento gradient znormalizujeme a použijeme ho jako **normálový vektor** povrchu.
 +    * Na základě tohoto normálového vektoru a pozice virtuálního světla aplikujeme osvětlovací model (např. **Phongovo stínování**), čímž získáme realistickou barvu povrchu včetně odlesků.
 +    * Tuto barvu zapíšeme do našeho pixelu na obrazovce.
 +  - **Okamžité ukončení (Early ray termination):** Protože nás zajímal jen první povrch (First hit), trasování tohoto paprsku okamžitě ukončíme, čímž ušetříme obrovské množství výpočetního výkonu.
 +++++
 +
 +++++ 4. Výhody a nevýhody oproti Marching Cubes|
 +  - **Výhoda:** Nepotřebujeme ukládat miliony vygenerovaných trojúhelníků do paměti (jako to dělá Marching Cubes). Povrch se generuje vizuálně za letu s přesností na každý pixel. Díky výpočtu přesných normál (gradientů) můžeme dosáhnout extrémně kvalitního vyhlazeného a stínovaného zobrazení.
 +  - **Nevýhoda:** Vysoké výpočetní nároky, zejména pokud je izo-povrch hluboko v objemu a paprsky musí projít velkým množstvím prázdného místa (krokování stojí čas).
 ++++ ++++
  
Line 630: Line 681:
 **1. Kontrola a ověřování analytických modelů (např. Regrese):** **1. Kontrola a ověřování analytických modelů (např. Regrese):**
   - Pokud při automatizované analýze aplikujeme na data matematický model (např. proložíme je regresní přímkou), i **jeden jediný silný outlier dokáže drasticky změnit sklon a posun této přímky**, což vede ke zcela chybné interpretaci celého vztahu.   - Pokud při automatizované analýze aplikujeme na data matematický model (např. proložíme je regresní přímkou), i **jeden jediný silný outlier dokáže drasticky změnit sklon a posun této přímky**, což vede ke zcela chybné interpretaci celého vztahu.
-  - Vizualizace (např. zobrazení bodového grafu s proloženou přímkou) nám umožní okamžitě vidět, že model selhává kvůli odlehlé hodnotě. Můžeme ji vizuálně identifikovat, interaktivně odfiltrovat a sledovat, jak se model zpřesní pro zbytek dat. (Slavným příkladem důležitosti vizualizace je *Anscombův kvartet*).+  - Vizualizace (např. zobrazení bodového grafu s proloženou přímkou) nám umožní okamžitě vidět, že model selhává kvůli odlehlé hodnotě. Můžeme ji vizuálně identifikovat, interaktivně odfiltrovat a sledovat, jak se model zpřesní pro zbytek dat. (Slavným příkladem důležitosti vizualizace je **Anscombův kvartet**). 
 +{{:courses:pasted:20260527-131216.png?350}}
  
 **2. Praktické aplikace (Detekce anomálií):** **2. Praktické aplikace (Detekce anomálií):**
Line 636: Line 688:
   - **Kyberbezpečnost:** Hledání abnormální aktivity v síti, která indikuje pokus o prolomení nebo zero-day útok.   - **Kyberbezpečnost:** Hledání abnormální aktivity v síti, která indikuje pokus o prolomení nebo zero-day útok.
   - **Bankovnictví a finance:** Detekce podvodů s kreditními kartami (kdy transakce neodpovídá typickému chování uživatele).   - **Bankovnictví a finance:** Detekce podvodů s kreditními kartami (kdy transakce neodpovídá typickému chování uživatele).
-  - V těchto doménách se běžně využívá *Vizuální analytika* a speciální mantry jako "Search, Show Context, Expand on Demand", protože ukazovat všechny miliardy normálních transakcí nedává smysl.+  - V těchto doménách se běžně využívá **Vizuální analytika** a speciální mantry jako "Search, Show Context, Expand on Demand", protože ukazovat všechny miliardy normálních transakcí nedává smysl.
 ++++ ++++
  
Line 805: Line 857:
 ++++ 2. Které vizuální proměnné LZE vnímat pre-pozornostně (Příklady)| ++++ 2. Které vizuální proměnné LZE vnímat pre-pozornostně (Příklady)|
 Lidský vizuální systém dokáže pre-pozornostně zpracovat celou řadu základních vizuálních vlastností (proměnných). Patří mezi ně například: Lidský vizuální systém dokáže pre-pozornostně zpracovat celou řadu základních vizuálních vlastností (proměnných). Patří mezi ně například:
-  - **Odstín barvy (Color hue):** %%Např.%% jeden červený bod okamžitě vyskočí v moři modrých bodů. +  - **Odstín barvy (Color hue):** Např. jeden červený bod okamžitě vyskočí v moři modrých bodů. 
-  - **Tvar (Shape):** %%Např.%% jeden kruh vyskočí v poli tvořeném samými čtverci. +  - **Tvar (Shape):** Např. jeden kruh vyskočí v poli tvořeném samými čtverci. 
-  - **Velikost, délka a šířka:** %%Např.%% jedna výrazně delší čára mezi krátkými čarami. +  - **Velikost, délka a šířka:** Např. jedna výrazně delší čára mezi krátkými čarami. 
-  - **Orientace / Sklon:** %%Např.%% jedna šikmá čára mezi samými svislými čarami. +  - **Orientace / Sklon:** Např. jedna šikmá čára mezi samými svislými čarami. 
-  - **Intenzita (Svítivost):** %%Např.%% jeden velmi tmavý bod na světlém pozadí.+  - **Intenzita (Svítivost):** Např. jeden velmi tmavý bod na světlém pozadí.
   - **Pozice, Směr pohybu nebo 3D hloubka.**   - **Pozice, Směr pohybu nebo 3D hloubka.**
 ++++ ++++
Line 817: Line 869:
  
   - **Konjunkce (kombinace) vlastností:** Pozorovatel nemůže rychle a přesně najít cíl, pokud tento cíl hledá na základě **kombinace dvou a více vlastností**, přičemž tyto vlastnosti se vyskytují i u rušivých prvků.    - **Konjunkce (kombinace) vlastností:** Pozorovatel nemůže rychle a přesně najít cíl, pokud tento cíl hledá na základě **kombinace dvou a více vlastností**, přičemž tyto vlastnosti se vyskytují i u rušivých prvků. 
-    * %%Příklad:%% Hledáme "červený kruh". Na pozadí jsou ovšem "červené čtverce" a "modré kruhy". Ani barva, ani tvar zde nejsou pro hledaný prvek unikátní. Zrak nedokáže udělat paralelní průnik těchto dvou vlastností a my musíme obrázek prohledávat sekvenčně. +    * **Příklad:** Hledáme "červený kruh". Na pozadí jsou ovšem "červené čtverce" a "modré kruhy". Ani barva, ani tvar zde nejsou pro hledaný prvek unikátní. Zrak nedokáže udělat paralelní průnik těchto dvou vlastností a my musíme obrázek prohledávat sekvenčně. 
-  - **Text:** Čtení a hledání konkrétního slova v bloku textu (%%např.%% najít slovo "VOJÁK" ve shluku náhodných písmen) není pre-pozornostní, vyžaduje vždy aktivní čtení a soustředění.+  - **Text:** Čtení a hledání konkrétního slova v bloku textu (např. najít slovo "VOJÁK" ve shluku náhodných písmen) není pre-pozornostní, vyžaduje vždy aktivní čtení a soustředění.
 ++++ ++++
  
Line 825: Line 877:
  
 ++++ 1. Definice a algoritmus Marching Squares| ++++ 1. Definice a algoritmus Marching Squares|
-**Izočára (kontura / izolinie)** je čára, která spojuje body mající naprosto stejnou, konstantní skalární hodnotu (tzv. izo-hodnotu, %%např.%% vrstevnice na mapě výšek nebo izobary u tlaku).+**Izočára (kontura / izolinie)** je čára, která spojuje body mající naprosto stejnou, konstantní skalární hodnotu (tzv. izo-hodnotu, např. vrstevnice na mapě výšek nebo izobary u tlaku).
  
 Pokud máme data zadaná jako 2D strukturovanou čtvercovou mřížku (hodnoty jsou uložené v uzlech mřížky), standardním algoritmem pro nalezení a vykreslení izočar je **Marching Squares** (pochodující čtverce).  Pokud máme data zadaná jako 2D strukturovanou čtvercovou mřížku (hodnoty jsou uložené v uzlech mřížky), standardním algoritmem pro nalezení a vykreslení izočar je **Marching Squares** (pochodující čtverce). 
Line 832: Line 884:
 ++++ 2. Krok 1: Klasifikace uzlů a hledání průsečíků na hranách| ++++ 2. Krok 1: Klasifikace uzlů a hledání průsečíků na hranách|
 Algoritmus zpracovává mřížku následujícím způsobem: Algoritmus zpracovává mřížku následujícím způsobem:
-  - **Klasifikace uzlů:** Pro každý uzel (vrchol) mřížky se určí, zda je jeho datová hodnota **větší nebo menší** než naše hledaná izo-hodnota %%$v$%%. (Vizuálně si můžeme uzly obarvit, %%např.%% modrá pro $>$ a červená pro $<$ ).+  - **Klasifikace uzlů:** Pro každý uzel (vrchol) mřížky se určí, zda je jeho datová hodnota **větší nebo menší** než naše hledaná izo-hodnota %%$v$%%. (Vizuálně si můžeme uzly obarvit, např. modrá pro %%$>$%% a červená pro %%$<$%%).
   - **Dělení hran:** Algoritmus prochází každou buňku (čtverec tvořený 4 uzly). Podívá se na každou její hranu. Pokud má hrana jeden uzel s hodnotou nad izo-hodnotou a druhý pod ní, znamená to, že izočára musí tuto hranu někde **protnout**.   - **Dělení hran:** Algoritmus prochází každou buňku (čtverec tvořený 4 uzly). Podívá se na každou její hranu. Pokud má hrana jeden uzel s hodnotou nad izo-hodnotou a druhý pod ní, znamená to, že izočára musí tuto hranu někde **protnout**.
   - **Výpočet průsečíku:** Přesný bod průsečíku na hraně se spočítá pomocí **lineární interpolace**. Výpočet zjistí přesnou pozici %%$q$%% na základě hodnot obou uzlů hrany (%%$v_i$%%, %%$v_j$%%) a hledané izo-hodnoty %%$v$%%:   - **Výpočet průsečíku:** Přesný bod průsečíku na hraně se spočítá pomocí **lineární interpolace**. Výpočet zjistí přesnou pozici %%$q$%% na základě hodnot obou uzlů hrany (%%$v_i$%%, %%$v_j$%%) a hledané izo-hodnoty %%$v$%%:
Line 851: Line 903:
   - **Řešení:**    - **Řešení:** 
     * **Možnost 1:** Rozdělení čtverce na dva trojúhelníky. Trojúhelníky (se 3 vrcholy) nemají ambiguózní stavy, ale volba diagonály stále ovlivňuje výsledek.     * **Možnost 1:** Rozdělení čtverce na dva trojúhelníky. Trojúhelníky (se 3 vrcholy) nemají ambiguózní stavy, ale volba diagonály stále ovlivňuje výsledek.
-    * **Možnost 2 (Pokročilejší):* Aplikace tzv. **Asymptotického rozhodovače (Asymptotic Decider)**. Ten pomocí bilineární interpolace zjistí exaktní hodnotu uprostřed buňky (v průsečíku asymptot hyperbol) a podle toho, zda je tento střed nad nebo pod izo-hodnotou, spolehlivě vybere správné propojení čar.+    * **Možnost 2 (Pokročilejší):** Aplikace tzv. **Asymptotického rozhodovače (Asymptotic Decider)**. Ten pomocí bilineární interpolace zjistí exaktní hodnotu uprostřed buňky (v průsečíku asymptot hyperbol) a podle toho, zda je tento střed nad nebo pod izo-hodnotou, spolehlivě vybere správné propojení čar.
 ++++ ++++
  
 ---- ----
- 
-======= Question set 8 ======= 
  
 ======= Question set 12 ======= ======= Question set 12 =======
Line 863: Line 913:
  
 ++++ 1. Typy relačních dat (grafů a sítí)| ++++ 1. Typy relačních dat (grafů a sítí)|
-Relační data vyjadřují vazby (hrany/links) mezi entitami (uzly/nodes). Lze je rozdělit do několika základních typů podle toho, jaké vlastnosti tyto vazby mají (zda mají směr a zda tvoří cykly):+Relační data vyjadřují vazby (hrany) mezi entitami (uzly). Lze je rozdělit do několika základních typů podle toho, jaké vlastnosti tyto vazby mají (zda mají směr a zda tvoří cykly):
  
-  - **Hierarchie / Stromy (Trees):** Relace vyjadřuje vztah "rodič-potomek". Jsou orientované a **neexistují v nich žádné cykly**. (%%Příklad:%% Souborový systém - složky a podsložky). +  - **Hierarchie / Stromy (Trees):** Relace vyjadřuje vztah "rodič-potomek". Jsou orientované a **neexistují v nich žádné cykly**. (Příklad: Souborový systém - složky a podsložky). 
-  - **Orientované acyklické grafy (DAG - Directed Acyclic Graph):** Hrany mají jasně určený směr, ale stále v nich nesmí vzniknout uzavřený cyklus. (%%Příklad:%% Návaznosti prerekvizit univerzitních předmětů - předmět A musím mít před B). +  - **Orientované acyklické grafy (DAG - Directed Acyclic Graph):** Hrany mají jasně určený směr, ale stále v nich nesmí vzniknout uzavřený cyklus. (Příklad: Návaznosti prerekvizit univerzitních předmětů - předmět A musím mít splněný před B). 
-  - **Neorientované sítě (Undirected networks):** Vazby jsou obousměrné a symetrické, nezáleží na směru. Mohou obsahovat cykly. (%%Příklad:%% Sociální síť Facebook - přátelství je vzájemné). +  - **Neorientované sítě (Undirected networks):** Vazby jsou obousměrné a symetrické, nezáleží na směru. Mohou obsahovat cykly. (Příklad: Sociální síť Facebook - přátelství je vzájemné). 
-  - **Orientované sítě (Directed networks):** Vazby mají směr a síť může obsahovat libovolné cykly. (%%Příklad:%% World Wide Web - stránka A odkazuje na B, B může na C a C zpět na A).+  - **Orientované sítě (Directed networks):** Vazby mají směr a síť může obsahovat libovolné cykly. (Příklad: World Wide Web - stránka A odkazuje na B, B může na C a C zpět na A).
 ++++ ++++
  
Line 874: Line 924:
 Základním problémem vizualizace sítí je, že uzly typicky nemají předem dané prostorové souřadnice. Ty musí algoritmus vypočítat. Používají se 3 hlavní přístupy: Základním problémem vizualizace sítí je, že uzly typicky nemají předem dané prostorové souřadnice. Ty musí algoritmus vypočítat. Používají se 3 hlavní přístupy:
  
-  - **1. Node-link diagramy (Spojení čarami):** Nejběžnější metoda. Uzly jsou body/tvary a vazby jsou čáry (nebo šipky). +  - **Node-link diagramy (Spojení čarami):** Nejběžnější metoda. Uzly jsou body/tvary a vazby jsou čáry (nebo šipky). 
     * Pro stromy a DAG: Používá se **Sugiyamův rámec** (kreslí hierarchii do horizontálních vrstev shora dolů) nebo **Radiální / Balónové / Hyperbolické stromy**.     * Pro stromy a DAG: Používá se **Sugiyamův rámec** (kreslí hierarchii do horizontálních vrstev shora dolů) nebo **Radiální / Balónové / Hyperbolické stromy**.
     * Pro obecné sítě (i s cykly): Používají se **Metody řízené silami (Force-directed layouts)**, jako např. Fruchterman-Reingold. Fungují jako fyzikální systém, kde se spojené uzly přitahují (jako na pružině) a nespojené odpuzují (jako magnety).     * Pro obecné sítě (i s cykly): Používají se **Metody řízené silami (Force-directed layouts)**, jako např. Fruchterman-Reingold. Fungují jako fyzikální systém, kde se spojené uzly přitahují (jako na pružině) a nespojené odpuzují (jako magnety).
-  - **2. Vizualizace pomocí ohraničení (Containment):** Uzly-potomci jsou nakresleni jako menší útvary (obdélníky) uvnitř útvaru svého rodiče. Vynikající pro vizualizaci objemu a hierarchií (1:M relace). Typickým zástupcem je **Treemap (Squarified, Nested)**. +  - **Vizualizace pomocí ohraničení (Containment):** Uzly-potomci jsou nakresleni jako menší útvary (obdélníky) uvnitř útvaru svého rodiče. Vynikající pro vizualizaci objemu a hierarchií (1:M relace). Typickým zástupcem je **Treemap (Squarified, Nested)**. 
-  - **3. Maticová vizualizace (Adjacency Matrix):** Řeší problém nečitelnosti ("hairball" efektu) u velmi hustých sítí. Uzly jsou řádky i sloupce v matici a samotná vazba je vybarvená buňka na jejich průsečíku. Pro odhalení vzorců a shluků (komunit) se musí chytře řadit řádky a sloupce (reordering).+  - **Maticová vizualizace (Adjacency Matrix):** Řeší problém nečitelnosti ("hairball" efektu) u velmi hustých sítí. Uzly jsou řádky i sloupce v matici a samotná vazba je vybarvená buňka na jejich průsečíku. Pro odhalení vzorců a shluků (komunit) se musí chytře řadit řádky a sloupce (reordering).
 ++++ ++++
  
 ++++ 3. Jaké úlohy vizualizace relačních dat řeší| ++++ 3. Jaké úlohy vizualizace relačních dat řeší|
-Cílem vizualizace je poskytnout uživateli odpovědi na otázky zaměřené na topologii a atributy sítě. Úlohy se dělí podle svého cíle (target):+Cílem vizualizace je poskytnout uživateli odpovědi na otázky zaměřené na topologii a atributy sítě. Úlohy se dělí podle svého cíle:
  
   - **Cílem je uzel (Item) nebo atribut:**   - **Cílem je uzel (Item) nebo atribut:**
Line 914: Line 964:
   - **Příklad vhodného využití:** Zkoumání velmi rozsáhlých a složitých síťových grafů (např. topologie obrovské počítačové sítě). Správce může namířit "rybí oko" na jeden přetížený server (fokus se zvětší, ukážou se popisky a detaily zátěže), ale díky stlačenému okolí stále vidí, do kterých částí sítě je server připojen. Neztratí tak orientaci v celkové topologii.   - **Příklad vhodného využití:** Zkoumání velmi rozsáhlých a složitých síťových grafů (např. topologie obrovské počítačové sítě). Správce může namířit "rybí oko" na jeden přetížený server (fokus se zvětší, ukážou se popisky a detaily zátěže), ale díky stlačenému okolí stále vidí, do kterých částí sítě je server připojen. Neztratí tak orientaci v celkové topologii.
   - **Kde to NENÍ dobré:** Tam, kde je úkolem přesně vizuálně odhadovat velikosti, plochy, vzdálenosti nebo korelace. Prostorové zkreslení (deformace) totiž ničí schopnost oka posoudit, zda je nějaká čára rovná, nebo o kolik je jedna oblast větší než druhá. Pro mapy, kde chceme počítat hustotu, nebo pro scatterploty (kde úhel a vzdálenost určují korelaci) je Fisheye naprosto nevhodný, protože data vizuálně zdeformuje.   - **Kde to NENÍ dobré:** Tam, kde je úkolem přesně vizuálně odhadovat velikosti, plochy, vzdálenosti nebo korelace. Prostorové zkreslení (deformace) totiž ničí schopnost oka posoudit, zda je nějaká čára rovná, nebo o kolik je jedna oblast větší než druhá. Pro mapy, kde chceme počítat hustotu, nebo pro scatterploty (kde úhel a vzdálenost určují korelaci) je Fisheye naprosto nevhodný, protože data vizuálně zdeformuje.
 +++++
 +
 +----
 +
 +======= Question set 13 =======
 +
 +===== Question 1: Focus + Context - výhody, nevýhody, příklady a využití u prostorových dat =====
 +
 +++++ 1. Princip, výhody a nevýhody Focus + Context|
 +**Princip:**
 +Tato technika umožňuje uživateli vidět objekt primárního zájmu (**fokus**) v plném detailu, a zároveň si na stejné obrazovce zachovat přehled o všech okolních informacích (**kontext**). Obě informace jsou integrovány do jednoho pohledu.
 +
 +**Výhody:**
 +  - **Udržení orientace:** Uživatel neztrácí globální kontext (ví, kde se detail v rámci celku nachází).
 +  - **Nižší kognitivní zátěž:** Není potřeba přepínat mezi dvěma různými obrazovkami (jako u odděleného přehledu a detailu) a spoléhat se na krátkodobou paměť.
 +
 +**Nevýhody:**
 +  - **Deformace (Distortion):** Aby se detail a kontext vešly na jednu obrazovku, musí se prostor kolem fokusu stlačit nebo zkreslit.
 +  - **Ztráta proporcí:** Zkreslení ztěžuje odhadování vzdáleností, ploch a úhlů, což může vést k chybné interpretaci dat.
 +++++
 +
 +++++ 2. Příklady technik Focus + Context|
 +  - **Přiblížení rybím okem (Fisheye Zoom):** Bod pod kurzorem je obrovský, okraje sítě jsou smrštěné a stlačené k okrajům obrazovky.
 +  - **Perspective Wall:** Zobrazení dat na 3D zdi, kde střed je rovně před divákem (fokus) a kraje ubíhají do perspektivy (kontext).
 +  - **TableLens:** V tabulce jsou některé řádky plně roztažené (ukazují přesná čísla/texty), zbytek řádků je zmenšen na výšku jednoho pixelu jako kontext.
 +  - **Hyperbolický strom:** Kořen (nebo vybraný uzel) je uprostřed s velkým prostorem, čím blíže k okrajům, tím více se prostor exponenciálně smršťuje.
 +++++
 +
 +++++ 3. Jak to udělat v prostorových datech (Spatial Data)|
 +Aplikovat Focus + Context na prostorová data (mapy, 3D objemy) je zrádné, protože prostorová data mají **inherentní geometrii a vzdálenosti**, na které se uživatel spoléhá. Pokud zdeformujeme mapu pomocí Fisheye zoomu, zničíme geografické tvary a vzdálenosti.
 +
 +**Jak to tedy řešit u prostorových dat:**
 +  - **Magické čočky (Magic Lenses):** Místo deformace celého prostoru uživatel pohybuje nad mapou virtuální "čočkou". Uvnitř čočky (fokus) se data zobrazí detailněji nebo se odhalí jiná vrstva (např. rentgenový pohled na potrubí pod ulicemi), zatímco okolní mapa (kontext) zůstává zcela nedeformovaná.
 +  - **Sémantický Focus + Context:** Nezvětšujeme fyzicky prostor, ale měníme sémantiku zobrazení. Například vybraný region na mapě (fokus) zobrazí detailní popisky a grafy, zatímco zbytek kontinentu (kontext) zůstane zobrazen jen jako obrysy bez textu.
 +  - **Průhlednost a stínování u 3D objemových dat:** V lékařské vizualizaci (CT sken) nechceme deformovat orgány. Fokus (např. nádor nebo kosti) se vyrenderuje plně neprůhledně a barevně, zatímco kontext (okolní kůže a měkké tkáně) se vyrenderuje jako vysoce průhledný "duch". Uživatel tak vidí detailní objekt přesně umístěný uvnitř kontextu lidského těla bez geometrického zkreslení.
 +++++
 +
 +
 +===== Question 2: 3 techniky pro vizualizaci stromů/hierarchií, jejich porovnání a vhodné úlohy =====
 +
 +++++ 1. Node-link diagram (Tradiční stromové rozvržení)|
 +**Princip:** Uzly jsou reprezentovány tvary (kruhy, text), hrany jsou čáry spojující rodiče a potomka. Často využívá **Sugiyamův rámec** pro orientaci shora dolů.
 +
 +  - **Výhody oproti ostatním:** Naprosto bezkonkurenční v čitelnosti topologie (kdo je pod kým). Nevzniká zmatení z ohraničení nebo zkreslení.
 +  - **Nevýhody oproti ostatním:** Extrémně špatné využití prostoru obrazovky. Široké stromy (mnoho listů) se nevejdou na monitor a vyžadují scrollování, většina obrazovky zůstává prázdná (bílý prostor mezi čarami).
 +  - **Vhodné vyhledávací dotazy (Úlohy):**
 +    * "Kdo je přímým nadřízeným uzlu X?"
 +    * "Jaká je nejkratší cesta od kořene k listu Y?"
 +    * "Kolik hierarchických úrovní (hloubku) má tato struktura?"
 +++++
 +
 +++++ 2. Treemap (Vizualizace pomocí ohraničení)|
 +**Princip:** Namísto čar se využívá vnořování. Kořen stromu je celá obrazovka. Každý uzel je rozdělen na menší obdélníky reprezentující jeho potomky. Plocha obdélníku vždy kóduje nějaký kvantitativní atribut (např. velikost souboru).
 +
 +  - **Výhody oproti ostatním:** Maximalizuje využití prostoru (100% obrazovky je využito). Je to nejlepší technika pro porovnávání velikostí uzlů a hledání "největších" prvků v obrovských hierarchiích (např. desítky tisíc uzlů), kde by Node-link vytvořil nečitelnou pavučinu.
 +  - **Nevýhody oproti ostatním:** Je velmi obtížné z něj vyčíst samotnou strukturu hierarchie (zejména u ne-vnořených variant). Nelze snadno sledovat hloubku stromu nebo cestu zpět ke kořeni. 
 +  - **Vhodné vyhledávací dotazy (Úlohy):**
 +    * "Který adresář zabírá nejvíce místa na disku?"
 +    * "Které firmy v IT sektoru mají největší podíl na trhu a zároveň klesají (červená barva)?"
 +    * Úlohy zaměřené na atributy listů spíše než na topologii.
 +++++
 +
 +++++ 3. Radiální / Hyperbolický strom|
 +**Princip:** Kořen je umístěn do středu. Větve se rozbíhají směrem ven v soustředných kruzích. Hyperbolický strom k tomu přidává nelineární prostor – střed je obrovský (fokus) a okraje se exponenciálně zmenšují a houstnou (kontext).
 +
 +  - **Výhody oproti ostatním:** Oproti Node-link diagramu lépe využívá obvod kruhu pro zobrazení mnoha listů najednou. Hyperbolický strom řeší problém s místem plynulou interakcí (kliknutím se uzel přesune do středu a rozbalí).
 +  - **Nevýhody oproti ostatním:** Popisky na okrajích radiálního stromu jsou často otočené nebo nečitelně malé. Hyperbolický prostor zcela deformuje vizuální vzdálenosti, takže z něj nelze odhadovat proporce jako u Treemapu.
 +  - **Vhodné vyhledávací dotazy (Úlohy):**
 +    * "Ukaž mi detailní okolí (potomky a nadřízené) tohoto konkrétního uzlu, ale chci stále vidět, kde v celkové síti jsem."
 +    * "Interaktivní průzkum neznámé složité sítě krok za krokem (navigace přesunu fokusu)."
 +++++
 +
 +----
 +
 +======= Question set 14 =======
 +
 +===== Question 1: Prostorová pole - popis skalárních, vektorových a volumetrických polí, techniky zobrazení a nutnost topologie =====
 +
 +++++ 1. Prostorová pole a nutnost znát topologii mřížky|
 +Prostorová pole jsou datové struktury, které obsahují atributy distribuované v nějakém fyzickém nebo abstraktním prostoru. Skládají se ze dvou hlavních částí: **atributů** (samotné hodnoty) a **mřížky (grid)**. 
 +
 +Mřížka diskretizuje prostor pomocí uzlů (pozic) a buněk. Klíčovou vlastností mřížky je její **topologie (konektivita)**.
 +  - **Co to je:** Konektivita definuje, jak jsou jednotlivé uzly navzájem propojeny a jaké tvoří buňky (např. trojúhelníky, čtverce, čtyřstěny).
 +  - **Proč je nutná:** V reálném světě máme data změřena jen v diskrétních bodech (uzlech). Abychom zjistili hodnotu kdekoli jinde v prostoru (abychom zrekonstruovali spojitý model), musíme data **interpolovat**. Způsob, jakým je mřížka definována (její konektivita), přímo určuje, ze kterých sousedních bodů se bude interpolovat. 
 +  - **Důsledek:** Pokud změníme topologii (např. u 4 bodů ve čtverci změníme orientaci úhlopříčky, která je dělí na dva trojúhelníky), výsledná interpolovaná hodnota uprostřed se může drasticky změnit a vizualizace bude ukazovat jiná data.
 +++++
 +
 +++++ 2. Skalární a volumetrická pole + techniky zobrazení|
 +**Skalární pole:** Každému bodu v prostoru je přiřazena přesně jedna číselná hodnota (skalár). Příkladem je rozložení teploty nebo tlaku na 2D mapě.
 +  - **Techniky pro 2D:** 
 +    * **Mapování na barvu:** Hodnota se převede na barvu pomocí percepčně uniformní barevné škály (vytvoří se "teplotní mapa").
 +    * **Konturování (Izočáry):** Spojování bodů se stejnou hodnotou. Používá se algoritmus **Marching Squares**. Lze kombinovat s barevným pruhováním (color banding).
 +
 +**Volumetrická (objemová) pole:** Jedná se o 3D skalární pole. Hodnoty jsou definovány ve 3D prostoru (často v pravidelné voxelové mřížce). Příkladem je CT nebo MRI sken lidského těla (mapuje se hustota tkáně).
 +  - **Techniky pro 3D (Nepřímé):** Převádí data na 3D geometrii. Patří sem **Řezné roviny** (2D řezy objemem) nebo extrakce 3D izo-povrchů pomocí **Marching Cubes** či **Marching Tetrahedrons**.
 +  - **Techniky pro 3D (Přímé - Direct Volume Rendering):** Neextrahují geometrii, obraz se počítá rovnou na pixely. Základem je **Ray Marching** (paprskový pochod) s využitím paprskových funkcí (MIP - projekce maximální intenzity, AIP - průměrná projekce) nebo pokročilejší **Integrace paprsku** s využitím přenosové funkce (transfer function), která určuje barvu a průhlednost (opacity) voxelů pro pohled "dovnitř" objemu.
 +++++
 +
 +++++ 3. Vektorová pole + techniky zobrazení|
 +**Vektorová pole:** Každému bodu v prostoru je přiřazen vektor, který má **směr i velikost (magnitudu)**. Příkladem je rychlost a směr větru nebo proudění tekutin (voda, vzduch). Klíčovými vlastnostmi k vizualizaci jsou často divergence (zdroje a propady) a vorticita (rotace/víry).
 +  - **Techniky zobrazení:**
 +    * **Glyfy (Šipky):** V uzlech mřížky se vykreslí geometrický objekt (šipka), jehož orientace ukazuje směr a délka ukazuje velikost vektoru. Trpí na překrývání (clutter) a jsou nevhodné pro zobrazení kontinuity.
 +    * **Proudnicové objekty (Trasování částic):** Do pole se vypustí virtuální částice a pomocí numerické integrace (např. Eulerova metoda) se počítá jejich dráha. Patří sem **Proudnice** (Streamlines - pro statická pole), **Trajektorie** (Pathlines - pro časově závislá pole) nebo **Proudové pásky** (Stream ribbons - navíc ukazují rotaci/vorticitu).
 +    * **Texturové metody (LIC - Line Integral Convolution):** Poskytují hustou vizualizaci vektorového pole v každém pixelu obrazu. Využívají vstupní bílý šum a korelují hodnoty pixelů podél směru proudnic, čímž vzniká plynulá textura vizuálně kopírující tok. Lze je obarvit podle velikosti vektoru (Color-mapped LIC).
 +++++
 +
 +
 +===== Question 2: Force-directed layout - popis, algoritmy a vhodné použití =====
 +
 +++++ 1. Co je Force-directed layout a k čemu je vhodný|
 +**Metody řízené silami (Force-directed layouts)** představují fyzikálně inspirovaný přístup k výpočtu rozvržení (pozic uzlů) v relačních datech.
 +  - **Princip:** Na graf se pohlíží jako na systém fyzikálních objektů. Uzly představují hmotná tělesa nebo částice a hrany fungují jako síly (např. pružiny), které na ně působí. Algoritmus hledá rovnovážný stav – konfiguraci s **lokálně minimální energií**, kde se přitažlivé a odpudivé síly vyruší a součet sil působících na každý uzel je roven nule.
 +
 +**Vhodné a nevhodné použití:**
 +  - **Kde excelují:** Jsou naprosto ideální pro **obecné neorientované sítě** (např. sociální sítě). Skvěle slouží pro **identifikaci shluků (komunit)**, protože hustě propojené skupiny uzlů se fyzicky přitáhnou k sobě. Také velmi dobře odhalují inherentní **symetrie** grafu.
 +  - **Kde selhávají:** 
 +    * U stromů a hierarchií (zcela zničí vizuální strukturu rodič-potomek, tam patří Sugiyama).
 +    * U velmi velkých a hustých grafů vytvářejí nečitelný zmatek plný překrývajících se čar (tzv. **hairball efekt**).
 +    * Nijak **neberou v úvahu křížení hran** (nesnaží se ho primárně minimalizovat).
 +    * Často uvíznou v lokálním minimu (graf se "zauzluje" a algoritmus nenajde to nejlepší možné "rozmotané" řešení).
 +++++
 +
 +++++ 2. Eadesův model a Kamada-Kawai|
 +**Eadesův model (1984):**
 +Jeden z prvních a nejjednodušších modelů. Uzly se chovají jako ocelové kroužky a hrany jako pružiny.
 +  - **Přitažlivá síla:** Působí **pouze** mezi uzly, které jsou **spojené hranou**. Snaží se uzly přitáhnout k sobě na ideální vzdálenost.
 +  - **Odpudivá síla:** Působí vzájemně mezi **všemi** uzly v grafu (i těmi nespojenými). Brání tomu, aby se všechny uzly shlukly do jednoho bodu. Klesá se vzdáleností.
 +  - Algoritmus v cyklu počítá celkovou sílu na každý uzel a posouvá ho o malý kousek v jejím směru.
 +
 +**Model Kamada-Kawai (1989):**
 +Jedná se o čistě **energetický model**.
 +  - **Princip:** Předpokládá, že existují pružiny mezi **úplně všemi páry uzlů** (nejen mezi těmi, které spojuje hrana).
 +  - Ideální délka této pružiny je definována jako **nejkratší cesta (shortest path)** mezi danými dvěma uzly v topologii grafu.
 +  - Cílem je minimalizovat globální potenciální energii. Algoritmus neposouvá všechny uzly naráz, ale najde uzel s maximální energií (ten nejvíce "tažený" mimo ideální pozici) a přesune ho do rovnováhy pomocí numerické metody Newton-Raphson.
 +++++
 +
 +++++ 3. Model Fruchterman-Reingold|
 +**Fruchterman-Reingold (1991)** je vylepšením Eadesova modelu a v praxi je velmi oblíbený pro svou rychlost a eleganci.
 +  - **Fyzikální analogie:** Každý uzel je elektricky nabitá částice (všechny uzly se navzájem odpuzují). Každá hrana je elastická pružina (spojené uzly se přitahují).
 +
 +**Klíčový prvek - Zavedení "Teploty" (Simulované žíhání):**
 +  - Aby se algoritmus nezasekl ve špatném lokálním minimu, používá koncept teploty (inspirovaný metalurgií). Teplota funguje jako **maximální limit pro velikost posunu uzlu** v jedné iteraci.
 +  - Na začátku se teplota nastaví vysoko. Systém je "horký", uzly mohou dělat obrovské skoky a graf se může radikálně přeskládat (rozmotat).
 +  - V každé další iteraci se teplota o něco **sníží (systém chladne)**. Pohyby uzlů se stávají stále menšími a jemnějšími, až nakonec "zamrznou" na svém místě a systém dosáhne přesného rovnovážného stavu.
 ++++ ++++
  
Navigation

Playground

QR Code
QR Code courses:b4m39viz (generated for current page)