Độ phức tạp của sức mạnh ma trận tính toán


14

Tôi đang quan tâm đến việc tính toán n 'thứ sức mạnh của một ma trận . Giả sử chúng ta có một thuật toán để nhân ma trận chạy trong thời gian . Sau đó, người ta có thể dễ dàng tính toán trong thời gian . Có thể giải quyết vấn đề này trong thời gian phức tạp ít hơn?n×nAO(M(n))AnO(M(n)log(n))

Nói chung, các mục ma trận có thể từ một nửa cung nhưng bạn có thể giả định cấu trúc bổ sung nếu nó giúp.

Lưu ý: Tôi hiểu rằng trong tính toán chung trong thời gian sẽ cung cấp thuật toán cho phép lũy thừa. Nhưng, một số vấn đề thú vị làm giảm trường hợp đặc biệt của lũy thừa ma trận trong đó m = và tôi không thể chứng minh điều tương tự về vấn đề đơn giản này.Amo(M(n)log(m))o(logm)O(n)


các mục của ma trận là gì? Số nguyên?
Kaveh

1
Nói chung, các mục có thể là từ một nửa, nhưng bạn có thể giả định cấu trúc bổ sung nếu nó giúp.
Shitikanth

Tôi không thể giảm từ đa cấp sang bình phương từ phương pháp được đề xuất ở trên (tức là sử dụng ). Tuy nhiên, sử dụng ( 0 A B 0 ) 2 hoạt động. Tuy nhiên, điều này chỉ đưa ra một Ω ( M ( n ) ) trên máy tính Một n . (A±B)2(0AB0)2Ω(M(n))An
Shitikanth

Câu trả lời:


10

Nếu ma trận được những đường chéo sau đó lấy thứ quyền lực có thể được thực hiện trong thời gian O ( D ( n ) + n log n ) nơi D ( n ) là thời gian để diagonalize Một .n

Ôi(D(n)+nđăng nhậpn)
D(n)Một

Chỉ cần hoàn thành các chi tiết, nếu với đường chéo D , thì A n = ( P - 1 D P ) n = P - 1 D n PMột= =P-1DPD

Mộtn= =(P-1DP)n= =P-1DnP

có thể được tính bằng cách chỉ cần lấy từng phần tử của đường chéo (mỗi giá trị riêng của A ) cho lũy thừa thứ n .DnMộtn


6
Ngay cả khi ma trận có thể chéo, các thuật toán được biết đến nhiều nhất cho quá trình xuất tinh sẽ mất thời gian . Sử dụng thuật toán Coppersmith-Winograd, chúng tôi đã có thuật toán O ( n 2.3727 log ( m ) ) để tính toán A m . Ôi(n3)Ôi(n2,3727đăng nhập(m))Mộtm
Shitikanth

1
(1) Thời gian bị ràng buộc mà bạn trích dẫn không phải bởi Coppersmith-Winograd (như bạn có thể biết). (2) Tất cả các thuật toán của hình thức đó chỉ hoạt động cho các vòng; chúng không hoạt động cho các semirings chung (như bạn cho phép trong câu hỏi của bạn).
Ryan Williams

5

Một lối thoát tốt là Phân tích giá trị số ít SVD . Với một ma trận thực Một số cấp bậc đầy đủ , SVD chia tách nó ra như một = U Σ U T nơi Σ là một ma trận đường chéo, trong thời gian O ( n 3 ) . Theo các thuộc tính của SVD, A m = U Σ m U T , do đó chỉ cần ma trận đường chéo cần được lũy thừa và điều này có thể được thực hiện trong O ( n log m )n×nMộtMột= =BạnΣBạnTΣÔi(n3)Mộtm= =BạnΣmBạnTÔi(nđăng nhậpm)thời gian. Thực hiện chính thức nhân mất O ( n 2,3727 ) , vì vậy chúng tôi có hoàn toàn O ( n 3 + n log m ) hoạt động. Bạn×Σm×BạnTÔi(n2,3727)Ôi(n3+nđăng nhậpm)

Ôi(n2,3727+nđăng nhậpm)o(M(n)đăng nhập(m))o(đăng nhậpn)


Ôi(n2,3727)Ôi(n2,3727đăng nhập(m))Mộtmm= =Ôi(n)

1
SVD không cho nói chung - ma trận ngay phía bên tay là V U Một= =BạnΣBạnVBạn
Suresh

1
Đó là một chút sai lầm khi có cho sức mạnh, vì vậy tôi sẽ sử dụng m . Nếu n = 1 , phải mất thời gian đăng nhập O ( M ( 1 ) m để tìm A m , tương đương với nhân số nguyênnmn= =1Ôi(M(1)đăng nhậpmMộtm
PKG

2
đăng nhậpm

1
Điều này không rõ ràng từ câu hỏi của bạn, như đã nêu.
PKG
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.