5 research outputs found

    Parallel skeletons for tabu search method based on search strategies and neighborhood partition

    No full text
    In this paper we present two parallel skeletons for Tabu Search method -- a well known meta-heuristic for approximately solving combinatorial optimization problems. Our parallel skeletons are designed and implemented using the generic parallel programming paradigm. The first skeleton is based on independent runs model with search strategies while the second is a master-slave model with neighborhood partition. Our starting point to obtain these skeletons was the design and implementation of a sequential skeleton that was used later as basis for the two parallel skeletons. Both skeletons provide the user with the followings: (a) permit to obtain parallel implementations of tabu search method for concrete combinatorial optimization problems from existing sequential implementations; (b) there is no need for the user to know neither parallel programming nor communication libraries; (c) the parallel implementation for a concrete problem is obtained automatically from the existing sequential implementation of the problem. The skeletons are implemented in C++ using MPI as a communication library and offer several properties such as a genericity, flexibility, component reuse, robustness and time savings, mainly due to the generic and object oriented programming paradigms. We have instantiated the two skeletons for the 0-1 Multidimensional Knapsack problem and report extensive experimental results.Postprint (published version

    Generic parallel implementations for Tabu Search

    Get PDF
    Tabu Search (TS) is a meta-heuristic for solving combinatorial optimization problems. A review of existing implementations for TS reveals that, on the one hand, these implementations are ad hoc and, on the other hand, most of them run in a sequential setting. Indeed, the reported parallel implementations are few as compared to the sequential implementations. Due to increase in computing resources, especially in LAN environments, it is quite desirable to obtain parallel implementations of TS for solving problems arising in fields others than computer science, such as biology, control theory, etc., in which researchers and practitioners are less familiar with parallel programming. In this work we present a generic implementation of TS able to be run in sequential and parallel settings. The key point in our approach is the design and implementation in C++ of an algorithmic skeleton for TS embedding its main flow as well as several parallel implementations for the method. This is achieved through a separation of concerns: elements related to TS are provided by the skeleton, whereas the problem-dependent elements are expected to be provided by the user according to a fixed interface using purely sequential constructs. Thus, the skeleton has a unique interface but is expected to have many instantiations for concrete problems, all of them being able to run in a straightforward way using different parallel implementations. In order to assess the effectiveness of our approach, we have applied it to several NP-hard combinatorial optimization problems. We have considered developing time, flexibility and easiness of use, quality of solutions and computation efficiency. We have observed that our approach allows fast developing of problem instantiations. Moreover, the skeleton allows the user to configure and implement in different ways internal methods related to TS. Furthermore, the results obtained by our generic parallel implementations are efficient and report good quality results compared to the ones reported by ad hoc implementations. We exemplify our approach through the application to the 0-1 Multidimensional Knapsack problem. The experimental results obtained for standard benchmarks of this problem show that, in spite of the genericity and flexibility of our implementation, the resulting program provides high quality solutions very close to the optimal ones.Postprint (published version

    Parallel skeletons for tabu search method based on search strategies and neighborhood partition

    No full text
    In this paper we present two parallel skeletons for Tabu Search method -- a well known meta-heuristic for approximately solving combinatorial optimization problems. Our parallel skeletons are designed and implemented using the generic parallel programming paradigm. The first skeleton is based on independent runs model with search strategies while the second is a master-slave model with neighborhood partition. Our starting point to obtain these skeletons was the design and implementation of a sequential skeleton that was used later as basis for the two parallel skeletons. Both skeletons provide the user with the followings: (a) permit to obtain parallel implementations of tabu search method for concrete combinatorial optimization problems from existing sequential implementations; (b) there is no need for the user to know neither parallel programming nor communication libraries; (c) the parallel implementation for a concrete problem is obtained automatically from the existing sequential implementation of the problem. The skeletons are implemented in C++ using MPI as a communication library and offer several properties such as a genericity, flexibility, component reuse, robustness and time savings, mainly due to the generic and object oriented programming paradigms. We have instantiated the two skeletons for the 0-1 Multidimensional Knapsack problem and report extensive experimental results
    corecore