Strassen algorithm for matrix multiplication complexity analysis

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP












8














I see everywhere that the recursive equation for the complexity of Strassen alg is:
$$T(n) = 7T(tfracn2)+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(tfracn4) + 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(tfracn2)+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(tfracn4) + 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(tfracn2)+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(tfracn4) + O(n).$$










      share|cite|improve this question















      I see everywhere that the recursive equation for the complexity of Strassen alg is:
      $$T(n) = 7T(tfracn2)+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(tfracn4) + 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 at 18:15









      OmG

      1,400412




      1,400412










      asked Dec 16 at 17:22









      dafnahaktana

      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 $fracn2times fracn2$. Hence, the computation cost of multiplication of two matrices with this size is $T(fracn2)$.






            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 at 19:04









                    Yuval Filmus

                    189k12177340




                    189k12177340





















                        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 $fracn2times fracn2$. Hence, the computation cost of multiplication of two matrices with this size is $T(fracn2)$.






                        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 $fracn2times fracn2$. Hence, the computation cost of multiplication of two matrices with this size is $T(fracn2)$.






                          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 $fracn2times fracn2$. Hence, the computation cost of multiplication of two matrices with this size is $T(fracn2)$.






                            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 $fracn2times fracn2$. Hence, the computation cost of multiplication of two matrices with this size is $T(fracn2)$.







                            share|cite|improve this answer












                            share|cite|improve this answer



                            share|cite|improve this answer










                            answered Dec 16 at 17:55









                            OmG

                            1,400412




                            1,400412





















                                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 at 21:04









                                    gnasher729

                                    10.2k1115




                                    10.2k1115



























                                        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

                                        How to check contact read email or not when send email to Individual?

                                        Displaying single band from multi-band raster using QGIS

                                        How many registers does an x86_64 CPU actually have?