Abstract

In the k-terminal cut problem, we are given a graph with edge weights and k distinct vertices called “terminals.” The goal is to remove a minimum weight collection of edges from the graph such that there is no path between any pair of terminals. The k-terminal cut problem is NP-hard. The k-terminal cut problem has been extensively studied and a number of algorithms have been devised for it. Most are approximation algorithms. There are also fixed-parameter tractable algorithms, but none have been shown empirically practical. It is also possible to apply implicit enumeration using any integer programming formulation of the problem and solve it with a branch-and-bound algorithm. Here, we present a branch-and-bound algorithm for the k-terminal cut problem which does not rely on an integer programming formulation. Our algorithm employs “minimum isolating cuts” and, for this reason, we call our branch-and-bound algorithm Isolation Branching. In an empirical experiment, we compare the performance of Isolation Branching to that of a branch-and-bound applied to the strongest known integer programming formulation of k-terminal cut. The integer programming branch-and-bound procedure is implemented with Gurobi, a commercial mixed-integer programming solver. We compare the performance of the two approaches for real-world instances and simulated data. The results on real data indicate that Isolation Branching, coded in Python, runs an order of magnitude faster than Gurobi for problems of sizes of up to tens of thousands of vertices and hundreds of thousands of edges. Our results on simulated data also indicate that Isolation Branching scales more effectively. Though we primarily focus on creating a practical tool for k-terminal cut, as a byproduct of our algorithm we prove that the complexity of Isolation Branching is fixed-parameter tractable with respect to the size of the optimal solution, thus providing an alternative, constructive, and somewhat simpler, proof of this fact.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call