Sự phức tạp của việc tìm kiếm sự xuất hiện của ma trận


40

Câu hỏi của tôi rất đơn giản:

Các trường hợp xấu nhất thời gian chạy của thuật toán nổi tiếng nhất để tính toán một là gì eigendecomposition của một ma trận?n×n

Liệu eigendecysis giảm xuống nhân ma trận hay là thuật toán được biết đến nhiều nhất (thông qua SVD ) trong trường hợp xấu nhất?O(n3)

Xin lưu ý rằng tôi đang yêu cầu phân tích trường hợp xấu nhất (chỉ tính theo ), không áp dụng cho các giới hạn có hằng số phụ thuộc vấn đề như số điều kiện.n

EDIT : Với một số các câu trả lời dưới đây, hãy để tôi điều chỉnh câu hỏi: Tôi muốn được hạnh phúc với một -approximation. Phép tính gần đúng có thể là cấp số nhân, phụ gia, nhập cảnh hoặc bất kỳ định nghĩa hợp lý nào bạn muốn. Tôi quan tâm nếu có một thuật toán đã biết có sự phụ thuộc tốt hơn vào n so với một thuật toán như O ( p o l y ( 1 / ϵ ) n 3 ) ?ϵnO(poly(1/ϵ)n3)

EDIT 2 : Xem câu hỏi liên quan này trên ma trận đối xứng .


Bạn đã xem xét việc giảm từ nghịch đảo ma trận sang nhân ma trận trong sách giáo khoa thuật toán CLRS chưa? Tôi sẽ bắt đầu bằng cách xem xét những ý tưởng đó để xem liệu chúng có mở rộng đến phân rã bản địa hay không.
Warren Schudy

Đúng - họ dường như mở rộng để tìm phân tách LU, nhưng tôi không biết làm thế nào để nó hoạt động cho phân rã bản địa.
Lev Reyzin

Bạn có biết nếu là thuật toán được biết đến nhiều nhất để tính toán SVD không? O(n3)
Robin Kothari

1
O(min(mn2,m2n))n×n

Ổn thỏa. Tôi cũng không biết nhiều về lĩnh vực này, nhưng có lẽ tính toán SVD có thể được giảm xuống thành eigendecro, vì nếu bạn có thể eigendecompose AA * và A * A, bạn sẽ nhận được ma trận bên phải và bên trái cho SVD.
Robin Kothari

Câu trả lời:


18

Ryan đã trả lời một câu hỏi tương tự trên mathoverflow. Đây là liên kết: mathoverflow-answer

Về cơ bản, bạn có thể giảm tính toán eigenvalue thành phép nhân ma trận bằng cách tính toán một định thức tượng trưng. Điều này cho thời gian chạy O ( ) để lấy bit của giá trị riêng; thời gian chạy tốt nhất được biết đến hiện nay là O ( ) cho một xấp xỉ trong vòng .nω+1mmn3+n2log2nlogb2b

Tài liệu tham khảo của Ryan là `` Victor Y. Pan, Zhao Q. Chen: Sự phức tạp của ma trận bản địa. STOC 1999: 507-516 ''.

(Tôi tin rằng cũng có một cuộc thảo luận về mối quan hệ giữa sự phức tạp của giá trị bản địa và phép nhân ma trận trong cuốn sách cũ của Aho, Hopcroft và Ullman `` Thiết kế và phân tích thuật toán máy tính '', tuy nhiên, tôi không có cuốn sách này phía trước tôi và tôi không thể cung cấp cho bạn số trang chính xác.)


13

Tìm giá trị bản địa vốn dĩ là một quá trình lặp lại: Tìm giá trị bản địa tương đương với việc tìm ra gốc của một đa thức. Hơn nữa, định lý AbelTHER Ruffini nói rằng, nói chung, bạn không thể biểu thị các gốc của một đa thức tùy ý ở dạng đóng đơn giản (nghĩa là với các gốc như công thức bậc hai). Do đó, bạn không thể hy vọng tính toán giá trị bản địa "chính xác".

Điều này có nghĩa là thuật toán phân rã phổ phải gần đúng. Thời gian chạy của bất kỳ thuật toán chung nào phải phụ thuộc vào độ chính xác mong muốn; nó không thể chỉ phụ thuộc vào kích thước.

Tôi không phải là một chuyên gia về điều này. Tôi đoán rằng một sự phụ thuộc hình khối vào n là khá tốt. Các thuật toán mà tôi đã thấy đều sử dụng phép nhân vectơ ma trận, thay vào đó là phép nhân ma trận. Vì vậy, tôi sẽ hơi ngạc nhiên nếu tất cả sôi sục lên phép nhân ma trận.

Hãy xem http://en.wikipedia.org/wiki/List_of_numerical_analysis_topics#Eigenvalue_alerskyms


Cảm ơn câu trả lời của bạn - tôi sẽ cần một chút thời gian để tiêu hóa nó! Nhưng nếu người ta sử dụng phép nhân vectơ ma trận, thì sự phụ thuộc vào n có lẽ tốt hơn n ^ 3.
Lev Reyzin

6

Tôi sẽ chỉ đưa ra một câu trả lời một phần liên quan đến giá trị riêng của ma trận.

Như đã đề cập trước đây, có nhiều phương pháp lặp để tìm giá trị riêng của ma trận (ví dụ: lặp công suất), nhưng nói chung, việc tìm giá trị riêng giảm đi để tìm ra gốc của đa thức đặc trưng. Việc tìm đa thức đặc trưng có thể được thực hiện trong , trong đó là chi phí nhân bit và là kích thước bit của mục nhập tối đa, bởi a tính toán xác định biểu tượng bằng thuật toán Bareiss . Xem cuốn sách của Yap về "Nguyên tắc cơ bản của đại số thuật toán" , cụ thể, Chap. 10, "Hệ thống tuyến tính" .O(n3MB[n(logn+L)])MB(s)sL

Một khi đa thức đặc trưng được tìm thấy, người ta có thể tìm thấy các gốc đến bất kỳ mức độ chính xác nào mong muốn bằng cách sử dụng các khoảng cách ly. Xem cuốn sách của Yap, Chap. 6 "Rễ đa thức" để biết chi tiết. Tôi quên thời gian chạy chính xác nhưng đa thức của nó theo mức độ của đa thức đặc trưng và các chữ số chính xác mong muốn.

Tôi nghi ngờ rằng việc tính toán các hàm riêng cho đến mức độ chính xác nào cũng là đa thức nhưng tôi không thấy một thuật toán chuyển tiếp thẳng. Tất nhiên, có các túi thủ thuật tiêu chuẩn đã được đề cập trước đây, nhưng theo tôi biết, không ai trong số họ đảm bảo thời gian chạy đa thức cho độ chính xác mong muốn.


thú vị, nhưng điều này dường như còn tồi tệ hơn n ^ 3. chúng ta có biết điều này là tốt nhất có thể?
Lev Reyzin

Thời gian chạy trên các thuật toán có tính chất này được gắn với độ phức tạp của Phép nhân ma trận, đó là về O (n ^ 3). Tôi biết về thuật toán của Strassen nhưng nếu bạn không bỏ qua các vấn đề ổn định số, thì tôi tin rằng bạn sẽ lấy lại O (n ^ 3) để nhân ma trận. Các phương pháp lặp có thể hội tụ nhanh hơn trong trường hợp "trung bình", nhưng tôi tin rằng, nói chung, về O (n ^ 3) là cách tốt nhất bạn có thể làm.
dùng834

Vì vậy, bạn đang nói nếu tôi không quan tâm đến các vấn đề ổn định số, chúng ta có thể chuyển nó xuống O (n ^ 2.376) không?
Lev Reyzin

5

Bạn có thể kiểm tra bài báo mới của Commandur và Kale, đưa ra thuật toán kết hợp cho Max-Cut. Dường như (từ một cách đọc chữ thảo) rằng thuật toán của họ dựa trên việc kết hợp tìm ra hàm riêng tương ứng với giá trị riêng tối đa, và sau đó sử dụng thuật toán của Luca Trevisan khi họ có trình xác định này.

Có vẻ như họ đang sử dụng một cách tiếp cận khác với thuật toán của Lanczos để tìm một trình xác định như vậy, vì vậy nó có thể được quan tâm. Tôi không chắc sự phức tạp được tuyên bố của phương pháp của họ để tìm trình phát sinh, nhưng nó có thể đáng để xem xét. Ngoài ra, vì đó là tỷ lệ gần đúng và không phải là thời gian mà họ quan tâm, bất kể giới hạn thời gian nào họ đưa ra có thể không tối ưu.


1

Đây là một câu hỏi cũ nhưng một số tài liệu quan trọng dường như đã bị bỏ qua.

Có những thuật toán mà chúng tôi có hỗ trợ lý thuyết mạnh mẽ hơn. Ví dụ: có các lần lặp dựa trên hàm dấu ma trận, xem ví dụ "Đại số tuyến tính nhanh là ổn định" của Demmel, Dumitriu và Holtz . Trong bài báo đó, người ta có thể giải quyết vấn đề eigenvalue kịp thời , trong đó là số mũ của phép nhân ma trận và là bất kỳ số nào .(Oω+η)ωη>0

Vâng, có bài báo Pan + Chen + Zheng gợi ý lắp ráp đa thức đặc trưng và tính toán trong BigFloat vì cuối cùng bạn mất rất nhiều bit chính xác, nhưng không nhiều người sẽ coi đây là một cách tiếp cận thực tế.

Tôi cũng đề cập rằng thuật toán được sử dụng rộng rãi nhất, phép lặp QR QR, không có bằng chứng về sự hội tụ cho các ma trận chung; cuốn sách của Kressner thảo luận về một số mẫu.


0

Vâng, khá nhiều tất cả các đại số tuyến tính số có thể được giảm xuống nhân ma trận, mặc dù, như mọi khi, sự ổn định số là một vấn đề. Ngoài ra, với các vấn đề như eigendecro, bạn nên hài lòng với một xấp xỉ vì giải pháp có thể không hợp lý. Kiểm tra cuốn sách Tính toán đa thức và ma trận của Bini và Pan.

Đây là một tài liệu tham khảo khác - Đại số tuyến tính nhanh là ổn định http://www.netlib.org/lapack/lawnspdf/lawn186.pdf


3
Cảm ơn con trỏ, nhưng thực hiện tìm kiếm thông qua cuốn sách trên google sách, tôi không thể tìm thấy sự giảm xuống nhân ma trận. Bạn có một con trỏ đến một số tham chiếu hoặc thuật toán cụ thể? Và các thuật toán SVD của họ dường như phụ thuộc vào số điều kiện của ma trận, đây không phải là một phân tích trường hợp xấu nhất. Về các vấn đề ổn định số, v.v., hãy giả sử trường hợp lý tưởng hóa, trong đó tất cả các phép nhân và phép chia mất thời gian đơn vị và đưa ra câu trả lời chính xác.
Lev Reyzin
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.