Какие рекомендации я должен использовать при поиске хороших методов предварительной обработки для конкретной проблемы?


19

Для решения больших линейных систем с использованием итерационных методов часто представляет интерес введение предобусловливания, например, вместо решения вместо решения M - 1 ( A x = b ) , где M здесь используется для предобусловливания системы влево. Как правило, мы должны иметь это M - 1A - 1 и обеспечивать основу для (гораздо более) эффективного решения или сокращения вычислительных ресурсов (например, памяти) по сравнению с решением исходной системы (то есть, когдаAИксзнак равнобM-1(AИксзнак равноб)MM-1A-1Mзнак равноA). Однако, какие рекомендации мы должны использовать, чтобы выбрать предварительный кондиционер? Как практикующие делают это для своей конкретной проблемы?


1
Даже для одного конкретного класса уравнений это потребует очень длинного и подробного ответа ...
Джек Полсон,

Должна быть возможность предложить эвристические стратегии для выбора предварительных кондиционеров. Например, учитывая проблему, что практикующие практики на практике пытаются найти хорошего предобусловливателя? Просто начните с базового диагонального предобусловливателя, основанного на извлечении диагонали из ? или? A
Аллан П. Энгсиг-Каруп

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

@JackPoulson: Поскольку этот вопрос аналогичен тому, какой использовать разреженный линейный решатель системы? и Как выбрать масштабируемый линейный решатель , мне кажется по теме (хотя и широкий). Поскольку ваш комментарий в основном является ответом, не могли бы вы преобразовать его в ответ?
Джефф Оксберри

Я получил награду за этот вопрос, но мне также интересно видеть больше вопросов в этом ключе, которые могут быть лучше поставлены или ограничены определенным классом проблем.
Арон Ахмадиа

Ответы:


17

Изначально я не хотел давать ответ, потому что это заслуживает очень долгого обращения, и, надеюсь, кто-то еще даст его. Тем не менее, я могу дать очень краткий обзор рекомендуемого подхода:

  1. Выполните тщательный поиск литературы.
  2. Если это не поможет, попробуйте каждый предварительный кондиционер, который имеет смысл, что вы можете получить в свои руки. MATLAB, PETSc и Trilinos - хорошие условия для этого.
  3. Если это не помогает, вы должны тщательно продумать физику вашей проблемы и посмотреть, возможно ли найти дешевое приблизительное решение, возможно, даже слегка измененную версию вашей проблемы.

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


Благодарность! Остальная часть этого комментария соответствует минимальному количеству символов.
Джефф Оксберри

14

Другие уже прокомментировали проблему предобусловливания того, что я буду называть «монолитными» матрицами, то есть, например, дискретизированной формы скалярного уравнения, такого как уравнение Лапласа, уравнение Гельмгольца или, если вы хотите обобщить, вектор-значение уравнение упругости. Для этих вещей ясно, что многосетка (алгебраическая или геометрическая) является победителем, если уравнение является эллиптическим, а для других уравнений это не совсем понятно - но что-то вроде SSOR часто работает достаточно хорошо (для некоторого значения "разумный").

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

(AВВT0),

То, что пришло на смену этому, было то, что первоначально называлось «основанными на физике предобработчиками», а позже просто (и, может быть, более точно) «блочными предобработчиками», такими как Сильвестр и Ватен. Они часто основаны на исключениях блоков или дополнениях Шура, и идея состоит в том, чтобы создать предварительный кондиционер таким образом, чтобы можно было повторно использовать предварительные кондиционеры для отдельных блоков, которые, как известно, работают хорошо. Например, в случае уравнения Стокса предварительный кондиционер Сильвестра / Ватена использует эту матрицу

(AВ0ВTA-1В)-1
при использовании в качестве предварительного кондиционера с GMRES приведет к сходимости ровно за две итерации. Поскольку он треугольный, инверсия также намного проще, но у нас все еще остается проблема того, что делать с диагональными блоками, и там используются аппроксимации: где тильда означает заменить точное обратное приближением. Это часто намного проще: посколькублокAявляется эллиптическим оператором, ~ A - 1
(A-1~В0(ВTA-1В)-1~)
AA-1~например, хорошо аппроксимируется многосеточным V-циклом, и получается, что здесь хорошо аппроксимируется ILU матрицы масс.(ВTA-1В)-1~

Эта идея работы с отдельными блоками, составляющими матрицу, и повторного использования предобусловливателей на отдельных, оказалась чрезвычайно мощной и полностью изменила наше представление о системах уравнений предобусловливания сегодня. Конечно, это актуально, потому что большинство актуальных проблем - это системы уравнений.


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

Во втором абзаце: «Но это исчезло, потому что это не очень хорошо работает». Можете ли вы дать некоторое представление о том, почему это не очень хорошо работает? Есть ли обстоятельства, при которых это может работать?
Эндрю Т. Баркер

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

Что касается обобщения таких вещей, как Jacobi / SSOR / etc, на системы: большинство этих методов требуют, чтобы диагональные элементы матрицы были ненулевыми. Это явно не тот случай со Стоуксом. Таким образом, следующий простейший метод состоит в том, чтобы смотреть не на отдельные строки матрицы, а на блоки строк, например, на все строки для DoF, связанных с одной вершиной. Их называют «точечными сглаживателями» (точки, как в вершине), и они работают до некоторой степени, но они страдают от такого же снижения производительности, что и Jacobi / SSOR, когда проблемы становятся большими. Чтобы избежать этого, прекондиционеру необходимо глобально обмениваться информацией как мультисетка.
Вольфганг Бангерт

Multigrid, как известно, неэффективен при решении Гельмгольца, потому что, главным образом, из-за того, что колебательные моды низкой энергии трудно сгладить или представить в грубом пространстве. Была проделана некоторая работа над многосеточными волнами, но формулировка очень техническая, и на данный момент это не зрелая методология. Обратите внимание, что несимметричные системы также могут быть решены с помощью этого вида разложения блоков. В зависимости от выбора переменных (например, примитивных или консервативных), в предварительном кондиционере может потребоваться изменение базы для раскрытия заблокированной структуры.
Джед Браун

13

Джек дал хорошую процедуру для поиска предварительного кондиционера. Я попробую ответить на вопрос «Что делает хорошего предобусловливателя?». Оперативное определение:

AИксзнак равнобM-1A-1

однако это не дает нам никакого представления о разработке предварительного кондиционера. Большинство предварительных кондиционеров основаны на манипулировании операторским спектром. Как правило, методы Крылова сходятся быстрее, когда собственные значения кластеризованы, см. Матричные итерации или Мероморфные функции и Линейная алгебра . Иногда мы можем доказать, что результаты предобусловливания - это всего лишь несколько уникальных собственных значений, например, Замечание о предобусловливании для неопределенных линейных систем .

Примером общей стратегии является Multigrid. Релаксационные предварительные кондиционеры (здесь сглаживающие), такие как SOR, удаляют высокочастотные компоненты в ошибке. Когда остаток проецируется на грубую сетку, компоненты погрешности более низкой частоты становятся более высокой частотой и могут снова подвергаться атаке SOR. Эта базовая стратегия лежит в основе более сложных версий MG, таких как AMG. Обратите внимание, что в нижней части решатель должен точно разрешить самые низкие частоты ошибки.

Другая стратегия заключается в решении уравнения в малых подпространствах, что и делают решатели Крылова. В простейшей форме это метод Качмарца или Аддитивный метод Шварца . Продвинутая деформация теории здесь, Разложение Домена , концентрируется на спектральной аппроксимации ошибки на границе раздела, поскольку предполагается, что домены решаются довольно точно.

A


Спасибо за ваш ответ. Любой опыт, касающийся того, как далеко мы должны зайти, на самом деле служит доказательством того, что предварительная обработка работает для больших систем - и, возможно, как это можно или нужно делать на практике. По моему опыту, для многих систем мы должны полагаться на интуицию, эвристику и т. Д.
Аллан П. Энгсиг-Каруп,

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