Elsevier

Discrete Optimization

Volume 41, August 2021, 100646
Discrete Optimization

Parallelization of a branch-and-bound algorithm for the maximum weight clique problem

https://doi.org/10.1016/j.disopt.2021.100646Get rights and content

Abstract

In this paper, parallelization techniques are proposed for the branch-and-bound algorithm OTClique for the maximum weight clique problem. OTClique consists of the precomputation phase and the branch-and-bound phase. The proposed algorithm parallelizes both of them. In the precomputation phase, the construction of optimal tables is parallelized. In the branch-and-bound phase, the proposed algorithm generates small subproblems and assigns them to threads. A technique to share lower and upper bounds is also proposed. Experiments using some benchmarks show that the proposed parallelization techniques improve the performance of OTClique. With an 8-core CPU, the computation time of OTClique becomes 6.91 times shorter on random graphs and 5.38 times on DIMACS benchmarks on average.

Introduction

For an undirected graph, a vertex subset C is called a clique if any pair of vertices in C are adjacent. Given an undirected graph, the maximum clique problem (MCP) is to find a clique of maximum cardinality. MCP is known to be NP-hard [1] and the decision version is one of the Karp’s 21 NP-complete problems [2]. Given a vertex weighted undirected graph, the maximum weight clique problem (MWCP) is to find a clique of maximum weight. MWCP is a generalization of MCP and have many applications in coding theory [3], network design [4], computer vision [5], bioinformatics [6], auctions [7], protein side-chain packing [8], [9], market basket analysis [10], communication analysis [11], etc. Because of theoretical importance and a lot of practical applications, there have been lots of studies in decades [12].

Many exact algorithms for MWCP are based on the branch-and-bound that recursively generates non-overlapping subproblems and solves them to obtain the optimal solution. During the recursive procedure, upper bounds of the weight of feasible solutions are calculated to prune subproblems that cannot update the incumbent solution. Lots of techniques are proposed to reduce the computation time of branch-and-bound [13]. For MWCP, the algorithm in [14] calculates upper bounds based on Max-SAT reasoning. The algorithm proposed in [15] calculates the length of the longest path in a DAG to obtain upper bounds. Vertex coloring is used to calculate upper bounds in [16], [17]. The algorithm in [18] calculates upper bounds by Russian Doll Search. The algorithm OTClique in [19] proposes an upper bound calculation that splits vertices into small subsets and calculates the sum of optimal weights of subgraphs induced by them. To calculate the upper bound in a short time, OTClique constructs the optimal tables before the branch-and-bound. OTClique also uses upper bounds obtained from Russian Doll Search. In [19], some algorithms including OTClique are compared by experiments using various kinds of benchmarks. The result shows that only OTClique can solve all instances in practical time. Excepting OTClique, each algorithm compared in [19] has bad instances that only the algorithm requires huge computation time to solve. One reason for this result is that OTClique uses two upper bound calculation methods.

In the previous computational experiments shown in papers, algorithms are implemented as a single-thread program. In recent years, one processor has multiple cores even in mobile computers. Hence parallelization techniques are adopted in various kinds of algorithms. For clique enumeration problems, parallel algorithms are proposed in [20], [21], [22]. For the MCP, exact parallel algorithms are proposed in [23], [24]. For the MWCP, although studies about parallelization are found in [25], [26], recent algorithms such as [14], [15], [16], [17], [19] are not parallelized.

In this paper, we propose parallelization techniques for the branch-and-bound algorithm OTClique [19]. OTClique consists of the precomputation phase and the branch-and-bound phase. We parallelize both phases. In the precomputation phase, our algorithm parallelizes the construction of optimal tables. In the branch-and-bound phase, it generates subproblems and enqueues them to a queue. Each thread solves subproblems dequeued from the queue until it becomes empty. When the dequeued problem is large, our algorithm generates smaller subproblems from it and enqueues them again. In some experiments, we confirm that the performance of OTClique is improved by the proposed parallelization techniques.

The remainder of this paper is organized as follows. The algorithm OTClique is described in Section 2. The proposed parallelization techniques are shown in Section 3. Experimental results are shown in Section 4. We conclude the paper in Section 5.

Section snippets

Branch-and-bound algorithm OTClique

In this section, we briefly introduce the algorithm OTClique [19]. It consists of the precomputation phase and the branch-and-bound phase. Hereafter n denotes the number of vertices in the input graph. For a vertex v, let N(v) be a set of adjacency vertices of v. For the graph G=(V,E), let G(S) be the subgraph induced by SV. For a vertex set S, w(S) denotes the total weight of vertices in S. Let wopt(S) denote the weight of the maximum weight clique of G(S). We denote by P(S,C) a subproblem of

Parallelized OTClique

In this section, we propose some parallelization techniques for OTClique. In the precomputation phase, the proposed algorithm parallelizes the dynamic programming to construct the optimal tables. In the branch-and-bound phase, different parallelization policies are adopted for RDS and searches after RDS. In RDS, the proposed algorithm avoids duplication of search spaces for each thread and shares upper and lower bounds to prune subproblems efficiently. After RDS, the proposed algorithm divides

Computational experiments

We implement the proposed algorithm in C++ to compare with the original OTClique of single-thread.1 The compiler is GNU g++ 5.4.0 with optimization option -O2. The OS is Linux 4.13.0. The CPU is AMD Ryzen™ 7 1700. It has an 8-core, 16-thread processor. Its base clock is 3 GHz and boost clock is 3.7 GHz.

Conclusion

We proposed some parallelization techniques for the branch-and-bound algorithm OTClique for the maximum weight clique problem. OTClique consists of two phases: the precomputation phase and the branch-and-bound phase. In the precomputation phase, we parallelize the construction of optimal tables. In the Russian Doll Search of branch-and-bound phase, we modify subproblems given to each thread to avoid the duplication of search spaces. Also, we propose bounds sharing techniques to generate more

References (30)

  • BogdanovaG.T. et al.

    Error-correcting codes over an alphabet of four elements

    Des. Codes Cryptogr.

    (2001)
  • SorourS. et al.

    Minimum broadcast decoding delay for generalized instantly decodable network coding

  • HoraudR. et al.

    Stereo correspondence through feature grouping and maximal cliques

    IEEE Trans. Pattern Anal. Mach. Intell.

    (1989)
  • KCD.B. et al.

    Point matching under non-uniform distortions and protein side chain packing based on efficient maximum clique algorithms

    Genome Inform.

    (2002)
  • BrownK.L.

    Combinatorial Auction Test Suite (CATS)

    (2000)
  • Cited by (2)

    View full text