3

We have a matrix with elements in the field of integers modulo 2 (F_2). We are looking for algorithm that multiply n x n matrix over F_2 in just O(n^2.81/(log n)^0.4)

How it is possible?

I know, that Strassen's algorithm gives O(n^2.81), but how can we get this factor of (log n)^0.4?

tskuzzy
  • 35,812
  • 14
  • 73
  • 140
  • 2
    Do you have a reference saying that this is possible? A link to a paper would help. – tskuzzy May 30 '12 at 18:12
  • You might want to look into the M4RI algorithm: http://m4ri.sagemath.org/ It doesn't achieve the running time you're looking for, but contains some worthwhile techniques. – tskuzzy May 30 '12 at 18:19
  • No, it's my exercise for Algorithms and Data Structures. I get hint to use four russian algorithm and also decimal encoding for this logical matrix, but still don't know how we get `(log n^0.4)` – user1426653 May 30 '12 at 18:19

1 Answers1

4

You can do following:

Take each possible matrix with dimensions . There are such matrices ().

Precompute multiplication result for these matrices. This gives you table with dimensions . Then in recursion phase of Strassen algorithm, if required matrices for multiplication are small enough you can use precomputed values in this table (if smaller than you could fill appropriate rows and cols with zeros). Let . So you've got following recursion:

Notice, that the recurrence depth is , so you've got:

Using geometric series formula:

ciechowoj
  • 914
  • 6
  • 26
usamec
  • 2,156
  • 3
  • 20
  • 27