En geometría computacional , el problema de la medida de Klee es el problema de determinar con qué eficiencia se puede calcular la medida de una unión de rangos rectangulares ( multidimensionales ). Aquí, un rango rectangular d -dimensional se define como un producto cartesiano de d intervalos de números reales , que es un subconjunto de R d .
El problema recibe su nombre de Victor Klee , quien dio un algoritmo para calcular la longitud de una unión de intervalos (el caso d = 1) que luego se demostró que era óptimamente eficiente en el sentido de la teoría de la complejidad computacional . Ahora también se conoce la complejidad computacional de calcular el área de una unión de rangos rectangulares bidimensionales, pero el caso d ≥ 3 sigue siendo un problema abierto .
En 1977, Victor Klee consideró el siguiente problema: dada una colección de n intervalos en la recta real , calcular la longitud de su unión. Luego presentó un algoritmo para resolver este problema con complejidad computacional (o "tiempo de ejecución") ; consulte la notación Big O para conocer el significado de esta afirmación. Michael Fredman y Bruce Weide (1978) demostraron posteriormente que este algoritmo, basado en la clasificación de los intervalos, era óptimo.
Más tarde, en 1977, Jon Bentley consideró un análogo bidimensional de este problema: dada una colección de n rectángulos , hallar el área de su unión. También obtuvo un algoritmo de complejidad, ahora conocido como algoritmo de Bentley , basado en reducir el problema a n problemas unidimensionales : esto se hace barriendo una línea vertical a través del área. Usando este método, el área de la unión puede calcularse sin construir explícitamente la unión en sí. Ahora también se sabe que el algoritmo de Bentley es óptimo (en el caso bidimensional), y se usa en gráficos por computadora , entre otras áreas.
Estos dos problemas son los casos unidimensionales y bidimensionales de una cuestión más general: dada una colección de rangos rectangulares de dimensión n -d , calcular la medida de su unión. Este problema general es el problema de la medida de Klee.
Cuando se generaliza al caso d -dimensional, el algoritmo de Bentley tiene un tiempo de ejecución de . Esto resulta no ser óptimo, porque solo descompone el problema d -dimensional en problemas n ( d-1 )-dimensionales, y no descompone aún más esos subproblemas. En 1981, Jan van Leeuwen y Derek Wood mejoraron el tiempo de ejecución de este algoritmo a para d ≥ 3 mediante el uso de árboles cuádruples dinámicos .
En 1988, Mark Overmars y Chee Yap propusieron un algoritmo para d ≥ 3. Su algoritmo utiliza una estructura de datos particular similar a un árbol kd para descomponer el problema en componentes bidimensionales y agregar esos componentes de manera eficiente; los problemas bidimensionales en sí se resuelven de manera eficiente utilizando una estructura de enrejado . Aunque asintóticamente más rápido que el algoritmo de Bentley, sus estructuras de datos utilizan significativamente más espacio, por lo que solo se utiliza en problemas donde n o d son grandes. En 1998, Bogdan Chlebus propuso un algoritmo más simple con el mismo tiempo de ejecución asintótico para los casos especiales comunes donde d es 3 o 4.
En 2013, Timothy M. Chan desarrolló un algoritmo más simple que evita la necesidad de estructuras de datos dinámicas y elimina el factor logarítmico, reduciendo el tiempo de ejecución mejor conocido para d ≥ 3 a .
El único límite inferior conocido para cualquier d es , y se conocen algoritmos óptimos con este tiempo de ejecución para d = 1 y d = 2. El algoritmo de Chan proporciona un límite superior de para d ≥ 3, por lo que para d ≥ 3, sigue siendo una cuestión abierta si son posibles algoritmos más rápidos o, alternativamente, si se pueden demostrar límites inferiores más estrictos. En particular, sigue siendo abierta la cuestión de si el tiempo de ejecución del algoritmo debe depender de d . Además, sigue abierta la cuestión de si existen algoritmos más rápidos que puedan tratar casos especiales (por ejemplo, cuando las coordenadas de entrada son números enteros dentro de un rango acotado).
El problema de medida de Klee 1D (unión de intervalos) se puede resolver en donde p denota el número de puntos de perforación necesarios para perforar todos los intervalos [1] (la unión de intervalos perforados por un punto común se puede calcular en tiempo lineal calculando los extremos). El parámetro p es un parámetro adaptativo que depende de la configuración de entrada, y el algoritmo de perforación [2] produce un algoritmo adaptativo para el problema de medida de Klee.