특정 문제에 대한 좋은 사전 조건을 검색 할 때 어떤 지침을 사용해야합니까?


19

반복적 방법을 사용 대형 선형 시스템 A x = b 의 솔루션의 경우, 사전 조건을 도입하는 것이 종종 중요합니다. 예를 들어 대신 M - 1 ( A x = b )를 해결 하십시오. 여기서 M 은 시스템의 왼쪽 사전 조건에 사용됩니다. 일반적으로, 우리는 M - 1A - 1을 가져야하고 , 원래 시스템의 솔루션과 비교하여 (예를 들어 M = A 일 때) 계산 시스템 (예 : 메모리 저장)의 효율적인 솔루션 또는 감소의 기반을 제공해야합니다 .엑스=미디엄1(엑스=)미디엄미디엄11미디엄=). 그러나 전제 조건을 선택하기 위해 어떤 지침을 사용해야합니까? 실무자들은 특정 문제에 대해 어떻게해야합니까?


1
심지어 방정식의 하나 개의 특정 클래스, 이것은 매우 길고 상세한 답변을 ... 필요
잭 폴슨

사전 조건자를 선택할 수있는 방법에 대한 휴리스틱 전략을 제안 할 수 있어야합니다. 예를 들어, 문제가 있다면, 실무자는 좋은 전제 조건을 찾기 위해 실제로 무엇을 하는가? ? 에서 대각선을 추출하여 기본 대각선 사전 컨디셔너로 시작하십시오 . 또는?
Allan P. Engsig-Karup

4
@MattKnepley 채널로 이동하여 적절한 조치는 문헌 검색을 수행하는 것이라고 말합니다. 실패하면 상당히 큰 문제에서 쉽게 사용할 수있는 모든 옵션을 시도하십시오. 이것이 실패하면 물리학에 대해 깊이 생각하고 문제에 대한 대략적인 해결책을 싸게 구할 수있는 방법을 전제 조건으로 사용하십시오.
잭 폴슨

@ JackPoulson :이 질문은 어떤 스파 스 선형 시스템 솔버를 사용 하는 것과 비슷한 맥락에 있기 때문에 ? 확장 가능한 선형 솔버를 선택하는 방법 , 그것은 나에게 주제에 대한 것 (확장 있지만). 귀하의 의견은 기본적으로 답변이므로 답변으로 전환 해 주시겠습니까?
Geoff Oxberry

나는이 질문에 대해 현상금을 시작했지만,이 정맥에서 더 나은 질문이나 특정 종류의 문제로 제한 될 수있는 더 많은 질문을 보는 데 관심이 있습니다.
Aron Ahmadia

답변:


17

나는 이것이 매우 긴 치료를받을 자격이 있기 때문에 원래 대답을하고 싶지 않았으며, 다른 누군가가 여전히 그것을 줄 것입니다. 그러나 권장되는 접근 방식에 대한 간략한 개요를 제공 할 수 있습니다.

  1. 철저한 문헌 검색을 수행하십시오 .
  2. 그것이 실패하면, 당신이 손을 잡을 수있는 모든 전제 조건을 시도하십시오. MATLAB, PETSc 및 Trilinos는이를위한 좋은 환경입니다.
  3. 만약 이것이 실패한다면, 당신은 문제의 물리학에 대해 신중히 생각하고 값이 싼 근사한 해결책, 아마도 약간 변경된 문제의 문제를 생각 해낼 수 있는지 확인해야합니다.

3의 예는 Helmholtz의 Laplacian 버전 과 Laplacian과의 바이 하모닉 연산자 사전 조정에 대한 Jinchao Xu의 최근 작업입니다.


감사! 이 의견의 나머지 부분은 최소 글자 수 한도를 충족합니다.
제프 옥스 베리

14

다른 사람들은 내가 "모노 리식 (monolithic)"행렬이라고 부르는 것, 예를 들어 라플라스 방정식, 헬름홀츠 방정식과 같은 스칼라 방정식의 이산 형태 또는 일반화하려는 경우 벡터 값을 갖는 전제 조건에 대해 이미 언급했습니다. 탄성 방정식. 이러한 경우 방정식이 타원이면 멀티 그리드 (대수 또는 기하학)가 승자가되고 다른 방정식의 경우 명확하지 않지만 SSOR과 같은 것이 합리적으로 잘 작동합니다 (일부 의미의 경우). "합리적인").

(0).

(01)1
(1~0(1)1~)
1~(1)1~

매트릭스를 구성하는 개별 블록으로 작업하고 개별 블록에서 전제 조건을 재사용한다는이 개념은 엄청나게 강력하며 오늘날의 전제 조건 시스템에 대한 생각을 완전히 바꿔 놓았습니다. 물론 대부분의 실제 문제는 실제로 방정식 시스템이기 때문에 이것은 관련이 있습니다.


1
남자, 그래, 현상금을 원했어! ;-)
Wolfgang Bangerth

두 번째 단락에서 : "하지만 잘 작동하지 않기 때문에이 현상이 사라졌습니다." 왜 잘 작동하지 않는지에 대한 직감을 줄 수 있습니까? 그것이 작동 할 수있는 상황이 있습니까?
Andrew T. Barker

전체 시스템에 직접 멀티 그리드를 적용한 이유가 그다지 성공적이지 않은 이유는 더 부드럽게 방정식의 구조적 특성을 보존해야하므로 달성하기가 쉽지 않기 때문입니다. 예를 들어, Stokes 방정식에 멀티 그리드를 적용하려면 분기 무료 벡터가 제공되면 분기 무료 벡터를 제공하는 것이 더 부드러워 야합니다. 스토크 스에는 이러한 스무더가 있지만 구성하기는 쉽지 않으며 일반적으로 스무더 / 솔버로서의 품질에서 벗어납니다. 좀 더 전형적인 경우에는 속성을 보존하는 것이 훨씬 어려워집니다.
Wolfgang Bangerth

Jacobi / SSOR / etc와 같은 것들을 시스템에 일반화하는 경우 : 이러한 방법의 대부분은 행렬의 대각선 항목이 0이 아닌 것을 요구합니다. 스토크 스에게는 그렇지 않습니다. 따라서 가장 간단한 방법은 개별 행렬 행이 아니라 행 블록 ( 예 : 단일 정점과 관련된 DoF의 모든 행)을 보는 것입니다. 이를 "포인트 스모 더 (point-smoothers)"(정점에서와 같이)라고하며 어느 정도 작동하지만 일단 문제가 커지면 Jacobi / SSOR과 동일한 성능 저하를 겪게됩니다. 멀티 그리드처럼.
Wolfgang Bangerth

멀티 그리드는 Helmholtz를 해결하는 데 효과적이지 않은데, 그 이유는 대부분 저에너지 진동 모드가 매끄 럽거나 거친 공간에서 표현하기 어렵 기 때문입니다. wave-ray 멀티 그리드에 대한 연구가 있었지만 공식화는 매우 기술적이며 현재로서는 성숙한 방법론이 아닙니다. 이러한 종류의 블록 분해를 사용하여 비대칭 시스템을 해결할 수도 있습니다. 변수의 선택 (예 : 원시적 대 보수적)에 따라, 전제 조건 내에서 차단 된 구조를 노출시키기위한 기초 변경이 필요할 수 있습니다.
Jed Brown

13

Jack은 전제 조건을 찾는 좋은 절차를 제공했습니다. "좋은 전제 조건은 무엇입니까?" 운영 정의는 다음과 같습니다.

엑스=미디엄11

그러나 이것이 프리 컨디셔너 설계에 대한 통찰력을 제공하지는 않습니다. 대부분의 전제 조건은 운영자 스펙트럼의 조작을 기반으로합니다. 일반적으로 고유 값이 군집화 되면 Krylov 방법이 더 빨리 수렴됩니다 ( 행렬 반복 또는 변형 함수 및 선형 대수 참조) . 때로는 전제 조건 결과가 몇 가지 고유 한 고유 값임을 증명할 수 있습니다 (예 : 무한 선형 시스템의 전제 조건에 대한 참고 사항) .

일반적인 전략은 Multigrid가 그 예입니다. SOR과 같은 이완적인 전제 조건 (여기서는 매끄럽게)은 오류에서 고주파수 성분을 제거합니다. 잔차가 굵은 격자에 투영되면 저주파수 오류 구성 요소가 고주파가되고 SOR에 의해 다시 공격받을 수 있습니다. 이 기본 전략은 AMG와 같이보다 복잡한 버전의 MG를 기반으로합니다. 맨 아래에서 솔버는 오류에서 가장 낮은 주파수를 정확하게 해석해야합니다.

또 다른 전략은 작은 부분 공간에서 방정식을 푸는 것과 관련이 있으며, 이는 Krylov 솔버가 수행하는 것과 정확히 같습니다. 가장 간단한 형태로 이것은 Kaczmarz 방법 또는 Additive Schwarz 방법 입니다. 여기서 도메인의 분해 는 도메인이 상당히 정확하게 해결되는 것으로 가정되기 때문에 고급 이론 변형 인 Domain Decomposition 은 인터페이스의 오류에 대한 스펙트럼 근사에 중점을 둡니다.


당신의 답변에 감사드립니다. 우리가 얼마나 멀리 가야하는지에 대한 경험은 실제로 사전 조건이 큰 시스템에서 작동한다는 것을 증명 합니다. 많은 시스템에서 직감, 휴리스틱 등에 의존해야한다는 것은 내 경험입니다.
Allan P. Engsig-Karup

직관이 너무 멀리 가고 있다고 생각합니다. 내가 실제로 보는 것은 간단한 시스템에 대한 증거입니다. 그런 다음 일부 수정은 매개 변수 나 특정 종류의 변형에 둔감해야한다는 주장입니다. 그런 다음이 실험을 통해 수치 실험을 통해이 변형 모델 외부에서도 작동합니다.
Matt Knepley
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.