Чи можна вирішити діагоналі плюс нерухомі симетричні лінійні системи в квадратичний час після попереднього обчислення?


21

Чи існує метод O(n3+n2k) для розв’язування k лінійних систем вигляду (Di+A)xi=bi де є фіксованою матрицею SPD, а - матрицями з позитивною діагоналлю?Д яADi

Наприклад, якщо кожен є скаляром, досить обчислити СВД з . Однак це руйнується для загального через відсутність комутативності. A DDiAD

Оновлення : відповіді поки що "ні". У когось є якась цікава інтуїція, чому? Немає відповіді означає, що не існує нетривіального способу стиснення інформації між двома операторами, що не мають комунікацій. Це не страшно дивно, але було б чудово зрозуміти це краще.


SPD = напівпозитивний визначений?
rcollyer

Так, хоч проблема по суті однакова без SPD. Я додав це обмеження лише для того, щоб системи ніколи не були єдиними.
Джеффрі Ірвінг

Відповіді:


19

Найближчі позитивні відповіді на ваше запитання, які я міг би знайти, - це рідкісні діагональні збурення (див. Нижче).

Зважаючи на це, я не знаю жодного алгоритму для загального випадку, хоча є узагальнення методики, яку ви згадали для скалярних зрушень з матриць SPD на всі квадратні матриці:

Враховуючи будь-яку квадратну матрицю , існує розклад Шура A = U T U H , де U є єдиним, а T - верхнім трикутним, а A + σ I = U ( T + σ I ) U H забезпечує розкладання Шура AAA=UTUHUTA+σI=U(T+σI)UH . Таким чином, ваша ідея попереднього обчислення поширюється на всі квадратні матриці за допомогою алгоритму:A+σI

  • Обчисліть щонайбільше O ([U,T]=schur(A) роботи.O(n3)
  • Розв’яжіть кожен через x : = U ( T + σ I ) - 1 U H b в O ( n(A+σI)x=bx:=U(T+σI)1UHb (середня інверсія - це просто заміна назад).O(n2)

Цей рядок міркувань зводиться до підходу, який ви згадали, коли є SPD, оскільки розкладання Шура зводиться до EVD для нормальних матриць, а EVD збігається з SVD для ермітових позитивних певних матриць.A

Відповідь на оновлення: Поки я не маю доказів, яких не маю, я відмовляюся стверджувати, що відповідь - «ні». Однак я можу дати деяку думку про те, чому це важко, а також інший підзаголовок, де відповідь - так.

Основна складність полягає в тому, що, хоча оновлення є діагональним, воно все ще є загальним повним рангом, тому основний інструмент оновлення оберненої, формула Шермана-Моррісона-Вудбері , схоже, не допомагає. Хоча випадок скалярного зсуву також є повноцінним, це надзвичайно особливий випадок, оскільки він спілкується з кожною матрицею, як ви вже згадували.

З урахуванням сказаного, якщо кожен був розрідженим, тобто кожен з них мав O ( 1 ) ненулі, то формула Шермана-Моррісона-Вудбері виводить рішення O ( n 2 ) з кожною парою { D , b } . Наприклад, з одиничним ненульовим позначкою на j- му діагональному вході, так що D = δ e j e H j :DO(1)O(n2){D,b}jD=δejejH

[A1+δejejH]1=A1δA1ejejHA11+δ(ejHA1ej),

де - jejj й стандартний базовий вектор .

Ще одне оновлення: я мушу зазначити, що я спробував попередній кондиціонер який @GeoffOxberry запропонував на кількох випадкових матрицях SPD 1000 × 1000 за допомогою PCG, і, можливо, не дивно, здається, це значно зменшить кількість ітерацій, коли | | Д | | 2 / | | А | | 2 невелика, але не тоді, коли вона дорівнює O ( 1 ) або більше.A11000×1000||D||2/||A||2O(1)


12

Якщо є діагонально домінуючим для кожного i , то недавня робота Кутіса, Міллера та Пенга (див. Веб-сайт Кутіса для роботи над симетричними діагонально домінуючими матрицями) може бути використана для вирішення кожної системи в O ( n 2 log ( n ) ) час (фактично O ( m log ( n ) ) час, де m - максимальна кількість ненульових записів у ( D i + A ) для всіх(Di+A)iO(n2log(n))O(mlog(n))m(Di+A) , щоб ви могли також скористатися рідкістю). Тоді, загальний час роботи буде O ( n 2 log ( n ) k ) , що краще, ніжпідхід O ( n 3 k ) для вирішення кожної системи наївно, використовуючи щільну лінійну алгебру, але трохи гірше, ніж квадратичний час виконання прошу.iO(n2log(n)k)O(n3k)

Значна розрідженість у для всіх я могла бути використана розрідженими розв'язниками, щоб отримати алгоритм O ( n 2 k ) , але я здогадуюсь, що якби у вас була значна розрідженість, то ви б це згадали.(Di+A)iO(n2k)

Ви також можете використовувати як попередній умова для вирішення кожної системи за допомогою ітеративних методів, і подивіться, як це відбувається.A1

Відповідь на оновлення : @JackPaulson відзначає велику точку зору чисельної лінійної алгебри та алгоритмів. Я замість цього зосереджуся на аргументах складності обчислювальної техніки.

Обчислювальна складність рішення лінійних систем та обчислювальна складність множення матриць по суті рівні. (Див алгебраїчних складність теорія .) Якби ви могли знайти алгоритм , який може стиснути інформацію між двома некоммутірующімі операторами ( без урахування позитивної полуопределенной частини) і безпосередньо вирішувати сукупність систем ви пропонуєте в квадратичне час в , то це ймовірно, що ви могли використовувати такий алгоритм, щоб зробити висновки про швидше множення матриці. Важко зрозуміти, як позитивна семідефінітна структура може бути використана в щільному, прямому методі для лінійних систем для зменшення її обчислювальної складності.n

Як і @JackPaulson, я не бажаю говорити, що відповідь "ні" без доказів, але враховуючи вищезгадані зв'язки, проблема є дуже складною та представляє цікавий науковий досвід. Найкраще, що ви могли зробити з асимптотичної точки зору, не використовуючи спеціальну структуру, - це вдосконалення алгоритму Копперсміта та Винограда, даючи алгоритм , де α 2,375 . Цей алгоритм було б важко кодувати, і, ймовірно, буде малим для малих матриць, оскільки постійний коефіцієнт, що передує асимптотичній оцінці, ймовірно, величезний відносно усунення Гаусса.O(nαk)α2.375


3
Я ще не бачив конкретного твердження про те, де міг би бути кросовер, але кілька поважних джерел заявили, що (проблеми з реалізацією), Coppersmith-Winograd не може перемогти стандартні методи розмірів матриць, які зможуть вписатись у пам'яті найближчим часом (кілька десятиліть). Зважаючи на те, що на поточних верхніх машинах для порівняння Linpack потрібен більше доби, не представляється ймовірним, що Coppersmith-Winograd коли-небудь використовуватимуться на практиці. Strassen насправді практичний для великих проблем, хоча він є менш меншим числовим стабільним.
Джед Браун

Це мене не дивує. +1 для детальної інформації про реалізацію.
Джефф Оксберрі

6

A+DA

A1=(A+DD)1(A+D)(A+D)1=[(A+D)1(A+DD)]1(A+D)1=[I(A+D)1D]1(A+D)1[I+(A+D)1D](A+D)1

A+D

D0Dminσ(A)

Якщо зсув у попередньому кондиціонері набагато більший, ніж в операторі, цей метод має тенденцію створювати число умови приблизно вдвічі від попереднього кондиціонування відхиленим оператором (у випадкових тестах, які я виконував, це може бути кращим чи гіршим для конкретного класу матриці). Цей коефіцієнт 2 у кількості умови дає коефіцієнт в ітераційному рахунку. Якщо у вартості ітерації переважають розв'язки з , то це не є достатнім фактором для виправдання розширення Тейлора першого порядку. Якщо застосування матриці пропорційно дороге (наприклад, у вас є лише недорогий застосувати попередній кондиціонер для ), цей метод першого замовлення може мати сенс. A+DA+D2A+DA+D

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