Modelo de árbol de decisión
From Wikipedia, the free encyclopedia
En complejidad computacional el modelo de árbol de decisión es el modelo de computación en que un algoritmo es considerado básicamente como un árbol de decisión, i.e., una secuencia de consultas o pruebas que se realizan adaptativamente, así que el resultado de las pruebas anteriores puede influir la prueba que se realiza después.
Por lo general, estas pruebas tienen una pequeña cantidad de resultados (tales como preguntas de sí o no) y se pueden realizar rápidamente (por ejemplo, con un costo computacional unitario), por lo que la complejidad temporal de un algoritmo en el peor de los casos en el modelo de árbol de decisión corresponde a la profundidad del árbol de decisión correspondiente. Esta noción de complejidad computacional de un problema o un algoritmo en el modelo de árbol de decisión se denomina complejidad del árbol de decisión o complejidad de consulta .
Los modelos de árboles de decisión son fundamentales para establecer cuotas inferiores para la teoría de la complejidad para ciertas clases de problemas y algoritmos computacionales. Se han introducido varias variantes de modelos de árboles de decisión, según el modelo computacional y el tipo de algoritmos de consulta que se les permite realizar.
Por ejemplo, un argumento de árbol de decisión se usa para mostrar que un ordenamiento por comparación de objetos debe tomar comparaciones. Para ordenamientos por comparación, una consulta es una comparación de dos elementos , con dos resultados (suponiendo que ningún par de elementos sean iguales): o . Los ordenamientos por comparación se pueden expresar como un árbol de decisión en este modelo, ya que dichos algoritmos de ordenamiento solo realizan este tipo de consultas.
Los árboles de decisión a menudo se emplean para comprender los algoritmos de ordenamiento y otros problemas similares; esto fue hecho por primera vez por Ford y Johnson.[1]
Por ejemplo, muchos algoritmos de ordenamiento son ordenamientos por comparación, lo que significa que solo obtienen información sobre una secuencia de entrada. a través de comparaciones locales: probando si , , o . Suponiendo que los elementos a clasificar son todos distintos y comparables, esto se puede reformular como una pregunta de sí o no: ¿es ?
Estos algoritmos se pueden modelar como árboles de decisión binarios, donde las consultas son comparaciones: un nodo interno corresponde a una consulta y los hijos del nodo corresponden a la siguiente consulta cuando la respuesta a la pregunta es sí o no. Para los nodos hoja, el resultado corresponde a una permutación que describe cómo se codificó la secuencia de entrada de la lista completa de elementos ordenados. (El inverso de esta permutación, , reordena la secuencia de entrada. )
Se puede mostrar que los ordenamientos de comparación deben usar comparaciones a través de un argumento simple: para que un algoritmo sea correcto, debe poder generar todas las permutaciones posibles de elementos; de lo contrario, el algoritmo fallaría para esa permutación particular como entrada. Entonces, su árbol de decisión correspondiente debe tener al menos tantas hojas como permutaciones, es decir, hojas. Cualquier árbol binario con al menos hojas tendrá una profundidad de al menos , por lo que este es un límite inferior en el tiempo de ejecución de un algoritmo de ordenamiento por comparación. En este caso, la existencia de numerosos algoritmos de ordenamiento por comparación que tienen esta complejidad de tiempo, como ordenamiento por mezcla (mergesort) y heapsort, demuestra que la cuota es rígida.[2] : 91
Este argumento no utiliza nada acerca del tipo de consulta, por lo que, de hecho, demuestra una cuota inferior para cualquier algoritmo de ordenamiento que pueda modelarse como un árbol de decisión binario. En esencia, esta es una reformulación del argumento en teoría de la información de que un algoritmo de clasificación correcto debe aprender al menos bits de información sobre la secuencia de entrada. Como resultado, esto también funciona para árboles de decisión aleatorios.
Otras cuotas inferiores para el modelo de árbol de decisión utilizan que la consulta es una comparación. Por ejemplo, considera la tarea de usar solo comparaciones para encontrar el número más pequeño entre números. Antes de que se pueda determinar el número más pequeño, todos los números excepto el más pequeño deben "perder" (comparar mayor) en al menos una comparación. Entonces, se necesita al menos comparaciones para encontrar el mínimo. (El argumento teórico de la información aquí solo da una cuota inferior de . ) Un argumento similar funciona para las cuotas inferiores generales para calcular estadísticos de orden .[2] : 214
Árboles de decisión lineales y algebraicos
Los árboles de decisión lineales generalizan los árboles de decisión de comparación anteriores para computar funciones que toman vectores reales como entradas. Las pruebas en árboles de decisión lineales son funciones lineales: para una elección particular de números reales , emite el signo de . (Los algoritmos en este modelo solo pueden depender del signo de la salida. ) Los árboles de comparación son árboles de decisión lineales, porque la comparación entre y corresponde a la función lineal . Por su definición, los árboles de decisión lineales solo pueden especificar funciones cuyas fibras se pueden construir tomando uniones e intersecciones de semiespacios.
Los árboles de decisión algebraicos son una generalización de los árboles de decisión lineales que permiten que las funciones de prueba sean polinomios de grado . Geométricamente, el espacio se divide en conjuntos semialgebráicos (una generalización del hiperplano).
Estos modelos de árboles de decisión, definidos por Rabin[3] y Reingold,[4] se utilizan a menudo para demostrar cuotas inferiores en geometría computacional .[5] Por ejemplo, Ben-Or demostró que la unicidad de los elementos (la tarea de calcular , dónde es 0 si y solo si existen coordenadas distintas tal que ) requiere un árbol de decisión algebraico de profundidad .[6] Esto fue mostrado por primera vez para los modelos de decisión lineal por Dobkin y Lipton.[7] También muestran una cuota inferior de para árboles de decisión lineales en el problema de la mochila, generalizado a árboles de decisión algebraicos por Steele y Yao.[8]
Complejidades del árboles de decisión booleanos
Para árboles de decisión Booleana, la tarea es calcular el valor de una función booleana de bits para una entrada . Las consultas corresponden a leer un bit de la entrada, , y la salida es . Cada consulta puede depender de las consultas anteriores. Son muchos los tipos de modelos computacionales que utilizan árboles de decisión que se podrían considerar, admitiendo múltiples nociones de complejidad, denominadas medidas de complejidad .
Árbol de decisión determinista
Si la salida de un árbol de decisión es , para todos , se dice que el árbol de decisión "calcula" . La profundidad de un árbol es el número máximo de consultas que pueden ocurrir antes de que se alcance una hoja y se obtenga un resultado. , la complejidad del árbol de decisión determinista de es la profundidad más pequeña entre todos los árboles de decisión deterministas que calculan .
Árbol de decisión aleatorizada
Una forma de definir un árbol de decisión aleatorio es agregando nodos adicionales al árbol, cada uno controlado por una probabilidad . Otra definición equivalente lo construye como una distribución sobre árboles de decisión deterministas. Con base en esta segunda definición, la complejidad del árbol aleatorio se define como la mayor profundidad entre todos los árboles en el soporte de la distribución subyacente. se define como la complejidad del árbol de decisión aleatorio de menor profundidad cuyo resultado es con probabilidad al menos para todos (es decir, con error de dos colas acotado).
se conoce como la complejidad del árbol de decisión aleatorio de Monte Carlo, porque se permite que el resultado sea incorrecto con un error de dos colas acotado. La complejidad del árbol de decisión de Las Vegas mide la profundidad esperada de un árbol de decisión que debe ser correcto (es decir, tiene cero errores). También hay una versión de error acotado unilateral que se denota por .
Árbol de decisión no determinista
La complejidad del árbol de decisión no determinista de una función se conoce más comúnmente como la complejidad del certificado de esa función. Mide la cantidad de bits de entrada que un algoritmo no determinista necesitaría consultar para evaluar la función con certeza.
Formalmente, la complejidad del certificado de a es el tamaño del subconjunto más pequeño de índices tal que, por todo , si para todos , después . La complejidad del certificado de es la complejidad máxima del certificado sobre todos . La noción análoga en la que solo se requiere que el verificador sea correcto con 2/3 de probabilidad se denota .
Árbol de decisión cuántica
La complejidad del árbol de decisión cuántico es la profundidad del árbol de decisión cuántico de menor profundidad que da el resultado con probabilidad al menos para todo . Otra cantidad, denominada , está definida como la profundidad del árbol de decisión cuántico de menor profundidad que da el resultado con probabilidad 1 en todos los casos (es decir, calcula exactamente). y se conocen más comúnmente como complejidades de consulta cuántica, porque la definición directa de un árbol de decisión cuántica es más complicada que en el caso clásico. Similar al caso aleatorio, definimos y .
Estas nociones suelen estar acotadas por las nociones de grado y grado aproximado. El grado de , denotado , es el grado más pequeño de cualquier polinomio que satisface para toda . El grado aproximado de , denotado , es el grado más pequeño de cualquier polinomio que satisface cuando y cuando .
Beals et al. estableció que y .[9]