En la teoría de la complejidad computacional , el modelo de árbol de decisión es el modelo de cálculo en el que un algoritmo puede considerarse un árbol de decisión , es decir, una secuencia de consultas o pruebas que se realizan de forma adaptativa, por lo que el resultado de las pruebas anteriores puede influir en las pruebas que se realizan a continuación.
Por lo general, estas pruebas tienen una pequeña cantidad de resultados (como una pregunta de sí o no ) y se pueden realizar rápidamente (por ejemplo, con un costo computacional unitario), por lo que la complejidad temporal en el peor de los casos de un algoritmo en el modelo de árbol de decisión corresponde a la profundidad del árbol 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 la consulta .
Los modelos de árboles de decisión son fundamentales para establecer límites inferiores para la complejidad de ciertas clases de problemas computacionales y algoritmos. 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, se utiliza un argumento de árbol de decisión para mostrar que una ordenación de comparación de elementos debe realizar comparaciones. Para las ordenaciones de comparación, una consulta es una comparación de dos elementos , con dos resultados (suponiendo que ningún elemento es igual): o bien . Las ordenaciones de comparación se pueden expresar como árboles de decisión en este modelo, ya que dichos algoritmos de ordenación solo realizan este tipo de consultas.
Los árboles de decisión se emplean a menudo para comprender algoritmos de clasificación y otros problemas similares; esto fue realizado 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 que se van a ordenar 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, la salida corresponde a una permutación que describe cómo se mezcló la secuencia de entrada a partir de la lista de elementos completamente ordenada. (La inversa de esta permutación, , reordena la secuencia de entrada).
Se puede demostrar que los ordenamientos por comparación deben utilizar comparaciones mediante un argumento simple: para que un algoritmo sea correcto, debe ser capaz de generar como salida cada permutación posible de elementos; de lo contrario, el algoritmo fallaría para esa permutación particular como entrada. Por lo tanto, su árbol de decisión correspondiente debe tener al menos tantas hojas como permutaciones: hojas. Cualquier árbol binario con al menos hojas tiene 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 mergesort y heapsort , demuestra que el límite es estricto. [2] : 91
Este argumento no utiliza nada sobre el tipo de consulta, por lo que, de hecho, demuestra un límite inferior para cualquier algoritmo de ordenamiento que pueda modelarse como un árbol de decisión binario. En esencia, se trata de una reformulación del argumento de la teoría de la información de que un algoritmo de ordenamiento 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.
Otros límites inferiores de árboles de decisión sí utilizan el hecho de que la consulta es una comparación. Por ejemplo, considere la tarea de utilizar únicamente comparaciones para encontrar el número más pequeño entre los 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 con el mayor) en al menos una comparación. Por lo tanto, se necesitan al menos comparaciones para encontrar el mínimo. (El argumento de la teoría de la información aquí solo da un límite inferior de ). Un argumento similar funciona para los límites inferiores generales para calcular las estadísticas de orden . [2] : 214
Los árboles de decisión lineales generalizan los árboles de decisión de comparación anteriores para calcular funciones que toman vectores reales como entrada. Las pruebas en árboles de decisión lineales son funciones lineales: para una elección particular de números reales , se obtiene como salida 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 . Según su definición, los árboles de decisión lineal 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 semialgebraicos (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 límites inferiores en geometría computacional . [5] Por ejemplo, Ben-Or mostró que la unicidad de los elementos (la tarea de calcular , donde es 0 si y solo si existen coordenadas distintas tales que ) requiere un árbol de decisión algebraico de profundidad . [6] Esto fue demostrado por primera vez para modelos de decisión lineales por Dobkin y Lipton. [7] También muestran un límite inferior para árboles de decisión lineales en el problema de la mochila, generalizado a árboles de decisión algebraicos por Steele y Yao. [8]
En el caso de los árboles de decisión booleanos, la tarea consiste en calcular el valor de una función booleana de n bits para una entrada . Las consultas corresponden a la lectura de un bit de la entrada, , y la salida es . Cada consulta puede depender de consultas anteriores. Existen muchos tipos de modelos computacionales que utilizan árboles de decisión que podrían considerarse, admitiendo múltiples nociones de complejidad, llamadas medidas de complejidad .
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 la cantidad máxima de consultas que pueden ocurrir antes de que se llegue a 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 .
Una forma de definir un árbol de decisión aleatorio es agregar nodos adicionales al árbol, cada uno controlado por una probabilidad . Otra definición equivalente es definirlo 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 profundidad más grande entre todos los árboles en apoyo 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 bilateral acotado).
Se conoce como complejidad de árbol de decisión aleatorizado de Monte Carlo , porque se permite que el resultado sea incorrecto con un error bilateral acotado. La complejidad de árbol de decisión de Las Vegas mide la profundidad esperada de un árbol de decisión que debe ser correcto (es decir, que tenga cero errores). También existe una versión unilateral con error acotado que se denota por .
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 analizar para evaluar la función con certeza.
Formalmente, la complejidad del certificado de en es el tamaño del subconjunto más pequeño de índices tal que, para todos , si para todos , entonces . La complejidad del certificado de es la complejidad máxima del certificado para todos . La noción análoga donde solo se requiere que el verificador esté en lo correcto con una probabilidad de 2/3 se denota .
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 todos . Otra cantidad, , se define 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ántico es más complicada que en el caso clásico. De manera similar al caso aleatorio, definimos y .
Estas nociones suelen estar limitadas 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 todo . El grado aproximado de , denotado , es el grado más pequeño de cualquier polinomio que satisface siempre y cuando .
Beals et al. establecieron que y . [9]
De las definiciones se desprende inmediatamente que para todas las funciones booleanas de -bit , , y . Encontrar los mejores límites superiores en la dirección inversa es un objetivo importante en el campo de la complejidad de las consultas.
Todos estos tipos de complejidad de consulta están relacionados polinomialmente. Blum e Impagliazzo, [10] Hartmanis y Hemachandra, [11] y Tardos [12] descubrieron de forma independiente que . Noam Nisan descubrió que la complejidad del árbol de decisión aleatorio de Monte Carlo también está relacionada polinomialmente con la complejidad del árbol de decisión determinista: . [13] (Nisan también demostró que .) Se conoce una relación más estrecha entre los modelos de Monte Carlo y Las Vegas: . [14] Esta relación es óptima hasta factores polilogarítmicos. [15] En cuanto a las complejidades del árbol de decisión cuántico, , y este límite es estrecho. [16] [15] Midrijanis demostró que , [17] [18] mejorando un límite cuártico debido a Beals et al. [9]
Es importante señalar que estas relaciones polinómicas son válidas únicamente para funciones booleanas totales . Para funciones booleanas parciales , que tienen un dominio que es un subconjunto de , es posible una separación exponencial entre y ; el primer ejemplo de un problema de este tipo fue descubierto por Deutsch y Jozsa .
Para una función booleana , la sensibilidad de se define como la sensibilidad máxima de sobre todo , donde la sensibilidad de en es el número de cambios de un solo bit en que cambian el valor de . La sensibilidad está relacionada con la noción de influencia total del análisis de funciones booleanas , que es igual a la sensibilidad promedio sobre todo .
La conjetura de sensibilidad es la conjetura de que la sensibilidad está relacionada polinómicamente con la complejidad de la consulta; es decir, existe un exponente tal que, para todos , y . Se puede demostrar mediante un argumento simple que , por lo que la conjetura se ocupa específicamente de encontrar un límite inferior para la sensibilidad. Dado que todas las medidas de complejidad discutidas anteriormente están relacionadas polinómicamente, el tipo preciso de medida de complejidad no es relevante. Sin embargo, esto generalmente se expresa como la cuestión de relacionar la sensibilidad con la sensibilidad de bloque.
La sensibilidad de bloque de , denotada , se define como la sensibilidad de bloque máxima de todos los . La sensibilidad de bloque de en es el número máximo de subconjuntos disjuntos tales que, para cualquiera de los subconjuntos , al invertir los bits de correspondientes a cambia el valor de . [13]
En 2019, Hao Huang demostró la conjetura de sensibilidad, mostrando que . [19] [20]
{{cite book}}
: CS1 maint: others (link)