A Lattice Linear Predicate Parallel Algorithm for the Dynamic Programming Problems (original) (raw)
Related papers
An efficient parallel dynamic programming algorithm
Computers & Mathematics with Applications, 1995
Antonio, Tsai, and Huang proposed a scheme in 1991 to parallelize the standard dynamic programming approach to solve combinatorial multistage problems. However, their dynamic programming approach is restricted to those multistage problems where the decision made at each stage depends only on decisions made in the stage immediately preceding it. For many interesting problems the decision at each stage depends on the decisions made at all the previous stages, and therefore their approach doesn't apply. The Matrix Chain Multiplication problem, Longest Common Subsequence problem, and Optimal Polygon Triangulation problem are some examples of such problems. We also present techniques for parailelizing the dynamic programming solution to such problems. The parallel algorithm we develop for a PRAM has complexity O(n) employing O(n 2) processors. Since the traditional sequential algorithm for such problems is O(n3), our parallel algorithm is an optimal parallel algorithm based on this traditional algorithm. We also describe the results of our experiments that are in conformity with our theoretical complexity results. We also compare and contrast our result with results obtained by earlier researchers and show that our parallel algorithm has optimal efficiency of 100% with respect to the traditional Dynamic Programming Algorithm.
Efficient Parallel Dynamic Programming
The matrix chain ordering problem is to find the cheapest way to multiply a chain of n matrices, where the matrices are pairwise compatible but of varying dimensions. Here we give several new parallel algorithms including O(lg 3 n)-time and n/lg n-processor algorithms for solving the matrix chain ordering problem and for solving an optimal triangulation problem of convex polygons on the common CRCW PRAM model. Next, by using efficient algorithms for computing row minima of totally monotone matrices, this complexity is improved to O(lg 2 n) time with n processors on the EREW PRAM and to O(lg 2 n lg lg n) time with n/lg lg n processors on a common CRCW PRAM. A new algorithm for computing the row minima of totally monotone matrices improves our parallel MCOP algorithm to O(n lg 1.5 n) work and polylog time on a CREW PRAM. Optimal log-time algorithms for computing row minima of totally monotone matrices will improve our algorithm and enable it to have the same work as the sequential algorithm of Hu and ). 466 EFFICIENT MATRIX CHAIN ORDERING IN POLYLOG TIME 467 MCOP. (See Bradford [11].) Recently in [40] and [41] Ramanan independently gave an O(lg 4 n)-time and n-processor algorithm for solving the MCOP on the CREW PRAM. Moreover, in [15] we gave a O(lg 4 n)-time and n/lg n processor algorithm for solving the MCOP on the common-CRCW PRAM.
Lock-free parallel dynamic programming
2010
We show a method for parallelizing top down dynamic programs in a straightforward way by a careful choice of a lock-free shared hash table implementation and randomization of the order in which the dynamic program computes its subproblems. This generic approach is applied to dynamic programs for knapsack, shortest paths, and RNA structure alignment, as well as to a state-of-the-art solution for minimizing the maximum number of open stacks. Experimental results are provided on three different modern multicore architectures which show that this parallelization is effective and reasonably scalable. In particular, we obtain over 10 times speedup for 32 threads on the open stacks problem.
A Parallel Algorithm for Lattice Construction
2005
The construction of the concept lattice of a context is a time consuming process. However, in many practical cases where FCA has proven to provide theoretical strength, e.g., in data mining, the volume of data to analyze is huge. This fact emphasizes the need for efficient lattice manipulations. The processing of large datasets has often been approached with parallel algorithms and some preliminary studies on parallel lattice construction exist in the literature. We propose here a novel divide-and-conquer (D&C) approach that operates by data slicing. In this paper, we present a new parallel algorithm, called DAC-ParaLaX, which borrows its main operating primitives from an existing sequential procedure and integrates them into a multi-process architecture. The algorithm has been implemented using a parallel dialect of the C ++ language and its practical performances have been compared to those of a homologue sequential algorithm.
Lattice Linear Predicate Algorithms for the Constrained Stable Marriage Problem with Ties
arXiv (Cornell University), 2022
We apply Lattice-Linear Predicate Detection Technique to derive parallel and distributed algorithms for various variants of the stable matching problem. These problems are: (a) the constrained stable marriage problem (b) the super stable marriage problem in presence of ties, and (c) the strongly stable marriage in presence of ties. All these problems are solved using the Lattice-Linear Predicate (LLP) algorithm showing its generality. The constrained stable marriage problem is a version of finding the stable marriage in presence of lattice-linear constraints such as "Peter's regret is less than that of Paul. " For the constrained stable marriage problem, we present a distributed algorithm that takes (2) messages each of size (log) where is the number of men in the problem. Our algorithm is completely asynchronous. Our algorithms for the stable marriage problem with ties are also parallel with no synchronization.
A parallel integer linear programming algorithm
European Journal of Operational Research, 1988
The solution of large scale integer linear programming models is generally dependent, in some way, upon the branch and bound technique, which can be quite time consuming. This paper describes a parallel branch and bound algorithm which achieves super linear efficiency in solving integer linear programming models on a multiprocessor computer. The algorithm is used to solve the Haldi and IBM test problems as well as a system design model.
Data Science and Engineering
The coarse-grained multicomputer parallel model (CGM for short) has been used for solving several classes of dynamic programming problems. In this paper, we propose a parallel algorithm on the CGM model, with p processors, for solving the optimal binary search tree problem (OBST problem), which is a polyadic non-serial dynamic programming problem. Firstly, we propose a dynamic graph model for solving the OBST problem and show that each instance of this problem corresponds to a one-to-all shortest path problem in this graph. Secondly, we propose a CGM parallel algorithm based on our dynamic graph to solve the OBST problem through one-to-all shortest paths in this graph. It uses our new technique of irregular partitioning of the dynamic graph to try to bring a solution to the well-known contradictory objectives of the minimization of the communication time and the load balancing of the processors in this type of graph. Our solution is based on Knuth's sequential solution and required O n 2 p time steps per processor and ⌈ √ 2p⌉ + k × �� ⌈ √ 2p⌉ 2 � + 1 � communication rounds. Integer k is a parameter used in the partitioning technique of our algorithm. This new CGM algorithm performs better than the previously most efficient solution, which uses regular partitioning of the tasks graph.
Applying Predicate Detection to the Constrained Optimization Problems
arXiv (Cornell University), 2018
We present a method to design parallel algorithms for constrained combinatorial optimization problems. Our method solves and generalizes many classical combinatorial optimization problems including the stable marriage problem, the shortest path problem and the market clearing price problem. These three problems are solved in the literature using Gale-Shapley algorithm, Dijkstra's algorithm, and Demange, Gale, Sotomayor algorithm. Our method solves all these problems by casting them as searching for an element that satisfies an appropriate predicate in a distributive lattice. Moreover, it solves generalizations of all these problems-namely finding the optimal solution satisfying additional constraints called latticelinear predicates. For stable marriage problems, an example of such a constraint is that Peter's regret is less than that of Paul. For shortest path problems, an example of such a constraint is that cost of reaching vertex v1 is at least the cost of reaching vertex v2. For the market clearing price problem, an example of such a constraint is that item1 is priced at least as much as item2. In addition to finding the optimal solution, our method is useful in enumerating all constrained stable matchings, and all constrained market clearing price vectors.
Parallel Methods for Constraint Solving and Combinatorial Optimization (NII Shonan Meeting 2012-5)
NII Shonan Meet. Rep., 2012
In the last decade, with the development of multi-core workstations, the availability of GPGPU-enhanced systems and the access to Grid platforms and supercomputers worldwide, Parallel Programming reached mainstream programming and appeared as a key issue in order to use in an efficient manner the computing power at hand. Search methods and combinatorial optimization techniques are not isolated from this phenomenon, as bigger computing power means the ability to attack more complex combinatorial problems. In the last years some experiments have been done to extend to parallel execution search methods such as Constraint Programming or SAT solving (Boolean satisfiability), and combinatorial optimization methods such as Local Search, Meta-heuristics and Brand & Bound. However these works have mostly been done for shared memory multi-core systems (i.e. with a few cores) or for small PC clusters (a few machines). The next challenge is to devise efficient techniques and algorithms for massively parallel computers with tens or hundreds of thousands of cores in the form of heterogeneous hybrid systems based on both multi-core processors and GPUs. We would like to provide a cross-community forum for researchers working on search methods (Constraint Solving, Artificial Intelligence, Logic Programming, SAT solving, etc.), combinatorial optimization methods (metaheuristics, local search, tabu search, evolutionary algorithms, ant colony optimization, particle swarm optimization, memetic algorithms, and other types of algorithms) and High Performance Computing (Grids, large PC clusters, massively parallel computers, GPGPUs) in order to tackle the challenge of efficient implementations on all kinds of parallel hardware: multi-core, GPU-based or heterogeneous massively parallel systems. This meeting is designed to be a forum for researchers willing to tackle those issues, in order to exchange ideas, theoretical frameworks, design of algorithms and methods, implementation issues, experimental results and further boost this growing area through cross-fertilization.