An O(n) algorithm for determining a near-optimal computation order of matrix chain products

This paper discusses the computation of matrix chain products of the form <italic>M</italic><subscrpt>1</subscrpt> × <italic>M</italic><subscrpt>2</subscrpt>2 × ··· × <italic>M<subscrpt>n</subscrpt></italic> where <italic>M<subscrpt>i</subscrpt></italic>'s are matrices. The order in which the matrices are computed affects the number of operations. A sufficient condition about the association of the matrices in the optimal order is presented. An <italic>O</italic>(<italic>n</italic>) algorithm to find an order of computation which takes less than 25 percent longer than the optimal time <italic>T</italic><subscrpt>opt</subscrpt> is also presented. In most cases, the algorithm yields the optimal order or an order which takes only a few percent longer than <italic>T</italic><subscrpt>opt</subscrpt> (less than 1 percent on the average).