En una respuesta a una pregunta anterior , mencioné la creencia común pero falsa de que la eliminación "gaussiana" se ejecuta en el tiempo . Si bien es obvio que el algoritmo utiliza operaciones aritméticas , la implementación descuidada puede crear números con exponencialmente muchos bits. Como un ejemplo simple, supongamos que queremos diagonalizar la siguiente matriz:
Si utilizamos una versión del algoritmo de eliminación sin división, que solo agrega múltiplos enteros de una fila a otra, y siempre pivotamos en una entrada diagonal de la matriz, la matriz de salida tiene el vector largo de la diagonal.
Pero, ¿cuál es la complejidad del tiempo real de la eliminación gaussiana? La mayoría de los autores de optimización combinatoria parecen estar contentos con "fuertemente polinomial", pero tengo curiosidad por saber qué es realmente el polinomio.
¿Sigue siendo este el mejor análisis conocido? ¿Existe una referencia estándar que ofrezca un límite de tiempo explícito mejor, o al menos un límite mejor en la precisión requerida?
Más en general: ¿Cuál es el tiempo de ejecución (en la RAM entera) del algoritmo más rápido conocido para resolver sistemas arbitrarios de ecuaciones lineales?
Respuestas:
fuente
Creo que la respuesta a su primera pregunta también es debido a los siguientes argumentos: el artículo de Edmonds no describe una variante de eliminación gaussiana pero demuestra que cualquier número calculado en un paso del algoritmo es un determinante de alguna submatriz de A. Por el libro de Schrijver sobre Teoría de la programación lineal y entera , sabemos que si la codificación de A necesita b bits (b debería estar enO˜(n3log(∥A∥+∥b∥)) O˜(log(∥A∥) ) entonces cualquiera de sus subdeterminantes necesita como máximo 2b bits (Teorema 3.2). Para que la eliminación gaussiana sea un algoritmo de tiempo polinómico, debemos preocuparnos por los cocientes calculados: tenemos que cancelar los factores comunes de cada fracción que calculamos en cualquier paso intermedio y luego todos los números tienen una longitud de codificación lineal en la longitud de codificación de A.
fuente