On efficient parallel computations for some dynamic programming problems (Q1109691)

From MaRDI portal
scientific article
Language Label Description Also known as
English
On efficient parallel computations for some dynamic programming problems
scientific article

    Statements

    On efficient parallel computations for some dynamic programming problems (English)
    0 references
    0 references
    1988
    0 references
    A general method for parallelization of some dynamic programming algorithms on VLSI was presented by \textit{L. Guibas, H. Kung} and \textit{C. Thompson} [``Direct VLSI implementation of combinatorial algorithms'', in: Proc. Caltech Conf. on VLSI, 509-525 (1979)]. We present a general method for parallelization for the same class of problems on more powerful parallel computers. The method is demonstrated on three typical dynamic programming problems: computing the optimal order of matrix multiplications, the optimal binary search tree and optimal triangulation of polygons. For these problems the dynamic programming approach gives algorithms having a similar structure. They can be viewed as straight- line programs of size \(O(n^ 3)\). The general method of parallelization of such programs described by \textit{L. G. Valiant, S. Skyum, S. Berkowitz} and \textit{C. Rackoff} [SIAM J. Comput. 12, 641-644 (1983; Zbl 0524.68028)] then leads directly to algorithms working in \(\log^ 2n\) time with \(O(n^ 9)\) processors. However we adopt an alternative approach and show that a special feature of dynamic programming problems can be used. They can be thought as generalized parsing problems: find a tree of the optimal decomposition of the problem into smaller subproblems. A parallel pebble game on trees [see the author, in: Combinatorial algorithms on words, NATO ASI Ser., Ser. F 12, 341-356 (1985; Zbl 0578.68041), and in: Proc. conf. on combinatorial analysis and its applications (1985), publ. in Zastosow. Math. (1987)] is used to decrease the number of processors and to simplify the structure of the algorithms. We show that the dynamic programming problems considered can be computed in \(\log^ 2n\) time using \(n^ 6/\log n\) processors on a parallel random-access machine without write conflicts (CREW P-RAM). The main operation is essentially matrix multiplication, which is easily implementable on parallel computers with a fixed interconnection network of processors. Hence the problems considered can also be computed in \(\log^ 2n\) time using \(n^ 6\) processors on a perfect shuffle computer (PSC) or a cube-connected computer (CCC). An extension of the algorithm from an earlier paper of the author [Lect. Notes Comput. Sci. 208, 318-325 (1985; Zbl 0605.68077)] for the recognition of context-free languages on PSC and CCC can be used. If the parallel random access machine with concurrent writes (CRCW P-RAM) is used, then the minimum of m numbers can be determined in constant time and consequently the parallel time for the computation of dynamic programming problems can be reduced from \(\log^ 2n\) to log n. We investigate also the parallel computation of trees realizing the optimal cost of dynamic programming problems.
    0 references
    0 references
    0 references
    0 references
    0 references
    parallelization of some dynamic programming algorithms
    0 references
    optimal order of matrix multiplications
    0 references
    optimal binary search tree
    0 references
    optimal triangulation of polygons
    0 references
    generalized parsing
    0 references
    0 references