Ejemplos del mundo real de estructuras arbóreas

votos
12

Estoy buscando algunos ejemplos de estructuras de árbol que se usan en proyectos comerciales / de software libre, modernos o antiguos. Puedo ver ejemplos en wikipedia, pero estoy buscando ejemplos más concretos y cómo se usan. Por ejemplo, las claves primarias en las bases de datos están (por lo que he leído) almacenadas en la estructura BST o una variación de la BST (no dude en corregirme sobre esto)

Mi pregunta no es limitada Binary Search Trees (BST), puede incluir cualquier variación como rojo-negro, AVL, etc.

Publicado el 23/02/2009 a las 14:37
fuente por usuario
En otros idiomas...                            


17 respuestas

votos
6

Los índices de la base de datos normalmente se almacenan como variables de árboles B * que, a pesar de su nombre, no son árboles binarios.

Respondida el 23/02/2009 a las 14:40
fuente por usuario

votos
31

¿Está bien si los ejemplos son un poco genéricos, es decir, se relacionan con gráficos y no necesariamente con árboles? Si es así, sigue leyendo.

  • Huelga decir que la mayoría de los analizadores XML / Markup usan árboles. Ver Apache Xerces por ejemplo. O el analizador Xalan XSLT. Gracias Mathewsdave26 por recordarme!

  • PDF es un formato basado en árbol. Tiene un rootnodo seguido de un catalognodo (a menudo son los mismos) seguido de un pagesnodo que tiene varios pagenodos secundarios . Los productores / consumidores a menudo usan una implementación de árbol balanceado para almacenar un documento en la memoria.

  • Los juegos de ajedrez de computadora crean un árbol enorme (entrenamiento) que podan en tiempo de ejecución usando heurística para alcanzar un movimiento óptimo.

  • Flare es una biblioteca de visualización escrita en AS. Es posible que desee verificar cómo se asignan los objetos de datos. En particular, el flare.analyticspaquete utiliza en gran medida una estructura de gráfico, abarcando árboles, etc.

  • Las redes sociales son la palabra de moda actual en la investigación de CS. No hace falta decir que las conexiones / relaciones se modelan muy naturalmente usando gráficos. A menudo, los árboles se usan para representar / identificar fenómenos más interesantes. ¿Cómo respondes preguntas como "Harry y Sally tienen amigos en común?"

  • Algunos motores de física / juegos muy exitosos construyen árboles para simular con precisión el movimiento humano. Un árbol en este caso típicamente corresponderá a un conjunto de acciones; El contexto determinará qué camino se toma para generar una respuesta particular.

  • El aprendizaje basado en Decision Tree realmente forma un área formidable de investigación de minería de datos. Existen numerosos métodos famosos, como embolsado, refuerzo y modificaciones de los mismos que funcionan en los árboles. Tal trabajo se usa a menudo para generar un modelo predictivo.

  • Un problema común en bioinformática es buscar bases de datos enormes para encontrar coincidencias para una cadena de consulta determinada. Las pruebas son comunes allí.

  • Un buen número de comerciantes exitosos (de valores) usan árboles de decisión en sus operaciones diarias: para elegir una operación, para salir de una. Muchas veces estos no están codificados en un programa de computadora, sino anotados en algún lugar en la parte posterior de su cuaderno.

Engañar. Mira esto y esto .

Respondida el 23/02/2009 a las 14:40
fuente por usuario

votos
11

El B en el índice de la base de datos B * representa Equilibrio, no Binario. El árbol se mantiene a una profundidad uniforme para garantizar tiempos de acceso uniformes.

Respondida el 23/02/2009 a las 14:44
fuente por usuario

votos
1

Al mirar cualquiera de los productos de Datawarehousing, verá formas inteligentes de almacenar y perforar en dimensiones en forma de árbol. Obtiene una estructura de árbol para la ubicación (país, región, estado, m condado, ciudad, etc.) y la hora (Año, Mes, Día, Hora). Esas dos dimensiones son comunes en muchos dominios, pero muchos otros datos del mundo real también se prestan al árbol.

Por ejemplo, en la venta minorista de alimentos, en la raíz del árbol puede comprar alimentos, que pueden profundizar en productos lácteos, frutas y verduras, etc. Después de un solo hilo que podría tener. Latas de frijoles, en el nivel superior estarás hablando en cargas de camiones, luego bajarás a paletas, cajas, tamaños de hojalata. Todos los diferentes SKU (unidades de mantenimiento de existencias) son importantes para alguien dentro de la tienda o empresa. Luego diferentes tipos de frijoles, diferentes proveedores, fabricantes: todos los ejemplos de árboles para la misma dimensión.

Todos los diferentes productos forman un árbol masivo, con diferentes formas de cortar y cortar.

Respondida el 23/02/2009 a las 14:53
fuente por usuario

votos
1

C ++ incluye una serie de colecciones (conjunto, multi_set, mapa, multi_map) que normalmente se implementan como árboles rojo-negro, una especie de árbol equilibrado.

(El estándar C ++ no requiere explícitamente esta implementación, pero este es el diseño más simple que cumple con los requisitos de complejidad).

Respondida el 23/02/2009 a las 15:01
fuente por usuario

votos
0

En mi proyecto, un sistema de edición e imputación para datos de encuestas / censos, usamos un árbol de decisión binario para decidir qué variables de un registro imputar o no imputar. El árbol de decisión binario nos permite tomar decisiones de manera eficiente sobre rutas en el árbol que deberíamos y no deberíamos tomar.

Creo que este enfoque (aunque tal vez no solo árboles binarios) se usa también en aplicaciones de inteligencia artificial

Respondida el 23/02/2009 a las 15:30
fuente por usuario

votos
5

Los árboles binarios se han utilizado para la eliminación de espacios parciales y eliminación de superficies ocultas en juegos 3D antiguos, creo que uno se usó en el juego Doom.

Respondida el 23/02/2009 a las 15:59
fuente por usuario

votos
1

En un lugar de enrutador / conmutador que solía trabajar utilizamos un conjunto de estructuras de árbol, para la tabla de enrutamiento de software usamos un árbol de raíz (opción bastante común para una tabla de enrutamiento de IP).

Nuestra implementación OSPF hizo uso de árboles rojo-negro , nuestra implementación BGP hizo uso de skiplists .

Técnicamente, los skiplists no son estructuras de árbol, pero en la práctica son muy similares, y son geniales.

Definitivamente usamos bastante montones y pensé en ello, ha pasado un tiempo desde que trabajé allí.

Respondida el 26/02/2009 a las 14:13
fuente por usuario

votos
1

Consultas DNS ... cualquier cosa que use un mapa usa AVL

Respondida el 02/03/2009 a las 22:49
fuente por usuario

votos
1

System.Collections.Generic.SortedList <T> utiliza un árbol de búsqueda binario como la implementación subyacente. Lo mismo es cierto para System.Collections.GenericSortedDictionary <T> . Cualquier código que utilice SortedList <T> u SortedDictionary <T> está utilizando un árbol de búsqueda binario.

Respondida el 03/03/2009 a las 17:35
fuente por usuario

votos
4
  • Escribe un analizador de descenso recursivo simple y haz que genere un árbol de análisis sintáctico.

  • La estructura de la lista de materiales utilizada en la fabricación (como un automóvil consiste en subconjuntos, de forma recursiva, hasta las tuercas y los pernos).

  • Tabla de símbolos (como se usa en un compilador).

  • Plan de cuentas como se usa en la gestión de proyectos. Un proyecto global tiene subproyectos, a los que se pueden aplicar cargos.

  • Estructura organizativa de la empresa: divisiones, departamentos, etc.

  • Tabla de contenidos para un documento.

  • Descendientes de una persona, antepasados ​​de una persona.

  • Cualquier expresión s de Lisp, incluido cualquier programa Lisp.

Respondida el 03/03/2009 a las 18:59
fuente por usuario

votos
7
  • Su sistema de archivos es una estructura de árbol. Así que mira la fuente a cualquier sistema de archivos gratuito.

  • Su compilador genera un AST a partir de su código fuente, como una etapa intermedia. Así que revisa la fuente de cualquier compilador gratuito.

Respondida el 03/03/2009 a las 19:14
fuente por usuario

votos
0

Usamos una estructura de árbol para modelar un sistema de clasificación de piezas. Las partes se clasifican en "clases" que tienen clases principales, etc. Las clases de nivel superior dirigen las pestañas de texto en nuestra interfaz de usuario del catálogo. Las clases también se usan para aplicar reglas de fijación de precios, identificar "puntos calientes" en un vehículo donde las partes se muestran en un "configurador", etc. Modelamos el árbol en SQL utilizando los conjuntos anidados de Joe Celko y los cargamos on-demand en la memoria para mejorar actuación. Las consultas más comunes que hacemos son '¿quiénes son mis descendientes' y 'esta clase es un antepasado mío?'

Muy útil

Respondida el 03/03/2009 a las 19:19
fuente por usuario

votos
3

Las funciones de autocompletar en el software (por ejemplo, "sugerencias" de motores de búsqueda, terminación de tipo / símbolo IDE, nombres de direcciones de correo electrónico y de direcciones, etc.) a menudo se implementan como Tries, que son estructuras de árbol.

Respondida el 03/03/2009 a las 21:31
fuente por usuario

votos
0

Hay una Treap implementado en ActionScript. Fuentes:

El Treap es parte del marco AS3Commons Colecciones . A Treap modificado se usa para respaldar las colecciones SortedSet y SortedMap incluidos.

Respondida el 05/02/2010 a las 09:36
fuente por usuario

votos
0

Clasificación de objetos en general es muy a menudo hace usando árboles. Y muy a menudo, un gráfico sería mucho más adecuado que un árbol, sin embargo un árbol ofrece dos grandes ventajas sobre un gráfico:

  • Se puede representar como una lista (anidada). Por ejemplo, es mucho más fácil de mostrar un gran árbol en el papel (con títulos, subtítulos, párrafos y listas anidadas) o en una pantalla de ordenador de un gráfico.
  • Puede apuntar a un elemento en el árbol utilizando una cadena de ruta sencilla (o una pila), por ejemplo "http / StackOverflow.com / Usuarios / C Dimitri", algo que es mucho más difícil de hacer en un gráfico.
Respondida el 05/02/2010 a las 09:43
fuente por usuario

votos
0

Póngase como la raíz del árbol y ahora que sus padres como hijos de árbol y los padres de los padres como sus hijos del árbol y esto puede hacer que un caso de uso completo del árbol.

Por lo tanto la aplicación de algo donde la jerarquía completa de la familia que requiere puede utilizar el árbol para aplicar esa.

Respondida el 29/04/2018 a las 14:48
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more