토마스 알고리즘이 대칭 적으로 우세한 희소 3 각형 선형 시스템을 해결하는 가장 빠른 방법입니까?


13

Thomas 알고리즘이 알고리즘 복잡성 (LAPACK과 같은 구현 패키지를 찾지 않음) 측면에서 대칭 대각선으로 우세한 삼각형 시스템을 해결하는 가장 빠른 방법 (아마도?)인지 궁금합니다. Thomas 알고리즘과 멀티 그리드 둘 다 복잡도이지만 멀티 그리드의 상수 요소가 적다는 것을 알고 있습니까? 멀티 그리드가 더 빠를 수는 있지만 긍정적이지 않습니다.영형()

참고 : 행렬이 매우 큰 경우를 고려하고 있습니다. 직접적이거나 반복적 인 방법이 허용됩니다.

답변:


12

정확한 작업 수 측면에서 반복 방법 (멀티 그리드)을 직접 / 정확한 방법 (토마)과 비교하는 것은 실제로 의미가 없다고 생각합니다. IIRC, Thomas 작동 수는 모든 3 각형 시스템에 대해 입니다 . 멀티 그리드가 선형 솔루션을 갖는 사소한 경우라고 생각할 수있는 유일한 시간이며, 심지어 각 레벨에서 잔차를 평가하는 비용은 Thomas의 비용과 비슷합니다.8

멀티 그리드 의 유용성은 희소 행렬에 일반적이며 3 각형 시스템에 국한되지 않는다는 사실에 있습니다.영형()


감사. 반복적 인 방법이 정확하지 않다는 것을 알고 있습니다. 나는 매우 작은 허용 오차 (예 : 10 ^ -15)를 지정하고 비교 목적으로 "정확한"것으로 취급했습니다.
제임스

@ user2697246 글쎄, 당신은 "아마도"빠른에 대해 물었다. 멀티 그리드 (또는 반복 체계)에 대한 정확한 수렴 률은 항상 솔루션 자체와 시작 추측에 따라 달라집니다. 선형 솔루션은 한 단계만으로 효과적으로 효과적으로 해결되지만 진동이 많은 것은 더 많은 작업이 필요합니다. Thomas는 모든 경우에 대해 정확하고 고정 된 운영 횟수를 가지고 있습니다. 실제로, 당신은 사소한 경우를 위해 삼각형 시스템을 해결하는 것에 대해 (시리얼하게) Thomas를 이길 수 없습니다.
Aurelius

@Aurelius Thomas 알고리즘을 병렬화 할 수 있습니까? 그렇지 않다면 이것이 멀티 그리드의 주요 장점입니다!
Nick Alger

3
@NickAlger 아니오, Thomas 알고리즘은 엄격하게 직렬이며, 병렬화는 멀티 그리드의 큰 이점입니다 (삼각형 시스템의 특정 경우 통신 지연이 사용자를 죽일 것으로 예상되지만). 인 환원 (PCR) 에 의해 병렬, N I는 GPU에서 성공적으로 사용 하였다. 영형(영형)
Aurelius

한 가지 수정으로, Thomas 알고리즘은 9N이 아닌 8N 연산이 필요합니다. 또한 "멀티 그리드 ... 선형 솔루션을 갖는 것"은 무엇을 의미합니까? 여기서 고려중인 모든 시스템은 선형입니다.
Doug Lipinski

11

짧은 대답은 Thomas 알고리즘이 거의 모든 경우에 대해 반복 체계보다 빠르다는 것입니다. Gauss-Seidel과 같은 매우 간단한 반복 체계의 단일 반복을 적용하는 것은 예외 일 수 있지만 이는 수용 가능한 솔루션을 제공 할 가능성이 거의 없습니다. 또한 이것은 병렬 처리 문제를 무시합니다.

영형()영형()

5222


"멀티 그리드는 O (n)이지만 상수가 매우 크기 때문에 3 대각 행렬의 경우 멀티 그리드가 특히 좋지 않습니다." 나는 이것도 생각하지만, 인터넷 검색은 Trottenburg의 Multigrid 책에서 0.1-0.2의 상수를 주장하면서 증거없이 진술했다. 나는 그것을 믿지 않는다고 생각합니다.
Aurelius

1
@Aurelius 재미있는. 3 각형 행렬에 3N 엔트리가 있기 때문에 일반적인 경우에는 분명히 불가능합니다. 비용이 ~ 0.1 * N이면 대부분의 항목을 조작하지 않아도됩니다.
Doug Lipinski

예, 우리는 같은 페이지에 있습니다. 3 포인트 스텐실을 간단히 평가하려면 3N 작업이 필요합니다. 나는 단지 감추고 있었기 때문에 어쩌면 나는 그 진술을 완전히 잘못 해석했을 수도 있지만 Google 도서 발췌 부분에서 직접 볼 수 있습니다.
Aurelius

4
전체 인용문 (21 페이지)은 "실제적인 의미에서의 효율성은이 O (N) 문에서 비례 상수가 작거나 중간 정도임을 의미합니다. 실제로 다중 그리드의 경우입니다. 잘 설계되면 h 독립 수렴 요인이 매우 작게 (0.1-0.2 이하의 범위 내에서) 반복 단계 당 미지의 동작 횟수도 적다. " 0.1-0.2는 멀티 그리드의 각주기에 대한 잔류 감소를 나타냅니다. O (N)의 상수는 사이클 당 1.5-2.0x 정도의 행렬이됩니다 (총 12 개 또는 2 개의 주기로).
Godric Seer

아, @GodricSeer에게 감사드립니다.
Aurelius

0

단일 코어에서도 멀티 그리드 루프는 옵티 마이저로 벡터화 할 수 있습니다. 따라서 운영 횟수가 도움이 될 수 있지만 직렬 세계에서도 프로세서가 벡터 병렬 처리를 수행하므로 솔루션 개발 시간이 비용 분석에서 예측 한 것과 다를 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.