2014-04-22 17 views
11

Desidero confrontare l'R-Tree e il Quadtree per i dati geospaziali. Mentre c'è letteratura là fuori, faccio fatica a trovare documenti che coprano un reale confronto di base. Quindi ho deciso di fare questa domanda.Confronto tra alberi R e quadrilateri

A mio parere, l'R-Tree ha il vantaggio di essere equilibrato e l'albero non ha foglie vuote. Come svantaggio, l'operazione di base come l'inserimento o l'eliminazione potrebbe comportare la ristrutturazione dell'intero indice.

Il Quadtree è il contrario, non è bilanciato e ha le foglie vuote, ma non ha bisogno di essere ristabilito.

Quindi, da un punto di vista fatico, direi che l'R-Tree ha bisogno di meno memoria ed è più veloce per la ricerca a causa dell'altezza minima. Il quadruplo è migliore quando ci sono molte operazioni di aggiornamento, ma l'albero risultante potrebbe essere sbilanciato.

Questi punti sono corretti secondo lei? Ci sono dei buoni documenti là fuori che trattano questo argomento?

Auf Wiedersehen, Andre

+1

"ristrutturazione dell'intero indice". No. La ristrutturazione è limitata a un singolo percorso, non all'indice "intero". Prendi in considerazione l'implementazione di entrambi e, facendo alcuni benchmark, per sapere davvero come si comportano. Non usare solo la teoria. –

+1

ci sono molti diversi tipi di quad tree, quindi conosci la maggior parte di essi prima di provare a confrontare. inoltre una leggera variazione nell'implementazione può fornire tempi di esecuzione molto diversi (ad esempio, passare un oggetto rettangolo e passare 4 parametri x, y, larghezza, altezza). – AlexWien

risposta

6

"ristrutturazione dell'intero indice". No. Ristrutturare l'albero R è limitato a un singolo percorso, non l'indice "intero". Funziona in modo simile all'albero B, in realtà.

Considerare l'implementazione di entrambi e fare alcuni benchmark per conoscere veramente come si comportano. Non usare solo la teoria.

Su dati distribuiti uniformemente con una frequenza di cambiamento elevata, i quadrifori di solito funzionano meglio. Su disco, l'albero R presenta chiari vantaggi.

18

Ecco la carta che ha abbastanza piacevole confronto tra quadtree e alberi R:

Quadtree and R-tree Indexes in Oracle Spatial: A Comparison using GIS Data

alcune differenze:

  • quadtree richiedono la messa a punto, scegliendo livello piastrelle adeguato al fine di ottimizzare le prestazioni . Non è richiesta alcuna sintonizzazione specifica per R-Trees.
  • Quadtree può essere implementato sopra l'albero B esistente. R-Tree -cannot
  • Gli indici Quadtree vengono creati più velocemente dell'albero R.
  • Gli alberi R sono molto più veloci di Quadtree per le query dei vicini più vicini.
  • R-alberi sono sostanzialmente più veloce di Quadtree per interrogazioni finestra, come "interno", "contiene", "copre", ecc