fbpx
Wikipedia

Quadtree

El término Quadtree, o árbol cuaternario, se utiliza para describir clases de estructuras de datos jerárquicas cuya propiedad común es que están basados en el principio de descomposición recursiva del espacio. En un QuadTree de puntos, el centro de una subdivisión está siempre en un punto. Al insertar un nuevo elemento, el espacio queda divido en cuatro cuadrantes. Al repetir el proceso, el cuadrante se divide de nuevo en cuatro cuadrantes, y así sucesivamente.

Una gran variedad de estructuras jerárquicas existen para representar los datos espaciales. Una técnica normalmente usada es Quadtree. El desarrollo de estos fue motivado por la necesidad de guardar datos que se insertan con valores idénticos o similares. Este artículo trata de la representación de datos en el espacio bidimensional. Quadtree también se usa para la representación de datos en los espacios tridimensionales o con hasta 'n' dimensiones.

El término Quadtree se usa para describir una clase de estructuras jerárquicas cuya propiedad en común es el principio de recursividad de descomposición del espacio.

Estas clases, basan su diferencia en los requisitos siguientes:

  1. El tipo del dato en que ellas actúan.
  2. El principio que las guías del proceso de descomposición.
  3. La resolución (inconstante o ninguna).

La familia Quadtree se usa para representar puntos, áreas, curvas, superficies y volúmenes. La descomposición puede hacerse en las mismas partes en cada nivelado (la descomposición regular), o puede depender de los datos de la entrada. La resolución de la descomposición, en otros términos, el número de tiempos en que el proceso de descomposición es aplicado, puede tratarse de antemano, o puede depender de las propiedades de los datos de la entrada.

El primer ejemplo de un Quadtree se relaciona a la representación de un área bidimensional. La región Quadtree que representa las áreas es el tipo más estudiado. Este ejemplo es basado en la subdivisión sucesiva del espacio en cuatro cuadrantes del mismo tamaño. El subcuadrante que contiene datos simplemente se denomina área Negra, y los que no contienen datos se denominan área Blanca. Un subcuadrante que contiene partes de ambos se denomina área Ceniza. Los subcuadrantes Ceniza, que contienen aéreas Blancas y Negras (Vacío y Datos), deben subdividirse sucesivamente hasta que solo queden cuadrantes Negros Y Blancos... (Datos y Vacíos).

Cada cuadrante representa un nodo del Quadtree, los espacios negros y blancos siempre están en las hojas, mientras todos los nodos interiores representan los espacios grises.

Representación de puntos

Pueden representarse las multidimensiones de los puntos de varias maneras. La representación escogida depende de la tarea específica que uno quiera ejecutar con un grupo de puntos. Dos de las tareas más comunes que se realizan con un grupo de puntos son:

  1. Determinar si un punto dado está en el grupo.
  2. Para encontrar un grupo de puntos que se relacionan dado algún criterio de un segundo punto.

El Quadtree, sus variantes y también el kd-árbol, representan los formularios bastante eficaces para representar los puntos. Los dos tipos más común de Quadtree para representar los puntos son el "Point Quadtree" y el "PR Quadtree (la variante del Quadtree de la región)".

El PR-Quadtree es una adaptación del Quadtree para la representación de puntos en una región. Cada punto es asociado con el cuadrante. Diferente del Point Quadtree dónde la división de los cuadrantes depende de los datos de la entrada, la división siempre es hecha de una manera regular. Los nodos-hoja que contienen un punto los denominaremos Negros, y si están vacíos Blancos. Todos los nodos que no tienen hojas se denominan Ceniza.

Cada nodo se guarda en un registro que contiene cinco campos. El primero contiene un vector de indicadores para los cuatro hijos del nodo (correspondiendo a los cuatro cuadrantes), el segundo, el color del nodo (blanco, negro o gris), un tercer campo puede reservarse para un poco de información relacionada al nodo.

 struct PRNo { PRNo *hijos[4]; int color; // blanco = 0; gris = 1; negro = 2; char info [20]; int x; int y; }; 

Inserción

Los puntos se insertan de una manera similar a la usada en el Point Quadtree. Primeramente se hace una búsqueda para encontrar el subcuadrante a que el nodo pertenece (el nodo echa hojas). Si este subcuadrante ya está ocupado para otro nodo B con las coordenadas diferentes, entonces este cuadrante debe subdividirse en las partes necesarias para que los nodos A y B no ocupen el mismo cuadrante. Esto puede causar un gran número de subdivisiones, sobre todo si los dos puntos se contienen en un bloque muy pequeño del espacio. Los nodos interiores no guardan los datos, desde el punto que ocupó el cuadrante previamente (el punto B) si se vuelve el hermano del nuevo punto (el punto A). Como resultado se observa que todos los nodos grises poseen a dos descendientes que contienen los datos como mínimo. El formulario que resulta de un PR-Quadtree es independiente del orden en que los puntos se insertan.

Descripción en pseudocódigo

  1. Si la raíz es nula, P se vuelve la raíz.
  2. Si la raíz no es GRIS, significa que hay simplemente un nodo
  3. Se realiza una búsqueda a partir de la raíz para encontrar el cuadrante a que P pertenece

Nota: Si el nodo echa hojas y donde P debe insertarse está vacío (BLANCO), P se inserta.

En caso de que está ocupado, el punto que está ahora en el nodo (R) debe recuperarse. En caso de que P y R pertenezcan el subcuadrantes diferente, ellos son simplemente insertados en sus posiciones respectivas. En caso de que ellos pertenezcan a los mismos cuadrantes, las subdivisiones sucesivas deben realizarse hasta que los cuadrantes sean diferentes. En cada subdivisión un nodo gris debe crearse.

Tipos

Se puede clasificar según el tipo de datos que representan, incluyendo áreas, puntos, líneas y curvas. Quadtrees puede también ser clasificado independientemente de la forma que tenga por la información que contiene. Algunos tipos comunes de quadtrees son:

Quadtree de puntos

El quadtree del punto es una adaptación de un árbol binario usado para representar datos de dos dimensiones del punto. Comparte las características de todos los quadtrees pero es un árbol verdadero mientras que el centro de una subdivisión está siempre en un punto. Se procesa la forma del árbol depende de los datos de la orden. Es a menudo muy eficiente en comparar los puntos de referencias pedidos de dos dimensiones, funcionando generalmente en tiempo de O (log n).

Estructura del nodo para un quadtree de puntos

  • 4 Punteros: cuadrante [‘NW’], cuadrante [‘NE’], cuadrante[‘SW’], y cuadrante[‘SE’]
  • Puntos, del tipo DataPoint, que alternadamente contiene:

-Nombre -(x, y) Coordenadas

Una imagen binaria es normalmente representada como una serie de entradas binarias, es decir; cada una de las entradas de la serie tiene un valor de 0 o 1. Para guardar la imagen binaria normalmente se usa la conocida partición quadtree. Para una serie N*N, N<=512 y N=2i para algún entero positivo i, si las entradas no tienen igual valor, entonces se divide en 4 N/2*N/2 series. Si una serie N/2*N/2 no tiene el mismo valor binario, tal como arriba a la derecha y abajo a la derecha de la serie N/2*N/2, entonces podemos dividirlo en cuatro N/4*N/4 formas otra vez. Estas N/4*N/4 formas pueden a su vez también, si es necesario dividirse en 4 N/8*N/8 formas, etc. La partición quadtree es completa cuando toda la forma está dividida en series de varios tamaños en las cuales cada serie contiene solo un valor binario. En lugar de guardar la imagen binaria, solo necesitamos guardar el quadtree con el código que referente a la imagen de la entrada.

Quadtree de la región

El quadtree de la región representa una partición del espacio en dos dimensiones descomponiendo la región en cuatro cuadrantes iguales, subcuadrantes, y así sucesivamente con cada nodo de la hoja que contiene los datos que corresponden a un subregión específico. Cada nodo en el árbol tiene exactamente cuatro niños, o no tiene ningún niño (un nodo de la hoja). Un quadtree de la región con una profundidad de n se puede utilizar para representar una imagen que consiste en 2n * pixeles 2n, donde está 0 o 1 cada valor del pixel. Esta estructura de datos es unidimensional y solo se encuentra en memoria principal. Cada nodo hijo tiene asociado a él cuatro nodos, representando así los dieciséis sub-cuadrantes de dicha imagen. Una vez formado el Quadtree, los nodos hojas representan la característica de dicho píxel, que puede ser blanco o negro, si son imágenes monocromáticas, dependiendo de la uniformidad del color de los nodos hijos (si todos sus hijos son de color negro, entonces dicho nodo será representado por el color negro). Pero si algún nodo posee nodos hijos con colores no uniformes, entonces es representado por un “nodo gris”. Un quadtree de la región se puede también utilizar como representación variable de la resolución de una zona de informaciones. Por ejemplo, las temperaturas en un área se pueden almacenar como quadtree, con cada nodo de la hoja almacenando la temperatura media sobre el subregión que representa. Si un quadtree de la región se utiliza para representar un sistema de datos del punto (tales como la latitud y la longitud de un sistema de ciudades), se subdividen las regiones hasta que cada hoja contiene a lo máximo un solo punto.

Ventajas y desventajas

Ventajas
  • La representación de imágenes por medio de esta estructura.
Desventajas
  • Una desventaja que presenta la estructura es cuando debe almacenar gran cantidad de diferentes píxeles existentes en una imagen con muchos colores, dado que podría tomar un tamaño excesivamente grande.
  • Por ser esta estructura de datos de memoria principal, al querer representar imágenes muy grandes, muchas veces el Quadtree no puede ser almacenado en dicha memoria. En tal caso, se utilizan estructuras alternativas por ejemplo, un B+ tree, para compensar tal limitación.

El qtree-cubo

Lo primero que nos viene a la mente para el problema de la ubicación de un punto es un Q-tree balanceado. El clásico método de Qtree tiene algunas desventajas cuando por ejemplo se le permiten a las coordenadas de un punto cambiar o cuando existen muchas inserciones y eliminaciones.

Para esto el mejor (sin dudas) es el Qtree de cubo por las siguientes razones: Es muy fácil de implementar y la teoría de la localización del punto menos eficiente está bastante lejos por el “balance implícito” del método (la secuencia de inserciones de puntos no tiene impacto en la estructura del árbol final sin la necesidad de explicar el balance del árbol). Es insensible a los cambios de coordenadas de los puntos y muy eficiente a la hora de eliminaciones. Estructura de datos de un q-tree de región usado para la locación de puntos en la malla de Delaunay. El qtree es adaptablemente refinado durante la iterativa inserción de mallas y puntos geométricos.

Uso

  • Representación de la imagen.
  • Indexación de direcciones espaciales.
  • Detección eficiente de la colisión en dos dimensiones.
  • Desecho del tronco de la visión de los datos del terreno.
  • Almacenando datos escasos, tales como una información del formato para una hoja de balance o para algunos cálculos de la matriz.
  • Solución de los campos multidimensionales (dinámica, electromagnetismo flúidos de cómputo)
  • Quadtrees es el análogo de dos dimensiones de octrees.

Véase también


  •   Datos: Q934791
  •   Multimedia: Quadtrees

quadtree, este, artículo, sección, necesita, referencias, aparezcan, publicación, acreditada, este, aviso, puesto, junio, 2007, término, árbol, cuaternario, utiliza, para, describir, clases, estructuras, datos, jerárquicas, cuya, propiedad, común, están, basad. Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 30 de junio de 2007 El termino Quadtree o arbol cuaternario se utiliza para describir clases de estructuras de datos jerarquicas cuya propiedad comun es que estan basados en el principio de descomposicion recursiva del espacio En un QuadTree de puntos el centro de una subdivision esta siempre en un punto Al insertar un nuevo elemento el espacio queda divido en cuatro cuadrantes Al repetir el proceso el cuadrante se divide de nuevo en cuatro cuadrantes y asi sucesivamente Una gran variedad de estructuras jerarquicas existen para representar los datos espaciales Una tecnica normalmente usada es Quadtree El desarrollo de estos fue motivado por la necesidad de guardar datos que se insertan con valores identicos o similares Este articulo trata de la representacion de datos en el espacio bidimensional Quadtree tambien se usa para la representacion de datos en los espacios tridimensionales o con hasta n dimensiones El termino Quadtree se usa para describir una clase de estructuras jerarquicas cuya propiedad en comun es el principio de recursividad de descomposicion del espacio Estas clases basan su diferencia en los requisitos siguientes El tipo del dato en que ellas actuan El principio que las guias del proceso de descomposicion La resolucion inconstante o ninguna La familia Quadtree se usa para representar puntos areas curvas superficies y volumenes La descomposicion puede hacerse en las mismas partes en cada nivelado la descomposicion regular o puede depender de los datos de la entrada La resolucion de la descomposicion en otros terminos el numero de tiempos en que el proceso de descomposicion es aplicado puede tratarse de antemano o puede depender de las propiedades de los datos de la entrada El primer ejemplo de un Quadtree se relaciona a la representacion de un area bidimensional La region Quadtree que representa las areas es el tipo mas estudiado Este ejemplo es basado en la subdivision sucesiva del espacio en cuatro cuadrantes del mismo tamano El subcuadrante que contiene datos simplemente se denomina area Negra y los que no contienen datos se denominan area Blanca Un subcuadrante que contiene partes de ambos se denomina area Ceniza Los subcuadrantes Ceniza que contienen aereas Blancas y Negras Vacio y Datos deben subdividirse sucesivamente hasta que solo queden cuadrantes Negros Y Blancos Datos y Vacios Cada cuadrante representa un nodo del Quadtree los espacios negros y blancos siempre estan en las hojas mientras todos los nodos interiores representan los espacios grises Indice 1 Representacion de puntos 2 Insercion 2 1 Descripcion en pseudocodigo 3 Tipos 3 1 Quadtree de puntos 3 2 Quadtree de la region 4 Ventajas y desventajas 5 El qtree cubo 6 Uso 7 Vease tambienRepresentacion de puntos EditarPueden representarse las multidimensiones de los puntos de varias maneras La representacion escogida depende de la tarea especifica que uno quiera ejecutar con un grupo de puntos Dos de las tareas mas comunes que se realizan con un grupo de puntos son Determinar si un punto dado esta en el grupo Para encontrar un grupo de puntos que se relacionan dado algun criterio de un segundo punto El Quadtree sus variantes y tambien el kd arbol representan los formularios bastante eficaces para representar los puntos Los dos tipos mas comun de Quadtree para representar los puntos son el Point Quadtree y el PR Quadtree la variante del Quadtree de la region El PR Quadtree es una adaptacion del Quadtree para la representacion de puntos en una region Cada punto es asociado con el cuadrante Diferente del Point Quadtree donde la division de los cuadrantes depende de los datos de la entrada la division siempre es hecha de una manera regular Los nodos hoja que contienen un punto los denominaremos Negros y si estan vacios Blancos Todos los nodos que no tienen hojas se denominan Ceniza Cada nodo se guarda en un registro que contiene cinco campos El primero contiene un vector de indicadores para los cuatro hijos del nodo correspondiendo a los cuatro cuadrantes el segundo el color del nodo blanco negro o gris un tercer campo puede reservarse para un poco de informacion relacionada al nodo struct PRNo PRNo hijos 4 int color blanco 0 gris 1 negro 2 char info 20 int x int y Insercion EditarLos puntos se insertan de una manera similar a la usada en el Point Quadtree Primeramente se hace una busqueda para encontrar el subcuadrante a que el nodo pertenece el nodo echa hojas Si este subcuadrante ya esta ocupado para otro nodo B con las coordenadas diferentes entonces este cuadrante debe subdividirse en las partes necesarias para que los nodos A y B no ocupen el mismo cuadrante Esto puede causar un gran numero de subdivisiones sobre todo si los dos puntos se contienen en un bloque muy pequeno del espacio Los nodos interiores no guardan los datos desde el punto que ocupo el cuadrante previamente el punto B si se vuelve el hermano del nuevo punto el punto A Como resultado se observa que todos los nodos grises poseen a dos descendientes que contienen los datos como minimo El formulario que resulta de un PR Quadtree es independiente del orden en que los puntos se insertan Descripcion en pseudocodigo Editar Si la raiz es nula P se vuelve la raiz Si la raiz no es GRIS significa que hay simplemente un nodo Se realiza una busqueda a partir de la raiz para encontrar el cuadrante a que P perteneceNota Si el nodo echa hojas y donde P debe insertarse esta vacio BLANCO P se inserta En caso de que esta ocupado el punto que esta ahora en el nodo R debe recuperarse En caso de que P y R pertenezcan el subcuadrantes diferente ellos son simplemente insertados en sus posiciones respectivas En caso de que ellos pertenezcan a los mismos cuadrantes las subdivisiones sucesivas deben realizarse hasta que los cuadrantes sean diferentes En cada subdivision un nodo gris debe crearse Tipos EditarSe puede clasificar segun el tipo de datos que representan incluyendo areas puntos lineas y curvas Quadtrees puede tambien ser clasificado independientemente de la forma que tenga por la informacion que contiene Algunos tipos comunes de quadtrees son Quadtree de puntos Editar El quadtree del punto es una adaptacion de un arbol binario usado para representar datos de dos dimensiones del punto Comparte las caracteristicas de todos los quadtrees pero es un arbol verdadero mientras que el centro de una subdivision esta siempre en un punto Se procesa la forma del arbol depende de los datos de la orden Es a menudo muy eficiente en comparar los puntos de referencias pedidos de dos dimensiones funcionando generalmente en tiempo de O log n Estructura del nodo para un quadtree de puntos 4 Punteros cuadrante NW cuadrante NE cuadrante SW y cuadrante SE Puntos del tipo DataPoint que alternadamente contiene Nombre x y CoordenadasUna imagen binaria es normalmente representada como una serie de entradas binarias es decir cada una de las entradas de la serie tiene un valor de 0 o 1 Para guardar la imagen binaria normalmente se usa la conocida particion quadtree Para una serie N N N lt 512 y N 2i para algun entero positivo i si las entradas no tienen igual valor entonces se divide en 4 N 2 N 2 series Si una serie N 2 N 2 no tiene el mismo valor binario tal como arriba a la derecha y abajo a la derecha de la serie N 2 N 2 entonces podemos dividirlo en cuatro N 4 N 4 formas otra vez Estas N 4 N 4 formas pueden a su vez tambien si es necesario dividirse en 4 N 8 N 8 formas etc La particion quadtree es completa cuando toda la forma esta dividida en series de varios tamanos en las cuales cada serie contiene solo un valor binario En lugar de guardar la imagen binaria solo necesitamos guardar el quadtree con el codigo que referente a la imagen de la entrada Quadtree de la region Editar El quadtree de la region representa una particion del espacio en dos dimensiones descomponiendo la region en cuatro cuadrantes iguales subcuadrantes y asi sucesivamente con cada nodo de la hoja que contiene los datos que corresponden a un subregion especifico Cada nodo en el arbol tiene exactamente cuatro ninos o no tiene ningun nino un nodo de la hoja Un quadtree de la region con una profundidad de n se puede utilizar para representar una imagen que consiste en 2n pixeles 2n donde esta 0 o 1 cada valor del pixel Esta estructura de datos es unidimensional y solo se encuentra en memoria principal Cada nodo hijo tiene asociado a el cuatro nodos representando asi los dieciseis sub cuadrantes de dicha imagen Una vez formado el Quadtree los nodos hojas representan la caracteristica de dicho pixel que puede ser blanco o negro si son imagenes monocromaticas dependiendo de la uniformidad del color de los nodos hijos si todos sus hijos son de color negro entonces dicho nodo sera representado por el color negro Pero si algun nodo posee nodos hijos con colores no uniformes entonces es representado por un nodo gris Un quadtree de la region se puede tambien utilizar como representacion variable de la resolucion de una zona de informaciones Por ejemplo las temperaturas en un area se pueden almacenar como quadtree con cada nodo de la hoja almacenando la temperatura media sobre el subregion que representa Si un quadtree de la region se utiliza para representar un sistema de datos del punto tales como la latitud y la longitud de un sistema de ciudades se subdividen las regiones hasta que cada hoja contiene a lo maximo un solo punto Ventajas y desventajas EditarVentajasLa representacion de imagenes por medio de esta estructura DesventajasUna desventaja que presenta la estructura es cuando debe almacenar gran cantidad de diferentes pixeles existentes en una imagen con muchos colores dado que podria tomar un tamano excesivamente grande Por ser esta estructura de datos de memoria principal al querer representar imagenes muy grandes muchas veces el Quadtree no puede ser almacenado en dicha memoria En tal caso se utilizan estructuras alternativas por ejemplo un B tree para compensar tal limitacion El qtree cubo EditarLo primero que nos viene a la mente para el problema de la ubicacion de un punto es un Q tree balanceado El clasico metodo de Qtree tiene algunas desventajas cuando por ejemplo se le permiten a las coordenadas de un punto cambiar o cuando existen muchas inserciones y eliminaciones Para esto el mejor sin dudas es el Qtree de cubo por las siguientes razones Es muy facil de implementar y la teoria de la localizacion del punto menos eficiente esta bastante lejos por el balance implicito del metodo la secuencia de inserciones de puntos no tiene impacto en la estructura del arbol final sin la necesidad de explicar el balance del arbol Es insensible a los cambios de coordenadas de los puntos y muy eficiente a la hora de eliminaciones Estructura de datos de un q tree de region usado para la locacion de puntos en la malla de Delaunay El qtree es adaptablemente refinado durante la iterativa insercion de mallas y puntos geometricos Uso EditarRepresentacion de la imagen Indexacion de direcciones espaciales Deteccion eficiente de la colision en dos dimensiones Desecho del tronco de la vision de los datos del terreno Almacenando datos escasos tales como una informacion del formato para una hoja de balance o para algunos calculos de la matriz Solucion de los campos multidimensionales dinamica electromagnetismo fluidos de computo Quadtrees es el analogo de dos dimensiones de octrees Vease tambien EditarQuadTIN Datos Q934791 Multimedia Quadtrees Obtenido de https es wikipedia org w index php title Quadtree amp oldid 127150172, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos