R-strom
![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/R-tree.svg/400px-R-tree.svg.png)
R-strom (anglicky R-tree) je stromová datová struktura podobná B-stromům, ale používaná pro prostorové přístupové metody, například pro indexovaní vícerozměrných struktur například v geografických informačních systémech. Mimo to, pomocí R-stromů je implementováno například datové úložiště MyISAM v MySQL.
Datová struktura dělí místo na hierarchicky vkládané a potenciálně se překrývající, tzv. MBR (minimum bounding rectangles – minimální ohraničující obdélníky, též nazývané obdélníky nebo boxy – R z anglického výrazu pro obdélník (rectangle) tvoří část názvu R-stromů).
Každý uzel R-stromu má proměnlivý počet záznamů (až do předdefinovaného maxima). Každý záznam uvnitř uzlu, který není listem, ukládá dvě další informace: způsob identifikace dceřiného uzlu a MBR všech záznamů uvnitř tohoto dceřiného uzlu.
Algoritmy pro vložení nového a smazání stávajícího prvku používají MBR z uzlů ke kontrole, že prvky v geometrickém okolí jsou umístěny do stejných listových uzlů (konkrétně, nový prvek půjde do listového uzlu, který potřebuje nejmenší rozšíření svého MBR). Každý záznam uvnitř listového uzlu uloží dvě informace: identifikátor daného prvku (který může být alternativně umístěn přímo do uzlu) a MBR datového prvku.
Podobně, vyhledávací algoritmy používají MBR k rozhodnutí, zdali hledat uvnitř daného uzlu. Tímto způsobem při hledání většina uzlů „netknutých“. Stejně jako B-stromy, jsou R-stromy vhodné pro databáze, kde se uzly podle potřeby mohou načítat do paměti.
U R-stromů lze nastavit nejen maximální počet prvků v něm, ale i algoritmus, kdy se má daný list změnit v uzel další úrovně. Mezi tyto algoritmy patří:
- linear-cost algoritm
- quadratic-cost algoritm
- exhaustive algoritm
R-stromy nezaručují dobrý výkon pro nejnepříznivější případ uložení dat, ale jejich implementace dosahují slušných výkonů při použití „reálných“ dat. V roce 2004 byl nicméně vyvinut nový algoritmus, Priority R-Tree, který má výkon vylepšovat právě pro nepříznivě uložená data.
Varianty
- R* strom
- R+ strom
- Hilbertův R-strom
- Prioritní R-strom (PR-strom)
Odkazy
Reference
V tomto článku byl použit překlad textu z článku R-tree na anglické Wikipedii.
Literatura
- Antonin Guttman: R-Trees: A Dynamic Index Structure for Spatial Searching, Proc. 1984 ACM SIGMOD International Conference on Management of Data, pp. 47-57. ISBN 0-89791-128-8
- Yannis Manolopoulos, Alexandros Nanopoulos, Apostolos N. Papadopoulos, Yannis Theodoridis: R-Trees: Theory and Applications, Springer, 2005. ISBN 1-85233-977-2
- N. Beckmann, H.-P. Kriegel, R. Schneider, B. Seeger: The R*-Tree: An Efficient and Robust Access Method for Points and Rectangles. SIGMOD Conference 1990: 322-331 Archivováno 17. 4. 2018 na Wayback Machine.
Externí odkazy
Obrázky, zvuky či videa k tématu R-strom na Wikimedia Commons
- R-tree portal (anglicky)
- R-Trees: A Dynamic Index Structure for Spatial Searching (anglicky)
- implementace R-stromu: Java applet Archivováno 1. 5. 2007 na Wayback Machine., Common Lisp, .NET, Python. (anglicky)
![]() | Tento článek je příliš stručný nebo postrádá důležité informace. Pomozte Wikipedii tím, že jej vhodně rozšíříte. Nevkládejte však bez oprávnění cizí texty. |
Stromové datové struktury | |
---|---|
Vyhledávací stromy (dynamické množiny/ asociativní pole) | 2–3 • 2–3–4 • AA • (a,b) • AVL • B • B+ • B* • Bx • (Optimální) Binární vyhledávací • Dancing • HTree • Intervalový • Stromy s pořadím (Order statistic) • (Doleva převážený) Červeno-černý • Scapegoat • Splay • T • Treap • UB • Váhově vyvážený (tj. BB[α]) |
Haldy | Binární • Binomiální • Brodal • Fibonacciho • Leftist • Pairing • Skew • Van Emde Boasův strom • Slabá |
Trie | Ctrie • C-trie • Hašovací • Komprimovaná trie (tj. Patricia) • Sufixový (tj. PAT) • Ternální hledání • X-fast • Y-fast |
Prostorové indexační stromy | Ball • BK • BSP • Kartézský • Hilbertův R • k-d (implicitní k-d) • M • Metrický • MVP • Oktálový (Octree) • PH • Prioritní R • Čtyřstrom (Quadtree) • R • R+ • R* • Segmentový • VP (vantage-point) • X |
Jiné stromy | Strom pokrytí • Obousměrně provázaný (Doubly chained tree) • Exponenciální • Fenwickův • (Binární) Strom s prstem • Fraktálový indexový • Fúzní (Fusion tree) • Hašovací kalendář • iDistance • K-ární • Knuthův transformovaný (Left-child right-sibling binary tree) • Link/cut • Log-strukturovaný spojovací • Hašový Merkleův (TTH) • PQ • Rozsahový (Range) • SPQR • Top (Horní strom) |
Kategorie:Stromy (dat. strukt.) |