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









New contributor




dafnahaktana is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.

























    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









    New contributor




    dafnahaktana is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.























      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









      New contributor




      dafnahaktana is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      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









      New contributor




      dafnahaktana is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|cite|improve this question









      New contributor




      dafnahaktana is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|cite|improve this question




      share|cite|improve this question








      edited Dec 17 at 18:15









      OmG

      1,400412




      1,400412






      New contributor




      dafnahaktana is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked Dec 16 at 17:22









      dafnahaktana

      1442




      1442




      New contributor




      dafnahaktana is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      dafnahaktana is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      dafnahaktana is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          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
                });


                }
                });






                dafnahaktana is a new contributor. Be nice, and check out our Code of Conduct.










                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 $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 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.1k1115




                                    10.1k1115






















                                        dafnahaktana is a new contributor. Be nice, and check out our Code of Conduct.










                                        draft saved

                                        draft discarded


















                                        dafnahaktana is a new contributor. Be nice, and check out our Code of Conduct.













                                        dafnahaktana is a new contributor. Be nice, and check out our Code of Conduct.












                                        dafnahaktana is a new contributor. Be nice, and check out our Code of Conduct.
















                                        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 did Captain America manage to do this?

                                        迪纳利

                                        南乌拉尔铁路局