<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.2 20190208//EN" "http://jats.nlm.nih.gov/publishing/1.2/JATS-journalpublishing1.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article" dtd-version="1.2" xml:lang="en">
    <front>
        <journal-meta>
            <journal-id journal-id-type="pmc">F1000Research</journal-id>
            <journal-title-group>
                <journal-title>F1000Research</journal-title>
            </journal-title-group>
            <issn pub-type="epub">2046-1402</issn>
            <publisher>
                <publisher-name>F1000 Research Limited</publisher-name>
                <publisher-loc>London, UK</publisher-loc>
            </publisher>
        </journal-meta>
        <article-meta>
            <article-id pub-id-type="doi">10.12688/f1000research.162848.2</article-id>
            <article-categories>
                <subj-group subj-group-type="heading">
                    <subject>Research Article</subject>
                </subj-group>
                <subj-group>
                    <subject>Articles</subject>
                </subj-group>
            </article-categories>
            <title-group>
                <article-title>Hybrid optimization technique for matrix chain multiplication using Strassen&#x2019;s algorithm</article-title>
                <fn-group content-type="pub-status">
                    <fn>
                        <p>[version 2; peer review: 4 approved]</p>
                    </fn>
                </fn-group>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Thota</surname>
                        <given-names>Srinivasarao</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Conceptualization</role>
                    <role content-type="http://credit.niso.org/">Formal Analysis</role>
                    <role content-type="http://credit.niso.org/">Methodology</role>
                    <role content-type="http://credit.niso.org/">Supervision</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Original Draft Preparation</role>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Bikku</surname>
                        <given-names>Thulasi</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Investigation</role>
                    <role content-type="http://credit.niso.org/">Validation</role>
                    <role content-type="http://credit.niso.org/">Visualization</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <xref ref-type="aff" rid="a2">2</xref>
                </contrib>
                <contrib contrib-type="author" corresp="yes">
                    <name>
                        <surname>T</surname>
                        <given-names>Rakshitha</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Validation</role>
                    <uri content-type="orcid">https://orcid.org/0009-0005-4194-1733</uri>
                    <xref ref-type="corresp" rid="c1">a</xref>
                    <xref ref-type="aff" rid="a3">3</xref>
                </contrib>
                <aff id="a1">
                    <label>1</label>Department of Mathematics, Amrita School of Physical Sciences, Amrita Vishwa Vidyapeetham, Amaravati, Andhra Pradesh, 522503, India</aff>
                <aff id="a2">
                    <label>2</label>Department of Computer Science Engineering, Amrita School of Computing Amaravati, Amrita Vishwa Vidyapeetham, Amaravati, Andhra Pradesh, 522503, India</aff>
                <aff id="a3">
                    <label>3</label>Department of Mathematics, Eritrea Institute of Technology, Abardae, Eritrea</aff>
            </contrib-group>
            <author-notes>
                <corresp id="c1">
                    <label>a</label>
                    <email xlink:href="mailto:rakshitha19214@gmail.com">rakshitha19214@gmail.com</email>
                </corresp>
                <fn fn-type="conflict">
                    <p>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>27</day>
                <month>5</month>
                <year>2025</year>
            </pub-date>
            <pub-date pub-type="collection">
                <year>2025</year>
            </pub-date>
            <volume>14</volume>
            <elocation-id>341</elocation-id>
            <history>
                <date date-type="accepted">
                    <day>22</day>
                    <month>5</month>
                    <year>2025</year>
                </date>
            </history>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2025 Thota S et al.</copyright-statement>
                <copyright-year>2025</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access article distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <self-uri content-type="pdf" xlink:href="https://f1000research.com/articles/14-341/pdf"/>
            <abstract>
                <sec>
                    <title>Background</title>
                    <p>Matrix Chain Multiplication (MCM) is a fundamental problem in computational mathematics and computer science, often encountered in scientific computing, graphics, and machine learning. Traditional MCM optimization techniques use Dynamic Programming (DP) with Memoization to determine the optimal parenthesization for minimizing the number of scalar multiplications. However, standard matrix multiplication still operates in O(n
                        <sup>3</sup>) time complexity, leading to inefficiencies for large matrices.</p>
                </sec>
                <sec>
                    <title>Methods</title>
                    <p>In this paper, we propose a hybrid optimization technique that integrates Strassen&#x2019;s algorithm into MCM to further accelerate matrix multiplication. Our approach consists of two key phases: (i) matrix chain order optimization, using a top-down memoized DP approach, we compute the best multiplication sequence, and (ii) hybrid multiplication strategy, we selectively apply Strassen&#x2019;s algorithm for large matrices (n &#x2265; 128), reducing the complexity from O(n
                        <sup>3</sup>) to O(n
                        <sup>2.81</sup>), while using standard multiplication for smaller matrices to avoid recursive overhead. We evaluate the performance of our hybrid method through computational experiments comparing execution time, memory usage, and numerical accuracy against traditional MCM and Strassen&#x2019;s standalone multiplication.</p>
                </sec>
                <sec>
                    <title>Results</title>
                    <p>Our results demonstrate that the proposed hybrid method achieves significant speedup (4x&#x2013;8x improvement) and reduces memory consumption, making it well-suited for large-scale applications. This research opens pathways for further optimizations in parallel computing and GPU-accelerated matrix operations.</p>
                </sec>
                <sec>
                    <title>Conclusion</title>
                    <p>This study presents a hybrid approach to Matrix Chain Multiplication by integrating Strassen&#x2019;s algorithm, reducing execution time and memory usage. By selectively applying Strassen&#x2019;s method for large matrices, the proposed technique improves efficiency while preserving accuracy. Future work can focus on parallel computing and GPU acceleration for further optimization.</p>
                </sec>
            </abstract>
            <kwd-group kwd-group-type="author">
                <kwd>Matrix Chain Multiplication</kwd>
                <kwd>Strassen&#x2019;s Algorithm</kwd>
                <kwd>Hybrid Optimization</kwd>
                <kwd>Dynamic Programming</kwd>
                <kwd>Computational Complexity.</kwd>
            </kwd-group>
            <funding-group>
                <funding-statement>The author(s) declared that no grants were involved in supporting this work.</funding-statement>
            </funding-group>
        </article-meta>
        <notes>
            <sec sec-type="version-changes">
                <label>Revised</label>
                <title>Amendments from Version 1</title>
                <p>The revised manuscript addresses the corrections recommended by the reviewers. The Introduction has been expanded to include recent bibliographic references. The Discussion section has been streamlined, with updated citations that more effectively support the interpretation of the results. Additionally, a thorough grammatical review has been conducted to enhance the clarity and coherence of the manuscript. We strongly believe that they have helped to strengthen our paper.</p>
            </sec>
        </notes>
    </front>
    <body>
        <sec id="sec5" sec-type="intro">
            <title>1. Introduction</title>
            <p>Matrix multiplication is a cornerstone operation in numerous fields including computer graphics, scientific computing, machine learning, and deep learning. Its importance stems from its widespread applicability in solving systems of linear equations, performing transformations, and training neural networks. While matrix multiplication is conceptually straightforward, the computational complexity associated with multiplying large chains of matrices can become prohibitive. This challenge has led to extensive research into algorithms that minimize the number of scalar multiplications required to compute matrix products, with the Matrix Chain Multiplication (MCM) problem serving as a classic example of such optimization.</p>
            <p>The Matrix Chain Multiplication problem involves finding the most efficient way to parenthesize a sequence of matrix multiplications so that the total number of scalar operations is minimized. Although the associative property of matrix multiplication allows for different parenthesization orders, the actual computational cost can vary significantly depending on the chosen sequence. The dynamic programming approach to MCM has been a long-standing solution that provides optimal parenthesization in polynomial time by breaking the problem into overlapping subproblems and storing intermediate results to avoid redundant computations.</p>
            <p>Parallel to these developments, Strassen&#x2019;s Algorithm emerged as a ground-breaking improvement over the conventional cubic-time matrix multiplication algorithm. Introduced in 1969, Strassen&#x2019;s Algorithm reduces the complexity of multiplying two square matrices from O(
                <italic toggle="yes">n</italic>
                <sup>3</sup>) to approximately O(
                <italic toggle="yes">n</italic>
                <sup>2.81</sup>) by leveraging a divide-and-conquer strategy and performing fewer multiplications at the cost of more additions. Despite being theoretically less intuitive, it has demonstrated practical efficiency, particularly for large matrices, and forms the basis for many high-performance matrix libraries.</p>
            <p>Matrix Chain Multiplication (MCM)
                <sup>
                    <xref ref-type="bibr" rid="ref1">1</xref>
                </sup> is a fundamental optimization problem in linear algebra and computational mathematics, with applications in machine learning, graphics processing, numerical simulations, and high-performance computing. Given a sequence of matrices, MCM aims to determine the optimal parenthesization that minimizes the number of scalar multiplications. Although matrix multiplication is associative, the order in which matrices are multiplied significantly affects computational efficiency.</p>
            <p>For an input sequence of matrices 
                <italic toggle="yes">A
                    <sub>1</sub>, A
                    <sub>2</sub>, &#x2026;, A
                    <sub>n</sub>
                </italic> with dimensions 
                <italic toggle="yes">p</italic>
                <sub>0</sub> &#x00d7; 
                <italic toggle="yes">p</italic>
                <sub>1</sub>, 
                <italic toggle="yes">p</italic>
                <sub>1</sub> &#x00d7; 
                <italic toggle="yes">p</italic>
                <sub>2</sub>, &#x2026;, 
                <italic toggle="yes">p</italic>
                <sub>

                    <italic toggle="yes">n</italic>-1</sub> &#x00d7; 
                <italic toggle="yes">p
                    <sub>n</sub>
                </italic>, the goal of MCM is to determine the optimal multiplication order that minimizes the total number of operations
                <disp-formula id="e1">

                    <mml:math display="block">
                        <mml:mtext>Cost</mml:mtext>
                        <mml:mo>=</mml:mo>
                        <mml:mrow>
                            <mml:mo stretchy="true">(</mml:mo>
                            <mml:msub>
                                <mml:mi>p</mml:mi>
                                <mml:mi>i</mml:mi>
                            </mml:msub>
                            <mml:mo>&#x00d7;</mml:mo>
                            <mml:msub>
                                <mml:mi>p</mml:mi>
                                <mml:mi>k</mml:mi>
                            </mml:msub>
                            <mml:mo>&#x00d7;</mml:mo>
                            <mml:msub>
                                <mml:mi>p</mml:mi>
                                <mml:mi>j</mml:mi>
                            </mml:msub>
                            <mml:mo stretchy="true">)</mml:mo>
                        </mml:mrow>
                    </mml:math>
</disp-formula>where 
                <italic toggle="yes">k</italic> represents the optimal split point, 
                <italic toggle="yes">i</italic> is the starting index of the subchain of matrices (i.e., matrix 
                <italic toggle="yes">A
                    <sub>i</sub>
                </italic>), and 
                <italic toggle="yes">j</italic> is the ending index of the subchain of matrices (i.e., matrix 
                <italic toggle="yes">A
                    <sub>j</sub>
                </italic>). Brute-force approaches to MCM require exploring all possible parenthesizations, leading to an exponential O(2
                <italic toggle="yes">
                    <sup>n</sup>
                </italic>) complexity, making them infeasible for large 
                <italic toggle="yes">n.</italic>
            </p>
            <p>To solve this efficiently, Dynamic Programming (DP) with Memoization is commonly used, reducing the time complexity to O(
                <italic toggle="yes">n</italic>
                <sup>3</sup>). However, this cubic complexity still presents computational challenges for large matrices, motivating the need for further optimization.</p>
            <sec id="sec6">
                <title>1.1 Motivation for optimization</title>
                <p>While DP-based MCM determines the best multiplication order, it does not reduce the actual multiplication complexity itself. In practical applications such as deep learning (tensor operations), high-dimensional physics simulations, and computer vision, reducing the computational cost of matrix multiplications is critical for real-time performance and efficiency.</p>
                <p>Strassen&#x2019;s algorithm
                    <sup>
                        <xref ref-type="bibr" rid="ref2">2</xref>
                    </sup> is a well-known technique for improving matrix multiplication efficiency. It reduces the standard O(
                    <italic toggle="yes">n</italic>
                    <sup>3</sup>) complexity to O(
                    <italic toggle="yes">n</italic>
                    <sup>2.81</sup>) by decomposing matrices into submatrices and performing only 7 recursive multiplications instead of 8. This asymptotic improvement makes Strassen&#x2019;s method highly effective for large matrices. However, it suffers from the overhead due to recursive splitting, making it inefficient for small matrices and numerical stability issues, particularly in floating-point arithmetic.</p>
                <p>A direct application of Strassen&#x2019;s algorithm to MCM is non-trivial, as MCM does not involve direct multiplication but rather determining the multiplication order first. Thus, a hybrid approach combining both order optimization and multiplication acceleration is necessary.</p>
            </sec>
            <sec id="sec7">
                <title>1.2 Hybrid Optimization: Combining MCM and strassen&#x2019;s algorithm</title>
                <p>We propose a Hybrid Optimization Technique that integrates MCM with Strassen&#x2019;s Algorithm to enhance computational efficiency. The key principles of our approach are as follows
                    <list list-type="order">
                        <list-item>
                            <label>1.</label>
                            <p>Optimal Parenthesization Selection (MCM-DP): We use memoized DP to determine the best multiplication sequence, ensuring minimal scalar multiplications.</p>
                        </list-item>
                        <list-item>
                            <label>2.</label>
                            <p>Hybrid Multiplication Strategy: Strassen&#x2019;s Algorithm is selectively applied to matrix products where 
                                <italic toggle="yes">n</italic> &#x2265; 128, as Strassen&#x2019;s overhead is only justified for larger matrices. For smaller matrices, standard multiplication is used to avoid unnecessary recursive decomposition overhead.</p>
                        </list-item>
                        <list-item>
                            <label>3.</label>
                            <p>Space Optimization with Rolling DP Array: Since DP-MCM typically requires O(
                                <italic toggle="yes">n</italic>
                                <sup>2</sup>) space, we introduce a rolling DP array to reduce memory usage while maintaining optimal parenthesization results.</p>
                        </list-item>
                    </list>
                </p>
                <p>This hybrid method leverages the strengths of both MCM and Strassen&#x2019;s Algorithm, achieving significant performance gains while avoiding pitfalls of either technique when used independently.</p>
            </sec>
            <sec id="sec8">
                <title>1.3 Contributions of this research</title>
                <p>Recent advancements in matrix multiplication have built upon foundational algorithms like Strassen&#x2019;s, aiming to enhance efficiency and applicability. In,
                    <sup>
                        <xref ref-type="bibr" rid="ref3">3</xref>
                    </sup> author evaluates recent reinforcement learning-derived matrix multiplication algorithms, comparing them to Strassen&#x2019;s original method. The findings suggest that, despite new developments, Strassen&#x2019;s algorithm remains superior in practical implementations. Authors of
                    <sup>
                        <xref ref-type="bibr" rid="ref4">4</xref>
                    </sup> introduced a novel framework using the Pebbling Game approach to optimize matrix multiplication algorithms. It explores alternative computational bases that improve high-performance matrix multiplication efficiency. The authors provide theoretical insights and algorithmic strategies that reduce computational overhead, particularly in large-scale numerical computations. The authors have discovered various techniques
                    <sup>
                        <xref ref-type="bibr" rid="ref5">5</xref>&#x2013;
                        <xref ref-type="bibr" rid="ref11">11</xref>
                    </sup> related to different topics.</p>
                <p>This paper presents a novel hybrid approach for Matrix Chain Multiplication that enhances computational efficiency by integrating MCM&#x2019;s order optimization with Strassen&#x2019;s fast multiplication technique. Our key contributions include (i) A Hybrid Optimization Framework that systematically selects the best multiplication order while applying Strassen&#x2019;s Algorithm adaptively. (ii) A Theoretical Complexity Analysis, proving that our approach reduces computational overhead compared to traditional O(
                    <italic toggle="yes">n</italic>
                    <sup>3</sup>) methods. (iii) An Empirical Performance Evaluation, demonstrating that our hybrid method achieves 4x&#x2013;8x speedup compared to standard DP-based MCM. (iv) Memory Optimization, using a rolling DP array to minimize space complexity while maintaining optimal results.</p>
                <p>The rest of this paper is structured as follows: Section 2 provides a background on Matrix Chain Multiplication and Strassen&#x2019;s Algorithm. Section 3 details our Hybrid Optimization Algorithm with pseudocode and complexity analysis. Section 4 presents experimental results comparing execution time, memory usage, and accuracy. Section 5 discusses conclusions, limitations, and future research directions.</p>
            </sec>
        </sec>
        <sec id="sec9">
            <title>2. Background on matrix chain multiplication and strassen&#x2019;s algorithm</title>
            <p>Our research comprises numerical computation-intensive computational experiments and algorithmic executions. For this purpose, we employed Python (version 3.11) as the main programming language, with NumPy (version 1.24) used for matrix operations and numerical computations. TensorFlow (version 2.12) and PyTorch (version 2.0) were utilized for deep learning operations and speeding up matrix multiplication, with MATLAB (version R2023a) also used for further validation and benchmarking. Other libraries such as SciPy (version 1.10), Pandas (version 2.0), OpenMP, and CUDA (version 12.1) were utilized for mathematical modeling, optimization, and parallel processing. The hardware configuration consisted of an Intel Core i9-13900K processor (24 cores/32 threads), an NVIDIA RTX 4090 GPU (24GB VRAM), 64GB DDR5 RAM, and a 2TB NVMe SSD, all installed on Ubuntu 22.04 LTS. Careful documentation of software versions, settings, and hardware configurations is made in order to ensure reproducibility and transparency in our research. In the literature, there are many references on these algorithms, see for example Refs. 
                <xref ref-type="bibr" rid="ref12">12</xref>&#x2013;
                <xref ref-type="bibr" rid="ref17">17</xref> for more details.</p>
            <sec id="sec10">
                <title>2.1 Matrix Chain Multiplication (MCM)</title>
                <p>Matrix Chain Multiplication (MCM) is a well-known optimization problem that determines the most efficient way to multiply a sequence of matrices. Given a chain of matrices 
                    <italic toggle="yes">A
                        <sub>1</sub>, A
                        <sub>2</sub>, A
                        <sub>3</sub>, &#x2026;, A
                        <sub>n</sub>
                    </italic> with dimensions 
                    <italic toggle="yes">p</italic>
                    <sub>0</sub> &#x00d7; 
                    <italic toggle="yes">p</italic>
                    <sub>1</sub>, 
                    <italic toggle="yes">p</italic>
                    <sub>1</sub> &#x00d7; 
                    <italic toggle="yes">p</italic>
                    <sub>2</sub>, 
                    <italic toggle="yes">p</italic>
                    <sub>2</sub> &#x00d7; 
                    <italic toggle="yes">p</italic>
                    <sub>3</sub>, &#x2026;, 
                    <italic toggle="yes">p</italic>
                    <sub>

                        <italic toggle="yes">n</italic>-1</sub> &#x00d7; 
                    <italic toggle="yes">p
                        <sub>n</sub>
                    </italic>, the goal is to find the optimal parenthesization that minimizes the number of scalar multiplications.</p>
                <p>A naive approach to multiplying 
                    <italic toggle="yes">n</italic> matrices sequentially has a complexity of O(
                    <italic toggle="yes">n</italic>!) due to different parenthesization possibilities.
                    <sup>
                        <xref ref-type="bibr" rid="ref18">18</xref>
                    </sup> However, DP reduces the complexity to O(
                    <italic toggle="yes">n</italic>
                    <sup>3</sup>) by storing intermediate results in a cost table. The standard DP recurrence relation for MCM is given as
                    <disp-formula id="e2">

                        <mml:math display="block">
                            <mml:mi>m</mml:mi>
                            <mml:mrow>
                                <mml:mo stretchy="true">[</mml:mo>
                                <mml:mi>i</mml:mi>
                                <mml:mo stretchy="true">]</mml:mo>
                            </mml:mrow>
                            <mml:mrow>
                                <mml:mo stretchy="true">[</mml:mo>
                                <mml:mi>j</mml:mi>
                                <mml:mo stretchy="true">]</mml:mo>
                            </mml:mrow>
                            <mml:mo>=</mml:mo>
                            <mml:munder>
                                <mml:mo>min</mml:mo>
                                <mml:mrow>
                                    <mml:mi>i</mml:mi>
                                    <mml:mo>&#x2264;</mml:mo>
                                    <mml:mi>k</mml:mi>
                                    <mml:mo>&lt;</mml:mo>
                                    <mml:mi>j</mml:mi>
                                </mml:mrow>
                            </mml:munder>
                            <mml:mrow>
                                <mml:mo stretchy="true">(</mml:mo>
                                <mml:mi>m</mml:mi>
                                <mml:mrow>
                                    <mml:mo stretchy="true">[</mml:mo>
                                    <mml:mi>i</mml:mi>
                                    <mml:mo stretchy="true">]</mml:mo>
                                </mml:mrow>
                                <mml:mrow>
                                    <mml:mo stretchy="true">[</mml:mo>
                                    <mml:mi>k</mml:mi>
                                    <mml:mo stretchy="true">]</mml:mo>
                                </mml:mrow>
                                <mml:mo>+</mml:mo>
                                <mml:mi>m</mml:mi>
                                <mml:mrow>
                                    <mml:mo stretchy="true">[</mml:mo>
                                    <mml:mi>k</mml:mi>
                                    <mml:mo>+</mml:mo>
                                    <mml:mn>1</mml:mn>
                                    <mml:mo stretchy="true">]</mml:mo>
                                </mml:mrow>
                                <mml:mrow>
                                    <mml:mo stretchy="true">[</mml:mo>
                                    <mml:mi>j</mml:mi>
                                    <mml:mo stretchy="true">]</mml:mo>
                                </mml:mrow>
                                <mml:mo>+</mml:mo>
                                <mml:msub>
                                    <mml:mi>p</mml:mi>
                                    <mml:mrow>
                                        <mml:mi>i</mml:mi>
                                        <mml:mo>&#x2212;</mml:mo>
                                        <mml:mn>1</mml:mn>
                                    </mml:mrow>
                                </mml:msub>
                                <mml:msub>
                                    <mml:mi>p</mml:mi>
                                    <mml:mi>k</mml:mi>
                                </mml:msub>
                                <mml:msub>
                                    <mml:mi>p</mml:mi>
                                    <mml:mi>j</mml:mi>
                                </mml:msub>
                                <mml:mo stretchy="true">)</mml:mo>
                            </mml:mrow>
                        </mml:math>
</disp-formula>
                </p>
                <p>where 
                    <italic toggle="yes">m</italic> [
                    <italic toggle="yes">i, j</italic>] represents the minimum number of scalar multiplications required to multiply matrices from 
                    <italic toggle="yes">A
                        <sub>i</sub>
                    </italic> to 
                    <italic toggle="yes">A
                        <sub>j</sub>.</italic> The optimal solution is found through bottom-up computation, filling the DP table in increasing order of matrix chain lengths.</p>
            </sec>
            <sec id="sec11">
                <title>2.2 Strassen&#x2019;s algorithm for matrix multiplication</title>
                <p>Strassen&#x2019;s Algorithm is a divide-and-conquer method
                    <sup>
                        <xref ref-type="bibr" rid="ref19">19</xref>
                    </sup> that improves upon the classical O(
                    <italic toggle="yes">n</italic>
                    <sup>3</sup>) time complexity of matrix multiplication. It reduces the number of scalar multiplications by recursively dividing the input matrices into submatrices. The key insight is that instead of performing eight multiplications as in standard matrix multiplication, Strassen&#x2019;s method
                    <sup>
                        <xref ref-type="bibr" rid="ref20">20</xref>
                    </sup> reduces it to seven multiplications using cleverly designed submatrix computations. The recursion follows these steps:

                    <list list-type="bullet">
                        <list-item>
                            <label>&#x2022;</label>
                            <p>Divide matrices 
                                <italic toggle="yes">A</italic> and 
                                <italic toggle="yes">B</italic> into four equal-sized submatrices:
                                <disp-formula id="e3">

                                    <mml:math display="block">
                                        <mml:mi>A</mml:mi>
                                        <mml:mo>=</mml:mo>
                                        <mml:mrow>
                                            <mml:mo stretchy="true">[</mml:mo>
                                            <mml:mtable columnalign="center">
                                                <mml:mtr>
                                                    <mml:mtd>
                                                        <mml:msub>
                                                            <mml:mi>A</mml:mi>
                                                            <mml:mn>11</mml:mn>
                                                        </mml:msub>
                                                    </mml:mtd>
                                                    <mml:mtd>
                                                        <mml:msub>
                                                            <mml:mi>A</mml:mi>
                                                            <mml:mn>12</mml:mn>
                                                        </mml:msub>
                                                    </mml:mtd>
                                                </mml:mtr>
                                                <mml:mtr>
                                                    <mml:mtd>
                                                        <mml:msub>
                                                            <mml:mi>A</mml:mi>
                                                            <mml:mn>21</mml:mn>
                                                        </mml:msub>
                                                    </mml:mtd>
                                                    <mml:mtd>
                                                        <mml:msub>
                                                            <mml:mi>A</mml:mi>
                                                            <mml:mn>22</mml:mn>
                                                        </mml:msub>
                                                    </mml:mtd>
                                                </mml:mtr>
                                            </mml:mtable>
                                            <mml:mo stretchy="true">]</mml:mo>
                                        </mml:mrow>
                                        <mml:mo>,</mml:mo>
                                        <mml:mi>B</mml:mi>
                                        <mml:mo>=</mml:mo>
                                        <mml:mrow>
                                            <mml:mo stretchy="true">[</mml:mo>
                                            <mml:mtable columnalign="center">
                                                <mml:mtr>
                                                    <mml:mtd>
                                                        <mml:msub>
                                                            <mml:mi>B</mml:mi>
                                                            <mml:mn>11</mml:mn>
                                                        </mml:msub>
                                                    </mml:mtd>
                                                    <mml:mtd>
                                                        <mml:msub>
                                                            <mml:mi>B</mml:mi>
                                                            <mml:mn>12</mml:mn>
                                                        </mml:msub>
                                                    </mml:mtd>
                                                </mml:mtr>
                                                <mml:mtr>
                                                    <mml:mtd>
                                                        <mml:msub>
                                                            <mml:mi>B</mml:mi>
                                                            <mml:mn>21</mml:mn>
                                                        </mml:msub>
                                                    </mml:mtd>
                                                    <mml:mtd>
                                                        <mml:msub>
                                                            <mml:mi>B</mml:mi>
                                                            <mml:mn>22</mml:mn>
                                                        </mml:msub>
                                                    </mml:mtd>
                                                </mml:mtr>
                                            </mml:mtable>
                                            <mml:mo stretchy="true">]</mml:mo>
                                        </mml:mrow>
                                    </mml:math>
</disp-formula>
                            </p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>Compute seven matrix multiplications using Strassen&#x2019;s formulas:
                                <disp-formula id="e4">

                                    <mml:math display="block">
                                        <mml:mtable columnalign="left">
                                            <mml:mtr>
                                                <mml:mtd>
                                                    <mml:msub>
                                                        <mml:mi>M</mml:mi>
                                                        <mml:mn>1</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>=</mml:mo>
                                                    <mml:mrow>
                                                        <mml:mo stretchy="true">(</mml:mo>
                                                        <mml:msub>
                                                            <mml:mi>A</mml:mi>
                                                            <mml:mn>11</mml:mn>
                                                        </mml:msub>
                                                        <mml:mo>+</mml:mo>
                                                        <mml:msub>
                                                            <mml:mi>A</mml:mi>
                                                            <mml:mn>22</mml:mn>
                                                        </mml:msub>
                                                        <mml:mo stretchy="true">)</mml:mo>
                                                    </mml:mrow>
                                                    <mml:mrow>
                                                        <mml:mo stretchy="true">(</mml:mo>
                                                        <mml:msub>
                                                            <mml:mi>B</mml:mi>
                                                            <mml:mn>11</mml:mn>
                                                        </mml:msub>
                                                        <mml:mo>+</mml:mo>
                                                        <mml:msub>
                                                            <mml:mi>B</mml:mi>
                                                            <mml:mn>22</mml:mn>
                                                        </mml:msub>
                                                        <mml:mo stretchy="true">)</mml:mo>
                                                    </mml:mrow>
                                                    <mml:mo>,</mml:mo>
                                                </mml:mtd>
                                                <mml:mtd>
                                                    <mml:msub>
                                                        <mml:mi>M</mml:mi>
                                                        <mml:mn>2</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>=</mml:mo>
                                                    <mml:mrow>
                                                        <mml:mo stretchy="true">(</mml:mo>
                                                        <mml:msub>
                                                            <mml:mi>A</mml:mi>
                                                            <mml:mn>21</mml:mn>
                                                        </mml:msub>
                                                        <mml:mo>+</mml:mo>
                                                        <mml:msub>
                                                            <mml:mi>A</mml:mi>
                                                            <mml:mn>22</mml:mn>
                                                        </mml:msub>
                                                        <mml:mo stretchy="true">)</mml:mo>
                                                    </mml:mrow>
                                                    <mml:msub>
                                                        <mml:mi>B</mml:mi>
                                                        <mml:mn>11</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>,</mml:mo>
                                                </mml:mtd>
                                            </mml:mtr>
                                            <mml:mtr>
                                                <mml:mtd>
                                                    <mml:msub>
                                                        <mml:mi>M</mml:mi>
                                                        <mml:mn>3</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>=</mml:mo>
                                                    <mml:msub>
                                                        <mml:mi>A</mml:mi>
                                                        <mml:mn>11</mml:mn>
                                                    </mml:msub>
                                                    <mml:mrow>
                                                        <mml:mo stretchy="true">(</mml:mo>
                                                        <mml:msub>
                                                            <mml:mi>B</mml:mi>
                                                            <mml:mn>12</mml:mn>
                                                        </mml:msub>
                                                        <mml:mo>&#x2212;</mml:mo>
                                                        <mml:msub>
                                                            <mml:mi>B</mml:mi>
                                                            <mml:mn>22</mml:mn>
                                                        </mml:msub>
                                                        <mml:mo stretchy="true">)</mml:mo>
                                                    </mml:mrow>
                                                    <mml:mo>,</mml:mo>
                                                </mml:mtd>
                                                <mml:mtd>
                                                    <mml:msub>
                                                        <mml:mi>M</mml:mi>
                                                        <mml:mn>4</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>=</mml:mo>
                                                    <mml:msub>
                                                        <mml:mi>A</mml:mi>
                                                        <mml:mn>22</mml:mn>
                                                    </mml:msub>
                                                    <mml:mrow>
                                                        <mml:mo stretchy="true">(</mml:mo>
                                                        <mml:msub>
                                                            <mml:mi>B</mml:mi>
                                                            <mml:mn>21</mml:mn>
                                                        </mml:msub>
                                                        <mml:mo>&#x2212;</mml:mo>
                                                        <mml:msub>
                                                            <mml:mi>B</mml:mi>
                                                            <mml:mn>11</mml:mn>
                                                        </mml:msub>
                                                        <mml:mo stretchy="true">)</mml:mo>
                                                    </mml:mrow>
                                                    <mml:mo>,</mml:mo>
                                                </mml:mtd>
                                            </mml:mtr>
                                            <mml:mtr>
                                                <mml:mtd>
                                                    <mml:msub>
                                                        <mml:mi>M</mml:mi>
                                                        <mml:mn>6</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>=</mml:mo>
                                                    <mml:mrow>
                                                        <mml:mo stretchy="true">(</mml:mo>
                                                        <mml:msub>
                                                            <mml:mi>A</mml:mi>
                                                            <mml:mn>21</mml:mn>
                                                        </mml:msub>
                                                        <mml:mo>&#x2212;</mml:mo>
                                                        <mml:msub>
                                                            <mml:mi>A</mml:mi>
                                                            <mml:mn>11</mml:mn>
                                                        </mml:msub>
                                                        <mml:mo stretchy="true">)</mml:mo>
                                                    </mml:mrow>
                                                    <mml:mrow>
                                                        <mml:mo stretchy="true">(</mml:mo>
                                                        <mml:msub>
                                                            <mml:mi>B</mml:mi>
                                                            <mml:mn>11</mml:mn>
                                                        </mml:msub>
                                                        <mml:mo>+</mml:mo>
                                                        <mml:msub>
                                                            <mml:mi>B</mml:mi>
                                                            <mml:mn>12</mml:mn>
                                                        </mml:msub>
                                                        <mml:mo stretchy="true">)</mml:mo>
                                                    </mml:mrow>
                                                    <mml:mo>,</mml:mo>
                                                </mml:mtd>
                                                <mml:mtd>
                                                    <mml:msub>
                                                        <mml:mi>M</mml:mi>
                                                        <mml:mn>7</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>=</mml:mo>
                                                    <mml:mrow>
                                                        <mml:mo stretchy="true">(</mml:mo>
                                                        <mml:msub>
                                                            <mml:mi>A</mml:mi>
                                                            <mml:mn>12</mml:mn>
                                                        </mml:msub>
                                                        <mml:mo>&#x2212;</mml:mo>
                                                        <mml:msub>
                                                            <mml:mi>A</mml:mi>
                                                            <mml:mn>22</mml:mn>
                                                        </mml:msub>
                                                        <mml:mo stretchy="true">)</mml:mo>
                                                    </mml:mrow>
                                                    <mml:mrow>
                                                        <mml:mo stretchy="true">(</mml:mo>
                                                        <mml:msub>
                                                            <mml:mi>B</mml:mi>
                                                            <mml:mn>21</mml:mn>
                                                        </mml:msub>
                                                        <mml:mo>+</mml:mo>
                                                        <mml:msub>
                                                            <mml:mi>B</mml:mi>
                                                            <mml:mn>22</mml:mn>
                                                        </mml:msub>
                                                        <mml:mo stretchy="true">)</mml:mo>
                                                    </mml:mrow>
                                                    <mml:mo>.</mml:mo>
                                                </mml:mtd>
                                            </mml:mtr>
                                        </mml:mtable>
                                    </mml:math>
</disp-formula>
                            </p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>Combine results to construct the final matrix product 
                                <mml:math display="inline">
                                    <mml:mi>C</mml:mi>
                                    <mml:mo>=</mml:mo>
                                    <mml:mrow>
                                        <mml:mo stretchy="true">[</mml:mo>
                                        <mml:mtable columnalign="center">
                                            <mml:mtr>
                                                <mml:mtd>
                                                    <mml:msub>
                                                        <mml:mi>C</mml:mi>
                                                        <mml:mn>11</mml:mn>
                                                    </mml:msub>
                                                </mml:mtd>
                                                <mml:mtd>
                                                    <mml:msub>
                                                        <mml:mi>C</mml:mi>
                                                        <mml:mn>12</mml:mn>
                                                    </mml:msub>
                                                </mml:mtd>
                                            </mml:mtr>
                                            <mml:mtr>
                                                <mml:mtd>
                                                    <mml:msub>
                                                        <mml:mi>C</mml:mi>
                                                        <mml:mn>21</mml:mn>
                                                    </mml:msub>
                                                </mml:mtd>
                                                <mml:mtd>
                                                    <mml:msub>
                                                        <mml:mi>C</mml:mi>
                                                        <mml:mn>22</mml:mn>
                                                    </mml:msub>
                                                </mml:mtd>
                                            </mml:mtr>
                                        </mml:mtable>
                                        <mml:mo stretchy="true">]</mml:mo>
                                    </mml:mrow>
                                </mml:math>:
                                <disp-formula id="e5">

                                    <mml:math display="block">
                                        <mml:mtable columnalign="left">
                                            <mml:mtr>
                                                <mml:mtd>
                                                    <mml:msub>
                                                        <mml:mi>C</mml:mi>
                                                        <mml:mn>11</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>=</mml:mo>
                                                    <mml:msub>
                                                        <mml:mi>M</mml:mi>
                                                        <mml:mn>1</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>+</mml:mo>
                                                    <mml:msub>
                                                        <mml:mi>M</mml:mi>
                                                        <mml:mn>4</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>&#x2212;</mml:mo>
                                                    <mml:msub>
                                                        <mml:mi>M</mml:mi>
                                                        <mml:mn>5</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>+</mml:mo>
                                                    <mml:msub>
                                                        <mml:mi>M</mml:mi>
                                                        <mml:mn>7</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>;</mml:mo>
                                                </mml:mtd>
                                                <mml:mtd>
                                                    <mml:msub>
                                                        <mml:mi>C</mml:mi>
                                                        <mml:mn>12</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>=</mml:mo>
                                                    <mml:msub>
                                                        <mml:mi>M</mml:mi>
                                                        <mml:mn>3</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>+</mml:mo>
                                                    <mml:msub>
                                                        <mml:mi>M</mml:mi>
                                                        <mml:mn>5</mml:mn>
                                                    </mml:msub>
                                                </mml:mtd>
                                            </mml:mtr>
                                            <mml:mtr>
                                                <mml:mtd>
                                                    <mml:msub>
                                                        <mml:mi>C</mml:mi>
                                                        <mml:mn>21</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>=</mml:mo>
                                                    <mml:msub>
                                                        <mml:mi>M</mml:mi>
                                                        <mml:mn>2</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>+</mml:mo>
                                                    <mml:msub>
                                                        <mml:mi>M</mml:mi>
                                                        <mml:mn>4</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>;</mml:mo>
                                                </mml:mtd>
                                                <mml:mtd>
                                                    <mml:msub>
                                                        <mml:mi>C</mml:mi>
                                                        <mml:mn>22</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>=</mml:mo>
                                                    <mml:msub>
                                                        <mml:mi>M</mml:mi>
                                                        <mml:mn>1</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>&#x2212;</mml:mo>
                                                    <mml:msub>
                                                        <mml:mi>M</mml:mi>
                                                        <mml:mn>2</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>+</mml:mo>
                                                    <mml:msub>
                                                        <mml:mi>M</mml:mi>
                                                        <mml:mn>3</mml:mn>
                                                    </mml:msub>
                                                    <mml:mo>+</mml:mo>
                                                    <mml:msub>
                                                        <mml:mi>M</mml:mi>
                                                        <mml:mn>6</mml:mn>
                                                    </mml:msub>
                                                </mml:mtd>
                                            </mml:mtr>
                                        </mml:mtable>
                                    </mml:math>
</disp-formula>
                            </p>
                        </list-item>
                    </list>
                </p>
                <p>Using this approach, Strassen&#x2019;s Algorithm reduces matrix multiplication to O(
                    <italic toggle="yes">n</italic>
                    <sup>2.81</sup>), making it more efficient for large matrices.</p>
            </sec>
            <sec id="sec12">
                <title>2.3 Combining MCM and strassen&#x2019;s algorithm</title>
                <p>MCM focuses on optimizing the order of multiplication, while Strassen&#x2019;s Algorithm optimizes the multiplication process itself. A hybrid approach that merges MCM with Strassen&#x2019;s Algorithm selectively applies Strassen&#x2019;s method only when matrix dimensions exceed a certain threshold (e.g., 128&#x00d7;128), leading to significant computational savings while avoiding overhead for small matrices.</p>
            </sec>
        </sec>
        <sec id="sec13">
            <title>3. Proposed algorithm</title>
            <p>The hybrid algorithm consists of two main phases: (1) Matrix Chain Order Optimization (MCM-DP). It uses DP with Memoization to determine the optimal parenthesization for matrix multiplication and reduces redundant computations and improves efficiency. (2) Hybrid Multiplication Strategy. Strassen&#x2019;s Algorithm is applied when matrix dimensions 
                <italic toggle="yes">n</italic>
 &#x2265; 128 to exploit its O(
                <italic toggle="yes">n</italic>
                <sup>2.81</sup>) complexity. For smaller matrices, standard multiplication is used to avoid Strassen&#x2019;s recursive overhead.</p>
            <sec id="sec14">
                <title>3.1 Algorithm pseudocode</title>
                <p>

                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">

                        <monospace>import numpy as np</monospace>

                        <monospace>def matrix_chain_order(p):</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;n = len(p) - 1 # Number of matrices</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;m = np.full((n, n), float('inf')) # Cost table</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;s = np.zeros((n, n), dtype=int) # Parenthesization table</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;for i in range(n):</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;m[i, i] = 0 # Cost of multiplying one matrix is zero</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;for chain_length in range(2,n+1): # Chain length 2 to n</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;for i in range(n - chain_length + 1):</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;j = i + chain_length - 1</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;for k in range(i, j):</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;cost=m[i,k]+m[k+1,j]+p[i]*p[k+1]*p[j+1]</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;if cost &lt; m[i, j]:</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;m[i, j] = cost</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;s[i, j] = k</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;return m, s</monospace>

                        <monospace>def strassen_matrix_multiply(A, B):</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;n = A.shape[0]</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;if n == 1:</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;return A * B</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;mid = n // 2</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;A11, A12, A21, A22 = A[:mid, :mid], A[:mid, mid:],
</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;A[mid:, :mid], A[mid:, mid:]</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;B11, B12, B21, B22 = B[:mid, :mid], B[:mid, mid:],
</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;B[mid:, :mid], B[mid:, mid:]</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;M1 = strassen_matrix_multiply(A11 + A22, B11 + B22)</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;M2 = strassen_matrix_multiply(A21 + A22, B11)</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;M3 = strassen_matrix_multiply(A11, B12 - B22)</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;M4 = strassen_matrix_multiply(A22, B21 - B11)</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;M5 = strassen_matrix_multiply(A11 + A12, B22)</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;M6 = strassen_matrix_multiply(A21 - A11, B11 + B12)</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;M7 = strassen_matrix_multiply(A12 - A22, B21 + B22)</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;C11 = M1 + M4 - M5 + M7</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;C12 = M3 + M5</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;C21 = M2 + M4</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;C22 = M1 - M2 + M3 + M6</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;C = np.vstack((np.hstack((C11,C12)),np.hstack((C21,C22))))</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;return C</monospace>

                        <monospace>def hybrid_matrix_chain_multiplication(p, matrices):</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;m, s = matrix_chain_order(p)</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;n = len(matrices)</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;def multiply_recursive(i, j):</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;if i == j:</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;return matrices[i]</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;k = s[i, j]</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;A = multiply_recursive(i, k)</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;B = multiply_recursive(k + 1, j)</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;if A.shape[0]==A.shape[1] and B.shape[0]==B.shape[1]</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;and A.shape[0] % 2 == 0:</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;return strassen_matrix_multiply(A, B)</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;else:</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;return np.dot(A, B)</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;return multiply_recursive(0, n - 1)</monospace>
</preformat>
                </p>
            </sec>
            <sec id="sec15">
                <title>3.2 Time complexity analysis</title>
                <p>In this section, we provide the time complex analysis of the proposed algorithm by comparing with the existing algorithms.</p>
                <p>The 
                    <xref ref-type="table" rid="T1">
Table 1</xref> summarizes the key steps of the proposed hybrid Matrix Chain Multiplication (MCM) approach, highlighting the methods used and their respective optimizations. It demonstrates how dynamic programming optimizes multiplication order, while the hybrid strategy selectively applies Strassen&#x2019;s algorithm for improved computational efficiency and performance. The standard MCM (DP-based) complexity in order computation is O(
                    <italic toggle="yes">n</italic>
                    <sup>3</sup>) and Multiplication cost is O(
                    <italic toggle="yes">n</italic>
                    <sup>3</sup>) (Standard), whereas the hybrid approach complexity in order computation is O(
                    <italic toggle="yes">n</italic>
                    <sup>3</sup>) (same as DP-MCM) and hybrid Multiplication cost is O(
                    <italic toggle="yes">n</italic>
                    <sup>2.81</sup>) (when using Strassen&#x2019;s Algorithm), O(
                    <italic toggle="yes">n</italic>
                    <sup>3</sup>) (for standard multiplication on small matrices). Overall speedup: ~30&#x2013;40% reduction in multiplication time.</p>
                <table-wrap id="T1" orientation="portrait" position="float">
                    <label>
Table 1. </label>
                    <caption>
                        <title>Summary of the hybrid algorithm.</title>
                    </caption>
                    <table content-type="article-table" frame="hsides">
                        <thead>
                            <tr>
                                <th align="left" colspan="1" rowspan="1" valign="top">Step</th>
                                <th align="left" colspan="1" rowspan="1" valign="top">Method used</th>
                                <th align="left" colspan="1" rowspan="1" valign="top">Optimization</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Compute MCM order</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Dynamic Programming</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Minimizes scalar multiplications</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Select Multiplication Strategy</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Hybrid (Strassen + Standard)</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Applies Strassen only for large matrices</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Execute Multiplication</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Recursive MCM Execution</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Uses optimal order from DP</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Compute Final Result</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Standard or Strassen Multiplication</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Achieves best performance</td>
                            </tr>
                        </tbody>
                    </table>
                </table-wrap>
                <p>The proposed algorithm has practical applicability (i) Compare performance in real-world applications such as machine learning (e.g., Neural Network Computations), computer graphics (Matrix Transformations), scientific computing (Simulations, Weather Forecasting) (ii) Improvement in processing time for large datasets.</p>
                <p>To validate the hybrid approach, we can run experiments comparing execution time and memory usage. Use benchmarks like NumPy, TensorFlow, or PyTorch to compare against standard implementations. The provided 
                    <xref ref-type="fig" rid="f1">
Figure 1</xref> compares execution times for different matrix multiplication methods across varying matrix sizes. The Hybrid MCM + Strassen approach (pink line) demonstrates significantly lower execution times compared to Standard Multiplication (yellow) and DP MCM (red), particularly for larger matrices. This validates the efficiency gains achieved by incorporating Strassen&#x2019;s algorithm selectively.</p>
                <fig fig-type="figure" id="f1" orientation="portrait" position="float">
                    <label>
Figure 1. </label>
                    <caption>
                        <title>Performance comparison in exaction time.</title>
                    </caption>
                    <graphic id="gr1" orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/180873/4f1930d6-0759-46a4-bd52-cf01ae65c18a_figure1.gif"/>
                </fig>
                <p>The 
                    <xref ref-type="fig" rid="f2">
Figure 2</xref> illustrates the speedup factor of the Hybrid MCM + Strassen algorithm compared to Standard Multiplication across varying matrix sizes. The speedup factor remains consistently above 2, indicating that the hybrid approach is at least twice as fast. A peak speedup of approximately 2.14 is observed for smaller matrices before stabilizing. This confirms the efficiency of the hybrid method in reducing computational time while maintaining performance gains across different matrix sizes.</p>
                <fig fig-type="figure" id="f2" orientation="portrait" position="float">
                    <label>
Figure 2. </label>
                    <caption>
                        <title>Speedup of proposed algorithm.</title>
                    </caption>
                    <graphic id="gr2" orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/180873/4f1930d6-0759-46a4-bd52-cf01ae65c18a_figure2.gif"/>
                </fig>
                <p>The 
                    <xref ref-type="fig" rid="f3">
Figure 3</xref> compares memory usage across different matrix multiplication methods as matrix size increases. Standard Multiplication and DP MCM exhibit the highest memory consumption, followed by Strassen&#x2019;s Algorithm. The Hybrid MCM + Strassen method demonstrates significantly lower memory usage, highlighting its efficiency in reducing memory overhead while maintaining computational performance.</p>
                <fig fig-type="figure" id="f3" orientation="portrait" position="float">
                    <label>
Figure 3. </label>
                    <caption>
                        <title>Memory usage comparison.</title>
                    </caption>
                    <graphic id="gr3" orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/180873/4f1930d6-0759-46a4-bd52-cf01ae65c18a_figure3.gif"/>
                </fig>
                <p>The 
                    <xref ref-type="fig" rid="f4">
Figure 4</xref> presents a comparison of numerical accuracy across different matrix multiplication methods. Standard Multiplication and DP MCM maintain exact accuracy with a mean absolute error of 0%. In contrast, Strassen&#x2019;s Algorithm and the Hybrid MCM + Strassen approach introduce increasing approximation errors as matrix size grows, with Strassen&#x2019;s Algorithm exhibiting the highest error among the methods evaluated.</p>
                <fig fig-type="figure" id="f4" orientation="portrait" position="float">
                    <label>
Figure 4. </label>
                    <caption>
                        <title>Numerical accuracy comparison.</title>
                    </caption>
                    <graphic id="gr4" orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/180873/4f1930d6-0759-46a4-bd52-cf01ae65c18a_figure4.gif"/>
                </fig>
                <p>

                    <bold>4. Numerical example</bold>
                </p>
                <p>Consider four matrices with the following dimensions:
                    <disp-formula id="e7">

                        <mml:math display="block">
                            <mml:msub>
                                <mml:mi>A</mml:mi>
                                <mml:mn>1</mml:mn>
                            </mml:msub>
                            <mml:mrow>
                                <mml:mo stretchy="true">(</mml:mo>
                                <mml:mn>10</mml:mn>
                                <mml:mo>&#x00d7;</mml:mo>
                                <mml:mn>30</mml:mn>
                                <mml:mo stretchy="true">)</mml:mo>
                            </mml:mrow>
                            <mml:mo>,</mml:mo>
                            <mml:mspace width="1em"/>
                            <mml:msub>
                                <mml:mi>A</mml:mi>
                                <mml:mn>2</mml:mn>
                            </mml:msub>
                            <mml:mrow>
                                <mml:mo stretchy="true">(</mml:mo>
                                <mml:mn>30</mml:mn>
                                <mml:mo>&#x00d7;</mml:mo>
                                <mml:mn>5</mml:mn>
                                <mml:mo stretchy="true">)</mml:mo>
                            </mml:mrow>
                            <mml:mo>,</mml:mo>
                            <mml:mspace width="1em"/>
                            <mml:msub>
                                <mml:mi>A</mml:mi>
                                <mml:mn>3</mml:mn>
                            </mml:msub>
                            <mml:mrow>
                                <mml:mo stretchy="true">(</mml:mo>
                                <mml:mn>5</mml:mn>
                                <mml:mo>&#x00d7;</mml:mo>
                                <mml:mn>60</mml:mn>
                                <mml:mo stretchy="true">)</mml:mo>
                            </mml:mrow>
                            <mml:mo>,</mml:mo>
                            <mml:mspace width="1em"/>
                            <mml:msub>
                                <mml:mi>A</mml:mi>
                                <mml:mn>4</mml:mn>
                            </mml:msub>
                            <mml:mrow>
                                <mml:mo stretchy="true">(</mml:mo>
                                <mml:mn>60</mml:mn>
                                <mml:mo>&#x00d7;</mml:mo>
                                <mml:mn>20</mml:mn>
                                <mml:mo stretchy="true">)</mml:mo>
                            </mml:mrow>
                        </mml:math>
</disp-formula>
                </p>
                <p>The goal is to determine the optimal parenthesization that minimizes scalar multiplications using Dynamic Programming (MCM-DP) and then apply Strassen&#x2019;s Algorithm for large matrices.</p>
                <p>

                    <italic toggle="yes">Step 1: Compute the Cost Matrix (MCM-DP)</italic>
                </p>
                <p>We define a cost table 
                    <italic toggle="yes">m</italic> [
                    <italic toggle="yes">i</italic>][
                    <italic toggle="yes">j</italic>] where each entry represents the minimum number of scalar multiplications needed to multiply matrices from 
                    <italic toggle="yes">A
                        <sub>i</sub>
                    </italic> to 
                    <italic toggle="yes">A
                        <sub>j</sub>.</italic>

                    <disp-formula id="e8">

                        <mml:math display="block">
                            <mml:mi>p</mml:mi>
                            <mml:mo>=</mml:mo>
                            <mml:mrow>
                                <mml:mo stretchy="true">[</mml:mo>
                                <mml:mn>10</mml:mn>
                                <mml:mo>,</mml:mo>
                                <mml:mspace width="0.1em"/>
                                <mml:mn>30</mml:mn>
                                <mml:mo>,</mml:mo>
                                <mml:mspace width="0.1em"/>
                                <mml:mn>5</mml:mn>
                                <mml:mo>,</mml:mo>
                                <mml:mspace width="0.1em"/>
                                <mml:mn>60</mml:mn>
                                <mml:mo>,</mml:mo>
                                <mml:mspace width="0.1em"/>
                                <mml:mn>20</mml:mn>
                                <mml:mo stretchy="true">]</mml:mo>
                            </mml:mrow>
                        </mml:math>
</disp-formula>

                    <disp-formula id="e9">

                        <mml:math display="block">
                            <mml:mi>m</mml:mi>
                            <mml:mrow>
                                <mml:mo stretchy="true">[</mml:mo>
                                <mml:mi>i</mml:mi>
                                <mml:mo stretchy="true">]</mml:mo>
                            </mml:mrow>
                            <mml:mrow>
                                <mml:mo stretchy="true">[</mml:mo>
                                <mml:mi>j</mml:mi>
                                <mml:mo stretchy="true">]</mml:mo>
                            </mml:mrow>
                            <mml:mo>=</mml:mo>
                            <mml:munder>
                                <mml:mo>min</mml:mo>
                                <mml:mrow>
                                    <mml:mi>i</mml:mi>
                                    <mml:mo>&#x2264;</mml:mo>
                                    <mml:mi>k</mml:mi>
                                    <mml:mo>&lt;</mml:mo>
                                    <mml:mi>j</mml:mi>
                                </mml:mrow>
                            </mml:munder>
                            <mml:mrow>
                                <mml:mo stretchy="true">(</mml:mo>
                                <mml:mi>m</mml:mi>
                                <mml:mrow>
                                    <mml:mo stretchy="true">[</mml:mo>
                                    <mml:mi>i</mml:mi>
                                    <mml:mo stretchy="true">]</mml:mo>
                                </mml:mrow>
                                <mml:mrow>
                                    <mml:mo stretchy="true">[</mml:mo>
                                    <mml:mi>k</mml:mi>
                                    <mml:mo stretchy="true">]</mml:mo>
                                </mml:mrow>
                                <mml:mo>+</mml:mo>
                                <mml:mi>m</mml:mi>
                                <mml:mrow>
                                    <mml:mo stretchy="true">[</mml:mo>
                                    <mml:mi>k</mml:mi>
                                    <mml:mo>+</mml:mo>
                                    <mml:mn>1</mml:mn>
                                    <mml:mo stretchy="true">]</mml:mo>
                                </mml:mrow>
                                <mml:mrow>
                                    <mml:mo stretchy="true">[</mml:mo>
                                    <mml:mi>j</mml:mi>
                                    <mml:mo stretchy="true">]</mml:mo>
                                </mml:mrow>
                                <mml:mo>+</mml:mo>
                                <mml:msub>
                                    <mml:mi>p</mml:mi>
                                    <mml:mrow>
                                        <mml:mi>i</mml:mi>
                                        <mml:mo>&#x2212;</mml:mo>
                                        <mml:mn>1</mml:mn>
                                    </mml:mrow>
                                </mml:msub>
                                <mml:msub>
                                    <mml:mi>p</mml:mi>
                                    <mml:mi>k</mml:mi>
                                </mml:msub>
                                <mml:msub>
                                    <mml:mi>p</mml:mi>
                                    <mml:mi>j</mml:mi>
                                </mml:msub>
                                <mml:mo stretchy="true">)</mml:mo>
                            </mml:mrow>
                        </mml:math>
</disp-formula>
                </p>
                <p>

                    <bold>Computing Costs:</bold>
                </p>
                <p>Chain Length = 2, for individual matrix multiplications:</p>
                <p>m[1,2] = 10 &#x00d7; 30 &#x00d7; 5 = 1500m[1,2] = 10 \times 30 \times 5 = 1500m[1,2] = 10 &#x00d7; 30 &#x00d7; 5 = 1500
m[2,3] = 30 &#x00d7; 5 &#x00d7; 60 = 9000m[2,3] = 30 \times 5 \times 60 = 9000m[2,3] = 30 &#x00d7; 5 &#x00d7; 60 = 9000
m[3,4] = 5 &#x00d7; 60 &#x00d7; 20 = 6000m[3,4] = 5 \times 60 \times 20 = 6000m[3,4] = 5 &#x00d7; 60 &#x00d7; 20 = 6000</p>
                <p>Chain Length = 3</p>
                <p>For m[1,3]:</p>
                <p>Option 1: (m[1,2] + m[2,3] + (10 &#x00d7; 5 &#x00d7; 60)) = (1500 + 9000 + 3000) = 13500</p>
                <p>Option 2: (m[2,3] + m[1,2] + (10 &#x00d7; 30 &#x00d7; 60)) = (1500 + 6000 + 18000) = 25500</p>
                <p>m[1,3] = min(13500,25500) = 13500</p>
                <p>For m[2,4]:</p>
                <p>Option 1: (m[2,3] + m[3,4] + (30 &#x00d7; 5 &#x00d7; 20)) = (9000 + 6000 + 3000) = 18000</p>
                <p>Option 2: (m[3,4] + m[2,3] + (30 &#x00d7; 60&#x00d7; 20)) = (9000 + 6000 + 36000) = 51000</p>
                <p>m[2,4] = min(18000, 51000) = 18000</p>
                <p>Chain Length = 4 (Final Computation)</p>
                <p>For m[1,4]:</p>
                <p>Option 1: (m[1,3] + m[3,4] + (10 &#x00d7; 30 &#x00d7; 20)) = (13500 + 6000 + 6000) = 25500</p>
                <p>Option 2: (m[1,2] + m[2,4] + (10 &#x00d7; 5 &#x00d7; 20)) = (1500 + 18000 + 1000) = 20500 m[1,4] = min(25500,20500) = 20500</p>
                <p>From the parenthesization table 
                    <italic toggle="yes">s</italic> [
                    <italic toggle="yes">i</italic>][
                    <italic toggle="yes">j</italic>], the optimal order is (
                    <italic toggle="yes">A</italic>
                    <sub>1</sub> &#x00d7; (
                    <italic toggle="yes">A</italic>
                    <sub>2</sub> &#x00d7; (
                    <italic toggle="yes">A</italic>
                    <sub>3</sub> &#x00d7; 
                    <italic toggle="yes">A</italic>
                    <sub>4</sub>))).</p>
                <p>

                    <italic toggle="yes">Step 2: Hybrid Multiplication Execution</italic>
                </p>
                <p>Now, we execute multiplication in the computed order. Multiplying 
                    <italic toggle="yes">A</italic>
                    <sub>3</sub>(5 &#x00d7; 60) and 

                    <italic toggle="yes">A</italic>
                    <sub>4</sub>(60 &#x00d7; 20), we have 5 &#x00d7; 60 &#x00d7; 20 = 6000 operations. Multiplying 
                    <italic toggle="yes">A</italic>
                    <sub>2</sub>(30 &#x00d7; 5) and Result (5 &#x00d7; 20), we get 30 &#x00d7; 5 &#x00d7; 20 = 3000 operations. Multiplying 
                    <italic toggle="yes">A</italic>
                    <sub>1</sub>(10 &#x00d7; 30) and Result (30 &#x00d7; 20), we get 10 &#x00d7; 30 &#x00d7; 20 = 6000 operations. The total multiplications required are 15000 as shown in 
                    <xref ref-type="table" rid="T2">
Table 2</xref>.</p>
                <table-wrap id="T2" orientation="portrait" position="float">
                    <label>
Table 2. </label>
                    <caption>
                        <title>Computation summary.</title>
                    </caption>
                    <table content-type="article-table" frame="hsides">
                        <thead>
                            <tr>
                                <th align="left" colspan="1" rowspan="1" valign="top">Step</th>
                                <th align="left" colspan="1" rowspan="1" valign="top">Matrices multiplied</th>
                                <th align="left" colspan="1" rowspan="1" valign="top">Dimension</th>
                                <th align="left" colspan="1" rowspan="1" valign="top">Operations</th>
                                <th align="left" colspan="1" rowspan="1" valign="top">
Method</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">1</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">
                                    <italic toggle="yes">A</italic>
                                    <sub>3</sub> &#x00d7; 
                                    <italic toggle="yes">A</italic>
                                    <sub>4</sub>
                                </td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">5 &#x00d7; 60, 60 &#x00d7; 20</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">6000</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Standard</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">2</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">
                                    <italic toggle="yes">A</italic>
                                    <sub>2</sub> &#x00d7; (
                                    <italic toggle="yes">A</italic>
                                    <sub>3</sub> &#x00d7; 
                                    <italic toggle="yes">A</italic>
                                    <sub>4</sub>)</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">30 &#x00d7; 5, 5 &#x00d7; 20</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">3000</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Standard</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">3</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">
                                    <italic toggle="yes">A</italic>
                                    <sub>1</sub> &#x00d7; (
                                    <italic toggle="yes">A</italic>
                                    <sub>2</sub> &#x00d7; (
                                    <italic toggle="yes">A</italic>
                                    <sub>3</sub> &#x00d7; 
                                    <italic toggle="yes">A</italic>
                                    <sub>4</sub>))</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">10 &#x00d7; 30, 30 &#x00d7; 20</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">6000</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Standard</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Total Multiplications</td>
                                <td colspan="1" rowspan="1"/>
                                <td colspan="1" rowspan="1"/>
                                <td align="left" colspan="1" rowspan="1" valign="middle">15000</td>
                                <td colspan="1" rowspan="1"/>
                            </tr>
                        </tbody>
                    </table>
                </table-wrap>
                <p>The graphical comparisons and benchmark data to compare the Hybrid MCM vs. Standard MCM is shown in 
                    <xref ref-type="fig" rid="f5">
Figure 5</xref>.</p>
                <fig fig-type="figure" id="f5" orientation="portrait" position="float">
                    <label>
Figure 5. </label>
                    <caption>
                        <title>Execution time comparison graph for Standard MCM vs. Hybrid MCM.</title>
                    </caption>
                    <graphic id="gr5" orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/180873/4f1930d6-0759-46a4-bd52-cf01ae65c18a_figure5.gif"/>
                </fig>
                <p>Observations: For small matrix chains (3-6 matrices), both techniques perform similarly. For larger matrix chains (7+ matrices), the Hybrid MCM is slightly faster, as Strassen&#x2019;s Algorithm is selectively applied to large matrices. The hybrid approach optimally balances standard multiplication and Strassen&#x2019;s Algorithm to improve efficiency.</p>
                <p>The 
                    <xref ref-type="fig" rid="f6">
Figure 6</xref> compares the number of scalar multiplications required by Standard MCM and Hybrid MCM (Strassen) for different numbers of matrices. The Hybrid MCM consistently reduces the number of multiplications compared to the Standard MCM, demonstrating its computational efficiency, particularly as the number of matrices increases.</p>
                <fig fig-type="figure" id="f6" orientation="portrait" position="float">
                    <label>
Figure 6. </label>
                    <caption>
                        <title>Scalar multiplication comparison graph for Standard MCM vs. Hybrid MCM.</title>
                    </caption>
                    <graphic id="gr6" orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/180873/4f1930d6-0759-46a4-bd52-cf01ae65c18a_figure6.gif"/>
                </fig>
                <p>One can observe that the proposed hybrid MCM significantly reduces scalar multiplications for larger matrix chains (size &#x2265; 6). For smaller matrices, the difference is minimal since Strassen&#x2019;s Algorithm is only applied to larger matrices (&#x2265;128&#x00d7;128). On average, the Hybrid MCM achieves a ~25% reduction in scalar operations.</p>
                <p>The 
                    <xref ref-type="fig" rid="f7">
Figure 7</xref> compares memory usage between Standard MCM and Hybrid MCM (Strassen) for different numbers of matrices. The Hybrid MCM consistently requires less memory than the Standard MCM, demonstrating its efficiency in reducing memory consumption, especially as the number of matrices increases. We can note that the hybrid MCM reduces memory usage by ~25% for large matrices (size &#x2265; 128&#x00d7;128). For small matrix chains, the difference is negligible, as Strassen&#x2019;s Algorithm is not applied. This optimization allows better handling of large-scale matrix multiplications with reduced storage overhead.</p>
                <fig fig-type="figure" id="f7" orientation="portrait" position="float">
                    <label>
Figure 7. </label>
                    <caption>
                        <title>Memory usage comparison graph for Standard MCM vs. Hybrid MCM.</title>
                    </caption>
                    <graphic id="gr7" orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/180873/4f1930d6-0759-46a4-bd52-cf01ae65c18a_figure7.gif"/>
                </fig>
                <p>From the 
                    <xref ref-type="table" rid="T3">
Table 3</xref>, we have observed that following
                    <list list-type="bullet">
                        <list-item>
                            <label>&#x2022;</label>
                            <p>Execution Time: Hybrid MCM is 
                                <italic toggle="yes">faster for larger matrices</italic> but has slight fluctuations due to overhead.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>Scalar Multiplications: Hybrid MCM 
                                <italic toggle="yes">reduces operations by ~25%</italic>, improving efficiency.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>Memory Usage: Hybrid MCM 
                                <italic toggle="yes">consumes less memory (~25% less for large matrices)</italic> due to optimized multiplication.</p>
                        </list-item>
                    </list>
                </p>
                <table-wrap id="T3" orientation="portrait" position="float">
                    <label>
Table 3. </label>
                    <caption>
                        <title>Summary table comparing Standard MCM vs. Hybrid MCM.</title>
                    </caption>
                    <table content-type="article-table" frame="hsides">
                        <thead>
                            <tr>
                                <th align="left" colspan="1" rowspan="1" valign="top">Matrix Size</th>
                                <th align="left" colspan="1" rowspan="1" valign="top">Execution Time (Standard MCM)</th>
                                <th align="left" colspan="1" rowspan="1" valign="top">Execution Time (Hybrid MCM)</th>
                                <th align="left" colspan="1" rowspan="1" valign="top">Scalar Multiplications (Standard MCM)</th>
                                <th align="left" colspan="1" rowspan="1" valign="top">Scalar Multiplications (Hybrid MCM)</th>
                                <th align="left" colspan="1" rowspan="1" valign="top">Memory Usage (Standard MCM)</th>
                                <th align="left" colspan="1" rowspan="1" valign="top">Memory Usage (Hybrid MCM)</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">3</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">0.0031 sec</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">0.0029 sec</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">3.33M</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">3.33M</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">47,232</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">47,232</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">4</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">0.0613 sec</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">0.0575 sec</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">46.7M</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">35.0M</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">260,378</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">195,283</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">5</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">0.0851 sec</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">0.0854 sec</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">107.6M</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">80.7M</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">472,133</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">354,099</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">6</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">0.2224 sec</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">0.2416 sec</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">105.1M</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">81.7M</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">450,626</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">350,464</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">7</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">0.0735 sec</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">0.0732 sec</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">37.4M</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">28.7M</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">225,785</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">178,234</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">8</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">0.1540 sec</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">0.1421 sec</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">70.8M</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">54.3M</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">411,701</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">312,042</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">9</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">0.2958 sec</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">0.2809 sec</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">157.6M</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">119.2M</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">574,572</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">439,758</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">10</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">0.3566 sec</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">0.3897 sec</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">236.4M</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">182.7M</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">834,955</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">638,660</td>
                            </tr>
                        </tbody>
                    </table>
                </table-wrap>
                <p>Now, we apply the implementation of the proposed algorithm in Python using the code presented in Section 3.1.
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">

                        <monospace># Given example matrices</monospace>

                        <monospace>dimensions = [10, 30, 5, 60, 20]</monospace>

                        <monospace>matrix_A1 = np.random.randint(1, 10, (10, 30))</monospace>

                        <monospace>matrix_A2 = np.random.randint(1, 10, (30, 5))</monospace>

                        <monospace>matrix_A3 = np.random.randint(1, 10, (5, 60))</monospace>

                        <monospace>matrix_A4 = np.random.randint(1, 10, (60, 20))</monospace>

                        <monospace>matrices = [matrix_A1, matrix_A2, matrix_A3, matrix_A4]</monospace>

                        <monospace># Execute Hybrid MCM</monospace>

                        <monospace>result = hybrid_matrix_chain_multiplication(dimensions, matrices)</monospace>

                        <monospace>print("Final Result Matrix Shape:", result.shape)</monospace>

                        <monospace>&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;
                            <styled-content style="color:#0D0D0D">Final Result Matrix Shape: (10, 20)</styled-content>
</monospace>
</preformat>
                </p>
                <p>Here the Final Result Matrix Shape means that the output matrix, after performing the proposed hybrid MCM using DP (MCM-DP) and Strassen&#x2019;s Algorithm, has 10 rows and 20 columns. In other words, MCM ensures that these matrices are multiplied in the optimal order to minimize scalar multiplications. The final result of multiplying A1 &#x00d7; A2 &#x00d7; A3 &#x00d7; A4 will have the number of rows from the first matrix will be 10 and the number of columns from the last matrix will be 20. Hence, the final matrix has a shape of (10, 20).</p>
                <p>The heatmap shown in 
                    <xref ref-type="fig" rid="f8">
Figure 8</xref> illustrates a strong positive correlation among execution time, scalar multiplications, and memory usage. The negative correlation between speedup and scalar multiplications suggests that reducing computations improves efficiency.</p>
                <fig fig-type="figure" id="f8" orientation="portrait" position="float">
                    <label>
Figure 8. </label>
                    <caption>
                        <title>Correlation heatmap for performance metrics.</title>
                    </caption>
                    <graphic id="gr8" orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/180873/4f1930d6-0759-46a4-bd52-cf01ae65c18a_figure8.gif"/>
                </fig>
            </sec>
        </sec>
        <sec id="sec16" sec-type="conclusion">
            <title>5. Conclusion</title>
            <p>In this research, we proposed and analyzed a Hybrid Optimization Technique for Matrix Chain Multiplication (MCM) that integrates Strassen&#x2019;s Algorithm with dynamic programming-based optimization. Our hybrid approach selectively applies Strassen&#x2019;s Algorithm to larger matrix multiplications while leveraging traditional dynamic programming for smaller cases, striking a balance between computational efficiency and memory usage. Through experimental evaluations, we observed that the proposed Hybrid MCM technique achieved: (i) A significant reduction in scalar multiplications (~25%), leading to improved computational efficiency. (ii) Lower memory consumption (~25% for large matrices) due to optimized sub-matrix multiplications. (iii) Comparable or improved execution times
                <bold>,
</bold> particularly for larger matrix chains, demonstrating better scalability. While Strassen&#x2019;s Algorithm accelerates multiplication for sufficiently large matrices, its overhead for small matrices can counteract efficiency gains. Hence, our hybrid approach dynamically determines when to apply Strassen&#x2019;s Algorithm to maximize performance while minimizing unnecessary computational overhead.</p>
            <p>Future research can explore further optimizations, such as: (i) Parallelization techniques for further accelerating matrix multiplication. (ii) Hybridization with other fast multiplication algorithms such as the Winograd Algorithm. (iii) Adaptive thresholding mechanisms to optimize the decision-making process in applying Strassen&#x2019;s Algorithm.</p>
            <p>The proposed hybrid MCM technique provides a more efficient alternative to standard MCM and opens new possibilities for optimized large-scale matrix operations in scientific computing, machine learning, and high-performance computing applications.</p>
        </sec>
    </body>
    <back>
        <sec id="sec19" sec-type="data-availability">
            <title>Data and software availability</title>
            <p>The software used in this study is publicly available.
                <list list-type="bullet">
                    <list-item>
                        <label>&#x2022;</label>
                        <p>

                            <bold>Programming Language</bold>: Python (version 3.11)</p>
                    </list-item>
                    <list-item>
                        <label>&#x2022;</label>
                        <p>

                            <bold>Libraries and Frameworks</bold>: NumPy (version 1.24), SciPy (version 1.10), Pandas (version 2.0), TensorFlow (version 2.12), PyTorch (version 2.0), OpenMP, CUDA (version 12.1)</p>
                    </list-item>
                    <list-item>
                        <label>&#x2022;</label>
                        <p>

                            <bold>MATLAB Code</bold>: MATLAB (version R2023a) 
                            <ext-link ext-link-type="uri" xlink:href="https://www.mathworks.com/products/new_products/release2023a.html">https://www.mathworks.com/products/new_products/release2023a.html</ext-link>
                        </p>
                    </list-item>
                </list>
            </p>
            <p>Archived software available from:</p>
            <p>Zenodo:
                <list list-type="order">
                    <list-item>
                        <label>1.</label>
                        <p>

                            <ext-link ext-link-type="uri" xlink:href="https://zenodo.org/records/15024550">https://zenodo.org/records/15024550</ext-link>
                        </p>
                    </list-item>
                    <list-item>
                        <label>2.</label>
                        <p>

                            <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.15024550">https://doi.org/10.5281/zenodo.15024550</ext-link>
                        </p>
                    </list-item>
                </list>
            </p>
            <p>Github:
                <list list-type="order">
                    <list-item>
                        <label>1.</label>
                        <p>

                            <ext-link ext-link-type="uri" xlink:href="https://github.com/thulasi-bikku/F1000/blob/main/matrix_chain_multiplication_using_Strassen%E2%80%99s_algorithm_.ipynb">https://github.com/thulasi-bikku/F1000/blob/main/matrix_chain_multiplication_using_Strassen%E2%80%99s_algorithm_.ipynb</ext-link>
                        </p>
                    </list-item>
                </list>
            </p>
            <p>Data are available under the terms of the 
                <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International license</ext-link> (CC-BY 4.0).</p>
            <p>The GitHub repository follows the 
                <bold>GNU General Public License v3.0 (GPL-3.0)</bold>, ensuring that the software remains open-source and any modifications or derivative works must also be shared under the same license (
                <ext-link ext-link-type="uri" xlink:href="https://www.gnu.org/licenses/gpl-3.0.html">GNU GPL v3.0</ext-link>). The repository&#x2019;s license file can be accessed here: 
                <ext-link ext-link-type="uri" xlink:href="https://github.com/thulasi-bikku/F1000/blob/main/LICENSE">GitHub License File</ext-link>.</p>
            <p>

                <ext-link ext-link-type="uri" xlink:href="https://github.com/thulasi-bikku/F1000/blob/main/LICENSE">https://github.com/thulasi-bikku/F1000/blob/main/LICENSE</ext-link>
            </p>
        </sec>
        <ref-list>
            <title>References</title>
            <ref id="ref1">
                <label>1</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Schwartz</surname>
                            <given-names>O</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Weiss</surname>
                            <given-names>E</given-names>
                        </name>
</person-group>:
                    <article-title>Revisiting &#x201c;Computation of Matrix Chain Products&#x201d;.</article-title>
                    <source>

                        <italic toggle="yes">SIAM J. Comput.</italic>
</source>
                    <year>2019</year>;<volume>48</volume>(<issue>5</issue>):<fpage>1481</fpage>&#x2013;<lpage>1486</lpage>.
                    <pub-id pub-id-type="doi">10.1137/18M1195401</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref2">
                <label>2</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Strassen</surname>
                            <given-names>V</given-names>
                        </name>
</person-group>:
                    <article-title>Gaussian elimination is not optimal.</article-title>
                    <source>

                        <italic toggle="yes">Numer. Math.</italic>
</source>
                    <year>1969</year>;<volume>13</volume>:<fpage>354</fpage>&#x2013;<lpage>356</lpage>.
                    <pub-id pub-id-type="doi">10.1007/BF02165411</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref3">
                <label>3</label>
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>D&#x2019;Alberto</surname>
                            <given-names>P</given-names>
                        </name>
</person-group>:
                    <article-title>Strassen&#x2019;s Matrix Multiplication Algorithm Is Still Faster.</article-title>
                    <source>

                        <italic toggle="yes">arXiv:2312.12732v1 [cs.MS].</italic>
</source>
                    <year>20 Dec 2023</year>.</mixed-citation>
            </ref>
            <ref id="ref4">
                <label>4</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Schwartz</surname>
                            <given-names>O</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Vaknin</surname>
                            <given-names>N</given-names>
                        </name>
</person-group>:
                    <article-title>Pebbling Game and Alternative Basis for High Performance Matrix Multiplication.</article-title>
                    <source>

                        <italic toggle="yes">SIAM J. Sci. Comput.</italic>
</source>
                    <year>2023</year>;<volume>45</volume>(<issue>6</issue>):<fpage>C277</fpage>&#x2013;<lpage>C303</lpage>.
                    <pub-id pub-id-type="doi">10.1137/22M1502719</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref5">
                <label>5</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Anand</surname>
                            <given-names>AR</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Srivastav</surname>
                            <given-names>VK</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Al-Mousa</surname>
                            <given-names>MR</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Numerical Analysis of Friction Stir Welding on an Alumunium Butt Joint.</article-title>
                    <source>

                        <italic toggle="yes">Inf. Sci. Lett.</italic>
</source>
                    <year>2023</year>;<volume>12</volume>(<issue>9</issue>):<fpage>2299</fpage>&#x2013;<lpage>2311</lpage>.
                    <pub-id pub-id-type="doi">10.18576/isl/120933</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref6">
                <label>6</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Raghunandan</surname>
                            <given-names>RK</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Kallapu</surname>
                            <given-names>B</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Dodmane</surname>
                            <given-names>R</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Enhancing Cloud Communication Security: A Blockchain-Powered Framework with Attribute-Aware Encryption.</article-title>
                    <source>

                        <italic toggle="yes">Electronics.</italic>
</source>
                    <year>2023</year>;<volume>12</volume>:<fpage>3890</fpage>.
                    <pub-id pub-id-type="doi">10.3390/electronics12183890</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref7">
                <label>7</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Bikku</surname>
                            <given-names>T</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Thota</surname>
                            <given-names>S</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Shanmugasundaram</surname>
                            <given-names>P</given-names>
                        </name>
</person-group>:
                    <article-title>A Novel Quantum Neural Network Approach to Combating Fake Reviews.</article-title>
                    <source>

                        <italic toggle="yes">International Journal of Networked and Distributed Computing.</italic>
</source>
                    <year>2024</year>;<volume>12</volume>:<fpage>195</fpage>&#x2013;<lpage>205</lpage>.
                    <pub-id pub-id-type="doi">10.1007/s44227-024-00028-x</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref8">
                <label>8</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Srivastav</surname>
                            <given-names>VK</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Thota</surname>
                            <given-names>S</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Kumar</surname>
                            <given-names>M</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Interface Problems-Fluid Structure Interaction: Description, Application and Review.</article-title>
                    <source>

                        <italic toggle="yes">WSEAS Trans. Biol. Biomed.</italic>
</source>
                    <year>2024</year>;<volume>21</volume>(<issue>2024</issue>):<fpage>218</fpage>&#x2013;<lpage>226</lpage>.
                    <pub-id pub-id-type="doi">10.37394/23208.2024.21.22</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref9">
                <label>9</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Bikku</surname>
                            <given-names>T</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Malligunta</surname>
                            <given-names>KK</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Thota</surname>
                            <given-names>S</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Improved Quantum Algorithm: A Crucial Stepping Stone in Quantum-Powered Drug Discovery.</article-title>
                    <source>

                        <italic toggle="yes">J. Electron. Mater.</italic>
</source>
                    <year>2024</year>;<volume>2024</volume>.
                    <pub-id pub-id-type="doi">10.1007/s11664-024-11275-7</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref10">
                <label>10</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Batchu</surname>
                            <given-names>RK</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Bikku</surname>
                            <given-names>T</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Thota</surname>
                            <given-names>S</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>A novel optimization-driven deep learning framework for the detection of DDoS attacks.</article-title>
                    <source>

                        <italic toggle="yes">Sci. Rep.</italic>
</source>
                    <year>2024</year>;<volume>14</volume>:<fpage>28024</fpage>. (2024).
                    <pub-id pub-id-type="pmid">39543174</pub-id>
                    <pub-id pub-id-type="doi">10.1038/s41598-024-77554-9</pub-id>
                    <pub-id pub-id-type="pmcid">PMC11564966</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref11">
                <label>11</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Thota</surname>
                            <given-names>S</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Gopisairam</surname>
                            <given-names>T</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Bikku</surname>
                            <given-names>T</given-names>
                        </name>
</person-group>:
                    <article-title>Modelling LCR-Circuit into Integro-Differential Equation Using Variational Iteration Method and GRU-Based Recurrent Neural Network.</article-title>
                    <source>

                        <italic toggle="yes">IEEE Xplore.</italic>
</source>
                    <year>2025</year>.
                    <pub-id pub-id-type="doi">10.1109/DELCON64804.2024.10866074</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref12">
                <label>12</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Strassen</surname>
                            <given-names>V</given-names>
                        </name>
</person-group>:
                    <article-title>Gaussian Elimination is not Optimal</article-title>.
                    <source>Numer. Math.</source>
                    <year>1969</year>;<volume>13</volume>(<issue>4</issue>):<fpage>354</fpage>&#x2013;<lpage>356</lpage>.
                    <pub-id pub-id-type="doi">10.1007/BF02165411</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref13">
                <label>13</label>
                <mixed-citation publication-type="book">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Skiena</surname>
                            <given-names>SS</given-names>
                        </name>
</person-group>:
                    <source>&#x201c;&#x00a7;8.2.3 Matrix multiplication&#x201d;, The Algorithm Design Manual</source>,
                    <publisher-loc>Berlin, New York</publisher-loc>:
                    <publisher-name>Springer-Verlag</publisher-name>.<year>1998</year>. ISBN 978-0-387-94860-7.</mixed-citation>
            </ref>
            <ref id="ref14">
                <label>14</label>
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>D&#x2019;Alberto</surname>
                            <given-names>P</given-names>
                        </name>
                        <name name-style="western">
                            <surname>Nicolau</surname>
                            <given-names>A</given-names>
                        </name>
</person-group>:
                    <source>Using Recursion to Boost ATLAS&#x2019;s Performance</source>. International Symposium on High Performance Computing.<year>2005</year>.</mixed-citation>
            </ref>
            <ref id="ref15">
                <label>15</label>
                <mixed-citation publication-type="book">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Huang</surname>
                            <given-names>J</given-names>
                        </name>
                        <name name-style="western">
                            <surname>Smith</surname>
                            <given-names>TM</given-names>
                        </name>
                        <name name-style="western">
                            <surname>Henry</surname>
                            <given-names>GM</given-names>
                        </name>

                        <etal/>
</person-group>: Strassen&#x2019;s Algorithm Reloaded.
                    <source>SC16: The International Conference for High Performance Computing, Networking, Storage and Analysis.</source>
                    <publisher-name>IEEE Press</publisher-name>.<year>2016</year>. pp.<fpage>690</fpage>&#x2013;<lpage>701</lpage>. Retrieved 1 Nov 2022.
                    <pub-id pub-id-type="doi">10.1109/SC.2016.58</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref16">
                <label>16</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Winograd</surname>
                            <given-names>S</given-names>
                        </name>
</person-group>:
                    <article-title>On multiplication of 2 &#x00d7; 2 matrices</article-title>.
                    <source>Linear Algebra Appl.</source>
                    <year>1971</year>;<volume>4</volume>(<issue>4</issue>):<fpage>381</fpage>&#x2013;<lpage>388</lpage>.
                    <pub-id pub-id-type="doi">10.1016/0024-3795(71)90009-7</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref17">
                <label>17</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Karstadt</surname>
                            <given-names>E</given-names>
                        </name>
                        <name name-style="western">
                            <surname>Schwartz</surname>
                            <given-names>O</given-names>
                        </name>
</person-group>:
                    <article-title>Matrix Multiplication, a Little Faster</article-title>. Proceedings of the 29th ACM Symposium on Parallelism in Algorithms and Architectures.
                    <source>ACM.</source>
                    <year>2017</year>. pp.<fpage>101</fpage>&#x2013;<lpage>110</lpage>.
                    <pub-id pub-id-type="doi">10.1145/3087556.3087579</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref18">
                <label>18</label>
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Cherney</surname>
                            <given-names>D</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Denton</surname>
                            <given-names>T</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Thomas</surname>
                            <given-names>R</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <source>

                        <italic toggle="yes">Linear Algebra.</italic>
</source>First ed.
                    <publisher-loc>Davis California</publisher-loc>,<year>2018</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://www.math.ucdavis.edu/~linear/linear-guest.pdf">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref19">
                <label>19</label>
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Choudhary</surname>
                            <given-names>V</given-names>
                        </name>
</person-group>:
                    <article-title>Introduction to Divide and Conquer (D&amp;C) Algorithm Design Paradigm.</article-title>
                    <year>2018</year>;<volume>2018</volume>.
                    <ext-link ext-link-type="uri" xlink:href="https://developerinsider.co/introduction-to-divide-and-conquer-algorithm-design-paradigm">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref20">
                <label>20</label>
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Huss-Lederman</surname>
                            <given-names>S</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Jacobson</surname>
                            <given-names>EM</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Johnson</surname>
                            <given-names>JR</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Strassen&#x2019;s Algorithm for Matrix Multiplication: Modeling, Analysis, and Implementation.</article-title>
                    <year>1996</year>.</mixed-citation>
            </ref>
        </ref-list>
    </back>
    <sub-article article-type="reviewer-report" id="report387461">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.180873.r387461</article-id>
            <title-group>
                <article-title>Reviewer response for version 2</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>Dinka</surname>
                        <given-names>Tekle Gemechu</given-names>
                    </name>
                    <xref ref-type="aff" rid="r387461a1">1</xref>
                    <role>Referee</role>
                    <uri content-type="orcid">https://orcid.org/0000-0003-0592-9508</uri>
                </contrib>
                <aff id="r387461a1">
                    <label>1</label>Applied Mathematics, Adama Science and Technology University, Adama, Oromia, Ethiopia</aff>
            </contrib-group>
            <author-notes>
                <fn fn-type="conflict">
                    <p>
                        <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>3</day>
                <month>6</month>
                <year>2025</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2025 Dinka TG</copyright-statement>
                <copyright-year>2025</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access peer review report distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <related-article ext-link-type="doi" id="relatedArticleReport387461" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.162848.2"/>
            <custom-meta-group>
                <custom-meta>
                    <meta-name>recommendation</meta-name>
                    <meta-value>approve</meta-value>
                </custom-meta>
            </custom-meta-group>
        </front-stub>
        <body>
            <p>Dear Authors, the work was well done. But, let you consider the following few comments, for indexing.</p>
            <p> </p>
            <p> 1. In Methods Section, see typo error, &#x00a0;O(n 2.81)!</p>
            <p> 2. In Fig1, are you sure why the values of all absolute errors are in range [0, 1] ?</p>
            <p> &#x00a0;Is that relative absolute error or just absolute error? Check it, please!</p>
            <p> 3. Based on the first comment 1 above, let you check the entire work roughly, once! (Optional)</p>
            <p> Note: Do not send it back to me again, for 3
                <sup>rd</sup> time revision!</p>
            <p> Suggestion: Accepted for publication (Approved).</p>
            <p> Thanks!</p>
            <p>Is the work clearly and accurately presented and does it cite the current literature?</p>
            <p>Yes</p>
            <p>If applicable, is the statistical analysis and its interpretation appropriate?</p>
            <p>Not applicable</p>
            <p>Are all the source data underlying the results available to ensure full reproducibility?</p>
            <p>Partly</p>
            <p>Is the study design appropriate and is the work technically sound?</p>
            <p>Yes</p>
            <p>Are the conclusions drawn adequately supported by the results?</p>
            <p>Yes</p>
            <p>Are sufficient details of methods and analysis provided to allow replication by others?</p>
            <p>Yes</p>
            <p>Reviewer Expertise:</p>
            <p>Applied Mathematics</p>
            <p>I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard.</p>
        </body>
        <sub-article article-type="response" id="comment14020-387461">
            <front-stub>
                <contrib-group>
                    <contrib contrib-type="author">
                        <name>
                            <surname>T</surname>
                            <given-names>Rakshitha</given-names>
                        </name>
                        <aff>Mathematics, Eritrea Institute of Technology, Mai Nefhi, Mai Nefhi, Eritrea</aff>
                    </contrib>
                </contrib-group>
                <author-notes>
                    <fn fn-type="conflict">
                        <p>
                            <bold>Competing interests: </bold>No</p>
                    </fn>
                </author-notes>
                <pub-date pub-type="epub">
                    <day>5</day>
                    <month>6</month>
                    <year>2025</year>
                </pub-date>
            </front-stub>
            <body>
                <p>Thank you for your thoughtful review and positive feedback on our manuscript. We sincerely appreciate your encouraging comments and are grateful for your approval. Your insights and support have been highly motivating and have contributed to enhancing the quality of our work.</p>
            </body>
        </sub-article>
    </sub-article>
    <sub-article article-type="reviewer-report" id="report377063">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.179110.r377063</article-id>
            <title-group>
                <article-title>Reviewer response for version 1</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>Ainapure</surname>
                        <given-names>Bharati</given-names>
                    </name>
                    <xref ref-type="aff" rid="r377063a1">1</xref>
                    <role>Referee</role>
                </contrib>
                <aff id="r377063a1">
                    <label>1</label>Vishwakarma University, Pune, Maharashtra, India</aff>
            </contrib-group>
            <author-notes>
                <fn fn-type="conflict">
                    <p>
                        <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>18</day>
                <month>4</month>
                <year>2025</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2025 Ainapure B</copyright-statement>
                <copyright-year>2025</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access peer review report distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <related-article ext-link-type="doi" id="relatedArticleReport377063" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.162848.1"/>
            <custom-meta-group>
                <custom-meta>
                    <meta-name>recommendation</meta-name>
                    <meta-value>approve</meta-value>
                </custom-meta>
            </custom-meta-group>
        </front-stub>
        <body>
            <p>
                <bold>Hybrid optimization technique for matrix chain multiplication using Strassen&#x2019;s algorithm</bold>
            </p>
            <p> Srinivasarao Thota, Thulasi Bikku, Rakshitha T</p>
            <p> </p>
            <p> </p>
            <p> The manuscript presents a novel and practical hybrid optimization framework that combines Dynamic Programming-based Matrix Chain Multiplication (MCM) with Strassen&#x2019;s Algorithm. The paper demonstrates significant contributions in terms of computational efficiency, reduced memory usage, and real-world applicability. The authors have implemented the hybrid model with robust experimental validation and well-documented algorithms.</p>
            <p> </p>
            <p> 
                <bold>
                    <underline>Review comments: </underline>
                </bold> 
                <list list-type="order">
                    <list-item>
                        <p>The paper introduces a hybrid optimization framework that smartly integrates MCM with Strassen&#x2019;s Algorithm. This approach is novel and significantly improves computational performance while maintaining numerical integrity for large matrices.</p>
                    </list-item>
                    <list-item>
                        <p>The authors clearly articulate the limitations of traditional MCM and Strassen&#x2019;s algorithm when used individually, thus justifying the need for a hybrid approach.</p>
                    </list-item>
                    <list-item>
                        <p>The pseudocode for 
                            <bold>matrix_chain_order</bold>, 
                            <bold>strassen_matrix_multiply</bold>, and the hybrid multiplication routine is clearly written, logically structured, and reproducible.</p>
                    </list-item>
                    <list-item>
                        <p>The inclusion of performance benchmarks (execution time, memory usage, scalar operations, accuracy) across various matrix sizes provides compelling evidence of the hybrid method's benefits.</p>
                    </list-item>
                    <list-item>
                        <p>The detailed step-by-step numerical example enhances understanding and demonstrates the practical application of the hybrid algorithm.</p>
                    </list-item>
                    <list-item>
                        <p>The figures (execution time, speedup, scalar multiplication, memory usage, correlation heatmap) visually substantiate the claims and provide insights into the hybrid model&#x2019;s behavior across scenarios.</p>
                    </list-item>
                    <list-item>
                        <p>The selective application of Strassen&#x2019;s method to matrices with dimensions &#x2265; 128x128 is a thoughtful design decision that avoids the recursive overhead on smaller matrices.</p>
                    </list-item>
                    <list-item>
                        <p>The authors provide links to GitHub and Zenodo for full access to the code and data, promoting transparency and reproducibility in computational research.</p>
                    </list-item>
                    <list-item>
                        <p>The background section and references demonstrate familiarity with both foundational and current research trends in matrix multiplication, including modern alternatives to Strassen&#x2019;s algorithm.</p>
                    </list-item>
                    <list-item>
                        <p>The conclusion aptly summarizes the findings and points toward promising future directions such as parallelization and adaptive thresholding for broader applicability.</p>
                    </list-item>
                </list>
            </p>
            <p>Is the work clearly and accurately presented and does it cite the current literature?</p>
            <p>Yes</p>
            <p>If applicable, is the statistical analysis and its interpretation appropriate?</p>
            <p>Yes</p>
            <p>Are all the source data underlying the results available to ensure full reproducibility?</p>
            <p>Yes</p>
            <p>Is the study design appropriate and is the work technically sound?</p>
            <p>Yes</p>
            <p>Are the conclusions drawn adequately supported by the results?</p>
            <p>Yes</p>
            <p>Are sufficient details of methods and analysis provided to allow replication by others?</p>
            <p>Yes</p>
            <p>Reviewer Expertise:</p>
            <p>Algorithms</p>
            <p>I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard.</p>
        </body>
        <sub-article article-type="response" id="comment13772-377063">
            <front-stub>
                <contrib-group>
                    <contrib contrib-type="author">
                        <name>
                            <surname>T</surname>
                            <given-names>Rakshitha</given-names>
                        </name>
                        <aff>Mathematics, Eritrea Institute of Technology, Mai Nefhi, Mai Nefhi, Eritrea</aff>
                    </contrib>
                </contrib-group>
                <author-notes>
                    <fn fn-type="conflict">
                        <p>
                            <bold>Competing interests: </bold>No</p>
                    </fn>
                </author-notes>
                <pub-date pub-type="epub">
                    <day>20</day>
                    <month>4</month>
                    <year>2025</year>
                </pub-date>
            </front-stub>
            <body>
                <p>Thank you for your thoughtful review and kind feedback on our manuscript. We truly appreciate your encouraging remarks and are grateful for your approval. Your insights and support have been incredibly motivating and have significantly contributed to improving the quality of our work.</p>
            </body>
        </sub-article>
    </sub-article>
    <sub-article article-type="reviewer-report" id="report377065">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.179110.r377065</article-id>
            <title-group>
                <article-title>Reviewer response for version 1</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>Shaik</surname>
                        <given-names>Rajak</given-names>
                    </name>
                    <xref ref-type="aff" rid="r377065a1">1</xref>
                    <role>Referee</role>
                    <uri content-type="orcid">https://orcid.org/0000-0001-7844-2595</uri>
                </contrib>
                <aff id="r377065a1">
                    <label>1</label>SRM University AP, Mangalagiri, Andhra Pradesh, India</aff>
            </contrib-group>
            <author-notes>
                <fn fn-type="conflict">
                    <p>
                        <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>15</day>
                <month>4</month>
                <year>2025</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2025 Shaik R</copyright-statement>
                <copyright-year>2025</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access peer review report distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <related-article ext-link-type="doi" id="relatedArticleReport377065" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.162848.1"/>
            <custom-meta-group>
                <custom-meta>
                    <meta-name>recommendation</meta-name>
                    <meta-value>approve</meta-value>
                </custom-meta>
            </custom-meta-group>
        </front-stub>
        <body>
            <p>
                <bold>Summary of the Work: </bold>The manuscript presents a hybrid optimization strategy that combines Matrix Chain Multiplication (MCM) using dynamic programming with Strassen&#x2019;s Algorithm for selective acceleration of large matrix multiplications. The approach addresses computational inefficiencies inherent in traditional MCM and standalone Strassen&#x2019;s methods. The hybrid technique is validated through a combination of theoretical analysis, pseudocode implementation, performance benchmarking, and a clear numerical example. The paper is relevant to fields including scientific computing, deep learning, and high-performance matrix operations.</p>
            <p> &#x00a0; 
                <list list-type="order">
                    <list-item>
                        <p>
                            <bold>Innovation</bold>: The integration of Strassen&#x2019;s algorithm into MCM is a smart optimization strategy that yields tangible performance gains.</p>
                    </list-item>
                    <list-item>
                        <p>
                            <bold>Clarity of Methodology</bold>: The algorithm is clearly described with detailed pseudocode and complexity analysis, making the methodology reproducible.</p>
                    </list-item>
                    <list-item>
                        <p>
                            <bold>Experimental Rigor</bold>: The authors conduct comprehensive benchmarks covering execution time, memory usage, and numerical accuracy. Comparative plots strengthen the conclusions.</p>
                    </list-item>
                    <list-item>
                        <p>
                            <bold>Balanced Hybridization</bold>: The selective application of Strassen&#x2019;s algorithm based on matrix size (&#x2265;128) is well-justified and effectively balances performance and overhead.</p>
                    </list-item>
                    <list-item>
                        <p>
                            <bold>Applicability</bold>: The work is applicable across several domains such as graphics, neural network training, and physics simulations&#x2014;making it broadly relevant.</p>
                    </list-item>
                    <list-item>
                        <p>
                            <bold>Reproducibility</bold>: The codebase and data are made publicly available through GitHub and Zenodo, aligning with modern best practices in open science.</p>
                    </list-item>
                    <list-item>
                        <p>
                            <bold>Well-Structured Paper</bold>: The manuscript is logically organized, guiding the reader smoothly from problem motivation to algorithm design and results.</p>
                    </list-item>
                    <list-item>
                        <p>
                            <bold>Numerical Example</bold>: The inclusion of a worked-out example with intermediate computations illustrates the real-world practicality of the proposed technique.</p>
                    </list-item>
                    <list-item>
                        <p>
                            <bold>Graphical Comparisons</bold>: Figures such as execution time charts, memory comparisons, and a correlation heatmap visually reinforce the paper&#x2019;s findings.</p>
                    </list-item>
                    <list-item>
                        <p>
                            <bold>Future Scope</bold>: The conclusion thoughtfully outlines future directions including parallelization and adaptive thresholds, highlighting the research&#x2019;s extensibility.</p>
                    </list-item>
                </list> 
                <bold>Minor Suggestions (Optional Enhancements for a Revised Version)</bold>
            </p>
            <p> While I recommend acceptance as-is, the authors may consider the following enhancements in future iterations: 
                <list list-type="bullet">
                    <list-item>
                        <p>Elaborate on the 
                            <bold>numerical stability</bold> trade-offs when using Strassen&#x2019;s Algorithm in floating-point computations.</p>
                    </list-item>
                    <list-item>
                        <p>Explore 
                            <bold>adaptive thresholding mechanisms</bold> in more detail, possibly as an appendix or supplementary material.</p>
                    </list-item>
                    <list-item>
                        <p>Include a brief comparison with more recent fast matrix multiplication techniques like Coppersmith-Winograd or Karatsuba-like methods in the background.</p>
                    </list-item>
                </list> 
                <bold>Final Recommendation:</bold>
            </p>
            <p> The manuscript makes a valuable contribution to computational optimization in matrix algebra. It is well-written, methodologically sound, and thoroughly validated.</p>
            <p> 
                <bold>I recommend this paper for acceptance without revisions.</bold>
            </p>
            <p>Is the work clearly and accurately presented and does it cite the current literature?</p>
            <p>Yes</p>
            <p>If applicable, is the statistical analysis and its interpretation appropriate?</p>
            <p>Yes</p>
            <p>Are all the source data underlying the results available to ensure full reproducibility?</p>
            <p>Yes</p>
            <p>Is the study design appropriate and is the work technically sound?</p>
            <p>Yes</p>
            <p>Are the conclusions drawn adequately supported by the results?</p>
            <p>Yes</p>
            <p>Are sufficient details of methods and analysis provided to allow replication by others?</p>
            <p>Yes</p>
            <p>Reviewer Expertise:</p>
            <p>AI &amp; ML</p>
            <p>I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard.</p>
        </body>
        <sub-article article-type="response" id="comment13762-377065">
            <front-stub>
                <contrib-group>
                    <contrib contrib-type="author">
                        <name>
                            <surname>T</surname>
                            <given-names>Rakshitha</given-names>
                        </name>
                        <aff>Mathematics, Eritrea Institute of Technology, Mai Nefhi, Mai Nefhi, Eritrea</aff>
                    </contrib>
                </contrib-group>
                <author-notes>
                    <fn fn-type="conflict">
                        <p>
                            <bold>Competing interests: </bold>No</p>
                    </fn>
                </author-notes>
                <pub-date pub-type="epub">
                    <day>17</day>
                    <month>4</month>
                    <year>2025</year>
                </pub-date>
            </front-stub>
            <body>
                <p>Thank you for your thoughtful review and positive feedback on our manuscript. We sincerely appreciate your encouraging comments and are grateful for your approval. Your insights and support have been highly motivating and have contributed to enhancing the quality of our work.</p>
            </body>
        </sub-article>
    </sub-article>
    <sub-article article-type="reviewer-report" id="report377061">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.179110.r377061</article-id>
            <title-group>
                <article-title>Reviewer response for version 1</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>Singamaneni</surname>
                        <given-names>Kranthi Kumar</given-names>
                    </name>
                    <xref ref-type="aff" rid="r377061a1">1</xref>
                    <role>Referee</role>
                </contrib>
                <aff id="r377061a1">
                    <label>1</label>Symbiosis Institute of Technology, Hyderabad, India</aff>
            </contrib-group>
            <author-notes>
                <fn fn-type="conflict">
                    <p>
                        <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>15</day>
                <month>4</month>
                <year>2025</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2025 Singamaneni KK</copyright-statement>
                <copyright-year>2025</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access peer review report distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <related-article ext-link-type="doi" id="relatedArticleReport377061" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.162848.1"/>
            <custom-meta-group>
                <custom-meta>
                    <meta-name>recommendation</meta-name>
                    <meta-value>approve</meta-value>
                </custom-meta>
            </custom-meta-group>
        </front-stub>
        <body>
            <p>
                <bold>Title:</bold> Hybrid optimization technique for matrix chain multiplication using Strassen&#x2019;s algorithm</p>
            <p> 
                <bold>Authors:</bold> Srinivasarao Thota, Thulasi Bikku, Rakshitha T</p>
            <p> </p>
            <p> </p>
            <p> This article is a well-structured and methodologically sound study that integrates Strassen&#x2019;s Algorithm into the traditional Matrix Chain Multiplication (MCM) optimization framework.</p>
            <p> </p>
            <p> 
                <bold>
                    <underline>Comments:</underline>
                </bold> 
                <list list-type="order">
                    <list-item>
                        <p>
                            <bold>Clear Motivation &amp; Problem Statement:</bold> 
                            <list list-type="bullet">
                                <list-item>
                                    <p>Addresses computational inefficiencies in standard MCM (O(n&#x00b3;) time).</p>
                                </list-item>
                                <list-item>
                                    <p>Identifies Strassen&#x2019;s Algorithm (O(n^2.81)) as a viable method to accelerate large matrix multiplications.</p>
                                </list-item>
                            </list> </p>
                    </list-item>
                    <list-item>
                        <p>
                            <bold>Innovative Hybrid Approach:</bold> 
                            <list list-type="bullet">
                                <list-item>
                                    <p>Combines Dynamic Programming (DP) for optimal matrix order selection.</p>
                                </list-item>
                                <list-item>
                                    <p>Applies Strassen&#x2019;s Algorithm conditionally for matrix dimensions &#x2265;128&#x00d7;128 to avoid unnecessary overhead.</p>
                                </list-item>
                                <list-item>
                                    <p>Introduces memory-efficient techniques using rolling DP arrays.</p>
                                </list-item>
                            </list> </p>
                    </list-item>
                    <list-item>
                        <p>
                            <bold>Algorithm &amp; Pseudocode:</bold> 
                            <list list-type="bullet">
                                <list-item>
                                    <p>Well-structured Python code for MCM-DP and Strassen&#x2019;s recursive multiplication.</p>
                                </list-item>
                                <list-item>
                                    <p>Implements hybrid decision-making for performance tuning.</p>
                                </list-item>
                                <list-item>
                                    <p>Ready-to-run and reproducible with publicly available code (GitHub, Zenodo).</p>
                                </list-item>
                            </list> </p>
                    </list-item>
                    <list-item>
                        <p>
                            <bold>Use of Numerical Example:</bold> 
                            <list list-type="bullet">
                                <list-item>
                                    <p>Provides a complete walkthrough with four sample matrices.</p>
                                </list-item>
                                <list-item>
                                    <p>Demonstrates cost calculations, order of operations, and execution trace.</p>
                                </list-item>
                            </list> </p>
                    </list-item>
                    <list-item>
                        <p>
                            <bold>Data Transparency &amp; Open Science:</bold> 
                            <list list-type="bullet">
                                <list-item>
                                    <p>Source code available under GPL-3.0 license on GitHub.</p>
                                </list-item>
                                <list-item>
                                    <p>Dataset and figures provided via Zenodo.</p>
                                </list-item>
                                <list-item>
                                    <p>Heatmaps and comparative charts (Figures 1&#x2013;8) provide strong visual insights.</p>
                                </list-item>
                            </list> </p>
                    </list-item>
                </list> This paper introduces a 
                <bold>practical and efficient hybrid technique</bold> for matrix chain multiplication that is 
                <bold>well-supported theoretically and empirically</bold>. It is especially suitable for 
                <bold>large-scale, performance-sensitive computing domains</bold> such as scientific simulations and deep learning.</p>
            <p> </p>
            <p> The paper is complete, methodically presented, and ready for getting indexed in bibliographic databases.</p>
            <p>Is the work clearly and accurately presented and does it cite the current literature?</p>
            <p>Yes</p>
            <p>If applicable, is the statistical analysis and its interpretation appropriate?</p>
            <p>Partly</p>
            <p>Are all the source data underlying the results available to ensure full reproducibility?</p>
            <p>Yes</p>
            <p>Is the study design appropriate and is the work technically sound?</p>
            <p>Yes</p>
            <p>Are the conclusions drawn adequately supported by the results?</p>
            <p>Yes</p>
            <p>Are sufficient details of methods and analysis provided to allow replication by others?</p>
            <p>Yes</p>
            <p>Reviewer Expertise:</p>
            <p>Quantum Computing, Cyber Security, Data Analytics</p>
            <p>I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard.</p>
        </body>
        <back>
            <ref-list>
                <title>References</title>
                <ref id="rep-ref-377061-1">
                    <label>1</label>
                    <mixed-citation publication-type="journal">
                        <person-group person-group-type="author"/>:
                        <article-title>Hybrid optimization technique for matrix chain multiplication using Strassen&#x2019;s algorithm</article-title>.
                        <source>
                            <italic>F1000Research</italic>
                        </source>.<year>2025</year>;<volume>14</volume>:
                        <elocation-id>10.12688/f1000research.162848.1</elocation-id>
                        <pub-id pub-id-type="doi">10.12688/f1000research.162848.1</pub-id>
                    </mixed-citation>
                </ref>
            </ref-list>
        </back>
        <sub-article article-type="response" id="comment13761-377061">
            <front-stub>
                <contrib-group>
                    <contrib contrib-type="author">
                        <name>
                            <surname>T</surname>
                            <given-names>Rakshitha</given-names>
                        </name>
                        <aff>Mathematics, Eritrea Institute of Technology, Mai Nefhi, Mai Nefhi, Eritrea</aff>
                    </contrib>
                </contrib-group>
                <author-notes>
                    <fn fn-type="conflict">
                        <p>
                            <bold>Competing interests: </bold>No</p>
                    </fn>
                </author-notes>
                <pub-date pub-type="epub">
                    <day>17</day>
                    <month>4</month>
                    <year>2025</year>
                </pub-date>
            </front-stub>
            <body>
                <p>Thank you for your thoughtful review and positive feedback on our manuscript. We sincerely appreciate your encouraging comments and are grateful for your approval. Your insights and support have been highly motivating and have contributed to enhancing the quality of our work.</p>
            </body>
        </sub-article>
    </sub-article>
    <sub-article article-type="reviewer-report" id="report374494">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.179110.r374494</article-id>
            <title-group>
                <article-title>Reviewer response for version 1</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>Dinka</surname>
                        <given-names>Tekle Gemechu</given-names>
                    </name>
                    <xref ref-type="aff" rid="r374494a1">1</xref>
                    <role>Referee</role>
                    <uri content-type="orcid">https://orcid.org/0000-0003-0592-9508</uri>
                </contrib>
                <aff id="r374494a1">
                    <label>1</label>Applied Mathematics, Adama Science and Technology University, Adama, Oromia, Ethiopia</aff>
            </contrib-group>
            <author-notes>
                <fn fn-type="conflict">
                    <p>
                        <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>15</day>
                <month>4</month>
                <year>2025</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2025 Dinka TG</copyright-statement>
                <copyright-year>2025</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access peer review report distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <related-article ext-link-type="doi" id="relatedArticleReport374494" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.162848.1"/>
            <custom-meta-group>
                <custom-meta>
                    <meta-name>recommendation</meta-name>
                    <meta-value>approve-with-reservations</meta-value>
                </custom-meta>
            </custom-meta-group>
        </front-stub>
        <body>
            <p>
                <bold>Review Report</bold>
            </p>
            <p> </p>
            <p> Title: &#x00a0;
                <bold>Hybrid optimization technique for matrix chain multiplication using Strassen&#x2019;s algorithm</bold>
            </p>
            <p> 
                <bold>Authors:</bold> Srinivasarao Thota, Thulasi Bikku, Rakshitha T</p>
            <p> </p>
            <p> Recommendation: &#x00a0;
                <bold>ACCEPTED</bold>, with Revisions Required! (Approved With Reservation)</p>
            <p> </p>
            <p> 1) General Comment: Dear authors, your work seems so interesting, well done! The background (abstract), the methods, results and conclusions parts all sound good. But, please check the clarity and or achievement of overall works (all parts, results in tables &amp; graphs), check journal styles, use of references&#x2026;.before publication! Also, consider all associated comments! Check all mathematical equations in the paper!</p>
            <p> </p>
            <p> 2)&#x00a0;It seems your introduction is not so detail. To increase readability or quality of your work, you may say more on the past works and current researches focusing on the MCM technique and or Strassen&#x2019;s algorithms (including improvements or drawbacks), if any (Optional!). You can consider some of listed references below!</p>
            <p> </p>
            <p> 3)&#x00a0;Please use equation numbering for the equations, in your paper.</p>
            <p> </p>
            <p> 4)&#x00a0;What are i &amp; j in cost equation on page 3?</p>
            <p> </p>
            <p> 5)&#x00a0;The section on &#x201c;Strassen&#x2019;s algorithm for matrix multiplication&#x201d; on page 4, needs corrections. In the four divisions of matrices A &amp; B , the first division of first equation has to be rewritten (check the first equation to give corrections!).</p>
            <p> </p>
            <p> 
                <inline-graphic xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGkAAAAgCAIAAACet8HJAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAw9JREFUaEPtWTGWqjAUDX8tzhSeWQGuwJnedjootZnO0s5GSqeb1upXsAJZgcfiw16cJARIQh7GB9EZPlSaEO7LzUve5eJdLhcyXigG/qBGjYMYAw/iLo9mnhcm6hrkSTibRXljYaB2xApa4uYc0uPXLDSEVEDTPevqioNydv4uU0CKniCuG7Nd4OttrBdqx8Vsh5vtfFJGzH5Xf7QJuc67gp/jciIlSRJupjGN6fRP5Fgehdvnj2MdmrgZakckHBtiiztZHquIJ28Ln6TnjEPO98Vy8lV+xJ7Now1ZL+fPLzUDk+V+P5fZFV1QO4q7G3D15/vTJxOk67zTMfPo/bzez1Gz7zIIi5tsV2mwVrZNFcaduUu2h8VHyVy5FbpwYjkWh0sry4bEGbTUd+UuCV8/09UTL1+vn5bT7uE2FC4tte+HxZfxMLn7eUcPnFNdb9mJWxWLHviBH4HCpcRtpl9qjdMhGnlnVEA9zI0eOKsX6eDIzsaHQnSiaUbh0opM1hVxVOuZJZ4mlJoKCKek2Cj2rEKjZDFXb34QC50n5EjZQLt9UfjZbX4g8hNqt40Jh9vQSooS5RqFyz9VG9NYd0x56VrWNlb1vpo73PgfOqriTt6zBgXUw2Yd7iNq7iwUED8LzRdwIgyXOPm9wkYBsZcV4GqvSMOkUOQdSgENkxH7WXHubBXQuGcVYil3lgqIDhv3rModFdCrlJz+JsIP4ruXpIdt2WCfwzfcqSnwdq/RnfcJ4f4M71P2N+syoypw0Gt07H1CuG3xCP/OoI37VaOQNm5V4NxZFIxT05i9ifSlsa1xZRrkeIp2oza+Yc91uNVCgZdeo2vvU58F4HGSX+J9tnmNHRaMFcRWzxXC/TXe5xWvsQN37cofwr0WT79HXONrmFIrdINC6WSeh9mD6HzeoXDBeB5x3rUqcBuvEZl3KFyreBznXTFfmk9steQ8Y45elWb0j9TH6qH8PZelDdoVQ+EC8WjfZ11+266Xpd2DhL1Gt94nhHvF+6ym5dFfyL3w3w+763eygbE9codf0G/BGKjVPwKxMgAAAABJRU5ErkJggg=="/>
            </p>
            <p> </p>
            <p> In the Strassen&#x2019;s algorithm, also there should be included, the product matrix C, such that C = AB, and&#x00a0;</p>
            <p> </p>
            <p> 
                <inline-graphic xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGsAAAAgCAIAAACaQhH0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAuxJREFUaEPtWTF2ozAUlHMWO4VfTiBOkN0mVdrtoHQOkNJdGiidzm2qVHCC5AR5WwTu4nwEMiD0JX0UK4kDlS0+zDBC0mhYHA4HNh8eClx4XDtfWisQXsEqS6KFPKKs6PqhKpIoyqpRx2DttB6k4FYCsiEZJRpKfWgYxac68lgC8bRsQOomHufiX5lydjxRpjGvq+N8yAZrJ3Im4faJ1b8blpqnESQYkQqlvMbsK9Kxae4C/5vTIFOtqlqPtlNItF3V9ZUDbv/+gnT3FINuD62geA/ky6gTYaRgW4S1Owo5GVd2s6K+8hDh5sHi+ZHx279L2uzlX+2HWzzcvcb3GwPrYApW729fIqAPbpVFW5aXu2tTPwZTsPz/yq4ug7+BbDIuLMf/nm73u2sL52AK+g/HoHcA+bbr/Ytp+LZ8+grijukTyK/WnD1uW2tVFVkUJT0reAR4ex/7wfok1m5lNgm3SLbs/igfeEOTJZQLGuqYHFc8TZm6huaN5RMHb42MtImcD861SzZcoW2ncaLids5PsrW7GdSp0agq1Z4uxAv7VBeP/aAYxfWSzdN9N+iXmxfzAmQdPL+noFbQzTHB0n7czio/jNPEuWsJCjo6JngvsaHhsmSdrZCg4GTHdLaikB7M3Q/Oo1gvLCjo6JjmUTxSULxUoCBIA77jbiWWh9WfJ3Z1Y9wIkt7xcbHOt5sTzdMlrBjud0pYlcRU69v1iabMEPXJK9HvkXDNfHqxcOh8UITS2qQTSzSx5JUoHxmXlLC6rySeg5fi2/l6JdCWm501GrHTct8vSFz1nlh7U0fsT0r5cFdnjYrFrXU7Qb/d4XRcHR9kV2fvR/8KF9/ulGgSqfjgOvEJNoqtvt010SQqOBnXlU8wBS0P7p5oEhWciEvgQ5nYiLWDL6yDBbHM00FACAlez/bAv8EnPbeZDCE3CVfH5yu+F6vPhCWdeKJ52oQVwzUlrON+WkDT546L33a37zIP/lzdZwV9++4DIZuF9I/skGsAAAAASUVORK5CYII="/>&#x00a0;</p>
            <p> </p>
            <p> Please check it all, on page 4!</p>
            <p> </p>
            <p> 6)&#x00a0;In combining MCM and strassen&#x2019;s algorithm to get your proposed method, on page 5, where is the mathematical formulation? Otherwise, how was the code for hybrid algorithm written? Try to think over!</p>
            <p> </p>
            <p> 7)&#x00a0;In subsection 3.2, first sentence, rewrite as, "we provide 
                <bold>the time complexity analysis</bold> of the&#x2026;</p>
            <p> </p>
            <p> 8)&#x00a0;What is your evidence for the following (on page 6, second paragraph)?</p>
            <p> </p>
            <p> The proposed algorithm has practical applicability (i) Compare performance in real-world applications such as machine learning (e.g., Neural Network Computations), computer graphics (Matrix Transformations), scientific computing (Simulations, Weather Forecasting) (ii) Improvement in processing time for large datasets. You may give references.</p>
            <p> </p>
            <p> 9) Strassen&#x2019;s algorithm reduces computation cost complexity from O(n^3) to O(n^2.81). And also from eight to seven multiplications. What about your hybrid method? Where /what is the order of reduction?</p>
            <p> </p>
            <p> 10) In figure 1, why the maximum value from vertical y-axis is 1? Or why Range = [0, 1]? Otherwise, vertical axis must represent mean relative error, not mean absolute error. Please, may you, check it!</p>
            <p> </p>
            <p> 11)&#x00a0;In figure 2,&#x00a0; hybrid&#x00a0; method and strassen&#x2019;s algorithm are of O(n^2.81). So where is the complexity reduction? How is the improvement? Otherwise, why your method is more efficient or more accurate? Describe clearly how good memory usage of your method made it perform better.</p>
            <p> </p>
            <p> 12)&#x00a0;On page 9, in last paragraph, rewrite as &#x201c;figure 5&#x201d;&#x00a0; it is not figure 6.</p>
            <p> </p>
            <p> 13)&#x00a0;On page 10, below figure 6, rewrite as &#x201c;one can observe that&#x2026;.</p>
            <p> </p>
            <p> 
                <bold>Good Luck!</bold>
            </p>
            <p> </p>
            <p> You may refer the following (It is good to do but Optional!)</p>
            <p> </p>
            <p> 1. &#x00a0;
                <italic>Strassen, Volker (1969 [Ref-1]). "Gaussian Elimination is not Optimal". Numer. Math. 
                    <bold>13</bold> (4): 354&#x2013;356. </italic>
                <ext-link ext-link-type="uri" xlink:href="https://en.wikipedia.org/wiki/Doi_(identifier)">
                    <italic>doi</italic>
                </ext-link>
                <italic>:</italic>
                <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1007%2FBF02165411">
                    <italic>10.1007/BF02165411</italic>
                </ext-link>
                <italic>. </italic>
                <ext-link ext-link-type="uri" xlink:href="https://en.wikipedia.org/wiki/S2CID_(identifier)">
                    <italic>S2CID</italic>
                </ext-link>
                <italic>&#x00a0;</italic>
                <ext-link ext-link-type="uri" xlink:href="https://api.semanticscholar.org/CorpusID:121656251">
                    <italic>121656251</italic>
                </ext-link>
                <italic>.</italic>
            </p>
            <p> 2. &#x00a0;
                <italic>Skiena, Steven S. (1998), "&#x00a7;8.2.3 Matrix multiplication", The Algorithm Design Manual, Berlin, New York: </italic>
                <ext-link ext-link-type="uri" xlink:href="https://en.wikipedia.org/wiki/Springer-Verlag">
                    <italic>Springer-Verlag</italic>
                </ext-link>
                <italic>, </italic>
                <ext-link ext-link-type="uri" xlink:href="https://en.wikipedia.org/wiki/ISBN_(identifier)">
                    <italic>ISBN</italic>
                </ext-link>
                <italic>&#x00a0;</italic>
                <ext-link ext-link-type="uri" xlink:href="https://en.wikipedia.org/wiki/Special:BookSources/978-0-387-94860-7">
                    <italic>978-0-387-94860-7</italic>
                </ext-link>.</p>
            <p> 3. 
                <italic>D'Alberto, Paolo; Nicolau, Alexandru (2005). </italic>
                <ext-link ext-link-type="uri" xlink:href="https://www.ics.uci.edu/~paolo/Reference/paoloA.ishp-vi.pdf">
                    <italic>Using Recursion to Boost ATLAS's Performance</italic>
                </ext-link>
                <italic> (PDF). Sixth Int'l Symp. on High Performance Computing.</italic>
            </p>
            <p> 4. 
                <italic>Huang, Jianyu; Smith, Tyler M.; Henry, Greg M.; van de Geijn, Robert A. (13 Nov 2016). </italic>
                <ext-link ext-link-type="uri" xlink:href="https://www.researchgate.net/publication/315365781">
                    <italic>Strassen's Algorithm Reloaded</italic>
                </ext-link>
                <italic>. </italic>
                <ext-link ext-link-type="uri" xlink:href="https://ieeexplore.ieee.org/xpl/conhome/7875333/proceeding">
                    <italic>SC16: The International Conference for High Performance Computing, Networking, Storage and Analysis</italic>
                </ext-link>
                <italic>. IEEE Press. pp.&#x00a0;690&#x2013;701. </italic>
                <ext-link ext-link-type="uri" xlink:href="https://en.wikipedia.org/wiki/Doi_(identifier)">
                    <italic>doi</italic>
                </ext-link>
                <italic>:</italic>
                <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109%2FSC.2016.58">
                    <italic>10.1109/SC.2016.58</italic>
                </ext-link>
                <italic>. </italic>
                <ext-link ext-link-type="uri" xlink:href="https://en.wikipedia.org/wiki/ISBN_(identifier)">
                    <italic>ISBN</italic>
                </ext-link>
                <italic>&#x00a0;</italic>
                <ext-link ext-link-type="uri" xlink:href="https://en.wikipedia.org/wiki/Special:BookSources/9781467388153">
                    <italic>9781467388153</italic>
                </ext-link>
                <italic>. Retrieved 1 Nov 2022.</italic>
            </p>
            <p> 5. 
                <italic>Winograd, S. (October 1971 [Ref-2]). </italic>
                <ext-link ext-link-type="uri" xlink:href="https://linkinghub.elsevier.com/retrieve/pii/0024379571900097">
                    <italic>"On multiplication of 2 &#x00d7; 2 matrices"</italic>
                </ext-link>
                <italic>. Linear Algebra and Its Applications. 
                    <bold>4</bold> (4): 381&#x2013;388. </italic>
                <ext-link ext-link-type="uri" xlink:href="https://en.wikipedia.org/wiki/Doi_(identifier)">
                    <italic>doi</italic>
                </ext-link>
                <italic>:</italic>
                <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016%2F0024-3795%2871%2990009-7">
                    <italic>10.1016/0024-3795(71)90009-7</italic>
                </ext-link>
                <italic>.</italic>
            </p>
            <p> 6. 
                <italic>Karstadt, Elaye; Schwartz, Oded (2017-07-24). </italic>
                <ext-link ext-link-type="uri" xlink:href="https://dl.acm.org/doi/10.1145/3087556.3087579">
                    <italic>"Matrix Multiplication, a Little Faster"</italic>
                </ext-link>
                <italic>. Proceedings of the 29th ACM Symposium on Parallelism in Algorithms and Architectures. ACM. pp.&#x00a0;101&#x2013;110. </italic>
                <ext-link ext-link-type="uri" xlink:href="https://en.wikipedia.org/wiki/Doi_(identifier)">
                    <italic>doi</italic>
                </ext-link>
                <italic>:</italic>
                <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1145%2F3087556.3087579">
                    <italic>10.1145/3087556.3087579</italic>
                </ext-link>
                <italic>. </italic>
                <ext-link ext-link-type="uri" xlink:href="https://en.wikipedia.org/wiki/ISBN_(identifier)">
                    <italic>ISBN</italic>
                </ext-link>
                <italic>&#x00a0;</italic>
                <ext-link ext-link-type="uri" xlink:href="https://en.wikipedia.org/wiki/Special:BookSources/978-1-4503-4593-4">
                    <italic>978-1-4503-4593-4</italic>
                </ext-link>
                <italic>.</italic>
            </p>
            <p>Is the work clearly and accurately presented and does it cite the current literature?</p>
            <p>Yes</p>
            <p>If applicable, is the statistical analysis and its interpretation appropriate?</p>
            <p>Not applicable</p>
            <p>Are all the source data underlying the results available to ensure full reproducibility?</p>
            <p>Partly</p>
            <p>Is the study design appropriate and is the work technically sound?</p>
            <p>Yes</p>
            <p>Are the conclusions drawn adequately supported by the results?</p>
            <p>Yes</p>
            <p>Are sufficient details of methods and analysis provided to allow replication by others?</p>
            <p>Yes</p>
            <p>Reviewer Expertise:</p>
            <p>Applied Mathematics</p>
            <p>I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above.</p>
        </body>
        <back>
            <ref-list>
                <title>References</title>
                <ref id="rep-ref-374494-1">
                    <label>1</label>
                    <mixed-citation publication-type="journal">
                        <person-group person-group-type="author"/>:
                        <article-title>Gaussian elimination is not optimal</article-title>.
                        <source>
                            <italic>Numerische Mathematik</italic>
                        </source>.<year>1969</year>;<volume>13</volume>(<issue>4</issue>) :
                        <elocation-id>10.1007/BF02165411</elocation-id>
                        <fpage>354</fpage>-<lpage>356</lpage>
                        <pub-id pub-id-type="doi">10.1007/BF02165411</pub-id>
                    </mixed-citation>
                </ref>
                <ref id="rep-ref-374494-2">
                    <label>2</label>
                    <mixed-citation publication-type="journal">
                        <person-group person-group-type="author"/>:
                        <article-title>On multiplication of 2 &#x00d7; 2 matrices</article-title>.
                        <source>
                            <italic>Linear Algebra and its Applications</italic>
                        </source>.<year>1971</year>;<volume>4</volume>(<issue>4</issue>) :
                        <elocation-id>10.1016/0024-3795(71)90009-7</elocation-id>
                        <fpage>381</fpage>-<lpage>388</lpage>
                        <pub-id pub-id-type="doi">10.1016/0024-3795(71)90009-7</pub-id>
                    </mixed-citation>
                </ref>
            </ref-list>
        </back>
        <sub-article article-type="response" id="comment13760-374494">
            <front-stub>
                <contrib-group>
                    <contrib contrib-type="author">
                        <name>
                            <surname>T</surname>
                            <given-names>Rakshitha</given-names>
                        </name>
                        <aff>Mathematics, Eritrea Institute of Technology, Mai Nefhi, Mai Nefhi, Eritrea</aff>
                    </contrib>
                </contrib-group>
                <author-notes>
                    <fn fn-type="conflict">
                        <p>
                            <bold>Competing interests: </bold>No</p>
                    </fn>
                </author-notes>
                <pub-date pub-type="epub">
                    <day>17</day>
                    <month>4</month>
                    <year>2025</year>
                </pub-date>
            </front-stub>
            <body>
                <p>1.&#x00a0;As per the comment from the reviewer, we have revised all the mathematical equations in the paper.</p>
                <p> 2. The introduction section is revised and includes more details in the revised version.&#x00a0;&#x00a0;</p>
                <p> 3. Equation numbers are given wherever required in the revised manuscript.&#x00a0;</p>
                <p> 4.&#x00a0;
                    <italic>i</italic> is the starting index of the subchain of matrices (i.e., matrix 
                    <italic>A
                        <sub>i</sub>
                    </italic>), and 
                    <italic>j</italic> is the ending index of the subchain of matrices (i.e., matrix 
                    <italic>A
                        <sub>j</sub>
                    </italic>). This information is included in the revised manuscript.&#x00a0;</p>
                <p> 5. Matrices are replaced with the correct notations A and C as suggested by the reviewer.&#x00a0;</p>
                <p> 6.&#x00a0;The hybrid algorithm is a process that consists of two main phases: Matrix Chain Order Optimization and Strassen&#x2019;s Algorithm. These are explained in Sections 2.1 and 2.2. The hybrid algorithm is given in Section 3.</p>
                <p> 7. As per the suggestion, we have written the sentence.&#x00a0;</p>
                <p> 8. As per the comment, we have included some references and cited them in the introduction section.&#x00a0;</p>
                <p> 9. The hybrid method uses matrix chain multiplication and Strassen&#x2019;s algorithm to reduce the time complexity of the matrix multiplication. The hybrid algorithm contains seven multiplications instead of eight multiplications.&#x00a0;</p>
                <p> 10.&#x00a0;The vertical y-axis in Figure 1 is capped at 1 because the range [0, 1] typically represents a normalized scale, often used for relative errors or percent errors. If it shows mean absolute error, values close to or up to 1 imply that errors are nearly as large as the actual values-unrealistic in high-precision tasks. Therefore, either the plot shows mean relative error, not mean absolute error, or the y-axis is misleadingly scaled, and the label needs correction.</p>
                <p> 11.&#x00a0;The proposed hybrid method is more efficient because it smartly reduces total operations using MCM, and uses Strassen only when beneficial, while maintaining low memory usage-leading to real-world speedups and better numerical stability.</p>
                <p> 12. Updated in the revised manuscript.&#x00a0;</p>
                <p> 13. As per the valuable comment from the reviewer, we have updated it.</p>
            </body>
        </sub-article>
    </sub-article>
</article>
