Các thuật toán nhân ma trận được phân tích theo độ phức tạp số học . Mô hình tính toán là các chương trình đường thẳng với hướng dẫn của biểu mẫua←b∘c, Ở đâu ∘∈{+,−,×,÷}, a là một biến và b,ccó thể là biến, đầu vào hoặc hằng. Ngoài ra, một số biến được phân biệt là đầu ra . Ví dụ, đây là cách nhân hai2×2 ma trận sử dụng thuật toán thông thường, với ma trận đầu vào aij,bij và ma trận đầu ra cij:
x11x12x21x22←a11×b11←a11×b12←a21×b11←a21×b12y11y12y21y22←a12×b21←a12×b22←a22×b21←a22×b22c11c12c21c22←x11+y11←x12+y12←x21+y21←x22+y22
Số đo phức tạp là số lượng dòng trong chương trình.
Đối với phép nhân ma trận, người ta có thể chứng minh một dạng bình thường cho tất cả các thuật toán. Mọi thuật toán có thể được chuyển đổi thành một thuật toán có dạng sau, với chi phí chỉ là sự gia tăng nhân số không đổi về độ phức tạp:
- Một số kết hợp tuyến tính αi của ma trận đầu vào ajk được tính toán.
- Một số kết hợp tuyến tính βi của ma trận đầu vào bjk được tính toán.
- γi→αi×βi.
- Mỗi mục trong ma trận đầu ra là sự kết hợp tuyến tính của γiS.
Đây được gọi là hình thức bình thường song tuyến . Trong thuật toán nhân ma trận hiển thị ở trên,xjk,yjk có chức năng như γi, nhưng trong thuật toán của Strassen, các kết hợp tuyến tính thú vị hơn; họ làMitrong mô tả của Wikipedia .
Sử dụng phương pháp kéo căng (nghĩa là áp dụng đệ quy cùng một thuật toán), tương tự như phân tích tiệm cận của thuật toán Strassen, người ta có thể chỉ ra rằng thuật toán đó được nhân lên như vậy để nhân lên n×n ma trận với r sản phẩm r biến γi), sau đó tùy ý N×N ma trận có thể được nhân lên trong sự phức tạp O(Nlognr); do đó chỉ có số lượng sản phẩm quan trọng không có triệu chứng. Trong thuật toán của Strassen,n=2 và r=7và vì vậy, ràng buộc là O(Nlog27).
Vấn đề tìm số lượng sản phẩm tối thiểu cần thiết để tính toán nhân ma trận có thể được đặt ra khi tìm thứ hạng của một tenxơ bậc ba (một "ma trận" với ba chỉ số chứ không phải hai), và điều này tạo ra mối liên hệ với lý thuyết phức tạp đại số. Bạn có thể tìm thêm thông tin trong cuốn sách này hoặc những ghi chú bài giảng (tiếp tục ở đây ).
Lý do mô hình này được sử dụng là gấp đôi: thứ nhất, nó rất đơn giản và dễ phân tích; thứ hai, nó liên quan chặt chẽ với mô hình RAM phổ biến hơn.
Các chương trình đường thẳng có thể được triển khai trong mô hình RAM và độ phức tạp trong cả hai mô hình có liên quan chặt chẽ: các phép toán số học có chi phí đơn vị trong một số biến thể của mô hình (ví dụ: mô hình RAM với số thực) và mặt khác có liên quan đến đa thức đến kích thước của các con số. Do đó, trong trường hợp nhân ma trận mô-đun, độ phức tạp số học cung cấp giới hạn trên về độ phức tạp trong mô hình RAM. Trong trường hợp nhân ma trận số nguyên hoặc hợp lý, người ta có thể chỉ ra rằng đối với các thuật toán song tuyến xuất phát từ phép kéo căng, kích thước của các số không tăng quá nhiều và do đó, độ phức tạp số học cung cấp giới hạn trên cho mô hình RAM, cho đến các yếu tố logarit .
Nó có thể là một trường hợp mà một máy RAM có thể tạo ra một số thủ thuật mà mô hình số học không biết. Nhưng thông thường chúng ta muốn các thuật toán nhân ma trận hoạt động cho ma trận trên các trường tùy ý (hoặc thậm chí là các vòng) và trong trường hợp đó, thuật toán thống nhất chỉ nên sử dụng các phép toán số học được chỉ định bởi mô hình. Vì vậy, mô hình này là một chính thức của các thuật toán "độc lập trường".