Яка реальна часова складність ліквідації Гаусса?


72

Відповідаючи на попереднє запитання , я згадав поширене, але помилкове переконання, що ліквідація «Гаусса» відбувається в O(n3) час. Хоча очевидно, що алгоритм використовує арифметичні операції O(n3) , недбала реалізація може створювати числа з експоненціально багатьма бітами. Як простий приклад, припустимо, ми хочемо діагоналізувати таку матрицю:

[2000120011201112]

Якщо ми використовуємо версію алгоритму усунення без поділу, яка додає лише цілі кратні множини одного рядка до іншого, і ми завжди переводимо на діагональний запис матриці, вихідна матриця має вектор по діагоналі.(2,4,16,256,,22n1)

Але що це фактичний час складність виключення Гаусса? Більшість авторів комбінаторної оптимізації, здається, задоволені "сильно поліномом", але мені цікаво, що таке поліном насправді.

n×nmO(n(m+logn))m=O(logn)O(n5)O~(n4)O(logn)

Це все-таки відомий найкращий аналіз? Чи є стандартна посилання, яка дає кращу чітку межу в часі або, принаймні, кращу межу з необхідною точністю?

Більш загально: Який час роботи (на цілу оперативну пам'ять) найшвидшого алгоритму, відомого для вирішення довільних систем лінійних рівнянь?


2
(вставляючи насильницьку ручну хвилю) Чи не вдалося обійти велику цілу проблему в цьому конкретному випадку, використовуючи хеширующие модулі малі прості трюки? алгоритм буде рандомізований, але все-таки .. Дійсно, це не відповідає на поставлене вами питання ...
Суреш Венкат

1
O(n3MB[n(logn+L)])

1
Стандартний алгоритм усунення Гаусса ділить зведений рядок на елемент повороту перед зменшенням пізніших рядків. Відкрите запитання стосується цієї стандартної версії. У прикладі, який я наводив на початку свого запитання, використовується інший варіант, який НЕ розділяється на елемент повороту.
Джефф

3
Цікавий. Час Япа для алгоритму Береїса ідентичний часовому інтервалу, який передбачає аналіз Едмондса про ліквідацію Гаусса.
Джефф

1
Нещодавно rjlipton досліджував цю область та цитує кандидатську дисертацію Каннана на цю тему. Ключовою частиною аналізу є нормальна форма
Wrt

Відповіді:


35

O~(n3log(A+b))


Дякую за довідку! Це відповідає на моє друге питання, але не на моє перше.
Джефф

3
Якщо ви використовуєте поворотні, то бітний розмір проміжних результатів у ліквідації Гаусса (GE) є многочленом, експоненційного вибуху немає. Я думаю, що це результат Барейса. Щодо складності GE, то в книзі Гатена та Герхарда "Сучасна комп'ютерна алгебра" є алгоритм для обчислення детермінантної матриці , заснованої на GE, модульній арифметиці та теоремі залишків Китаю (Розд. 5.5, с. 101-105). Складність становить . Я думаю, що коефіцієнт можна зберегти, використовуючи швидку арифметику. Якщо я не помиляюся, це обмеження, про яке згадував user834. AO(n4log2A)n
Ілля

@Elias, яке визначення норми в цьому виразі? Це найбільший коефіцієнт в абсолютних розмірах? Це розмір біта? Також це результат для довільних раціональних матриць?
Хуан Бермеджо Вега

13

Я думаю, що відповідь на ваше перше запитання також є через такі аргументи: "Документ Едмонда" не описує варіант гауссової ліквідації але це доводить, що будь-яке число, обчислене на кроці алгоритму, є визначальним деякою підматрицею А. З книги Шріверта «Теорія лінійного та цілого програмування» ми знаємо, що якщо кодування A потребує b бітів (b повинно бути вO~(n3log(A+b))O~(log(A)), то будь-якому з його субдетермінантів потрібно максимум 2b біт (теорема 3.2). Для того, щоб зробити гауссова елімінація алгоритмом багаточленного часу, ми повинні дбати про обчислені коефіцієнти: ми повинні скасувати загальні коефіцієнти з кожного дробу, який ми обчислимо, на будь-якому проміжному етапі, і тоді всі числа мають довжину кодування лінійною довжиною кодування A.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.