A k-cluster of a graph is a connected non-empty subgraph C of radius at most k, i.e., all members of C are within distance k of a particular node of C, called the clusterhead of C. A k-clustering of a graph is a partitioning of the graph into distinct k-clusters. Finding a minimum cardinality k-clustering is known to be N P-hard. In this paper, we propose a silent self-stabilizing asynchronous distributed algorithm for constructing a k-clustering of any connected network with unique IDs. Our algorithm stabilizes in O(n) rounds, using O(log n) space per process, where n is the number of processes. In the general case, our algorithm constructs O( n k ) k-clusters. If the network is a Unit Disk Graph (UDG), then our algorithm is 7.2552k + O(1)-competitive, that is, the number of kclusters constructed by the algorithm is at most 7.2552k + O(1) times the minimum possible number of k-clusters in any k-clustering of the same network. More generally, if the network is an Approximate Disk Graph (ADG) with approximation ratio λ, then our algorithm is 7.2552λ 2 k + O(λ)-competitive. Our solution is based on the self-stabilizing construction of a data structure called the MIS Tree, a spanning tree of the network whose processes at even levels form a maximal independent set of the network. The MIS tree construction is the time bottleneck of our k-clustering algorithm, as it takes Θ(n) rounds in the worst case, while the remainder of the algorithm takes O(D) rounds, where D is the diameter of the network. We would like to improve that time to be O(D), but we show that our distributed MIS tree construction is a P-complete problem.
The algorithm presented in this paper is similar to that in REF .
Competitive Self-Stabilizing k-Clustering
ICDCS
Computer Science