Які вказівки слід використовувати під час пошуку хороших методів попередньої підготовки для певної проблеми?


19

Для розв’язання великих лінійних систем використанням ітеративних методів часто представляє інтерес запровадити попередню умову, наприклад, замість M - 1 ( A x = b ) , де M використовується тут для лівої попередньої кондиціонування системи. Як правило, ми повинні мати, що M - 1A - 1, і забезпечити основу для (набагато більше) ефективного рішення або скорочення обчислювальних ресурсів (наприклад, зберігання пам'яті) порівняно з рішенням вихідної системи (тобто, коли M = AАх=бМ-1(Ах=б)ММ-1А-1М=А). Однак які вказівки ми повинні використовувати для вибору попереднього кондиціонера? Як практикуючі роблять це для своєї конкретної проблеми?


1
Навіть для одного конкретного класу рівнянь це вимагатиме дуже довгої та детальної відповіді ...
Джек Поульсон

Потрібно запропонувати евристичні стратегії щодо вибору попередніх кондиціонерів. Наприклад, з огляду на проблему, що практикуючі роблять на практиці, щоб спробувати знайти хороший попередник? Почніть тільки з базового діагонального попереднього кондиціонера на основі витягування діагоналі з ? або? А
Аллан П. Енгсіг-Каруп

4
Я збираюся на канал @MattKnepley і скажу, що відповідна дія - пошук літератури. Якщо це не вдається, спробуйте всі доступні варіанти щодо досить великої проблеми. Якщо це не вдається, подумайте глибоко про фізику і про те, як ви можете дешево вирішити проблему, і використовуйте це як попередній засіб.
Джек Поульсон

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

Я розпочав щедрувати з цього питання, але мені також цікаво побачити більше питань у цій галузі, які можуть бути краще поставлені або обмежені певним класом проблем.
Арон Ахмадія

Відповіді:


17

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

  1. Провести ретельний пошук літератури.
  2. Якщо це не вдається, спробуйте кожен попередній кондиціонер, який має сенс, що ви можете отримати свої руки. MATLAB, PETSc і Trilinos - це приємні умови для цього.
  3. Якщо це не вдається, вам слід добре подумати про фізику вашої проблеми і подивитися, чи можна придумати дешеве приблизне рішення, можливо, навіть дещо змінену версію вашої проблеми.

Приклади 3 - це зміщені лапласіанські версії Гельмгольца, і нещодавня робота Цзіньчао Сю над попередньою підготовкою бігармонічного оператора з лаплакійцями.


Спасибі! Решта цього коментаря відповідає мінімальній межі символу.
Джефф Оксберрі

14

Інші вже прокоментували питання про попереднє обумовлення того, що я буду називати "монолітними" матрицями, тобто, наприклад, дискретизовану форму скалярного рівняння, таке як рівняння Лапласа, рівняння Гельмгольца, або, якщо ви хочете узагальнити його, векторне значення рівняння пружності. З цих речей очевидно, що багаторешітка (або алгебраїчна, або геометрична) є переможцем, якщо рівняння еліптичне, а для інших рівнянь - не зовсім зрозуміло - але щось на зразок SSOR часто працює досить добре (для певного значення "розумний").

Для мене великим відкриттям було те, що робити з проблемами, які не є монолітними, наприклад для оператора Стокса Коли я починав чисельний аналіз десь 15 років тому, я думаю, що люди мали надію, що ті ж методики можуть бути застосовані до таких матриць, як вище, і напрям дослідження полягав у тому, щоб або спробувати мультирешітку безпосередньо, або використовувати узагальнення SSOR (використовуючи " точкові згладжування ", як Ванька) та подібні методи. Але це згасло, оскільки це працює не дуже добре.

(АББТ0).

На зміну цьому прийшло те, що спочатку називалося «передумовниками, заснованими на фізиці», а згодом просто (а може бути, точніше) «блокувати попередні кондиціонери», подібні Сільвестру та Ватену. Вони часто ґрунтуються на усуненні блоків або доповненнях Шура. Ідея полягає у створенні попереднього кондиціонера таким чином, щоб можна було повторно використовувати попередні кондиціонери для окремих блоків, які, як відомо, добре працюють. Наприклад, у випадку рівняння Стокса, попередній кондиціонер Silvester / Wathen використовує цю матрицю

(АБ0БТА-1Б)-1
при використанні в якості попереднього кондиціонера з GMRES це призведе до зближення рівно двох ітерацій. Оскільки вона трикутна, інверсія також набагато простіша, але у нас все ще виникає проблема, що робити з діагональними блоками, і там використовується наближення: де тильда означає замінити точну обернену на апроксимацію. Це часто набагато простіше: оскільки блок A є еліптичним оператором, ~
(А-1~Б0(БТА-1Б)-1~)
АА-1~наприклад, апроксимується багатоядерним V-циклом, наприклад, і виходить, що тут добре наближений ІЛУ матричної маси.(БТА-1Б)-1~

Ця ідея роботи з окремими блоками, що містять матрицю та повторне використання попередніх кондиціонерів на окремих, виявилася надзвичайно потужною і повністю змінила те, як ми думаємо сьогодні про умови попереднього кондиціонування рівнянь. Звичайно, це актуально, оскільки більшість актуальних проблем - це, власне, системи рівнянь.


1
Людина, так, я так хотіла щедрості! ;-)
Вольфганг Бангерт

У вашому другому абзаці: "Але це зів'яло, оскільки воно працює не дуже добре". Чи можете ви підказати, чому це не дуже добре? Чи існують обставини, за яких це може працювати?
Ендрю Т. Баркер

Причина, по якій пряма мультисетка, застосована до цілих систем, не виявилася настільки успішною, що плавніше потребує збереження структурних властивостей рівняння, і цього не можна досягти. Наприклад, якщо ви хочете застосувати багаторешітку до рівнянь Стокса, ви повинні мати плавніше, що з урахуванням вільного дивергенції вектор дає вам вільний дивергенцію. Є такі плавніші для Стокса, але це нетривіально будувати, і це зазвичай віднімає від якості, як плавніша / вирішувальна. Зберігати властивості в більш загальних випадках стає набагато складніше.
Вольфганг Бангерт

Що стосується узагальнення таких речей, як Якобі / SSOR / тощо, до систем: більшість цих методів вимагають, щоб діагональні записи матриці були ненульовими. Очевидно, це не так для Стокса. Отже, наступним найпростішим методом є не дивитися на окремі рядки матриці, а на блоки рядків, наприклад, всі рядки для DoF, пов'язаних з однією вершиною. Це дзвінки "згладжуючі точки" (точки, як у вершині), і вони працюють до певної міри, але вони страждають від тієї ж деградації продуктивності, що і Якобі / ССОР, коли проблеми стають великими. Щоб уникнути цього, попередньому кондиціонеру потрібно глобально обмінюватися інформацією як багаторешітка.
Вольфганг Бангерт

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

13

Джек провів хорошу процедуру пошуку попереднього кондиціонера. Я спробую вирішити питання "Що робить хорошим попереднім умовою?". Оперативне визначення:

Ах=бМ-1А-1

однак це не дає нам ніякої уявлення про розробку попереднього кондиціонера. Більшість попередніх кондиціонерів засновані на маніпулюванні операторним спектром. Загалом, методи Крилова сходяться швидше, коли власні значення знаходяться в кластері, див. Ітерації матриці або Мероморфні функції та лінійна алгебра . Іноді ми можемо довести, що результати попереднього кондиціонера - це лише декілька унікальних власних значень, наприклад Примітка про попередню підготовку для невизначених лінійних систем .

Загальна стратегія є прикладом мультирешітки. Релаксаційні кондиціонери (тут більш гладкі), такі як SOR, видаляють високочастотні компоненти помилки. Коли залишок проектується на грубу сітку, компоненти похибки нижчої частоти стають більш високими частотами і знову можуть бути атаковані SOR. Ця основна стратегія лежить в основі більш складних версій MG, таких як AMG. Зверніть увагу, що внизу вирішувач повинен точно вирішити найнижчі частоти помилки.

Інша стратегія передбачає розв’язання рівняння в малих підпросторах, саме цим займаються вирішувачі Крилова. У найпростішій формі це метод Качмарца або метод Адитивної Шварца . Тут вдосконалений теоретичний штам, домен Decomposition , зосереджений на спектральному наближенні похибки на інтерфейсі, оскільки домени вважаються вирішеними досить точно.

А


дякую за вашу відповідь Будь-який досвід щодо того, як далеко ми повинні піти, щоб насправді підтвердити, що попередня підготовка працює для великих систем - і, можливо, як це можна чи потрібно зробити на практиці. Як я вважаю, для багатьох систем нам доводиться покладатися на інтуїцію, евристику тощо
Аллан П. Енгсіг-Каруп

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