Reaktivní stromy
Motivace Existují algoritmy, které jsou schopny generalizovat výskyt i tvar jednotlivých objektů obsažených na mapě s daným měřítkem. Hodnotit tyto informace jen algoritmem nemusí být vždy rozumné.
Motivace Chci generalizovat mapu měst ve státě New York Ve státě New York jsou 4města s více než 500,000 obyvatel – New York (8,000,000) – Buffalo (1,200,000) – Rochester (1,000,000) – Syracuse (750,000) Hlavní město Albany má 96,000 obyvatel. Přesto má větší důležitost než např. Syracuse, mělo by se vyskytovat na více generalizovaných mapách
Úroveň důležitosti Každý objekt v mapě má přiřazeno číslo, úroveň důležitosti Posle úrovně důležitosti se určuje, které objekty budou ještě na mapě v daném měřítku zobrazeny Většinou se volí mezi 5 a 10 úrovni důležitosti. Tentýž objekt může být uložen v několika stupních generalizace s různou úrovní důležitosti.
R stromy
R - strom Každý uzel obsahuje buď – odkaz na objekt – Minimální ohraničující obdélník (MBR, 4 čísla) Nebo – Odkaz na m až M potomků – Minimální ohraničující obdélník (MBR, 4 čísla)
Reaktivní strom Každý uzel obsahuje buď – odkaz na objekt – Minimální ohraničující obdélník (MBR, 4 čísla) – Důležitost objektu Nebo – Odkaz na m až M potomků – Minimální ohraničující obdélník (MBR, 4 čísla) – Důležitost uzlu = důležitost potomků +1
Příklad
Kvantitativní vlastnosti Velikost každého uzlu – 4x4 bajty MBR – 1 bajt důležitost – 31 bitů odkaz – 1 bit příznak (uzel/list) Celková velikost záznamu 21 bajtů Počet uchovatelných objektů 2 31 ~ 2,000,000,000
Vykreslení objektů Chci vykreslit všechny objekty důležitosti ≥ D na ploše (xmin,ymin,xmax,ymax) Nastav se na kořen reaktivního stromu Je-li důležitost uzlu alespoň D Zasahuje-li MBR do obdélníka (xmin,ymin,xmax,ymax) – Jedná-li se o list, vykresli ho – Jedná-li se o vnitřní uzel, projdi všechny jeho potomky.