Điều quan trọng là, trong định nghĩa bạn cung cấp, ma trận sống trong một trường hữu hạn, giả sử trong đó m là số nguyên tố. Điều này cho phép bạn sử dụng định lý Euler để tính toán các số mũ đôi xuất hiện trong ma trận trong thời gian .
Nếu không, có vẻ khó thậm chí tính toán các hệ số ma trận mà không tính hệ số .ZmmO ( log ( m n )aqemodma q i ≡ a q iO(log(mn)M(logm))m
aqi≡aqi(modφ(m))(modm)
m
Nếu là số nguyên tố hoặc có thể được xác định một cách hiệu quả, thì độ phức tạp trong trường hợp xấu nhất bị chi phối bởi số bước bạn cần cho phép nhân ma trận . Chẳng hạn, cách tiếp cận biểu mẫu bình thường của Smith mà tôi đã đề cập trong bài đăng của đối tác sẽ tính toán định thức theo thời gian nếu bạn sử dụng "chậm" thuật toán nhân . có thể được chọn là 2.373.O ( n ω ) O ( n ωmO(nω) * ωO(nωlog2mlog(mn))∗ω
Bạn bị chậm lại trong Moore vs Vandermonde vì bạn phải nhân đôi số mũ của các hệ số của ma trận. Khi bạn có thể nhân tố sự chậm lại này chỉ là đa bội trên . Nếu không, thuật toán được trình bày cung cấp cho bạn mức giảm Cook thành Mô-đun lũy thừa kép trên .m Z mmmZm
Lưu ý *: thuật toán nhân số nguyên nhanh hơn cho phép bạn thay thế bằng .log2mM(logmloglogm)
Cập nhật : về khả năng đạt được .O(nlogan)
Tôi không có câu trả lời chắc chắn cho điều này, nhưng tôi đã tìm thấy một số thông tin có thể thắt chặt tìm kiếm của bạn.
Các thuật toán cho ma trận có cấu trúc tính toán các đại lượng như các định thức trong thời gian được gọi là "siêu tốc" trong tài liệu. Tất cả các thuật toán "siêu tốc" được biết đến cho các ma trận có cấu trúc (Vandermonde, Toeplitz, Hankel) dường như dựa vào một đặc tính chung của ma trận này được gọi là "xếp hạng dịch chuyển" thấp. Trao đổi thảo luận về chương đầu tiên của cuốn sách này (các trang truy cập mở) hoặc trong bài viết này [ACM] , [PDF] .O(nlogan)
Từ những gì tôi đọc được, đưa ra một Ma trận Moore , nếu bạn có thể tìm thấy ma trận , sao cho ma trận mới (hoặc thay thế ) có cấu trúc như saum×nMABL(M)=AM−MBL(M)=M−AMB
L(M)=∑k=1rgkhTk
và thứ hạng nhỏ (không đổi hoặc bị giới hạn bởi ), sau đó bạn có thể áp dụng các kỹ thuật hiện có (kiểm tra chương 5 của cuốn sách, mở- truy cập các trang) vào tam giác và, do đó, tính toán , sử dụng . Ở trên, , biểu thị các vectơ. Nếu bạn không thể tìm thấy cuốn sách ở trên để đọc toàn bộ, bài viết này cũng có rất nhiều thông tin về các phương pháp này.r>0o(min{m,n})MdetMO(nlog2n)gkhk
Thật không may, tôi không thể tìm thấy cấu trúc xếp hạng dịch chuyển thấp cho ma trận Moore (Vandermonde có). Biến chứng chính ở đây dường như phát sinh từ bản chất "phi tuyến tính" của hàm mũ đôi. Nếu nó giúp, các trường hợp cho Vandermonde, Cauchy, Toeplitz, Hankel được giải quyết trong cuốn sách.