-
Notifications
You must be signed in to change notification settings - Fork 38
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
13 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,13 @@ | ||
\workinprogress % TODO | ||
For convenience, we'll assume that $n$ is an exact power of 3. | ||
Similarly to equation (4.2), let's partition the matrices into nine $n/3\times n/3$ submatrices. | ||
We can then treat the input matrices as two $3\times3$ matrices that we multiply using $k$ multiplications. | ||
Each of those is in fact a multiplication of two $n/3\times n/3$ matrices and can be performed by running the algorithm recursively. | ||
|
||
Let $T(n)$ be the worst-case time to multiply two $n\times n$ matrices by this algorithm. | ||
If we did the partitioning using index calculations, then we get the recurrence | ||
\[ | ||
T(n) = kT(n/3)+\Theta(1) | ||
\] | ||
which, by the master method, has the solution $T(n)=\Theta(n^{\log_3k})$. | ||
According to \refProblem{3-1}(d), $T(n)=o(n^{\lg7})$ if $\log_3k<\lg7$, which gives us $k<3^{\lg7}\approx21.85$. | ||
Hence, the largest integer value for $k$ is 21 and then the running time of the algorithm is $T(n)=\Theta(n^{\log_321})=O(n^{2.78})$. |