We consider the problem of designing a distributed algorithm that, given an arbitrary connected graph G of nodes with unique labels, converts G into a sorted list of nodes. This algorithm should be as simple as possible and, for scalability, should guarantee a polylogarithmic runtime as well as at most a polylogarithmic increase in the degree of each node during its execution. Furthermore, it should be selfstabilizing, that is, it should be able to eventually construct a sorted list from any state in which the graph is connected. It turns out that satisfying all of these demands at the same time is not easy. Our basic approach towards this goal is the so-called linearization technique: each node v repeatedly does the following with its neighbors: • for its left (i.e., smaller) neighbors u1, . . . , u k in the order of decreasing labels, v replaces {v, u1}, . . . , {v, u k } by {v, u1}, {u1, u2}, . . . , {u k−1 , u k }, and • for its right (i.e., larger) neighbors w1, . . . , w in the order of increasing labels, v replaces {v, w1}, . . . , {v, w } by {v, w1}, {w1, w2}, . . . , {w −1 , w }. As shown in this paper, this technique transforms any connected graph into a sorted list, but there are graphs for which this can take a long time. Hence, we propose several extensions of the linearization technique and experimentally evaluate their performance. Our results indicate that some of these have a polylogarithmic performance, so there is hope that there are distributed algorithms that can achieve all of our goals above.
In REF , a local-control strategy called linearization is presented for converting an arbitrary connected graph into a sorted list.
Linearization: Locally self-stabilizing sorting in graphs
University of Madrid
Computer Science