Cálculo geométrico robusto


En matemáticas, específicamente en geometría computacional , la falta de robustez geométrica es un problema en el que las decisiones de ramificación en los algoritmos de geometría computacional se basan en cálculos numéricos aproximados, lo que lleva a varias formas de falta de confiabilidad, que incluyen resultados mal formados y fallas del software debido a bloqueos o bucles infinitos.

Por ejemplo, los algoritmos para problemas como la construcción de un casco convexo se basan en probar si ciertos "predicados numéricos" tienen valores positivos, negativos o cero. Si un cálculo de punto flotante inexacto hace que un valor cercano a cero tenga un signo diferente al valor exacto, las inconsistencias resultantes pueden propagarse a través del algoritmo y provocar que produzca una salida que esté lejos de la salida correcta, o incluso que se bloquee.

Un método para evitar este problema consiste en utilizar números enteros en lugar de números de punto flotante para todas las coordenadas y otras cantidades representadas por el algoritmo, y determinar la precisión requerida para todos los cálculos para evitar condiciones de desbordamiento de números enteros . Por ejemplo, los cascos convexos bidimensionales se pueden calcular usando predicados que prueban el signo de polinomios cuadráticos y, por lo tanto, pueden requerir el doble de bits de precisión dentro de estos cálculos que los números de entrada. Cuando no se puede usar la aritmética de números enteros (por ejemplo, cuando el resultado de un cálculo es un número algebraico en lugar de un número entero o racional), un segundo método es usar el álgebra simbólica.para realizar todos los cálculos con números algebraicos exactamente representados en lugar de aproximaciones numéricas a ellos. Un tercer método, a veces llamado "filtro de punto flotante", consiste en calcular predicados numéricos primero utilizando un método inexacto basado en la aritmética de punto flotante, pero para mantener los límites de la precisión del resultado y repetir el cálculo utilizando métodos de álgebra simbólica más lentos o numéricamente con precisión adicional cuando estos límites no separan el valor calculado de cero.