Các đường chéo cộng với các hệ tuyến tính đối xứng cố định có thể được giải quyết trong thời gian bậc hai sau khi tính toán trước không?


21

Có phương pháp O(n3+n2k) để giải k hệ thống tuyến tính có dạng trong đó là ma trận SPD cố định và là ma trận đường chéo dương? A(Di+A)xi=biADi

Ví dụ, nếu mỗi là vô hướng, nó cũng đủ để tính toán SVD của . Tuy nhiên, điều này bị phá vỡ cho tướng do thiếu tính giao hoán.DiAD

Cập nhật : Các câu trả lời cho đến nay là "không". Có ai có trực giác thú vị như tại sao không? Không có câu trả lời có nghĩa là không có cách nào không cần thiết để nén thông tin giữa hai nhà khai thác không hoạt động. Nó không phải là quá đáng ngạc nhiên, nhưng thật tuyệt khi hiểu nó tốt hơn.


SPD = bán dương xác định?
rcollyer

Có, mặc dù vấn đề về cơ bản là giống nhau mà không có SPD. Tôi đã thêm vào ràng buộc đó chỉ để đảm bảo rằng các hệ thống không bao giờ là số ít.
Geoffrey Irving

Câu trả lời:


19

Các câu trả lời tích cực gần nhất cho câu hỏi của bạn mà tôi có thể tìm thấy là về nhiễu loạn đường chéo thưa thớt (xem bên dưới).

Như đã nói, tôi không biết bất kỳ thuật toán nào cho trường hợp tổng quát, mặc dù có một khái quát về kỹ thuật mà bạn đã đề cập cho dịch chuyển vô hướng từ ma trận SPD sang tất cả các ma trận vuông:

Đưa ra bất kỳ ma trận vuông , tồn tại một Schur phân hủy Một = U T U H , nơi U là đơn nhất và T là trên hình tam giác, và A + σ tôi = U ( T + σ tôi ) U H cung cấp một phân hủy Schur của A + σ Tôi . Do đó, ý tưởng tiền mã hóa của bạn mở rộng cho tất cả các ma trận vuông thông qua thuật toán:AA=UTUHUTA+σI=U(T+σI)UHA+σI

  • Tính trong tối đa O ( n 3 ) làm việc.[U,T]=schur(A)O(n3)
  • Giải quyết từng qua x : = U ( T + σ tôi ) - 1 U H b trong O ( n 2 ) công việc (các đảo giữa là thay đơn giản sau).(A+σI)x=bx:=U(T+σI)1UHbO(n2)

Dòng lý luận này làm giảm cách tiếp cận mà bạn đã đề cập khi là SPD do quá trình phân tách Schur giảm xuống EVD cho các ma trận thông thường và EVD trùng với ma trận xác định dương tính của SVD.A

Phản hồi để cập nhật: Cho đến khi tôi có bằng chứng mà tôi không có, tôi từ chối tuyên bố rằng câu trả lời là "không". Tuy nhiên, tôi có thể đưa ra một số hiểu biết về lý do tại sao nó khó, cũng như một trường hợp khác trong đó câu trả lời là có.

Khó khăn cơ bản là, mặc dù bản cập nhật là đường chéo, nhưng nó vẫn ở cấp bậc đầy đủ, do đó, công cụ chính để cập nhật một công thức nghịch đảo, công thức Sherman-Morrison-Woodbury , dường như không có ích. Mặc dù trường hợp dịch chuyển vô hướng cũng có thứ hạng đầy đủ, nhưng đây là trường hợp cực kỳ đặc biệt vì nó bắt đầu với mọi ma trận, như bạn đã đề cập.

Như đã nói, nếu mỗi là thưa thớt, tức là mỗi D đều có O ( 1 ) khác 0 , thì công thức Sherman-Morrison-Woodbury mang lại một giải O ( n 2 ) với mỗi cặp { D , b } . Ví dụ: với một số khác ở đầu vào đường chéo thứ j , sao cho D = δ e j e H j :DO(1)O(n2){D,b}jD=δejejH

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

Trong đó vectơ cơ sở chuẩn thứ j .ejj

Một cập nhật khác: Tôi nên đề cập rằng tôi đã thử dùng tiền tố mà @GeoffOxberry đã đề xuất trên một vài ma trận SPD 1000 × 1000 ngẫu nhiên bằng PCG và, có lẽ không ngạc nhiên, nó dường như làm giảm đáng kể số lần lặp khi | | D | | 2 / | | Một | | 2 là nhỏ, nhưng không phải khi nó là O ( 1 ) hoặc lớn hơn.A11000×1000||D||2/||A||2O(1)


12

Nếu đường chéo trội cho mỗi i , sau đó công việc gần đây của Koutis, Miller, và Peng (xem trang web Koutis' cho công việc trên ma trận đường chéo chiếm ưu thế đối xứng) có thể được sử dụng để giải quyết mỗi hệ thống trong O ( n 2 log ( n ) ) thời gian (thực tế là O ( m log ( n ) ) thời gian, trong đó m là số lượng mục nhập khác không tối đa trong ( D i + A ) trên tất cả(Di+A)iO(n2log(n))O(mlog(n))m(Di+A) , vì vậy bạn cũng có thể tận dụng lợi thế của sự thưa thớt). Sau đó, tổng thời gian chạy sẽ là O ( n 2 log ( n ) k ) , tốt hơnphương pháp giải O ( n 3 k ) trong mỗi hệ thống sử dụng đại số tuyến tính dày đặc, nhưng hơi tệ hơn thời gian chạy bậc hai đang yêu cầuiO(n2log(n)k)O(n3k)

Độ thưa thớt đáng kể trong đối với tất cả những gì tôi có thể được khai thác bởi những người giải quyết thưa thớt để mang lại thuật toán O ( n 2 k ) , nhưng tôi đoán rằng nếu bạn có độ thưa đáng kể, thì bạn sẽ đề cập đến nó.(Di+A)iO(n2k)

Bạn cũng có thể sử dụng làm điều kiện tiên quyết để giải quyết từng hệ thống bằng các phương pháp lặp và xem cách thức hoạt động.A1

Phản hồi để cập nhật : @JackPaulson đưa ra một điểm tuyệt vời từ quan điểm của đại số tuyến tính và thuật toán số. Tôi sẽ tập trung vào các đối số phức tạp tính toán thay thế.

Độ phức tạp tính toán của giải pháp hệ thống tuyến tính và độ phức tạp tính toán của phép nhân ma trận về cơ bản là bằng nhau. (Xem Lý thuyết độ phức tạp đại số .) Nếu bạn có thể tìm thấy thuật toán có thể nén thông tin giữa hai toán tử không đi lại (bỏ qua phần nửa cực dương) và giải quyết trực tiếp bộ sưu tập các hệ thống mà bạn đề xuất trong thời gian bậc hai trong , thì đó có khả năng là bạn có thể sử dụng một thuật toán như vậy để suy luận về phép nhân ma trận nhanh hơn. Thật khó để thấy làm thế nào cấu trúc semidefinite tích cực có thể được sử dụng trong một phương pháp trực tiếp dày đặc cho các hệ thống tuyến tính để giảm độ phức tạp tính toán của nó.n

Giống như @JackPaulson, tôi không muốn nói rằng câu trả lời là "không" mà không có bằng chứng, nhưng với các kết nối ở trên, vấn đề rất khó khăn và được nghiên cứu hiện nay quan tâm. Điều tốt nhất bạn có thể làm từ quan điểm tiệm cận mà không cần sử dụng cấu trúc đặc biệt là một cải tiến trên thuật toán Coppersmith và Winograd, mang lại thuật toán , trong đó α 2,375 . Thuật toán đó sẽ khó mã hóa và có thể sẽ chậm đối với các ma trận nhỏ, bởi vì yếu tố không đổi trước ước tính tiệm cận có lẽ rất lớn so với loại bỏ Gaussian.O(nαk)α2.375


3
Tôi vẫn chưa thấy một tuyên bố cụ thể về nơi có thể là sự giao nhau, nhưng một số nguồn có uy tín đã tuyên bố rằng (vấn đề triển khai sang một bên), Coppersmith-Winograd không thể đánh bại các phương pháp tiêu chuẩn cho kích thước ma trận có thể phù hợp với bộ nhớ trong tương lai gần (một vài thập kỷ). Cho rằng điểm chuẩn Linpack mất hơn một ngày để chạy trên các máy hàng đầu hiện tại, có vẻ như Coppersmith-Winograd sẽ không bao giờ được sử dụng trong thực tế. Strassen thực sự thiết thực cho các vấn đề lớn, mặc dù nó có phần kém ổn định hơn.
Jed Brown

Điều đó không làm tôi ngạc nhiên. +1 cho các chi tiết thực hiện.
Geoff Oxberry

6

Một mở rộng Taylor thứ tự đầu tiên có thể được sử dụng để cải thiện sự hội tụ trên độ trễ đơn giản. Giả sử chúng tôi có một điều kiện tiên quyết (hoặc các yếu tố để giải quyết trực tiếp) có sẵn choMột+Dvà chúng tôi muốn sử dụng nó cho điều kiện tiên quyết Một. Chúng ta có thể tính toán

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

where the Taylor expansion was used to write the last line. Application of this preconditioner requires two solves with A+D.

It works fairly well when the preconditioner is shifted away from 0 by a similar or larger amount than the operator we are trying to solve with (e.g. D0). If the shift in the preconditioner is smaller (Dminσ(A)), the preconditioned operator becomes indefinite.

If the shift in the preconditioner is much larger than in the operator, this method tends to produce a condition number about half that of preconditioning by the lagged operator (in the random tests I ran, it could be better or worse for a specific class of matrices). That factor of 2 in condition number gives a factor of 2 in iteration count. If the iteration cost is dominated by the solves with A+D, then this is not a sufficient factor to justify the first order Taylor expansion. If matrix application is proportionately expensive (e.g. you only have an inexpensive-to-apply preconditioner for A+D), then this first order method may make sense.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.