Bằng chứng cho thấy nhân ma trận không có trong thời gian


39

Người ta thường tin rằng với tất cả , có thể nhân hai ma trận trong . Một số thảo luận ở đây .ϵ>0n×nO(n2+ϵ)

Tôi đã hỏi một số người quen thuộc với nghiên cứu này liệu họ có nghĩ rằng có độc lập với sao cho tồn tại thuật toán để nhân ma trận và họ dường như có quá nhiều trực giác rằng câu trả lời là "không" nhưng không thể giải thích tại sao. Đó là, họ tin rằng chúng ta có thể làm điều đó trong thời gian , nhưng không phải là thời gian .k>0nO(n2logkn)O(n2.001)O(n2log100n)

Những lý do nào để tin rằng không có thuật toán tại một cố định ?O(n2logkn)k>0

Câu trả lời:


29

Có một thuật toán để nhân một ma trận với ma trận trong . Nhận dạng chính được sử dụng cho nó đến từ bài viết "Nhân nhanh các ma trận hình chữ nhật" của Coppersmith, nhưng lời giải thích cho lý do tại sao nó dẫn đến thay vì nằm trong phần phụ lục của bài báo của Williams , "Các thuật toán mới và giới hạn thấp hơn cho các mạch có cổng ngưỡng tuyến tính".N×N0.172N0.172×NN2polylog(N)N2polylog(N)N2+ϵ

Điều này chỉ hoạt động vì danh tính của Coppersmith có một số cấu trúc bổ sung mà bạn có thể tận dụng và các thuật toán MM gần đây dường như không có cấu trúc này. Điều đó nói rằng, tôi không chắc tại sao người ta không thể hy vọng mở rộng cách tiếp cận này đến phép nhân ma trậnN×N×N


11

Chà, có một điều là tôi nghĩ rằng tất cả các công trình mà chúng ta biết - và thậm chí cả gia đình của các công trình tiềm năng mà mọi người đã đề xuất (ví dụ: phương pháp Cohn-Umans, khái quát hóa của Coppersmith-Winograd) - sẽ "đơn giản" tạo ra một gia đình thuật toán chạy trong thời gian . Vì vậy, để có một thuật toán duy nhất chạy trong , nó sẽ không chỉ điên rồ tốt hơn so với các phương pháp hiện tại, mà còn phải trông thực sự khác biệt.AϵO(n2+ϵ)O(n2poly(logn))

Hãy cẩn thận: Tôi nghĩ. Tôi chưa bao giờ thực sự suy nghĩ quá nhiều về việc một người sẽ phải sửa đổi / thêm bao nhiêu vào các cách tiếp cận hiện có để họ có thể tạo ra một thuật toán duy nhất chạy trong thời gian .O(n2poly(logn))


3
Tôi không chắc chắn làm thế nào để một gia đình không dẫn đến O (n ^ 2poly (log n)) một cách hợp lý vì nếu người ta có thể mô tả gia đình đủ tốt thì người ta có thể chọn nhiều thành viên gia đình hiệu quả hơn cho n lớn hơn. Lý do duy nhất sau đó là điều này không hợp lý O (n ^ 2poly (log N)) là các hằng số liên quan có thể sẽ rất lớn, nhưng rõ ràng đó không phải là trường hợp cần thiết.
JoshuaZ

1
@JoshuaZ: Về nguyên tắc thì không; trong thực tế, mỗi thành viên trong gia đình phát sinh từ các cách tiếp cận này tạo ra một thuật toán với thời gian chạy , và ý tưởng của hầu hết các cách tiếp cận chỉ đơn giản là bạn có một gia đình sao cho , có một thành viên trong gia đình dẫn đến một thuật toán có thời gian chạy . ε > 0 O ( n 2 + ε )O(n2+x)ε>0O(n2+ε)
Joshua Grochow

1
@JoshuaZ Tôi cho rằng một cách khác thậm chí kỳ quặc hơn có thể là nếu bằng cách nào đó, việc chọn / xây dựng một thành viên gia đình mất nhiều thời gian hơn O (n ^ 2 poly (log n)) - ví dụ như có thể cần mã O (1 / e) để thực hiện thuật toán O (n ^ (2 + e)) hoặc một cái gì đó. Điều đó có hoang dã không ??
Daniel Wagner

10

Josh Alman đã cho thấy một số kết quả giới hạn thấp hơn của MM, đã giành giải thưởng sinh viên xuất sắc nhất CCC 2019! http://drops.dagstuhl.de/opus/volltexte/2019/10834/pdf/LIPIcs-CCC-2019-12.pdf


6
Mặc dù đây chắc chắn là một kết quả thực sự thú vị và hấp dẫn, tôi thực sự không lấy đó làm bằng chứng cho thấy MM không thể được thực hiện trong thời gian . Đó là bằng chứng cho thấy sự thoái hóa của sức mạnh cường độ cao theo kiểu CW có lẽ không thể làm điều đó cho bạn. Nhưng có rất nhiều công trình có thể khác, ví dụ bằng cách bắt đầu với một tenxơ cơ bản rất khác, hoặc cách tiếp cận lý thuyết nhóm Cohn-Umans (về nguyên tắc, có thể tạo ra các họ thuật toán vô hạn không chỉ là sự suy biến của sức mạnh tenor cao của một bắt đầu). O(n2poly(logn))
Joshua Grochow

4
@JoshuaGrochow Cảm ơn bạn đã chỉ ra vấn đề này.
Rupei Xu
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.