Định nghĩa của ma trận nhân số mũ


15

Thông tục, định nghĩa của ma trận-nhân mũ ω là giá trị nhỏ nhất mà có một tiếng nω thuật toán ma trận-nhân. Điều này không được chấp nhận như một định nghĩa toán học chính thức, vì vậy tôi đoán định nghĩa kỹ thuật là một cái gì đó giống như cực đại trên tất cả các t sao cho tồn tại thuật toán nhân ma trận trong nt .

Trong trường hợp này, chúng ta không thể nói rằng có một thuật toán cho ma trận-nhân trong nω hoặc thậm chí nω+o(1) , chỉ đơn thuần là cho tất cả ϵ>0 tồn tại một thuật toán trong nω+ϵ . Thông thường, tuy nhiên, giấy tờ và kết quả mà sử dụng ma trận-nhân sẽ báo cáo chi phí của họ như chỉ đơn giản là O(nω) .

Có một số định nghĩa thay thế của ω cho phép sử dụng này? Có kết quả nào đảm bảo rằng thuật toán thời gian nω hoặc nω+o(1) phải tồn tại không? Hoặc là việc sử dụng O(nω) chỉ đơn giản là cẩu thả?


2
Nếu bạn chỉ muốn sử dụng phép nhân ma trận như một hộp đen, cách dễ nhất là để nói "Hãy được như vậy mà chúng ta có thể nhân n × n -matrices với O ( n ω ) phép tính số học". Tất nhiên, ω không phải là số mũ của nhân ma trận sau đó, nhưng có thể tùy tiện gần. Nếu bạn muốn ghi số mũ của chạy cuối cùng của bạn trong đại diện thập phân, hiện tại bạn phải nào tròn, vì tất cả các ước tính tầm thường cho ω mà tôi biết là những con số hoặc vô lý hoặc chuỗi vô hạn. ωn×nO(nω)ωω
Markus Bläser

2
thường được định nghĩa là infimum khắp real k cho n sẽ như rằng có một O ( n k ) thuật toán thời điểm đó nhân lên hai n × n ma trận (trong đó thời điểm đó là số bổ sung, nhân, chia trong trường bên dưới). Điều này cũng có nghĩa rằng về mặt kỹ thuật, chúng tôi luôn luôn nên viết n ω + o ( 1 ) nhưng mà được lộn xộn, vì vậy khi bạn nhìn thấy O ( n ω ) bạn nên suy nghĩ O ( M ( nωknO(nk)n×nnω+o(1)O(nω) trong đó M ( n ) là thời gian chạy của thuật toán nhân ma trận. O(M(n))M(n)
virgi

Câu trả lời:


20

Ma trận nhân số mũ là không đảm bảo rằng có một thuật toán chạy trong thời gian O ( n ω ) , nhưng chỉ rằng đối với mỗi ε > 0 , có một thuật toán chạy trong O ( n ω + ε ) . Trên thực tế nếu bạn có thể tìm thấy một thuật toán chạy trong thời gian O ( n 2 p o l y l o g ( n ) ) , sau đó chương trình này mà ω = 2 .ωO(nω)ϵ>0O(nω+ϵ)O(n2polylog(n))ω=2

Bạn có thể tìm thấy định nghĩa chính thức trong cuốn sách Lý thuyết phức tạp đại số của Peter Bürgisser, Michael Clausen, Amin Shokrollahi.


7

Một bình luận nhỏ quá dài để trở thành một bình luận:

Đôi khi bạn gặp rắc rối mà có một thuật toán với thời gian chạy cho mỗi ε > 0 , có một thuật toán với thời gian chạy n k + o ( 1 ) .O(nk+ϵ)ϵ>0nk+o(1)

Ví dụ, đôi khi bạn sẽ có được các thuật toán mà đi như đối với một số chức năng phát triển nhanh f (như 2 2 1 / ε ). Nếu bạn thiết lập f ( 1 / ε ) để (nói) log n , sau đó ε sẽ o (1). Trong ví dụ với f ( 1 / ε )2 2 1 / ε , bạn có thể chọn 1 / εf(1/ϵ)nk+ϵf221/ϵf(1/ϵ)lognϵf(1/ϵ)221/ϵ1/ϵ , mang đến cho ε = 1 / ( log log log n ) , đó là o (1). Vì vậy, thời gian chạy cuối cùng của thuật toán này sẽ là n k + o ( 1 ) , vì log n cũng là n o ( 1 ) .logloglognϵ=1/(logloglogn)nk+o(1)lognno(1)


Tôi tưởng tượng rằng thuật toán Coppersmith-Winograd thuộc loại này?
David Harris

2
@DavidHarris: Đừng biết về điều đó. Có lẽ ai đó hiểu thuật toán có thể làm sáng tỏ điều đó. Tôi chỉ muốn nói rằng thường không phải là xấu vì nó trông. O(nk+ϵ)
Robin Kothari

5

Người ta biết rõ kết quả của Coppersmith và Winograd rằng thời gian không thể được nhận ra bằng bất kỳ thuật toán đơn lẻ nào. Nhưng tôi đã đọc được rằng họ giới hạn các thuật toán dựa trên danh tính song tuyến giống Strassen, vì vậy tôi không biết chắc chắn vì bài báo đứng sau một bức tường.O(nω)


3

Tôi không đồng ý với tuyên bố của bạn trong câu hỏi rằng không được xác định rõ bởi "giá trị nhỏ nhất mà có một tiếng n ω thuật toán ma trận-nhân." Khi mọi người đang sử dụng liên tục này, đó là vì thuật toán của họ dựa trên một phép nhân ma trận, và bởi một phức tạp n ω , họ có nghĩa là "sự phức tạp tối ưu của thuật toán của chúng tôi được đưa ra bởi các thuật toán tối ưu cho phép nhân ma trận."ωnωnω

Tôi không nói rằng nó không phải là có thể xác định khác (ví dụ như nói rằng ω là sự phức tạp có thể đạt được tốt nhất).ωω

Btw, giới hạn trên được biết đến nhiều nhất cho phép nhân ma trận vừa được cải thiện thành nếu tôi không nhầm. 2.3737


3
Tôi không thấy kiến ​​thức của con người có thể là một phần của định nghĩa toán học
David Harris

2
Kinh nghiệm gần đây cho thấy việc định lượng trên tất cả các thuật toán dễ dàng hơn nhiều so với tất cả các thuật toán hiện tại mà loài người biết đến ;-)
Markus Bläser
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.