Strassen algorithm for matrix multiplication complexity analysis












8














I see everywhere that the recursive equation for the complexity of Strassen alg is:
$$T(n) = 7T(tfrac{n}{2})+O(n^2).$$ This is not so clear to me.
The parameter $n$ is supposed to be the size of the input, but it seems that here it is one dimension of a matrix while the input size is actually $n^2$.
Also, each matrix of the input is divided to 4 sub matrices so it seems the recursive equation should be $$T(n) = 7T(tfrac{n}{4}) + O(n).$$










share|cite|improve this question





























    8














    I see everywhere that the recursive equation for the complexity of Strassen alg is:
    $$T(n) = 7T(tfrac{n}{2})+O(n^2).$$ This is not so clear to me.
    The parameter $n$ is supposed to be the size of the input, but it seems that here it is one dimension of a matrix while the input size is actually $n^2$.
    Also, each matrix of the input is divided to 4 sub matrices so it seems the recursive equation should be $$T(n) = 7T(tfrac{n}{4}) + O(n).$$










    share|cite|improve this question



























      8












      8








      8


      2





      I see everywhere that the recursive equation for the complexity of Strassen alg is:
      $$T(n) = 7T(tfrac{n}{2})+O(n^2).$$ This is not so clear to me.
      The parameter $n$ is supposed to be the size of the input, but it seems that here it is one dimension of a matrix while the input size is actually $n^2$.
      Also, each matrix of the input is divided to 4 sub matrices so it seems the recursive equation should be $$T(n) = 7T(tfrac{n}{4}) + O(n).$$










      share|cite|improve this question















      I see everywhere that the recursive equation for the complexity of Strassen alg is:
      $$T(n) = 7T(tfrac{n}{2})+O(n^2).$$ This is not so clear to me.
      The parameter $n$ is supposed to be the size of the input, but it seems that here it is one dimension of a matrix while the input size is actually $n^2$.
      Also, each matrix of the input is divided to 4 sub matrices so it seems the recursive equation should be $$T(n) = 7T(tfrac{n}{4}) + O(n).$$







      algorithms complexity-theory divide-and-conquer matrix






      share|cite|improve this question















      share|cite|improve this question













      share|cite|improve this question




      share|cite|improve this question








      edited Dec 17 '18 at 18:15









      OmG

      1,396512




      1,396512










      asked Dec 16 '18 at 17:22









      dafnahaktanadafnahaktana

      1442




      1442






















          3 Answers
          3






          active

          oldest

          votes


















          13














          It's true that the parameter $n$ usually denotes the size of the input, but this is not always the case. For square matrix multiplication, $n$ denotes the number of rows (or columns). For graphs, $n$ often denotes the number of vertices, and $m$ the number of edges. For algorithms on Boolean functions, $n$ denotes the number of inputs, though the truth table itself has size $2^n$. There are many other examples.






          share|cite|improve this answer





























            5














            It's back to the size of the matrix. Suppose the original matrix is $ntimes n$. Hence we will consider $T(n)$ as a computation of two matrix with size of $ntimes n$. When we divide the original matrix to 4 part, size of each part is $frac{n}{2}times frac{n}{2}$. Hence, the computation cost of multiplication of two matrices with this size is $T(frac{n}{2})$.






            share|cite|improve this answer





























              0














              Time complexity is often based on the input size, but it is not an absolute requirement. In this case, for the multiplication of n x n matrices, it seems most natural to count the number of operations based on n, not on the problem size n x n.






              share|cite|improve this answer





















                Your Answer





                StackExchange.ifUsing("editor", function () {
                return StackExchange.using("mathjaxEditing", function () {
                StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
                StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
                });
                });
                }, "mathjax-editing");

                StackExchange.ready(function() {
                var channelOptions = {
                tags: "".split(" "),
                id: "419"
                };
                initTagRenderer("".split(" "), "".split(" "), channelOptions);

                StackExchange.using("externalEditor", function() {
                // Have to fire editor after snippets, if snippets enabled
                if (StackExchange.settings.snippets.snippetsEnabled) {
                StackExchange.using("snippets", function() {
                createEditor();
                });
                }
                else {
                createEditor();
                }
                });

                function createEditor() {
                StackExchange.prepareEditor({
                heartbeatType: 'answer',
                autoActivateHeartbeat: false,
                convertImagesToLinks: false,
                noModals: true,
                showLowRepImageUploadWarning: true,
                reputationToPostImages: null,
                bindNavPrevention: true,
                postfix: "",
                imageUploader: {
                brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                allowUrls: true
                },
                onDemand: true,
                discardSelector: ".discard-answer"
                ,immediatelyShowMarkdownHelp:true
                });


                }
                });














                draft saved

                draft discarded


















                StackExchange.ready(
                function () {
                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcs.stackexchange.com%2fquestions%2f101638%2fstrassen-algorithm-for-matrix-multiplication-complexity-analysis%23new-answer', 'question_page');
                }
                );

                Post as a guest















                Required, but never shown

























                3 Answers
                3






                active

                oldest

                votes








                3 Answers
                3






                active

                oldest

                votes









                active

                oldest

                votes






                active

                oldest

                votes









                13














                It's true that the parameter $n$ usually denotes the size of the input, but this is not always the case. For square matrix multiplication, $n$ denotes the number of rows (or columns). For graphs, $n$ often denotes the number of vertices, and $m$ the number of edges. For algorithms on Boolean functions, $n$ denotes the number of inputs, though the truth table itself has size $2^n$. There are many other examples.






                share|cite|improve this answer


























                  13














                  It's true that the parameter $n$ usually denotes the size of the input, but this is not always the case. For square matrix multiplication, $n$ denotes the number of rows (or columns). For graphs, $n$ often denotes the number of vertices, and $m$ the number of edges. For algorithms on Boolean functions, $n$ denotes the number of inputs, though the truth table itself has size $2^n$. There are many other examples.






                  share|cite|improve this answer
























                    13












                    13








                    13






                    It's true that the parameter $n$ usually denotes the size of the input, but this is not always the case. For square matrix multiplication, $n$ denotes the number of rows (or columns). For graphs, $n$ often denotes the number of vertices, and $m$ the number of edges. For algorithms on Boolean functions, $n$ denotes the number of inputs, though the truth table itself has size $2^n$. There are many other examples.






                    share|cite|improve this answer












                    It's true that the parameter $n$ usually denotes the size of the input, but this is not always the case. For square matrix multiplication, $n$ denotes the number of rows (or columns). For graphs, $n$ often denotes the number of vertices, and $m$ the number of edges. For algorithms on Boolean functions, $n$ denotes the number of inputs, though the truth table itself has size $2^n$. There are many other examples.







                    share|cite|improve this answer












                    share|cite|improve this answer



                    share|cite|improve this answer










                    answered Dec 16 '18 at 19:04









                    Yuval FilmusYuval Filmus

                    189k12177341




                    189k12177341























                        5














                        It's back to the size of the matrix. Suppose the original matrix is $ntimes n$. Hence we will consider $T(n)$ as a computation of two matrix with size of $ntimes n$. When we divide the original matrix to 4 part, size of each part is $frac{n}{2}times frac{n}{2}$. Hence, the computation cost of multiplication of two matrices with this size is $T(frac{n}{2})$.






                        share|cite|improve this answer


























                          5














                          It's back to the size of the matrix. Suppose the original matrix is $ntimes n$. Hence we will consider $T(n)$ as a computation of two matrix with size of $ntimes n$. When we divide the original matrix to 4 part, size of each part is $frac{n}{2}times frac{n}{2}$. Hence, the computation cost of multiplication of two matrices with this size is $T(frac{n}{2})$.






                          share|cite|improve this answer
























                            5












                            5








                            5






                            It's back to the size of the matrix. Suppose the original matrix is $ntimes n$. Hence we will consider $T(n)$ as a computation of two matrix with size of $ntimes n$. When we divide the original matrix to 4 part, size of each part is $frac{n}{2}times frac{n}{2}$. Hence, the computation cost of multiplication of two matrices with this size is $T(frac{n}{2})$.






                            share|cite|improve this answer












                            It's back to the size of the matrix. Suppose the original matrix is $ntimes n$. Hence we will consider $T(n)$ as a computation of two matrix with size of $ntimes n$. When we divide the original matrix to 4 part, size of each part is $frac{n}{2}times frac{n}{2}$. Hence, the computation cost of multiplication of two matrices with this size is $T(frac{n}{2})$.







                            share|cite|improve this answer












                            share|cite|improve this answer



                            share|cite|improve this answer










                            answered Dec 16 '18 at 17:55









                            OmGOmG

                            1,396512




                            1,396512























                                0














                                Time complexity is often based on the input size, but it is not an absolute requirement. In this case, for the multiplication of n x n matrices, it seems most natural to count the number of operations based on n, not on the problem size n x n.






                                share|cite|improve this answer


























                                  0














                                  Time complexity is often based on the input size, but it is not an absolute requirement. In this case, for the multiplication of n x n matrices, it seems most natural to count the number of operations based on n, not on the problem size n x n.






                                  share|cite|improve this answer
























                                    0












                                    0








                                    0






                                    Time complexity is often based on the input size, but it is not an absolute requirement. In this case, for the multiplication of n x n matrices, it seems most natural to count the number of operations based on n, not on the problem size n x n.






                                    share|cite|improve this answer












                                    Time complexity is often based on the input size, but it is not an absolute requirement. In this case, for the multiplication of n x n matrices, it seems most natural to count the number of operations based on n, not on the problem size n x n.







                                    share|cite|improve this answer












                                    share|cite|improve this answer



                                    share|cite|improve this answer










                                    answered Dec 17 '18 at 21:04









                                    gnasher729gnasher729

                                    10.3k1115




                                    10.3k1115






























                                        draft saved

                                        draft discarded




















































                                        Thanks for contributing an answer to Computer Science Stack Exchange!


                                        • Please be sure to answer the question. Provide details and share your research!

                                        But avoid



                                        • Asking for help, clarification, or responding to other answers.

                                        • Making statements based on opinion; back them up with references or personal experience.


                                        Use MathJax to format equations. MathJax reference.


                                        To learn more, see our tips on writing great answers.





                                        Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                                        Please pay close attention to the following guidance:


                                        • Please be sure to answer the question. Provide details and share your research!

                                        But avoid



                                        • Asking for help, clarification, or responding to other answers.

                                        • Making statements based on opinion; back them up with references or personal experience.


                                        To learn more, see our tips on writing great answers.




                                        draft saved


                                        draft discarded














                                        StackExchange.ready(
                                        function () {
                                        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcs.stackexchange.com%2fquestions%2f101638%2fstrassen-algorithm-for-matrix-multiplication-complexity-analysis%23new-answer', 'question_page');
                                        }
                                        );

                                        Post as a guest















                                        Required, but never shown





















































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown

































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown







                                        Popular posts from this blog

                                        "Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

                                        Alcedinidae

                                        Origin of the phrase “under your belt”?