A greedy randomized adaptive search procedure (GRASP) is a metaheuristic for combinatorial optimization. Given an undirected graph with weights associated with its nodes, the Steiner tree problem consists in finding a minimum weight subgraph spanning a given subset of (terminal) nodes of the original graph. In this paper, we describe a parallel GRASP for the Steiner problem in graphs. We review basic concepts of GRASP: construction and local search algorithms. The implementation of a sequential GRASP for the Steiner problem in graphs is described in detail. Feasible solutions are characterized by their non-terminal nodes. A randomized version of Kruskal's algorithm for the minimum spanning tree problem is used in the construction phase. Local search is based on insertions and eliminations of nodes to/from the current solution. Parallelization is done through the distribution of the GRASP iterations among the processors on a demand-driven basis, in order to improve load balancing. The parallel procedure was implemented using the Message Passing Interface library on an IBM SP2 machine. Computational experiments on benchmark problems are reported.
Martins, S. L., Ribeiro, C. C., & Souza, M. C. (1998). A parallel GRASP for the steiner problem in graphs. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 1457 LNCS, pp. 285–297). Springer Verlag. https://doi.org/10.1007/bfb0018547